176: l_sum_basiscoef:= 1;
177: l_sum_constcoef:= 0;
178:
179: -- Bug#5520167- get line amt from trx line
180: --l_line_amt:= ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_begin_index).line_amt;
181:
182: l_line_amt:= ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_amt( p_structure_index);
183:
184:
197:
198: For i IN p_begin_index..p_end_index
199: Loop
200:
201: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_source = 'REFERENCE' AND
202: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_tax_amt = 0 AND
203: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt = 0 AND
204: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).manually_entered_flag = 'Y' AND
205: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).freeze_until_overridden_flag ='Y'
198: For i IN p_begin_index..p_end_index
199: Loop
200:
201: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_source = 'REFERENCE' AND
202: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_tax_amt = 0 AND
203: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt = 0 AND
204: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).manually_entered_flag = 'Y' AND
205: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).freeze_until_overridden_flag ='Y'
206: THEN
199: Loop
200:
201: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_source = 'REFERENCE' AND
202: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_tax_amt = 0 AND
203: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt = 0 AND
204: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).manually_entered_flag = 'Y' AND
205: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).freeze_until_overridden_flag ='Y'
206: THEN
207:
200:
201: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_source = 'REFERENCE' AND
202: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_tax_amt = 0 AND
203: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt = 0 AND
204: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).manually_entered_flag = 'Y' AND
205: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).freeze_until_overridden_flag ='Y'
206: THEN
207:
208: NULL;
201: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_source = 'REFERENCE' AND
202: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_tax_amt = 0 AND
203: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt = 0 AND
204: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).manually_entered_flag = 'Y' AND
205: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).freeze_until_overridden_flag ='Y'
206: THEN
207:
208: NULL;
209:
209:
210: ELSE
211:
212:
213: l_tax_id :=ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_id;
214: l_tax_rate_id :=
215: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate_id;
216:
217:
211:
212:
213: l_tax_id :=ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_id;
214: l_tax_rate_id :=
215: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate_id;
216:
217:
218: l_tax_date :=ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_date;
219:
214: l_tax_rate_id :=
215: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate_id;
216:
217:
218: l_tax_date :=ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_date;
219:
220: l_tax_determine_date := ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_determine_date;
221:
222: l_Taxable_Basis_Rule_Flag:=
216:
217:
218: l_tax_date :=ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_date;
219:
220: l_tax_determine_date := ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_determine_date;
221:
222: l_Taxable_Basis_Rule_Flag:=
223: ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl(l_tax_id).Taxable_Basis_Rule_Flag;
224: l_def_formula:=
229: -- bug 5391084: manual tax line
230: --
231: -- changed the following condition out for bug 5525890 and bug 5525816
232: -- Commented the code for Bug 7438875 to populate inclusive flag even if last_manual_entry is set to TAX_AMOUNT
233: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
234: i).orig_tax_amt_included_flag IS NULL AND
235: /*(
236: NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
237: i).last_manual_entry, 'X') <> 'TAX_AMOUNT'
232: -- Commented the code for Bug 7438875 to populate inclusive flag even if last_manual_entry is set to TAX_AMOUNT
233: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
234: i).orig_tax_amt_included_flag IS NULL AND
235: /*(
236: NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
237: i).last_manual_entry, 'X') <> 'TAX_AMOUNT'
238: -- bugfix 5619762
239: OR
240: ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ctrl_total_hdr_tx_amt(p_structure_index) is not null
240: ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ctrl_total_hdr_tx_amt(p_structure_index) is not null
241: OR
242: ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ctrl_total_line_tx_amt(p_structure_index) is not null
243: ) AND*/
244: NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
245: i).manually_entered_flag, 'N') ='N'
246: THEN
247: -- populate inclusive_tax_flag by calling populate_inclusive_tax_flag
248: --
282: -- we should recalculate all taxes, otherwise only recalculate taxes which
283: -- have recalculate_tax_flg ='Y'
284:
285: CASE
286: WHEN (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).recalc_required_flag <> 'Y' AND
287: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code = 'OVERRIDE_TAX') OR
288: (NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry, 'X') = 'TAX_AMOUNT') OR
289: (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_source = 'APPLIED_FROM' AND
290: ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl(l_tax_id).applied_amt_handling_flag = 'P')
283: -- have recalculate_tax_flg ='Y'
284:
285: CASE
286: WHEN (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).recalc_required_flag <> 'Y' AND
287: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code = 'OVERRIDE_TAX') OR
288: (NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry, 'X') = 'TAX_AMOUNT') OR
289: (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_source = 'APPLIED_FROM' AND
290: ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl(l_tax_id).applied_amt_handling_flag = 'P')
291: THEN
284:
285: CASE
286: WHEN (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).recalc_required_flag <> 'Y' AND
287: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code = 'OVERRIDE_TAX') OR
288: (NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry, 'X') = 'TAX_AMOUNT') OR
289: (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_source = 'APPLIED_FROM' AND
290: ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl(l_tax_id).applied_amt_handling_flag = 'P')
291: THEN
292:
285: CASE
286: WHEN (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).recalc_required_flag <> 'Y' AND
287: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code = 'OVERRIDE_TAX') OR
288: (NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry, 'X') = 'TAX_AMOUNT') OR
289: (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_source = 'APPLIED_FROM' AND
290: ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl(l_tax_id).applied_amt_handling_flag = 'P')
291: THEN
292:
293: -- RECALC_REQUIRED_FLAG will be populated by tax lines Determination
304: -- inclusive tax
305: --
306: parameter_tbl(l_tax_id).tax_id := l_tax_id;
307: parameter_tbl(l_tax_id).tax_rate :=
308: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate;
309: parameter_tbl(l_tax_id).formula_code :=
310: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).taxable_basis_formula;
311:
312: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_amt_included_flag = 'S'
306: parameter_tbl(l_tax_id).tax_id := l_tax_id;
307: parameter_tbl(l_tax_id).tax_rate :=
308: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate;
309: parameter_tbl(l_tax_id).formula_code :=
310: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).taxable_basis_formula;
311:
312: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_amt_included_flag = 'S'
313: THEN
314: parameter_tbl(l_tax_id).weird_indicator:= 1;
308: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate;
309: parameter_tbl(l_tax_id).formula_code :=
310: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).taxable_basis_formula;
311:
312: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_amt_included_flag = 'S'
313: THEN
314: parameter_tbl(l_tax_id).weird_indicator:= 1;
315: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
316: i).tax_amt_included_flag := 'Y';
311:
312: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_amt_included_flag = 'S'
313: THEN
314: parameter_tbl(l_tax_id).weird_indicator:= 1;
315: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
316: i).tax_amt_included_flag := 'Y';
317: ELSE
318: parameter_tbl(l_tax_id).weird_indicator:= 0;
319: END IF;
319: END IF;
320:
321: IF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_amt_includes_tax_flag(
322: p_structure_index) = 'I' OR
323: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
324: i).tax_amt_included_flag = 'Y'
325: THEN
326: parameter_tbl(l_tax_id).incl_indicator:= 1;
327: ELSE
335:
336: parameter_tbl(l_tax_id).basiscoef:= 0;
337: parameter_tbl(l_tax_id).constcoef:= 0;
338: parameter_tbl(l_tax_id).overrideconst:=
339: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_tax_amt;
340:
341: -- l_sum_basiscoef:= l_sum_basiscoef + parameter_tbl(l_tax_id).composite_incl_indicator *
342: -- parameter_tbl(l_tax_id).basiscoef * parameter_tbl(l_tax_id).tax_rate / 100;
343:
352: ' sum_basiscoef: ' || l_sum_basiscoef||
353: ' sum_constcoef: ' || l_sum_constcoef);
354: END IF;
355:
356: WHEN ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_provider_id is NOT NULL OR
357: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Delete_Flag = 'Y'
358: THEN
359:
360: -- Do not perform taxable basis determination for provider calculated lines. Taxes
353: ' sum_constcoef: ' || l_sum_constcoef);
354: END IF;
355:
356: WHEN ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_provider_id is NOT NULL OR
357: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Delete_Flag = 'Y'
358: THEN
359:
360: -- Do not perform taxable basis determination for provider calculated lines. Taxes
361: -- calculated by providers cannot be compounded by taxes calculated by eTax and
363:
364: NULL;
365:
366: WHEN
367: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).OTHER_DOC_SOURCE ='ADJUSTED' AND
368: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code <> 'OVERRIDE_TAX'
369: THEN
370: -- In case when the tax line is copied from 'Applied From' or 'Adjusted' Document,
371: -- Applicability process will copy Tax Regime, Tax, Status, Rate, Place of Supply,
364: NULL;
365:
366: WHEN
367: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).OTHER_DOC_SOURCE ='ADJUSTED' AND
368: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code <> 'OVERRIDE_TAX'
369: THEN
370: -- In case when the tax line is copied from 'Applied From' or 'Adjusted' Document,
371: -- Applicability process will copy Tax Regime, Tax, Status, Rate, Place of Supply,
372: -- Reg. Number, Offset tax columns from original document. in this case,
375:
376: NULL;
377:
378: --WHEN
379: -- (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code = 'OVERRIDE_TAX' AND
380: -- ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry = 'TAX_AMOUNT')
381: --THEN
382:
383: -- In case of an override event on tax line, where the user has overridden tax amount,
376: NULL;
377:
378: --WHEN
379: -- (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code = 'OVERRIDE_TAX' AND
380: -- ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry = 'TAX_AMOUNT')
381: --THEN
382:
383: -- In case of an override event on tax line, where the user has overridden tax amount,
384: -- we need not calculate multiplier for that tax line, the taxable amount will be
386:
387: --NULL;
388:
389: WHEN
390: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).COPIED_FROM_OTHER_DOC_FLAG = 'Y' AND
391: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Manually_Entered_Flag = 'Y' AND
392: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).OTHER_DOC_SOURCE = 'REFERENCE'
393: THEN
394: -- When a manual tax line is copied from reference document, the Tax Regime, Tax, Status, Rate,
387: --NULL;
388:
389: WHEN
390: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).COPIED_FROM_OTHER_DOC_FLAG = 'Y' AND
391: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Manually_Entered_Flag = 'Y' AND
392: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).OTHER_DOC_SOURCE = 'REFERENCE'
393: THEN
394: -- When a manual tax line is copied from reference document, the Tax Regime, Tax, Status, Rate,
395: -- and other columns are copied from manual tax line in reference document as well. in this
388:
389: WHEN
390: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).COPIED_FROM_OTHER_DOC_FLAG = 'Y' AND
391: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Manually_Entered_Flag = 'Y' AND
392: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).OTHER_DOC_SOURCE = 'REFERENCE'
393: THEN
394: -- When a manual tax line is copied from reference document, the Tax Regime, Tax, Status, Rate,
395: -- and other columns are copied from manual tax line in reference document as well. in this
396: -- case, the taxable amount will be computed as a percentage of taxable amount on reference
400:
401: NULL;
402: /* comment out for bug fix 3391186
403: WHEN
404: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Freeze_Until_Overridden_Flag = 'Y' AND
405: ( ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Overridden_Flag <> 'Y'
406: OR
407: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).COPIED_FROM_OTHER_DOC_FLAG = 'Y' )
408: THEN
401: NULL;
402: /* comment out for bug fix 3391186
403: WHEN
404: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Freeze_Until_Overridden_Flag = 'Y' AND
405: ( ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Overridden_Flag <> 'Y'
406: OR
407: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).COPIED_FROM_OTHER_DOC_FLAG = 'Y' )
408: THEN
409: */
403: WHEN
404: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Freeze_Until_Overridden_Flag = 'Y' AND
405: ( ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Overridden_Flag <> 'Y'
406: OR
407: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).COPIED_FROM_OTHER_DOC_FLAG = 'Y' )
408: THEN
409: */
410: WHEN
411: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Freeze_Until_Overridden_Flag = 'Y' AND
407: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).COPIED_FROM_OTHER_DOC_FLAG = 'Y' )
408: THEN
409: */
410: WHEN
411: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Freeze_Until_Overridden_Flag = 'Y' AND
412: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Overridden_Flag <> 'Y'
413: THEN
414: -- When the transaction is matched to a reference document, and if a tax
415: -- that was applicable on the reference document is not found applicable
408: THEN
409: */
410: WHEN
411: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Freeze_Until_Overridden_Flag = 'Y' AND
412: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Overridden_Flag <> 'Y'
413: THEN
414: -- When the transaction is matched to a reference document, and if a tax
415: -- that was applicable on the reference document is not found applicable
416: -- during applicability process, the tax line from the reference document
420:
421: NULL;
422:
423: WHEN
424: (NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Freeze_Until_Overridden_Flag,'N') <> 'Y' OR
425: NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).COPIED_FROM_OTHER_DOC_FLAG,'N') <> 'Y') OR
426: (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_source = 'APPLIED_FROM' AND
427: ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl(l_tax_id).applied_amt_handling_flag = 'R') OR
428: (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code = 'OVERRIDE_TAX' AND
421: NULL;
422:
423: WHEN
424: (NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Freeze_Until_Overridden_Flag,'N') <> 'Y' OR
425: NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).COPIED_FROM_OTHER_DOC_FLAG,'N') <> 'Y') OR
426: (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_source = 'APPLIED_FROM' AND
427: ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl(l_tax_id).applied_amt_handling_flag = 'R') OR
428: (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code = 'OVERRIDE_TAX' AND
429: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Recalc_Required_Flag = 'Y' AND
422:
423: WHEN
424: (NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Freeze_Until_Overridden_Flag,'N') <> 'Y' OR
425: NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).COPIED_FROM_OTHER_DOC_FLAG,'N') <> 'Y') OR
426: (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_source = 'APPLIED_FROM' AND
427: ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl(l_tax_id).applied_amt_handling_flag = 'R') OR
428: (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code = 'OVERRIDE_TAX' AND
429: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Recalc_Required_Flag = 'Y' AND
430: -- bug fix 5525890
424: (NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Freeze_Until_Overridden_Flag,'N') <> 'Y' OR
425: NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).COPIED_FROM_OTHER_DOC_FLAG,'N') <> 'Y') OR
426: (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_source = 'APPLIED_FROM' AND
427: ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl(l_tax_id).applied_amt_handling_flag = 'R') OR
428: (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code = 'OVERRIDE_TAX' AND
429: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Recalc_Required_Flag = 'Y' AND
430: -- bug fix 5525890
431: NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry,'X') <> 'TAX_AMOUNT' )
432: THEN
425: NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).COPIED_FROM_OTHER_DOC_FLAG,'N') <> 'Y') OR
426: (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_source = 'APPLIED_FROM' AND
427: ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl(l_tax_id).applied_amt_handling_flag = 'R') OR
428: (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code = 'OVERRIDE_TAX' AND
429: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Recalc_Required_Flag = 'Y' AND
430: -- bug fix 5525890
431: NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry,'X') <> 'TAX_AMOUNT' )
432: THEN
433:
427: ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl(l_tax_id).applied_amt_handling_flag = 'R') OR
428: (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code = 'OVERRIDE_TAX' AND
429: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Recalc_Required_Flag = 'Y' AND
430: -- bug fix 5525890
431: NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry,'X') <> 'TAX_AMOUNT' )
432: THEN
433:
434: -- Initialize compounding_dep_tax_flag and compounding_tax_miss_flag
435: --
432: THEN
433:
434: -- Initialize compounding_dep_tax_flag and compounding_tax_miss_flag
435: --
436: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).compounding_dep_tax_flag := 'N';
437: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).compounding_tax_miss_flag := 'N';
438:
439: -- In case of manual tax lines or override with last manual entry
440: -- of tax_amount, calculate the taxable amount based on tax amount
433:
434: -- Initialize compounding_dep_tax_flag and compounding_tax_miss_flag
435: --
436: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).compounding_dep_tax_flag := 'N';
437: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).compounding_tax_miss_flag := 'N';
438:
439: -- In case of manual tax lines or override with last manual entry
440: -- of tax_amount, calculate the taxable amount based on tax amount
441: -- and line amount and not using the evaluation loop.
453: p_structure_index,
454: p_event_class_rec,
455: l_tax_id,
456: NULL,
457: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_determine_date,
458: NULL,
459: NULL,
460: l_zx_result_rec,
461: p_return_status,
501: END IF;
502: end if;
503:
504: l_formula_id:= l_zx_result_rec.numeric_result;
505: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).basis_result_id:= l_zx_result_rec.result_id;
506:
507: ELSE
508:
509: /* use cache
550: RETURN;
551: END IF;
552:
553: parameter_tbl(l_tax_id).tax_id:= l_tax_id;
554: parameter_tbl(l_tax_id).tax_rate:= ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate;
555: parameter_tbl(l_tax_id).formula_code:= l_formula_code;
556:
557:
558: -- This is the end of getting formula code
556:
557:
558: -- This is the end of getting formula code
559:
560: if ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Tax_Amt_Included_Flag = 'S' then
561: parameter_tbl(l_tax_id).weird_indicator:= 1;
562: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
563: i).tax_amt_included_flag := 'Y';
564: else
558: -- This is the end of getting formula code
559:
560: if ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Tax_Amt_Included_Flag = 'S' then
561: parameter_tbl(l_tax_id).weird_indicator:= 1;
562: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
563: i).tax_amt_included_flag := 'Y';
564: else
565: parameter_tbl(l_tax_id).weird_indicator:= 0;
566: end if;
566: end if;
567:
568: IF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_amt_includes_tax_flag(
569: p_structure_index) = 'I' OR
570: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
571: i).tax_amt_included_flag = 'Y'
572: THEN
573: parameter_tbl(l_tax_id).incl_indicator:= 1;
574: ELSE
597: -- When formula code is STANDARD_TB, the rate type should be PERCENT.
598: -- When formula code is STANDARD_QUANTITY, the rate type should be QUANTITY. Otherwise
599: -- multiplying taxable basis by tax rate will give incorrect result.
600: IF ( l_formula_code = 'STANDARD_TB' AND
601: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate_type <> 'PERCENTAGE' )
602: -- add following condition for bug fix 5481559
603: OR ( l_formula_code = 'STANDARD_QUANTITY' AND
604: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate_type <> 'QUANTITY' )
605: THEN
600: IF ( l_formula_code = 'STANDARD_TB' AND
601: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate_type <> 'PERCENTAGE' )
602: -- add following condition for bug fix 5481559
603: OR ( l_formula_code = 'STANDARD_QUANTITY' AND
604: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate_type <> 'QUANTITY' )
605: THEN
606:
607: p_return_status:= FND_API.G_RET_STS_ERROR;
608:
607: p_return_status:= FND_API.G_RET_STS_ERROR;
608:
609: FND_MESSAGE.SET_NAME('ZX','ZX_RATE_FORMULA_MISMATCH');
610: FND_MESSAGE.SET_TOKEN('RATE_TYPE',
611: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate_type);
612: FND_MESSAGE.SET_TOKEN('TAX',ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax );
613: FND_MESSAGE.SET_TOKEN('TAXABLE_BASIS_TYPE', NVL(l_Taxable_Basis_Type_Code, 'PERCENTAGE') );
614: FND_MESSAGE.SET_TOKEN('FORMULA_CODE', l_formula_code );
615:
608:
609: FND_MESSAGE.SET_NAME('ZX','ZX_RATE_FORMULA_MISMATCH');
610: FND_MESSAGE.SET_TOKEN('RATE_TYPE',
611: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate_type);
612: FND_MESSAGE.SET_TOKEN('TAX',ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax );
613: FND_MESSAGE.SET_TOKEN('TAXABLE_BASIS_TYPE', NVL(l_Taxable_Basis_Type_Code, 'PERCENTAGE') );
614: FND_MESSAGE.SET_TOKEN('FORMULA_CODE', l_formula_code );
615:
616: -- FND_MSG_PUB.Add;
613: FND_MESSAGE.SET_TOKEN('TAXABLE_BASIS_TYPE', NVL(l_Taxable_Basis_Type_Code, 'PERCENTAGE') );
614: FND_MESSAGE.SET_TOKEN('FORMULA_CODE', l_formula_code );
615:
616: -- FND_MSG_PUB.Add;
617: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_line_id :=
618: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_line_id;
619: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_level_type :=
620: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_level_type;
621:
614: FND_MESSAGE.SET_TOKEN('FORMULA_CODE', l_formula_code );
615:
616: -- FND_MSG_PUB.Add;
617: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_line_id :=
618: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_line_id;
619: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_level_type :=
620: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_level_type;
621:
622: ZX_API_PUB.add_msg(
615:
616: -- FND_MSG_PUB.Add;
617: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_line_id :=
618: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_line_id;
619: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_level_type :=
620: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_level_type;
621:
622: ZX_API_PUB.add_msg(
623: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec);
616: -- FND_MSG_PUB.Add;
617: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_line_id :=
618: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_line_id;
619: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_level_type :=
620: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_level_type;
621:
622: ZX_API_PUB.add_msg(
623: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec);
624:
619: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_level_type :=
620: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_level_type;
621:
622: ZX_API_PUB.add_msg(
623: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec);
624:
625: IF (g_level_error >= g_current_runtime_level ) THEN
626: FND_LOG.STRING(g_level_error ,
627: 'ZX.PLSQL.ZX_TDS_TAXABLE_BASIS_DETM_PKG.Get_taxable_basis',
639: -- applicable. Base rate modifier is set to 1
640: parameter_tbl(l_tax_id).discount:= 0;
641: parameter_tbl(l_tax_id).base_rate_modifier:= 1;
642:
643: -- if ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry = 'TAX_AMOUNT'
644: -- and ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code = 'OVERRIDE_TAX' then
645: --
646: -- -- This is a case where user has overridden tax amt on the tax engine
647: -- -- calculated tax. Hence do not apply taxable basis formula again, but
640: parameter_tbl(l_tax_id).discount:= 0;
641: parameter_tbl(l_tax_id).base_rate_modifier:= 1;
642:
643: -- if ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry = 'TAX_AMOUNT'
644: -- and ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code = 'OVERRIDE_TAX' then
645: --
646: -- -- This is a case where user has overridden tax amt on the tax engine
647: -- -- calculated tax. Hence do not apply taxable basis formula again, but
648: -- -- only set the overrideconst to overriddne tax amt.
648: -- -- only set the overrideconst to overriddne tax amt.
649: -- parameter_tbl(l_tax_id).basiscoef:= 0;
650: -- parameter_tbl(l_tax_id).constcoef:= 0;
651: -- parameter_tbl(l_tax_id).overrideconst:=
652: -- ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_tax_amt;
653: --
654: -- else
655: -- parameter_tbl(l_tax_id).basiscoef:= 1;
656: -- parameter_tbl(l_tax_id).constcoef:= 0;
708:
709: -- When Taxable Basis Type is not QUANTITY but the rate type is QUANTITY
710: -- then error should be raised, otherwise the tax calculation result will be incorrect.
711: IF ( parameter_tbl(l_tax_id).Taxable_Basis_Type_Code <> 'QUANTITY' AND
712: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate_type = 'QUANTITY')
713: OR
714: ( parameter_tbl(l_tax_id).Taxable_Basis_Type_Code = 'QUANTITY' AND
715: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate_type <> 'QUANTITY')
716: THEN
711: IF ( parameter_tbl(l_tax_id).Taxable_Basis_Type_Code <> 'QUANTITY' AND
712: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate_type = 'QUANTITY')
713: OR
714: ( parameter_tbl(l_tax_id).Taxable_Basis_Type_Code = 'QUANTITY' AND
715: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate_type <> 'QUANTITY')
716: THEN
717:
718: p_return_status:= FND_API.G_RET_STS_ERROR;
719:
718: p_return_status:= FND_API.G_RET_STS_ERROR;
719:
720: FND_MESSAGE.SET_NAME('ZX','ZX_RATE_FORMULA_MISMATCH');
721: FND_MESSAGE.SET_TOKEN('RATE_TYPE',
722: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate_type);
723: FND_MESSAGE.SET_TOKEN('TAX',ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax );
724: FND_MESSAGE.SET_TOKEN('TAXABLE_BASIS_TYPE', parameter_tbl(l_tax_id).Taxable_Basis_Type_Code);
725: FND_MESSAGE.SET_TOKEN('FORMULA_CODE', l_formula_code );
726:
719:
720: FND_MESSAGE.SET_NAME('ZX','ZX_RATE_FORMULA_MISMATCH');
721: FND_MESSAGE.SET_TOKEN('RATE_TYPE',
722: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate_type);
723: FND_MESSAGE.SET_TOKEN('TAX',ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax );
724: FND_MESSAGE.SET_TOKEN('TAXABLE_BASIS_TYPE', parameter_tbl(l_tax_id).Taxable_Basis_Type_Code);
725: FND_MESSAGE.SET_TOKEN('FORMULA_CODE', l_formula_code );
726:
727: -- FND_MSG_PUB.Add;
724: FND_MESSAGE.SET_TOKEN('TAXABLE_BASIS_TYPE', parameter_tbl(l_tax_id).Taxable_Basis_Type_Code);
725: FND_MESSAGE.SET_TOKEN('FORMULA_CODE', l_formula_code );
726:
727: -- FND_MSG_PUB.Add;
728: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_line_id :=
729: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_line_id;
730: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_level_type :=
731: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_level_type;
732:
725: FND_MESSAGE.SET_TOKEN('FORMULA_CODE', l_formula_code );
726:
727: -- FND_MSG_PUB.Add;
728: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_line_id :=
729: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_line_id;
730: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_level_type :=
731: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_level_type;
732:
733: ZX_API_PUB.add_msg(
726:
727: -- FND_MSG_PUB.Add;
728: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_line_id :=
729: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_line_id;
730: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_level_type :=
731: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_level_type;
732:
733: ZX_API_PUB.add_msg(
734: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec);
727: -- FND_MSG_PUB.Add;
728: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_line_id :=
729: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_line_id;
730: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_level_type :=
731: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_level_type;
732:
733: ZX_API_PUB.add_msg(
734: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec);
735:
730: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_level_type :=
731: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_level_type;
732:
733: ZX_API_PUB.add_msg(
734: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec);
735:
736: IF (g_level_error >= g_current_runtime_level ) THEN
737: FND_LOG.STRING(g_level_error ,
738: 'ZX.PLSQL.ZX_TDS_TAXABLE_BASIS_DETM_PKG.Get_taxable_basis',
812:
813: -- end of discount / charge
814:
815:
816: -- if ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry = 'TAX_AMOUNT'
817: -- and ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code = 'OVERRIDE_TAX' then
818:
819: -- -- This is a case where user has overridden tax amt on the tax engine
820: -- -- calculated tax. Hence do not apply taxable basis formula again, but
813: -- end of discount / charge
814:
815:
816: -- if ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry = 'TAX_AMOUNT'
817: -- and ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code = 'OVERRIDE_TAX' then
818:
819: -- -- This is a case where user has overridden tax amt on the tax engine
820: -- -- calculated tax. Hence do not apply taxable basis formula again, but
821: -- -- only set the overrideconst to overridden tax amt.
821: -- -- only set the overrideconst to overridden tax amt.
822: -- parameter_tbl(l_tax_id).basiscoef:= 0;
823: -- parameter_tbl(l_tax_id).constcoef:= 0;
824: -- parameter_tbl(l_tax_id).overrideconst:=
825: -- ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_tax_amt;
826:
827: -- else
828:
829: parameter_tbl(l_tax_id).basiscoef:=
947: FND_MESSAGE.SET_NAME('ZX','ZX_COMPND_TAX_NOT_FOUND');
948: FND_MESSAGE.SET_TOKEN('TAX',l_compounding_tax);
949: FND_MESSAGE.SET_TOKEN('FORMULA_CODE',l_formula_code);
950: -- FND_MSG_PUB.Add;
951: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_line_id :=
952: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_line_id;
953: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_level_type :=
954: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_level_type;
955:
948: FND_MESSAGE.SET_TOKEN('TAX',l_compounding_tax);
949: FND_MESSAGE.SET_TOKEN('FORMULA_CODE',l_formula_code);
950: -- FND_MSG_PUB.Add;
951: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_line_id :=
952: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_line_id;
953: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_level_type :=
954: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_level_type;
955:
956: ZX_API_PUB.add_msg(
949: FND_MESSAGE.SET_TOKEN('FORMULA_CODE',l_formula_code);
950: -- FND_MSG_PUB.Add;
951: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_line_id :=
952: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_line_id;
953: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_level_type :=
954: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_level_type;
955:
956: ZX_API_PUB.add_msg(
957: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec);
950: -- FND_MSG_PUB.Add;
951: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_line_id :=
952: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_line_id;
953: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_level_type :=
954: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_level_type;
955:
956: ZX_API_PUB.add_msg(
957: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec);
958:
953: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_level_type :=
954: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_level_type;
955:
956: ZX_API_PUB.add_msg(
957: ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec);
958:
959: IF (g_level_error >= g_current_runtime_level ) THEN
960: FND_LOG.STRING(g_level_error,
961: 'ZX.PLSQL.ZX_TDS_TAXABLE_BASIS_DETM_PKG.Get_taxable_basis',
969: RETURN;
970: ELSE
971: -- bug 3644541: set compounding_tax_miss_flag
972: --
973: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
974: i).compounding_tax_miss_flag := 'Y';
975: END IF;
976:
977: END IF; -- parameter_tbl.exists
1046: END IF;
1047:
1048: for i in p_begin_index..p_end_index loop
1049:
1050: l_tax_id := ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_id;
1051:
1052:
1053: -- Update the columns only for those lines which were not marked for
1054: -- deletion and which were not marked for claculation by providers
1057: -- Even if Freeze_Until_Overridden_Flag is 'Y', if the tax event type is
1058: -- OVERRIDE, then taxable amount should be calculated.
1059:
1060: CASE
1061: WHEN ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_provider_id is NOT NULL OR
1062: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Delete_Flag = 'Y'
1063: THEN
1064:
1065: NULL;
1058: -- OVERRIDE, then taxable amount should be calculated.
1059:
1060: CASE
1061: WHEN ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_provider_id is NOT NULL OR
1062: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Delete_Flag = 'Y'
1063: THEN
1064:
1065: NULL;
1066:
1063: THEN
1064:
1065: NULL;
1066:
1067: WHEN ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).OTHER_DOC_SOURCE = 'APPLIED_FROM' AND
1068: ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl(l_tax_id).applied_amt_handling_flag = 'P' AND
1069: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code <> 'OVERRIDE_TAX'
1070: THEN
1071: -- Proration Scenarios:
1065: NULL;
1066:
1067: WHEN ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).OTHER_DOC_SOURCE = 'APPLIED_FROM' AND
1068: ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl(l_tax_id).applied_amt_handling_flag = 'P' AND
1069: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code <> 'OVERRIDE_TAX'
1070: THEN
1071: -- Proration Scenarios:
1072: -- In the following cases, taxable basis is not calculated using taxable
1073: -- basis formula, but proration is done based on reference / applied from
1089: -- 4. Tax amount overridden in the summary tax line through the User Interface
1090: -- Taxable basis determination calcuates the taxable amount as
1091: -- tax amount / tax rate
1092:
1093: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_line_amt <> 0 THEN
1094:
1095: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt:=
1096: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_line_taxable_amt *
1097: ( ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).line_amt /
1091: -- tax amount / tax rate
1092:
1093: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_line_amt <> 0 THEN
1094:
1095: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt:=
1096: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_line_taxable_amt *
1097: ( ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).line_amt /
1098: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_line_amt );
1099:
1092:
1093: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_line_amt <> 0 THEN
1094:
1095: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt:=
1096: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_line_taxable_amt *
1097: ( ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).line_amt /
1098: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_line_amt );
1099:
1100: ELSE -- other_doc_line_amt = 0 OR IS NULL
1093: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_line_amt <> 0 THEN
1094:
1095: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt:=
1096: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_line_taxable_amt *
1097: ( ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).line_amt /
1098: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_line_amt );
1099:
1100: ELSE -- other_doc_line_amt = 0 OR IS NULL
1101: -- copy unrounded_taxable_amt from reference document,
1094:
1095: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt:=
1096: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_line_taxable_amt *
1097: ( ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).line_amt /
1098: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_line_amt );
1099:
1100: ELSE -- other_doc_line_amt = 0 OR IS NULL
1101: -- copy unrounded_taxable_amt from reference document,
1102: --
1099:
1100: ELSE -- other_doc_line_amt = 0 OR IS NULL
1101: -- copy unrounded_taxable_amt from reference document,
1102: --
1103: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt :=
1104: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_line_taxable_amt;
1105:
1106: END IF; -- other_doc_line_amt <> 0
1107:
1100: ELSE -- other_doc_line_amt = 0 OR IS NULL
1101: -- copy unrounded_taxable_amt from reference document,
1102: --
1103: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt :=
1104: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_line_taxable_amt;
1105:
1106: END IF; -- other_doc_line_amt <> 0
1107:
1108:
1106: END IF; -- other_doc_line_amt <> 0
1107:
1108:
1109: WHEN
1110: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Freeze_Until_Overridden_Flag = 'Y' AND
1111: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Overridden_Flag <> 'Y'
1112: THEN
1113: -- Taxable amounts should have been set to zero in applicability process.
1114: -- hence no processing required here.
1107:
1108:
1109: WHEN
1110: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Freeze_Until_Overridden_Flag = 'Y' AND
1111: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Overridden_Flag <> 'Y'
1112: THEN
1113: -- Taxable amounts should have been set to zero in applicability process.
1114: -- hence no processing required here.
1115:
1113: -- Taxable amounts should have been set to zero in applicability process.
1114: -- hence no processing required here.
1115:
1116: NULL;
1117: WHEN nvl(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Delete_Flag,'N') <> 'Y' AND
1118: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_provider_id is NULL AND
1119: (nvl(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Freeze_Until_Overridden_Flag,'N') <> 'Y' OR
1120: nvl(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).COPIED_FROM_OTHER_DOC_FLAG,'N') <> 'Y') OR
1121: (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code = 'OVERRIDE_TAX' AND
1114: -- hence no processing required here.
1115:
1116: NULL;
1117: WHEN nvl(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Delete_Flag,'N') <> 'Y' AND
1118: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_provider_id is NULL AND
1119: (nvl(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Freeze_Until_Overridden_Flag,'N') <> 'Y' OR
1120: nvl(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).COPIED_FROM_OTHER_DOC_FLAG,'N') <> 'Y') OR
1121: (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code = 'OVERRIDE_TAX' AND
1122: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Recalc_Required_Flag = 'Y') THEN
1115:
1116: NULL;
1117: WHEN nvl(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Delete_Flag,'N') <> 'Y' AND
1118: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_provider_id is NULL AND
1119: (nvl(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Freeze_Until_Overridden_Flag,'N') <> 'Y' OR
1120: nvl(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).COPIED_FROM_OTHER_DOC_FLAG,'N') <> 'Y') OR
1121: (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code = 'OVERRIDE_TAX' AND
1122: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Recalc_Required_Flag = 'Y') THEN
1123:
1116: NULL;
1117: WHEN nvl(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Delete_Flag,'N') <> 'Y' AND
1118: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_provider_id is NULL AND
1119: (nvl(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Freeze_Until_Overridden_Flag,'N') <> 'Y' OR
1120: nvl(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).COPIED_FROM_OTHER_DOC_FLAG,'N') <> 'Y') OR
1121: (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code = 'OVERRIDE_TAX' AND
1122: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Recalc_Required_Flag = 'Y') THEN
1123:
1124: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).taxable_basis_formula:=
1117: WHEN nvl(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Delete_Flag,'N') <> 'Y' AND
1118: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_provider_id is NULL AND
1119: (nvl(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Freeze_Until_Overridden_Flag,'N') <> 'Y' OR
1120: nvl(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).COPIED_FROM_OTHER_DOC_FLAG,'N') <> 'Y') OR
1121: (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code = 'OVERRIDE_TAX' AND
1122: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Recalc_Required_Flag = 'Y') THEN
1123:
1124: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).taxable_basis_formula:=
1125: parameter_tbl(l_tax_id).formula_code;
1118: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_provider_id is NULL AND
1119: (nvl(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Freeze_Until_Overridden_Flag,'N') <> 'Y' OR
1120: nvl(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).COPIED_FROM_OTHER_DOC_FLAG,'N') <> 'Y') OR
1121: (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code = 'OVERRIDE_TAX' AND
1122: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Recalc_Required_Flag = 'Y') THEN
1123:
1124: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).taxable_basis_formula:=
1125: parameter_tbl(l_tax_id).formula_code;
1126:
1120: nvl(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).COPIED_FROM_OTHER_DOC_FLAG,'N') <> 'Y') OR
1121: (ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code = 'OVERRIDE_TAX' AND
1122: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Recalc_Required_Flag = 'Y') THEN
1123:
1124: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).taxable_basis_formula:=
1125: parameter_tbl(l_tax_id).formula_code;
1126:
1127: IF parameter_tbl(l_tax_id).formula_code = 'STANDARD_QUANTITY' THEN
1128: -- For quantity based taxes, the calculation is not performed using
1131: -- For quantity based taxes, taxable amt is set equal to quantity
1132: -- although the field name indicates it is amt.
1133:
1134: parameter_tbl(l_tax_id).taxable_amt:=
1135: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_line_quantity;
1136:
1137: parameter_tbl(l_tax_id).tax_amt:= parameter_tbl(l_tax_id).taxable_amt *
1138: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate;--Bug 5185614
1139:
1134: parameter_tbl(l_tax_id).taxable_amt:=
1135: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_line_quantity;
1136:
1137: parameter_tbl(l_tax_id).tax_amt:= parameter_tbl(l_tax_id).taxable_amt *
1138: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate;--Bug 5185614
1139:
1140: ELSIF parameter_tbl(l_tax_id).Taxable_Basis_Type_Code = 'ASSESSABLE_VALUE' then
1141: -- For ASSESSABLE_VALUE formula, the taxable amt is the line assessable value.
1142: parameter_tbl(l_tax_id).taxable_amt:=
1139:
1140: ELSIF parameter_tbl(l_tax_id).Taxable_Basis_Type_Code = 'ASSESSABLE_VALUE' then
1141: -- For ASSESSABLE_VALUE formula, the taxable amt is the line assessable value.
1142: parameter_tbl(l_tax_id).taxable_amt:=
1143: nvl(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).line_assessable_value,
1144: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).line_amt);
1145:
1146: parameter_tbl(l_tax_id).tax_amt:= parameter_tbl(l_tax_id).taxable_amt *
1147: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate / 100;
1140: ELSIF parameter_tbl(l_tax_id).Taxable_Basis_Type_Code = 'ASSESSABLE_VALUE' then
1141: -- For ASSESSABLE_VALUE formula, the taxable amt is the line assessable value.
1142: parameter_tbl(l_tax_id).taxable_amt:=
1143: nvl(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).line_assessable_value,
1144: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).line_amt);
1145:
1146: parameter_tbl(l_tax_id).tax_amt:= parameter_tbl(l_tax_id).taxable_amt *
1147: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate / 100;
1148:
1143: nvl(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).line_assessable_value,
1144: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).line_amt);
1145:
1146: parameter_tbl(l_tax_id).tax_amt:= parameter_tbl(l_tax_id).taxable_amt *
1147: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate / 100;
1148:
1149: ELSE
1150:
1151: parameter_tbl(l_tax_id).taxable_amt:= l_common_comp_base *
1158: + parameter_tbl(l_tax_id).overrideconst;
1159:
1160: END IF;
1161:
1162: if ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry is null OR
1163: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry <> 'TAX_AMOUNT' then
1164:
1165: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt:= parameter_tbl(l_tax_id).taxable_amt;
1166: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_tax_amt:=
1159:
1160: END IF;
1161:
1162: if ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry is null OR
1163: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry <> 'TAX_AMOUNT' then
1164:
1165: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt:= parameter_tbl(l_tax_id).taxable_amt;
1166: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_tax_amt:=
1167: parameter_tbl(l_tax_id).tax_amt;
1161:
1162: if ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry is null OR
1163: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry <> 'TAX_AMOUNT' then
1164:
1165: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt:= parameter_tbl(l_tax_id).taxable_amt;
1166: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_tax_amt:=
1167: parameter_tbl(l_tax_id).tax_amt;
1168:
1169: elsif ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry = 'TAX_AMOUNT' THEN
1162: if ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry is null OR
1163: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry <> 'TAX_AMOUNT' then
1164:
1165: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt:= parameter_tbl(l_tax_id).taxable_amt;
1166: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_tax_amt:=
1167: parameter_tbl(l_tax_id).tax_amt;
1168:
1169: elsif ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry = 'TAX_AMOUNT' THEN
1170: -- bug 5237144:
1165: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt:= parameter_tbl(l_tax_id).taxable_amt;
1166: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_tax_amt:=
1167: parameter_tbl(l_tax_id).tax_amt;
1168:
1169: elsif ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry = 'TAX_AMOUNT' THEN
1170: -- bug 5237144:
1171: -- and ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code = 'OVERRIDE_TAX' then
1172:
1173: /* use cache
1167: parameter_tbl(l_tax_id).tax_amt;
1168:
1169: elsif ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry = 'TAX_AMOUNT' THEN
1170: -- bug 5237144:
1171: -- and ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code = 'OVERRIDE_TAX' then
1172:
1173: /* use cache
1174: OPEN getAdhocInfo(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate_id);
1175: FETCH getAdhocInfo into l_adj_for_adhoc_amt_code, l_allow_adhoc_tax_rate_flag;
1170: -- bug 5237144:
1171: -- and ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code = 'OVERRIDE_TAX' then
1172:
1173: /* use cache
1174: OPEN getAdhocInfo(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate_id);
1175: FETCH getAdhocInfo into l_adj_for_adhoc_amt_code, l_allow_adhoc_tax_rate_flag;
1176: IF getAdhocInfo%NOTFOUND THEN
1177: close getAdhocInfo;
1178: p_return_status := FND_API.G_RET_STS_ERROR;
1179: IF (g_level_error >= g_current_runtime_level ) THEN
1180: FND_LOG.STRING(g_level_error,
1181: 'ZX.PLSQL.ZX_TDS_TAXABLE_BASIS_DETM_PKG.Get_taxable_basis',
1182: 'No Data Found for tax_rate_code: '||
1183: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate_code ||
1184: ' tax_rate_id: ' ||
1185: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate_id );
1186: FND_LOG.STRING(g_level_error,
1187: 'ZX.PLSQL.ZX_TDS_TAXABLE_BASIS_DETM_PKG.get_taxable_basis.END',
1181: 'ZX.PLSQL.ZX_TDS_TAXABLE_BASIS_DETM_PKG.Get_taxable_basis',
1182: 'No Data Found for tax_rate_code: '||
1183: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate_code ||
1184: ' tax_rate_id: ' ||
1185: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate_id );
1186: FND_LOG.STRING(g_level_error,
1187: 'ZX.PLSQL.ZX_TDS_TAXABLE_BASIS_DETM_PKG.get_taxable_basis.END',
1188: 'ZX_TDS_TAXABLE_BASIS_DETM_PKG.get_taxable_basis (-)');
1189: END IF;
1192: CLOSE getAdhocInfo;
1193: */
1194:
1195: ZX_TDS_UTILITIES_PKG.get_tax_rate_info (
1196: p_tax_rate_id => ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate_id,
1197: p_tax_rate_rec => l_tax_rate_rec,
1198: p_return_status => p_return_status,
1199: p_error_buffer => p_error_buffer);
1200:
1210: l_allow_adhoc_tax_rate_flag := nvl(l_tax_rate_rec.Allow_Adhoc_Tax_Rate_Flag,'N');
1211:
1212: IF l_allow_adhoc_tax_rate_flag = 'N' OR
1213: (l_allow_adhoc_tax_rate_flag = 'Y' AND l_adj_for_adhoc_amt_code = 'TAXABLE_BASIS') OR
1214: NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).manually_entered_flag, 'N') = 'Y'
1215: THEN
1216: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate <> 0 THEN
1217: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).orig_taxable_amt IS NULL THEN
1218: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).orig_taxable_amt :=
1212: IF l_allow_adhoc_tax_rate_flag = 'N' OR
1213: (l_allow_adhoc_tax_rate_flag = 'Y' AND l_adj_for_adhoc_amt_code = 'TAXABLE_BASIS') OR
1214: NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).manually_entered_flag, 'N') = 'Y'
1215: THEN
1216: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate <> 0 THEN
1217: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).orig_taxable_amt IS NULL THEN
1218: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).orig_taxable_amt :=
1219: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).taxable_amt;
1220: END IF;
1213: (l_allow_adhoc_tax_rate_flag = 'Y' AND l_adj_for_adhoc_amt_code = 'TAXABLE_BASIS') OR
1214: NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).manually_entered_flag, 'N') = 'Y'
1215: THEN
1216: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate <> 0 THEN
1217: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).orig_taxable_amt IS NULL THEN
1218: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).orig_taxable_amt :=
1219: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).taxable_amt;
1220: END IF;
1221: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt:=
1214: NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).manually_entered_flag, 'N') = 'Y'
1215: THEN
1216: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate <> 0 THEN
1217: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).orig_taxable_amt IS NULL THEN
1218: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).orig_taxable_amt :=
1219: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).taxable_amt;
1220: END IF;
1221: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt:=
1222: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_tax_amt /
1215: THEN
1216: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate <> 0 THEN
1217: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).orig_taxable_amt IS NULL THEN
1218: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).orig_taxable_amt :=
1219: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).taxable_amt;
1220: END IF;
1221: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt:=
1222: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_tax_amt /
1223: --Start Bug 7310806
1217: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).orig_taxable_amt IS NULL THEN
1218: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).orig_taxable_amt :=
1219: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).taxable_amt;
1220: END IF;
1221: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt:=
1222: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_tax_amt /
1223: --Start Bug 7310806
1224: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate * 100;
1225: --parameter_tbl(l_tax_id).tax_rate * 100;
1218: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).orig_taxable_amt :=
1219: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).taxable_amt;
1220: END IF;
1221: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt:=
1222: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_tax_amt /
1223: --Start Bug 7310806
1224: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate * 100;
1225: --parameter_tbl(l_tax_id).tax_rate * 100;
1226: --End Bug 7310806
1220: END IF;
1221: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt:=
1222: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_tax_amt /
1223: --Start Bug 7310806
1224: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate * 100;
1225: --parameter_tbl(l_tax_id).tax_rate * 100;
1226: --End Bug 7310806
1227:
1228: -- ensuring that PRORATED_TB is not set for overriden tax lines.
1225: --parameter_tbl(l_tax_id).tax_rate * 100;
1226: --End Bug 7310806
1227:
1228: -- ensuring that PRORATED_TB is not set for overriden tax lines.
1229: IF NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).overridden_flag,'N') = 'N'
1230: OR NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).manually_entered_flag,'N') = 'Y' THEN
1231: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).taxable_basis_formula:= 'PRORATED_TB';
1232: END IF;
1233:
1226: --End Bug 7310806
1227:
1228: -- ensuring that PRORATED_TB is not set for overriden tax lines.
1229: IF NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).overridden_flag,'N') = 'N'
1230: OR NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).manually_entered_flag,'N') = 'Y' THEN
1231: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).taxable_basis_formula:= 'PRORATED_TB';
1232: END IF;
1233:
1234: ELSE
1227:
1228: -- ensuring that PRORATED_TB is not set for overriden tax lines.
1229: IF NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).overridden_flag,'N') = 'N'
1230: OR NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).manually_entered_flag,'N') = 'Y' THEN
1231: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).taxable_basis_formula:= 'PRORATED_TB';
1232: END IF;
1233:
1234: ELSE
1235:
1234: ELSE
1235:
1236: -- when tax_rate = 0, unrounded_tax_amt = 0, do nothing.
1237: -- Error out when Tax_rate = 0, unrounded_tax_amt <> 0.
1238: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_tax_amt <> 0 THEN
1239: p_return_status := FND_API.G_RET_STS_ERROR;
1240: IF (g_level_error >= g_current_runtime_level ) THEN
1241: FND_LOG.STRING(g_level_error,
1242: 'ZX.PLSQL.ZX_TDS_TAXABLE_BASIS_DETM_PKG.get_taxable_basis',
1253: 'ZX_TDS_TAXABLE_BASIS_DETM_PKG.get_taxable_basis (-)');
1254: END IF;
1255: RETURN;
1256: END IF;
1257: END IF; -- ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate
1258:
1259: ELSIF (l_allow_adhoc_tax_rate_flag = 'Y' AND l_adj_for_adhoc_amt_code = 'TAX_RATE')
1260: THEN
1261: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt <> 0 THEN
1257: END IF; -- ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate
1258:
1259: ELSIF (l_allow_adhoc_tax_rate_flag = 'Y' AND l_adj_for_adhoc_amt_code = 'TAX_RATE')
1260: THEN
1261: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt <> 0 THEN
1262:
1263: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).orig_tax_rate IS NULL THEN
1264: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).orig_tax_rate :=
1265: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate;
1259: ELSIF (l_allow_adhoc_tax_rate_flag = 'Y' AND l_adj_for_adhoc_amt_code = 'TAX_RATE')
1260: THEN
1261: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt <> 0 THEN
1262:
1263: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).orig_tax_rate IS NULL THEN
1264: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).orig_tax_rate :=
1265: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate;
1266: END IF;
1267:
1260: THEN
1261: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt <> 0 THEN
1262:
1263: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).orig_tax_rate IS NULL THEN
1264: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).orig_tax_rate :=
1265: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate;
1266: END IF;
1267:
1268: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate :=
1261: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt <> 0 THEN
1262:
1263: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).orig_tax_rate IS NULL THEN
1264: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).orig_tax_rate :=
1265: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate;
1266: END IF;
1267:
1268: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate :=
1269: round(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_tax_amt/
1264: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).orig_tax_rate :=
1265: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate;
1266: END IF;
1267:
1268: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate :=
1269: round(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_tax_amt/
1270: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt*100, 6);
1271:
1272: ELSE
1265: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate;
1266: END IF;
1267:
1268: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate :=
1269: round(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_tax_amt/
1270: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt*100, 6);
1271:
1272: ELSE
1273: -- when Taxable_amt = 0, unrounded_tax_amt = 0, do nothing.
1266: END IF;
1267:
1268: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate :=
1269: round(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_tax_amt/
1270: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt*100, 6);
1271:
1272: ELSE
1273: -- when Taxable_amt = 0, unrounded_tax_amt = 0, do nothing.
1274: -- Error out when Taxable_amt = 0, unrounded_tax_amt <> 0.
1271:
1272: ELSE
1273: -- when Taxable_amt = 0, unrounded_tax_amt = 0, do nothing.
1274: -- Error out when Taxable_amt = 0, unrounded_tax_amt <> 0.
1275: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_tax_amt <> 0 THEN
1276: p_return_status := FND_API.G_RET_STS_ERROR;
1277: IF (g_level_error >= g_current_runtime_level ) THEN
1278: FND_LOG.STRING(g_level_error,
1279: 'ZX.PLSQL.ZX_TDS_TAXABLE_BASIS_DETM_PKG.get_taxable_basis',
1291: END IF;
1292: RETURN;
1293: END IF;
1294:
1295: END IF; -- ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt
1296: END IF;
1297:
1298: end if; -- ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry
1299:
1294:
1295: END IF; -- ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt
1296: END IF;
1297:
1298: end if; -- ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry
1299:
1300: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_base_modifier_rate:=
1301: parameter_tbl(l_tax_id).base_rate_modifier;
1302: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Compounding_Tax_Flag:=
1296: END IF;
1297:
1298: end if; -- ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry
1299:
1300: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_base_modifier_rate:=
1301: parameter_tbl(l_tax_id).base_rate_modifier;
1302: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Compounding_Tax_Flag:=
1303: parameter_tbl(l_tax_id).compounding_flg;
1304: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Compounding_Dep_Tax_Flag:=
1298: end if; -- ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_manual_entry
1299:
1300: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_base_modifier_rate:=
1301: parameter_tbl(l_tax_id).base_rate_modifier;
1302: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Compounding_Tax_Flag:=
1303: parameter_tbl(l_tax_id).compounding_flg;
1304: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Compounding_Dep_Tax_Flag:=
1305: parameter_tbl(l_tax_id).compounding_dep_flg;
1306:
1300: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_base_modifier_rate:=
1301: parameter_tbl(l_tax_id).base_rate_modifier;
1302: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Compounding_Tax_Flag:=
1303: parameter_tbl(l_tax_id).compounding_flg;
1304: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Compounding_Dep_Tax_Flag:=
1305: parameter_tbl(l_tax_id).compounding_dep_flg;
1306:
1307:
1308: WHEN ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Freeze_Until_Overridden_Flag = 'Y' THEN
1304: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Compounding_Dep_Tax_Flag:=
1305: parameter_tbl(l_tax_id).compounding_dep_flg;
1306:
1307:
1308: WHEN ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Freeze_Until_Overridden_Flag = 'Y' THEN
1309:
1310: NULL;
1311:
1312: ELSE -- default case
1317:
1318: -- polpulate tax_amt_included_flag and compounding_tax_flag in
1319: -- ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl
1320: --
1321: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
1322: i).tax_amt_included_flag = 'Y' THEN
1323:
1324: ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.tax_amt_included_flag(
1325: p_structure_index) := 'Y';
1324: ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.tax_amt_included_flag(
1325: p_structure_index) := 'Y';
1326: END IF;
1327:
1328: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
1329: i).compounding_dep_tax_flag = 'Y' THEN
1330:
1331: ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.compounding_tax_flag(
1332: p_structure_index) := 'Y';
1401: --
1402: IF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_amt_includes_tax_flag(
1403: p_structure_index) = 'A'
1404: THEN
1405: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
1406: p_tax_line_index).tax_amt_included_flag := 'Y';
1407:
1408:
1409: ELSIF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_amt_includes_tax_flag(
1408:
1409: ELSIF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_amt_includes_tax_flag(
1410: p_structure_index) = 'N'
1411: THEN
1412: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
1413: p_tax_line_index).tax_amt_included_flag := 'N';
1414:
1415: ELSIF ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.line_amt_includes_tax_flag(
1416: p_structure_index) IN ('S', 'I')
1419: -- Get tax_amt_included_flag from tax rate
1420: --
1421: /* use cache
1422: OPEN get_inclusive_flag_from_rate(
1423: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_tax_line_index).tax_rate_id);
1424: FETCH get_inclusive_flag_from_rate INTO l_inclusive_tax_flag;
1425: CLOSE get_inclusive_flag_from_rate;
1426: */
1427:
1425: CLOSE get_inclusive_flag_from_rate;
1426: */
1427:
1428: ZX_TDS_UTILITIES_PKG.get_tax_rate_info (
1429: p_tax_rate_id => ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
1430: p_tax_line_index).tax_rate_id,
1431: p_tax_rate_rec => l_tax_rate_rec,
1432: p_return_status => p_return_status,
1433: p_error_buffer => p_error_buffer);
1437: IF l_inclusive_tax_flag IS NOT NULL THEN
1438:
1439: -- populate inclusive_tax_flag onto detail tax line
1440: --
1441: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
1442: p_tax_line_index).tax_amt_included_flag := l_inclusive_tax_flag;
1443:
1444: IF g_level_statement >= g_current_runtime_level THEN
1445: FND_LOG.STRING(g_level_statement,
1452: -- process(inclusive_tax_flag has already been stamped onto
1453: -- detail tax line). If it is not available, get
1454: -- inclusive_tax_flag from ptp table
1455: --
1456: IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
1457: p_tax_line_index).tax_amt_included_flag IS NOT NULL THEN
1458: IF g_level_statement >= g_current_runtime_level THEN
1459: FND_LOG.STRING(g_level_statement,
1460: 'ZX.PLSQL.ZX_TDS_TAXABLE_BASIS_DETM_PKG.populate_inclusive_tax_flag',
1458: IF g_level_statement >= g_current_runtime_level THEN
1459: FND_LOG.STRING(g_level_statement,
1460: 'ZX.PLSQL.ZX_TDS_TAXABLE_BASIS_DETM_PKG.populate_inclusive_tax_flag',
1461: 'tax_amt_included_flag available from tax registration. ' ||
1462: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
1463: p_tax_line_index).tax_amt_included_flag);
1464: END IF;
1465: ELSE
1466:
1470: --
1471: -- Get tax inclusive flag with l_site_ptp_id
1472: --
1473: l_reg_party_type :=
1474: REPLACE(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
1475: p_tax_line_index).registration_party_type,
1476: 'PARTY', 'SITE') || '_' || 'TAX_PROF_ID';
1477:
1478: ZX_GET_TAX_PARAM_DRIVER_PKG.get_driver_value(
1501: IF l_inclusive_tax_flag IS NOT NULL THEN
1502:
1503: -- populate inclusive_tax_flag onto detail tax line
1504: --
1505: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
1506: p_tax_line_index).tax_amt_included_flag := l_inclusive_tax_flag;
1507:
1508: IF g_level_statement >= g_current_runtime_level THEN
1509: FND_LOG.STRING(g_level_statement,
1515: ELSE -- l_inclusive_tax_flag is not found from SITE PTP
1516:
1517: -- Get tax inclusive flag with l_ptp_id
1518: --
1519: l_reg_party_type:= ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
1520: p_tax_line_index).registration_party_type || '_TAX_PROF_ID';
1521:
1522: ZX_GET_TAX_PARAM_DRIVER_PKG.get_driver_value(
1523: p_structure_name,
1545: IF l_inclusive_tax_flag IS NOT NULL THEN
1546:
1547: -- populate inclusive_tax_flag onto detail tax line
1548: --
1549: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
1550: p_tax_line_index).tax_amt_included_flag := l_inclusive_tax_flag;
1551:
1552: IF g_level_statement >= g_current_runtime_level THEN
1553: FND_LOG.STRING(g_level_statement,
1558: ELSE
1559: -- Get Get tax inclusive flag from Tax
1560: --
1561: l_inclusive_tax_flag := ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl(
1562: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
1563: p_tax_line_index).tax_id).def_inclusive_tax_flag;
1564:
1565: IF l_inclusive_tax_flag IS NOT NULL THEN
1566:
1563: p_tax_line_index).tax_id).def_inclusive_tax_flag;
1564:
1565: IF l_inclusive_tax_flag IS NOT NULL THEN
1566:
1567: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
1568: p_tax_line_index).tax_amt_included_flag := l_inclusive_tax_flag;
1569:
1570: IF g_level_statement >= g_current_runtime_level THEN
1571: FND_LOG.STRING(g_level_statement,
1578:
1579: -- Bug 4778841: default l_inclusive_tax_flag to 'N' when it is NULL
1580: --
1581: l_inclusive_tax_flag := 'N';
1582: ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
1583: p_tax_line_index).tax_amt_included_flag := l_inclusive_tax_flag;
1584:
1585: IF g_level_statement >= g_current_runtime_level THEN
1586: FND_LOG.STRING(g_level_statement,