[Home] [Help]
PACKAGE BODY: APPS.ZX_PRODUCT_INTEGRATION_PKG
Source
1 PACKAGE BODY ZX_PRODUCT_INTEGRATION_PKG AS
2 /* $Header: zxdiprodintgpkgb.pls 120.74 2011/05/05 13:23:37 ssanka ship $ */
3
4 -- global variable
5 pg_debug VARCHAR2(1);
6 dummy VARCHAR2(25);
7
8 C_LINES_PER_INSERT CONSTANT NUMBER :=1000;
9
10 g_current_runtime_level NUMBER;
11 g_level_statement CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
12 g_level_procedure CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
13 g_level_event CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
14 g_level_unexpected CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
15
16
17 pg_application_id NUMBER;
18 pg_application_short_name FND_APPLICATION.APPLICATION_SHORT_NAME%TYPE;
19
20 pg_old_customer_trx_id NUMBER;
21 pg_cm_type VARCHAR2(15);
22 pg_bad_lines NUMBER;
23
24 -- global variables for arp_tax_calculate
25 pg_tax_rate_passed ar_vat_tax.tax_rate%TYPE;
26 pg_adhoc_tax_code VARCHAR2(1);
27
28 -- Record Type modified as a fix for Bug#7530930
29 TYPE tax_line_rec_type is RECORD (
30 summary_tax_line_number zx_import_tax_lines_gt.summary_tax_line_number%TYPE,
31 internal_organization_id zx_import_tax_lines_gt.internal_organization_id%TYPE,
32 tax_regime_code zx_import_tax_lines_gt.tax_regime_code%TYPE,
33 tax zx_import_tax_lines_gt.tax%TYPE,
34 tax_status_code zx_import_tax_lines_gt.tax_status_code%TYPE,
35 tax_rate_code zx_import_tax_lines_gt.tax_rate_code%TYPE,
36 tax_rate zx_import_tax_lines_gt.tax_rate%TYPE,
37 tax_amt zx_import_tax_lines_gt.tax_amt%TYPE,
38 tax_jurisdiction_code zx_import_tax_lines_gt.tax_jurisdiction_code%TYPE,
39 tax_amt_included_flag zx_import_tax_lines_gt.tax_amt_included_flag%TYPE,
40 tax_rate_id zx_import_tax_lines_gt.tax_rate_id%TYPE,
41 tax_provider_id zx_import_tax_lines_gt.tax_provider_id%TYPE,
42 tax_exception_id zx_import_tax_lines_gt.tax_exception_id%TYPE,
43 tax_exemption_id zx_import_tax_lines_gt.tax_exemption_id%TYPE,
44 exempt_reason_code zx_import_tax_lines_gt.exempt_reason_code%TYPE,
45 exempt_certificate_number zx_import_tax_lines_gt.exempt_certificate_number%TYPE,
46 trx_line_id zx_transaction_lines_gt.trx_line_id%TYPE,
47 line_amt zx_transaction_lines_gt.line_amt%TYPE,
48 trx_date zx_trx_headers_gt.trx_date%TYPE,
49 minimum_accountable_unit zx_trx_headers_gt.minimum_accountable_unit%TYPE,
50 precision zx_trx_headers_gt.precision%TYPE,
51 trx_level_type zx_transaction_lines_gt.trx_level_type%TYPE,
52 trx_line_date zx_transaction_lines_gt.trx_line_date%TYPE,
53 adjusted_doc_date zx_transaction_lines_gt.adjusted_doc_date%TYPE,
54 line_level_action zx_transaction_lines_gt.line_level_action%TYPE,
55 interface_entity_code zx_import_tax_lines_gt.interface_entity_code%TYPE,
56 interface_tax_line_id zx_import_tax_lines_gt.interface_tax_line_id%TYPE,
57 related_doc_date zx_trx_headers_gt.related_doc_date%TYPE,
58 provnl_tax_determination_date zx_trx_headers_gt.provnl_tax_determination_date%TYPE,
59 tax_date zx_transaction_lines_gt.tax_date%type,
60 tax_determine_date zx_transaction_lines_gt.tax_determine_date%type,
61 tax_point_date zx_transaction_lines_gt.tax_point_date%type
62 );
63
64 -- Private Methods
65 PROCEDURE get_vat_tax_rate;
66
67 PROCEDURE import_trx_line_with_taxes (
68 p_event_class_rec IN zx_api_pub.event_class_rec_type,
69 p_id_dist_tbl IN NUMBER,
70 x_return_status OUT NOCOPY VARCHAR2);
71
72 PROCEDURE calculate_tax_lte (
73 p_event_class_rec IN ZX_API_PUB.EVENT_CLASS_REC_TYPE,
74 p_id_dist_tbl IN NUMBER,
75 x_return_status OUT NOCOPY VARCHAR2
76 );
77
78 PROCEDURE prepare_tax_info_rec(
79 p_index IN NUMBER
80 );
81
82 PROCEDURE process_tax_rec_f_sql_lte (
83 p_appl_short_name IN VARCHAR2
84 );
85
86 PROCEDURE arp_tax_calculate;
87
88 PROCEDURE prepare_detail_tax_line(
89 p_event_class_rec IN zx_api_pub.event_class_rec_type,
90 p_id_dist_tbl IN NUMBER,
91 p_new_row_num IN NUMBER,
92 p_tax_out_rec IN tax_info_rec_TYPE
93 );
94
95 PROCEDURE create_detail_tax_line (
96 p_event_class_rec IN zx_api_pub.event_class_rec_type,
97 p_tax_line_rec IN tax_line_rec_type,
98 p_id_dist_tbl IN NUMBER,
99 p_new_row_num IN NUMBER,
100 x_return_status OUT NOCOPY VARCHAR2);
101
102 PROCEDURE get_tax_rate_id (
103 p_tax_regime_code IN VARCHAR2,
104 p_tax IN VARCHAR2,
105 p_tax_status_code IN VARCHAR2,
106 p_tax_rate_code IN VARCHAR2,
107 p_tax_determine_date IN DATE,
108 p_tax_jurisdiction_code IN VARCHAR2, -- bug#5395227
109 x_tax_rate_id OUT NOCOPY NUMBER,
110 x_return_status OUT NOCOPY VARCHAR2,
111 x_error_buffer OUT NOCOPY VARCHAR2); -- bug#5395227
112
113 FUNCTION adjust_compound_inclusive return NUMBER;
114
115 -- Procedure added to fetch the existing manual tax lines -- Bug#8256247
116 PROCEDURE fetch_manual_tax_lines (
117 p_event_class_rec IN ZX_API_PUB.event_class_rec_type,
118 p_index IN BINARY_INTEGER,
119 x_return_status OUT NOCOPY VARCHAR2
120 );
121
122 -- Procedure added to fetch the manual tax -- Bug#8776916
123 -- lines of adjusted doc for the CM creation
124 PROCEDURE get_manual_tax_lines_for_cm (
125 p_event_class_rec IN ZX_API_PUB.event_class_rec_type,
126 p_index IN BINARY_INTEGER,
127 x_return_status OUT NOCOPY VARCHAR2
128 );
129
130 /*===========================================================================+
131 | PROCEDURE |
132 | initialize |
133 | |
134 | DESCRIPTION |
135 | Initialize the debug info, cache info. set System and Profile |
136 | options required by the Tax Entity Handler and other functions in |
137 | the global records sysinfo and profinfo. |
138 | SCOPE - PRIVATE |
139 | |
140 | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED |
141 | |
142 | CALLED FROM |
143 | calculate_tax |
144 | NOTES |
145 | MODIFICATION HISTORY |
146 | 30-Dec-2003 Ling Zhang modified from |
147 | arp_tax_crm_integration_pkg.initialize |
148 | 27-Dec-2004 Nilesh Patel created from arp_tax |
149 +===========================================================================*/
150
151 PROCEDURE initialize(
152 p_event_class_rec IN zx_api_pub.event_class_rec_type,
153 x_return_status OUT NOCOPY VARCHAR2
154 ) is
155
156 CURSOR c_application_short_name (l_appl_id IN NUMBER) IS
157 SELECT application_short_name, application_id
158 FROM FND_APPLICATION
159 WHERE application_id = l_appl_id;
160
161 l_last_org_id NUMBER;
162 l_debug_flag VARCHAR2(1);
163 l_security_profile_id FND_PROFILE_OPTION_VALUES.PROFILE_OPTION_VALUE%TYPE := NULL;
164
165 l_chart_of_accounts_id gl_sets_of_books.chart_of_accounts_id%type;
166 l_functional_currency gl_sets_of_books.currency_code%type;
167 l_base_precision fnd_currencies.precision%type;
168 l_base_min_acc_unit fnd_currencies.minimum_accountable_unit%type;
169 l_master_org_id oe_system_parameters_all.master_organization_id%type;
170 l_sob_test gl_sets_of_books.set_of_books_id%type;
171 -- bug fix 3142794 l_last_org_id ar_system_parameters_all.org_id%type;
172
173 type l_ar_sys_rec is record(
174 DEFAULT_GROUPING_RULE_ID AR_SYSTEM_PARAMETERS_ALL.DEFAULT_GROUPING_RULE_ID%TYPE,
175 SALESREP_REQUIRED_FLAG AR_SYSTEM_PARAMETERS_ALL.SALESREP_REQUIRED_FLAG%TYPE ,
176 ATTRIBUTE11 AR_SYSTEM_PARAMETERS_ALL.ATTRIBUTE11%TYPE,
177 ATTRIBUTE12 AR_SYSTEM_PARAMETERS_ALL.ATTRIBUTE12%TYPE,
178 ATTRIBUTE13 AR_SYSTEM_PARAMETERS_ALL.ATTRIBUTE13%TYPE,
179 ATTRIBUTE14 AR_SYSTEM_PARAMETERS_ALL.ATTRIBUTE14%TYPE,
180 ATTRIBUTE15 AR_SYSTEM_PARAMETERS_ALL.ATTRIBUTE15%TYPE,
181 AUTO_REC_INVOICES_PER_COMMIT AR_SYSTEM_PARAMETERS_ALL.AUTO_REC_INVOICES_PER_COMMIT%type,
182 AUTO_REC_RECEIPTS_PER_COMMIT AR_SYSTEM_PARAMETERS_ALL.AUTO_REC_RECEIPTS_PER_COMMIT%type,
183 PAY_UNRELATED_INVOICES_FLAG AR_SYSTEM_PARAMETERS_ALL.PAY_UNRELATED_INVOICES_FLAG%type,
184 PRINT_HOME_COUNTRY_FLAG AR_SYSTEM_PARAMETERS_ALL.PRINT_HOME_COUNTRY_FLAG%type,
185 LOCATION_TAX_ACCOUNT AR_SYSTEM_PARAMETERS_ALL.LOCATION_TAX_ACCOUNT%type,
186 FROM_POSTAL_CODE AR_SYSTEM_PARAMETERS_ALL.FROM_POSTAL_CODE%type,
187 TO_POSTAL_CODE AR_SYSTEM_PARAMETERS_ALL.TO_POSTAL_CODE%type,
188 TAX_REGISTRATION_NUMBER AR_SYSTEM_PARAMETERS_ALL.TAX_REGISTRATION_NUMBER%type,
189 POPULATE_GL_SEGMENTS_FLAG AR_SYSTEM_PARAMETERS_ALL.POPULATE_GL_SEGMENTS_FLAG%type,
190 UNALLOCATED_REVENUE_CCID AR_SYSTEM_PARAMETERS_ALL. UNALLOCATED_REVENUE_CCID%type,
191 ORG_ID AR_SYSTEM_PARAMETERS_ALL.ORG_ID%TYPE,
192 ATTRIBUTE9 AR_SYSTEM_PARAMETERS_ALL.ATTRIBUTE9%TYPE,
193 ATTRIBUTE10 AR_SYSTEM_PARAMETERS_ALL.ATTRIBUTE10%TYPE,
194 CALC_DISCOUNT_ON_LINES_FLAG AR_SYSTEM_PARAMETERS_ALL.CALC_DISCOUNT_ON_LINES_FLAG%type,
195 CHANGE_PRINTED_INVOICE_FLAG AR_SYSTEM_PARAMETERS_ALL.CHANGE_PRINTED_INVOICE_FLAG%type,
196 CODE_COMBINATION_ID_LOSS AR_SYSTEM_PARAMETERS_ALL.CODE_COMBINATION_ID_LOSS%type,
197 CREATE_RECIPROCAL_FLAG AR_SYSTEM_PARAMETERS_ALL. CREATE_RECIPROCAL_FLAG%type,
198 DEFAULT_COUNTRY AR_SYSTEM_PARAMETERS_ALL.DEFAULT_COUNTRY%type,
199 DEFAULT_TERRITORY AR_SYSTEM_PARAMETERS_ALL.DEFAULT_TERRITORY%type,
200 GENERATE_CUSTOMER_NUMBER AR_SYSTEM_PARAMETERS_ALL.GENERATE_CUSTOMER_NUMBER%type,
201 INVOICE_DELETION_FLAG AR_SYSTEM_PARAMETERS_ALL.INVOICE_DELETION_FLAG%type,
202 LOCATION_STRUCTURE_ID AR_SYSTEM_PARAMETERS_ALL.LOCATION_STRUCTURE_ID %type,
203 SITE_REQUIRED_FLAG AR_SYSTEM_PARAMETERS_ALL.SITE_REQUIRED_FLAG%type,
204 TAX_ALLOW_COMPOUND_FLAG AR_SYSTEM_PARAMETERS_ALL.TAX_ALLOW_COMPOUND_FLAG%type,
205 TAX_INVOICE_PRINT AR_SYSTEM_PARAMETERS_ALL.TAX_INVOICE_PRINT%type,
206 TAX_METHOD AR_SYSTEM_PARAMETERS_ALL. TAX_METHOD%type,
207 TAX_USE_CUSTOMER_EXEMPT_FLAG AR_SYSTEM_PARAMETERS_ALL.TAX_USE_CUSTOMER_EXEMPT_FLAG%type,
208 TAX_USE_CUST_EXC_RATE_FLAG AR_SYSTEM_PARAMETERS_ALL. TAX_USE_CUST_EXC_RATE_FLAG%type,
209 TAX_USE_LOC_EXC_RATE_FLAG AR_SYSTEM_PARAMETERS_ALL.TAX_USE_LOC_EXC_RATE_FLAG%type,
210 TAX_USE_PRODUCT_EXEMPT_FLAG AR_SYSTEM_PARAMETERS_ALL.TAX_USE_PRODUCT_EXEMPT_FLAG%type,
211 TAX_USE_PROD_EXC_RATE_FLAG AR_SYSTEM_PARAMETERS_ALL. TAX_USE_PROD_EXC_RATE_FLAG%type,
212 TAX_USE_SITE_EXC_RATE_FLAG AR_SYSTEM_PARAMETERS_ALL.TAX_USE_SITE_EXC_RATE_FLAG%type,
213 AI_LOG_FILE_MESSAGE_LEVEL AR_SYSTEM_PARAMETERS_ALL. AI_LOG_FILE_MESSAGE_LEVEL%type,
214 AI_MAX_MEMORY_IN_BYTES AR_SYSTEM_PARAMETERS_ALL.AI_MAX_MEMORY_IN_BYTES%type,
215 AI_ACCT_FLEX_KEY_LEFT_PROMPT AR_SYSTEM_PARAMETERS_ALL. AI_ACCT_FLEX_KEY_LEFT_PROMPT%type,
216 AI_MTL_ITEMS_KEY_LEFT_PROMPT AR_SYSTEM_PARAMETERS_ALL.AI_MTL_ITEMS_KEY_LEFT_PROMPT%type,
217 AI_TERRITORY_KEY_LEFT_PROMPT AR_SYSTEM_PARAMETERS_ALL.AI_TERRITORY_KEY_LEFT_PROMPT%type,
218 AI_PURGE_INTERFACE_TABLES_FLAG AR_SYSTEM_PARAMETERS_ALL. AI_PURGE_INTERFACE_TABLES_FLAG%type,
219 AI_ACTIVATE_SQL_TRACE_FLAG AR_SYSTEM_PARAMETERS_ALL.AI_ACTIVATE_SQL_TRACE_FLAG %type,
220 SET_OF_BOOKS_ID AR_SYSTEM_PARAMETERS_ALL.SET_OF_BOOKS_ID%type,
221 CREATED_BY AR_SYSTEM_PARAMETERS_ALL. CREATED_BY%type,
222 CREATION_DATE AR_SYSTEM_PARAMETERS_ALL.CREATION_DATE%TYPE,
223 LAST_UPDATED_BY AR_SYSTEM_PARAMETERS_ALL.LAST_UPDATED_BY%TYPE,
224 LAST_UPDATE_DATE AR_SYSTEM_PARAMETERS_ALL.LAST_UPDATE_DATE%type,
225 LAST_UPDATE_LOGIN AR_SYSTEM_PARAMETERS_ALL. LAST_UPDATE_LOGIN%type,
226 ACCOUNTING_METHOD AR_SYSTEM_PARAMETERS_ALL.ACCOUNTING_METHOD%TYPE,
227 ACCRUE_INTEREST AR_SYSTEM_PARAMETERS_ALL.ACCRUE_INTEREST%TYPE,
228 UNEARNED_DISCOUNT AR_SYSTEM_PARAMETERS_ALL.UNEARNED_DISCOUNT%TYPE,
229 PARTIAL_DISCOUNT_FLAG AR_SYSTEM_PARAMETERS_ALL.PARTIAL_DISCOUNT_FLAG%type,
230 PRINT_REMIT_TO AR_SYSTEM_PARAMETERS_ALL. PRINT_REMIT_TO%type,
231 DEFAULT_CB_DUE_DATE AR_SYSTEM_PARAMETERS_ALL. DEFAULT_CB_DUE_DATE%type,
232 AUTO_SITE_NUMBERING AR_SYSTEM_PARAMETERS_ALL.AUTO_SITE_NUMBERING%type,
233 CASH_BASIS_SET_OF_BOOKS_ID AR_SYSTEM_PARAMETERS_ALL.CASH_BASIS_SET_OF_BOOKS_ID%type,
234 CODE_COMBINATION_ID_GAIN AR_SYSTEM_PARAMETERS_ALL.CODE_COMBINATION_ID_GAIN%type,
235 AUTOCASH_HIERARCHY_ID AR_SYSTEM_PARAMETERS_ALL. AUTOCASH_HIERARCHY_ID%type,
236 RUN_GL_JOURNAL_IMPORT_FLAG AR_SYSTEM_PARAMETERS_ALL.RUN_GL_JOURNAL_IMPORT_FLAG%type,
237 CER_SPLIT_AMOUNT AR_SYSTEM_PARAMETERS_ALL. CER_SPLIT_AMOUNT%type,
238 CER_DSO_DAYS AR_SYSTEM_PARAMETERS_ALL.CER_DSO_DAYS%type,
239 POSTING_DAYS_PER_CYCLE AR_SYSTEM_PARAMETERS_ALL.POSTING_DAYS_PER_CYCLE%type,
240 ADDRESS_VALIDATION AR_SYSTEM_PARAMETERS_ALL. ADDRESS_VALIDATION%type,
241 ATTRIBUTE1 AR_SYSTEM_PARAMETERS_ALL.ATTRIBUTE1%type,
242 ATTRIBUTE2 AR_SYSTEM_PARAMETERS_ALL.ATTRIBUTE2%type,
243 ATTRIBUTE_CATEGORY AR_SYSTEM_PARAMETERS_ALL.ATTRIBUTE_CATEGORY%type,
244 ATTRIBUTE3 AR_SYSTEM_PARAMETERS_ALL.ATTRIBUTE3%type,
245 ATTRIBUTE4 AR_SYSTEM_PARAMETERS_ALL.ATTRIBUTE4%type,
246 ATTRIBUTE5 AR_SYSTEM_PARAMETERS_ALL.ATTRIBUTE5%type,
247 ATTRIBUTE6 AR_SYSTEM_PARAMETERS_ALL.ATTRIBUTE6%type,
248 ATTRIBUTE7 AR_SYSTEM_PARAMETERS_ALL.ATTRIBUTE7%type,
249 ATTRIBUTE8 AR_SYSTEM_PARAMETERS_ALL.ATTRIBUTE8%type,
250 TAX_CODE AR_SYSTEM_PARAMETERS_ALL.TAX_CODE%type,
251 TAX_CURRENCY_CODE AR_SYSTEM_PARAMETERS_ALL.TAX_CURRENCY_CODE%type,
252 TAX_HEADER_LEVEL_FLAG AR_SYSTEM_PARAMETERS_ALL.TAX_HEADER_LEVEL_FLAG%type,
253 TAX_MINIMUM_ACCOUNTABLE_UNIT AR_SYSTEM_PARAMETERS_ALL.TAX_MINIMUM_ACCOUNTABLE_UNIT%type,
254 TAX_PRECISION AR_SYSTEM_PARAMETERS_ALL.TAX_PRECISION%type,
255 TAX_ROUNDING_RULE AR_SYSTEM_PARAMETERS_ALL.TAX_ROUNDING_RULE%type,
256 GLOBAL_ATTRIBUTE1 AR_SYSTEM_PARAMETERS_ALL.GLOBAL_ATTRIBUTE1%type,
257 GLOBAL_ATTRIBUTE2 AR_SYSTEM_PARAMETERS_ALL.GLOBAL_ATTRIBUTE2%type,
258 GLOBAL_ATTRIBUTE3 AR_SYSTEM_PARAMETERS_ALL.GLOBAL_ATTRIBUTE3%type,
259 GLOBAL_ATTRIBUTE4 AR_SYSTEM_PARAMETERS_ALL.GLOBAL_ATTRIBUTE4%type,
260 GLOBAL_ATTRIBUTE5 AR_SYSTEM_PARAMETERS_ALL.GLOBAL_ATTRIBUTE5%type,
261 GLOBAL_ATTRIBUTE6 AR_SYSTEM_PARAMETERS_ALL.GLOBAL_ATTRIBUTE6%type,
262 GLOBAL_ATTRIBUTE7 AR_SYSTEM_PARAMETERS_ALL.GLOBAL_ATTRIBUTE7%type,
263 GLOBAL_ATTRIBUTE8 AR_SYSTEM_PARAMETERS_ALL.GLOBAL_ATTRIBUTE8%type,
264 GLOBAL_ATTRIBUTE9 AR_SYSTEM_PARAMETERS_ALL.GLOBAL_ATTRIBUTE9%type,
265 GLOBAL_ATTRIBUTE10 AR_SYSTEM_PARAMETERS_ALL.GLOBAL_ATTRIBUTE10%type,
266 GLOBAL_ATTRIBUTE11 AR_SYSTEM_PARAMETERS_ALL.GLOBAL_ATTRIBUTE11%type,
267 GLOBAL_ATTRIBUTE12 AR_SYSTEM_PARAMETERS_ALL.GLOBAL_ATTRIBUTE12%type,
268 GLOBAL_ATTRIBUTE13 AR_SYSTEM_PARAMETERS_ALL.GLOBAL_ATTRIBUTE13%type,
269 GLOBAL_ATTRIBUTE14 AR_SYSTEM_PARAMETERS_ALL.GLOBAL_ATTRIBUTE14%type,
270 GLOBAL_ATTRIBUTE15 AR_SYSTEM_PARAMETERS_ALL. GLOBAL_ATTRIBUTE15%type,
271 GLOBAL_ATTRIBUTE16 AR_SYSTEM_PARAMETERS_ALL.GLOBAL_ATTRIBUTE16%type,
272 GLOBAL_ATTRIBUTE17 AR_SYSTEM_PARAMETERS_ALL.GLOBAL_ATTRIBUTE17%type,
273 GLOBAL_ATTRIBUTE18 AR_SYSTEM_PARAMETERS_ALL.GLOBAL_ATTRIBUTE18%type,
274 GLOBAL_ATTRIBUTE19 AR_SYSTEM_PARAMETERS_ALL.GLOBAL_ATTRIBUTE19%type,
275 GLOBAL_ATTRIBUTE20 AR_SYSTEM_PARAMETERS_ALL.GLOBAL_ATTRIBUTE20%type,
276 GLOBAL_ATTRIBUTE_CATEGORY AR_SYSTEM_PARAMETERS_ALL.GLOBAL_ATTRIBUTE_CATEGORY%TYPE,
277 TAX_ROUNDING_ALLOW_OVERRIDE AR_SYSTEM_PARAMETERS_ALL.TAX_ROUNDING_ALLOW_OVERRIDE%TYPE,
278 RULE_SET_ID AR_SYSTEM_PARAMETERS_ALL.RULE_SET_ID%type,
279 TAX_USE_ACCOUNT_EXC_RATE_FLAG AR_SYSTEM_PARAMETERS_ALL.TAX_USE_ACCOUNT_EXC_RATE_FLAG%type,
280 TAX_USE_SYSTEM_EXC_RATE_FLAG AR_SYSTEM_PARAMETERS_ALL.TAX_USE_SYSTEM_EXC_RATE_FLAG%type,
281 TAX_HIER_SITE_EXC_RATE AR_SYSTEM_PARAMETERS_ALL.TAX_HIER_SITE_EXC_RATE%type,
282 TAX_HIER_CUST_EXC_RATE AR_SYSTEM_PARAMETERS_ALL. TAX_HIER_CUST_EXC_RATE%type,
283 TAX_HIER_PROD_EXC_RATE AR_SYSTEM_PARAMETERS_ALL.TAX_HIER_PROD_EXC_RATE%type,
284 TAX_HIER_ACCOUNT_EXC_RATE AR_SYSTEM_PARAMETERS_ALL.TAX_HIER_ACCOUNT_EXC_RATE%type,
285 TAX_HIER_SYSTEM_EXC_RATE AR_SYSTEM_PARAMETERS_ALL. TAX_HIER_SYSTEM_EXC_RATE%type,
286 TAX_DATABASE_VIEW_SET AR_SYSTEM_PARAMETERS_ALL. TAX_DATABASE_VIEW_SET%type,
287 INCLUSIVE_TAX_USED AR_SYSTEM_PARAMETERS_ALL. INCLUSIVE_TAX_USED%type,
288 CODE_COMBINATION_ID_ROUND AR_SYSTEM_PARAMETERS_ALL. CODE_COMBINATION_ID_ROUNd%type,
289 TRX_HEADER_LEVEL_ROUNDING AR_SYSTEM_PARAMETERS_ALL.TRX_HEADER_LEVEL_ROUNDING%type,
290 TRX_HEADER_ROUND_CCID AR_SYSTEM_PARAMETERS_ALL.TRX_HEADER_ROUND_CCID%type,
291 FINCHRG_RECEIVABLES_TRX_ID AR_SYSTEM_PARAMETERS_ALL.FINCHRG_RECEIVABLES_TRX_ID%type,
292 SALES_TAX_GEOCODE AR_SYSTEM_PARAMETERS_ALL.SALES_TAX_GEOCODE%type,
293 BILLS_RECEIVABLE_ENABLED_FLAG AR_SYSTEM_PARAMETERS_ALL.BILLS_RECEIVABLE_ENABLED_FLAG%type,
294 TA_INSTALLED_FLAG AR_SYSTEM_PARAMETERS_ALL.TA_INSTALLED_FLAG%type,
295 REV_TRANSFER_CLEAR_CCID AR_SYSTEM_PARAMETERS_ALL.REV_TRANSFER_CLEAR_CCID%type,
296 SALES_CREDIT_PCT_LIMIT AR_SYSTEM_PARAMETERS_ALL.SALES_CREDIT_PCT_LIMIT%TYPE);
297
298 l_ar_sys_param_rec l_ar_sys_rec;
299
300 CURSOR c_product_options (c_org_id NUMBER,
301 c_application_id NUMBER) IS
302 SELECT org_id,
303 def_option_hier_1_code,
304 def_option_hier_2_code,
305 def_option_hier_3_code,
306 def_option_hier_4_code,
307 def_option_hier_5_code,
308 def_option_hier_6_code,
309 def_option_hier_7_code,
310 home_country_default_flag,
311 tax_classification_code,
312 tax_method_code,
313 inclusive_tax_used_flag,
314 tax_use_customer_exempt_flag,
315 tax_use_product_exempt_flag,
316 tax_use_loc_exc_rate_flag,
317 tax_allow_compound_flag,
318 tax_rounding_rule,
319 tax_precision,
320 tax_minimum_accountable_unit,
321 use_tax_classification_flag,
322 allow_tax_rounding_ovrd_flag
323 FROM zx_product_options_all
324 WHERE org_id = c_org_id
325 AND application_id = c_application_id;
326
327 BEGIN
328 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
329
330 IF (g_level_procedure >= g_current_runtime_level ) THEN
331 FND_LOG.STRING(g_level_procedure,
332 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.initialize.BEGIN',
333 'ZX_PRODUCT_INTEGRATION_PKG: initialize (+)');
334 END IF;
335
336 x_return_status := FND_API.G_RET_STS_SUCCESS;
337 -- l_debug_flag := NVL(FND_PROFILE.value('AFLOG_ENABLED'), 'N');
338
339 -- IF L_DEBUG_FLAG <> PG_DEBUG THEN
340 -- FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Calling initialize ....');
341 -- PG_DEBUG := l_debug_flag;
342 -- END IF;
343
344 ZX_TDS_CALC_SERVICES_PUB_PKG.initialize (p_event_class_rec ,
345 'HEADER',
346 x_return_status
347 );
348
349
350 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
351 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
352 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','ZX_TDS_CALC_SERVICES_PUB_PKG.initialize returned errors');
353 END IF;
354 RETURN;
355 END IF;
356
357
358 IF (g_level_statement >= g_current_runtime_level) THEN
359 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','pg_application_short_name = '||pg_application_short_name);
360 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','pg_application_id = '||pg_application_id);
361 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','p_event_class_rec.application_id = '||p_event_class_rec.application_id);
362 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG',SQLCODE||' ; '||SQLERRM);
363 END IF;
364
365 IF (pg_application_short_name IS NULL and pg_application_id IS NULL)
366 OR p_event_class_rec.application_id <> pg_application_id
367 THEN
368
369 IF (g_level_statement >= g_current_runtime_level) THEN
370 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Getting application short name');
371 END IF;
372
373 OPEN c_application_short_name(p_event_class_rec.application_id);
374
375 FETCH c_application_short_name into pg_application_short_name, pg_application_id;
376
377 IF c_application_short_name%NOTFOUND THEN
378
379 IF (g_level_event >= g_current_runtime_level) THEN
380 FND_LOG.STRING(g_level_event,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Error: application short name not found');
381 END IF;
382 x_return_status := FND_API.G_RET_STS_ERROR;
383 FND_MESSAGE.SET_NAME ('ZX','GENERIC_MESSAGE');
384 FND_MESSAGE.SET_TOKEN('GENERIC_TEXT','Application ID is invalid, please fix and try again');
385 ZX_API_PUB.add_msg(
386 ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec);
387
388 IF ( g_level_unexpected >= g_current_runtime_level) THEN
389 FND_LOG.STRING(g_level_unexpected,
390 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.initialize',
391 'Application ID is invalid. '||
392 'No application short name found for the application id input.'
393 );
394 END IF;
395 RETURN;
396
397 ELSE
398 IF (g_level_statement >= g_current_runtime_level) THEN
399 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Application short name found. pg_application_short_name = '||pg_application_Short_name);
400 END IF;
401
402 IF MO_GLOBAL.is_multi_org_enabled = 'Y' THEN
403 IF (g_level_statement >= g_current_runtime_level) THEN
404 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Multi-Org enabled');
405 END IF;
406 End if;
407
408 END IF;
409
410 CLOSE c_application_short_name;
411
412
413 END IF;
414
415 IF (g_level_statement >= g_current_runtime_level) THEN
416 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Calling MO_GLOBAL.is_multi_org_enabled');
417 END IF;
418
419 pg_application_short_name := 'AR';
420
421 -- set up MOAC based on the passed in organization ID
422 IF MO_GLOBAL.is_multi_org_enabled = 'Y' THEN
423
424 IF (g_level_statement >= g_current_runtime_level) THEN
425 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Multi-org Enabled');
426 END IF;
427
428 l_last_org_id := sysinfo.sysparam.org_id;
429
430 -- Call intialization when no cache available or orgnation context changed
431 IF l_last_org_id IS NULL
432 OR l_last_org_id <> p_event_class_rec.internal_organization_id
433 THEN
434
435 IF (g_level_statement >= g_current_runtime_level) THEN
436 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','New OU. Calling initialize ...');
437 END IF;
438
439 --
440 -- Get the profile values and call set_org_access API
441 --
442 fnd_profile.get('XLA_MO_SECURITY_PROFILE_LEVEL', l_security_profile_id);
443 IF (g_level_procedure >= g_current_runtime_level) THEN
444 FND_LOG.STRING(g_level_procedure,
445 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.initialize()',
446 'MO: Operating Unit=>'||p_event_class_rec.internal_organization_id||
447 ', MO: Security Profile=>'||l_security_profile_id||
448 ', p_appl_short_name=>'||pg_application_short_name);
449 END IF;
450
451 IF (g_level_statement >= g_current_runtime_level) THEN
452 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG',' calling MO_GLOBAL.SET_ORG_ACCESS');
453 END IF;
454
455 -- Bug 5022934 the call to MO_GLOBAL is internally calling
456 -- MO_GLOBAL.SET_POLICY_CONTEXT: p_access_mode=>M,p_org_id
457 -- which is causing too many rows within AR. commenting out this call
458 -- as org_access should already have been set by calling side.
459 /*
460 MO_GLOBAL.SET_ORG_ACCESS(
461 p_event_class_rec.internal_organization_id,
462 l_security_profile_id,
463 pg_application_short_name
464 );
465 */
466
467 END IF;
468
469 -- arp_util_tax.initialize;
470
471
472 ELSE -- Single Organization
473 -- Call initalizations when no cache available
474
475 IF (g_level_statement >= g_current_runtime_level) THEN
476 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Multi-org NOT Enabled');
477 END IF;
478
479 IF sysinfo.sysparam.set_of_books_id IS NULL THEN
480 -- arp_util_tax.initialize;
481 NULL;
482 END IF;
483
484 END IF; -- multi org is enabled
485
486 --
487 -- Get System Info
488 --
489 BEGIN
490
491 -- bug fix 3142794 l_last_org_id := sysinfo.sysparam.org_id;
492 trx_type_tbl.DELETE;
493
494 /* bug fix 3142794 begin*/
495 -- if the org_id has not changed, then do nothing, return.
496 IF (sysinfo.sysparam.org_id is null and p_event_class_rec.internal_organization_id is NULL)
497 THEN
498 IF (g_level_statement >= g_current_runtime_level) THEN
499 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','sysinfo.sysparam.org_id is null as well as '||
500 'p_event_class_rec.internal_organization_id is NULL ');
501 END IF;
502 return;
503 ELSIF ( (sysinfo.sysparam.org_id is not null)
504 and (sysinfo.sysparam.org_id = p_event_class_rec.internal_organization_id))
505 THEN
506 IF (g_level_statement >= g_current_runtime_level) THEN
507 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','sysinfo.sysparam.org_id is equal to '||
508 'p_event_class_rec.internal_organization_id: '||p_event_class_rec.internal_organization_id||
509 'Hence not performing initialization.');
510 END IF;
511 return;
512 END IF;
513 /* bug fix 3142794 end*/
514
515 -- Populate global variable sysparam
516 IF (g_level_statement >= g_current_runtime_level) THEN
517 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','No cache value available, Populate global'||
518 ' variable sysparam from ar_system_parameters');
519 END IF;
520
521 -- Condition added for Bug#6893532
522 -- Adding OM application Ids in the IF statement
523 -- as for all OM related applications, AR tax setup (Product Options) are used.
524 -- Order Management 660
525 -- Order Capture 697
526 -- Order Entry 300
527
528 -- IF p_event_class_rec.application_id = 222 THEN
529 IF p_event_class_rec.application_id IN (222, 300, 660, 697) THEN
530 -- Fetch AR Application Product Options
531 OPEN c_product_options (p_event_class_rec.internal_organization_id, 222);
532 FETCH c_product_options
533 INTO sysinfo.ar_product_options_rec.org_id,
534 sysinfo.ar_product_options_rec.def_option_hier_1_code,
535 sysinfo.ar_product_options_rec.def_option_hier_2_code,
536 sysinfo.ar_product_options_rec.def_option_hier_3_code,
537 sysinfo.ar_product_options_rec.def_option_hier_4_code,
538 sysinfo.ar_product_options_rec.def_option_hier_5_code,
539 sysinfo.ar_product_options_rec.def_option_hier_6_code,
540 sysinfo.ar_product_options_rec.def_option_hier_7_code,
541 sysinfo.ar_product_options_rec.home_country_default_flag,
542 sysinfo.ar_product_options_rec.tax_classification_code,
543 sysinfo.ar_product_options_rec.tax_method_code,
544 sysinfo.ar_product_options_rec.inclusive_tax_used_flag,
545 sysinfo.ar_product_options_rec.tax_use_customer_exempt_flag,
546 sysinfo.ar_product_options_rec.tax_use_product_exempt_flag,
547 sysinfo.ar_product_options_rec.tax_use_loc_exc_rate_flag,
548 sysinfo.ar_product_options_rec.tax_allow_compound_flag,
549 sysinfo.ar_product_options_rec.tax_rounding_rule,
550 sysinfo.ar_product_options_rec.tax_precision,
551 sysinfo.ar_product_options_rec.tax_minimum_accountable_unit,
552 sysinfo.ar_product_options_rec.use_tax_classification_flag,
553 sysinfo.ar_product_options_rec.allow_tax_rounding_ovrd_flag;
554 CLOSE c_product_options;
555
556 sysinfo.sysparam.TAX_METHOD
557 :=sysinfo.ar_product_options_rec.TAX_METHOD_CODE ;
558 sysinfo.sysparam.ORG_ID
559 :=sysinfo.ar_product_options_rec.ORG_ID ;
560 sysinfo.sysparam.INCLUSIVE_TAX_USED
561 :=sysinfo.ar_product_options_rec.INCLUSIVE_TAX_USED_FLAG ;
562 sysinfo.sysparam.TAX_USE_CUSTOMER_EXEMPT_FLAG
563 :=sysinfo.ar_product_options_rec.TAX_USE_CUSTOMER_EXEMPT_FLAG ;
564 sysinfo.sysparam.TAX_USE_PRODUCT_EXEMPT_FLAG
565 :=sysinfo.ar_product_options_rec.TAX_USE_PRODUCT_EXEMPT_FLAG ;
566 sysinfo.sysparam.TAX_USE_LOC_EXC_RATE_FLAG
567 :=sysinfo.ar_product_options_rec.TAX_USE_LOC_EXC_RATE_FLAG ;
568 sysinfo.sysparam.TAX_ALLOW_COMPOUND_FLAG
569 :=sysinfo.ar_product_options_rec.TAX_ALLOW_COMPOUND_FLAG ;
570 sysinfo.sysparam.TAX_ROUNDING_RULE
571 :=sysinfo.ar_product_options_rec.TAX_ROUNDING_RULE ;
572 sysinfo.sysparam.TAX_MINIMUM_ACCOUNTABLE_UNIT
573 :=sysinfo.ar_product_options_rec.TAX_MINIMUM_ACCOUNTABLE_UNIT ;
574 sysinfo.sysparam.TAX_PRECISION
575 :=sysinfo.ar_product_options_rec.TAX_PRECISION ;
576 sysinfo.sysparam.TAX_ROUNDING_ALLOW_OVERRIDE
577 := sysinfo.ar_product_options_rec.ALLOW_TAX_ROUNDING_OVRD_FLAG;
578
579 ELSIF p_event_class_rec.application_id = 275 THEN
580 -- Fetch PA Application Product Options
581 -- OPEN c_product_options (to_number(substrb(userenv('CLIENT_INFO'),1,10)), 275); -- Commented for Bug#6893532
582 OPEN c_product_options (p_event_class_rec.internal_organization_id, 275); -- Added for Bug#6893532
583 FETCH c_product_options
584 INTO sysinfo.pa_product_options_rec.org_id,
585 sysinfo.pa_product_options_rec.def_option_hier_1_code,
586 sysinfo.pa_product_options_rec.def_option_hier_2_code,
587 sysinfo.pa_product_options_rec.def_option_hier_3_code,
588 sysinfo.pa_product_options_rec.def_option_hier_4_code,
589 sysinfo.pa_product_options_rec.def_option_hier_5_code,
590 sysinfo.pa_product_options_rec.def_option_hier_6_code,
591 sysinfo.pa_product_options_rec.def_option_hier_7_code,
592 sysinfo.pa_product_options_rec.home_country_default_flag,
593 sysinfo.pa_product_options_rec.tax_classification_code,
594 sysinfo.pa_product_options_rec.tax_method_code,
595 sysinfo.pa_product_options_rec.inclusive_tax_used_flag,
596 sysinfo.pa_product_options_rec.tax_use_customer_exempt_flag,
597 sysinfo.pa_product_options_rec.tax_use_product_exempt_flag,
598 sysinfo.pa_product_options_rec.tax_use_loc_exc_rate_flag,
599 sysinfo.pa_product_options_rec.tax_allow_compound_flag,
600 sysinfo.pa_product_options_rec.tax_rounding_rule,
601 sysinfo.pa_product_options_rec.tax_precision,
602 sysinfo.pa_product_options_rec.tax_minimum_accountable_unit,
603 sysinfo.pa_product_options_rec.use_tax_classification_flag,
604 sysinfo.pa_product_options_rec.allow_tax_rounding_ovrd_flag;
605 CLOSE c_product_options;
606
607 sysinfo.sysparam.TAX_METHOD
608 :=sysinfo.pa_product_options_rec.TAX_METHOD_CODE ;
609 sysinfo.sysparam.ORG_ID
610 :=sysinfo.pa_product_options_rec.ORG_ID ;
611 sysinfo.sysparam.INCLUSIVE_TAX_USED
612 :=sysinfo.pa_product_options_rec.INCLUSIVE_TAX_USED_FLAG ;
613 sysinfo.sysparam.TAX_USE_CUSTOMER_EXEMPT_FLAG
614 :=sysinfo.pa_product_options_rec.TAX_USE_CUSTOMER_EXEMPT_FLAG ;
615 sysinfo.sysparam.TAX_USE_PRODUCT_EXEMPT_FLAG
616 :=sysinfo.pa_product_options_rec.TAX_USE_PRODUCT_EXEMPT_FLAG ;
617 sysinfo.sysparam.TAX_USE_LOC_EXC_RATE_FLAG
618 :=sysinfo.pa_product_options_rec.TAX_USE_LOC_EXC_RATE_FLAG ;
619 sysinfo.sysparam.TAX_ALLOW_COMPOUND_FLAG
620 :=sysinfo.pa_product_options_rec.TAX_ALLOW_COMPOUND_FLAG ;
621 sysinfo.sysparam.TAX_ROUNDING_RULE
622 :=sysinfo.pa_product_options_rec.TAX_ROUNDING_RULE ;
623 sysinfo.sysparam.TAX_MINIMUM_ACCOUNTABLE_UNIT
624 :=sysinfo.pa_product_options_rec.TAX_MINIMUM_ACCOUNTABLE_UNIT ;
625 sysinfo.sysparam.TAX_PRECISION
626 :=sysinfo.pa_product_options_rec.TAX_PRECISION ;
627 sysinfo.sysparam.TAX_ROUNDING_ALLOW_OVERRIDE
628 := sysinfo.pa_product_options_rec.ALLOW_TAX_ROUNDING_OVRD_FLAG;
629
630 END IF; -- End : Condition added for BUg#6893532
631
632 IF (g_level_statement >= g_current_runtime_level) THEN
633 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','sysinfo.sysparam.TAX_METHOD = '||sysinfo.sysparam.TAX_METHOD);
634 END IF;
635
636 /*
637 sysinfo.sysparam.LOCATION_TAX_ACCOUNT :=sysinfo.ar_product_options_rec.LOCATION_TAX_ACCOUNT ;
638 sysinfo.sysparam.DEFAULT_COUNTRY :=sysinfo.ar_product_options_rec.DEFAULT_COUNTRY ;
639 sysinfo.sysparam.TAX_USE_CUST_EXC_RATE_FLAG :=sysinfo.ar_product_options_rec.TAX_USE_CUST_EXC_RATE_FLAG ;
640 sysinfo.sysparam.TAX_USE_PROD_EXC_RATE_FLAG :=sysinfo.ar_product_options_rec.TAX_USE_PROD_EXC_RATE_FLAG ;
641 sysinfo.sysparam.TAX_USE_SITE_EXC_RATE_FLAG:=sysinfo.ar_product_options_rec.TAX_USE_SITE_EXC_RATE_FLAG ;
642 sysinfo.sysparam.SET_OF_BOOKS_ID :=sysinfo.ar_product_options_rec.SET_OF_BOOKS_ID ;
643 sysinfo.sysparam.TAX_CODE :=sysinfo.ar_product_options_rec.TAX_CODE ;
644 sysinfo.sysparam.TAX_CURRENCY_CODE :=sysinfo.ar_product_options_rec.TAX_CURRENCY_CODE ;
645 sysinfo.sysparam.TAX_HEADER_LEVEL_FLAG:=sysinfo.ar_product_options_rec.TAX_HEADER_LEVEL_FLAG ;
646 sysinfo.sysparam.GLOBAL_ATTRIBUTE10 :=sysinfo.ar_product_options_rec.GLOBAL_ATTRIBUTE10 ;
647 sysinfo.sysparam.GLOBAL_ATTRIBUTE13 :=sysinfo.ar_product_options_rec.GLOBAL_ATTRIBUTE13 ;
648 sysinfo.sysparam.GLOBAL_ATTRIBUTE_CATEGORY :=sysinfo.ar_product_options_rec.GLOBAL_ATTRIBUTE_CATEGORY ;
649 sysinfo.sysparam.TAX_ROUNDING_ALLOW_OVERRIDE :=sysinfo.ar_product_options_rec.TAX_ROUNDING_ALLOW_OVERRIDE ;
650 sysinfo.sysparam.TAX_USE_ACCOUNT_EXC_RATE_FLAG :=sysinfo.ar_product_options_rec.TAX_USE_ACCOUNT_EXC_RATE_FLAG ;
651 sysinfo.sysparam.TAX_USE_SYSTEM_EXC_RATE_FLAG :=sysinfo.ar_product_options_rec.TAX_USE_SYSTEM_EXC_RATE_FLAG ;
652 sysinfo.TAX_HIER_SITE_EXC_RATE :=sysinfo.ar_product_options_rec.TAX_HIER_SITE_EXC_RATE ;
653 sysinfo.sysparam.TAX_HIER_CUST_EXC_RATE :=sysinfo.ar_product_options_rec.TAX_HIER_CUST_EXC_RATE ;
654 sysinfo.sysparam.TAX_HIER_PROD_EXC_RATE :=sysinfo.ar_product_options_rec.TAX_HIER_PROD_EXC_RATE ;
655 sysinfo.TAX_HIER_ACCOUNT_EXC_RATE :=sysinfo.ar_product_options_rec.TAX_HIER_ACCOUNT_EXC_RATE ;
656 sysinfo.sysparam.TAX_HIER_SYSTEM_EXC_RATE :=sysinfo.ar_product_options_rec.TAX_HIER_SYSTEM_EXC_RATE ;
657 */
658
659 /* Take the following columns from Event Class Options:
660 Enforce tax from Revenue Account
661 Calculation level - 'LINE' for LTE
662 */
663
664 begin
665
666 SELECT
667 DEFAULT_GROUPING_RULE_ID ,
668 SALESREP_REQUIRED_FLAG ,
669 ATTRIBUTE11 ,
670 ATTRIBUTE12 ,
671 ATTRIBUTE13 ,
672 ATTRIBUTE14 ,
673 ATTRIBUTE15 ,
674 AUTO_REC_INVOICES_PER_COMMIT ,
675 AUTO_REC_RECEIPTS_PER_COMMIT ,
676 PAY_UNRELATED_INVOICES_FLAG, -- TAX_CACHE
677 PRINT_HOME_COUNTRY_FLAG ,
678 LOCATION_TAX_ACCOUNT ,
679 FROM_POSTAL_CODE ,
680 TO_POSTAL_CODE ,
681 TAX_REGISTRATION_NUMBER ,
682 POPULATE_GL_SEGMENTS_FLAG ,
683 UNALLOCATED_REVENUE_CCID ,
684 ORG_ID ,
685 ATTRIBUTE9 ,
686 ATTRIBUTE10 ,
687 CALC_DISCOUNT_ON_LINES_FLAG ,
688 CHANGE_PRINTED_INVOICE_FLAG ,
689 CODE_COMBINATION_ID_LOSS ,
690 CREATE_RECIPROCAL_FLAG ,
691 DEFAULT_COUNTRY ,
692 DEFAULT_TERRITORY ,
693 GENERATE_CUSTOMER_NUMBER ,
694 INVOICE_DELETION_FLAG ,
695 LOCATION_STRUCTURE_ID ,
696 SITE_REQUIRED_FLAG ,
697 TAX_ALLOW_COMPOUND_FLAG ,
698 TAX_INVOICE_PRINT ,
699 TAX_METHOD ,
700 TAX_USE_CUSTOMER_EXEMPT_FLAG ,
701 TAX_USE_CUST_EXC_RATE_FLAG ,
702 TAX_USE_LOC_EXC_RATE_FLAG ,
703 TAX_USE_PRODUCT_EXEMPT_FLAG ,
704 TAX_USE_PROD_EXC_RATE_FLAG ,
705 TAX_USE_SITE_EXC_RATE_FLAG ,
706 AI_LOG_FILE_MESSAGE_LEVEL ,
707 AI_MAX_MEMORY_IN_BYTES ,
708 AI_ACCT_FLEX_KEY_LEFT_PROMPT ,
709 AI_MTL_ITEMS_KEY_LEFT_PROMPT ,
710 AI_TERRITORY_KEY_LEFT_PROMPT ,
711 AI_PURGE_INTERFACE_TABLES_FLAG ,
712 AI_ACTIVATE_SQL_TRACE_FLAG ,
713 SET_OF_BOOKS_ID ,
714 CREATED_BY ,
715 CREATION_DATE ,
716 LAST_UPDATED_BY ,
717 LAST_UPDATE_DATE ,
718 LAST_UPDATE_LOGIN ,
719 ACCOUNTING_METHOD ,
720 ACCRUE_INTEREST ,
721 UNEARNED_DISCOUNT ,
722 PARTIAL_DISCOUNT_FLAG ,
723 PRINT_REMIT_TO ,
724 DEFAULT_CB_DUE_DATE ,
725 AUTO_SITE_NUMBERING ,
726 CASH_BASIS_SET_OF_BOOKS_ID ,
727 CODE_COMBINATION_ID_GAIN ,
728 AUTOCASH_HIERARCHY_ID ,
729 RUN_GL_JOURNAL_IMPORT_FLAG ,
730 CER_SPLIT_AMOUNT ,
731 CER_DSO_DAYS ,
732 POSTING_DAYS_PER_CYCLE ,
733 ADDRESS_VALIDATION ,
734 ATTRIBUTE1 ,
735 ATTRIBUTE2 ,
736 ATTRIBUTE_CATEGORY ,
737 ATTRIBUTE3 ,
738 ATTRIBUTE4 ,
739 ATTRIBUTE5 ,
740 ATTRIBUTE6 ,
741 ATTRIBUTE7 ,
742 ATTRIBUTE8 ,
743 TAX_CODE ,
744 TAX_CURRENCY_CODE ,
745 TAX_HEADER_LEVEL_FLAG ,
746 TAX_MINIMUM_ACCOUNTABLE_UNIT ,
747 TAX_PRECISION ,
748 TAX_ROUNDING_RULE ,
749 GLOBAL_ATTRIBUTE1 ,
750 GLOBAL_ATTRIBUTE2 ,
751 GLOBAL_ATTRIBUTE3 ,
752 GLOBAL_ATTRIBUTE4 ,
753 GLOBAL_ATTRIBUTE5 ,
754 GLOBAL_ATTRIBUTE6 ,
755 GLOBAL_ATTRIBUTE7 ,
756 GLOBAL_ATTRIBUTE8 ,
757 GLOBAL_ATTRIBUTE9 ,
758 GLOBAL_ATTRIBUTE10 ,
759 GLOBAL_ATTRIBUTE11 ,
760 GLOBAL_ATTRIBUTE12 ,
761 GLOBAL_ATTRIBUTE13 ,
762 GLOBAL_ATTRIBUTE14 ,
763 GLOBAL_ATTRIBUTE15 ,
764 GLOBAL_ATTRIBUTE16 ,
765 GLOBAL_ATTRIBUTE17 ,
766 GLOBAL_ATTRIBUTE18 ,
767 GLOBAL_ATTRIBUTE19 ,
768 GLOBAL_ATTRIBUTE20 ,
769 GLOBAL_ATTRIBUTE_CATEGORY ,
770 TAX_ROUNDING_ALLOW_OVERRIDE ,
771 RULE_SET_ID ,
772 TAX_USE_ACCOUNT_EXC_RATE_FLAG ,
773 TAX_USE_SYSTEM_EXC_RATE_FLAG ,
774 TAX_HIER_SITE_EXC_RATE ,
775 TAX_HIER_CUST_EXC_RATE ,
776 TAX_HIER_PROD_EXC_RATE ,
777 TAX_HIER_ACCOUNT_EXC_RATE ,
778 TAX_HIER_SYSTEM_EXC_RATE ,
779 TAX_DATABASE_VIEW_SET ,
780 INCLUSIVE_TAX_USED ,
781 CODE_COMBINATION_ID_ROUND ,
782 TRX_HEADER_LEVEL_ROUNDING ,
783 TRX_HEADER_ROUND_CCID ,
784 FINCHRG_RECEIVABLES_TRX_ID ,
785 SALES_TAX_GEOCODE ,
786 BILLS_RECEIVABLE_ENABLED_FLAG ,
787 TA_INSTALLED_FLAG ,
788 REV_TRANSFER_CLEAR_CCID ,
789 SALES_CREDIT_PCT_LIMIT
790 --MAX_WRTOFF_AMOUNT ,
791 --IREC_CC_RECEIPT_METHOD_ID ,
792 --SHOW_BILLING_NUMBER_FLAG ,
793 --CROSS_CURRENCY_RATE_TYPE ,
794 --DOCUMENT_SEQ_GEN_LEVEL ,
795 --CALC_TAX_ON_CREDIT_MEMO_FLAG ,
796 --IREC_BA_RECEIPT_METHOD_ID
797 into l_ar_sys_param_rec from ar_system_parameters_all
798 where org_id = p_event_class_rec.internal_organization_id;
799
800 -- sysinfo.sysparam.DEFAULT_GROUPING_RULE_ID :=l_ar_sys_param_rec.DEFAULT_GROUPING_RULE_ID ;
801 -- sysinfo.sysparam.SALESREP_REQUIRED_FLAG :=l_ar_sys_param_rec.SALESREP_REQUIRED_FLAG ;
802 sysinfo.sysparam.ATTRIBUTE11 :=l_ar_sys_param_rec.ATTRIBUTE11 ;
803 sysinfo.sysparam.ATTRIBUTE12:=l_ar_sys_param_rec.ATTRIBUTE12 ;
804 sysinfo.sysparam.ATTRIBUTE13 :=l_ar_sys_param_rec.ATTRIBUTE13 ;
805 sysinfo.sysparam.ATTRIBUTE14 :=l_ar_sys_param_rec.ATTRIBUTE14 ;
806 sysinfo.sysparam.ATTRIBUTE15 :=l_ar_sys_param_rec.ATTRIBUTE15 ;
807 -- sysinfo.sysparam.AUTO_REC_INVOICES_PER_COMMIT :=l_ar_sys_param_rec.AUTO_REC_INVOICES_PER_COMMIT ;
808 -- sysinfo.sysparam.AUTO_REC_RECEIPTS_PER_COMMIT :=l_ar_sys_param_rec.AUTO_REC_RECEIPTS_PER_COMMIT ;
809 -- sysinfo.sysparam.PAY_UNRELATED_INVOICES_FLAG :=l_ar_sys_param_rec.PAY_UNRELATED_INVOICES_FLAG ;
810 -- sysinfo.sysparam.PRINT_HOME_COUNTRY_FLAG :=l_ar_sys_param_rec.PRINT_HOME_COUNTRY_FLAG ;
811 sysinfo.sysparam.LOCATION_TAX_ACCOUNT :=l_ar_sys_param_rec.LOCATION_TAX_ACCOUNT ;
812 sysinfo.sysparam.FROM_POSTAL_CODE :=l_ar_sys_param_rec.FROM_POSTAL_CODE ;
813 sysinfo.sysparam.TO_POSTAL_CODE :=l_ar_sys_param_rec.TO_POSTAL_CODE ;
814 -- sysinfo.sysparam.TAX_REGISTRATION_NUMBER :=l_ar_sys_param_rec. TAX_REGISTRATION_NUMBER ;
815 -- sysinfo.sysparam.POPULATE_GL_SEGMENTS_FLAG :=l_ar_sys_param_rec.POPULATE_GL_SEGMENTS_FLAG ;
816 -- sysinfo.sysparam.UNALLOCATED_REVENUE_CCID :=l_ar_sys_param_rec.UNALLOCATED_REVENUE_CCID ;
817 sysinfo.sysparam.ORG_ID :=l_ar_sys_param_rec.ORG_ID ;
818 sysinfo.sysparam.ATTRIBUTE9 :=l_ar_sys_param_rec.ATTRIBUTE9 ;
819 sysinfo.sysparam.ATTRIBUTE10 :=l_ar_sys_param_rec.ATTRIBUTE10 ;
820 -- sysinfo.sysparam.CALC_DISCOUNT_ON_LINES_FLAG :=l_ar_sys_param_rec.CALC_DISCOUNT_ON_LINES_FLAG ;
821 -- sysinfo.sysparam.CHANGE_PRINTED_INVOICE_FLAG :=l_ar_sys_param_rec.CHANGE_PRINTED_INVOICE_FLAG ;
822 -- sysinfo.sysparam.CODE_COMBINATION_ID_LOSS:=l_ar_sys_param_rec. CODE_COMBINATION_ID_LOSS ;
823 -- sysinfo.sysparam.CREATE_RECIPROCAL_FLAG :=l_ar_sys_param_rec.CREATE_RECIPROCAL_FLAG ;
824 sysinfo.sysparam.DEFAULT_COUNTRY :=l_ar_sys_param_rec.DEFAULT_COUNTRY ;
825 -- sysinfo.sysparam.DEFAULT_TERRITORY :=l_ar_sys_param_rec.DEFAULT_TERRITORY ;
826 -- sysinfo.sysparam.GENERATE_CUSTOMER_NUMBER :=l_ar_sys_param_rec.GENERATE_CUSTOMER_NUMBER ;
827 -- sysinfo.sysparam.INVOICE_DELETION_FLAG :=l_ar_sys_param_rec.INVOICE_DELETION_FLAG ;
828 sysinfo.sysparam.LOCATION_STRUCTURE_ID :=l_ar_sys_param_rec.LOCATION_STRUCTURE_ID ;
829 -- sysinfo.sysparam.SITE_REQUIRED_FLAG :=l_ar_sys_param_rec.SITE_REQUIRED_FLAG ;
830 -- sysinfo.sysparam.TAX_ALLOW_COMPOUND_FLAG :=l_ar_sys_param_rec.TAX_ALLOW_COMPOUND_FLAG ;
831 sysinfo.sysparam. TAX_INVOICE_PRINT:=l_ar_sys_param_rec.TAX_INVOICE_PRINT ;
832 -- sysinfo.sysparam.TAX_METHOD :=l_ar_sys_param_rec.TAX_METHOD ;
833 -- sysinfo.sysparam.TAX_USE_CUSTOMER_EXEMPT_FLAG :=l_ar_sys_param_rec.TAX_USE_CUSTOMER_EXEMPT_FLAG ;
834 -- sysinfo.sysparam.TAX_USE_CUST_EXC_RATE_FLAG :=l_ar_sys_param_rec.TAX_USE_CUST_EXC_RATE_FLAG ;
835 sysinfo.sysparam.TAX_USE_LOC_EXC_RATE_FLAG :=l_ar_sys_param_rec.TAX_USE_LOC_EXC_RATE_FLAG ;
836 -- sysinfo.sysparam.TAX_USE_PRODUCT_EXEMPT_FLAG:=l_ar_sys_param_rec.TAX_USE_PRODUCT_EXEMPT_FLAG ;
837 sysinfo.sysparam.TAX_USE_PROD_EXC_RATE_FLAG :=l_ar_sys_param_rec.TAX_USE_PROD_EXC_RATE_FLAG ;
838 sysinfo.sysparam.TAX_USE_SITE_EXC_RATE_FLAG:=l_ar_sys_param_rec.TAX_USE_SITE_EXC_RATE_FLAG ;
839 -- sysinfo.sysparam.AI_LOG_FILE_MESSAGE_LEVEL :=l_ar_sys_param_rec.AI_LOG_FILE_MESSAGE_LEVEL ;
840 -- sysinfo.sysparam.AI_MAX_MEMORY_IN_BYTES :=l_ar_sys_param_rec.AI_MAX_MEMORY_IN_BYTES ;
841 -- sysinfo.sysparam.AI_ACCT_FLEX_KEY_LEFT_PROMPT :=l_ar_sys_param_rec.AI_ACCT_FLEX_KEY_LEFT_PROMPT ;
842 -- sysinfo.sysparam.AI_MTL_ITEMS_KEY_LEFT_PROMPT :=l_ar_sys_param_rec.AI_MTL_ITEMS_KEY_LEFT_PROMPT ;
843 -- sysinfo.sysparam.AI_TERRITORY_KEY_LEFT_PROMPT :=l_ar_sys_param_rec.AI_TERRITORY_KEY_LEFT_PROMPT ;
844 -- sysinfo.sysparam.AI_PURGE_INTERFACE_TABLES_FLAG :=l_ar_sys_param_rec.AI_PURGE_INTERFACE_TABLES_FLAG ;
845 -- sysinfo.sysparam.AI_ACTIVATE_SQL_TRACE_FLAG :=l_ar_sys_param_rec.AI_ACTIVATE_SQL_TRACE_FLAG ;
846 sysinfo.sysparam.SET_OF_BOOKS_ID :=l_ar_sys_param_rec.SET_OF_BOOKS_ID ;
847 -- sysinfo.sysparam.CREATED_BY :=l_ar_sys_param_rec.CREATED_BY ;
848 -- sysinfo.sysparam.CREATION_DATE :=l_ar_sys_param_rec.CREATION_DATE ;
849 -- sysinfo.sysparam.LAST_UPDATED_BY :=l_ar_sys_param_rec.LAST_UPDATED_BY ;
850 -- sysinfo.sysparam.LAST_UPDATE_DATE :=l_ar_sys_param_rec. LAST_UPDATE_DATE ;
851 -- sysinfo.sysparam.LAST_UPDATE_LOGIN :=l_ar_sys_param_rec.LAST_UPDATE_LOGIN ;
852 -- sysinfo.sysparam.ACCOUNTING_METHOD :=l_ar_sys_param_rec.ACCOUNTING_METHOD ;
853 -- sysinfo.sysparam.ACCRUE_INTEREST :=l_ar_sys_param_rec.ACCRUE_INTEREST ;
854 -- sysinfo.sysparam.UNEARNED_DISCOUNT :=l_ar_sys_param_rec.UNEARNED_DISCOUNT ;
855 -- sysinfo.sysparam.PARTIAL_DISCOUNT_FLAG :=l_ar_sys_param_rec.PARTIAL_DISCOUNT_FLAG ;
856 -- sysinfo.sysparam.PRINT_REMIT_TO :=l_ar_sys_param_rec.PRINT_REMIT_TO ;
857 -- sysinfo.sysparam.DEFAULT_CB_DUE_DATE :=l_ar_sys_param_rec.DEFAULT_CB_DUE_DATE ;
858 -- sysinfo.sysparam.AUTO_SITE_NUMBERING :=l_ar_sys_param_rec.AUTO_SITE_NUMBERING ;
859 -- sysinfo.sysparam.CASH_BASIS_SET_OF_BOOKS_ID :=l_ar_sys_param_rec.CASH_BASIS_SET_OF_BOOKS_ID ;
860 -- sysinfo.sysparam.CODE_COMBINATION_ID_GAIN :=l_ar_sys_param_rec.CODE_COMBINATION_ID_GAIN ;
861 -- sysinfo.sysparam.AUTOCASH_HIERARCHY_ID :=l_ar_sys_param_rec.AUTOCASH_HIERARCHY_ID ;
862 -- sysinfo.sysparam.RUN_GL_JOURNAL_IMPORT_FLAG:=l_ar_sys_param_rec.RUN_GL_JOURNAL_IMPORT_FLAG ;
863 -- sysinfo.sysparam.CER_SPLIT_AMOUNT :=l_ar_sys_param_rec.CER_SPLIT_AMOUNT ;
864 -- sysinfo.sysparam.CER_DSO_DAYS :=l_ar_sys_param_rec. CER_DSO_DAYS ;
865 -- sysinfo.sysparam.POSTING_DAYS_PER_CYCLE :=l_ar_sys_param_rec.POSTING_DAYS_PER_CYCLE ;
866 sysinfo.sysparam.ADDRESS_VALIDATION:=l_ar_sys_param_rec.ADDRESS_VALIDATION ;
867 sysinfo.sysparam.ATTRIBUTE1 :=l_ar_sys_param_rec.ATTRIBUTE1 ;
868 sysinfo.sysparam.ATTRIBUTE2 :=l_ar_sys_param_rec.ATTRIBUTE2 ;
869 sysinfo.sysparam.ATTRIBUTE_CATEGORY :=l_ar_sys_param_rec.ATTRIBUTE_CATEGORY ;
870 sysinfo.sysparam.ATTRIBUTE3 :=l_ar_sys_param_rec.ATTRIBUTE3 ;
871 sysinfo.sysparam.ATTRIBUTE4 :=l_ar_sys_param_rec.ATTRIBUTE4 ;
872 sysinfo.sysparam.ATTRIBUTE5 :=l_ar_sys_param_rec.ATTRIBUTE5 ;
873 sysinfo.sysparam.ATTRIBUTE6 :=l_ar_sys_param_rec.ATTRIBUTE6 ;
874 sysinfo.sysparam.ATTRIBUTE7 :=l_ar_sys_param_rec.ATTRIBUTE7 ;
875 sysinfo.sysparam.ATTRIBUTE8 :=l_ar_sys_param_rec.ATTRIBUTE8 ;
876 sysinfo.sysparam.TAX_CODE :=l_ar_sys_param_rec.TAX_CODE ;
877 -- sysinfo.sysparam.TAX_CURRENCY_CODE :=l_ar_sys_param_rec.TAX_CURRENCY_CODE ;
878 -- sysinfo.sysparam.TAX_HEADER_LEVEL_FLAG:=l_ar_sys_param_rec.TAX_HEADER_LEVEL_FLAG ;
879 -- sysinfo.sysparam.TAX_MINIMUM_ACCOUNTABLE_UNIT :=l_ar_sys_param_rec.TAX_MINIMUM_ACCOUNTABLE_UNIT ;
880 -- sysinfo.sysparam.TAX_PRECISION :=l_ar_sys_param_rec.TAX_PRECISION ;
881 -- sysinfo.sysparam.TAX_ROUNDING_RULE :=l_ar_sys_param_rec.TAX_ROUNDING_RULE ;
882 sysinfo.sysparam.GLOBAL_ATTRIBUTE1 :=l_ar_sys_param_rec.GLOBAL_ATTRIBUTE1 ;
883 sysinfo.sysparam.GLOBAL_ATTRIBUTE2 :=l_ar_sys_param_rec. GLOBAL_ATTRIBUTE2 ;
884 sysinfo.sysparam.GLOBAL_ATTRIBUTE3 :=l_ar_sys_param_rec.GLOBAL_ATTRIBUTE3 ;
885 sysinfo.sysparam.GLOBAL_ATTRIBUTE4 :=l_ar_sys_param_rec.GLOBAL_ATTRIBUTE4 ;
886 sysinfo.sysparam.GLOBAL_ATTRIBUTE5 :=l_ar_sys_param_rec.GLOBAL_ATTRIBUTE5 ;
887 sysinfo.sysparam.GLOBAL_ATTRIBUTE6 :=l_ar_sys_param_rec.GLOBAL_ATTRIBUTE6 ;
888 sysinfo.sysparam.GLOBAL_ATTRIBUTE7 :=l_ar_sys_param_rec.GLOBAL_ATTRIBUTE7 ;
889 sysinfo.sysparam.GLOBAL_ATTRIBUTE8 :=l_ar_sys_param_rec.GLOBAL_ATTRIBUTE8 ;
890 sysinfo.sysparam.GLOBAL_ATTRIBUTE9 :=l_ar_sys_param_rec.GLOBAL_ATTRIBUTE9 ;
891 sysinfo.sysparam.GLOBAL_ATTRIBUTE10 :=l_ar_sys_param_rec.GLOBAL_ATTRIBUTE10 ;
892 sysinfo.sysparam.GLOBAL_ATTRIBUTE11 :=l_ar_sys_param_rec.GLOBAL_ATTRIBUTE11 ;
893 sysinfo.sysparam.GLOBAL_ATTRIBUTE12 :=l_ar_sys_param_rec.GLOBAL_ATTRIBUTE12 ;
894 sysinfo.sysparam.GLOBAL_ATTRIBUTE13 :=l_ar_sys_param_rec.GLOBAL_ATTRIBUTE13 ;
895 sysinfo.sysparam.GLOBAL_ATTRIBUTE14 :=l_ar_sys_param_rec. GLOBAL_ATTRIBUTE14 ;
896 sysinfo.sysparam.GLOBAL_ATTRIBUTE15 :=l_ar_sys_param_rec.GLOBAL_ATTRIBUTE15 ;
897 sysinfo.sysparam.GLOBAL_ATTRIBUTE16 :=l_ar_sys_param_rec. GLOBAL_ATTRIBUTE16 ;
898 sysinfo.sysparam.GLOBAL_ATTRIBUTE17 :=l_ar_sys_param_rec.GLOBAL_ATTRIBUTE17 ;
899 sysinfo.sysparam.GLOBAL_ATTRIBUTE18 :=l_ar_sys_param_rec. GLOBAL_ATTRIBUTE18 ;
900 sysinfo.sysparam.GLOBAL_ATTRIBUTE19 :=l_ar_sys_param_rec.GLOBAL_ATTRIBUTE19 ;
901 sysinfo.sysparam.GLOBAL_ATTRIBUTE20 :=l_ar_sys_param_rec.GLOBAL_ATTRIBUTE20 ;
902 sysinfo.sysparam.GLOBAL_ATTRIBUTE_CATEGORY :=l_ar_sys_param_rec.GLOBAL_ATTRIBUTE_CATEGORY ;
903 sysinfo.sysparam.TAX_ROUNDING_ALLOW_OVERRIDE :=l_ar_sys_param_rec.TAX_ROUNDING_ALLOW_OVERRIDE ;
904 sysinfo.sysparam.RULE_SET_ID :=l_ar_sys_param_rec. RULE_SET_ID ;
905 sysinfo.sysparam.TAX_USE_ACCOUNT_EXC_RATE_FLAG :=l_ar_sys_param_rec.TAX_USE_ACCOUNT_EXC_RATE_FLAG ;
906 sysinfo.sysparam.TAX_USE_SYSTEM_EXC_RATE_FLAG :=l_ar_sys_param_rec.TAX_USE_SYSTEM_EXC_RATE_FLAG ;
907 -- sysinfo.sysparam.TAX_HIER_SITE_EXC_RATE :=l_ar_sys_param_rec.TAX_HIER_SITE_EXC_RATE ;
908 -- sysinfo.sysparam.TAX_HIER_CUST_EXC_RATE :=l_ar_sys_param_rec.TAX_HIER_CUST_EXC_RATE ;
909 -- sysinfo.sysparam.TAX_HIER_PROD_EXC_RATE :=l_ar_sys_param_rec.TAX_HIER_PROD_EXC_RATE ;
910 -- sysinfo.sysparam.TAX_HIER_ACCOUNT_EXC_RATE :=l_ar_sys_param_rec.TAX_HIER_ACCOUNT_EXC_RATE ;
911 -- sysinfo.sysparam.TAX_HIER_SYSTEM_EXC_RATE :=l_ar_sys_param_rec.TAX_HIER_SYSTEM_EXC_RATE ;
912 sysinfo.sysparam.TAX_DATABASE_VIEW_SET :=l_ar_sys_param_rec.TAX_DATABASE_VIEW_SET ;
913 sysinfo.sysparam.INCLUSIVE_TAX_USED :=l_ar_sys_param_rec.INCLUSIVE_TAX_USED ;
914 -- sysinfo.sysparam.CODE_COMBINATION_ID_ROUND :=l_ar_sys_param_rec.CODE_COMBINATION_ID_ROUND ;
915 -- sysinfo.sysparam.TRX_HEADER_LEVEL_ROUNDING :=l_ar_sys_param_rec.TRX_HEADER_LEVEL_ROUNDING ;
916 -- sysinfo.sysparam.TRX_HEADER_ROUND_CCID :=l_ar_sys_param_rec. TRX_HEADER_ROUND_CCID ;
917 -- sysinfo.sysparam.FINCHRG_RECEIVABLES_TRX_ID :=l_ar_sys_param_rec. FINCHRG_RECEIVABLES_TRX_ID ;
918 -- sysinfo.sysparam.SALES_TAX_GEOCODE :=l_ar_sys_param_rec. SALES_TAX_GEOCODE ;
919 -- sysinfo.sysparam.BILLS_RECEIVABLE_ENABLED_FLAG :=l_ar_sys_param_rec. BILLS_RECEIVABLE_ENABLED_FLAG ;
920 -- sysinfo.sysparam.TA_INSTALLED_FLAG :=l_ar_sys_param_rec.TA_INSTALLED_FLAG ;
921 -- sysinfo.sysparam.REV_TRANSFER_CLEAR_CCID :=l_ar_sys_param_rec. REV_TRANSFER_CLEAR_CCID ;
922 -- sysinfo.sysparam.SALES_CREDIT_PCT_LIMIT :=l_ar_sys_param_rec. SALES_CREDIT_PCT_LIMIT;
923 exception when no_data_found then
924 IF (g_level_statement >= g_current_runtime_level) THEN
925 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','EXCEPTION: NO_DATA_FOUND IN SYSTEM PARAMETERS ' );
926 END IF;
927 FND_MESSAGE.set_name('AR','AR_NO_ROW_IN_SYSTEM_PARAMETERS');
928 APP_EXCEPTION.raise_exception;
929 RAISE;
930 end;
931
932
933 /* bug fix 3142794
934 -- if the org_id has not changed, then do nothing, return.
935 IF l_last_org_id = sysinfo.sysparam.org_id THEN
936 return;
937 END IF;
938 */
939
940 -- pg_i := 0;
941
942 --tax_info_rec.DELETE;
943 --tax_gbl_rec.DELETE;
944 --tax_rec_tbl.DELETE;
945 --tax_info_rec_tbl.DELETE;
946 --old_line_rec.DELETE;
947 --new_line_rec.DELETE;
948
949 BEGIN
950 SELECT sob.chart_of_accounts_id,
951 sob.currency_code,
952 c.precision,
953 c.minimum_accountable_unit
954 INTO l_chart_of_accounts_id,
955 l_functional_currency,
956 l_base_precision,
957 l_base_min_acc_unit
958 FROM gl_sets_of_books sob, fnd_currencies c
959 WHERE sob.set_of_books_id = sysinfo.sysparam.set_of_books_id
960 AND sob.currency_code = c.currency_code;
961
962 EXCEPTION
963 WHEN NO_DATA_FOUND THEN
964 -- test for reasons why failure occured
965 begin -- Test 1: Check row exists in gl sets of books
966 select sob.set_of_books_id
967 into l_sob_test
968 from gl_sets_of_books sob
969 where sob.set_of_books_id = sysinfo.sysparam.set_of_books_id;
970 exception when no_data_found then
971 IF (g_level_statement >= g_current_runtime_level) THEN
972 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','EXCEPTION: NO_DATA_FOUND IN SET OF BOOKS ' );
973 END IF;
974 FND_MESSAGE.set_name('AR','AR_NO_ROW_IN_GL_SET_OF_BOOKS');
975 APP_EXCEPTION.raise_exception;
976 RAISE;
977 end;
978
979 -- Test 1 passed therefore currency must not be defined
980 IF (g_level_statement >= g_current_runtime_level) THEN
981 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','EXCEPTION: NO_DATA_FOUND IN CURRENCIES ' );
982 END IF;
983 FND_MESSAGE.set_name('AR','AR_NO_ROW_IN_FND_CURRENCIES');
984 APP_EXCEPTION.raise_exception;
985 RAISE; --end of WHEN NO DATA FOUND
986 END;
987
988
989 sysinfo.chart_of_accounts_id := l_chart_of_accounts_id;
990 sysinfo.base_precision := l_base_precision;
991 sysinfo.min_accountable_unit := l_base_min_acc_unit;
992
993 sysinfo.func_precision := sysinfo.base_precision;
994 sysinfo.base_currency_code := l_functional_currency;
995
996 /* nipatel added for eTax uptake;
997 It is enforced in System Options form that tax currency code should
998 be the same as functional currency */
999
1000 If sysinfo.sysparam.tax_precision is not NULL OR
1001 sysinfo.sysparam.tax_minimum_accountable_unit is NOT NULL
1002 then
1003 sysinfo.sysparam.tax_currency_code := sysinfo.base_currency_code;
1004 end if;
1005
1006 /* nipatel sysinfo.tax_view_Set is obsolete after eTax uptake
1007 IF nvl(sysinfo.sysparam.tax_database_view_set, 'O') = 'O' THEN
1008 sysinfo.tax_view_set := NULL; -- Oracle tax views
1009 ELSE
1010 sysinfo.tax_view_set := sysinfo.sysparam.tax_database_view_set;
1011 END IF;
1012 */
1013
1014 -- allow multiple inclusive
1015 -- only for Latin America tax method.
1016 if (sysinfo.sysparam.tax_method = MTHD_LATIN) then
1017 sysinfo.allow_multiple_inclusive := 'Y';
1018 else
1019 sysinfo.allow_multiple_inclusive := 'N';
1020 end if;
1021
1022 EXCEPTION
1023 WHEN OTHERS THEN
1024 IF (g_level_statement >= g_current_runtime_level) THEN
1025 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Error Getting system information');
1026 END IF;
1027 RAISE;
1028 END; -- Get System info
1029
1030
1031 --
1032 -- Get Profile Info
1033 --
1034 -- bug 5120920 - use oe_sys_parameters.value();
1035 l_master_org_id := oe_sys_parameters.value('MASTER_ORGANIZATION_ID', p_event_class_rec.internal_organization_id);
1036
1037 If l_master_org_id is NULL then
1038 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1039 FND_LOG.STRING(g_level_unexpected,
1040 'ZX.PLSQL.ZX_AR_TAX_CLASSIFICATN_DEF_PKG.initialize',
1041 'Error Getting OE Profile information');
1042 END IF;
1043 -- Bug 2185315 - added fnd_message so error will reflect on the form
1044 FND_MESSAGE.set_name('AR','AR_NO_OM_MASTER_ORG'); -- Bug 3151551
1045 APP_EXCEPTION.raise_exception;
1046 End if;
1047
1048 profinfo.so_organization_id := l_master_org_id;
1049 --oe_profile.get('SO_ORGANIZATION_ID', profinfo.so_organization_id);
1050
1051 BEGIN
1052 IF ( arp_global.program_application_id IS NULL ) THEN
1053 profinfo.application_id := -1;
1054 ELSE
1055 profinfo.application_id := arp_global.program_application_id;
1056 END IF;
1057
1058 IF ( arp_global.user_id IS NULL ) THEN
1059 profinfo.user_id := -1;
1060 ELSE
1061 profinfo.user_id := arp_global.user_id;
1062 END IF;
1063 EXCEPTION
1064 WHEN OTHERS THEN
1065 IF (g_level_statement >= g_current_runtime_level) THEN
1066 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Error Getting Profile information');
1067 END IF;
1068 RAISE;
1069 END;
1070
1071 /* not needed foir LTE
1072 --
1073 -- Location Flex Info
1074 --
1075 BEGIN
1076 tax_gbl_rec.tax_accnt_column := arp_flex.expand(arp_flex.location,
1077 'TAX_ACCOUNT', ',', '%COLUMN%');
1078 IF (g_level_statement >= g_current_runtime_level) THEN
1079 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','tax_accnt_column: '||tax_gbl_rec.tax_accnt_column);
1080 END IF;
1081
1082 EXCEPTION
1083 WHEN OTHERS THEN
1084 IF (g_level_statement >= g_current_runtime_level) THEN
1085 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Error Getting Tax Account Qualifier');
1086 END IF;
1087 RAISE;
1088 END;
1089
1090 --
1091 -- GL Natural Account info
1092 --
1093 BEGIN
1094 tax_gbl_rec.natural_acct_column := arp_flex.expand(arp_flex.gl,
1095 'GL_ACCOUNT', ',', '%COLUMN%');
1096 EXCEPTION
1097 WHEN OTHERS THEN
1098 IF (g_level_statement >= g_current_runtime_level) THEN
1099 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Error Getting GL Natural Account Segment');
1100 END IF;
1101
1102 RAISE;
1103
1104 END;
1105 */
1106
1107
1108
1109 IF (g_level_statement >= g_current_runtime_level) THEN
1110 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','-- Setting Tax processing flags!');
1111 END IF;
1112 sysinfo.insert_tax_lines := 'Y';
1113 sysinfo.call_auto_acctng := 'Y';
1114 tax_gbl_rec.one_err_msg_flag := 'Y';
1115
1116 -- arp_tax_group.initialize;
1117
1118 IF (g_level_procedure >= g_current_runtime_level ) THEN
1119 FND_LOG.STRING(g_level_procedure,
1120 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.initialize.END',
1121 'ZX_PRODUCT_INTEGRATION_PKG: initialize (-)');
1122 END IF;
1123
1124 EXCEPTION
1125 WHEN OTHERS THEN
1126 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1127 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1128 FND_LOG.STRING(g_level_unexpected,
1129 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.initialize',
1130 SQLCODE || ' ; ' || SQLERRM);
1131 END IF;
1132
1133 IF (g_level_procedure >= g_current_runtime_level ) THEN
1134 FND_LOG.STRING(g_level_procedure,
1135 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.initialize.END',
1136 'ZX_PRODUCT_INTEGRATION_PKG: initialize (-)');
1137 END IF;
1138
1139 END initialize;
1140
1141 /*===========================================================================+
1142 | PROCEDURE |
1143 | calculate_tax |
1144 | |
1145 | DESCRIPTION |
1146 | calculate_tax API when transaction come in with no tax |
1147 | SCOPE - PUBLIC |
1148 | |
1149 | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED |
1150 | |
1151 | CALLED FROM |
1152 | |
1153 | |
1154 | NOTES |
1155 | |
1156 | MODIFICATION HISTORY |
1157 | |
1158 +===========================================================================*/
1159
1160 PROCEDURE calculate_tax (
1161 p_event_class_rec IN zx_api_pub.event_class_rec_type,
1162 x_return_status OUT NOCOPY VARCHAR2
1163 ) IS
1164
1165 l_tax_calculation_flag VARCHAR2(1);
1166
1167 BEGIN
1168
1169 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1170 IF (g_level_procedure >= g_current_runtime_level ) THEN
1171 FND_LOG.STRING(g_level_procedure,
1172 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax.BEGIN',
1173 'ZX_PRODUCT_INTEGRATION_PKG: calculate_tax (+)');
1174 END IF;
1175
1176 x_return_status := FND_API.G_RET_STS_SUCCESS;
1177
1178 -- adjustment is not supported for LTE tax method
1179 IF p_event_class_rec.event_class_code = 'ADJUSTMENT' THEN
1180 IF (g_level_procedure >= g_current_runtime_level ) THEN
1181 FND_LOG.STRING(g_level_procedure,
1182 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax',
1183 'adjustment is not supported for LTE tax method');
1184 FND_LOG.STRING(g_level_procedure,
1185 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax.END',
1186 'ZX_PRODUCT_INTEGRATION_PKG: calculate_tax (-)');
1187 END IF;
1188 RETURN;
1189 END IF;
1190
1191 --initialize the cache structure.
1192 initialize (
1193 p_event_class_rec => p_event_class_rec,
1194 x_return_status => x_return_status
1195 );
1196
1197
1198 IF ( x_return_status <> FND_API.G_RET_STS_SUCCESS ) THEN
1199 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1200 FND_LOG.STRING(g_level_unexpected,
1201 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax',
1202 'Incorrect return_status after calling ' ||
1203 'ZX_PRODUCT_INTEGRATION_PKG.initialize()');
1204 END IF;
1205 IF (g_level_procedure >= g_current_runtime_level ) THEN
1206 FND_LOG.STRING(g_level_procedure,
1207 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax.END',
1208 'ZX_PRODUCT_INTEGRATION_PKG: calculate_tax (-)');
1209 END IF;
1210
1211 RETURN;
1212 END IF;
1213
1214 -- error handling mode should already set when reach here
1215 -- zx_api_pub.G_DATA_TRANSFER_MODE := 'TAB';
1216
1217 IF (g_level_statement >= g_current_runtime_level) THEN
1218 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Count in zx_global_structures_pkg.trx_line_dist_tbl = '||
1219 NVL(zx_global_structures_pkg.trx_line_dist_tbl.internal_organization_id.LAST, 0));
1220 END IF;
1221
1222
1223 FOR l_index IN NVL(zx_global_structures_pkg.trx_line_dist_tbl.internal_organization_id.FIRST, 1) ..
1224 NVL(zx_global_structures_pkg.trx_line_dist_tbl.internal_organization_id.LAST, 0)
1225 LOOP
1226
1227 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1228 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Calculating Tax for : '||
1229 ' APPLICATION_ID: '||TO_CHAR(zx_global_structures_pkg.trx_line_dist_tbl.APPLICATION_ID(l_index))||
1230 ', ENTITY_CODE: '||zx_global_structures_pkg.trx_line_dist_tbl.ENTITY_CODE(l_index)||
1231 ', EVENT_CLASS_CODE: '||zx_global_structures_pkg.trx_line_dist_tbl.EVENT_CLASS_CODE(l_index)||
1232 ', EVENT_TYPE_CODE: '||zx_global_structures_pkg.trx_line_dist_tbl.EVENT_TYPE_CODE(l_index)||
1233 ', INTERNAL_ORG_ID: '|| TO_CHAR(zx_global_structures_pkg.trx_line_dist_tbl.INTERNAL_ORGANIZATION_ID(l_index))||
1234 ', TRX_ID: '|| TO_CHAR(zx_global_structures_pkg.trx_line_dist_tbl.TRX_ID(l_index))||
1235 ', TRX_LINE_ID: '|| TO_CHAR(zx_global_structures_pkg.trx_line_dist_tbl.TRX_LINE_ID(l_index))||
1236 ', TRX_LEVEL_TYPE: '|| TO_CHAR(zx_global_structures_pkg.trx_line_dist_tbl.TRX_LEVEL_TYPE(l_index))||
1237 ', TRX_LINE_TYPE: '|| zx_global_structures_pkg.trx_line_dist_tbl.TRX_LINE_TYPE(l_index)||
1238 ', LINE_LEVEL_ACTION: '|| zx_global_structures_pkg.trx_line_dist_tbl.LINE_LEVEL_ACTION(l_index)||
1239 ', TRX_DATE: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.TRX_DATE(l_index))||
1240 ', TRX_CURRENCY_CODE: '|| zx_global_structures_pkg.trx_line_dist_tbl.TRX_CURRENCY_CODE(l_index)||
1241 ', TRX_NUMBER: '|| zx_global_structures_pkg.trx_line_dist_tbl.TRX_NUMBER(l_index)||
1242 ', TRX_LINE_NUMBER: '|| zx_global_structures_pkg.trx_line_dist_tbl.TRX_LINE_NUMBER(l_index)||
1243 ', TRX_LINE_DESCRIPTION: '|| zx_global_structures_pkg.trx_line_dist_tbl.TRX_LINE_DESCRIPTION(l_index)||
1244 ', FIRST_PTY_ORG_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.FIRST_PTY_ORG_ID(l_index))||
1245 ', TAX_EVENT_CLASS_CODE: '|| zx_global_structures_pkg.trx_line_dist_tbl.TAX_EVENT_CLASS_CODE(l_index)||
1246 ', TAX_EVENT_TYPE_CODE: '|| zx_global_structures_pkg.trx_line_dist_tbl.TAX_EVENT_TYPE_CODE(l_index)||
1247 ', DOC_EVENT_STATUS: '|| zx_global_structures_pkg.trx_line_dist_tbl.DOC_EVENT_STATUS(l_index)||
1248 ', TRX_BUSINESS_CATEGORY: '|| zx_global_structures_pkg.trx_line_dist_tbl.TRX_BUSINESS_CATEGORY(l_index)||
1249 ', PRODUCT_FISC_CLASSIFICATION: '|| zx_global_structures_pkg.trx_line_dist_tbl.PRODUCT_FISC_CLASSIFICATION(l_index)||
1250 ', PRODUCT_CATEGORY: '|| zx_global_structures_pkg.trx_line_dist_tbl.PRODUCT_CATEGORY(l_index)||
1251 ', USER_DEFINED_FISC_CLASS: '|| zx_global_structures_pkg.trx_line_dist_tbl.USER_DEFINED_FISC_CLASS(l_index)||
1252 ', LINE_INTENDED_USE: '|| zx_global_structures_pkg.trx_line_dist_tbl.LINE_INTENDED_USE(l_index)||
1253 ', PRODUCT_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.PRODUCT_ID(l_index))||
1254 ', PRODUCT_DESCRIPTION: '|| zx_global_structures_pkg.trx_line_dist_tbl.PRODUCT_DESCRIPTION(l_index)||
1255 ', PRODUCT_ORG_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.PRODUCT_ORG_ID(l_index))||
1256 ', UOM_CODE: '|| zx_global_structures_pkg.trx_line_dist_tbl.UOM_CODE(l_index)||
1257 ', PRODUCT_TYPE: '|| zx_global_structures_pkg.trx_line_dist_tbl.PRODUCT_TYPE(l_index)||
1258 ', PRODUCT_CODE: '|| zx_global_structures_pkg.trx_line_dist_tbl.PRODUCT_CODE(l_index)||
1259 ', LINE_CLASS: '|| zx_global_structures_pkg.trx_line_dist_tbl.LINE_CLASS(l_index)||
1260 ', LINE_AMT: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.LINE_AMT(l_index))||
1261 ', TRX_LINE_QUANTITY: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.TRX_LINE_QUANTITY(l_index))||
1262 ', UNIT_PRICE: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.UNIT_PRICE(l_index))||
1263 ', SHIP_TO_LOCATION_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.SHIP_TO_LOCATION_ID(l_index))||
1264 ', SHIP_FROM_LOCATION_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.SHIP_FROM_LOCATION_ID(l_index))||
1265 ', BILL_TO_LOCATION_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.BILL_TO_LOCATION_ID(l_index))||
1266 ', BILL_FROM_LOCATION_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.BILL_FROM_LOCATION_ID(l_index))||
1267 ', ADJUSTED_DOC_APPLICATION_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_APPLICATION_ID(l_index))||
1268 ', ADJUSTED_DOC_ENTITY_CODE: '|| zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_ENTITY_CODE(l_index)||
1269 ', ADJUSTED_DOC_EVENT_CLASS_CODE: '|| zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_EVENT_CLASS_CODE(l_index)||
1270 ', ADJUSTED_DOC_TRX_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_TRX_ID(l_index))||
1271 ', ADJUSTED_DOC_LINE_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_LINE_ID(l_index))||
1272 ', ADJUSTED_DOC_NUMBER: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_NUMBER(l_index))||
1273 ', ADJUSTED_DOC_DATE: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_DATE(l_index))||
1274 ', ADJUSTED_DOC_TRX_LEVEL_TYPE: '|| zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_TRX_LEVEL_TYPE(l_index) ||
1275 ', SHIP_TO_PARTY_TAX_PROF_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.SHIP_TO_PARTY_TAX_PROF_ID(l_index))||
1276 ', SHIP_FROM_PARTY_TAX_PROF_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.SHIP_FROM_PARTY_TAX_PROF_ID(l_index))||
1277 ', BILL_TO_PARTY_TAX_PROF_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.BILL_TO_PARTY_TAX_PROF_ID(l_index))||
1278 ', BILL_FROM_PARTY_TAX_PROF_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.BILL_FROM_PARTY_TAX_PROF_ID(l_index))||
1279 ', SHIP_TO_SITE_TAX_PROF_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.SHIP_TO_SITE_TAX_PROF_ID(l_index))||
1280 ', SHIP_FROM_SITE_TAX_PROF_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.SHIP_FROM_SITE_TAX_PROF_ID(l_index))||
1281 ', BILL_TO_SITE_TAX_PROF_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.BILL_TO_SITE_TAX_PROF_ID(l_index))||
1282 ', BILL_FROM_SITE_TAX_PROF_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.BILL_FROM_SITE_TAX_PROF_ID(l_index))||
1283 ', DOCUMENT_SUB_TYPE: '|| zx_global_structures_pkg.trx_line_dist_tbl.DOCUMENT_SUB_TYPE(l_index)||
1284 ', TAX_INVOICE_DATE: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.TAX_INVOICE_DATE(l_index))||
1285 ', TAX_INVOICE_NUMBER: '|| zx_global_structures_pkg.trx_line_dist_tbl.TAX_INVOICE_NUMBER(l_index)||
1286 ', LEDGER_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.LEDGER_ID(l_index))||
1287 ', CURRENCY_CONVERSION_DATE: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.CURRENCY_CONVERSION_DATE(l_index))||
1288 ', CURRENCY_CONVERSION_RATE: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.CURRENCY_CONVERSION_RATE(l_index))||
1289 ', CURRENCY_CONVERSION_TYPE: '|| zx_global_structures_pkg.trx_line_dist_tbl.CURRENCY_CONVERSION_TYPE(l_index)||
1290 ', MINIMUM_ACCOUNTABLE_UNIT: '|| zx_global_structures_pkg.trx_line_dist_tbl.MINIMUM_ACCOUNTABLE_UNIT(l_index)||
1291 ', PRECISION: '|| zx_global_structures_pkg.trx_line_dist_tbl.PRECISION(l_index)||
1292 ', LEGAL_ENTITY_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.LEGAL_ENTITY_ID(l_index))||
1293 ', ESTABLISHMENT_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.ESTABLISHMENT_ID(l_index))||
1294 ', LINE_AMT_INCLUDES_TAX_FLAG: '|| zx_global_structures_pkg.trx_line_dist_tbl.LINE_AMT_INCLUDES_TAX_FLAG(l_index)||
1295 ', TAX_AMT_INCLUDED_FLAG: '|| zx_global_structures_pkg.trx_line_dist_tbl.TAX_AMT_INCLUDED_FLAG(l_index) ||
1296 ', HISTORICAL_FLAG: '|| zx_global_structures_pkg.trx_line_dist_tbl.HISTORICAL_FLAG(l_index)||
1297 ', INTERNAL_ORG_LOCATION_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.INTERNAL_ORG_LOCATION_ID(l_index))||
1298 ', CTRL_HDR_TX_APPL_FLAG: '|| zx_global_structures_pkg.trx_line_dist_tbl.CTRL_HDR_TX_APPL_FLAG(l_index)||
1299 ', CTRL_TOTAL_HDR_TX_AMT: '|| zx_global_structures_pkg.trx_line_dist_tbl.CTRL_TOTAL_HDR_TX_AMT(l_index)||
1300 ', CTRL_TOTAL_LINE_TX_AMT: '|| zx_global_structures_pkg.trx_line_dist_tbl.CTRL_TOTAL_LINE_TX_AMT(l_index) ||
1301 ', OUTPUT_TAX_CLASSIFICATION_CODE: '|| zx_global_structures_pkg.trx_line_dist_tbl.OUTPUT_TAX_CLASSIFICATION_CODE(l_index)
1302 );
1303 END IF;
1304
1305 ZX_TDS_CALC_SERVICES_PUB_PKG.initialize (
1306 p_event_class_rec ,
1307 'LINE' ,
1308 x_return_status );
1309
1310 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1311 IF (g_level_procedure >= g_current_runtime_level ) THEN
1312 FND_LOG.STRING(g_level_procedure,
1313 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax',
1314 'Incorrect return_status when calling '||
1315 'ZX_TDS_CALC_SERVICES_PUB_PKG.initialize().');
1316 FND_LOG.STRING(g_level_procedure,
1317 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax.END',
1318 'ZX_PRODUCT_INTEGRATION_PKG: calculate_tax (-)');
1319 END IF;
1320 RETURN;
1321 END IF;
1322
1323 -- Skip processing tax applicability for line_level_action
1324 -- 'RECORD_WITH_NO_TAX' and 'ALLOCATE_LINE_ONLY_ADJUSTMENT'
1325 IF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_level_action(l_index) IN ('RECORD_WITH_NO_TAX','ALLOCATE_LINE_ONLY_ADJUSTMENT')
1326 THEN
1327 IF (g_level_procedure >= g_current_runtime_level ) THEN
1328 FND_LOG.STRING(g_level_procedure,
1329 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax',
1330 'Skip processing for Line-Level-Action '||
1331 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_level_action(l_index));
1332 FND_LOG.STRING(g_level_procedure,
1333 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax.END',
1334 'ZX_PRODUCT_INTEGRATION_PKG.calculate_tax(-)');
1335 END IF;
1336 RETURN;
1337 END IF;
1338
1339 -- for UPDATE event fetch the existing tax lines
1340 -- Added code to fetch the existing manual Tax lines -- Bug#8256247
1341 IF ((ZX_GLOBAL_STRUCTURES_PKG.g_update_event_process_flag = 'Y') OR
1342 (ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_level_action(l_index) = 'UPDATE') OR
1343 (ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.tax_event_type_code(l_index) ='UPDATE'
1344 AND
1345 (ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_level_action(l_index) = 'LINE_INFO_TAX_ONLY'
1346 OR ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_level_action(l_index) = 'CREATE_WITH_TAX')))
1347 THEN
1348
1349 fetch_manual_tax_lines (
1350 p_event_class_rec => p_event_class_rec,
1351 p_index => l_index,
1352 x_return_status => x_return_status);
1353
1354 IF ( x_return_status <> FND_API.G_RET_STS_SUCCESS ) THEN
1355 IF (g_level_statement >= g_current_runtime_level ) THEN
1356 FND_LOG.STRING(g_level_statement,
1357 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax',
1358 'Incorrect RETURN_STATUS after calling '||
1359 'ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines');
1360 FND_LOG.STRING(g_level_statement,
1361 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax',
1362 'RETURN_STATUS = ' || x_return_status);
1363 FND_LOG.STRING(g_level_statement,
1364 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax.END',
1365 'ZX_PRODUCT_INTEGRATION_PKG.calculate_tax(-)');
1366 END IF;
1367 RETURN;
1368 END IF;
1369
1370 ELSIF (ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_application_id(l_index) IS NOT NULL) THEN
1371 get_manual_tax_lines_for_cm(
1372 p_event_class_rec => p_event_class_rec,
1373 p_index => l_index,
1374 x_return_status => x_return_status);
1375
1376 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1377 IF (g_level_statement >= g_current_runtime_level ) THEN
1378 FND_LOG.STRING(g_level_statement,
1379 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax',
1380 'Incorrect return_status after calling ' ||
1381 'get_manual_tax_lines_for_cm()');
1382 FND_LOG.STRING(g_level_statement,
1383 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax',
1384 'RETURN_STATUS = ' || x_return_status);
1385 FND_LOG.STRING(g_level_statement,
1386 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax.END',
1387 'ZX_PRODUCT_INTEGRATION_PKG.calculate_tax(-)');
1388 END IF;
1389 RETURN;
1390 END IF;
1391 END IF;
1392
1393 -- getting the tax calculation flag for the org and trx type id to determine if tax needs
1394 -- to be calculated for each line.
1395 BEGIN
1396 SELECT INV_TYPE.TAX_CALCULATION_FLAG
1397 INTO l_tax_calculation_flag
1398 FROM RA_CUST_TRX_TYPES_ALL INV_TYPE
1399 WHERE INV_TYPE.CUST_TRX_TYPE_ID = zx_global_structures_pkg.trx_line_dist_tbl.receivables_trx_type_id(l_index)
1400 AND ORG_ID = zx_global_structures_pkg.trx_line_dist_tbl.internal_organization_id(l_index);
1401 EXCEPTION
1402 WHEN OTHERS THEN
1403 l_tax_calculation_flag := NULL;
1404 END;
1405
1406 IF NVL(l_tax_calculation_flag,'N') = 'Y' or
1407 zx_global_structures_pkg.trx_line_dist_tbl.OUTPUT_TAX_CLASSIFICATION_CODE(l_index) is NOT NULL THEN
1408 calculate_tax_lte (
1409 p_event_class_rec => p_event_class_rec,
1410 p_id_dist_tbl => l_index,
1411 x_return_status => x_return_status
1412 );
1413
1414 IF ( x_return_status <> FND_API.G_RET_STS_SUCCESS ) THEN
1415 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1416 FND_LOG.STRING(g_level_unexpected,
1417 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax',
1418 'Errored out when calculate tax.');
1419 END IF;
1420 IF (g_level_procedure >= g_current_runtime_level ) THEN
1421 FND_LOG.STRING(g_level_procedure,
1422 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax.END',
1423 'ZX_PRODUCT_INTEGRATION_PKG: calculate_tax (-)');
1424 END IF;
1425 RETURN;
1426 END IF;
1427 END IF;
1428
1429 END LOOP;
1430
1431 -- delete the store data structure
1432 tax_rec_tbl.delete;
1433 tax_info_out_rec_tbl.delete;
1434
1435 IF (g_level_procedure >= g_current_runtime_level ) THEN
1436 FND_LOG.STRING(g_level_procedure,
1437 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax.END',
1438 'ZX_PRODUCT_INTEGRATION_PKG: calculate_tax (-)');
1439 END IF;
1440
1441 EXCEPTION
1442 WHEN OTHERS THEN
1443 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1444 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1445 FND_LOG.STRING(g_level_unexpected,
1446 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax',
1447 SQLCODE || ' ; ' || SQLERRM);
1448 END IF;
1449 IF (g_level_procedure >= g_current_runtime_level ) THEN
1450 FND_LOG.STRING(g_level_procedure,
1451 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax.END',
1452 'ZX_PRODUCT_INTEGRATION_PKG: calculate_tax (-)');
1453 END IF;
1454 END calculate_tax;
1455
1456 /*===========================================================================+
1457 | PROCEDURE |
1458 | import_document_with_tax |
1459 | |
1460 | DESCRIPTION |
1461 | Provide import service call from eBusiness Suite product, |
1462 | Support transaction line are imported with/without tax lines. |
1463 | SCOPE - PUBLIC |
1464 | |
1465 | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED |
1466 | |
1467 | CALLED FROM |
1468 | |
1469 | |
1470 | NOTES |
1471 | currently assume all passing lines belong to one trx |
1472 | MODIFICATION HISTORY |
1473 | |
1474 +===========================================================================*/
1475
1476 PROCEDURE import_document_with_tax (
1477 p_event_class_rec IN OUT NOCOPY zx_api_pub.event_class_rec_type,
1478 x_return_status OUT NOCOPY VARCHAR2
1479 ) IS
1480
1481 l_error_buffer VARCHAR2(240);
1482 l_tax_calculation_flag VARCHAR2(1);
1483
1484 BEGIN
1485
1486 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1487 IF (g_level_procedure >= g_current_runtime_level ) THEN
1488 FND_LOG.STRING(g_level_procedure,
1489 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_document_with_tax.BEGIN',
1490 'ZX_PRODUCT_INTEGRATION_PKG: import_document_with_tax (+)');
1491 END IF;
1492
1493 x_return_status := FND_API.G_RET_STS_SUCCESS;
1494
1495 -- adjustment is not supported for LTE tax method
1496 IF p_event_class_rec.event_class_code = 'ADJUSTMENT' THEN
1497 IF (g_level_procedure >= g_current_runtime_level ) THEN
1498 FND_LOG.STRING(g_level_procedure,
1499 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_document_with_tax',
1500 'adjustment is not supported for LTE tax method');
1501 FND_LOG.STRING(g_level_procedure,
1502 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_document_with_tax.END',
1503 'ZX_PRODUCT_INTEGRATION_PKG: import_document_with_tax (-)');
1504 END IF;
1505 RETURN;
1506 END IF;
1507
1508 --initialize the cache structure.
1509 initialize (
1510 p_event_class_rec => p_event_class_rec,
1511 x_return_status => x_return_status
1512 );
1513 IF ( x_return_status <> FND_API.G_RET_STS_SUCCESS ) THEN
1514 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1515 FND_LOG.STRING(g_level_unexpected,
1516 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_document_with_tax',
1517 'Incorrect return_status after calling ' ||
1518 'ZX_PRODUCT_INTEGRATION_PKG.initialize()');
1519 END IF;
1520 IF (g_level_procedure >= g_current_runtime_level ) THEN
1521 FND_LOG.STRING(g_level_procedure,
1522 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_document_with_tax.END',
1523 'ZX_PRODUCT_INTEGRATION_PKG: import_document_with_tax (-)');
1524 END IF;
1525
1526 RETURN;
1527 END IF;
1528
1529 FOR l_index IN NVL(zx_global_structures_pkg.trx_line_dist_tbl.internal_organization_id.FIRST, 1) ..
1530 NVL(zx_global_structures_pkg.trx_line_dist_tbl.internal_organization_id.LAST, 0)
1531 LOOP
1532
1533 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1534 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Importing transaction for : '||
1535 ' APPLICATION_ID: '||TO_CHAR(zx_global_structures_pkg.trx_line_dist_tbl.APPLICATION_ID(l_index))||
1536 ', ENTITY_CODE: '||zx_global_structures_pkg.trx_line_dist_tbl.ENTITY_CODE(l_index)||
1537 ', EVENT_CLASS_CODE: '||zx_global_structures_pkg.trx_line_dist_tbl.EVENT_CLASS_CODE(l_index)||
1538 ', EVENT_TYPE_CODE: '||zx_global_structures_pkg.trx_line_dist_tbl.EVENT_TYPE_CODE(l_index)||
1539 ', INTERNAL_ORG_ID: '|| TO_CHAR(zx_global_structures_pkg.trx_line_dist_tbl.INTERNAL_ORGANIZATION_ID(l_index))||
1540 ', TRX_ID: '|| TO_CHAR(zx_global_structures_pkg.trx_line_dist_tbl.TRX_ID(l_index))||
1541 ', TRX_LINE_ID: '|| TO_CHAR(zx_global_structures_pkg.trx_line_dist_tbl.TRX_LINE_ID(l_index))||
1542 ', TRX_LEVEL_TYPE: '|| TO_CHAR(zx_global_structures_pkg.trx_line_dist_tbl.TRX_LEVEL_TYPE(l_index))||
1543 ', TRX_LINE_TYPE: '|| zx_global_structures_pkg.trx_line_dist_tbl.TRX_LINE_TYPE(l_index)||
1544 ', LINE_LEVEL_ACTION: '|| zx_global_structures_pkg.trx_line_dist_tbl.LINE_LEVEL_ACTION(l_index)||
1545 ', TRX_DATE: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.TRX_DATE(l_index))||
1546 ', TRX_CURRENCY_CODE: '|| zx_global_structures_pkg.trx_line_dist_tbl.TRX_CURRENCY_CODE(l_index)||
1547 ', TRX_NUMBER: '|| zx_global_structures_pkg.trx_line_dist_tbl.TRX_NUMBER(l_index)||
1548 ', TRX_LINE_NUMBER: '|| zx_global_structures_pkg.trx_line_dist_tbl.TRX_LINE_NUMBER(l_index)||
1549 ', TRX_LINE_DESCRIPTION: '|| zx_global_structures_pkg.trx_line_dist_tbl.TRX_LINE_DESCRIPTION(l_index)||
1550 ', FIRST_PTY_ORG_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.FIRST_PTY_ORG_ID(l_index))||
1551 ', TAX_EVENT_CLASS_CODE: '|| zx_global_structures_pkg.trx_line_dist_tbl.TAX_EVENT_CLASS_CODE(l_index)||
1552 ', TAX_EVENT_TYPE_CODE: '|| zx_global_structures_pkg.trx_line_dist_tbl.TAX_EVENT_TYPE_CODE(l_index)||
1553 ', DOC_EVENT_STATUS: '|| zx_global_structures_pkg.trx_line_dist_tbl.DOC_EVENT_STATUS(l_index)||
1554 ', TRX_BUSINESS_CATEGORY: '|| zx_global_structures_pkg.trx_line_dist_tbl.TRX_BUSINESS_CATEGORY(l_index)||
1555 ', PRODUCT_FISC_CLASSIFICATION: '|| zx_global_structures_pkg.trx_line_dist_tbl.PRODUCT_FISC_CLASSIFICATION(l_index)||
1556 ', PRODUCT_CATEGORY: '|| zx_global_structures_pkg.trx_line_dist_tbl.PRODUCT_CATEGORY(l_index)||
1557 ', USER_DEFINED_FISC_CLASS: '|| zx_global_structures_pkg.trx_line_dist_tbl.USER_DEFINED_FISC_CLASS(l_index)||
1558 ', LINE_INTENDED_USE: '|| zx_global_structures_pkg.trx_line_dist_tbl.LINE_INTENDED_USE(l_index)||
1559 ', PRODUCT_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.PRODUCT_ID(l_index))||
1560 ', PRODUCT_DESCRIPTION: '|| zx_global_structures_pkg.trx_line_dist_tbl.PRODUCT_DESCRIPTION(l_index)||
1561 ', PRODUCT_ORG_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.PRODUCT_ORG_ID(l_index))||
1562 ', UOM_CODE: '|| zx_global_structures_pkg.trx_line_dist_tbl.UOM_CODE(l_index)||
1563 ', PRODUCT_TYPE: '|| zx_global_structures_pkg.trx_line_dist_tbl.PRODUCT_TYPE(l_index)||
1564 ', PRODUCT_CODE: '|| zx_global_structures_pkg.trx_line_dist_tbl.PRODUCT_CODE(l_index)||
1565 ', LINE_CLASS: '|| zx_global_structures_pkg.trx_line_dist_tbl.LINE_CLASS(l_index)||
1566 ', LINE_AMT: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.LINE_AMT(l_index))||
1567 ', TRX_LINE_QUANTITY: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.TRX_LINE_QUANTITY(l_index))||
1568 ', UNIT_PRICE: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.UNIT_PRICE(l_index))||
1569 ', SHIP_TO_LOCATION_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.SHIP_TO_LOCATION_ID(l_index))||
1570 ', SHIP_FROM_LOCATION_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.SHIP_FROM_LOCATION_ID(l_index))||
1571 ', BILL_TO_LOCATION_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.BILL_TO_LOCATION_ID(l_index))||
1572 ', BILL_FROM_LOCATION_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.BILL_FROM_LOCATION_ID(l_index))||
1573 ', ADJUSTED_DOC_APPLICATION_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_APPLICATION_ID(l_index))||
1574 ', ADJUSTED_DOC_ENTITY_CODE: '|| zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_ENTITY_CODE(l_index)||
1575 ', ADJUSTED_DOC_EVENT_CLASS_CODE: '|| zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_EVENT_CLASS_CODE(l_index)||
1576 ', ADJUSTED_DOC_TRX_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_TRX_ID(l_index))||
1577 ', ADJUSTED_DOC_LINE_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_LINE_ID(l_index))||
1578 ', ADJUSTED_DOC_NUMBER: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_NUMBER(l_index))||
1579 ', ADJUSTED_DOC_DATE: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_DATE(l_index))||
1580 ', ADJUSTED_DOC_TRX_LEVEL_TYPE: '|| zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_TRX_LEVEL_TYPE(l_index) ||
1581 ', SHIP_TO_PARTY_TAX_PROF_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.SHIP_TO_PARTY_TAX_PROF_ID(l_index))||
1582 ', SHIP_FROM_PARTY_TAX_PROF_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.SHIP_FROM_PARTY_TAX_PROF_ID(l_index))||
1583 ', BILL_TO_PARTY_TAX_PROF_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.BILL_TO_PARTY_TAX_PROF_ID(l_index))||
1584 ', BILL_FROM_PARTY_TAX_PROF_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.BILL_FROM_PARTY_TAX_PROF_ID(l_index))||
1585 ', SHIP_TO_SITE_TAX_PROF_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.SHIP_TO_SITE_TAX_PROF_ID(l_index))||
1586 ', SHIP_FROM_SITE_TAX_PROF_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.SHIP_FROM_SITE_TAX_PROF_ID(l_index))||
1587 ', BILL_TO_SITE_TAX_PROF_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.BILL_TO_SITE_TAX_PROF_ID(l_index))||
1588 ', BILL_FROM_SITE_TAX_PROF_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.BILL_FROM_SITE_TAX_PROF_ID(l_index))||
1589 ', DOCUMENT_SUB_TYPE: '|| zx_global_structures_pkg.trx_line_dist_tbl.DOCUMENT_SUB_TYPE(l_index)||
1590 ', TAX_INVOICE_DATE: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.TAX_INVOICE_DATE(l_index))||
1591 ', TAX_INVOICE_NUMBER: '|| zx_global_structures_pkg.trx_line_dist_tbl.TAX_INVOICE_NUMBER(l_index)||
1592 ', LEDGER_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.LEDGER_ID(l_index))||
1593 ', CURRENCY_CONVERSION_DATE: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.CURRENCY_CONVERSION_DATE(l_index))||
1594 ', CURRENCY_CONVERSION_RATE: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.CURRENCY_CONVERSION_RATE(l_index))||
1595 ', CURRENCY_CONVERSION_TYPE: '|| zx_global_structures_pkg.trx_line_dist_tbl.CURRENCY_CONVERSION_TYPE(l_index)||
1596 ', MINIMUM_ACCOUNTABLE_UNIT: '|| zx_global_structures_pkg.trx_line_dist_tbl.MINIMUM_ACCOUNTABLE_UNIT(l_index)||
1597 ', PRECISION: '|| zx_global_structures_pkg.trx_line_dist_tbl.PRECISION(l_index)||
1598 ', LEGAL_ENTITY_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.LEGAL_ENTITY_ID(l_index))||
1599 ', ESTABLISHMENT_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.ESTABLISHMENT_ID(l_index))||
1600 ', LINE_AMT_INCLUDES_TAX_FLAG: '|| zx_global_structures_pkg.trx_line_dist_tbl.LINE_AMT_INCLUDES_TAX_FLAG(l_index)||
1601 ', TAX_AMT_INCLUDED_FLAG: '|| zx_global_structures_pkg.trx_line_dist_tbl.TAX_AMT_INCLUDED_FLAG(l_index) ||
1602 ', HISTORICAL_FLAG: '|| zx_global_structures_pkg.trx_line_dist_tbl.HISTORICAL_FLAG(l_index)||
1603 ', INTERNAL_ORG_LOCATION_ID: '|| TO_CHAR( zx_global_structures_pkg.trx_line_dist_tbl.INTERNAL_ORG_LOCATION_ID(l_index))||
1604 ', CTRL_HDR_TX_APPL_FLAG: '|| zx_global_structures_pkg.trx_line_dist_tbl.CTRL_HDR_TX_APPL_FLAG(l_index)||
1605 ', CTRL_TOTAL_HDR_TX_AMT: '|| zx_global_structures_pkg.trx_line_dist_tbl.CTRL_TOTAL_HDR_TX_AMT(l_index)||
1606 ', CTRL_TOTAL_LINE_TX_AMT: '|| zx_global_structures_pkg.trx_line_dist_tbl.CTRL_TOTAL_LINE_TX_AMT(l_index) ||
1607 ', OUTPUT_TAX_CLASSIFICATION_CODE: '|| zx_global_structures_pkg.trx_line_dist_tbl.OUTPUT_TAX_CLASSIFICATION_CODE(l_index)
1608 );
1609 END IF;
1610
1611 IF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_level_action(l_index) IN ('RECORD_WITH_NO_TAX')
1612 THEN
1613 IF (g_level_procedure >= g_current_runtime_level ) THEN
1614 FND_LOG.STRING(g_level_procedure,
1615 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_document_with_tax',
1616 'Skip processing for Line-Level-Action RECORD_WITH_NO_TAX');
1617 FND_LOG.STRING(g_level_procedure,
1618 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_document_with_tax.END',
1619 'ZX_PRODUCT_INTEGRATION_PKG.import_document_with_tax(-)');
1620 END IF;
1621 RETURN;
1622 END IF;
1623
1624 IF zx_global_structures_pkg.trx_line_dist_tbl.line_level_action(l_index) = 'CREATE_WITH_TAX'
1625 THEN -- for line level action is 'CREATE_WITH_TAX'
1626
1627 ZX_TDS_CALC_SERVICES_PUB_PKG.initialize (
1628 p_event_class_rec ,
1629 'LINE' ,
1630 x_return_status );
1631
1632 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1633 IF (g_level_procedure >= g_current_runtime_level ) THEN
1634 FND_LOG.STRING(g_level_procedure,
1635 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_document_with_tax',
1636 'Incorrect return_status when calling '||
1637 'ZX_TDS_CALC_SERVICES_PUB_PKG.initialize().');
1638 END IF;
1639 IF (g_level_procedure >= g_current_runtime_level ) THEN
1640 FND_LOG.STRING(g_level_procedure,
1641 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_document_with_tax.END',
1642 'ZX_PRODUCT_INTEGRATION_PKG: import_document_with_tax (-)');
1643 END IF;
1644 RETURN;
1645 END IF;
1646
1647 ZX_TDS_CALC_SERVICES_PUB_PKG.g_rounding_level :='LINE';
1648 -- Check what is the hard coded value for thr party_type
1649 -- and then assign the correpsonding value for the profile.
1650 ZX_TDS_CALC_SERVICES_PUB_PKG.g_rounding_lvl_party_type := 'BILL_TO_PTY_SITE'; --?
1651 ZX_TDS_CALC_SERVICES_PUB_PKG.g_rnd_lvl_party_tax_prof_id := p_event_class_rec.rdng_bill_to_pty_tx_p_st_id;
1652
1653 import_trx_line_with_taxes (
1654 p_event_class_rec => p_event_class_rec,
1655 p_id_dist_tbl => l_index,
1656 x_return_status => x_return_status
1657 );
1658
1659 IF ( x_return_status <> FND_API.G_RET_STS_SUCCESS ) THEN
1660 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1661 FND_LOG.STRING(g_level_unexpected,
1662 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_document_with_tax',
1663 'Errored out when calling import_trx_line_with_taxes().');
1664 END IF;
1665 IF (g_level_procedure >= g_current_runtime_level ) THEN
1666 FND_LOG.STRING(g_level_procedure,
1667 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_document_with_tax.END',
1668 'ZX_PRODUCT_INTEGRATION_PKG: import_document_with_tax(-)');
1669 END IF;
1670 RETURN;
1671 END IF;
1672
1673 ELSIF zx_global_structures_pkg.trx_line_dist_tbl.line_level_action(l_index) = 'CREATE'
1674 THEN
1675 -- for create line level action
1676 ZX_TDS_CALC_SERVICES_PUB_PKG.initialize (
1677 p_event_class_rec ,
1678 'LINE' ,
1679 x_return_status );
1680
1681 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1682 IF (g_level_procedure >= g_current_runtime_level ) THEN
1683 FND_LOG.STRING(g_level_procedure,
1684 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_document_with_tax',
1685 'Incorrect return_status when calling '||
1686 'ZX_TDS_CALC_SERVICES_PUB_PKG.initialize().');
1687 END IF;
1688 IF (g_level_procedure >= g_current_runtime_level ) THEN
1689 FND_LOG.STRING(g_level_procedure,
1690 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_document_with_tax.END',
1691 'ZX_PRODUCT_INTEGRATION_PKG: import_document_with_tax (-)');
1692 END IF;
1693 RETURN;
1694 END IF;
1695
1696 IF (ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_application_id(l_index) IS NOT NULL) THEN
1697 get_manual_tax_lines_for_cm(
1698 p_event_class_rec => p_event_class_rec,
1699 p_index => l_index,
1700 x_return_status => x_return_status);
1701
1702 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1703 IF (g_level_statement >= g_current_runtime_level ) THEN
1704 FND_LOG.STRING(g_level_statement,
1705 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_document_with_tax',
1706 'Incorrect return_status after calling ' ||
1707 'get_manual_tax_lines_for_cm()');
1708 FND_LOG.STRING(g_level_statement,
1709 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_document_with_tax',
1710 'RETURN_STATUS = ' || x_return_status);
1711 FND_LOG.STRING(g_level_statement,
1712 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_document_with_tax.END',
1713 'ZX_PRODUCT_INTEGRATION_PKG.import_document_with_tax(-)');
1714 END IF;
1715 RETURN;
1716 END IF;
1717 END IF;
1718
1719 BEGIN
1720 SELECT INV_TYPE.TAX_CALCULATION_FLAG
1721 INTO l_tax_calculation_flag
1722 FROM RA_CUST_TRX_TYPES_ALL INV_TYPE
1723 WHERE INV_TYPE.CUST_TRX_TYPE_ID = zx_global_structures_pkg.trx_line_dist_tbl.receivables_trx_type_id(l_index)
1724 AND ORG_ID = zx_global_structures_pkg.trx_line_dist_tbl.internal_organization_id(l_index);
1725 EXCEPTION
1726 WHEN OTHERS THEN
1727 l_tax_calculation_flag := NULL;
1728 END;
1729
1730 IF NVL(l_tax_calculation_flag,'N') = 'Y' or
1731 zx_global_structures_pkg.trx_line_dist_tbl.OUTPUT_TAX_CLASSIFICATION_CODE(l_index) is NOT NULL THEN
1732 calculate_tax_lte (
1733 p_event_class_rec => p_event_class_rec,
1734 p_id_dist_tbl => l_index,
1735 x_return_status => x_return_status
1736 );
1737
1738 IF ( x_return_status <> FND_API.G_RET_STS_SUCCESS ) THEN
1739 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1740 FND_LOG.STRING(g_level_unexpected,
1741 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_document_with_tax',
1742 'Incorrect return_status after calling ' ||
1743 'ZX_PRODUCT_INTEGRATION_PKG.calculate_tax_lte().');
1744 END IF;
1745 IF (g_level_procedure >= g_current_runtime_level ) THEN
1746 FND_LOG.STRING(g_level_procedure,
1747 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_document_with_tax.END',
1748 'ZX_PRODUCT_INTEGRATION_PKG: import_document_with_tax(-)');
1749 END IF;
1750 RETURN;
1751 END IF;
1752 END IF;
1753
1754 ELSE -- error out for other line level actions than CREATE and CREAT_WITH_TAX
1755
1756 x_return_status := FND_API.G_RET_STS_ERROR;
1757 FND_MESSAGE.SET_NAME ('ZX','GENERIC_MESSAGE');
1758 FND_MESSAGE.SET_TOKEN('GENERIC_TEXT','Transaction line level action is invalid.');
1759 ZX_API_PUB.add_msg(
1760 ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec);
1761
1762 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1763 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1764 FND_LOG.STRING(g_level_unexpected,
1765 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_document_with_tax',
1766 'Transaction line level action can only be CREATE or CREATE_WITH_TAX.');
1767 FND_LOG.STRING(g_level_unexpected,
1768 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_document_with_tax',
1769 'Current transaction line level action is: ' ||
1770 zx_global_structures_pkg.trx_line_dist_tbl.line_level_action(l_index) );
1771 END IF;
1772 IF (g_level_procedure >= g_current_runtime_level ) THEN
1773 FND_LOG.STRING(g_level_procedure,
1774 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_document_with_tax.END',
1775 'ZX_PRODUCT_INTEGRATION_PKG: import_document_with_tax(-)');
1776 END IF;
1777 RETURN;
1778 END IF;
1779
1780 END IF;
1781
1782 END LOOP;
1783
1784 -- delete the store data structure
1785 tax_rec_tbl.delete;
1786 tax_info_out_rec_tbl.delete;
1787
1788 IF (g_level_procedure >= g_current_runtime_level ) THEN
1789 FND_LOG.STRING(g_level_procedure,
1790 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_document_with_tax.END',
1791 'ZX_PRODUCT_INTEGRATION_PKG: import_document_with_tax (-)');
1792 END IF;
1793
1794 EXCEPTION
1795 WHEN OTHERS THEN
1796 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1797 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1798 FND_LOG.STRING(g_level_unexpected,
1799 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_document_with_tax',
1800 SQLCODE || ' ; ' || SQLERRM);
1801 END IF;
1802 IF (g_level_procedure >= g_current_runtime_level ) THEN
1803 FND_LOG.STRING(g_level_procedure,
1804 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_document_with_tax.END',
1805 'ZX_PRODUCT_INTEGRATION_PKG: import_document_with_tax (-)');
1806 END IF;
1807 END import_document_with_tax;
1808
1809 /*===========================================================================+
1810 | PROCEDURE |
1811 | import_trx_line_with_taxes |
1812 | |
1813 | DESCRIPTION |
1814 | Assumption: All tax lines imported have allocation record in the |
1815 | Link table. |
1816 | MODIFICATION HISTORY |
1817 | Procedure modified as a fix for Bug#7530930 |
1818 | Modification done : Cursor query changed |
1819 +===========================================================================*/
1820
1821 PROCEDURE import_trx_line_with_taxes (
1822 p_event_class_rec IN zx_api_pub.event_class_rec_type,
1823 p_id_dist_tbl IN NUMBER,
1824 x_return_status OUT NOCOPY VARCHAR2) IS
1825
1826 CURSOR get_detail_tax_lines_csr IS
1827 SELECT /*+ ORDERED
1828 INDEX(headergt ZX_TRX_HEADERS_GT_U1)
1829 INDEX(taxgt ZX_IMPORT_TAX_LINES_GT_U1)
1830 INDEX(linegt ZX_TRANSACTION_LINES_GT_U1)*/
1831 taxgt.summary_tax_line_number,
1832 taxgt.internal_organization_id,
1833 taxgt.tax_regime_code,
1834 taxgt.tax,
1835 taxgt.tax_status_code,
1836 taxgt.tax_rate_code,
1837 taxgt.tax_rate,
1838 taxgt.tax_amt,
1839 taxgt.tax_jurisdiction_code,
1840 taxgt.tax_amt_included_flag,
1841 taxgt.tax_rate_id,
1842 taxgt.tax_provider_id,
1843 taxgt.tax_exception_id,
1844 taxgt.tax_exemption_id,
1845 taxgt.exempt_reason_code,
1846 taxgt.exempt_certificate_number,
1847 linegt.trx_line_id,
1848 linegt.line_amt,
1849 headergt.trx_date,
1850 headergt.minimum_accountable_unit,
1851 headergt.precision,
1852 linegt.trx_level_type,
1853 linegt.trx_line_date,
1854 linegt.adjusted_doc_date,
1855 linegt.line_level_action,
1856 taxgt.interface_entity_code,
1857 taxgt.interface_tax_line_id,
1858 headergt.related_doc_date,
1859 headergt.provnl_tax_determination_date,
1860 linegt.tax_date ,
1861 linegt.tax_determine_date,
1862 linegt.tax_point_date
1863 FROM zx_trx_headers_gt headergt,
1864 zx_import_tax_lines_gt taxgt,
1865 zx_transaction_lines_gt linegt
1866 WHERE headergt.application_id = p_event_class_rec.application_id
1867 AND headergt.event_class_code = p_event_class_rec.event_class_code
1868 AND headergt.entity_code = p_event_class_rec.entity_code
1869 AND headergt.trx_id = p_event_class_rec.trx_id
1870 AND taxgt.application_id = headergt.application_id
1871 AND taxgt.entity_code = headergt.entity_code
1872 AND taxgt.event_class_code = headergt.event_class_code
1873 AND taxgt.trx_id = headergt.trx_id
1874 AND taxgt.tax_line_allocation_flag = 'N'
1875 AND linegt.application_id = taxgt.application_id
1876 AND linegt.entity_code = taxgt.entity_code
1877 AND linegt.event_class_code = taxgt.event_class_code
1878 AND linegt.trx_id = taxgt.trx_id
1879 AND linegt.trx_line_id = taxgt.trx_line_id
1880 AND linegt.trx_line_id = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_line_id(p_id_dist_tbl)
1881 ORDER BY taxgt.summary_tax_line_number;
1882
1883 l_new_row_num NUMBER;
1884 l_begin_index BINARY_INTEGER;
1885 l_end_index BINARY_INTEGER;
1886 l_error_buffer VARCHAR2(240);
1887 BEGIN
1888
1889 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1890
1891 IF (g_level_procedure >= g_current_runtime_level ) THEN
1892 FND_LOG.STRING(g_level_procedure,
1893 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_trx_line_with_taxes.BEGIN',
1894 'ZX_PRODUCT_INTEGRATION_PKG.import_trx_line_with_taxes(+)');
1895 END IF;
1896
1897 x_return_status := FND_API.G_RET_STS_SUCCESS;
1898
1899 l_new_row_num := NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl.LAST,0);
1900
1901 FOR tax_line_rec IN get_detail_tax_lines_csr LOOP
1902
1903 l_new_row_num := l_new_row_num + 1;
1904
1905 IF l_begin_index IS NULL THEN
1906 l_begin_index := l_new_row_num;
1907 END IF;
1908
1909 create_detail_tax_line (
1910 p_event_class_rec => p_event_class_rec,
1911 p_tax_line_rec => tax_line_rec,
1912 p_id_dist_tbl => p_id_dist_tbl,
1913 p_new_row_num => l_new_row_num,
1914 x_return_status => x_return_status);
1915
1916 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1917 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1918 FND_LOG.STRING(g_level_unexpected,
1919 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_trx_line_with_taxes',
1920 'Incorrect return_status after calling '||
1921 'create_detail_tax_line()');
1922 FND_LOG.STRING(g_level_unexpected,
1923 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_trx_line_with_taxes',
1924 'RETURN_STATUS = ' || x_return_status);
1925 END IF;
1926 IF (g_level_procedure >= g_current_runtime_level ) THEN
1927 FND_LOG.STRING(g_level_procedure,
1928 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_trx_line_with_taxes.END',
1929 'ZX_PRODUCT_INTEGRATION_PKG.import_trx_line_with_taxes(-)');
1930 END IF;
1931 RETURN;
1932 END IF;
1933 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
1934 l_new_row_num).tax_amt := tax_line_rec.tax_amt;
1935 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
1936 l_new_row_num).unrounded_tax_amt := tax_line_rec.tax_amt;
1937
1938
1939 -- Calculate taxable basis for manual import tax lines --
1940 IF tax_line_rec.tax_rate <> 0 AND tax_line_rec.tax_rate IS NOT NULL THEN
1941 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
1942 l_new_row_num).taxable_amt := round(tax_line_rec.tax_amt*100/tax_line_rec.tax_rate,20);
1943 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
1944 l_new_row_num).unrounded_taxable_amt := round(tax_line_rec.tax_amt*100/tax_line_rec.tax_rate,20);
1945 ELSE
1946 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
1947 l_new_row_num).taxable_amt := tax_line_rec.line_amt;
1948 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
1949 l_new_row_num).unrounded_taxable_amt := tax_line_rec.line_amt;
1950 END IF;
1951 END LOOP; -- tax_line_rec IN get_alloc_detail_tax_lines_csr
1952
1953 IF l_begin_index IS NOT NULL THEN
1954 l_end_index := ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl.LAST;
1955 END IF;
1956
1957 -- populate WHO columns and tax line id, also
1958 -- check if all mandatory columns have values
1959 ZX_TDS_TAX_LINES_POPU_PKG.pop_tax_line_for_trx_line(
1960 l_begin_index,
1961 l_end_index,
1962 x_return_status,
1963 l_error_buffer);
1964 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1965 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1966 FND_LOG.STRING(g_level_unexpected,
1967 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_trx_line_with_taxes',
1968 'Incorrect return_status after calling ' ||
1969 'ZX_TDS_TAX_LINES_POPU_PKG.pop_tax_line_for_trx_line()');
1970 FND_LOG.STRING(g_level_unexpected,
1971 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_trx_line_with_taxes',
1972 'RETURN_STATUS = ' || x_return_status);
1973 FND_LOG.STRING(g_level_unexpected,
1974 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_trx_line_with_taxes.END',
1975 'ZX_PRODUCT_INTEGRATION_PKG.import_trx_line_with_taxes(-)');
1976 END IF;
1977 RETURN;
1978 END IF;
1979
1980 IF (g_level_event >= g_current_runtime_level ) THEN
1981 FND_LOG.STRING(g_level_event,
1982 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_trx_line_with_taxes',
1983 'Detail tax lines created from imported summary tax lines:');
1984 FND_LOG.STRING(g_level_event,
1985 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_trx_line_with_taxes',
1986 'l_begin_index = ' || l_begin_index);
1987 FND_LOG.STRING(g_level_event,
1988 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_trx_line_with_taxes',
1989 'l_end_index = ' || l_end_index);
1990 FND_LOG.STRING(g_level_event,
1991 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_trx_line_with_taxes',
1992 'RETURN_STATUS = ' || x_return_status);
1993 FND_LOG.STRING(g_level_event,
1994 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_trx_line_with_taxes.END',
1995 'ZX_PRODUCT_INTEGRATION_PKG.import_trx_line_with_taxes(-)');
1996 END IF;
1997
1998
1999 IF ( ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl.LAST >= C_LINES_PER_INSERT) THEN
2000
2001 ZX_TDS_CALC_SERVICES_PUB_PKG.dump_detail_tax_lines_into_gt (x_return_status);
2002
2003 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2004 IF (g_level_unexpected >= g_current_runtime_level ) THEN
2005 FND_LOG.STRING(g_level_unexpected,
2006 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_trx_line_with_taxes',
2007 'Incorrect return_status after calling ' ||
2008 'dump_detail_tax_lines_into_gt()');
2009 FND_LOG.STRING(g_level_unexpected,
2010 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_trx_line_with_taxes',
2011 'RETURN_STATUS = ' || x_return_status);
2012 END IF;
2013 IF (g_level_procedure >= g_current_runtime_level ) THEN
2014 FND_LOG.STRING(g_level_procedure,
2015 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_trx_line_with_taxes.END',
2016 'ZX_TDS_CALC_SERVICES_PUB_PKG.calculate_tax(-)');
2017 END IF;
2018 RETURN;
2019 END IF;
2020
2021 END IF;
2022
2023 EXCEPTION
2024 WHEN OTHERS THEN
2025 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2026 IF (g_level_unexpected >= g_current_runtime_level ) THEN
2027 FND_LOG.STRING(g_level_unexpected,
2028 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_trx_line_with_taxes',
2029 sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80));
2030 END IF;
2031 IF (g_level_procedure >= g_current_runtime_level ) THEN
2032 FND_LOG.STRING(g_level_procedure,
2033 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.import_trx_line_with_taxes.END',
2034 'ZX_PRODUCT_INTEGRATION_PKG.import_trx_line_with_taxes(-)');
2035 END IF;
2036
2037 END import_trx_line_with_taxes;
2038
2039 /*===========================================================================+
2040 | PROCEDURE |
2041 | calculate_tax_lte |
2042 | |
2043 | DESCRIPTION |
2044 | |
2045 | MODIFICATION HISTORY |
2046 | |
2047 +===========================================================================*/
2048
2049 PROCEDURE calculate_tax_lte (
2050 p_event_class_rec IN ZX_API_PUB.EVENT_CLASS_REC_TYPE,
2051 p_id_dist_tbl IN NUMBER,
2052 x_return_status OUT NOCOPY VARCHAR2
2053 )IS
2054
2055 l_tax_value NUMBER;
2056 l_tax_out_tbl tax_info_rec_tbl_type;
2057 l_new_row_num NUMBER;
2058
2059 l_tax_amt_included_flag VARCHAR2(1);
2060 l_compounding_tax_flag VARCHAR2(1);
2061 l_cust_trx_type_id NUMBER;
2062
2063 cursor c_inv_trx_lines(c_application_id NUMBER,
2064 c_entity_code VARCHAR2,
2065 c_event_class_code VARCHAR2,
2066 c_trx_id NUMBER,
2067 c_trx_line_id NUMBER)
2068 is
2069 select
2070 trx_business_category,
2071 product_fisc_classification,
2072 product_category
2073 from
2074 zx_lines_det_factors
2075 where application_id = c_application_id
2076 and entity_code = c_entity_code
2077 and event_class_code = c_event_class_code
2078 and trx_id = c_trx_id
2079 and trx_line_id = c_trx_line_id;
2080
2081
2082 -- Bug#5439803- get tax currency conversion info
2083 cursor c_inv_tax_lines(c_application_id NUMBER,
2084 c_entity_code VARCHAR2,
2085 c_event_class_code VARCHAR2,
2086 c_trx_id IN NUMBER,
2087 c_trx_level_type VARCHAR2,
2088 c_trx_line_id in NUMBER)
2089 is
2090 select
2091 tax_line_id,
2092 trx_date,
2093 tax_regime_code,
2094 tax,
2095 tax_status_code,
2096 tax_rate_code,
2097 tax_rate_id,
2098 tax_rate,
2099 tax_exemption_id,
2100 tax_exception_id,
2101 tax_currency_conversion_date,
2102 tax_currency_conversion_rate,
2103 tax_currency_conversion_type
2104 from ZX_LINES
2105 where application_id = c_application_id
2106 and entity_code = c_entity_code
2107 and event_class_code = c_event_class_code
2108 and trx_level_type = c_trx_level_type
2109 and trx_id = c_trx_id
2110 and trx_line_id = c_trx_line_id
2111 and NVL(manually_entered_flag,'N') = 'N' -- Added the manually_entered_flag = N, cancel_flag <> Y
2112 and NVL(cancel_flag,'N') <> 'Y' -- and mrc_tax_line_flag = N to fetch only those tax lines
2113 and NVL(mrc_tax_line_flag,'N') = 'N'; -- from adjusted doc that are neither manual nor canceled
2114
2115 CURSOR c_get_tax_categ_id (
2116 c_group_tax_id NUMBER,
2117 c_tax VARCHAR2,
2118 c_org_id NUMBER,
2119 c_trx_date DATE) IS
2120 select TXC.tax_category_id
2121 from JL_ZZ_AR_TX_GROUPS_ALL TGR ,
2122 JL_ZZ_AR_TX_CATEG TXC
2123 where TGR.group_tax_id = c_group_tax_id
2124 and TGR.tax_category_id = TXC.tax_category_id
2125 and TXC.tax_category = c_tax
2126 and TGR.org_id = c_org_id
2127 and TGR.start_date_active <= c_trx_date
2128 and TGR.end_date_active >= c_trx_date;
2129
2130
2131 /* BugFix 2057800: add this cursor to check the trx type.*/
2132 CURSOR c_chk_trx_type (c_trx_type_id IN NUMBER) IS
2133 select type
2134 from ra_cust_trx_types_all
2135 where cust_trx_type_id = c_trx_type_id
2136 and org_id = sysinfo.sysparam.org_id;
2137
2138 l_tax_info_rec tax_info_rec_type;
2139 l_trx_type ra_cust_trx_types.type%type;
2140
2141 BEGIN
2142
2143 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
2144 IF (g_level_procedure >= g_current_runtime_level ) THEN
2145 FND_LOG.STRING(g_level_procedure,
2146 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax_lte.BEGIN',
2147 'ZX_PRODUCT_INTEGRATION_PKG.calculate_tax_lte(+)');
2148 END IF;
2149 x_return_status := FND_API.G_RET_STS_SUCCESS;
2150
2151 INITIALIZE_TAX_INFO_REC;
2152
2153 -- Bug#6936808: init exception code returned from LTE
2154 JL_ZZ_TAX_INTEGRATION_PKG.g_jl_exception_type := 'N';
2155
2156
2157 -- assign all columns can mapped to tax_info_rec from line_dist_tbl.
2158 prepare_tax_info_rec ( p_index => p_id_dist_tbl );
2159
2160 tax_rec_tbl.delete;
2161 tax_info_out_rec_tbl.delete;
2162 sysinfo.insert_tax_lines := 'N';
2163 TAX_GBL_REC.ONE_ERR_MSG_FLAG := 'Y';
2164 SYSINFO.CALL_AUTO_ACCTNG := 'N';
2165 -- arp_process_tax.old_customer_trx_id := 0;
2166 pg_old_customer_trx_id := 0;
2167
2168 --
2169 -- Bug#5439803- init tax determine date to trx date
2170 --
2171 tax_info_rec.tax_determine_date := tax_info_rec.trx_date;
2172
2173 IF tax_info_rec.customer_trx_id <> pg_old_customer_trx_id THEN
2174
2175 pg_cm_type := NULL;
2176 l_cust_trx_type_id:= tax_info_rec.trx_type_id;
2177
2178 IF l_cust_trx_type_id is not null THEN
2179 if trx_type_tbl.exists(l_cust_trx_type_id) then
2180
2181 l_trx_type:= trx_type_tbl(l_cust_trx_type_id);
2182 IF (g_level_statement >= g_current_runtime_level) THEN
2183 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','trx_type already cached; l_trx_type = ' || l_trx_type);
2184 END IF;
2185
2186 else
2187
2188 OPEN c_chk_trx_type(l_cust_trx_type_id);
2189 FETCH c_chk_trx_type INTO l_trx_type;
2190 CLOSE c_chk_trx_type;
2191
2192 trx_type_tbl(l_cust_trx_type_id):= l_trx_type;
2193
2194 IF (g_level_statement >= g_current_runtime_level) THEN
2195 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','New trx_type; l_trx_type = ' || l_trx_type);
2196
2197 END IF;
2198 end if;
2199 END IF;
2200
2201 IF (g_level_statement >= g_current_runtime_level) THEN
2202 FND_LOG.STRING(g_level_statement,
2203 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.process_tax_rec_f_sql',
2204 'adjusted_doc_line_id : ' ||
2205 TO_CHAR(tax_info_rec.adjusted_doc_line_id));
2206 END IF;
2207
2208 IF tax_info_rec.adjusted_doc_line_id is NOT NULL THEN
2209 pg_cm_type := 'Applied';
2210 tax_info_rec.cm_type:=pg_cm_type;
2211 END IF;
2212 END IF;
2213
2214 IF pg_cm_type IS NULL THEN
2215 tax_info_rec.credit_memo_flag := FALSE;
2216 IF (g_level_statement >= g_current_runtime_level) THEN
2217 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','NOT a credit memo transaction');
2218 END IF;
2219 ELSE
2220 tax_info_rec.credit_memo_flag := TRUE;
2221 IF (g_level_statement >= g_current_runtime_level) THEN
2222 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Credit memo transaction');
2223 END IF;
2224
2225 END IF;
2226
2227 IF pg_cm_type = 'Applied' then
2228
2229 l_tax_info_rec := tax_info_rec;
2230
2231 Open c_inv_trx_lines(
2232 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_application_id(p_id_dist_tbl),
2233 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_entity_code(p_id_dist_tbl),
2234 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_event_class_code(p_id_dist_tbl),
2235 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_trx_id(p_id_dist_tbl),
2236 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_line_id(p_id_dist_tbl)) ;
2237 fetch c_inv_trx_lines into
2238 l_tax_info_rec.trx_business_category,
2239 l_tax_info_rec.product_fisc_classification,
2240 l_tax_info_rec.product_category;
2241 close c_inv_trx_lines;
2242
2243 -- populate numeric, char attributes of tax infor rec based on this
2244 -- populate tax_info_Rec.userf9 with invoice_line.GLOBAL_ATTRIBUTE3
2245 -- IF Condition added for bug#7257015
2246 IF l_tax_info_rec.trx_business_category IS NOT NULL THEN
2247 l_tax_info_rec.userf9 := l_tax_info_rec.trx_business_category;
2248 END IF;
2249 -- populate tax_info_rec.previous_trx_number
2250 -- populate tax_info_rec.previous_customer_trx_line_id,
2251 -- populate tax_info_rec.previous_customer_trx_id
2252 -- populate tax_info_rec.usern7 (with hardcoded value 2)
2253 -- populate tax_info_rec.usern3 eith V.global_attribute12
2254
2255 -- loop over original invoice's tax lines and call LTE for each tax line
2256 -- For example, if the invoice has a tax group which resulted in 3 tax lines, then
2257 -- this cursor will retrieve three racords and call the LTE three times, passing
2258 -- individual tax categories (in this case the tax group expansion will not take
2259 -- place inside the latin tax engine)
2260
2261 Open c_inv_tax_lines(
2262 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_application_id(p_id_dist_tbl),
2263 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_entity_code(p_id_dist_tbl),
2264 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_event_class_code(p_id_dist_tbl),
2265 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_trx_id(p_id_dist_tbl),
2266 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_trx_level_type(p_id_dist_tbl),
2267
2268 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_line_id(p_id_dist_tbl)) ;
2269 Loop
2270 tax_info_rec := l_tax_info_rec;
2271
2272 Fetch c_inv_tax_lines into
2273 tax_info_rec.adjusted_doc_tax_line_id,
2274 tax_info_rec.trx_date,
2275 tax_info_rec.tax_regime_code,
2276 tax_info_rec.tax,
2277 tax_info_rec.tax_status_code,
2278 tax_info_rec.tax_rate_code,
2279 tax_info_rec.tax_rate_id,
2280 tax_info_rec.tax_rate,
2281 tax_info_rec.tax_exemption_id,
2282 tax_info_rec.item_exception_rate_id,
2283 tax_info_rec.tax_currency_conversion_date,
2284 tax_info_rec.tax_currency_conversion_rate,
2285 tax_info_rec.tax_currency_conversion_type
2286 ;
2287
2288 tax_info_rec.tax_code := tax_info_rec.tax_rate_code;
2289 tax_info_rec.vat_tax_id := tax_info_rec.tax_rate_id;
2290
2291
2292 -- get tax_category_id
2293 open c_get_tax_categ_id (
2294 tax_info_rec.usern2,
2295 tax_info_rec.tax,
2296 sysinfo.sysparam.org_id,
2297 tax_info_rec.trx_date );
2298 fetch c_get_tax_categ_id INTO tax_info_rec.usern1;
2299 close c_get_tax_categ_id;
2300
2301 --
2302 -- tax type for credit memo is always 'VAT'
2303 -- as each tax line info from the original invoice
2304 -- is passed, not the tax type from transaction line
2305 --
2306 tax_info_rec.userf7 := 'VAT';
2307
2308 exit when c_inv_tax_lines%notfound;
2309
2310 -- main engine call - one per tax line for credit memo
2311 process_tax_rec_f_sql_lte(
2312 p_appl_short_name => pg_application_short_name
2313 );
2314
2315 end loop;
2316 close c_inv_tax_lines;
2317
2318 ELSE
2319 process_tax_rec_f_sql_lte(
2320 p_appl_short_name => pg_application_short_name
2321 );
2322 END IF;
2323
2324 -- arp_etax_integration_pkg.process_tax_rec_f_sql_lte() would have
2325 -- populated tax_rec_tbl; read this table and assign values to out table.
2326
2327 IF (g_level_procedure >= g_current_runtime_level ) THEN
2328 FND_LOG.STRING(g_level_procedure,
2329 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax_lte',
2330 '#Rows Returned from '||
2331 'ZX_PRODUCT_INTEGRATION_PKG.process_tax_rec_f_sql_lte(): '||
2332 to_char(nvl(tax_info_out_rec_tbl.count, 0)));
2333 END IF;
2334
2335 l_new_row_num := NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl.LAST, 0);
2336
2337 l_compounding_tax_flag := 'N';
2338 l_tax_amt_included_flag := 'N';
2339
2340 IF (g_level_procedure >= g_current_runtime_level ) THEN
2341 FND_LOG.STRING(g_level_procedure,
2342 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax_lte',
2343 'tax_info_out_rec_tbl.FIRST = '||NVL(tax_info_out_rec_tbl.FIRST,-1));
2344 FND_LOG.STRING(g_level_procedure,
2345 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax_lte',
2346 'tax_info_out_rec_tbl.Last = '||NVL(tax_info_out_rec_tbl.Last,-1));
2347 FND_LOG.STRING(g_level_procedure,
2348 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax_lte',
2349 'l_new_rownum = '||l_new_row_num);
2350 END IF;
2351
2352 FOR l_out_ind IN NVL(tax_info_out_rec_tbl.FIRST, 1).. NVL(tax_info_out_rec_tbl.LAST, 0) LOOP
2353
2354 --++ nipatel commented out because of dependencies with ARP_TAX. Uncomment out later
2355 -- IF l_tax_out_tbl(l_out_ind).compounding_tax_flag ='Y'
2356 -- THEN
2357 -- l_compounding_tax_flag := 'Y';
2358 -- END IF;
2359
2360 IF tax_info_out_rec_tbl(l_out_ind).amount_includes_tax_flag ='Y'
2361 THEN
2362 l_tax_amt_included_flag := 'Y';
2363 END IF;
2364 l_new_row_num := l_new_row_num + 1;
2365
2366 -- Bug#5402471- populate new column tax_amt_included_flag
2367
2368 tax_info_out_rec_tbl(l_out_ind).tax_amt_included_flag :=
2369 tax_info_out_rec_tbl(l_out_ind).amount_includes_tax_flag;
2370
2371 prepare_detail_tax_line(
2372 p_event_class_rec => p_event_class_rec,
2373 p_id_dist_tbl => p_id_dist_tbl,
2374 p_new_row_num => l_new_row_num,
2375 p_tax_out_rec => tax_info_out_rec_tbl(l_out_ind)
2376 );
2377
2378 IF ( ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl.LAST >= C_LINES_PER_INSERT) THEN
2379
2380 ZX_TDS_CALC_SERVICES_PUB_PKG.dump_detail_tax_lines_into_gt (x_return_status);
2381
2382 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2383 IF (g_level_unexpected >= g_current_runtime_level ) THEN
2384 FND_LOG.STRING(g_level_unexpected,
2385 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax_lte',
2386 'Incorrect return_status after calling ' ||
2387 'ZX_TDS_CALC_SERVICES_PUB_PKG.dump_detail_tax_lines_into_gt()');
2388 FND_LOG.STRING(g_level_unexpected,
2389 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax_lte',
2390 'RETURN_STATUS = ' || x_return_status);
2391 END IF;
2392 IF (g_level_procedure >= g_current_runtime_level ) THEN
2393 FND_LOG.STRING(g_level_procedure,
2394 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax_lte.END',
2395 'ZX_PRODUCT_INTEGRATION_PKG.calculate_tax_lte(-)');
2396 END IF;
2397 RETURN;
2398 END IF;
2399 END IF;
2400
2401 END LOOP;
2402
2403 IF (nvl(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl.LAST,0) >= C_LINES_PER_INSERT) THEN
2404
2405 ZX_TDS_CALC_SERVICES_PUB_PKG.dump_detail_tax_lines_into_gt (x_return_status);
2406
2407
2408 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2409 IF (g_level_unexpected >= g_current_runtime_level ) THEN
2410 FND_LOG.STRING(g_level_unexpected,
2411 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax_lte',
2412 'Incorrect return_status after calling ' ||
2413 'ZX_TDS_CALC_SERVICES_PUB_PKG.dump_detail_tax_lines_into_gt()');
2414 FND_LOG.STRING(g_level_unexpected,
2415 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax_lte',
2416 'RETURN_STATUS = ' || x_return_status);
2417 END IF;
2418 IF (g_level_procedure >= g_current_runtime_level ) THEN
2419 FND_LOG.STRING(g_level_procedure,
2420 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax_lte.END',
2421 'ZX_PRODUCT_INTEGRATION_PKG.calculate_tax_lte(-)');
2422 END IF;
2423 RETURN;
2424 END IF;
2425 END IF;
2426
2427 zx_global_structures_pkg.trx_line_dist_tbl.compounding_tax_flag(
2428 p_id_dist_tbl) := l_compounding_tax_flag;
2429
2430 zx_global_structures_pkg.trx_line_dist_tbl.TAX_AMT_INCLUDED_FLAG(
2431 p_id_dist_tbl) := l_tax_amt_included_flag;
2432
2433 -- column not added to dist tbl defination yet
2434 -- zx_global_structures_pkg.trx_line_dist_tbl.threshold_flag(
2435 -- p_id_dist_tbl) := 'N';
2436
2437 EXCEPTION
2438 WHEN OTHERS THEN
2439 -- bug#6936808: check if this is expected error returned from
2440 -- LTE expand_group_tax_code
2441 IF (g_level_unexpected >= g_current_runtime_level ) THEN
2442 FND_LOG.STRING(g_level_unexpected,
2443 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax_lte',
2444 sqlcode || ': ' || SUBSTR(SQLERRM, 1, 512));
2445 END IF;
2446 IF JL_ZZ_TAX_INTEGRATION_PKG.g_jl_exception_type = 'E' THEN
2447 x_return_status := FND_API.G_RET_STS_ERROR;
2448 ZX_API_PUB.add_msg(ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec);
2449 ELSE
2450 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2451 ZX_API_PUB.add_msg(ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec);
2452 END IF;
2453
2454 IF (g_level_procedure >= g_current_runtime_level ) THEN
2455 FND_LOG.STRING(g_level_procedure,
2456 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.calculate_tax_lte.END',
2457 'ZX_PRODUCT_INTEGRATION_PKG.calculate_tax_lte(-)');
2458 END IF;
2459
2460 END calculate_tax_lte;
2461
2462 -- nipatel added for LTE testing.
2463
2464 /*===========================================================================+
2465 | PROCEDURE |
2466 | process_tax_rec_f_sql_lte |
2467 | |
2468 | DESCRIPTION |
2469 | |
2470 | MODIFICATION HISTORY |
2471 | |
2472 +===========================================================================*/
2473
2474 PROCEDURE process_tax_rec_f_sql_lte (
2475 p_appl_short_name IN VARCHAR2)
2476 IS
2477
2478 l_customer_trx_line_id NUMBER;
2479 l_errorbuf varchar2(200);
2480 l_result number;
2481 l_ctl_tax_amt NUMBER := 0;
2482 l_tax_amount NUMBER := 0;
2483 l_tax_total NUMBER := 0;
2484 i INTEGER;
2485 l_tax_vendor_return_code VARCHAR2(30);
2486 l_new_extended_amount NUMBER;
2487 l_new_unit_selling_price NUMBER;
2488 l_tax_incl_amount_this_line NUMBER;
2489 l_incl_amount_this_group NUMBER;
2490 l_old_foreign_currency_code fnd_currencies.currency_code%type;
2491 l_old_exchange_rate NUMBER;
2492
2493 /* BugFix 645089: Added following 4 lines */
2494 l_ct_id Number;
2495 prev_ctid Number;
2496 prev_ctlid Number;
2497
2498 l_inv_trx_date Date := Null;
2499 l_cm_trx_date Date := Null;
2500
2501 l_numOfRows NUMBER := 0;
2502 l_tax_info_out_rec_tbl_count NUMBER := 0;
2503 l_complete_flag VARCHAR2(1);
2504
2505 l_trx_type ra_cust_trx_types.type%type;
2506 l_cust_trx_type_id ra_cust_trx_types.cust_trx_type_id%type;
2507 l_tax_calculation_flag varchar2(1);
2508
2509
2510 /* BugFix 2057800: add this cursor to check the trx type.*/
2511 CURSOR c_chk_trx_type (c_trx_type_id IN NUMBER) IS
2512 select type
2513 from ra_cust_trx_types_all
2514 where cust_trx_type_id = c_trx_type_id
2515 and org_id = sysinfo.sysparam.org_id;
2516
2517
2518 cursor calculation_flag_csr(c_cust_trx_type_id in number) is
2519 select tax_calculation_flag
2520 from ra_cust_trx_types_all ct
2521 where ct.cust_trx_type_id = c_cust_trx_type_id
2522 and org_id = sysinfo.sysparam.org_id;
2523
2524 BEGIN
2525
2526 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
2527 IF (g_level_procedure >= g_current_runtime_level ) THEN
2528 FND_LOG.STRING(g_level_procedure,
2529 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.process_tax_rec_f_sql.BEGIN',
2530 'ZX_PRODUCT_INTEGRATION_PKG.process_tax_rec_f_sql(+)');
2531 END IF;
2532
2533 -- arp_tax.set_error_mode('STANDARD',TRUE);
2534
2535 BEGIN
2536
2537 tax_info_rec.entered_amount :=
2538 tax_info_rec.extended_amount;
2539
2540 /*--------------------------------------------------------------+
2541 | Initialize internal variables and flags |
2542 +--------------------------------------------------------------*/
2543
2544 tax_info_rec.tax_control :=
2545 NVL(tax_info_rec.tax_control, 'S');
2546
2547
2548 -- POO is not required for LTE
2549
2550 sysinfo.appl_short_name := p_appl_short_name;
2551
2552 IF (tax_info_rec.amount_includes_tax_flag IS NULL) then
2553 tax_info_rec.amount_includes_tax_flag := 'N';
2554 END IF;
2555
2556 /* ++ nipatel check usage of this flag */
2557 tax_gbl_rec.get_adhoc := FALSE;
2558
2559 IF ( tax_info_rec.tax_code in ( 'STATE', 'COUNTY', 'CITY')) THEN
2560 tax_info_rec.qualifier := tax_info_rec.tax_code;
2561 ELSE
2562 tax_info_rec.qualifier := 'ALL';
2563 END IF;
2564
2565 -- The following check for credit memos should be done only if calling application is AR
2566
2567 IF tax_info_rec.credit_memo_flag and
2568 p_appl_short_name = 'AR'
2569 THEN
2570
2571 arp_standard.find_previous_trx_line_id(
2572 tax_info_rec.customer_trx_line_id,
2573 tax_info_rec.tax_line_number,
2574 tax_info_rec.vat_tax_id,
2575 prev_ctid, prev_ctlid);
2576 END IF;
2577
2578
2579 -- Bug fix 650480: If tax amount is specified by user for adhoc tax,
2580 -- then do not calculate tax amount using original line, and credit line
2581 -- amount. Just skip following if statement.
2582
2583 -- The following proration for credit memos should be done only if calling application is AR
2584 IF prev_ctid is not null and
2585 p_appl_short_name = 'AR' and
2586 pg_cm_type = 'Applied' and
2587 tax_info_rec.tax_rate is null and
2588 tax_info_rec.tax_amount is null THEN
2589
2590 -- Bug fix 637110. To get cm tax amount, use quantity if original
2591 -- line amount is zero. If quantity is also, then copy negative
2592 -- amount of original tax amount.
2593
2594 declare
2595 orig_line_amount number;
2596 cm_line_amount number;
2597 orig_tax_amount number;
2598
2599 orig_line_qty number;
2600 cm_line_qty number;
2601 orig_cm_ratio number;
2602 begin
2603
2604 IF (g_level_statement >= g_current_runtime_level) THEN
2605 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Calculate cm tax amount.');
2606 END IF;
2607 select cm.extended_amount, cm.quantity_credited
2608 into cm_line_amount, cm_line_qty
2609 from ra_customer_trx_lines_all cm
2610 where cm.customer_trx_line_id = tax_info_rec.customer_trx_line_id;
2611
2612 select line.extended_amount,
2613 tax.extended_amount,
2614 line.quantity_invoiced
2615 into orig_line_amount,
2616 orig_tax_amount,
2617 orig_line_qty
2618 from ra_customer_trx_lines_all line,
2619 ra_customer_trx_lines_all tax
2620 where tax.customer_trx_line_id = prev_ctlid
2621 and tax.link_to_cust_trx_line_id = line.customer_trx_line_id;
2622
2623
2624 -- Check to see whether original line amount is zero.
2625 -- If it's so, then use quantity. If quantity is also zero,
2626 -- then copy the original tax amount to Credit Memo with negative sign.
2627 --
2628 IF (nvl(orig_line_amount, 0) = 0) AND (nvl(orig_line_qty, 0) = 0) THEN
2629 IF (g_level_statement >= g_current_runtime_level) THEN
2630 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Both line and quantity is zero. ');
2631 END IF;
2632 tax_info_rec.tax_amount := -1 * orig_tax_amount;
2633 ELSE
2634 IF nvl(orig_line_amount, 0) <> 0 THEN
2635 IF (g_level_statement >= g_current_runtime_level) THEN
2636 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Use line amount. ');
2637 END IF;
2638 orig_cm_ratio := cm_line_amount / orig_line_amount;
2639 ELSE
2640 IF (g_level_statement >= g_current_runtime_level) THEN
2641 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Use quantity. ');
2642 END IF;
2643 orig_cm_ratio := cm_line_qty / orig_line_qty;
2644 END IF;
2645
2646 tax_info_rec.tax_amount :=
2647 tax_curr_round(
2648 orig_tax_amount * orig_cm_ratio,
2649 tax_info_rec.trx_currency_code,
2650 tax_info_rec.precision,
2651 tax_info_rec.minimum_accountable_unit,
2652 tax_info_rec.tax_rounding_rule,
2653 'Y');
2654 END IF;
2655 end;
2656 END IF; -- prev_ct_id is null
2657
2658 -- Now make sure that the tax amount for the applied credit memo does
2659 -- not exceed the balance due
2660
2661 /* Bug 4867678 commented out this check as the same chech is now being done
2662 in TDS tail end processing.
2663
2664 -- The following check for credit memos should be done only if calling application is AR
2665 IF pg_cm_type = 'Applied' and
2666 p_appl_short_name = 'AR' and
2667 prev_ctid is not null and
2668 prev_ctlid is not null THEN
2669 DECLARE
2670 tax_balance Number;
2671 l_extended_amount NUMBER;
2672 --BugFix 2499050 Modified the expression in the following DECODE statement.
2673 cursor l_extended_amount_csr is
2674 select decode(nvl(prev_line.extended_amount,0), 0, 0,
2675 (line.extended_amount * nvl(prev_tax.taxable_amount,1))/ prev_line.extended_amount)
2676 from ra_customer_trx_lines_all line,
2677 ra_customer_trx_lines_all prev_line,
2678 ra_customer_trx_lines_all prev_tax
2679 where prev_tax.customer_trx_line_id = prev_ctlid and
2680 nvl(prev_tax.tax_vendor_return_code,tax_no_vendor) =
2681 tax_no_vendor
2682 and prev_tax.link_to_cust_trx_line_id = prev_line.customer_trx_line_id
2683 and line.customer_trx_line_id = tax_info_rec.customer_trx_line_id
2684 and line.previous_customer_trx_line_id = prev_line.customer_trx_line_id;
2685
2686 dummy varchar2(10);
2687
2688 BEGIN
2689 select net_amount into tax_balance
2690 from ar_net_revenue_amount
2691 where customer_trx_line_id = prev_ctlid
2692 and customer_trx_id = prev_ctid;
2693
2694 -- 821505
2695 if l_complete_flag <> 'Y' then
2696 IF (abs(tax_info_rec.tax_amount) > abs(tax_balance)) THEN
2697 tax_info_rec.tax_amount := tax_balance;
2698 END IF;
2699 end if;
2700
2701 open l_extended_amount_csr;
2702 fetch l_extended_amount_csr into l_extended_amount;
2703 --
2704 if (l_extended_amount_csr%found) then
2705 tax_info_rec.extended_amount := l_extended_amount;
2706 end if;
2707 --
2708 close l_extended_amount_csr;
2709
2710 --BugFix:1837433 commented out the following IF condition
2711 -- if (tax_info_rec.amount_includes_tax_flag = 'Y') then
2712 -- tax_info_rec.amount_includes_tax_flag := 'P';
2713 -- end if;
2714 --
2715 END;
2716 END IF;
2717
2718 End Bug 4867678 */
2719
2720 -- Bug821505: Check to see if this transaction is an applied credit memo
2721 -- If so, use Original Invoice's Transaction date for tax calculation
2722 --
2723
2724 -- The following check for credit memos should be done only if calling application is AR
2725 IF (pg_cm_type = 'Applied') and
2726 p_appl_short_name = 'AR'
2727 THEN
2728
2729 BEGIN
2730
2731 IF tax_info_rec.customer_trx_line_id is null THEN
2732
2733 select inv_trx.trx_date
2734 into l_inv_trx_date
2735 from ra_customer_trx_all inv_trx,
2736 ra_cust_trx_types_all trx_type,
2737 ra_customer_trx_all trx
2738 where trx.cust_trx_type_id = trx_type.cust_trx_type_id
2739 and trx_type.type = 'CM'
2740 and trx_type.org_id = trx.org_id
2741 and trx.previous_customer_trx_id = inv_trx.customer_trx_id
2742 and trx.customer_trx_id = tax_info_rec.customer_trx_id;
2743
2744 ELSE
2745
2746 select inv_trx.trx_date
2747 into l_inv_trx_date
2748 from ra_customer_trx_all inv_trx,
2749 ra_cust_trx_types_all trx_type,
2750 ra_customer_trx_all trx,
2751 ra_customer_trx_lines_all line
2752 where trx.cust_trx_type_id = trx_type.cust_trx_type_id
2753 and trx_type.type = 'CM'
2754 and trx_type.org_id = trx.org_id
2755 and trx.previous_customer_trx_id = inv_trx.customer_trx_id
2756 and trx.customer_trx_id = line.customer_trx_id
2757 and line.customer_trx_line_id = tax_info_rec.customer_trx_line_id;
2758
2759 END IF;
2760
2761 l_cm_trx_date := tax_info_rec.trx_date;
2762 tax_info_rec.trx_date := l_inv_trx_date;
2763 arp_util.debug('Changing date from '||to_char(l_cm_trx_date,'DD-MON-YYYY')||' to '||
2764 to_char(l_inv_trx_date,'DD-MON-YYYY')||' for CM Tax Calculation.');
2765
2766 EXCEPTION
2767 WHEN NO_DATA_FOUND THEN
2768 null;
2769 END;
2770
2771 END IF; -- (pg_cm_type = 'Applied')
2772
2773 /*********************************************************************
2774 | Calculate tax based on all data supplied through these views |
2775 | If the views calculate a tax amount, and this is supported by |
2776 | a vat tax id then use the amount returned from the views instead |
2777 *********************************************************************/
2778 --
2779 -- Clear the table of record of type tax_info_rec_type
2780 --
2781
2782 IF (g_level_statement >= g_current_runtime_level) THEN
2783 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','deleting tx_rec_tbl, tax_info_rec_tbl......');
2784 END IF;
2785
2786 tax_rec_tbl.delete;
2787 --
2788 -- Clear the table of record of type ra_customer_trx_lines%rowtype
2789 --
2790 tax_info_rec_tbl.delete;
2791
2792 --
2793 -- create_tax_info_rec_tbl
2794 --
2795
2796 BEGIN
2797 -- comment out the call to ARP_TAX_GROUP and copy the LTE specific logic
2798 -- in this procedure here
2799 -- ARP_TAX_GROUP.create_tax_info_rec_tbl;
2800
2801 IF (g_level_statement >= g_current_runtime_level) THEN
2802 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','create_tax_info_rec_tbl(+)');
2803 END IF;
2804 --
2805 --Tax Code is null. Go get it.
2806 --
2807 if (tax_info_rec.tax_code is null) then
2808 IF (g_level_statement >= g_current_runtime_level) THEN
2809 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG',' Tax Code is null. Go get it. ');
2810 END IF;
2811 ZX_AR_TAX_CLASSIFICATN_DEF_PKG.get_default_tax_classification(
2812 p_ship_to_site_use_id => tax_info_rec.ship_to_site_use_id,
2813 p_bill_to_site_use_id => tax_info_rec.bill_to_site_use_id,
2814 p_inventory_item_id => tax_info_rec.inventory_item_id,
2815 p_organization_id => profinfo.so_organization_id,
2816 -- p_warehouse_id => tax_info_rec.ship_from_warehouse_id,
2817 p_set_of_books_id => sysinfo.sysparam.set_of_books_id,
2818 p_trx_date => tax_info_rec.trx_date,
2819 p_trx_type_id => tax_info_rec.trx_type_id,
2820 -- p_vat_tax_id => l_vat_tax_id,
2821 p_tax_classification_code => tax_info_rec.tax_code,
2822 -- p_amt_incl_tax_flag => tax_info_rec.amount_includes_tax_flag,
2823 -- p_amt_incl_tax_override => l_amt_incl_tax_override,
2824 p_cust_trx_id => tax_info_rec.customer_trx_id,
2825 p_cust_trx_line_id => tax_info_rec.customer_trx_line_id,
2826 p_customer_id => nvl(tax_info_rec.ship_to_cust_id,
2827 tax_info_rec.bill_to_cust_id),
2828 p_memo_line_id => tax_info_rec.memo_line_id,
2829 appl_short_name => sysinfo.appl_short_name,
2830 func_short_name => sysinfo.func_short_name,
2831 p_party_flag => 'N',
2832 p_party_location_id => NULL,
2833 p_entity_code => tax_info_rec.entity_code,
2834 p_event_class_code => tax_info_rec.event_class_code,
2835 p_application_id => 222,
2836 p_internal_organization_id => sysinfo.sysparam.org_id);
2837
2838 --
2839 -- bug#6824850- populate other tax info based on the
2840 -- tax code returned
2841 --
2842 IF tax_info_rec.tax_code IS NOT NULL THEN
2843
2844 BEGIN
2845 SELECT TAXABLE_BASIS,
2846 TAX_CALCULATION_PLSQL_BLOCK,
2847 TAX_TYPE,
2848 decode(tax_type,'TAX_GROUP',vat_tax_id,null),
2849 decode(tax_type,'TAX_GROUP',NULL,
2850 decode (length(translate(global_attribute1,
2851 '0123456789 ', '0123456789')),
2852 length(translate(global_attribute1, '0123456789
2853 ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_-,:.',
2854 '0123456789')), global_attribute1, -99))
2855 INTO tax_info_rec.taxable_basis, --l_taxable_basis,
2856 tax_info_rec.tax_calculation_plsql_block, --l_tax_calculation_plsql_block,
2857 tax_info_rec.userf7, --l_tax_type,
2858 tax_info_rec.usern2, --l_vat_tax_id,
2859 tax_info_rec.usern1 --l_tax_category_id
2860 FROM ar_vat_tax_all_b
2861 WHERE set_of_books_id = sysinfo.sysparam.SET_OF_BOOKS_ID
2862 AND tax_code = tax_info_rec.tax_code
2863 AND tax_info_rec.trx_date BETWEEN start_date
2864 AND NVL(end_date, TO_DATE( '31122199', 'DDMMYYYY'))
2865 AND NVL(enabled_flag,'Y') = 'Y'
2866 AND NVL(tax_class,'O') = 'O'
2867 AND ORG_ID = sysinfo.sysparam.org_id;
2868 EXCEPTION
2869 WHEN NO_DATA_FOUND THEN
2870 fnd_message.set_name('AR', 'GENERIC_MESSAGE');
2871 fnd_message.set_token('GENERIC_TEXT',
2872 'EXCEPTION(NO_DATA_FOUND) : Tax Code');
2873 app_exception.raise_exception;
2874 WHEN OTHERS THEN
2875 fnd_message.set_name('AR', 'GENERIC_MESSAGE');
2876 fnd_message.set_token('GENERIC_TEXT',
2877 'EXCEPTION(OTHERS) : Tax Code : ' || sqlerrm);
2878 app_exception.raise_exception;
2879 END;
2880
2881 --tax_info_rec.amount_includes_tax_flag := 'N';
2882 END IF;
2883
2884 end if;
2885
2886 --
2887 if (sysinfo.sysparam.tax_method = MTHD_LATIN) then
2888
2889 BEGIN
2890 IF (g_level_statement >= g_current_runtime_level) THEN
2891 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Calling JL_ZZ_TAX_INTEGRATION_PKG.expand_group_tax_code');
2892 END IF;
2893 JL_ZZ_TAX_INTEGRATION_PKG.expand_group_tax_code(sysinfo.sysparam.org_id);
2894 Exception
2895 when others then
2896 IF (g_level_statement >= g_current_runtime_level) THEN
2897 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Exception while expanding Latin Tax Group');
2898 END IF;
2899 app_exception.raise_exception;
2900 End;
2901
2902 end if;
2903
2904 EXCEPTION
2905 WHEN OTHERS THEN
2906 IF (g_level_statement >= g_current_runtime_level) THEN
2907 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','IN WHEN OTHERS OF CREATE_TAX_INFO_REC_TBL');
2908 END IF;
2909 app_exception.raise_exception;
2910 END;
2911
2912 --
2913 --
2914 -- tax_info_rec_tbl is populated. Iterate over tax_info_rec_tbl
2915 -- to process each line
2916 --
2917 l_numOfRows := nvl(tax_info_rec_tbl.last, 0);
2918 l_tax_info_out_rec_tbl_count := nvl(tax_info_out_rec_tbl.last,0);
2919 --
2920 IF (g_level_statement >= g_current_runtime_level) THEN
2921 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','before the loop for tax_info_rec_tbl. numOfRows: '||
2922 to_char(l_numOfRows));
2923 END IF;
2924 for x in 1..l_numOfRows LOOP
2925
2926 tax_info_rec := tax_info_rec_tbl(x);
2927
2928 if tax_info_rec.amount_includes_tax_flag = 'P' then
2929 tax_info_rec.amount_includes_tax_flag := 'N';
2930 end if;
2931
2932
2933 --Get Payment Discount
2934 --This will update extended_amount if payment discount exists
2935 --
2936 --BugFix 2127646 added the following If condition inorder to restrict a call to the
2937 --get_payment_term_discount incase of credit memos.
2938
2939 /* Execute this part only for AR because payment term id is specifice to Receivables
2940 --++ nipatel commented out for LTE testing
2941 if p_appl_short_name = 'AR' and
2942 (NOT tax_info_rec.credit_memo_flag ) then
2943 ARP_PROCESS_TAX.get_payment_term_discount;
2944 end if;
2945 */
2946
2947 /* Bugfix 2174086: If amount_includes_tax_flag is 'Y', then set tax_amount as NULL
2948 so that the procedure arp_tax_calculate() is called to calculate Tax. */
2949
2950 IF (g_level_statement >= g_current_runtime_level) THEN
2951 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','tax_amount='||to_char(tax_info_rec.tax_amount));
2952 END IF;
2953
2954
2955 IF tax_info_rec.tax_amount is NULL OR
2956 tax_info_rec.vat_tax_id is NULL OR
2957 tax_info_rec.amount_includes_tax_flag = 'Y' THEN -- BugFix 3242435
2958
2959 arp_tax_calculate;
2960
2961 ELSE
2962 -- If the database views have performed the tax calculation, then
2963 -- pass this tax amount along any installed tax vendor. This will
2964 -- normally happen during a delete of a tax line, since deleted
2965 -- tax records must be reversded from any audit.
2966
2967 dump_tax_info_rec('I');
2968
2969 -- The call to arp_tax_vendor.calculate is not required as this call is
2970 -- only for inserting audit entries in vendor tables.
2971
2972 --
2973 -- Populate Taxable Amount in case only taxable amount is null.
2974 --
2975 IF ( tax_info_rec.taxable_amount IS NULL) and
2976 ( tax_info_rec.tax_amount IS NOT NULL) THEN
2977
2978 IF (nvl(tax_info_rec.taxable_basis, 'BEFORE_EPD') = 'QUANTITY') then
2979
2980 tax_info_rec.taxable_amount :=
2981 tax_info_rec.extended_amount;
2982
2983 ELSIF ( nvl(tax_info_rec.amount_includes_tax_flag, 'Y') = 'Y') THEN
2984
2985 tax_info_rec.taxable_amount :=
2986 tax_info_rec.extended_amount - tax_info_rec.tax_amount;
2987
2988 ELSIF ( nvl(tax_info_rec.amount_includes_tax_flag, 'N') in ('N','P') ) THEN
2989
2990 tax_info_rec.taxable_amount :=
2991 tax_info_rec.extended_amount;
2992
2993 END IF;
2994 END IF;
2995
2996 if tax_info_rec.tax_vendor_return_code in (TAX_RC_OERR,TAX_RC_NO_RATE,
2997 TAX_RC_SYSERR) then
2998 dump_tax_info_rec('E');
2999 app_exception.raise_exception;
3000
3001 end if;
3002 dump_tax_info_rec('O');
3003
3004 -- get the effective tax rates
3005 if (tax_info_rec.extended_amount = 0) then
3006 tax_info_rec.effective_tax_rate := 0;
3007 else
3008 tax_info_rec.effective_tax_rate :=
3009 tax_info_rec.tax_amount/tax_info_rec.extended_amount;
3010 end if;
3011 END IF; -- tax_amount is null or vat_tax_id is null
3012
3013 IF tax_info_rec.customer_trx_id <> pg_old_customer_trx_id THEN
3014 pg_old_customer_trx_id := tax_info_rec.customer_trx_id;
3015 END IF;
3016
3017 /* 821505
3018 * Put CM transaction date back to tax_info_rec.trx_date.
3019 */
3020 IF (l_cm_trx_date is not null) THEN
3021 tax_info_rec.trx_date := l_cm_trx_date;
3022 END IF;
3023
3024 /*********************************************************************
3025 | VAT : Document structure and Rounding |
3026 | Apply Tax rounding rules. |
3027 *********************************************************************/
3028 -- Perform line level rounding
3029
3030 IF (g_level_statement >= g_current_runtime_level) THEN
3031 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '-- Rounding Tax per Line');
3032 END IF;
3033
3034 -- For applied CMs, Do not re-derive the tax amount from the
3035 -- tax rate, as the Tax amount can change without a change in the
3036 -- tax rate.
3037
3038 -- Bugfix 584866 - use tax amount passed
3039 -- Use of effective tax rate introduces obscure rounding errors.
3040 l_tax_amount := tax_info_rec.tax_amount;
3041
3042 tax_info_rec.tax_amount :=
3043 tax_curr_round( l_tax_amount,
3044 tax_info_rec.trx_currency_code,
3045 tax_info_rec.precision,
3046 tax_info_rec.minimum_accountable_unit,
3047 tax_info_rec.tax_rounding_rule,
3048 'Y');
3049 -- End Line Level Rounding
3050
3051 /********************************************************************************
3052 | For each line calculated, store that line in the ra_customer_trx_lines table |
3053 ********************************************************************************/
3054
3055 IF (g_level_statement >= g_current_runtime_level) THEN
3056 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','store values into tax_rec_tbl( '||to_char(x)||' ) +');
3057 END IF;
3058
3059 tax_info_rec.trx_line_type := 'TAX';
3060
3061 /*
3062 -- tax_info_out_rec_tbl(x).set_of_books_id := sysinfo.sysparam.set_of_books_id;
3063 tax_info_out_rec_tbl(x).link_to_cust_trx_line_id := tax_info_rec.customer_trx_line_id;
3064 tax_info_out_rec_tbl(x).customer_trx_id := tax_info_rec.customer_trx_id;
3065 tax_info_out_rec_tbl(x).tax_line_number := tax_info_rec.tax_line_number;
3066 tax_info_out_rec_tbl(x).trx_line_type := 'TAX';
3067 tax_info_out_rec_tbl(x).sales_tax_id := tax_info_rec.sales_tax_id;
3068 tax_info_out_rec_tbl(x).location_segment_id := tax_info_rec.location_segment_id;
3069 tax_info_out_rec_tbl(x).vat_tax_id := tax_info_rec.vat_tax_id;
3070 tax_info_out_rec_tbl(x).tax_rate := tax_info_rec.tax_rate;
3071 tax_info_out_rec_tbl(x).item_exception_rate_id := tax_info_rec.item_exception_rate_id;
3072 tax_info_out_rec_tbl(x).tax_exemption_id := tax_info_rec.tax_exemption_id;
3073 tax_info_out_rec_tbl(x).tax_control := tax_info_rec.tax_control;
3074 tax_info_out_rec_tbl(x).default_ussgl_transaction_code := tax_info_rec.default_ussgl_transaction_code;
3075 tax_info_out_rec_tbl(x).default_ussgl_trx_code_context := tax_info_rec.default_ussgl_trx_code_context;
3076 if (tax_info_rec.tax_precedence = 0) then
3077 tax_info_out_rec_tbl(x).tax_precedence := NULL;
3078 else
3079 tax_info_out_rec_tbl(x).tax_precedence := tax_info_rec.tax_precedence;
3080 end if;
3081 tax_info_out_rec_tbl(x).taxed_quantity := tax_info_rec.taxed_quantity;
3082 tax_info_out_rec_tbl(x).xmpt_cert_no := tax_info_rec.xmpt_cert_no;
3083 tax_info_out_rec_tbl(x).xmpt_reason := tax_info_rec.xmpt_reason;
3084 tax_info_out_rec_tbl(x).tax_vendor_return_code := tax_info_rec.tax_vendor_return_code;
3085 tax_info_out_rec_tbl(x).previous_customer_trx_id := prev_ctid;
3086 tax_info_out_rec_tbl(x).previous_customer_trx_line_id := prev_ctlid;
3087
3088 --
3089 --should take from tax_rec_tbl(x)
3090 --
3091 if tax_info_rec_tbl(x).amount_includes_tax_flag = 'P' then
3092 tax_info_out_rec_tbl(x).amount_includes_tax_flag := 'Y';
3093 tax_info_rec.amount_includes_tax_flag := 'Y';
3094 tax_info_rec_tbl(x).amount_includes_tax_flag := 'Y';
3095 else
3096 tax_info_out_rec_tbl(x).amount_includes_tax_flag := tax_info_rec.amount_includes_tax_flag;
3097 end if;
3098 --
3099 tax_info_out_rec_tbl(x).extended_amount := tax_info_rec.tax_amount;
3100 -- tax_info_out_rec_tbl(x).request_id := fnd_global.request_id; -- Bugfix 588262
3101 tax_info_out_rec_tbl(x).global_attribute1 := tax_info_rec.global_attribute1;
3102 tax_info_out_rec_tbl(x).global_attribute2 := tax_info_rec.global_attribute2;
3103 tax_info_out_rec_tbl(x).global_attribute3 := tax_info_rec.global_attribute3;
3104 tax_info_out_rec_tbl(x).global_attribute4 := tax_info_rec.global_attribute4;
3105 tax_info_out_rec_tbl(x).global_attribute5 := tax_info_rec.global_attribute5;
3106 tax_info_out_rec_tbl(x).global_attribute6 := tax_info_rec.global_attribute6;
3107 tax_info_out_rec_tbl(x).global_attribute7 := tax_info_rec.global_attribute7;
3108 tax_info_out_rec_tbl(x).global_attribute8 := tax_info_rec.global_attribute8;
3109 tax_info_out_rec_tbl(x).global_attribute9 := tax_info_rec.global_attribute9;
3110 tax_info_out_rec_tbl(x).global_attribute10 := tax_info_rec.global_attribute10;
3111 tax_info_out_rec_tbl(x).LEGAL_JUSTIFICATION_TEXT1 := tax_info_rec.global_attribute8;
3112 tax_info_out_rec_tbl(x).LEGAL_JUSTIFICATION_TEXT1 := tax_info_rec.global_attribute9;
3113 tax_info_out_rec_tbl(x).LEGAL_JUSTIFICATION_TEXT1 := tax_info_rec.global_attribute10;
3114 tax_info_out_rec_tbl(x).global_attribute11 := tax_info_rec.global_attribute11;
3115 tax_info_out_rec_tbl(x).global_attribute12 := tax_info_rec.global_attribute12;
3116 tax_info_out_rec_tbl(x).global_attribute13 := tax_info_rec.global_attribute13;
3117 tax_info_out_rec_tbl(x).global_attribute14 := tax_info_rec.global_attribute14;
3118 tax_info_out_rec_tbl(x).global_attribute15 := tax_info_rec.global_attribute15;
3119 tax_info_out_rec_tbl(x).global_attribute16 := tax_info_rec.global_attribute16;
3120 tax_info_out_rec_tbl(x).global_attribute17 := tax_info_rec.global_attribute17;
3121 tax_info_out_rec_tbl(x).global_attribute18 := tax_info_rec.global_attribute18;
3122 tax_info_out_rec_tbl(x).global_attribute19 := tax_info_rec.global_attribute19;
3123 tax_info_out_rec_tbl(x).global_attribute20 := tax_info_rec.global_attribute20;
3124 tax_info_out_rec_tbl(x).global_attribute_category := tax_info_rec.global_attribute_category;
3125 -- tax_info_out_rec_tbl(x).autotax := 'Y'; -- AUTOTAX is always Y when created from the engine
3126 tax_info_out_rec_tbl(x).taxable_amount := tax_info_rec.taxable_amount;
3127
3128 */
3129
3130 --
3131 -- For tax lines of credit memos, populate the foreign keys :
3132 -- previous_customer_trx_line_id and previous_customer_trx_id so that the autoaccounting
3133 -- function can duplicate the accounting distributions of the original invoice line
3134 --
3135 /* For credit memo, tax line should be linked to original invoice's tax line. */
3136
3137 IF tax_info_rec.credit_memo_flag and
3138 p_appl_short_name = 'AR'
3139 THEN
3140 arp_standard.find_previous_trx_line_id(
3141 tax_info_rec.customer_trx_line_id,
3142 tax_info_rec.tax_line_number,
3143 tax_info_rec.vat_tax_id,
3144 tax_info_rec.previous_customer_trx_id,
3145 tax_info_rec.previous_customer_trx_line_id );
3146 END IF;
3147
3148 tax_info_out_rec_tbl(x + l_tax_info_out_rec_tbl_count) := tax_info_rec;
3149
3150 if (nvl(tax_info_rec.amount_includes_tax_flag, 'N')='Y') then
3151 --BugFix 2180174 Added nvl command in the following statement.
3152 l_tax_incl_amount_this_line := tax_info_rec.extended_amount +
3153 nvl(l_tax_incl_amount_this_line,0);
3154 end if;
3155
3156 end Loop;
3157 --
3158 IF (g_level_statement >= g_current_runtime_level) THEN
3159 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','after the loop for tax_info_rec_tbl');
3160 END IF;
3161 --
3162 -- tax_rec_tbl is populated by now
3163 -- call ARP_TAX_GROUP.adjust_compounding_inclusive only
3164 -- if TRX has group tax. That is tax_rec_tbl.last > 1
3165 --
3166 if (nvl(tax_rec_tbl.last, 0) > 1) then
3167 --
3168 l_tax_incl_amount_this_line := adjust_compound_inclusive;
3169 --
3170 end if;
3171 --
3172 -- Go over tax_rec_tbl to create tax lines and
3173 -- tax distribution lines
3174 --
3175 l_numOfRows := nvl(tax_rec_tbl.last, 0);
3176 --
3177 /*
3178 IF (g_level_statement >= g_current_runtime_level) THEN
3179 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','before the loop for tax_rec_tbl. numOfRows: '||to_char(l_numOfRows));
3180 END IF;
3181 --
3182 for x in 1..l_numOfRows LOOP
3183
3184 -- bugfix 2160224: update inclusive adjusted amounts in tax_info_out_rec_tbl
3185 IF sysinfo.appl_short_name <> 'AR' then
3186 tax_info_out_rec_tbl(x).taxable_amount := tax_info_out_rec_tbl(x).taxable_amount;
3187 tax_info_out_rec_tbl(x).tax_amount := tax_info_out_rec_tbl(x).extended_amount;
3188 END IF;
3189 end loop;
3190
3191 --
3192 IF (g_level_statement >= g_current_runtime_level) THEN
3193 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','after the loop for tax_rec_tbl');
3194 END IF;
3195 --
3196 */
3197 IF (g_level_procedure >= g_current_runtime_level ) THEN
3198 FND_LOG.STRING(g_level_procedure,
3199 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.process_tax_rec_f_sql.END',
3200 'ZX_PRODUCT_INTEGRATION_PKG.process_tax_rec_f_sql(-)');
3201 END IF;
3202
3203
3204 EXCEPTION
3205 WHEN OTHERS THEN
3206 IF (g_level_statement >= g_current_runtime_level) THEN
3207 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','EXCEPTION(process_tax_rec_f_sql in loop)');
3208 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','SQLCODE '||SQLCODE||'Error Message '||SQLERRM);
3209 END IF;
3210
3211 IF (tax_gbl_rec.one_err_msg_flag = 'N') THEN
3212
3213 pg_bad_lines := pg_bad_lines + 1;
3214
3215 IF (g_level_statement >= g_current_runtime_level) THEN
3216 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','-- Stack error');
3217 END IF;
3218 -- arp_tax.insert_error(nvl(tax_info_rec.customer_trx_line_id, 0));
3219 ELSE
3220 IF (g_level_statement >= g_current_runtime_level) THEN
3221 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','-- Raise error');
3222 END IF;
3223 RAISE;
3224 END IF;
3225 END;
3226
3227 -- p_new_tax_amount := l_ctl_tax_amt;
3228
3229
3230 IF (g_level_procedure >= g_current_runtime_level ) THEN
3231 FND_LOG.STRING(g_level_procedure,
3232 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.process_tax_rec_f_sql.END',
3233 'ZX_PRODUCT_INTEGRATION_PKG.process_tax_rec_f_sql(-)');
3234 END IF;
3235
3236 EXCEPTION
3237 WHEN OTHERS THEN
3238 IF (g_level_unexpected >= g_current_runtime_level ) THEN
3239 FND_LOG.STRING(g_level_unexpected,
3240 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.process_tax_rec_f_sql',
3241 sqlcode || ': ' || SUBSTR(SQLERRM, 1, 512));
3242 END IF;
3243 RAISE;
3244
3245 END process_tax_rec_f_sql_lte;
3246
3247
3248 /*----------------------------------------------------------------------------*
3249 | PUBLIC PROCEDURE |
3250 | arp_tax_calculate |
3251 | |
3252 | DESCRIPTION |
3253 | This routine, is called to calculate a tax rate and amount for the |
3254 | transaction line that is recorded in the global data structure: |
3255 | arp_tax.tax_info_rec. The logic here is copied from arp_tax.calculate |
3256 | procedure for Latin Tax Engine |
3257 | |
3258 | PARAMETERS |
3259 | tax_info_rec |
3260 | |
3261 | RETURNS |
3262 | tax_info_rec updated with tax rate, amount, vendor and other info. |
3263 | exceptions |
3264 | app_exception.raise_exception when an exception is found along with |
3265 | the error message. |
3266 | |
3267 | CALLED FROM |
3268 | process_tax_rec_f_sql_lte |
3269 | |
3270 | HISTORY |
3271 | 28-DEC-2004 Nilesh Patel Created. |
3272 | |
3273 *----------------------------------------------------------------------------*/
3274 PROCEDURE arp_tax_calculate IS
3275 l_tax_vendor_return_code ra_customer_trx_lines.tax_vendor_return_code%TYPE;
3276 l_use_tax_rate_passed BOOLEAN := FALSE; -- Bugfix 370068, 370265
3277 l_use_tax_vendor BOOLEAN;
3278 l_batch_tax_rate_rule ra_batch_sources.invalid_tax_rate_rule%type;
3279 l_tax_amount ra_customer_trx_lines.extended_amount%TYPE;
3280 l_precision fnd_currencies.precision%TYPE;
3281 l_min_acct_unit fnd_currencies.minimum_accountable_unit%TYPE;
3282
3283 CURSOR get_vat_tax_id(c_sob_id NUMBER,
3284 c_tax_code VARCHAR2,
3285 c_trx_date DATE,
3286 c_trx_end_date DATE,
3287 c_org_id number ) IS
3288 SELECT vat_tax_id,
3289 decode(tax_type,
3290 'LOCATION', TAX_TYPE_LOCATION,
3291 'SALES_TAX', TAX_TYPE_SALES,
3292 TAX_TYPE_VAT ) tax_type
3293 FROM ar_vat_tax_all_b
3294 WHERE set_of_books_id = c_sob_id
3295 AND tax_code = c_tax_code
3296 AND c_trx_date between start_date and nvl(end_date, c_trx_end_date)
3297 AND nvl(enabled_flag,'Y') = 'Y'
3298 AND nvl(TAX_CLASS,'O') = 'O'
3299 AND org_id = c_org_id;
3300
3301 BEGIN
3302 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
3303
3304 IF (g_level_procedure >= g_current_runtime_level ) THEN
3305 FND_LOG.STRING(g_level_procedure,
3306 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.arp_tax_calculate.BEGIN',
3307 'ZX_PRODUCT_INTEGRATION_PKG.arp_tax_calculate(+)');
3308 END IF;
3309
3310 IF ( tax_info_rec.tax_code IS NOT NULL ) THEN
3311
3312
3313
3314 BEGIN
3315
3316 -- Bugfix 358523: Vat_tax_id is now passed for applied CMs, use the
3317 -- vat_tax_id passed, this avoids the error in creating applied CMs
3318 -- for Invoices with an inactive tax code.
3319 -- For On-Account Credit Memos we need to get the vat_tax_id, Just
3320 -- like in an Invoice.
3321 IF ( NOT (tax_info_rec.credit_memo_flag AND
3322 tax_info_rec.previous_customer_trx_id IS NOT NULL) ) THEN
3323 get_vat_tax_rate;
3324 ELSE
3325 OPEN get_vat_tax_id(sysinfo.sysparam.set_of_books_id,
3326 tax_info_rec.tax_code,
3327 tax_info_rec.trx_date,
3328 tax_info_rec.trx_date,
3329 sysinfo.sysparam.org_id);
3330 FETCH get_vat_tax_id INTO tax_info_rec.vat_tax_id, tax_info_rec.tax_type;
3331 CLOSE get_vat_tax_id;
3332 END IF;
3333
3334 /*
3335 IF (g_level_procedure >= g_current_runtime_level ) THEN
3336 FND_LOG.STRING(g_level_procedure,
3337 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.arp_tax_calculate',
3338 'Populating Vat_tax_id:');
3339 FND_LOG.STRING(g_level_procedure,
3340 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.arp_tax_calculate',
3341 'set_if_books_id: '||sysinfo.sysparam.set_of_books_id);
3342 FND_LOG.STRING(g_level_procedure,
3343 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.arp_tax_calculate',
3344 'org_id: '||sysinfo.sysparam.org_id);
3345 FND_LOG.STRING(g_level_procedure,
3346 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.arp_tax_calculate',
3347 'tax_info_rec.tax_code: '||tax_info_rec.tax_code);
3348 FND_LOG.STRING(g_level_procedure,
3349 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.arp_tax_calculate',
3350 'tax_info_rec.Vat_tax_id: '||tax_info_rec.vat_tax_id);
3351 FND_LOG.STRING(g_level_procedure,
3352 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.arp_tax_calculate',
3353 'tax_info_rec.Tax_info_rec.tax_type: '||tax_info_rec.tax_type);
3354 END IF;
3355 */
3356
3357 EXCEPTION
3358 when others then
3359 IF (g_level_procedure >= g_current_runtime_level ) THEN
3360 FND_LOG.STRING(g_level_procedure,
3361 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.arp_tax_calculate',
3362 'Exception in ZX_PRODUCT_INTEGRATION_PKG.arp_tax_calculate'||SQLCODE||':'||SQLERRM);
3363 END IF;
3364
3365
3366 END;
3367 END IF;
3368
3369
3370
3371
3372 --
3373 -- Dump tax info when run in debug.
3374 --
3375 dump_tax_info_rec('I');
3376
3377 --
3378 -- Check that the amount field has a value for lines other than Adjustments
3379 --
3380 IF ( tax_info_rec.extended_amount IS NULL AND
3381 nvl(tax_info_rec.trx_line_type, 'LINE') <> 'ADJ' ) THEN
3382 fnd_message.set_name('AR', 'AR_TAX_NO_AMOUNT');
3383 app_exception.raise_exception;
3384 END IF;
3385
3386 --
3387 -- Check that the precision field has a value
3388 --
3389 IF ( tax_info_rec.precision IS NULL ) THEN
3390 fnd_message.set_name('AR', 'AR_TAX_NO_PRECISION');
3391 app_exception.raise_exception;
3392 END IF;
3393
3394 -- Copy the tax rate passed
3395 pg_tax_rate_passed := tax_info_rec.tax_rate;
3396
3397
3398 /*--------------------------------------------------------------------------*
3399 | If a tax code is not passed go find the default tax code. Apply item |
3400 | exceptions defined for item and apply any exemptions that might exist. |
3401 *--------------------------------------------------------------------------*/
3402
3403 IF ( tax_info_rec.tax_code IS NULL ) THEN
3404
3405 --
3406 -- Get default tax code
3407 --
3408 DECLARE
3409 l_ship_to_site_use_id NUMBER;
3410 l_bill_to_site_use_id NUMBER;
3411 l_inventory_item_id NUMBER;
3412 l_organization_id NUMBER;
3413 l_memo_line_id NUMBER;
3414 l_customer_id NUMBER;
3415 l_warehouse_id NUMBER;
3416 l_set_of_books_id NUMBER;
3417 l_trx_date DATE;
3418 l_trx_type_id NUMBER;
3419 l_cust_trx_id NUMBER;
3420 l_cust_trx_line_id NUMBER;
3421 l_appl_short_name VARCHAR2(10);
3422 l_func_short_name VARCHAR2(30);
3423 l_vat_tax_id NUMBER;
3424 l_amt_incl_tax_flag VARCHAR2(1);
3425 l_amt_incl_tax_override VARCHAR2(1);
3426 l_party_flag VARCHAR2(1);
3427 l_party_location_id VARCHAR2(30);
3428 BEGIN
3429 --
3430 -- Initialize
3431 --
3432 l_ship_to_site_use_id := tax_info_rec.ship_to_site_use_id;
3433 l_bill_to_site_use_id := tax_info_rec.bill_to_site_use_id;
3434 l_inventory_item_id := tax_info_rec.inventory_item_id;
3435 l_organization_id := profinfo.so_organization_id;
3436 l_memo_line_id := tax_info_rec.memo_line_id;
3437 l_customer_id := nvl(tax_info_rec.ship_to_cust_id,
3438 tax_info_rec.bill_to_cust_id);
3439 l_warehouse_id := NULL;
3440 l_set_of_books_id := sysinfo.sysparam.set_of_books_id;
3441 l_trx_date := tax_info_rec.trx_date;
3442 l_trx_type_id := tax_info_rec.trx_type_id;
3443 l_cust_trx_id := tax_info_rec.customer_trx_id;
3444 l_cust_trx_line_id := tax_info_rec.customer_trx_line_id;
3445 l_appl_short_name := sysinfo.appl_short_name;
3446 l_func_short_name := sysinfo.func_short_name;
3447
3448 ZX_AR_TAX_CLASSIFICATN_DEF_PKG.get_default_tax_classification(
3449 p_ship_to_site_use_id => l_ship_to_site_use_id,
3450 p_bill_to_site_use_id => l_bill_to_site_use_id,
3451 p_inventory_item_id => l_inventory_item_id,
3452 p_organization_id => l_organization_id,
3453 -- p_warehouse_id => l_warehouse_id,
3454 p_set_of_books_id => l_set_of_books_id,
3455 p_trx_date => l_trx_date,
3456 p_trx_type_id => l_trx_type_id,
3457 p_tax_classification_code => tax_info_rec.tax_code,
3458 -- p_amt_incl_tax_flag => l_amt_incl_tax_flag,
3459 -- p_amt_incl_tax_override => l_amt_incl_tax_override,
3460 p_cust_trx_id => l_cust_trx_id,
3461 p_cust_trx_line_id => l_cust_trx_line_id,
3462 p_customer_id => l_customer_id,
3463 p_memo_line_id => l_memo_line_id,
3464 appl_short_name => l_appl_short_name,
3465 func_short_name => l_func_short_name ,
3466 p_party_flag => l_party_flag,
3467 p_party_location_id => l_party_location_id,
3468 p_entity_code => tax_info_rec.entity_code,
3469 p_event_class_code => tax_info_rec.event_class_code,
3470 p_application_id => 222,
3471 p_internal_organization_id => sysinfo.sysparam.org_id);
3472
3473
3474
3475
3476 EXCEPTION
3477 WHEN NO_DATA_FOUND THEN NULL;
3478 END;
3479
3480 END IF; -- Tax code passed?
3481
3482 --
3483 -- If tax method is VAT and if tax code or rate not found then display mesg
3484 -- and raise exception.
3485 --
3486 IF tax_info_rec.tax_code IS NULL THEN
3487 fnd_message.set_name('AR', 'AR_TAX_NO_CODE');
3488 JL_ZZ_TAX_INTEGRATION_PKG.g_jl_exception_type := 'E';
3489 app_exception.raise_exception;
3490 END IF;
3491
3492 /*------------------------------------------------------------------------*
3493 | Bugfix : 370265, 370068. |
3494 | If a tax rate or amount is passed then validate if the tax rate can be |
3495 | used and use that tax rate. |
3496 *------------------------------------------------------------------------*/
3497 IF ( pg_tax_rate_passed IS NOT NULL ) THEN
3498 -- Tax rate was passed, Validate the tax rate passed
3499
3500
3501 --check_tax_rate_passed(l_use_tax_rate_passed);
3502 DECLARE
3503
3504 CURSOR sel_batch_src_tax_rule(c_trx_id IN NUMBER ) IS
3505 SELECT invalid_tax_rate_rule
3506 FROM ra_batch_sources_all bsrc, ra_customer_trx_all trx
3507 WHERE trx.batch_source_id = bsrc.batch_source_id
3508 AND trx.org_id = bsrc.org_id
3509 AND trx.customer_trx_id = c_trx_id;
3510
3511 BEGIN
3512
3513 IF (g_level_statement >= g_current_runtime_level) THEN
3514 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', 'check_tax_rate_passed...' );
3515
3516 If tax_info_rec.credit_memo_flag then
3517 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '-- credit_memo_flag = Y');
3518 else
3519 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '-- credit_memo_flag = N');
3520 end if;
3521 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '-- pg_adhoc_tax_code = '||pg_adhoc_tax_code);
3522 END IF;
3523
3524
3525 /* Bug Number 1795536 .Incase Of order Management ,it should set p_use_tax_rate_passed to true */
3526
3527 IF (g_level_statement >= g_current_runtime_level) THEN
3528 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','--Calling Application is = ' || sysinfo.appl_short_name);
3529 END IF;
3530
3531 IF ( tax_info_rec.credit_memo_flag OR sysinfo.appl_short_name='OE') THEN
3532 if tax_info_rec.cm_type='On-Account' THEN /*Bugfix 2435438 */
3533 L_USE_TAX_RATE_PASSED:=FALSE;
3534 else
3535
3536 -- For Credit Memos, always use the tax rate passed.
3537 l_use_tax_rate_passed := TRUE;
3538 end if;
3539 if sysinfo.appl_short_name='OE' then
3540 l_use_tax_rate_passed := TRUE;
3541 end if;
3542
3543
3544 ELSE -- Other Transactions like INV, DM and Sales Orders
3545
3546 IF ( nvl(pg_adhoc_tax_code,'N') = 'N' ) THEN
3547
3548 OPEN sel_batch_src_tax_rule(tax_info_rec.customer_trx_id);
3549 FETCH sel_batch_src_tax_rule INTO l_batch_tax_rate_rule;
3550 CLOSE sel_batch_src_tax_rule;
3551
3552 -- Batch tax rate rule is NULL(Correct) for Invoice sources
3553 -- other than AutoInvoice
3554 IF ( nvl(l_batch_tax_rate_rule, 'Correct') = 'Correct' ) THEN
3555
3556 -- Don't use the tax rate passed, use the tax rate for the tax code.
3557 l_use_tax_rate_passed := FALSE;
3558 ELSE
3559 -- Raise error
3560 fnd_message.set_name('AR','AR_TAX_RATE_INVALID');
3561 fnd_message.set_token('TAX_CODE', tax_info_rec.tax_code);
3562 fnd_message.set_token('TRX_DATE', tax_info_rec.trx_date );
3563 JL_ZZ_TAX_INTEGRATION_PKG.g_jl_exception_type := 'E';
3564 app_exception.raise_exception;
3565 END IF;
3566
3567 ELSE -- Adhoc Tax Code
3568 l_use_tax_rate_passed := TRUE; -- Use the tax rate passed.
3569 END IF;
3570
3571 END IF;
3572
3573 IF (g_level_statement >= g_current_runtime_level) THEN
3574 If l_use_tax_rate_passed then
3575 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '-- Use tax rate passed = Y');
3576 else
3577 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '-- Use tax rate passed = N');
3578 end if;
3579 END IF;
3580
3581 EXCEPTION
3582 WHEN OTHERS THEN
3583 IF (g_level_statement >= g_current_runtime_level) THEN
3584 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', 'EXCEPTION(OTHERS) : check_tax_rate_passed...' );
3585 END IF;
3586
3587 IF ( sel_batch_src_tax_rule%ISOPEN ) THEN
3588 CLOSE sel_batch_src_tax_rule;
3589 END IF;
3590 RAISE ;
3591 END;
3592 END IF;
3593
3594 IF ( l_use_tax_rate_passed
3595 OR tax_info_rec.tax_amount IS NOT NULL ) THEN
3596
3597 IF (g_level_statement >= g_current_runtime_level) THEN
3598 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','-- Tax rate or amount passed');
3599 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','-- Tax Rate = '||to_char(pg_tax_rate_passed));
3600 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','-- Tax Amount = '||to_char(tax_info_rec.tax_amount));
3601 END IF;
3602
3603 /*-----------------------------------------------------------------+
3604 | If a tax amount was passed, we need to preserve the tax amount. |
3605 | The tax rate will be derived from the tax amount and if a NULL |
3606 | Tax rate was passed, We leave that unchanged. |
3607 +-----------------------------------------------------------------*/
3608 IF ( tax_info_rec.tax_amount IS NULL ) THEN
3609
3610 tax_info_rec.tax_rate := pg_tax_rate_passed;
3611
3612 /* bug 636254: allow vendors to calculate the tax amount if this is not passed */
3613 /*get_tax_amount;*/
3614
3615 ELSE
3616 -- Tax amount was passed, preserve the tax amount and calculate
3617 -- the tax rate.
3618 IF (g_level_statement >= g_current_runtime_level) THEN
3619 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','-- Deriving tax rate from tax amount');
3620 END IF;
3621 -- BugFix 2218609 Commented the following IF condition so that the
3622 -- tax_info_rec.tax_rate will be populated when ever the
3623 -- tax_info_rec.tax_amount is NOT NULL.
3624
3625 -- IF ( tax_info_rec.tax_rate IS NOT NULL ) THEN
3626
3627 -- Get tax rate from tax amount
3628 -- Note: The tax rate can be NULL, but not incorrect
3629 if (nvl(tax_info_rec.amount_includes_tax_flag, 'N') in('N','P')) then
3630 tax_info_rec.tax_rate := ((tax_info_rec.tax_amount * 100) /
3631 tax_info_rec.extended_amount);
3632 else
3633 -- NOTE: the following equation does not work for side-by-side inclusive taxes..
3634 tax_info_rec.tax_rate := ((tax_info_rec.tax_amount * 100) /
3635 (tax_info_rec.extended_amount - tax_info_rec.tax_amount));
3636 end if;
3637 -- END IF;
3638
3639 END IF; -- Tax amount NULL?
3640
3641 /* Bugfix 550589: Divide by zero error */
3642 IF ( tax_info_rec.extended_amount = 0 ) THEN
3643 tax_info_rec.effective_tax_rate := 0;
3644 ELSE
3645 tax_info_rec.effective_tax_rate :=
3646 tax_info_rec.tax_amount / tax_info_rec.extended_amount;
3647 END IF;
3648
3649
3650 /*-------------------------------------------------------------------+
3651 | Synchronize the Tax vendor with the passed Tax rate and Amount. |
3652 | Here, we ignore the tax rate and amount passed by the tax vendor |
3653 | as we need to use the tax rate or amount passed. |
3654 +-------------------------------------------------------------------*/
3655
3656 -- Replace the call to arp_tax_vendor.calculate with direct call to LTE
3657 IF sysinfo.sysparam.tax_method = MTHD_LATIN THEN
3658
3659 BEGIN
3660
3661 IF (g_level_statement >= g_current_runtime_level) THEN
3662 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', 'Tax method: '
3663 ||sysinfo.sysparam.tax_method);
3664 END IF;
3665
3666 tax_info_rec.tax_vendor_return_code :=
3667 jl_zz_tax.calculate(p_org_id => sysinfo.sysparam.org_id);
3668
3669 IF (g_level_statement >= g_current_runtime_level) THEN
3670 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', 'JL_ZZ_TAX.calculate()- : tax_vendor_return_code '
3671 ||tax_info_rec.tax_vendor_return_code);
3672 END IF;
3673
3674 l_tax_vendor_return_code := tax_info_rec.tax_vendor_return_code;
3675
3676 EXCEPTION
3677 WHEN OTHERS THEN
3678 fnd_message.set_name('AR', 'GENERIC_MESSAGE');
3679 fnd_message.set_token('GENERIC_TEXT', 'Latin Tax Engine raised error.'||
3680 SQLCODE||';'||SQLERRM);
3681 IF (g_level_unexpected >= g_current_runtime_level) THEN
3682 FND_LOG.STRING(g_level_unexpected,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Latin Tax Engine raised error: '||SQLCODE||';'||SQLERRM);
3683 END IF;
3684 app_exception.raise_exception;
3685 END;
3686 END IF;
3687
3688
3689 IF l_tax_vendor_return_code in ( TAX_RC_OERR, TAX_RC_SYSERR,TAX_RC_NO_RATE ) THEN
3690 /* There should be a message on the message stack already */
3691 /* Raise a hard error */
3692 app_exception.raise_exception;
3693 END IF;
3694
3695 /* Bug 636254: Once the vendor has had a chance to calculate the
3696 tax amount, if the tax amount is still NULL, then go and
3697 calculate the amount */
3698 if ( tax_info_rec.tax_amount IS NULL ) THEN
3699
3700 -- get_tax_amount;
3701 IF ( tax_info_rec.tax_rate IS NOT NULL ) THEN
3702 IF (nvl(tax_info_rec.taxable_basis, 'BEFORE_EPD') = 'QUANTITY') then
3703 l_tax_amount := tax_info_rec.taxed_quantity * tax_info_rec.tax_rate;
3704 --
3705 l_tax_amount := tax_curr_round(
3706 l_tax_amount,
3707 tax_info_rec.trx_currency_code,
3708 tax_info_rec.precision,
3709 tax_info_rec.minimum_accountable_unit,
3710 tax_info_rec.tax_rounding_rule,
3711 'Y');
3712 --
3713 -- Set taxable_amount
3714 --
3715 tax_info_rec.taxable_amount := tax_info_rec.extended_amount;
3716 --
3717 -- Set tax_rate
3718 --
3719 IF tax_info_rec.taxable_amount = 0 then
3720 NULL;
3721 ELSE
3722
3723 tax_info_rec.tax_rate := l_tax_amount / tax_info_rec.taxable_amount * 100;
3724 END IF;
3725
3726 ELSIF ( nvl(tax_info_rec.amount_includes_tax_flag, 'Y') = 'Y') THEN
3727 l_tax_amount := tax_info_rec.extended_amount *
3728 tax_info_rec.tax_rate / (100+tax_info_rec.tax_rate);
3729 --
3730 l_tax_amount := tax_curr_round(
3731 l_tax_amount,
3732 tax_info_rec.trx_currency_code,
3733 tax_info_rec.precision,
3734 tax_info_rec.minimum_accountable_unit,
3735 tax_info_rec.tax_rounding_rule,
3736 'Y');
3737 --
3738 -- Set taxable_amount
3739 --
3740 tax_info_rec.taxable_amount := tax_info_rec.extended_amount - l_tax_amount;
3741
3742 ELSIF ( nvl(tax_info_rec.amount_includes_tax_flag, 'N') in ('N','P') ) THEN
3743 l_tax_amount := tax_info_rec.extended_amount *
3744 tax_info_rec.tax_rate / 100 ;
3745 --
3746 l_tax_amount := tax_curr_round(
3747 l_tax_amount,
3748 tax_info_rec.trx_currency_code,
3749 tax_info_rec.precision,
3750 tax_info_rec.minimum_accountable_unit,
3751 tax_info_rec.tax_rounding_rule,
3752 'Y');
3753 --
3754 -- Set taxable_amount
3755 --
3756 tax_info_rec.taxable_amount := tax_info_rec.extended_amount;
3757 END IF;
3758
3759 END IF;
3760
3761 --
3762 -- Round to correct currency precision
3763 --
3764 l_precision := tax_info_rec.precision;
3765 l_min_acct_unit := tax_info_rec.minimum_accountable_unit;
3766
3767 tax_info_rec.tax_amount := tax_curr_round( l_tax_amount,
3768 tax_info_rec.trx_currency_code,
3769 tax_info_rec.precision,
3770 tax_info_rec.minimum_accountable_unit,
3771 tax_info_rec.tax_rounding_rule,
3772 'Y');
3773
3774 end if;
3775 --
3776 -- Dump tax info.
3777 --
3778 dump_tax_info_rec('O');
3779
3780 IF (g_level_statement >= g_current_runtime_level) THEN
3781 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','arp_tax_calculate()-');
3782 END IF;
3783 RETURN;
3784
3785 END IF; -- End of Bugfix 370068, 370265
3786
3787 --
3788 -- At this point we've found a tax code for VAT.
3789 --
3790
3791 --
3792 -- If exemption is not passed, then look for exemptions
3793 --
3794 IF ( tax_info_rec.tax_exemption_id IS NULL ) THEN
3795
3796 BEGIN
3797
3798 --crm
3799 IF (nvl(tax_info_rec.party_flag, 'N') = 'N') THEN
3800 --++ Nilesh: Need to check if exemptions are supported in LTE
3801 -- get_exempt;
3802 NULL;
3803 END IF;
3804
3805 EXCEPTION
3806 WHEN TAX_NO_RATE THEN
3807 --
3808 -- If Tax control is Exempt(and Exemption not found) then
3809 -- display message and raise exception.
3810 --
3811 IF ( tax_info_rec.tax_control = 'E' ) THEN
3812
3813 fnd_message.set_name('AR','AR_TAX_NO_RATE');
3814 JL_ZZ_TAX_INTEGRATION_PKG.g_jl_exception_type := 'E';
3815 app_exception.raise_exception;
3816
3817 END IF; -- Tax control is Exempt?
3818 END;
3819
3820 END IF; -- Exemption info found?
3821
3822
3823 -- Replace the call to arp_tax_vendor.calculate with direct call to LTE
3824 IF sysinfo.sysparam.tax_method = MTHD_LATIN THEN
3825
3826 BEGIN
3827
3828 IF (g_level_statement >= g_current_runtime_level) THEN
3829 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', 'Tax method: '
3830 ||sysinfo.sysparam.tax_method);
3831 END IF;
3832
3833 l_tax_vendor_return_code := jl_zz_tax.calculate(p_org_id => sysinfo.sysparam.org_id);
3834
3835 IF (g_level_statement >= g_current_runtime_level) THEN
3836 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', 'JL_ZZ_TAX.calculate()- : tax_vendor_return_code '
3837 ||l_tax_vendor_return_code);
3838 END IF;
3839
3840 EXCEPTION
3841 WHEN OTHERS THEN
3842 fnd_message.set_name('AR', 'GENERIC_MESSAGE');
3843 fnd_message.set_token('GENERIC_TEXT', 'Latin Tax Engine raised error.'||
3844 SQLCODE||';'||SQLERRM);
3845 IF (g_level_unexpected >= g_current_runtime_level) THEN
3846 FND_LOG.STRING(g_level_unexpected,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Latin Tax Engine raised error: '||SQLCODE||';'||SQLERRM);
3847 END IF;
3848 app_exception.raise_exception;
3849 END;
3850 END IF;
3851
3852 --
3853 -- If Tax Vendor is not installed then we need to get the Sales Tax Rate
3854 -- and apply exemptions if any. If a Tax vendor is installed then we use
3855 -- the tax rate and amount calculated by the tax vendor.
3856 --
3857 IF ( l_tax_vendor_return_code = TAX_NO_VENDOR ) THEN
3858
3859 tax_info_rec.tax_vendor_return_code := l_tax_vendor_return_code;
3860
3861 --
3862 -- If the Exemption is 100%, then we don't need to get sales tax rate,
3863 -- tax rate and tax amount is 0.
3864 IF ( NVL(tax_info_rec.xmpt_percent,0) = 100 ) THEN
3865
3866 tax_info_rec.tax_rate := 0;
3867 tax_info_rec.tax_amount := 0;
3868
3869 END IF; -- 100% Exemption?
3870
3871
3872 --
3873 -- If exemption exists, calculate exempted tax rate
3874 --
3875 IF ( tax_info_rec.xmpt_percent IS NOT NULL ) THEN
3876
3877 --++ Nilesh: Need to check if exemptions are supported in LTE
3878 -- calculate_exempt;
3879 NULL;
3880
3881 END IF; -- Exemption exists?
3882
3883 --
3884 -- Calculate tax amount rounded to correct precision.
3885 --
3886
3887 -- get_tax_amount;
3888 IF ( tax_info_rec.tax_rate IS NOT NULL ) THEN
3889 IF (nvl(tax_info_rec.taxable_basis, 'BEFORE_EPD') = 'QUANTITY') then
3890 l_tax_amount := tax_info_rec.taxed_quantity * tax_info_rec.tax_rate;
3891 --
3892 l_tax_amount := tax_curr_round(
3893 l_tax_amount,
3894 tax_info_rec.trx_currency_code,
3895 tax_info_rec.precision,
3896 tax_info_rec.minimum_accountable_unit,
3897 tax_info_rec.tax_rounding_rule,
3898 'Y');
3899 --
3900 -- Set taxable_amount
3901 --
3902 tax_info_rec.taxable_amount := tax_info_rec.extended_amount;
3903 --
3904 -- Set tax_rate
3905 --
3906 IF tax_info_rec.taxable_amount = 0 then
3907 NULL;
3908 ELSE
3909
3910 tax_info_rec.tax_rate := l_tax_amount / tax_info_rec.taxable_amount * 100;
3911 END IF;
3912
3913 ELSIF ( nvl(tax_info_rec.amount_includes_tax_flag, 'Y') = 'Y') THEN
3914 l_tax_amount := tax_info_rec.extended_amount *
3915 tax_info_rec.tax_rate / (100+tax_info_rec.tax_rate);
3916 --
3917 l_tax_amount := tax_curr_round(
3918 l_tax_amount,
3919 tax_info_rec.trx_currency_code,
3920 tax_info_rec.precision,
3921 tax_info_rec.minimum_accountable_unit,
3922 tax_info_rec.tax_rounding_rule,
3923 'Y');
3924 --
3925 -- Set taxable_amount
3926 --
3927 tax_info_rec.taxable_amount := tax_info_rec.extended_amount - l_tax_amount;
3928
3929 ELSIF ( nvl(tax_info_rec.amount_includes_tax_flag, 'N') in ('N','P') ) THEN
3930 l_tax_amount := tax_info_rec.extended_amount *
3931 tax_info_rec.tax_rate / 100 ;
3932 --
3933 l_tax_amount := tax_curr_round(
3934 l_tax_amount,
3935 tax_info_rec.trx_currency_code,
3936 tax_info_rec.precision,
3937 tax_info_rec.minimum_accountable_unit,
3938 tax_info_rec.tax_rounding_rule,
3939 'Y');
3940 --
3941 -- Set taxable_amount
3942 --
3943 tax_info_rec.taxable_amount := tax_info_rec.extended_amount;
3944 END IF;
3945
3946 END IF;
3947
3948 --
3949 -- Round to correct currency precision
3950 --
3951 l_precision := tax_info_rec.precision;
3952 l_min_acct_unit := tax_info_rec.minimum_accountable_unit;
3953
3954 tax_info_rec.tax_amount := tax_curr_round( l_tax_amount,
3955 tax_info_rec.trx_currency_code,
3956 tax_info_rec.precision,
3957 tax_info_rec.minimum_accountable_unit,
3958 tax_info_rec.tax_rounding_rule,
3959 'Y');
3960
3961
3962 ELSE /* Tax Vendor is installed */
3963
3964
3965 tax_info_rec.tax_vendor_return_code := l_tax_vendor_return_code;
3966
3967
3968 IF l_tax_vendor_return_code in ( TAX_RC_OERR, TAX_RC_SYSERR, TAX_RC_NO_RATE ) THEN
3969 /* There should be a message on the message stack already */
3970 /* Raise a hard error */
3971 app_exception.raise_exception;
3972 END IF;
3973
3974
3975 END IF; -- Vendor not installed?
3976
3977 /* Bugfix 550589: Divide by zero error */
3978 IF ( tax_info_rec.extended_amount = 0 ) THEN
3979 tax_info_rec.effective_tax_rate := 0;
3980 ELSE
3981 tax_info_rec.effective_tax_rate := tax_info_rec.tax_amount / tax_info_rec.extended_amount;
3982 END IF;
3983
3984 --
3985 -- Dump tax info.
3986 --
3987 dump_tax_info_rec('O');
3988
3989 IF (g_level_procedure >= g_current_runtime_level ) THEN
3990 FND_LOG.STRING(g_level_procedure,
3991 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.arp_tax_calculate.END',
3992 'ZX_PRODUCT_INTEGRATION_PKG.arp_tax_calculate(-)');
3993 END IF;
3994
3995 EXCEPTION
3996 WHEN OTHERS THEN
3997 IF (g_level_unexpected >= g_current_runtime_level ) THEN
3998 FND_LOG.STRING(g_level_unexpected,
3999 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.arp_tax_calculate',
4000 sqlcode || ': ' || SUBSTR(SQLERRM, 1, 512));
4001 END IF;
4002
4003 /*---------------------------------------------+
4004 | Display parameters and raise the exception |
4005 +---------------------------------------------*/
4006 IF (g_level_statement >= g_current_runtime_level) THEN
4007 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','****************************************');
4008 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','* EXCEPTION: arp_tax_calculate() *');
4009 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','----------------------------------------');
4010 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','* Dumping Tax Info Record *');
4011 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','****************************************');
4012 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','--');
4013 END IF;
4014
4015 --
4016 -- Dump tax info.
4017 --
4018 dump_tax_info_rec('E');
4019
4020 RAISE;
4021
4022 END arp_tax_calculate;
4023
4024
4025 /*===========================================================================+
4026 | PROCEDURE |
4027 | prepare_tax_info_rec |
4028 | |
4029 | DESCRIPTION |
4030 | |
4031 | MODIFICATION HISTORY |
4032 | |
4033 +===========================================================================*/
4034
4035 PROCEDURE prepare_tax_info_rec(
4036 p_index IN NUMBER
4037 )IS
4038
4039 l_cust_trx_type_id ra_cust_trx_types.cust_trx_type_id%type;
4040 l_location_structure_id ar_system_parameters.location_structure_id%type;
4041 l_location_segment_num number;
4042 l_set_of_books_id ar_system_parameters.set_of_books_id%type;
4043 l_tax_rounding_allow_override
4044 ar_system_parameters.tax_rounding_allow_override%type;
4045 l_tax_header_level_flag ar_system_parameters.tax_header_level_flag%type;
4046 l_tax_rounding_rule ar_system_parameters.tax_rounding_rule%type;
4047 l_tax_rule_set ar_system_parameters.global_attribute13%type;
4048 l_location_id hr_locations_all.location_id%type;
4049 l_org_class hr_locations_all.global_attribute1%type;
4050 l_taxable_basis ar_vat_tax.taxable_basis%type;
4051 l_tax_calculation_plsql_block
4052 ar_vat_tax.tax_calculation_plsql_block%type;
4053 l_tax_calculation_flag ra_cust_trx_types.tax_calculation_flag%type;
4054 l_tax_type ar_vat_tax.tax_type%type;
4055 l_vat_tax_id ar_vat_tax.vat_tax_id%type;
4056 l_tax_category_id ar_vat_tax.global_attribute1%type;
4057 l_global_attribute5 mtl_system_items.global_attribute1%type;
4058 l_global_attribute6 mtl_system_items.global_attribute2%type;
4059 l_tax_classification_code ar_vat_tax_all_b.tax_code%type;
4060
4061 -- Added by ssohal for Bug#8260273
4062 CURSOR get_org_class (c_org_id HR_ORGANIZATION_UNITS.organization_id%TYPE) IS
4063 SELECT HRL.LOCATION_ID,
4064 HRL.GLOBAL_ATTRIBUTE1
4065 FROM HR_LOCATIONS_ALL HRL ,
4066 HR_ORGANIZATION_UNITS ORG
4067 WHERE ORG.LOCATION_ID = HRL.LOCATION_ID
4068 AND ORG.ORGANIZATION_ID = c_org_id;
4069
4070 BEGIN
4071
4072 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
4073
4074 IF (g_level_procedure >= g_current_runtime_level ) THEN
4075 FND_LOG.STRING(g_level_procedure,
4076 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_tax_info_rec.BEGIN',
4077 'ZX_PRODUCT_INTEGRATION_PKG.prepare_tax_info_rec(+)');
4078 END IF;
4079
4080 /*
4081 column not found in the dist_tbl
4082 shipping_trading_partner_number(p_index);
4083 shipping_trading_partner_name(p_index);
4084 -- tax_info_rec.ship_to_customer_number := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ship_trading_partner_number(p_index);
4085 -- tax_info_rec.ship_to_customer_name := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ship_trading_partner_name(p_index);
4086 */
4087
4088 -- ? check the following four columns
4089 tax_info_rec.ship_to_cust_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ship_third_pty_acct_id(p_index);
4090 tax_info_rec.bill_to_cust_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.bill_third_pty_acct_id(p_index);
4091 tax_info_rec.ship_to_site_use_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SHIP_TO_CUST_ACCT_SITE_USE_ID(p_index);
4092 tax_info_rec.bill_to_site_use_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.BILL_TO_CUST_ACCT_SITE_USE_ID(p_index);
4093
4094 tax_info_rec.customer_trx_line_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.Trx_line_id(p_index);
4095 tax_info_rec.customer_trx_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.Trx_id(p_index);
4096 tax_info_rec.trx_date := NVL(ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_line_date(p_index),
4097 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_date(p_index));
4098 tax_info_rec.gl_date := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_line_gl_date(p_index);
4099 tax_info_rec.tax_code := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.OUTPUT_TAX_CLASSIFICATION_CODE(p_index);
4100
4101 IF (g_level_statement >= g_current_runtime_level) then
4102 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Product_id = ('||to_char(p_index)||' )'||
4103 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.Product_id(p_index));
4104 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Product_org_id = '||
4105 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.Product_org_id(p_index));
4106 END IF;
4107
4108 IF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.Product_id(p_index) is NOT NULL and
4109 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.Product_org_id(p_index) is NULL
4110 then
4111 -- this indicates that the line is a memo line
4112 tax_info_rec.memo_line_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.Product_id(p_index); -- not need for latin tax
4113 ELSE
4114 tax_info_rec.inventory_item_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.Product_id(p_index);
4115 END IF;
4116 tax_info_rec.tax_control := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.char1(p_index); --exempt_flag
4117 tax_info_rec.xmpt_cert_no := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.exempt_certificate_number(p_index);
4118 tax_info_rec.xmpt_reason := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.exempt_reason(p_index);
4119 tax_info_rec.ship_to_location_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ship_to_location_id(p_index);
4120 tax_info_rec.bill_to_location_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.bill_to_location_id(p_index);
4121 tax_info_rec.extended_amount := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_amt(p_index);
4122 -- in process_tax_rec_f_sql, entered_amount := extended_amount
4123 tax_info_rec.entered_amount := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_amt(p_index);
4124
4125 tax_info_rec.trx_exchange_rate := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.currency_conversion_rate(p_index);
4126 tax_info_rec.trx_currency_code := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_currency_code(p_index);
4127 tax_info_rec.minimum_accountable_unit := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.minimum_accountable_unit(p_index);
4128 tax_info_rec.precision := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.precision(p_index);
4129 tax_info_rec.fob_point := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.FOB_POINT(p_index);
4130 tax_info_rec.taxed_quantity := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_line_quantity(p_index);
4131 tax_info_rec.trx_number := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_number(p_index);
4132 -- tax_info_rec.bill_to_customer_number := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.billing_trading_partner_number(p_index);
4133 -- tax_info_rec.bill_to_customer_name := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.billing_trading_partner_name(p_index);
4134 tax_info_rec.previous_customer_trx_line_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ADJUSTED_DOC_LINE_ID(p_index);
4135 tax_info_rec.previous_customer_trx_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_trx_id(p_index);
4136 tax_info_rec.previous_trx_number := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.Adjusted_doc_number(p_index);
4137 tax_info_rec.trx_line_type := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_line_type(p_index);
4138
4139 -- Bug#5338305
4140 tax_info_rec.adjusted_doc_application_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_application_id(p_index);
4141 tax_info_rec.adjusted_doc_entity_code := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_entity_code(p_index);
4142 tax_info_rec.adjusted_doc_event_class_code := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_event_class_code(p_index);
4143 tax_info_rec.adjusted_doc_trx_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_trx_id(p_index);
4144 tax_info_rec.adjusted_doc_line_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_line_id(p_index);
4145 tax_info_rec.adjusted_doc_number := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_number(p_index);
4146 tax_info_rec.adjusted_doc_date := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_date(p_index);
4147
4148 tax_info_rec.adjusted_doc_trx_level_type := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_trx_level_type(p_index);
4149
4150 -- bug#5350983- added related doc columns
4151 tax_info_rec.related_doc_application_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.related_doc_application_id(p_index);
4152 tax_info_rec.related_doc_entity_code := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.related_doc_entity_code(p_index);
4153 tax_info_rec.related_doc_event_class_code := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.related_doc_event_class_code(p_index);
4154 tax_info_rec.related_doc_trx_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.related_doc_trx_id(p_index);
4155 --tax_info_rec.related_doc_trx_level_type := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.related_doc_trx_level_type(p_index);
4156 /* bug 5639478
4157 tax_info_rec.rel_doc_hdr_trx_user_key1 := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.rel_doc_hdr_trx_user_key1(p_index);
4158 tax_info_rec.rel_doc_hdr_trx_user_key2 := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.rel_doc_hdr_trx_user_key2(p_index);
4159 tax_info_rec.rel_doc_hdr_trx_user_key3 := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.rel_doc_hdr_trx_user_key3(p_index);
4160 tax_info_rec.rel_doc_hdr_trx_user_key4 := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.rel_doc_hdr_trx_user_key4(p_index);
4161 tax_info_rec.rel_doc_hdr_trx_user_key5 := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.rel_doc_hdr_trx_user_key5(p_index);
4162 tax_info_rec.rel_doc_hdr_trx_user_key6 := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.rel_doc_hdr_trx_user_key6(p_index);
4163 */
4164 tax_info_rec.related_doc_number := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.related_doc_number(p_index);
4165 tax_info_rec.related_doc_date := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.related_doc_date(p_index);
4166
4167 tax_info_rec.trx_type_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.receivables_trx_type_id(p_index);
4168 tax_info_rec.ship_from_warehouse_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.Product_org_id(p_index);
4169 --tax_info_rec.poo_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.POO_PARTY_ID(p_index);
4170 --tax_info_rec.poa_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.POA_PARTY_ID(p_index);
4171
4172 tax_info_rec.amount_includes_tax_flag := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_amt_includes_tax_flag(p_index);
4173
4174 -- the following column assignment used to get char/numeric attributes
4175 -- retrieved from tax views, used in LTE. some can be defaulted through
4176 -- LTE validate and default program.
4177
4178
4179 IF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.receivables_trx_type_id(p_index) IS NULL THEN
4180 fnd_message.set_name('AR', 'GENERIC_MESSAGE');
4181 fnd_message.set_token('GENERIC_TEXT',
4182 'Required Parameter Missing: Transaction Type Id');
4183 JL_ZZ_TAX_INTEGRATION_PKG.g_jl_exception_type := 'E';
4184 app_exception.raise_exception;
4185 END IF;
4186
4187 -- Fetch Customer Trx_Type_Id and Tax Calculation Flag
4188 -- If Tax Calculation Flag is unchecked then return.
4189 l_cust_trx_type_id := NULL;
4190 BEGIN
4191 IF (g_level_statement >= g_current_runtime_level) THEN
4192 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Receivables trx type id: '||
4193 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.receivables_trx_type_id(p_index));
4194 END IF;
4195 SELECT INV_TYPE.CUST_TRX_TYPE_ID,
4196 INV_TYPE.TAX_CALCULATION_FLAG
4197 INTO l_cust_trx_type_id,
4198 l_tax_calculation_flag
4199 FROM RA_CUST_TRX_TYPES_ALL INV_TYPE
4200 WHERE INV_TYPE.CUST_TRX_TYPE_ID = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.receivables_trx_type_id(p_index)
4201 AND ORG_ID = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.internal_organization_id(p_index);
4202
4203 EXCEPTION
4204 WHEN NO_DATA_FOUND THEN
4205 fnd_message.set_name('AR', 'GENERIC_MESSAGE');
4206 fnd_message.set_token('GENERIC_TEXT',
4207 'EXCEPTION(NO_DATA_FOUND) : Customer Trx Type Id');
4208 app_exception.raise_exception;
4209 WHEN OTHERS THEN
4210 fnd_message.set_name('AR', 'GENERIC_MESSAGE');
4211 fnd_message.set_token('GENERIC_TEXT',
4212 'EXCEPTION(OTHERS) : Customer Trx Type Id : ' || sqlerrm);
4213 app_exception.raise_exception;
4214 END;
4215
4216 -- Start : Added by ssohal for Bug#8611167
4217 -- In case of CM, Copy the Output TCC, PFC, PC and TBC from Adjusted Invoice
4218 -- if the Output Tax Classification Code is NULL
4219 IF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.OUTPUT_TAX_CLASSIFICATION_CODE(p_index) IS NULL AND
4220 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ADJUSTED_DOC_APPLICATION_ID(p_index) IS NOT NULL THEN
4221 BEGIN
4222 SELECT
4223 output_tax_classification_code,
4224 trx_business_category,
4225 product_fisc_classification,
4226 product_category,
4227 user_defined_fisc_class,
4228 default_taxation_country,
4229 document_sub_type,
4230 line_intended_use,
4231 assessable_value,
4232 product_type
4233 INTO
4234 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.OUTPUT_TAX_CLASSIFICATION_CODE(p_index),
4235 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_BUSINESS_CATEGORY(p_index),
4236 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_FISC_CLASSIFICATION(p_index),
4237 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_CATEGORY(p_index),
4238 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.USER_DEFINED_FISC_CLASS(p_index),
4239 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DEFAULT_TAXATION_COUNTRY(p_index),
4240 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DOCUMENT_SUB_TYPE(p_index),
4241 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LINE_INTENDED_USE(p_index),
4242 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ASSESSABLE_VALUE(p_index),
4243 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_TYPE(p_index)
4244 FROM ZX_LINES_DET_FACTORS
4245 WHERE application_id = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_application_id(p_index)
4246 AND entity_code = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_entity_code(p_index)
4247 AND event_class_code = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_event_class_code(p_index)
4248 AND trx_id = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_trx_id(p_index)
4249 AND trx_line_id = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_line_id(p_index)
4250 AND trx_level_type = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_trx_level_type(p_index);
4251
4252 EXCEPTION
4253 WHEN NO_DATA_FOUND THEN
4254 fnd_message.set_name('AR', 'GENERIC_MESSAGE');
4255 fnd_message.set_token('GENERIC_TEXT',
4256 'EXCEPTION(NO_DATA_FOUND) : No Record found for Adjusted Doc.');
4257 app_exception.raise_exception;
4258 WHEN OTHERS THEN
4259 fnd_message.set_name('AR', 'GENERIC_MESSAGE');
4260 fnd_message.set_token('GENERIC_TEXT',
4261 'EXCEPTION(OTHERS) : Record for Adjusted Doc : ' || sqlerrm);
4262 app_exception.raise_exception;
4263 END;
4264 END IF;
4265 -- End : Added by ssohal for Bug#8611167
4266
4267 IF (NVL(l_tax_calculation_flag,'N') <> 'Y' AND ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.OUTPUT_TAX_CLASSIFICATION_CODE(p_index) is NULL) THEN
4268 IF (g_level_statement >= g_current_runtime_level) THEN
4269 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','populate_tax_struct_lte: ' || 'Tax Calculation Flag is not checked');
4270 END IF;
4271
4272 IF (NVL(tax_info_rec.tax_control,'S') <> 'R') THEN
4273 IF (g_level_statement >= g_current_runtime_level) THEN
4274 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','populate_tax_struct_lte: ' || 'Tax Exempt Flag is ' || tax_info_rec.tax_control);
4275 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','populate_tax_struct_lte: ' || 'VALUES ARE NOT POPULATED');
4276 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','populate_tax_struct_lte ()-');
4277 END IF;
4278 RETURN;
4279 END IF;
4280 END IF;
4281 tax_info_rec.trx_type_id := l_cust_trx_type_id;
4282
4283 -- Fetch System Parameters
4284 l_location_structure_id := sysinfo.sysparam.LOCATION_STRUCTURE_ID;
4285 l_location_segment_num := TO_NUMBER(sysinfo.sysparam.GLOBAL_ATTRIBUTE10);
4286 l_set_of_books_id := sysinfo.sysparam.SET_OF_BOOKS_ID;
4287 l_tax_rounding_allow_override := sysinfo.sysparam.TAX_ROUNDING_ALLOW_OVERRIDE;
4288 l_tax_header_level_flag := sysinfo.sysparam.TAX_HEADER_LEVEL_FLAG;
4289 l_tax_rounding_rule := sysinfo.sysparam.TAX_ROUNDING_RULE;
4290 l_tax_rule_set := sysinfo.sysparam.GLOBAL_ATTRIBUTE13;
4291
4292 tax_info_rec.usern9 := l_location_structure_id;
4293 tax_info_rec.usern10 := l_location_segment_num;
4294 tax_info_rec.userf1 := l_tax_rule_set;
4295
4296 -- Fetch Location Id and Organization Class
4297 l_location_id := NULL;
4298 l_org_class := NULL;
4299
4300 /* -- Commented by ssohal for Bug#8260273
4301 BEGIN
4302 SELECT HRL.LOCATION_ID,
4303 NVL(HRL.GLOBAL_ATTRIBUTE1, 'DEFAULT')
4304 INTO l_location_id,
4305 l_org_class
4306 FROM HR_LOCATIONS_ALL HRL ,
4307 HR_ORGANIZATION_UNITS ORG
4308 WHERE ORG.LOCATION_ID = HRL.LOCATION_ID
4309 --++ nipatel verify this join condition
4310 --++ Condition changed for Bug#7438620
4311 AND ORG.ORGANIZATION_ID = NVL(ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_org_id(p_index),
4312 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.internal_organization_id(p_index));
4313 EXCEPTION
4314 WHEN NO_DATA_FOUND THEN
4315 IF (g_level_unexpected >= g_current_runtime_level) THEN
4316 FND_LOG.STRING(g_level_unexpected,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Could not derive global_attribute1 from hr_locations for org_id: '||
4317 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.internal_organization_id(p_index));
4318 END IF;
4319 fnd_message.set_name('AR', 'GENERIC_MESSAGE');
4320 fnd_message.set_token('GENERIC_TEXT',
4321 'EXCEPTION(NO_DATA_FOUND) : Organization Class');
4322 app_exception.raise_exception;
4323 WHEN OTHERS THEN
4324 fnd_message.set_name('AR', 'GENERIC_MESSAGE');
4325 fnd_message.set_token('GENERIC_TEXT',
4326 'EXCEPTION(OTHERS) : Organization Class : ' || sqlcode||' , '||sqlerrm);
4327 app_exception.raise_exception;
4328 END;
4329 */
4330 -- Start : Code added for Bug#8260273 by ssohal
4331 IF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_org_id(p_index) IS NOT NULL THEN
4332 IF (g_level_statement >= g_current_runtime_level) THEN
4333 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Getting global_Attribute1 from HR Locations for ORG: '||
4334 NVL(ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_org_id(p_index),0));
4335 END IF;
4336
4337 OPEN get_org_class(ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_org_id(p_index));
4338 FETCH get_org_class INTO l_location_id, l_org_class;
4339 CLOSE get_org_class;
4340 END IF;
4341
4342 IF l_org_class IS NULL THEN
4343 IF (g_level_statement >= g_current_runtime_level) THEN
4344 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Getting global_Attribute1 from HR Locations for ORG: '||
4345 NVL(ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.internal_organization_id(p_index),0));
4346 END IF;
4347
4348 OPEN get_org_class(ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.internal_organization_id(p_index));
4349 FETCH get_org_class INTO l_location_id, l_org_class;
4350 IF get_org_class%NOTFOUND THEN
4351 CLOSE get_org_class;
4352 IF (g_level_unexpected >= g_current_runtime_level) THEN
4353 FND_LOG.STRING(g_level_unexpected,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Could not derive global_attribute1 from hr_locations for org_id: '||
4354 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.internal_organization_id(p_index));
4355 END IF;
4356 fnd_message.set_name('AR', 'GENERIC_MESSAGE');
4357 fnd_message.set_token('GENERIC_TEXT','EXCEPTION(NO_DATA_FOUND) : Organization Class');
4358 app_exception.raise_exception;
4359 ELSE
4360 CLOSE get_org_class;
4361 END IF;
4362 END IF;
4363
4364 IF l_org_class IS NULL THEN
4365 l_org_class := 'DEFAULT';
4366 END IF;
4367 -- End : Code added for Bug#8260273 by ssohal
4368
4369 tax_info_rec.usern4 := l_location_id;
4370 tax_info_rec.userf10 := l_org_class;
4371
4372 tax_info_rec.tax_code := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.OUTPUT_TAX_CLASSIFICATION_CODE(p_index);
4373
4374 IF (g_level_statement >= g_current_runtime_level) THEN
4375 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','Getting attributes from AR_VAT_TAX_ALL for tax_code: '||
4376 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.OUTPUT_TAX_CLASSIFICATION_CODE(p_index));
4377 END IF;
4378
4379 -- Fetch AR_VAT_TAX details when tax_code is not NULL
4380 l_taxable_basis := NULL;
4381 l_tax_calculation_plsql_block := NULL;
4382 l_tax_type := NULL;
4383 l_vat_tax_id := NULL;
4384 l_tax_category_id := NULL; -- bug 6824850
4385
4386 IF (g_level_statement >= g_current_runtime_level) THEN
4387 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','l_set_of_books_id: '||l_set_of_books_id);
4388 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','tax_code: '||ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.OUTPUT_TAX_CLASSIFICATION_CODE(p_index));
4389 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','trx_Date: '||tax_info_rec.trx_date);
4390 END IF;
4391
4392 -- bug 6824850: select only if tax code is available
4393 IF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.OUTPUT_TAX_CLASSIFICATION_CODE(p_index) IS NOT NULL THEN
4394
4395 BEGIN
4396 SELECT TAXABLE_BASIS,
4397 TAX_CALCULATION_PLSQL_BLOCK,
4398 TAX_TYPE,
4399 decode(tax_type,'TAX_GROUP',vat_tax_id,null),
4400 decode(tax_type,'TAX_GROUP',NULL,
4401 decode (length(translate(global_attribute1,
4402 '0123456789 ', '0123456789')),
4403 length(translate(global_attribute1, '0123456789
4404 ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_-,:.',
4405 '0123456789')), global_attribute1, -99))
4406 INTO l_taxable_basis,
4407 l_tax_calculation_plsql_block,
4408 l_tax_type,
4409 l_vat_tax_id,
4410 l_tax_category_id
4411 FROM ar_vat_tax_all_b
4412 WHERE set_of_books_id = l_set_of_books_id
4413 AND tax_code = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.OUTPUT_TAX_CLASSIFICATION_CODE(p_index)
4414 AND tax_info_rec.trx_date BETWEEN start_date
4415 AND NVL(end_date, TO_DATE( '31122199', 'DDMMYYYY'))
4416 AND NVL(enabled_flag,'Y') = 'Y'
4417 AND NVL(tax_class,'O') = 'O'
4418 AND ORG_ID = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.internal_organization_id(p_index) ;
4419 EXCEPTION
4420 WHEN NO_DATA_FOUND THEN
4421 fnd_message.set_name('AR', 'GENERIC_MESSAGE');
4422 fnd_message.set_token('GENERIC_TEXT',
4423 'EXCEPTION(NO_DATA_FOUND) : Tax Code');
4424 app_exception.raise_exception;
4425 WHEN OTHERS THEN
4426 fnd_message.set_name('AR', 'GENERIC_MESSAGE');
4427 fnd_message.set_token('GENERIC_TEXT',
4428 'EXCEPTION(OTHERS) : Tax Code : ' || sqlerrm);
4429 app_exception.raise_exception;
4430 END;
4431 -- Bug 4028732 comment out END IF;
4432
4433 END IF; -- bug 6824850
4434
4435 tax_info_rec.taxable_basis := l_taxable_basis;
4436 tax_info_rec.tax_calculation_plsql_block :=
4437 l_tax_calculation_plsql_block;
4438 tax_info_rec.amount_includes_tax_flag := 'N';
4439 tax_info_rec.userf7 := l_tax_type;
4440 tax_info_rec.usern1 := l_tax_category_id;
4441 tax_info_rec.usern2 := l_vat_tax_id;
4442 tax_info_rec.usern5 := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RELATED_DOC_TRX_ID(p_index);
4443
4444 -- Columns with Values from Parameters
4445 tax_info_rec.trx_exchange_rate := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CURRENCY_CONVERSION_RATE(p_index);
4446
4447
4448 --++ verify that invoicing_rule_id, payment_term_id are not used in LTE
4449 -- tax_info_rec.invoicing_rule_id := p_invoicing_rule_id;
4450 -- tax_info_rec.payment_term_id := p_payment_term_id;
4451
4452 l_global_attribute5 := nvl(
4453 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_FISC_CLASSIFICATION(p_index),
4454 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_CATEGORY(p_index));
4455 l_global_attribute6 := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_BUSINESS_CATEGORY(p_index);
4456
4457 tax_info_rec.userf2 := l_global_attribute5;
4458 tax_info_rec.userf9 := l_global_attribute6;
4459
4460
4461 -- Columns with Default or NULL values
4462 /*
4463 tax_info_rec.customer_trx_charge_line_id := to_number(NULL);
4464 tax_info_rec.link_to_cust_trx_line_id := to_number(NULL);
4465 tax_info_rec.gl_date := NULL;
4466 tax_info_rec.tax_rate := to_number(NULL);
4467 tax_info_rec.tax_amount :=to_number(NULL);
4468 tax_info_rec.memo_line_id := NULL;
4469 tax_info_rec.default_ussgl_transaction_code := NULL;
4470 tax_info_rec.default_ussgl_trx_code_context := NULL;
4471 tax_info_rec.poo_code := NULL;
4472 tax_info_rec.poa_code := NULL;
4473 tax_info_rec.ship_from_code := NULL;
4474 tax_info_rec.ship_to_code := NULL;
4475 tax_info_rec.part_no := NULL;
4476 tax_info_rec.tax_line_number := to_number(null);
4477 tax_info_rec.tax_precedence := NULL;
4478 tax_info_rec.tax_exemption_id := NULL;
4479 tax_info_rec.item_exception_rate_id := NULL;
4480 tax_info_rec.vdrctrl_exempt := NULL;
4481 tax_info_rec.userf3 := NULL;
4482 tax_info_rec.userf4 := NULL; --userf4 can be derived from site_use id, for OM it is 'OE';
4483 tax_info_rec.userf5 := NULL;
4484 tax_info_rec.usern3 := NULL;
4485 tax_info_rec.usern5 := NULL;
4486 tax_info_rec.trx_number := to_number(NULL);
4487 tax_info_rec.previous_customer_trx_line_id := to_number(NULL);
4488 tax_info_rec.previous_customer_trx_id := to_number(NULL);
4489 tax_info_rec.previous_trx_number := to_number(NULL);
4490 tax_info_rec.trx_line_type := NULL;
4491 tax_info_rec.division_code := NULL;
4492 tax_info_rec.company_code := NULL;
4493 tax_info_rec.vat_tax_id := to_number(NULL);
4494 tax_info_rec.poo_id := to_number(NULL);
4495 tax_info_rec.poa_id := to_number(NULL);
4496 tax_info_rec.payment_terms_discount_percent := NULL;
4497 tax_info_rec.userf8 := NULL;
4498 */
4499
4500 tax_info_rec.qualifier := 'ALL';
4501 tax_info_rec.calculate_tax := 'Y';
4502 tax_info_rec.audit_flag := 'N';
4503 tax_info_rec.usern6 := to_number(to_char(tax_info_rec.trx_date, 'YYYYMMDD'));
4504 tax_info_rec.usern7 := 2;
4505
4506 -- bug 6824850
4507 IF (g_level_statement >= g_current_runtime_level) THEN
4508 FND_LOG.STRING(g_level_statement,
4509 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_tax_info_rec',
4510 'userf2 : '|| tax_info_rec.userf2);
4511 FND_LOG.STRING(g_level_statement,
4512 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_tax_info_rec',
4513 'userf9 : '|| tax_info_rec.userf9);
4514 END IF;
4515
4516
4517 IF (g_level_procedure >= g_current_runtime_level ) THEN
4518 FND_LOG.STRING(g_level_procedure,
4519 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_tax_info_rec.END',
4520 'ZX_PRODUCT_INTEGRATION_PKG.prepare_tax_info_rec(-)');
4521 END IF;
4522 EXCEPTION
4523 WHEN OTHERS THEN
4524 IF (g_level_unexpected >= g_current_runtime_level ) THEN
4525 FND_LOG.STRING(g_level_unexpected,
4526 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_tax_info_rec',
4527 sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80));
4528 END IF;
4529
4530 END prepare_tax_info_rec;
4531
4532 /*===========================================================================+
4533 | PROCEDURE |
4534 | prepare_detail_tax_line |
4535 | |
4536 | DESCRIPTION |
4537 | Bulk insert of the tax_info_rec output lines into detail_tax_lines_gt. |
4538 | SCOPE - PUBLIC |
4539 | |
4540 | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED |
4541 | |
4542 | CALLED FROM |
4543 | |
4544 | NOTES |
4545 | |
4546 | MODIFICATION HISTORY |
4547 | |
4548 +===========================================================================*/
4549
4550 PROCEDURE prepare_detail_tax_line(
4551 p_event_class_rec IN zx_api_pub.event_class_rec_type,
4552 p_id_dist_tbl IN NUMBER,
4553 p_new_row_num IN NUMBER,
4554 p_tax_out_rec IN tax_info_rec_TYPE
4555 ) IS
4556
4557 l_user_id NUMBER;
4558 l_date DATE;
4559 l_return_status VARCHAR2(30);
4560 l_error_buffer VARCHAR2(240);
4561 l_tax_regime_rec ZX_GLOBAL_STRUCTURES_PKG.tax_regime_rec_type;
4562 l_tax_rec ZX_TDS_UTILITIES_PKG.zx_tax_info_cache_rec;
4563 l_tax_status_rec ZX_TDS_UTILITIES_PKG.zx_status_info_rec;
4564 l_tax_rate_rec ZX_TDS_UTILITIES_PKG.zx_rate_info_rec_type;
4565 l_tax_jurisdiction_rec ZX_TDS_UTILITIES_PKG.zx_jur_info_cache_rec_type;
4566 l_tax_rate_id ZX_RATES_B.tax_rate_id%type;
4567
4568
4569
4570 BEGIN
4571
4572 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
4573 IF (g_level_procedure >= g_current_runtime_level ) THEN
4574 FND_LOG.STRING(g_level_procedure,
4575 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line.BEGIN',
4576 'ZX_PRODUCT_INTEGRATION_PKG: prepare_detail_tax_line (+)');
4577 END IF;
4578
4579 l_user_id := fnd_global.user_id;
4580 l_date := sysdate;
4581
4582 SELECT zx_lines_s.NEXTVAL
4583 INTO ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_line_id
4584 FROM dual;
4585
4586 -- standard who columns
4587 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).CREATED_BY := l_user_id ;
4588 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).CREATION_DATE := l_date ; -- creation_date
4589 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).LAST_UPDATED_BY := l_user_id ;
4590 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).LAST_UPDATE_DATE := l_date ; -- update_date
4591
4592 -- below are read from tax_info_rec
4593
4594 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).adjusted_doc_tax_line_id := p_tax_out_rec.adjusted_doc_tax_line_id;
4595
4596
4597 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).trx_line_date := p_tax_out_rec.trx_date;
4598 --ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).FOB_POINT := p_tax_out_rec.fob_point;
4599 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).ROUNDING_LEVEL_CODE := p_tax_out_rec.ROUNDING_LEVEL_CODE; --tax_header_level_flag; --++?where to set this value
4600 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).ROUNDING_RULE_CODE := p_tax_out_rec.ROUNDING_RULE_CODE; --tax_rounding_rule;
4601 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_line_number := p_tax_out_rec.tax_line_number ;
4602 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_AMT := p_tax_out_rec.TAX_AMOUNT;
4603 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAXABLE_AMT := p_tax_out_rec.TAXABLE_AMOUNT; -- ? check if LTE set it or not.
4604
4605 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).UNROUNDED_TAXABLE_AMT := p_tax_out_rec.UNROUNDED_TAXABLE_AMT;
4606 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).UNROUNDED_TAX_AMT := p_tax_out_rec.UNROUNDED_TAX_AMT;
4607 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).CAL_TAX_AMT := p_tax_out_rec.TAX_AMOUNT;
4608
4609 -- columns added to tax_info_rec
4610 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_DATE := p_tax_out_rec.tax_date ;
4611 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_DETERMINE_DATE := p_tax_out_rec.tax_determine_date;
4612 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_POINT_DATE := p_tax_out_rec.tax_point_date;
4613
4614 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_REGIME_CODE := p_tax_out_rec.TAX_REGIME_CODE ;
4615 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_REGIME_ID := p_tax_out_rec.TAX_REGIME_ID ;
4616 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_STATUS_CODE := p_tax_out_rec.TAX_STATUS_CODE ;
4617 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_STATUS_ID := p_tax_out_rec.TAX_STATUS_ID ;
4618 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX := p_tax_out_rec.TAX ;
4619 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_ID := p_tax_out_rec.TAX_ID ;
4620 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_RATE_CODE := p_tax_out_rec.TAX_RATE_CODE ;
4621 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_RATE_ID := p_tax_out_rec.TAX_RATE_ID ;
4622 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_RATE := p_tax_out_rec.TAX_RATE ;
4623 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_type_code := p_tax_out_rec.tax_type_code ;
4624
4625
4626 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_CURRENCY_CODE := p_tax_out_rec.TAX_CURRENCY_CODE;
4627 --
4628 -- Bug#5439803- use tax determine date for tax currency conversion date
4629 -- if it is not credit memo
4630 --
4631 IF pg_cm_type = 'Applied' THEN
4632 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_CURRENCY_CONVERSION_DATE := p_tax_out_rec.TAX_CURRENCY_CONVERSION_DATE;
4633 ELSE
4634 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_CURRENCY_CONVERSION_DATE := p_tax_out_rec.tax_determine_date;
4635 END IF;
4636
4637 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_CURRENCY_CONVERSION_TYPE := p_tax_out_rec.TAX_CURRENCY_CONVERSION_TYPE;
4638 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_CURRENCY_CONVERSION_RATE := p_tax_out_rec.TAX_CURRENCY_CONVERSION_RATE;
4639
4640 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_BASE_MODIFIER_RATE := p_tax_out_rec.TAX_BASE_MODIFIER_RATE; --global_attribute12;
4641 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).LEGAL_JUSTIFICATION_TEXT1 := p_tax_out_rec.LEGAL_JUSTIFICATION_TEXT1; --Global_attribute8;
4642 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).LEGAL_JUSTIFICATION_TEXT2 := p_tax_out_rec.LEGAL_JUSTIFICATION_TEXT2; --Global_attribute9;
4643 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).LEGAL_JUSTIFICATION_TEXT3 := p_tax_out_rec.LEGAL_JUSTIFICATION_TEXT3; --Global_attribute10;
4644
4645
4646 -- Populate the global_attribute columns in detailed tax lines based on output tax record returned by LTE
4647 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).global_attribute1 := p_tax_out_rec.global_attribute1;
4648 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).global_attribute2 := p_tax_out_rec.global_attribute2;
4649 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).global_attribute3 := p_tax_out_rec.global_attribute3;
4650 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).global_attribute4 := p_tax_out_rec.global_attribute4;
4651 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).global_attribute5 := p_tax_out_rec.global_attribute5;
4652 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).global_attribute6 := p_tax_out_rec.global_attribute6;
4653 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).global_attribute7 := p_tax_out_rec.global_attribute7;
4654 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).global_attribute8 := p_tax_out_rec.global_attribute8;
4655 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).global_attribute9 := p_tax_out_rec.global_attribute9;
4656 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).global_attribute10 := p_tax_out_rec.global_attribute10;
4657 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).global_attribute11 := p_tax_out_rec.global_attribute11;
4658 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).global_attribute12 := p_tax_out_rec.global_attribute12;
4659 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).global_attribute13 := p_tax_out_rec.global_attribute13;
4660 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).global_attribute14 := p_tax_out_rec.global_attribute14;
4661 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).global_attribute15 := p_tax_out_rec.global_attribute15;
4662 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).global_attribute16 := p_tax_out_rec.global_attribute16;
4663 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).global_attribute17 := p_tax_out_rec.global_attribute17;
4664 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).global_attribute18 := p_tax_out_rec.global_attribute18;
4665 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).global_attribute19 := p_tax_out_rec.global_attribute19;
4666 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).global_attribute20 := p_tax_out_rec.global_attribute20;
4667 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).global_attribute_category := p_tax_out_rec.global_attribute_category;
4668
4669
4670 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).ROUNDING_LVL_PARTY_TAX_PROF_ID := p_tax_out_rec.ROUNDING_LVL_PARTY_TAX_PROF_ID;
4671 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).ROUNDING_LVL_PARTY_TYPE := p_tax_out_rec.ROUNDING_LVL_PARTY_TYPE;
4672
4673 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).MRC_TAX_LINE_FLAG := NVL(p_tax_out_rec.MRC_TAX_LINE_FLAG ,'N');
4674 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).OFFSET_FLAG := NVL(p_tax_out_rec.OFFSET_FLAG ,'N');
4675 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).PROCESS_FOR_RECOVERY_FLAG := NVL(p_tax_out_rec.PROCESS_FOR_RECOVERY_FLAG ,'N');
4676 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).COMPOUNDING_TAX_FLAG := NVL(p_tax_out_rec.COMPOUNDING_TAX_FLAG ,'N');
4677 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_APPORTIONMENT_FLAG := NVL(p_tax_out_rec.TAX_APPORTIONMENT_FLAG ,'N');
4678 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).HISTORICAL_FLAG := NVL(p_tax_out_rec.HISTORICAL_FLAG ,'N');
4679 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).CANCEL_FLAG := NVL(p_tax_out_rec.CANCEL_FLAG ,'N');
4680 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).PURGE_FLAG := NVL(p_tax_out_rec.PURGE_FLAG ,'N');
4681 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).DELETE_FLAG := NVL(p_tax_out_rec.DELETE_FLAG ,'N');
4682 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).SELF_ASSESSED_FLAG := NVL(p_tax_out_rec.SELF_ASSESSED_FLAG ,'N');
4683 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).OVERRIDDEN_FLAG := NVL(p_tax_out_rec.OVERRIDDEN_FLAG ,'N');
4684 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).MANUALLY_ENTERED_FLAG := NVL(p_tax_out_rec.MANUALLY_ENTERED_FLAG ,'N');
4685 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).REPORTING_ONLY_FLAG := NVL(p_tax_out_rec.REPORTING_ONLY_FLAG ,'N');
4686 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).FREEZE_UNTIL_OVERRIDDEN_FLAG := NVL(p_tax_out_rec.FREEZE_UNTIL_OVERRIDDEN_FLAG ,'N');
4687 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).COPIED_FROM_OTHER_DOC_FLAG := NVL(p_tax_out_rec.COPIED_FROM_OTHER_DOC_FLAG ,'N');
4688 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).RECALC_REQUIRED_FLAG := NVL(p_tax_out_rec.RECALC_REQUIRED_FLAG ,'N');
4689 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).SETTLEMENT_FLAG := NVL(p_tax_out_rec.SETTLEMENT_FLAG ,'N');
4690 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).ITEM_DIST_CHANGED_FLAG := NVL(p_tax_out_rec.ITEM_DIST_CHANGED_FLAG ,'N');
4691 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).ASSOCIATED_CHILD_FROZEN_FLAG := NVL(p_tax_out_rec.ASSOCIATED_CHILD_FROZEN_FLAG ,'N');
4692 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_ONLY_LINE_FLAG := NVL(p_tax_out_rec.TAX_ONLY_LINE_FLAG ,'N');
4693 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).ENFORCE_FROM_NATURAL_ACCT_FLAG := NVL(p_tax_out_rec.ENFORCE_FROM_NATURAL_ACCT_FLAG ,'N');
4694 --ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_AMT_INCLUDED_FLAG := NVL(p_tax_out_rec.amount_includes_tax_flag, 'N');
4695 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_AMT_INCLUDED_FLAG := NVL(p_tax_out_rec.TAX_AMT_INCLUDED_FLAG, 'N');
4696 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).compounding_dep_tax_flag := NVL(p_tax_out_rec.compounding_dep_tax_flag, 'N');
4697
4698 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_APPORTIONMENT_LINE_NUMBER := NVL(p_tax_out_rec.TAX_APPORTIONMENT_LINE_NUMBER , 1 );
4699 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).RECORD_TYPE_CODE := 'ETAX_CREATED';
4700
4701 -- exempt columns N/A for LTE
4702 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).exempt_certificate_number := zx_global_structures_pkg.trx_line_dist_tbl.exempt_certificate_number(p_id_dist_tbl);
4703 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).exempt_reason := zx_global_structures_pkg.trx_line_dist_tbl.exempt_reason(p_id_dist_tbl);
4704 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_EXEMPTION_ID := p_tax_out_rec.tax_exemption_id ;
4705
4706 -- columns read from zx_global_structures_pkg.trx_line_dist_tbl
4707 -- Commneted the populated of Tax_Code column because of column width mismatch : Bug#8722088
4708 -- ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_CODE := zx_global_structures_pkg.trx_line_dist_tbl.output_tax_classification_code(p_id_dist_tbl);
4709 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).ADJUSTED_DOC_LINE_ID := zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_LINE_ID(p_id_dist_tbl);
4710 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).adjusted_doc_trx_id := zx_global_structures_pkg.trx_line_dist_tbl.adjusted_doc_trx_id(p_id_dist_tbl);
4711 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).Adjusted_doc_number := zx_global_structures_pkg.trx_line_dist_tbl.Adjusted_doc_number(p_id_dist_tbl);
4712
4713 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TRX_ID := zx_global_structures_pkg.trx_line_dist_tbl.TRX_ID(p_id_dist_tbl);
4714 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TRX_LINE_ID := zx_global_structures_pkg.trx_line_dist_tbl.TRX_LINE_ID(p_id_dist_tbl);
4715 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TRX_LEVEL_TYPE := zx_global_structures_pkg.trx_line_dist_tbl.TRX_LEVEL_TYPE(p_id_dist_tbl);
4716 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TRX_DATE := zx_global_structures_pkg.trx_line_dist_tbl.TRX_DATE(p_id_dist_tbl);
4717 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).CONTENT_OWNER_ID := zx_global_structures_pkg.trx_line_dist_tbl.FIRST_PTY_ORG_ID(p_id_dist_tbl) ;
4718 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).APPLICATION_ID := zx_global_structures_pkg.trx_line_dist_tbl.APPLICATION_ID(p_id_dist_tbl);
4719 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).INTERNAL_ORGANIZATION_ID := zx_global_structures_pkg.trx_line_dist_tbl.INTERNAL_ORGANIZATION_ID(p_id_dist_tbl);
4720 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).INTERNAL_ORG_LOCATION_ID := zx_global_structures_pkg.trx_line_dist_tbl.INTERNAL_ORG_LOCATION_ID(p_id_dist_tbl);
4721 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).ENTITY_CODE := zx_global_structures_pkg.trx_line_dist_tbl.ENTITY_CODE(p_id_dist_tbl);
4722 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).EVENT_CLASS_CODE := zx_global_structures_pkg.trx_line_dist_tbl.EVENT_CLASS_CODE(p_id_dist_tbl);
4723 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).EVENT_TYPE_CODE := zx_global_structures_pkg.trx_line_dist_tbl.EVENT_TYPE_CODE(p_id_dist_tbl);
4724 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).DOC_EVENT_STATUS := zx_global_structures_pkg.trx_line_dist_tbl.DOC_EVENT_STATUS(p_id_dist_tbl);
4725 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).LEGAL_ENTITY_ID := zx_global_structures_pkg.trx_line_dist_tbl.LEGAL_ENTITY_ID(p_id_dist_tbl);
4726 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).ESTABLISHMENT_ID := zx_global_structures_pkg.trx_line_dist_tbl.ESTABLISHMENT_ID(p_id_dist_tbl);
4727 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TRX_LEVEL_TYPE := zx_global_structures_pkg.trx_line_dist_tbl.TRX_LEVEL_TYPE(p_id_dist_tbl);
4728 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).UNIT_PRICE := zx_global_structures_pkg.trx_line_dist_tbl.UNIT_PRICE(p_id_dist_tbl);
4729 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).line_amt := zx_global_structures_pkg.trx_line_dist_tbl.line_amt(p_id_dist_tbl);
4730 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).trx_line_quantity := zx_global_structures_pkg.trx_line_dist_tbl.trx_line_quantity(p_id_dist_tbl);
4731 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_EVENT_CLASS_CODE := zx_global_structures_pkg.trx_line_dist_tbl.TAX_EVENT_CLASS_CODE(p_id_dist_tbl);
4732 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_EVENT_TYPE_CODE := zx_global_structures_pkg.trx_line_dist_tbl.TAX_EVENT_TYPE_CODE(p_id_dist_tbl);
4733 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TRX_LINE_NUMBER := zx_global_structures_pkg.trx_line_dist_tbl.trx_line_number(p_id_dist_tbl);
4734 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).LINE_ASSESSABLE_VALUE := zx_global_structures_pkg.trx_line_dist_tbl.ASSESSABLE_VALUE(p_id_dist_tbl);
4735 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TRX_ID_LEVEL2 := zx_global_structures_pkg.trx_line_dist_tbl.TRX_ID_LEVEL2(p_id_dist_tbl) ;
4736 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TRX_ID_LEVEL3 := zx_global_structures_pkg.trx_line_dist_tbl.TRX_ID_LEVEL3(p_id_dist_tbl) ;
4737 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TRX_ID_LEVEL4 := zx_global_structures_pkg.trx_line_dist_tbl.TRX_ID_LEVEL4(p_id_dist_tbl) ;
4738 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TRX_ID_LEVEL5 := zx_global_structures_pkg.trx_line_dist_tbl.TRX_ID_LEVEL5(p_id_dist_tbl) ;
4739 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TRX_ID_LEVEL6 := zx_global_structures_pkg.trx_line_dist_tbl.TRX_ID_LEVEL6(p_id_dist_tbl) ;
4740
4741 /** not found in trx_line_dist_tbl
4742 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TRX_USER_KEY_LEVEL1 := zx_global_structures_pkg.trx_line_dist_tbl.TRX_USER_KEY_LEVEL1(p_id_dist_tbl);
4743 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TRX_USER_KEY_LEVEL2 := zx_global_structures_pkg.trx_line_dist_tbl.TRX_USER_KEY_LEVEL2(p_id_dist_tbl);
4744 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TRX_USER_KEY_LEVEL3 := zx_global_structures_pkg.trx_line_dist_tbl.TRX_USER_KEY_LEVEL3(p_id_dist_tbl);
4745 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TRX_USER_KEY_LEVEL4 := zx_global_structures_pkg.trx_line_dist_tbl.TRX_USER_KEY_LEVEL4(p_id_dist_tbl);
4746 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TRX_USER_KEY_LEVEL5 := zx_global_structures_pkg.trx_line_dist_tbl.TRX_USER_KEY_LEVEL5(p_id_dist_tbl);
4747 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TRX_USER_KEY_LEVEL6 := zx_global_structures_pkg.trx_line_dist_tbl.TRX_USER_KEY_LEVEL6(p_id_dist_tbl);
4748 */
4749
4750 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TRX_CURRENCY_CODE := zx_global_structures_pkg.trx_line_dist_tbl.TRX_CURRENCY_CODE(p_id_dist_tbl);
4751 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).CURRENCY_CONVERSION_DATE := zx_global_structures_pkg.trx_line_dist_tbl.CURRENCY_CONVERSION_DATE(p_id_dist_tbl);
4752 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).CURRENCY_CONVERSION_TYPE := zx_global_structures_pkg.trx_line_dist_tbl.CURRENCY_CONVERSION_TYPE(p_id_dist_tbl);
4753 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).CURRENCY_CONVERSION_RATE := zx_global_structures_pkg.trx_line_dist_tbl.CURRENCY_CONVERSION_RATE(p_id_dist_tbl);
4754
4755 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).LEDGER_ID := zx_global_structures_pkg.trx_line_dist_tbl.LEDGER_ID(p_id_dist_tbl) ;
4756 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).minimum_accountable_unit := zx_global_structures_pkg.trx_line_dist_tbl.MINIMUM_ACCOUNTABLE_UNIT(p_id_dist_tbl);
4757 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).precision := zx_global_structures_pkg.trx_line_dist_tbl.PRECISION(p_id_dist_tbl) ;
4758
4759 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).trx_number := zx_global_structures_pkg.trx_line_dist_tbl.TRX_NUMBER(p_id_dist_tbl) ;
4760 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).HQ_ESTB_PARTY_TAX_PROF_ID := zx_global_structures_pkg.trx_line_dist_tbl.HQ_ESTB_PARTY_TAX_PROF_ID(p_id_dist_tbl) ;
4761
4762 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).REF_DOC_APPLICATION_ID := zx_global_structures_pkg.trx_line_dist_tbl.REF_DOC_APPLICATION_ID(p_id_dist_tbl);
4763 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).REF_DOC_ENTITY_CODE := zx_global_structures_pkg.trx_line_dist_tbl.REF_DOC_ENTITY_CODE(p_id_dist_tbl);
4764 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).REF_DOC_EVENT_CLASS_CODE := zx_global_structures_pkg.trx_line_dist_tbl.REF_DOC_EVENT_CLASS_CODE(p_id_dist_tbl);
4765 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).REF_DOC_TRX_ID := zx_global_structures_pkg.trx_line_dist_tbl.REF_DOC_TRX_ID(p_id_dist_tbl);
4766 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).REF_DOC_LINE_ID := zx_global_structures_pkg.trx_line_dist_tbl.REF_DOC_LINE_ID(p_id_dist_tbl);
4767 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).REF_DOC_TRX_LEVEL_TYPE := zx_global_structures_pkg.trx_line_dist_tbl.REF_DOC_TRX_LEVEL_TYPE(p_id_dist_tbl);
4768 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).REF_DOC_LINE_QUANTITY := zx_global_structures_pkg.trx_line_dist_tbl.REF_DOC_LINE_QUANTITY(p_id_dist_tbl);
4769
4770 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).APPLIED_FROM_APPLICATION_ID := zx_global_structures_pkg.trx_line_dist_tbl.APPLIED_FROM_APPLICATION_ID(p_id_dist_tbl);
4771 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).APPLIED_FROM_EVENT_CLASS_CODE := zx_global_structures_pkg.trx_line_dist_tbl.APPLIED_FROM_EVENT_CLASS_CODE(p_id_dist_tbl);
4772 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).APPLIED_FROM_ENTITY_CODE := zx_global_structures_pkg.trx_line_dist_tbl.APPLIED_FROM_ENTITY_CODE(p_id_dist_tbl);
4773 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).APPLIED_FROM_TRX_ID := zx_global_structures_pkg.trx_line_dist_tbl.APPLIED_FROM_TRX_ID(p_id_dist_tbl);
4774 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).APPLIED_FROM_LINE_ID := zx_global_structures_pkg.trx_line_dist_tbl.APPLIED_FROM_LINE_ID(p_id_dist_tbl);
4775 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).APPLIED_FROM_TRX_LEVEL_TYPE := zx_global_structures_pkg.trx_line_dist_tbl.APPLIED_FROM_TRX_LEVEL_TYPE(p_id_dist_tbl);
4776
4777 /** not found in trx_line_dist_tbl ? check with TSRM team
4778 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).APPLIED_FROM_TRX_NUMBER := zx_global_structures_pkg.trx_line_dist_tbl.APPLIED_FROM_TRX_NUMBER(p_id_dist_tbl);
4779 */
4780
4781 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).ADJUSTED_DOC_APPLICATION_ID := zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_APPLICATION_ID(p_id_dist_tbl);
4782 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).ADJUSTED_DOC_ENTITY_CODE := zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_ENTITY_CODE (p_id_dist_tbl);
4783 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).ADJUSTED_DOC_EVENT_CLASS_CODE := zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_EVENT_CLASS_CODE(p_id_dist_tbl);
4784 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).ADJUSTED_DOC_TRX_ID := zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_TRX_ID(p_id_dist_tbl);
4785 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).ADJUSTED_DOC_LINE_ID := zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_LINE_ID(p_id_dist_tbl);
4786 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).ADJUSTED_DOC_TRX_LEVEL_TYPE := zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_TRX_LEVEL_TYPE(p_id_dist_tbl);
4787 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).ADJUSTED_DOC_NUMBER := zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_NUMBER(p_id_dist_tbl);
4788 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).ADJUSTED_DOC_DATE := zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_DATE(p_id_dist_tbl);
4789 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).APPLIED_TO_APPLICATION_ID := zx_global_structures_pkg.trx_line_dist_tbl.APPLIED_TO_APPLICATION_ID(p_id_dist_tbl);
4790 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).APPLIED_TO_EVENT_CLASS_CODE := zx_global_structures_pkg.trx_line_dist_tbl.APPLIED_TO_EVENT_CLASS_CODE(p_id_dist_tbl);
4791 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).APPLIED_TO_ENTITY_CODE := zx_global_structures_pkg.trx_line_dist_tbl.APPLIED_TO_ENTITY_CODE(p_id_dist_tbl);
4792 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).APPLIED_TO_TRX_ID := zx_global_structures_pkg.trx_line_dist_tbl.APPLIED_TO_TRX_ID(p_id_dist_tbl);
4793 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).APPLIED_TO_LINE_ID := zx_global_structures_pkg.trx_line_dist_tbl.APPLIED_TO_TRX_LINE_ID(p_id_dist_tbl);
4794 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).APPLIED_TO_TRX_LEVEL_TYPE := zx_global_structures_pkg.trx_line_dist_tbl.APPLIED_TO_TRX_LEVEL_TYPE(p_id_dist_tbl);
4795 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TRX_LINE_DATE := zx_global_structures_pkg.trx_line_dist_tbl.TRX_LINE_DATE(p_id_dist_tbl);
4796 -- LTE view should populate the following columns
4797 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).RELATED_DOC_APPLICATION_ID := zx_global_structures_pkg.trx_line_dist_tbl.RELATED_DOC_APPLICATION_ID(p_id_dist_tbl);
4798 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).RELATED_DOC_ENTITY_CODE := zx_global_structures_pkg.trx_line_dist_tbl.RELATED_DOC_ENTITY_CODE(p_id_dist_tbl);
4799 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).RELATED_DOC_EVENT_CLASS_CODE := zx_global_structures_pkg.trx_line_dist_tbl.RELATED_DOC_EVENT_CLASS_CODE(p_id_dist_tbl);
4800 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).RELATED_DOC_TRX_ID := zx_global_structures_pkg.trx_line_dist_tbl.RELATED_DOC_TRX_ID(p_id_dist_tbl);
4801 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).RELATED_DOC_NUMBER := zx_global_structures_pkg.trx_line_dist_tbl.RELATED_DOC_NUMBER(p_id_dist_tbl);
4802 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).RELATED_DOC_DATE := zx_global_structures_pkg.trx_line_dist_tbl.RELATED_DOC_DATE(p_id_dist_tbl);
4803
4804
4805 IF (g_level_statement >= g_current_runtime_level ) THEN
4806 FND_LOG.STRING(g_level_statement,
4807 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line',
4808 'Calling ZX_TDS_UTILITIES_PKG.get_tax_cache_info to populate tax_cache...');
4809 END IF;
4810
4811 -- populate tax_regime_cache_info
4812 --
4813 -- Bug#5395227- get tax_regime_id if it is null
4814 --
4815 IF p_tax_out_rec.tax_regime_id IS NULL THEN
4816 ZX_TDS_UTILITIES_PKG.get_regime_cache_info(
4817 p_tax_out_rec.tax_regime_code,
4818 p_tax_out_rec.TRX_DATE,
4819 l_tax_regime_rec,
4820 l_return_status,
4821 l_error_buffer);
4822
4823 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
4824 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
4825 p_new_row_num).tax_regime_id := l_tax_regime_rec.tax_regime_id;
4826
4827 ELSE
4828 IF (g_level_unexpected >= g_current_runtime_level ) THEN
4829 FND_LOG.STRING(g_level_unexpected,
4830 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line',
4831 'Incorrect return_status after calling ' ||
4832 'ZX_TDS_UTILITIES_PKG.get_regime_cache_info()');
4833 FND_LOG.STRING(g_level_unexpected,
4834 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line',
4835 'RETURN_STATUS = ' || l_return_status);
4836 FND_LOG.STRING(g_level_unexpected,
4837 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line.END',
4838 'ZX_PRODUCT_INTEGRATION_PKG.' ||
4839 'prepare_detail_tax_line(-)');
4840 END IF;
4841 RETURN;
4842 END IF;
4843 ELSE
4844 -- Bug#5395227
4845 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
4846 p_new_row_num).tax_regime_id := p_tax_out_rec.tax_regime_id;
4847 END IF;
4848
4849 -- populate tax_cache in Tax Determination Services for tail end processing
4850 -- Bug#5395227- call cache structure to get place of supply
4851 -- type code
4852 --
4853 ZX_TDS_UTILITIES_PKG.get_tax_cache_info(
4854 p_tax_regime_code => p_tax_out_rec.TAX_REGIME_CODE,
4855 p_tax => p_tax_out_rec.TAX,
4856 p_tax_determine_date => p_tax_out_rec.TRX_DATE,
4857 x_tax_rec => l_tax_rec,
4858 p_return_status => l_return_status,
4859 p_error_buffer => l_error_buffer);
4860
4861 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
4862 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_id := l_tax_Rec.TAX_id;
4863
4864 IF l_tax_rec.Def_Place_Of_Supply_Type_Code = 'SHIP_TO_BILL_TO' then
4865 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).PLACE_OF_SUPPLY_TYPE_CODE := 'SHIP_TO';
4866 ELSE
4867 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).PLACE_OF_SUPPLY_TYPE_CODE := l_tax_rec.Def_Place_Of_Supply_Type_Code;
4868 END IF;
4869 --
4870 -- Bug#5439803- not Credit memo, tax currency conversion type is
4871 -- from exchange rate type of tax record
4872 --
4873 IF (pg_cm_type <> 'Applied' OR pg_cm_type IS NULL) THEN
4874 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_currency_conversion_type := l_tax_rec.exchange_rate_type;
4875 END IF;
4876
4877 ELSE
4878 IF (g_level_unexpected >= g_current_runtime_level ) THEN
4879 FND_LOG.STRING(g_level_unexpected,
4880 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line',
4881 'Incorrect return_status after calling ' ||
4882 'ZX_TDS_UTILITIES_PKG.get_tax_cache_info()');
4883 FND_LOG.STRING(g_level_unexpected,
4884 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line',
4885 'RETURN_STATUS = ' || l_return_status);
4886 FND_LOG.STRING(g_level_unexpected,
4887 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line.END',
4888 'ZX_PRODUCT_INTEGRATION_PKG.' ||
4889 'prepare_detail_tax_line(-)');
4890 END IF;
4891 RETURN;
4892 END IF;
4893
4894 IF p_tax_out_rec.TAX_JURISDICTION_CODE IS NOT NULL THEN
4895
4896 ZX_TDS_UTILITIES_PKG.get_jurisdiction_cache_info(
4897 p_tax_regime_code => p_tax_out_rec.TAX_REGIME_CODE,
4898 p_tax => p_tax_out_rec.TAX,
4899 p_tax_jurisdiction_code => p_tax_out_rec.TAX_JURISDICTION_CODE,
4900 p_tax_determine_date => p_tax_out_rec.TRX_DATE,
4901 x_jurisdiction_rec => l_tax_jurisdiction_rec,
4902 p_return_status => l_return_status,
4903 p_error_buffer => l_error_buffer);
4904
4905 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_jurisdiction_id
4906 := l_tax_jurisdiction_rec.tax_jurisdiction_id;
4907
4908 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4909 IF (g_level_unexpected >= g_current_runtime_level ) THEN
4910 FND_LOG.STRING(g_level_unexpected,
4911 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line',
4912 'Incorrect return_status after calling ' ||
4913 'ZX_TDS_UTILITIES_PKG.get_jurisdiction_cache_info()');
4914 FND_LOG.STRING(g_level_unexpected,
4915 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line',
4916 'RETURN_STATUS = ' || l_return_status);
4917 FND_LOG.STRING(g_level_unexpected,
4918 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line.END',
4919 'ZX_PRODUCT_INTEGRATION_PKG.' ||
4920 'prepare_detail_tax_line(-)');
4921 END IF;
4922 RETURN;
4923 END IF;
4924
4925 END IF; --p_tax_out_rec.TAX_JURISDICTION_CODE IS NOT NULL
4926
4927 -- populate tax_status_cahce_info
4928 --
4929 -- Bug#5395227- get tax_status_id only if it is null
4930 --
4931 IF p_tax_out_rec.tax_status_id IS NULL THEN
4932 ZX_TDS_UTILITIES_PKG.get_tax_status_cache_info(
4933 p_tax_out_rec.tax,
4934 p_tax_out_rec.tax_regime_code,
4935 p_tax_out_rec.tax_status_code,
4936 p_tax_out_rec.TRX_DATE,
4937 l_tax_status_rec,
4938 l_return_status,
4939 l_error_buffer);
4940
4941 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
4942 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
4943 p_new_row_num).tax_status_id := l_tax_status_rec.tax_status_id;
4944 ELSE
4945 IF (g_level_unexpected >= g_current_runtime_level ) THEN
4946 FND_LOG.STRING(g_level_unexpected,
4947 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line',
4948 'Incorrect return_status after calling ' ||
4949 'ZX_TDS_UTILITIES_PKG.get_tax_status_cache_info()');
4950 FND_LOG.STRING(g_level_unexpected,
4951 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line',
4952 'RETURN_STATUS = ' || l_return_status);
4953 FND_LOG.STRING(g_level_unexpected,
4954 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line.END',
4955 'ZX_PRODUCT_INTEGRATION_PKG.' ||
4956 'prepare_detail_tax_line(-)');
4957 END IF;
4958 RETURN;
4959 END IF;
4960 ELSE
4961 -- bug#5395227
4962 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_status_id := p_tax_out_rec.tax_status_id;
4963 END IF;
4964
4965 ZX_TDS_UTILITIES_PKG.get_tax_rate_info(
4966 p_tax_regime_code => p_tax_out_rec.TAX_REGIME_CODE,
4967 p_tax => p_tax_out_rec.TAX,
4968 p_tax_jurisdiction_code => NULL,
4969 p_tax_status_code => p_tax_out_rec.TAX_STATUS_CODE,
4970 p_tax_rate_code => p_tax_out_rec.TAX_RATE_CODE,
4971 p_tax_determine_date => p_tax_out_rec.TRX_DATE,
4972 p_tax_class => 'OUTPUT',
4973 p_tax_rate_rec => l_tax_rate_rec,
4974 p_return_status => l_return_status,
4975 p_error_buffer => l_error_buffer);
4976
4977 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
4978 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAXABLE_BASIS_FORMULA
4979 := NVL(l_tax_rate_rec.taxable_basis_formula_code, l_tax_rec.def_taxable_basis_formula);
4980 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_CALCULATION_FORMULA
4981 := l_tax_rec.def_tax_calc_formula;
4982 ELSE
4983 IF (g_level_unexpected >= g_current_runtime_level ) THEN
4984 FND_LOG.STRING(g_level_unexpected,
4985 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line',
4986 'Incorrect return_status after calling ' ||
4987 'ZX_TDS_UTILITIES_PKG.get_tax_rate_info()');
4988 FND_LOG.STRING(g_level_unexpected,
4989 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line',
4990 'RETURN_STATUS = ' || l_return_status);
4991 FND_LOG.STRING(g_level_unexpected,
4992 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line.END',
4993 'ZX_PRODUCT_INTEGRATION_PKG.' ||
4994 'prepare_detail_tax_line(-)');
4995 END IF;
4996 RETURN;
4997 END IF;
4998
4999 -- bug#5395227
5000 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_rate_id := p_tax_out_rec.tax_rate_id;
5001
5002 IF (g_level_statement >= g_current_runtime_level ) THEN
5003 FND_LOG.STRING(g_level_statement,
5004 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line',
5005 'Populating tax_regime_id, tax_id, tax_status_id and tax_rate_id...');
5006 FND_LOG.STRING(g_level_statement,
5007 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line',
5008 'tax_regime_id := ' ||
5009 TO_CHAR(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_regime_id));
5010 FND_LOG.STRING(g_level_statement,
5011 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line',
5012 'tax_id := ' ||
5013 TO_CHAR(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_id));
5014 FND_LOG.STRING(g_level_statement,
5015 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line',
5016 'tax_jurisdiction_id := ' ||
5017 TO_CHAR(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_jurisdiction_id));
5018 FND_LOG.STRING(g_level_statement,
5019 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line',
5020 'tax_status_id := ' ||
5021 TO_CHAR(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_status_id));
5022 FND_LOG.STRING(g_level_statement,
5023 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line',
5024 'tax_rate_id := ' ||
5025 TO_CHAR(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_rate_id));
5026 END IF;
5027
5028 IF (g_level_procedure >= g_current_runtime_level ) THEN
5029 FND_LOG.STRING(g_level_procedure,
5030 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line',
5031 'Tax_line_id: '||ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_line_id);
5032 FND_LOG.STRING(g_level_procedure,
5033 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line',
5034 'Application_id: '||ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).APPLICATION_ID);
5035 FND_LOG.STRING(g_level_procedure,
5036 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line',
5037 'Entity_code: '||ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).Entity_code);
5038 FND_LOG.STRING(g_level_procedure,
5039 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line',
5040 'Event Class Code: '||ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).EVENT_CLASS_CODE);
5041 FND_LOG.STRING(g_level_procedure,
5042 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line',
5043 'Trx_id: '||ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).Trx_ID);
5044 FND_LOG.STRING(g_level_procedure,
5045 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line',
5046 'Trx_level_type: '||ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TRX_LEVEL_TYPE);
5047 FND_LOG.STRING(g_level_procedure,
5048 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line',
5049 'Trx_line_id: '||ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TRX_LINE_ID);
5050 FND_LOG.STRING(g_level_procedure,
5051 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line',
5052 'Tax Regime Code: '||ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX_REGIME_CODE);
5053 FND_LOG.STRING(g_level_procedure,
5054 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line',
5055 'Tax : '||ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).TAX);
5056 END IF;
5057
5058 /* -- followin columns need to be added in
5059 REPORTING_PERIOD_ID NUMBER Y
5060 TAX_EXCEPTION_ID N.A. for LTE
5061 TAX_RATE_BEFORE_EXCEPTION N.A. for LTE
5062 TAX_RATE_NAME _BEFORE_EXCEPTION N.A. for LTE
5063 TAX_EXEMPTION_ID N.A. for LTE
5064 TAX_RATE_BEFORE_EXEMPTION N.A. for LTE
5065 TAX_RATE_NAME_BEFORE_EXEMPTION N.A. for LTE
5066 EXEMPT_RATE_MODIFIER N.A. for LTE
5067 EXEMPT_CERTIFICATE_NUMBER N/A For LTE Copied from tsrm global structure
5068 EXEMPT_REASON N/A For LTE Copied from tsrm global structure
5069 EXEMPT_REASON_CODE N/A For LTE Copied from tsrm global structure
5070 EXCEPTION_RATE N.A. for LTE
5071
5072 CAL_TAX_AMT N.A. (used for thresholds) LTE
5073 CAL_TAX_AMT_TAX_CURR rounding package will populate this.
5074 CAL_TAX_AMT_FUNCL_CURR rounding package will populate this.
5075
5076 SUMMARY_TAX_LINE_ID TRR TRR
5077 TAX_AMT_TAX_CURR NULL TRR (Tail end service)
5078 TAX_AMT_FUNCL_CURR NULL TRR (Tail end service)
5079 TAXABLE_AMT_TAX_CURR Output TRR (Tail end service)
5080 TAXABLE_AMT_FUNCL_CURR Output TRR (Tail end service)
5081 REPORTING_CURRENCY_CODE Tail End service TRR
5082 MRC_TAX_LINE_FLAG Tail End service TRR
5083 TRX_LINE_INDEX TRR
5084
5085 ============================
5086 TAX_CODE Input (tax classification code) Copied from tsrm global structure
5087
5088 ROUNDING_LVL_PARTY_TAX_PROF_ID LTE
5089 ROUNDING_LVL_PARTY_TYPE Hard Coded LTE
5090 ROUNDING_LEVEL_CODE LINE LTE
5091 ROUNDING_RULE_CODE Output LTE
5092
5093 CTRL_TOTAL_LINE_TX_AMT N.A LTE
5094 COMPOUNDING_MISS_FLAG N.A LTE LTE raise error in this case
5095 ==============================
5096 */
5097
5098 IF (g_level_procedure >= g_current_runtime_level ) THEN
5099 FND_LOG.STRING(g_level_procedure,
5100 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line.END',
5101 'ZX_PRODUCT_INTEGRATION_PKG: prepare_detail_tax_lines (-)');
5102 END IF;
5103 EXCEPTION
5104 WHEN OTHERS THEN
5105 IF (g_level_unexpected >= g_current_runtime_level ) THEN
5106 FND_LOG.STRING(g_level_unexpected,
5107 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.prepare_detail_tax_line',
5108 sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80));
5109 END IF;
5110 RAISE;
5111 END prepare_detail_tax_line;
5112
5113 /*===========================================================================+
5114 | PROCEDURE |
5115 | create_detail_tax_line |
5116 | |
5117 | DESCRIPTION |
5118 | |
5119 | MODIFICATION HISTORY |
5120 | Modified as a fix for Bug#7530930 |
5121 +============================================================================*/
5122 PROCEDURE create_detail_tax_line (
5123 p_event_class_rec IN zx_api_pub.event_class_rec_type,
5124 p_tax_line_rec IN tax_line_rec_type,
5125 p_id_dist_tbl IN NUMBER,
5126 p_new_row_num IN NUMBER,
5127 x_return_status OUT NOCOPY VARCHAR2) IS
5128
5129 l_tax_regime_rec ZX_GLOBAL_STRUCTURES_PKG.tax_regime_rec_type;
5130 l_tax_rec ZX_TDS_UTILITIES_PKG.zx_tax_info_cache_rec;
5131 l_tax_status_rec ZX_TDS_UTILITIES_PKG.zx_status_info_rec;
5132 l_tax_jurisdiction_rec ZX_TDS_UTILITIES_PKG.zx_jur_info_cache_rec_type;
5133
5134 l_tax_date DATE;
5135 l_tax_determine_date DATE;
5136 l_tax_point_date DATE;
5137 l_error_buffer VARCHAR2(240);
5138 l_return_status VARCHAR2(1);
5139
5140 -- Start : Added for Bug#8669930
5141 l_adjusted_doc_tax_line_id ZX_LINES.adjusted_doc_tax_line_id%TYPE;
5142
5143 CURSOR get_adjusted_doc_tax_line_id
5144 (c_tax_regime_code zx_regimes_b.tax_regime_code%TYPE,
5145 c_tax zx_taxes_b.tax%TYPE,
5146 c_apportionment_line_number zx_lines.tax_apportionment_line_number%type) IS
5147 SELECT tax_line_id FROM zx_lines
5148 WHERE application_id =
5149 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_application_id(p_id_dist_tbl)
5150 AND entity_code =
5151 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_entity_code(p_id_dist_tbl)
5152 AND event_class_code =
5153 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_event_class_code(p_id_dist_tbl)
5154 AND trx_id =
5155 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_trx_id( p_id_dist_tbl)
5156 AND trx_line_id =
5157 NVL(ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_line_id(p_id_dist_tbl), trx_line_id)
5158 AND trx_level_type =
5159 NVL(ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_trx_level_type(p_id_dist_tbl), trx_level_type)
5160 AND (tax_provider_id IS NULL
5161 OR ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_level_action(p_id_dist_tbl) = 'ALLOCATE_TAX_ONLY_ADJUSTMENT')
5162 AND Cancel_Flag <> 'Y'
5163 AND offset_link_to_tax_line_id IS NULL
5164 AND mrc_tax_line_flag = 'N'
5165 AND tax = c_tax
5166 AND tax_regime_code = c_tax_regime_code
5167 AND tax_apportionment_line_number = c_apportionment_line_number;
5168 -- End : Added for Bug#8669930
5169
5170 BEGIN
5171
5172 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
5173
5174 IF (g_level_event >= g_current_runtime_level ) THEN
5175 FND_LOG.STRING(g_level_event,
5176 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line.BEGIN',
5177 'ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line(+)');
5178
5179 FND_LOG.STRING(g_level_event,
5180 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line',
5181 'new tax line created (tax := '|| p_tax_line_rec.tax || ')');
5182 FND_LOG.STRING(g_level_event,
5183 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line',
5184 'tax_regime_code := '|| p_tax_line_rec.tax_regime_code);
5185 END IF;
5186
5187 x_return_status := FND_API.G_RET_STS_SUCCESS;
5188
5189 -- get tax date
5190 ZX_TDS_APPLICABILITY_DETM_PKG.get_tax_date(
5191 p_id_dist_tbl,
5192 l_tax_date,
5193 l_tax_determine_date,
5194 l_tax_point_date,
5195 x_return_status);
5196
5197 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5198 IF (g_level_unexpected >= g_current_runtime_level ) THEN
5199 FND_LOG.STRING(g_level_unexpected,
5200 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line',
5201 'Incorrect return_status after calling ' ||
5202 'ZX_TDS_APPLICABILITY_DETM_PKG.get_tax_date()');
5203 FND_LOG.STRING(g_level_unexpected,
5204 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line',
5205 'RETURN_STATUS = ' || x_return_status);
5206 FND_LOG.STRING(g_level_unexpected,
5207 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line.END',
5208 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line(-)');
5209 END IF;
5210 RETURN;
5211 END IF;
5212
5213 -- populate tax_regime_cache_info
5214 ZX_TDS_UTILITIES_PKG.get_regime_cache_info(
5215 p_tax_line_rec.tax_regime_code,
5216 l_tax_determine_date,
5217 l_tax_regime_rec,
5218 x_return_status,
5219 l_error_buffer);
5220
5221 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5222 IF (g_level_unexpected >= g_current_runtime_level ) THEN
5223 FND_LOG.STRING(g_level_unexpected,
5224 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line',
5225 'Incorrect return_status after calling ' ||
5226 'ZX_TDS_UTILITIES_PKG.get_regime_cache_info()');
5227 FND_LOG.STRING(g_level_unexpected,
5228 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line',
5229 'RETURN_STATUS = ' || x_return_status);
5230 FND_LOG.STRING(g_level_unexpected,
5231 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line.END',
5232 'ZX_PRODUCT_INTEGRATION_PKG.' ||
5233 'create_detail_tax_line(-)');
5234 END IF;
5235 RETURN;
5236 END IF;
5237
5238 -- populate tax cache, if it does not exist there.
5239 ZX_TDS_UTILITIES_PKG.get_tax_cache_info(
5240 p_tax_line_rec.tax_regime_code,
5241 p_tax_line_rec.tax,
5242 l_tax_determine_date,
5243 l_tax_rec,
5244 x_return_status,
5245 l_error_buffer);
5246
5247 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5248 IF (g_level_unexpected >= g_current_runtime_level ) THEN
5249 FND_LOG.STRING(g_level_unexpected,
5250 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line',
5251 'Incorrect return_status after calling ' ||
5252 'ZX_TDS_UTILITIES_PKG.get_tax_cache_info()');
5253 FND_LOG.STRING(g_level_unexpected,
5254 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line',
5255 'RETURN_STATUS = ' || x_return_status);
5256 FND_LOG.STRING(g_level_unexpected,
5257 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line.END',
5258 'ZX_PRODUCT_INTEGRATION_PKG.' ||
5259 'create_detail_tax_line(-)');
5260 END IF;
5261 RETURN;
5262 END IF;
5263
5264 IF p_tax_line_rec.TAX_JURISDICTION_CODE IS NOT NULL THEN
5265 ZX_TDS_UTILITIES_PKG.get_jurisdiction_cache_info(
5266 p_tax_regime_code => p_tax_line_rec.TAX_REGIME_CODE,
5267 p_tax => p_tax_line_rec.TAX,
5268 p_tax_jurisdiction_code => p_tax_line_rec.TAX_JURISDICTION_CODE,
5269 p_tax_determine_date => l_tax_determine_date,
5270 x_jurisdiction_rec => l_tax_jurisdiction_rec,
5271 p_return_status => l_return_status,
5272 p_error_buffer => l_error_buffer);
5273
5274 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5275 IF (g_level_unexpected >= g_current_runtime_level ) THEN
5276 FND_LOG.STRING(g_level_unexpected,
5277 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line',
5278 'Incorrect return_status after calling ' ||
5279 'ZX_TDS_UTILITIES_PKG.get_jurisdiction_cache_info()');
5280 FND_LOG.STRING(g_level_unexpected,
5281 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line',
5282 'RETURN_STATUS = ' || x_return_status);
5283 FND_LOG.STRING(g_level_unexpected,
5284 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line.END',
5285 'ZX_PRODUCT_INTEGRATION_PKG.' ||
5286 'create_detail_tax_line(-)');
5287 END IF;
5288 RETURN;
5289 END IF;
5290 END IF;
5291
5292 -- populate tax_status_cahce_info
5293 ZX_TDS_UTILITIES_PKG.get_tax_status_cache_info(
5294 p_tax_line_rec.tax,
5295 p_tax_line_rec.tax_regime_code,
5296 p_tax_line_rec.tax_status_code,
5297 l_tax_determine_date,
5298 l_tax_status_rec,
5299 x_return_status,
5300 l_error_buffer);
5301
5302 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5303 IF (g_level_unexpected >= g_current_runtime_level ) THEN
5304 FND_LOG.STRING(g_level_unexpected,
5305 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line',
5306 'Incorrect return_status after calling ' ||
5307 'ZX_TDS_UTILITIES_PKG.get_tax_status_cache_info()');
5308 FND_LOG.STRING(g_level_unexpected,
5309 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line',
5310 'RETURN_STATUS = ' || x_return_status);
5311 FND_LOG.STRING(g_level_unexpected,
5312 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line.END',
5313 'ZX_PRODUCT_INTEGRATION_PKG.' ||
5314 'create_detail_tax_line(-)');
5315 END IF;
5316 RETURN;
5317 END IF;
5318
5319 -- populate tax_regime_id, tax_id, tax_status_id, tax_rate_id
5320 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_regime_id := l_tax_regime_rec.tax_regime_id;
5321 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_id := l_tax_rec.tax_id;
5322 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_status_id := l_tax_status_rec.tax_status_id;
5323 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_jurisdiction_id := l_tax_jurisdiction_rec.tax_jurisdiction_id;
5324 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_rate_id := p_tax_line_rec.tax_rate_id;
5325
5326 IF (g_level_statement >= g_current_runtime_level ) THEN
5327 FND_LOG.STRING(g_level_statement,
5328 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line',
5329 'Populating tax_regime_id, tax_id, tax_status_id and tax_rate_id...');
5330 FND_LOG.STRING(g_level_statement,
5331 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line',
5332 'tax_regime_id := ' || ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_regime_id||
5333 ' tax_id := '||ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_id||
5334 ' tax_status_id := '||ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_status_id||
5335 ' tax_jurisdiction_id := '||ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_jurisdiction_id||
5336 ' tax_rate_id := '||ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_rate_id);
5337
5338 END IF;
5339
5340 -- populate data from summary tax line
5341 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_regime_code := p_tax_line_rec.tax_regime_code;
5342 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax := p_tax_line_rec.tax;
5343 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_status_code := p_tax_line_rec.tax_status_code;
5344 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_rate_code := p_tax_line_rec.tax_rate_code;
5345 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_rate := p_tax_line_rec.tax_rate;
5346 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_jurisdiction_code := p_tax_line_rec.tax_jurisdiction_code;
5347 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_amt_included_flag := p_tax_line_rec.tax_amt_included_flag;
5348 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_exception_id := p_tax_line_rec.tax_exception_id;
5349 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_exemption_id := p_tax_line_rec.tax_exemption_id;
5350 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).exempt_reason_code := p_tax_line_rec.exempt_reason_code;
5351 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).exempt_certificate_number := p_tax_line_rec.exempt_certificate_number;
5352
5353 -- populate rounding_lvl_party_tax_prof_id and rounding_level_code
5354 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).rounding_lvl_party_tax_prof_id := ZX_TDS_CALC_SERVICES_PUB_PKG.g_rnd_lvl_party_tax_prof_id;
5355 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).rounding_lvl_party_type := ZX_TDS_CALC_SERVICES_PUB_PKG.g_rounding_lvl_party_type;
5356 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).rounding_level_code := ZX_TDS_CALC_SERVICES_PUB_PKG.g_rounding_level;
5357
5358 -- populate tax dates
5359 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_date := l_tax_date;
5360 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_determine_date := l_tax_determine_date;
5361 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_point_date := l_tax_point_date;
5362
5363 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).taxable_basis_formula := l_tax_rec.def_taxable_basis_formula;
5364 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_calculation_formula := l_tax_rec.def_tax_calc_formula;
5365
5366 -- bug 3282018: set manually_entered_flag='Y', last_manual_entry='TAX_AMOUNT'
5367 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).manually_entered_flag := 'Y';
5368 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).last_manual_entry := 'TAX_AMOUNT';
5369
5370 -- set self_assesses_flag = 'N' for all detail tax lines created from summary tax lines
5371 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).self_assessed_flag := 'N';
5372
5373 -- set proration_code
5374 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).proration_code := 'REGULAR_IMPORT';
5375
5376 -- populate mandatory columns
5377 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).internal_organization_id := p_tax_line_rec.internal_organization_id;
5378 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).application_id := p_event_class_rec.application_id;
5379 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).entity_code := p_event_class_rec.entity_code;
5380 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).event_class_code := p_event_class_rec.event_class_code;
5381 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).event_type_code := p_event_class_rec.event_type_code;
5382 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).trx_id := p_event_class_rec.trx_id;
5383 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).content_owner_id := p_event_class_rec.first_pty_org_id;
5384 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).trx_line_id := p_tax_line_rec.trx_line_id;
5385 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).trx_level_type := p_tax_line_rec.trx_level_type;
5386 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).line_amt := p_tax_line_rec.line_amt;
5387 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).trx_date := p_tax_line_rec.trx_date;
5388 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).minimum_accountable_unit := p_tax_line_rec.minimum_accountable_unit;
5389 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).precision := p_tax_line_rec.precision;
5390 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).trx_line_date := p_tax_line_rec.trx_line_date;
5391
5392 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).trx_currency_code := zx_global_structures_pkg.trx_line_dist_tbl.TRX_CURRENCY_CODE(p_id_dist_tbl);
5393 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).currency_conversion_date := zx_global_structures_pkg.trx_line_dist_tbl.CURRENCY_CONVERSION_DATE(p_id_dist_tbl);
5394 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).currency_conversion_type := zx_global_structures_pkg.trx_line_dist_tbl.CURRENCY_CONVERSION_TYPE(p_id_dist_tbl);
5395 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).currency_conversion_rate := zx_global_structures_pkg.trx_line_dist_tbl.CURRENCY_CONVERSION_RATE(p_id_dist_tbl);
5396 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).ledger_id := zx_global_structures_pkg.trx_line_dist_tbl.LEDGER_ID(p_id_dist_tbl) ;
5397
5398 IF p_event_class_rec.tax_reporting_flag = 'Y' THEN
5399 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).legal_reporting_status := l_tax_rec.legal_reporting_status_def_val;
5400 END IF;
5401
5402 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).interface_tax_line_id := p_tax_line_rec.interface_tax_line_id;
5403 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).interface_entity_code := p_tax_line_rec.interface_entity_code;
5404
5405 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).internal_org_location_id := zx_global_structures_pkg.trx_line_dist_tbl.INTERNAL_ORG_LOCATION_ID(p_id_dist_tbl);
5406 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).doc_event_status := zx_global_structures_pkg.trx_line_dist_tbl.DOC_EVENT_STATUS(p_id_dist_tbl);
5407 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).legal_entity_id := zx_global_structures_pkg.trx_line_dist_tbl.LEGAL_ENTITY_ID(p_id_dist_tbl);
5408 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).establishment_id := zx_global_structures_pkg.trx_line_dist_tbl.ESTABLISHMENT_ID(p_id_dist_tbl);
5409 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).unit_price := zx_global_structures_pkg.trx_line_dist_tbl.UNIT_PRICE(p_id_dist_tbl);
5410 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).trx_line_quantity := zx_global_structures_pkg.trx_line_dist_tbl.trx_line_quantity(p_id_dist_tbl);
5411 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_event_class_code := zx_global_structures_pkg.trx_line_dist_tbl.TAX_EVENT_CLASS_CODE(p_id_dist_tbl);
5412 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_event_type_code := zx_global_structures_pkg.trx_line_dist_tbl.TAX_EVENT_TYPE_CODE(p_id_dist_tbl);
5413 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).trx_line_number := zx_global_structures_pkg.trx_line_dist_tbl.trx_line_number(p_id_dist_tbl);
5414 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).line_assessable_value := zx_global_structures_pkg.trx_line_dist_tbl.ASSESSABLE_VALUE(p_id_dist_tbl);
5415 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).trx_id_level2 := zx_global_structures_pkg.trx_line_dist_tbl.TRX_ID_LEVEL2(p_id_dist_tbl);
5416 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).trx_id_level3 := zx_global_structures_pkg.trx_line_dist_tbl.TRX_ID_LEVEL3(p_id_dist_tbl);
5417 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).trx_id_level4 := zx_global_structures_pkg.trx_line_dist_tbl.TRX_ID_LEVEL4(p_id_dist_tbl);
5418 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).trx_id_level5 := zx_global_structures_pkg.trx_line_dist_tbl.TRX_ID_LEVEL5(p_id_dist_tbl);
5419 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).trx_id_level6 := zx_global_structures_pkg.trx_line_dist_tbl.TRX_ID_LEVEL6(p_id_dist_tbl);
5420 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).trx_number := zx_global_structures_pkg.trx_line_dist_tbl.TRX_NUMBER(p_id_dist_tbl);
5421 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).hq_estb_party_tax_prof_id:= zx_global_structures_pkg.trx_line_dist_tbl.HQ_ESTB_PARTY_TAX_PROF_ID(p_id_dist_tbl);
5422
5423 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).ref_doc_application_id := zx_global_structures_pkg.trx_line_dist_tbl.REF_DOC_APPLICATION_ID(p_id_dist_tbl);
5424 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).ref_doc_entity_code := zx_global_structures_pkg.trx_line_dist_tbl.REF_DOC_ENTITY_CODE(p_id_dist_tbl);
5425 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).ref_doc_event_class_code := zx_global_structures_pkg.trx_line_dist_tbl.REF_DOC_EVENT_CLASS_CODE(p_id_dist_tbl);
5426 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).ref_doc_trx_id := zx_global_structures_pkg.trx_line_dist_tbl.REF_DOC_TRX_ID(p_id_dist_tbl);
5427 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).ref_doc_line_id := zx_global_structures_pkg.trx_line_dist_tbl.REF_DOC_LINE_ID(p_id_dist_tbl);
5428 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).ref_doc_trx_level_type := zx_global_structures_pkg.trx_line_dist_tbl.REF_DOC_TRX_LEVEL_TYPE(p_id_dist_tbl);
5429 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).ref_doc_line_quantity := zx_global_structures_pkg.trx_line_dist_tbl.REF_DOC_LINE_QUANTITY(p_id_dist_tbl);
5430 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).applied_from_application_id := zx_global_structures_pkg.trx_line_dist_tbl.APPLIED_FROM_APPLICATION_ID(p_id_dist_tbl);
5431 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).applied_from_event_class_code := zx_global_structures_pkg.trx_line_dist_tbl.APPLIED_FROM_EVENT_CLASS_CODE(p_id_dist_tbl);
5432 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).applied_from_entity_code := zx_global_structures_pkg.trx_line_dist_tbl.APPLIED_FROM_ENTITY_CODE(p_id_dist_tbl);
5433 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).applied_from_trx_id := zx_global_structures_pkg.trx_line_dist_tbl.APPLIED_FROM_TRX_ID(p_id_dist_tbl);
5434 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).applied_from_line_id := zx_global_structures_pkg.trx_line_dist_tbl.APPLIED_FROM_LINE_ID(p_id_dist_tbl);
5435 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).applied_from_trx_level_type := zx_global_structures_pkg.trx_line_dist_tbl.APPLIED_FROM_TRX_LEVEL_TYPE(p_id_dist_tbl);
5436 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).adjusted_doc_application_id := zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_APPLICATION_ID(p_id_dist_tbl);
5437 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).adjusted_doc_entity_code := zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_ENTITY_CODE (p_id_dist_tbl);
5438 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).adjusted_doc_event_class_code := zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_EVENT_CLASS_CODE(p_id_dist_tbl);
5439 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).adjusted_doc_trx_id := zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_TRX_ID(p_id_dist_tbl);
5440 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).adjusted_doc_line_id := zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_LINE_ID(p_id_dist_tbl);
5441 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).adjusted_doc_trx_level_type := zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_TRX_LEVEL_TYPE(p_id_dist_tbl);
5442 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).adjusted_doc_number := zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_NUMBER(p_id_dist_tbl);
5443 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).adjusted_doc_date := zx_global_structures_pkg.trx_line_dist_tbl.ADJUSTED_DOC_DATE(p_id_dist_tbl);
5444 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).applied_to_application_id := zx_global_structures_pkg.trx_line_dist_tbl.APPLIED_TO_APPLICATION_ID(p_id_dist_tbl);
5445 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).applied_to_event_class_code := zx_global_structures_pkg.trx_line_dist_tbl.APPLIED_TO_EVENT_CLASS_CODE(p_id_dist_tbl);
5446 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).applied_to_entity_code := zx_global_structures_pkg.trx_line_dist_tbl.APPLIED_TO_ENTITY_CODE(p_id_dist_tbl);
5447 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).applied_to_trx_id := zx_global_structures_pkg.trx_line_dist_tbl.APPLIED_TO_TRX_ID(p_id_dist_tbl);
5448 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).applied_to_line_id := zx_global_structures_pkg.trx_line_dist_tbl.APPLIED_TO_TRX_LINE_ID(p_id_dist_tbl);
5449 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).applied_to_trx_level_type := zx_global_structures_pkg.trx_line_dist_tbl.APPLIED_TO_TRX_LEVEL_TYPE(p_id_dist_tbl);
5450 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).related_doc_application_id := zx_global_structures_pkg.trx_line_dist_tbl.RELATED_DOC_APPLICATION_ID(p_id_dist_tbl);
5451 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).related_doc_entity_code := zx_global_structures_pkg.trx_line_dist_tbl.RELATED_DOC_ENTITY_CODE(p_id_dist_tbl);
5452 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).related_doc_event_class_code := zx_global_structures_pkg.trx_line_dist_tbl.RELATED_DOC_EVENT_CLASS_CODE(p_id_dist_tbl);
5453 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).related_doc_trx_id := zx_global_structures_pkg.trx_line_dist_tbl.RELATED_DOC_TRX_ID(p_id_dist_tbl);
5454 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).related_doc_number := zx_global_structures_pkg.trx_line_dist_tbl.RELATED_DOC_NUMBER(p_id_dist_tbl);
5455 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).related_doc_date := zx_global_structures_pkg.trx_line_dist_tbl.RELATED_DOC_DATE(p_id_dist_tbl);
5456
5457 -- Populating column GDF11 with line amount
5458 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).global_attribute11 := p_tax_line_rec.line_amt;
5459 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).global_attribute_category := zx_global_structures_pkg.trx_line_dist_tbl.global_attribute_category(p_id_dist_tbl);
5460
5461 IF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_application_id(p_id_dist_tbl) IS NOT NULL THEN
5462 OPEN get_adjusted_doc_tax_line_id(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_regime_code,
5463 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax,
5464 NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).tax_apportionment_line_number, 1));
5465
5466 FETCH get_adjusted_doc_tax_line_id INTO l_adjusted_doc_tax_line_id;
5467
5468 IF get_adjusted_doc_tax_line_id%FOUND THEN
5469 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(p_new_row_num).adjusted_doc_tax_line_id := l_adjusted_doc_tax_line_id;
5470 IF (g_level_event >= g_current_runtime_level ) THEN
5471 FND_LOG.STRING(g_level_event,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line',
5472 'l_adjusted_doc_tax_line_id: ' || l_adjusted_doc_tax_line_id);
5473 END IF;
5474 END IF;
5475 CLOSE get_adjusted_doc_tax_line_id;
5476 END IF;
5477
5478 IF (g_level_event >= g_current_runtime_level ) THEN
5479 FND_LOG.STRING(g_level_event,
5480 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line',
5481 'RETURN_STATUS = ' || x_return_status);
5482 FND_LOG.STRING(g_level_event,
5483 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line.END',
5484 'ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line(-)');
5485 END IF;
5486
5487 EXCEPTION
5488 WHEN OTHERS THEN
5489 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5490
5491 IF (g_level_unexpected >= g_current_runtime_level ) THEN
5492 FND_LOG.STRING(g_level_unexpected,
5493 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line',
5494 sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80));
5495 END IF;
5496 IF (g_level_procedure >= g_current_runtime_level ) THEN
5497 FND_LOG.STRING(g_level_procedure,
5498 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line.END',
5499 'ZX_PRODUCT_INTEGRATION_PKG.create_detail_tax_line(-)');
5500 END IF;
5501
5502 END create_detail_tax_line;
5503
5504 /*===========================================================================+
5505 | PROCEDURE |
5506 | get_tax_rate_id |
5507 | |
5508 | DESCRIPTION |
5509 | |
5510 | MODIFICATION HISTORY |
5511 | |
5512 +===========================================================================*/
5513
5514 PROCEDURE get_tax_rate_id (
5515 p_tax_regime_code IN VARCHAR2,
5516 p_tax IN VARCHAR2,
5517 p_tax_status_code IN VARCHAR2,
5518 p_tax_rate_code IN VARCHAR2,
5519 p_tax_determine_date IN DATE,
5520 p_tax_jurisdiction_code IN VARCHAR2,
5521 x_tax_rate_id OUT NOCOPY NUMBER,
5522 x_return_status OUT NOCOPY VARCHAR2,
5523 x_error_buffer OUT NOCOPY VARCHAR2) IS
5524
5525 /* Bug#5395227 -- use cache structure
5526
5527 CURSOR fetch_tax_rate_id IS
5528 SELECT tax_rate_id
5529 FROM ZX_SCO_RATES
5530 WHERE tax_regime_code = p_tax_regime_code
5531 AND tax = p_tax
5532 AND tax_status_code = p_tax_status_code
5533 AND tax_rate_code = p_tax_rate_code
5534 AND active_flag = 'Y'
5535 AND ( p_tax_determine_date >= effective_from AND
5536 (p_tax_determine_date <= effective_to OR effective_to IS NULL));
5537
5538 */
5539 -- Bug#5395227
5540 l_tax_rate_rec ZX_TDS_UTILITIES_PKG.ZX_RATE_INFO_REC_TYPE;
5541
5542 BEGIN
5543 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
5544
5545 IF (g_level_statement >= g_current_runtime_level ) THEN
5546 FND_LOG.STRING(g_level_statement,
5547 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_tax_rate_id.BEGIN',
5548 'ZX_PRODUCT_INTEGRATION_PKG.get_tax_rate_id(+)');
5549 FND_LOG.STRING(g_level_statement,
5550 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_tax_rate_id',
5551 'tax_regime_code = ' || p_tax_regime_code);
5552 FND_LOG.STRING(g_level_statement,
5553 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_tax_rate_id',
5554 'tax_ = ' || p_tax);
5555 FND_LOG.STRING(g_level_statement,
5556 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_tax_rate_id',
5557 'tax_status_code = ' || p_tax_status_code);
5558 FND_LOG.STRING(g_level_statement,
5559 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_tax_rate_id',
5560 'tax_rate_code = ' || p_tax_rate_code);
5561 FND_LOG.STRING(g_level_statement,
5562 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_tax_rate_id',
5563 'p_tax_determine_date = ' || p_tax_determine_date);
5564 FND_LOG.STRING(g_level_statement,
5565 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_tax_rate_id',
5566 'p_tax_jurisdiction_code = ' || p_tax_jurisdiction_code);
5567
5568 END IF;
5569 x_return_status := FND_API.G_RET_STS_SUCCESS;
5570
5571 /* Bug#5395227- use cache structure
5572 OPEN fetch_tax_rate_id;
5573 FETCH fetch_tax_rate_id INTO x_tax_rate_id;
5574 CLOSE fetch_tax_rate_id;
5575 */
5576
5577 /* 5395227- this procedure get_tax_rate_id is
5578 currently not used
5579 ZX_TDS_UTILITIES_PKG.get_tax_rate_info (
5580 p_tax_regime_code,
5581 p_tax,
5582 p_tax_jurisdiction_code,
5583 p_tax_status_code,
5584 p_tax_rate_code,
5585 p_tax_determine_date,
5586 l_tax_rate_rec,
5587 x_return_status,
5588 x_error_buffer);
5589
5590 */
5591
5592 IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
5593 x_tax_rate_id := l_tax_rate_rec.tax_rate_id;
5594 END IF;
5595
5596 IF (g_level_statement >= g_current_runtime_level ) THEN
5597 FND_LOG.STRING(g_level_statement,
5598 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_tax_rate_id',
5599 'tax_rate_id = ' || x_tax_rate_id);
5600 FND_LOG.STRING(g_level_statement,
5601 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_tax_rate_id',
5602 'RETURN_STATUS = ' || x_return_status);
5603 FND_LOG.STRING(g_level_statement,
5604 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_tax_rate_id.END',
5605 'ZX_PRODUCT_INTEGRATION_PKG.get_tax_rate_id(-)');
5606 END IF;
5607
5608 EXCEPTION
5609 WHEN OTHERS THEN
5610 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5611 IF (g_level_unexpected >= g_current_runtime_level ) THEN
5612 FND_LOG.STRING(g_level_unexpected,
5613 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_tax_rate_id',
5614 sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80));
5615 END IF;
5616 IF (g_level_procedure >= g_current_runtime_level ) THEN
5617 FND_LOG.STRING(g_level_procedure,
5618 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_tax_rate_id.END',
5619 'ZX_PRODUCT_INTEGRATION_PKG.get_tax_rate_id(-)');
5620 END IF;
5621
5622 END get_tax_rate_id;
5623
5624 /*----------------------------------------------------------------------------*
5625 |Public Procedure |
5626 | initialize_tax_info_rec |
5627 | |
5628 |Description |
5629 | This procedure initialize all the attributes of tax_info_rec to NULL |
5630 | |
5631 |Called From |
5632 | ARP_PROCESS_TAX.calculate_tax_f_sql |
5633 | |
5634 |History |
5635 | 01-SEP-98 TKOSHIO CREATED |
5636 *----------------------------------------------------------------------------*/
5637 PROCEDURE INITIALIZE_TAX_INFO_REC is
5638 BEGIN
5639 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
5640 IF (g_level_procedure >= g_current_runtime_level ) THEN
5641 FND_LOG.STRING(g_level_procedure,
5642 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.initialize_tax_info_rec.BEGIN',
5643 'ZX_PRODUCT_INTEGRATION_PKG.initialize_tax_info_rec(+)');
5644 END IF;
5645
5646 tax_info_rec.bill_to_cust_id:=NULL;
5647 tax_info_rec.ship_to_cust_id:=NULL;
5648 tax_info_rec.customer_trx_id:=NULL;
5649 tax_info_rec.trx_number:=NULL;
5650 tax_info_rec.bill_to_customer_number:=NULL;
5651 tax_info_rec.ship_to_customer_number:=NULL;
5652 tax_info_rec.bill_to_customer_name:=NULL;
5653 tax_info_rec.ship_to_customer_name:=NULL;
5654 tax_info_rec.previous_customer_trx_id:=NULL;
5655 tax_info_rec.previous_trx_number:=NULL;
5656 tax_info_rec.trx_date:=NULL;
5657 tax_info_rec.gl_date:=NULL;
5658 tax_info_rec.ship_to_site_use_id:=NULL;
5659 tax_info_rec.bill_to_site_use_id:=NULL;
5660 tax_info_rec.ship_to_postal_code:=NULL;
5661 tax_info_rec.bill_to_postal_code:=NULL;
5662 tax_info_rec.ship_to_location_id:=NULL;
5663 tax_info_rec.bill_to_location_id:=NULL;
5664 tax_info_rec.invoicing_rule_id:=NULL;
5665 tax_info_rec.fob_point:=NULL;
5666 tax_info_rec.trx_currency_code:=NULL;
5667 tax_info_rec.trx_exchange_rate:=NULL;
5668 tax_info_rec.minimum_accountable_unit:=NULL;
5669 tax_info_rec.precision:=NULL;
5670 tax_info_rec.tax_header_level_flag:=NULL;
5671 tax_info_rec.tax_rounding_rule:=NULL;
5672 /*-----------------------------------------------------------------------*/
5673 /* Release 11 Transaction header data */
5674 /*-----------------------------------------------------------------------*/
5675 tax_info_rec.trx_type_id:=NULL;
5676 tax_info_rec.ship_from_warehouse_id:=NULL;
5677 tax_info_rec.payment_term_id:=NULL;
5678 /*-----------------------------------------------------------------------*/
5679 /* Transaction Line Data */
5680 /*-----------------------------------------------------------------------*/
5681 tax_info_rec.customer_trx_line_id:=NULL;
5682 tax_info_rec.previous_customer_trx_line_id:=NULL;
5683 tax_info_rec.link_to_cust_trx_line_id:=NULL;
5684 tax_info_rec.memo_line_id:=NULL;
5685 tax_info_rec.taxed_quantity:=NULL;
5686 tax_info_rec.inventory_item_id:=NULL;
5687 tax_info_rec.extended_amount:=NULL;
5688 tax_info_rec.entered_amount:=NULL;
5689 tax_info_rec.tax_code:=NULL;
5690 tax_info_rec.vat_tax_id:=NULL;
5691 tax_info_rec.tax_exemption_id:=NULL;
5692 tax_info_rec.item_exception_rate_id:=NULL;
5693 tax_info_rec.tax_rate:=NULL;
5694 tax_info_rec.default_ussgl_transaction_code:=NULL;
5695 tax_info_rec.default_ussgl_trx_code_context:=NULL;
5696 /*-----------------------------------------------------------------------*/
5697 /* Release 11 Transaction Line data */
5698 /*-----------------------------------------------------------------------*/
5699 tax_info_rec.amount_includes_tax_flag:=NULL;
5700 tax_info_rec.taxable_basis:=NULL;
5701 tax_info_rec.tax_calculation_plsql_block:=NULL;
5702 tax_info_rec.payment_terms_discount_percent:=NULL;
5703 /*-----------------------------------------------------------------------*/
5704 /* Tax Extension Parameters, these are defined specifically to */
5705 /* support AVP(tm) and Vertex(tm) */
5706 /*-----------------------------------------------------------------------*/
5707 tax_info_rec.audit_flag:=NULL;
5708 tax_info_rec.qualifier:=NULL;
5709 tax_info_rec.ship_from_code:=NULL;
5710 tax_info_rec.ship_to_code:=NULL;
5711 tax_info_rec.poo_code:=NULL;
5712 tax_info_rec.poa_code:=NULL;
5713 tax_info_rec.vdrctrl_exempt:=NULL;
5714 tax_info_rec.tax_control:=NULL;
5715 tax_info_rec.xmpt_cert_no:=NULL;
5716 tax_info_rec.xmpt_reason:=NULL;
5717 tax_info_rec.xmpt_percent:=NULL;
5718 tax_info_rec.trx_line_type:=NULL;
5719 tax_info_rec.part_no:=NULL;
5720 tax_info_rec.division_code:=NULL;
5721 tax_info_rec.company_code:=NULL;
5722 /*-----------------------------------------------------------------------*/
5723 /* Release 11 has 5 more character and numeric attributes. */
5724 /*-----------------------------------------------------------------------*/
5725 tax_info_rec.userf1:=NULL;
5726 tax_info_rec.userf2:=NULL;
5727 tax_info_rec.userf3:=NULL;
5728 tax_info_rec.userf4:=NULL;
5729 tax_info_rec.userf5:=NULL;
5730 tax_info_rec.userf6:=NULL;
5731 tax_info_rec.userf7:=NULL;
5732 tax_info_rec.userf8:=NULL;
5733 tax_info_rec.userf9:=NULL;
5734 tax_info_rec.userf10:=NULL;
5735 tax_info_rec.usern1:=NULL;
5736 tax_info_rec.usern2:=NULL;
5737 tax_info_rec.usern3:=NULL;
5738 tax_info_rec.usern4:=NULL;
5739 tax_info_rec.usern5:=NULL;
5740 tax_info_rec.usern6:=NULL;
5741 tax_info_rec.usern7:=NULL;
5742 tax_info_rec.usern8:=NULL;
5743 tax_info_rec.usern9:=NULL;
5744 tax_info_rec.usern10:=NULL;
5745 tax_info_rec.calculate_tax:=NULL;
5746 /*-----------------------------------------------------------------------*/
5747 /* Tax Line Data */
5748 /*-----------------------------------------------------------------------*/
5749 tax_info_rec.status:=NULL;
5750 tax_info_rec.credit_memo_flag:=NULL;
5751 tax_info_rec.tax_type:=NULL;
5752 tax_info_rec.sales_tax_id:=NULL;
5753 tax_info_rec.location_segment_id:=NULL;
5754 tax_info_rec.tax_line_number:=NULL;
5755 tax_info_rec.tax_amount:=NULL;
5756 tax_info_rec.tax_vendor_return_code:=NULL;
5757 tax_info_rec.tax_precedence:=NULL;
5758 tax_info_rec.compound_amount:=NULL;
5759 tax_info_rec.effective_tax_rate:=NULL;
5760 /*-----------------------------------------------------------------------*/
5761 /* Global Descriptive Flexfields */
5762 /*-----------------------------------------------------------------------*/
5763 tax_info_rec.global_attribute1:=NULL;
5764 tax_info_rec.global_attribute2:=NULL;
5765 tax_info_rec.global_attribute3:=NULL;
5766 tax_info_rec.global_attribute4:=NULL;
5767 tax_info_rec.global_attribute5:=NULL;
5768 tax_info_rec.global_attribute6:=NULL;
5769 tax_info_rec.global_attribute7:=NULL;
5770 tax_info_rec.global_attribute8:=NULL;
5771 tax_info_rec.global_attribute9:=NULL;
5772 tax_info_rec.global_attribute10:=NULL;
5773 tax_info_rec.global_attribute11:=NULL;
5774 tax_info_rec.global_attribute12:=NULL;
5775 tax_info_rec.global_attribute13:=NULL;
5776 tax_info_rec.global_attribute14:=NULL;
5777 tax_info_rec.global_attribute15:=NULL;
5778 tax_info_rec.global_attribute16:=NULL;
5779 tax_info_rec.global_attribute17:=NULL;
5780 tax_info_rec.global_attribute18:=NULL;
5781 tax_info_rec.global_attribute10:=NULL;
5782 tax_info_rec.global_attribute20:=NULL;
5783 tax_info_rec.global_attribute_category:=NULL;
5784 tax_info_rec.poo_id := NULL;
5785 tax_info_rec.poa_id := NULL;
5786 tax_info_rec.customer_trx_charge_line_id := NULL;
5787 tax_info_rec.taxable_amount := NULL;
5788 tax_info_rec.override_tax_rate := NULL;
5789 --crm
5790 tax_info_rec.party_flag := NULL;
5791
5792
5793 IF (g_level_statement >= g_current_runtime_level) THEN
5794 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','initialize_tax_info_rec(-)');
5795 END IF;
5796 EXCEPTION
5797 WHEN OTHERS THEN
5798 IF (g_level_unexpected >= g_current_runtime_level ) THEN
5799 FND_LOG.STRING(g_level_unexpected,
5800 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.initialize_tax_info_rec',
5801 sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80));
5802 END IF;
5803 IF (g_level_procedure >= g_current_runtime_level ) THEN
5804 FND_LOG.STRING(g_level_procedure,
5805 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.initialize_tax_info_rec.END',
5806 'ZX_PRODUCT_INTEGRATION_PKG.initialize_tax_info_rec(-)');
5807 END IF;
5808 RAISE;
5809 END INITIALIZE_TAX_INFO_REC;
5810
5811
5812 /*----------------------------------------------------------------------------*
5813 | PUBLIC PROCEDURE |
5814 | dump_tax_info_rec ( p_IO_flag IN VARCHAR2 default 'O' ) |
5815 | |
5816 | DESCRIPTION |
5817 | This procedure will dump members of tax_info_rec when debug is enabled. |
5818 | The parameter p_IO_flag can have values 'I', 'O' or 'E'. The parameter |
5819 | p_IO_flag will be prefixed to the member names on output and is for |
5820 | informational purposes only. The default value for p_IO_flag is 'O'. |
5821 | |
5822 | PARAMETERS |
5823 | THRU GLOBALS: |
5824 | tax_info_rec in tax_info_rec_type |
5825 | |
5826 | CALLED FROM |
5827 | Calculate() |
5828 | |
5829 | |
5830 | HISTORY |
5831 | 14-NOV-95 Mahesh Sabapathy Created. |
5832 | 16-NOV-95 Mahesh Sabapathy Added: parameter p_IO_flag and procedure |
5833 | made public. |
5834 *----------------------------------------------------------------------------*/
5835
5836 PROCEDURE dump_tax_info_rec(p_IO_flag IN VARCHAR2 ) IS
5837 l_IO_flag CHAR(1);
5838 BEGIN
5839 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
5840
5841 IF (g_level_procedure >= g_current_runtime_level ) THEN
5842 FND_LOG.STRING(g_level_procedure,
5843 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.dump_tax_info_rec.BEGIN',
5844 'ZX_PRODUCT_INTEGRATION_PKG.dump_tax_info_rec(+)');
5845 END IF;
5846
5847 IF ( p_IO_flag NOT IN ( 'I', 'E', 'O' ) ) THEN
5848 l_IO_flag := 'O';
5849 ELSE
5850 l_IO_flag := p_IO_flag;
5851 END IF;
5852
5853 --
5854 -- Dump tax_info_rec
5855 --
5856 IF (g_level_statement >= g_current_runtime_level) THEN
5857 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '************************' );
5858 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '** Tax Info Record **' );
5859 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '************************' );
5860 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Bill_to_cust_id = '
5861 ||tax_info_rec.Bill_to_cust_id );
5862 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Ship_to_cust_id = '
5863 ||tax_info_rec.Ship_to_cust_id );
5864 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Customer_trx_id = '
5865 ||tax_info_rec.Customer_trx_id );
5866 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Trx_date = '||tax_info_rec.Trx_date );
5867 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': GL_date = '||tax_info_rec.gl_date );
5868 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Ship_to_site_use_id = '
5869 ||tax_info_rec.Ship_to_site_use_id );
5870 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Bill_to_site_use_id = '
5871 ||tax_info_rec.Bill_to_site_use_id );
5872 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Ship_to_postal_code = '
5873 ||tax_info_rec.Ship_to_postal_code );
5874 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Bill_to_postal_code = '
5875 ||tax_info_rec.Bill_to_postal_code );
5876 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Ship_to_location_id = '
5877 ||tax_info_rec.Ship_to_location_id );
5878 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Bill_to_location_id = '
5879 ||tax_info_rec.Bill_to_location_id );
5880 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Invoicing_rule_id = '
5881 ||tax_info_rec.Invoicing_rule_id );
5882 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': FOB_point = '||tax_info_rec.FOB_point );
5883 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Trx_currency_code = '
5884 ||tax_info_rec.Trx_currency_code );
5885 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Trx_exchange_rate = '
5886 ||tax_info_rec.Trx_exchange_rate );
5887 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Minimum_accountable_unit = '
5888 ||tax_info_rec.Minimum_accountable_unit );
5889 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Precision = '||tax_info_rec.Precision );
5890 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Customer_trx_line_id = '
5891 ||tax_info_rec.Customer_trx_line_id );
5892 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': link_to_cust_trx_line_id = '
5893 ||tax_info_rec.link_to_cust_trx_line_id );
5894 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Memo_line_id = '||tax_info_rec.Memo_line_id );
5895 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Taxed_quantity = '||tax_info_rec.Taxed_quantity );
5896 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Inventory_item_id = '||tax_info_rec.Inventory_item_id );
5897 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Extended_amount = '||tax_info_rec.Extended_amount );
5898 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Tax_code = '||tax_info_rec.Tax_code );
5899 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Vat_tax_id = '||tax_info_rec.Vat_tax_id );
5900 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Tax_exemption_id = '||tax_info_rec.Tax_exemption_id );
5901 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Item_exception_rate_id = '
5902 ||tax_info_rec.Item_exception_rate_id );
5903 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Tax_rate = '||tax_info_rec.Tax_rate );
5904 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Default_ussgl_transaction_code = '
5905 ||tax_info_rec.Default_ussgl_transaction_code );
5906 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Default_ussgl_trx_code_context = '
5907 ||tax_info_rec.Default_ussgl_trx_code_context );
5908 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Tax_control = '||tax_info_rec.Tax_control );
5909 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Qualifier = '||tax_info_rec.Qualifier );
5910 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Ship_from_code = '||tax_info_rec.Ship_from_code );
5911 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Ship_to_code = '||tax_info_rec.Ship_to_code );
5912 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Poo_code = '||tax_info_rec.Poo_code );
5913 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Poa_code = '||tax_info_rec.Poa_code );
5914 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Vdrctrl_exempt = '||tax_info_rec.Vdrctrl_exempt );
5915 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Xmpt_cert_no = '||tax_info_rec.Xmpt_cert_no );
5916 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Xmpt_reason = '||tax_info_rec.Xmpt_reason );
5917 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Xmpt_percent = '||tax_info_rec.Xmpt_percent );
5918 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Part_no = '||tax_info_rec.Part_no );
5919 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Userf1 = '||tax_info_rec.Userf1 );
5920 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Userf2 = '||tax_info_rec.Userf2 );
5921 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Userf3 = '||tax_info_rec.Userf3 );
5922 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Userf4 = '||tax_info_rec.Userf4 );
5923 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Userf5 = '||tax_info_rec.Userf5 );
5924 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Userf6 = '||tax_info_rec.Userf6 );
5925 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Userf7 = '||tax_info_rec.Userf7 );
5926 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Userf8 = '||tax_info_rec.Userf8 );
5927 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Userf9 = '||tax_info_rec.Userf9 );
5928 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Userf10 = '||tax_info_rec.Userf10 );
5929 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Usern1 = '||tax_info_rec.Usern1 );
5930 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Usern2 = '||tax_info_rec.Usern2 );
5931 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Usern3 = '||tax_info_rec.Usern3 );
5932 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Usern4 = '||tax_info_rec.Usern4 );
5933 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Usern5 = '||tax_info_rec.Usern5 );
5934 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Usern6 = '||tax_info_rec.Usern6 );
5935 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Usern7 = '||tax_info_rec.Usern7 );
5936 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Usern8 = '||tax_info_rec.Usern8 );
5937 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Usern9 = '||tax_info_rec.Usern9 );
5938 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Usern10 = '||tax_info_rec.Usern10 );
5939 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': trx_number = '||tax_info_rec.trx_number );
5940 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': previous_customer_trx_line_id = '||tax_info_rec.previous_customer_trx_line_id );
5941 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': previous_customer_trx_id = '||tax_info_rec.previous_customer_trx_id );
5942 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': previous_trx_number = '||tax_info_rec.previous_trx_number );
5943 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': bill_to_customer_number = '||tax_info_rec.bill_to_customer_number);
5944 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': ship_to_customer_number = '||tax_info_rec.ship_to_customer_number);
5945 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': bill_to_customer_name = '||tax_info_rec.bill_to_customer_name);
5946 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': ship_to_customer_name = '||tax_info_rec.ship_to_customer_name);
5947 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Audit_Flag = ' || tax_info_rec.audit_flag );
5948 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Trx_Line_Type = ' || tax_info_rec.trx_line_type );
5949 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Division Code = ' || tax_info_rec.division_code );
5950 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Company Code = '|| tax_info_rec.company_code );
5951 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Calculate_tax = '||tax_info_rec.Calculate_tax );
5952 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Status = '||tax_info_rec.Status );
5953 END IF;
5954 IF ( tax_info_rec.tax_type = 0 ) THEN
5955 dummy := 'TAX_TYPE_INACTIVE';
5956 ELSIF ( tax_info_rec.tax_type = 1 ) THEN
5957 dummy := 'TAX_TYPE_LOCATION';
5958 ELSIF ( tax_info_rec.tax_type = 2 ) THEN
5959 dummy := 'TAX_TYPE_SALES';
5960 ELSIF ( tax_info_rec.tax_type = 3 ) THEN
5961 dummy := 'TAX_TYPE_VAT';
5962 ELSE
5963 dummy := null;
5964 END IF;
5965 IF (g_level_statement >= g_current_runtime_level) THEN
5966 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Tax_type = '||dummy );
5967 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Sales_tax_id = '||tax_info_rec.Sales_tax_id );
5968 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Location_segment_id = '
5969 ||tax_info_rec.Location_segment_id );
5970 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Tax_line_number = '
5971 ||tax_info_rec.Tax_line_number );
5972 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Tax_amount = '||tax_info_rec.Tax_amount );
5973 END IF;
5974 IF ( tax_info_rec.tax_vendor_return_code = TAX_NO_VENDOR ) THEN
5975 dummy := 'TAX_NO_VENDOR';
5976 ELSE
5977 dummy := null;
5978 END IF;
5979 IF (g_level_statement >= g_current_runtime_level) THEN
5980 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Tax_vendor_return_code = '||dummy );
5981 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Tax_precedence = '
5982 ||tax_info_rec.Tax_precedence );
5983 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Compound_amount = '
5984 ||tax_info_rec.Compound_amount );
5985 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Tax_header_level_flag = '
5986 ||tax_info_rec.Tax_header_level_flag );
5987 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Tax_rounding_rule = '
5988 ||tax_info_rec.Tax_rounding_rule );
5989 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Trx_type_id = '
5990 ||tax_info_rec.Trx_type_id );
5991 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Ship_From_Warehouse_id = '
5992 ||tax_info_rec.Ship_From_Warehouse_id );
5993 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Amount_includes_tax_flag = '
5994 ||tax_info_rec.Amount_includes_tax_flag );
5995 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Customer_trx_charge_line_id = '
5996 ||tax_info_rec.customer_trx_charge_line_id );
5997 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Poo_id = '
5998 ||tax_info_rec.poo_id );
5999 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Poa_id = '
6000 ||tax_info_rec.poa_id );
6001 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Taxable_amount = '
6002 ||tax_info_rec.taxable_amount );
6003 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Taxable_basis = '
6004 ||tax_info_rec.taxable_basis );
6005 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Override Tax Rate = '
6006 ||tax_info_rec.override_tax_rate );
6007 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', '... '||l_IO_flag||': Party Flag = '
6008 ||tax_info_rec.party_flag );
6009 END IF;
6010
6011
6012 --
6013 -- Finished dumping
6014 --
6015 IF (g_level_procedure >= g_current_runtime_level ) THEN
6016 FND_LOG.STRING(g_level_procedure,
6017 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.dump_tax_info_rec.END',
6018 'ZX_PRODUCT_INTEGRATION_PKG.dump_tax_info_rec(-)');
6019 END IF;
6020
6021 END dump_tax_info_rec;
6022
6023
6024 /*----------------------------------------------------------------------------*
6025 | PUBLIC FUNCTION |
6026 | Tax_Curr_Round ( p_amount in |
6027 | p_trx_currency in, |
6028 | p_precision in, |
6029 | p_min_acct_unit in, |
6030 | p_rounding_rule in |
6031 | |
6032 | DESCRIPTION |
6033 | Given the parameters listed above, the function will return the amount |
6034 | rounded to the correct precision. |
6035 | |
6036 | RETURNS |
6037 | Rounded amount. |
6038 | |
6039 | HISTORY |
6040 | 12/27/04 Nilesh Patel Copied from arp_tax_compound |
6041 | |
6042 *----------------------------------------------------------------------------*/
6043
6044 FUNCTION tax_curr_round( p_amount IN NUMBER,
6045 p_trx_currency_code IN VARCHAR2,
6046 p_precision IN NUMBER,
6047 p_min_acct_unit IN NUMBER,
6048 p_rounding_rule IN VARCHAR2,
6049 p_autotax_flag IN VARCHAR2 )
6050
6051 /* p_autotax_flag is ignored in bugfix 378224 as all tax transactions must be rounded */
6052 /* this includes manually imported tax amounts */
6053 RETURN NUMBER IS
6054
6055 l_rounded_amount NUMBER;
6056 l_precision NUMBER;
6057 l_rounding_rule VARCHAR2(30);
6058 l_min_acct_unit NUMBER;
6059 l_round_adj NUMBER;
6060 l_autotax_flag VARCHAR2(1);
6061
6062 PG_DEBUG varchar2(1);
6063
6064 BEGIN
6065
6066 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
6067
6068 IF (g_level_procedure >= g_current_runtime_level ) THEN
6069 FND_LOG.STRING(g_level_procedure,
6070 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.tax_curr_round.BEGIN',
6071 'ZX_PRODUCT_INTEGRATION_PKG.tax_curr_round(+)');
6072 END IF;
6073
6074 PG_DEBUG := NVL(FND_PROFILE.value('AFLOG_ENABLED'), 'N');
6075
6076 IF (g_level_statement >= g_current_runtime_level) THEN
6077 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', 'ZX_PRODUCT_INTEGRATION_PKG.tax_curr_round( ' || p_amount || ' )+' );
6078 END IF;
6079
6080 if p_rounding_rule not in ('UP','DOWN','NEAREST') then
6081 l_rounding_rule := 'NEAREST';
6082 else
6083 l_rounding_rule := p_rounding_rule;
6084 end if;
6085
6086 if p_autotax_flag not in ('Y','N','U') then
6087 l_autotax_flag := 'Y';
6088 else
6089 l_autotax_flag := p_autotax_flag;
6090 end if;
6091
6092
6093 if p_trx_currency_code = ZX_PRODUCT_INTEGRATION_PKG.sysinfo.sysparam.tax_currency_code and l_autotax_flag in ( 'Y','U')
6094 THEN
6095
6096 l_precision := least( p_precision, nvl(ZX_PRODUCT_INTEGRATION_PKG.sysinfo.sysparam.tax_precision, p_precision) );
6097 l_min_acct_unit := greatest( nvl(p_min_acct_unit, ZX_PRODUCT_INTEGRATION_PKG.sysinfo.sysparam.tax_minimum_accountable_unit),
6098 nvl(ZX_PRODUCT_INTEGRATION_PKG.sysinfo.sysparam.tax_minimum_accountable_unit, p_min_acct_unit));
6099
6100 ELSE
6101
6102 l_precision := p_precision;
6103 l_min_acct_unit := p_min_acct_unit;
6104
6105 END IF;
6106
6107 IF (g_level_statement >= g_current_runtime_level) THEN
6108 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG',' trx currency = :'||p_trx_currency_code||':');
6109 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG',' sys currency = :'||ZX_PRODUCT_INTEGRATION_PKG.sysinfo.sysparam.tax_currency_code||':');
6110 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG',' autotax = :'||p_autotax_flag||':');
6111 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG',' rounding rule = :'||l_rounding_rule||':');
6112 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG',' precision = :'||to_char(l_precision)||':');
6113 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG',' mau = :'||to_char(l_min_acct_unit)||':');
6114 END IF;
6115
6116 IF ( nvl(l_min_acct_unit,0) <> 0 )
6117 THEN
6118
6119 IF nvl(l_rounding_rule, 'NEAREST' ) = 'UP'
6120 THEN
6121 --
6122 -- Round the amount Up to next Min Accountable Unit
6123 --
6124 l_rounded_amount := sign(p_amount)* (CEIL(abs(p_amount) / l_min_acct_unit) * l_min_acct_unit);
6125
6126 ELSIF nvl(l_rounding_rule, 'NEAREST' ) = 'DOWN'
6127 THEN
6128
6129 --
6130 -- Round the amount Down to the prior Min Accountable Unit
6131 --
6132 l_rounded_amount := TRUNC(p_amount/l_min_acct_unit) * l_min_acct_unit;
6133
6134 ELSE /* ROUND NEAREST BY DEFAULT */
6135
6136 --
6137 -- Round the amount to the nearest Min Accountable Unit
6138 --
6139 l_rounded_amount := ROUND(p_amount / l_min_acct_unit) * l_min_acct_unit;
6140
6141 END IF;
6142
6143
6144 ELSE
6145
6146 --
6147 -- Minimum Accountable Unit is not specified, use
6148 -- the precision to control the rounding
6149 --
6150 IF nvl(l_rounding_rule, 'NEAREST' ) = 'UP'
6151 THEN
6152 --
6153 -- Round the amount Up at the given precision
6154 -- Amounts that are already at this precision
6155 -- are not changed.
6156 --
6157 IF p_amount <> trunc(p_amount, l_precision)
6158 THEN
6159 l_rounded_amount := ROUND( p_amount + (sign( p_amount)*(power( 10, (l_precision*-1))/2)), l_precision );
6160 ELSE
6161 l_rounded_amount := p_amount;
6162 END IF;
6163 ELSIF nvl(l_rounding_rule, 'NEAREST' ) = 'DOWN'
6164 THEN
6165 --
6166 -- Round the amount Down to the prior precision
6167 --
6168 l_rounded_amount:= TRUNC( p_amount, l_precision );
6169
6170 ELSE /* Default Nearest */
6171 --
6172 -- Round the amount to the nearest precision
6173 --
6174 l_rounded_amount := ROUND( p_amount, l_precision );
6175
6176 END IF;
6177
6178 END IF;
6179
6180 IF (g_level_procedure >= g_current_runtime_level ) THEN
6181 FND_LOG.STRING(g_level_procedure,
6182 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.tax_curr_round',
6183 'rounded_amount: '||to_char( l_rounded_amount) );
6184 FND_LOG.STRING(g_level_procedure,
6185 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.tax_curr_round.END',
6186 'ZX_PRODUCT_INTEGRATION_PKG.tax_curr_round(-)');
6187 END IF;
6188
6189 RETURN (l_rounded_amount);
6190
6191 EXCEPTION
6192 WHEN OTHERS THEN
6193 IF (g_level_unexpected >= g_current_runtime_level ) THEN
6194 FND_LOG.STRING(g_level_unexpected,
6195 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.tax_curr_round',
6196 sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80));
6197 END IF;
6198 RAISE;
6199 END tax_curr_round;
6200
6201
6202 /*----------------------------------------------------------------------------*
6203 | PRIVATE PROCEDURE |
6204 | get_vat_tax_rate |
6205 | |
6206 | DESCRIPTION |
6207 | This procedure will get the vat_tax_id, tax type and the tax rate for |
6208 | the given tax code using tax code, set of books and trx date. If a |
6209 | tax code is not found then the exception TAX_NO_CODE is raised, If the |
6210 | tax code is found, but inactive, the exception TAX_CODE_INACTIVE is |
6211 | raised. Moreover, if an inactive tax code is found the tax type for the |
6212 | global record will be set to TYPE_INACTIVE. If a tax code is not passed |
6213 | exception TAX_NO_RATE is raised. |
6214 | |
6215 | PARAMETERS |
6216 | THRU GLOBALS: |
6217 | tax_info_rec.tax_code in varchar2 |
6218 | sysinfo.sysparam.set_of_books_id in number |
6219 | tax_info_rec.trx_date in number |
6220 | |
6221 | |
6222 | RETURNS |
6223 | THRU GLOBALS: |
6224 | if an active tax code exits |
6225 | tax_info_rec.vat_tax_id |
6226 | tax_info_rec.tax_rate |
6227 | tax_info_rec.tax_type |
6228 | exception TAX_NO_CODE when tax code not found |
6229 | exception TAX_NO_RATE when tax code is not passed |
6230 | exception TAX_CODE_INACTIVE when tax code inactive. |
6231 | |
6232 | CALLED FROM |
6233 | Calculate() |
6234 | |
6235 | |
6236 | HISTORY |
6237 | |
6238 *----------------------------------------------------------------------------*/
6239
6240 PROCEDURE get_vat_tax_rate IS
6241 l_tax_code_count NUMBER;
6242
6243 -- If the Tax code passed is ADHOC and a tax rate is passed, use the tax rate
6244 -- else assign standard tax rate for tax code.
6245 --
6246 CURSOR sel_vat_tax_rate IS
6247 SELECT vat_tax_id, tax_rate,
6248 TAX_TYPE_VAT,
6249 nvl(validate_flag, 'N')
6250 FROM ar_vat_tax
6251 WHERE tax_code = tax_info_rec.tax_code
6252 AND set_of_books_id = sysinfo.sysparam.set_of_books_id
6253 AND trunc(tax_info_rec.trx_date) between start_date and
6254 nvl(end_date, trunc(tax_info_rec.trx_date))
6255 AND nvl(enabled_flag, 'Y') = 'Y'
6256 AND nvl(tax_class, 'O') = 'O';
6257
6258
6259 CURSOR sel_vat_tax_code_count IS
6260 SELECT 1
6261 FROM DUAL
6262 WHERE EXISTS ( SELECT tax_code
6263 FROM ar_vat_tax
6264 WHERE tax_code = tax_info_rec.tax_code
6265 AND set_of_books_id = sysinfo.sysparam.set_of_books_id
6266 AND nvl(enabled_flag, 'Y') = 'Y'
6267 AND nvl(tax_class, 'O') = 'O');
6268
6269 BEGIN
6270
6271 IF (g_level_statement >= g_current_runtime_level) THEN
6272 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', 'zx_product_integration_pkg.get_vat_tax_rate()+' );
6273 END IF;
6274
6275 --
6276 -- If tax code passed, get tax rate info
6277 --
6278 IF ( tax_info_rec.tax_code IS NOT NULL ) THEN
6279
6280 --
6281 -- Fetch vat tax rate
6282 --
6283 OPEN sel_vat_tax_rate;
6284 FETCH sel_vat_tax_rate INTO
6285 tax_info_rec.vat_tax_id, tax_info_rec.tax_rate,
6286 tax_info_rec.tax_type, pg_adhoc_tax_code;
6287
6288 --
6289 -- Verify if an active tax code is found!
6290 --
6291 IF ( sel_vat_tax_rate%NOTFOUND ) THEN
6292 --
6293 -- Verify if tax code exists, if it exists, then its inactive
6294 --
6295 OPEN sel_vat_tax_code_count;
6296 FETCH sel_vat_tax_code_count INTO l_tax_code_count;
6297
6298 IF ( sel_vat_tax_code_count%NOTFOUND ) THEN
6299 --
6300 -- Undefined tax code
6301 --
6302 raise TAX_NO_CODE;
6303 ELSE
6304 --
6305 -- Tax code passed is inactive for the trx date
6306 --
6307 tax_info_rec.tax_type := TAX_TYPE_INACTIVE;
6308 raise TAX_CODE_INACTIVE;
6309 END IF;
6310
6311 CLOSE sel_vat_tax_code_count;
6312
6313 ELSE
6314 if pg_adhoc_tax_code = 'Y' then
6315 -- retrieve_adhoc;
6316 -- LTE tax codes are not adhoc
6317 NULL;
6318 end if;
6319 END IF; -- Active tax code exists?
6320
6321 CLOSE sel_vat_tax_rate;
6322
6323 ELSE -- Tax code not passed
6324
6325 raise TAX_NO_RATE;
6326
6327 END IF; -- Tax code passed?
6328
6329 --
6330 tax_info_rec.tax_rate := nvl(tax_info_rec.override_tax_rate,
6331 tax_info_rec.tax_rate);
6332
6333 --
6334 -- Debug Info
6335 --
6336 IF (g_level_statement >= g_current_runtime_level) THEN
6337 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','>>> O : Vat_tax_id = '||tax_info_rec.Vat_tax_id);
6338 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','>>> O : Tax_rate = '||tax_info_rec.tax_rate);
6339 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG','>>> O : Tax_type = '||tax_info_rec.tax_type);
6340 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', 'arp_tax.get_vat_tax_rate()-' );
6341 END IF;
6342
6343 EXCEPTION
6344 WHEN TAX_NO_RATE THEN
6345 IF (g_level_statement >= g_current_runtime_level) THEN
6346 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', 'EXCEPTION(TAX_NO_RATE) : arp_tax.get_vat_tax_rate()-');
6347 END IF;
6348 IF ( sel_vat_tax_rate%ISOPEN ) THEN
6349 CLOSE sel_vat_tax_rate;
6350 END IF;
6351 IF ( sel_vat_tax_code_count%ISOPEN ) THEN
6352 CLOSE sel_vat_tax_code_count;
6353 END IF;
6354 RAISE ;
6355
6356 WHEN TAX_NO_CODE THEN
6357 IF (g_level_statement >= g_current_runtime_level) THEN
6358 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', 'EXCEPTION(TAX_NO_CODE) : arp_tax.get_vat_tax_rate()-');
6359 END IF;
6360 IF ( sel_vat_tax_rate%ISOPEN ) THEN
6361 CLOSE sel_vat_tax_rate;
6362 END IF;
6363 IF ( sel_vat_tax_code_count%ISOPEN ) THEN
6364 CLOSE sel_vat_tax_code_count;
6365 END IF;
6366 RAISE ;
6367
6368 WHEN TAX_CODE_INACTIVE THEN
6369 IF (g_level_statement >= g_current_runtime_level) THEN
6370 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', 'EXCEPTION(TAX_CODE_INACTIVE) : arp_tax.get_vat_tax_rate()-');
6371 END IF;
6372 IF ( sel_vat_tax_rate%ISOPEN ) THEN
6373 CLOSE sel_vat_tax_rate;
6374 END IF;
6375 IF ( sel_vat_tax_code_count%ISOPEN ) THEN
6376 CLOSE sel_vat_tax_code_count;
6377 END IF;
6378 RAISE ;
6379
6380 WHEN OTHERS THEN
6381 IF (g_level_statement >= g_current_runtime_level) THEN
6382 FND_LOG.STRING(g_level_statement,'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG', 'EXCEPTION(OTHERS) : arp_tax.get_vat_tax_rate()-');
6383 END IF;
6384 IF ( sel_vat_tax_rate%ISOPEN ) THEN
6385 CLOSE sel_vat_tax_rate;
6386 END IF;
6387 IF ( sel_vat_tax_code_count%ISOPEN ) THEN
6388 CLOSE sel_vat_tax_code_count;
6389 END IF;
6390 RAISE ;
6391
6392 END get_vat_tax_rate;
6393
6394
6395
6396
6397 /*===========================================================================+
6398 | PROCEDURE |
6399 | copy_lte_gdfs |
6400 | |
6401 | DESCRIPTION |
6402 | This procedure copies the global attribute columns from |
6403 | ra_customer_Trx_lines into named columns trx_busoness_category, |
6404 | product_category and product_fiscal_class for Latin Tax Engine |
6405 | |
6406 | This procedure should be called by Receivables at the time of |
6407 | populating eBTax Global Temporary tables zx_trx_headers_gt and |
6408 | zx_transaction_lines_gt during autoinvoice |
6409 | |
6410 | MODIFICATION HISTORY |
6411 | 19-Jan-2005 Nilesh Patel Created |
6412 | |
6413 +===========================================================================*/
6414 PROCEDURE copy_lte_gdfs(
6415 x_return_status OUT NOCOPY VARCHAR2)
6416 IS
6417 l_delimiter zx_fc_types_b.delimiter%type;
6418
6419 CURSOR c_delimiter IS
6420 SELECT delimiter
6421 FROM zx_fc_types_b
6422 WHERE classification_type_code ='TRX_BUSINESS_CATEGORY';
6423
6424 BEGIN
6425
6426 OPEN c_delimiter;
6427 FETCH c_delimiter INTO l_delimiter;
6428 CLOSE c_delimiter;
6429
6430 -- bug#6834705 - use tax_event_class_code from
6431 -- zx_evnt_cls_mappings, not from zx_trx_headers_gt
6432 --
6433
6434 MERGE INTO ZX_TRANSACTION_LINES_GT lines_gt
6435 USING (SELECT
6436 ratrxlines.global_attribute_category,
6437 ratrxlines.global_attribute1,
6438 ratrxlines.global_attribute2 product_category,
6439 ratrxlines.global_attribute3 trx_business_category,
6440 Event.tax_event_class_code tax_event_class_code,
6441 Lines.trx_line_id trx_line_id
6442 FROM
6443 zx_transaction_lines_gt Lines,
6444 --zx_trx_headers_gt Headers,
6445 zx_evnt_cls_mappings event,
6446 ra_customer_trx_lines_all ratrxlines
6447 WHERE
6448 lines.application_id = 222
6449 AND lines.application_id = event.application_id
6450 AND lines.entity_code = event.entity_code
6451 AND lines.event_class_code = event.event_class_code
6452 AND Lines.trx_id = ratrxlines.customer_Trx_id
6453 AND Lines.trx_line_id = ratrxlines.customer_Trx_line_id
6454 AND ratrxlines.line_type = 'LINE'
6455 AND ratrxlines.memo_line_id is NOT NULL
6456 ) Temp
6457 ON ( Lines_gt.trx_line_id = Temp.trx_line_id)
6458 WHEN MATCHED THEN
6459 UPDATE SET
6460 trx_business_category = nvl(Lines_gt.trx_business_category,
6461 DECODE(Temp.trx_business_category,NULL,Temp.trx_business_category,
6462 Temp.tax_event_class_code||l_delimiter||Temp.trx_business_category)),
6463 product_category = nvl(Lines_gt.product_category, Temp.product_category),
6464 global_attribute1 = Temp.global_attribute1,
6465 global_attribute_category = Temp.global_attribute_category
6466 WHEN NOT MATCHED THEN
6467 INSERT (LINE_AMT) VALUES(NULL);
6468
6469
6470 MERGE INTO ZX_TRANSACTION_LINES_GT lines_gt
6471 USING (SELECT
6472 ratrxlines.global_attribute_category,
6473 ratrxlines.global_attribute1,
6474 ratrxlines.global_attribute2 product_fiscal_class,
6475 ratrxlines.global_attribute3 trx_business_category,
6476 Event.tax_event_class_code tax_event_class_code,
6477 Lines.trx_line_id trx_line_id
6478 FROM
6479 zx_transaction_lines_gt Lines,
6480 --zx_trx_headers_gt Headers,
6481 zx_evnt_cls_mappings event,
6482 ra_customer_trx_lines_all ratrxlines
6483 WHERE
6484 lines.application_id = 222
6485 AND lines.application_id = event.application_id
6486 AND lines.entity_code = event.entity_code
6487 AND lines.event_class_code = event.event_class_code
6488 --AND lines.trx_id = headers.trx_id
6489 AND Lines.trx_id = ratrxlines.customer_Trx_id
6490 AND Lines.trx_line_id = ratrxlines.customer_Trx_line_id
6491 AND ratrxlines.line_type = 'LINE'
6492 AND ratrxlines.inventory_item_id is NOT NULL
6493 ) Temp
6494 ON ( Lines_gt.trx_line_id = Temp.trx_line_id)
6495 WHEN MATCHED THEN
6496 UPDATE SET
6497 trx_business_category = nvl(Lines_gt.trx_business_category,
6498 DECODE(Temp.trx_business_category,NULL,Temp.trx_business_category,
6499 Temp.tax_event_class_code||l_delimiter||Temp.trx_business_category)),
6500 product_fisc_classification = nvl(Lines_gt.product_fisc_classification, Temp.product_fiscal_class),
6501 global_attribute1 = Temp.global_attribute1,
6502 global_attribute_category = Temp.global_attribute_category
6503 WHEN NOT MATCHED THEN
6504 INSERT (LINE_AMT) VALUES(NULL);
6505
6506
6507 EXCEPTION
6508 WHEN OTHERS THEN
6509 NULL;
6510
6511 END copy_lte_gdfs;
6512
6513
6514 /*===========================================================================+
6515 | FUNCTION |
6516 | adjust_compound_inclusive |
6517 | |
6518 | DESCRIPTION |
6519 | go through tax_rec_tbl to adjust for Compounding and Inclusive |
6520 | for group tax. |
6521 | |
6522 | SCOPE - Public |
6523 | |
6524 | NOTES |
6525 | |
6526 | MODIFICATION HISTORY |
6527 | 20-Sep-05 Nilesh Patel Created |
6528 | |
6529 +===========================================================================*/
6530 function adjust_compound_inclusive return number is
6531
6532 l_inclusive_amount NUMBER := 0;
6533 l_sum_of_incl_tax NUMBER := 0;
6534 l_max_counter NUMBER := 0;
6535
6536 begin
6537
6538 IF (g_level_procedure >= g_current_runtime_level ) THEN
6539 FND_LOG.STRING(g_level_procedure,
6540 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG',
6541 'ZX_PRODUCT_INTEGRATION_PKG.adjust_compound_inclusive(+)');
6542 END IF;
6543
6544 --
6545 -- Check the group tax contains inclusive tax or not.
6546 --
6547
6548 if (sysinfo.sysparam.tax_method = MTHD_LATIN) then
6549
6550 begin
6551
6552 l_max_counter := 0;
6553 l_sum_of_incl_tax := 0;
6554
6555 l_max_counter := nvl(tax_rec_tbl.last,0);
6556 --
6557 IF (g_level_procedure >= g_current_runtime_level ) THEN
6558 FND_LOG.STRING(g_level_procedure,
6559 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG',
6560 '-- Number of tax lines for this transaction line '||
6561 to_char(l_max_counter));
6562 END IF;
6563
6564 --
6565 for i in 1..l_max_counter
6566 LOOP
6567 --
6568 IF NVL(tax_rec_tbl(i).amount_includes_tax_flag,'N') = 'Y' THEN
6569 l_sum_of_incl_tax := l_sum_of_incl_tax +
6570 tax_rec_tbl(i).extended_amount;
6571 END IF;
6572 --
6573 end loop;
6574
6575 IF (g_level_procedure >= g_current_runtime_level ) THEN
6576 FND_LOG.STRING(g_level_procedure,
6577 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG',
6578 '-- Total inclusive tax amount for this transaction line '
6579 || to_char(l_sum_of_incl_tax));
6580 END IF;
6581
6582 l_inclusive_amount := l_sum_of_incl_tax;
6583
6584 --
6585 IF (g_level_procedure >= g_current_runtime_level ) THEN
6586 FND_LOG.STRING(g_level_procedure,
6587 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG',
6588 'ZX_PRODUCT_INTEGRATION_PKG.adjust_compound_inclusive(-)');
6589 END IF;
6590
6591 return l_inclusive_amount;
6592 end;
6593 end if; -- MTHD_LATIN
6594
6595 return l_inclusive_amount;
6596
6597 end;
6598
6599 /*===========================================================================+
6600 | PROCEDURE |
6601 | fetch_manual_tax_lines |
6602 | |
6603 | DESCRIPTION |
6604 | This procedure fetch detail tax lines from zx_lines |
6605 | |
6606 | SCOPE - Private |
6607 | |
6608 | MODIFICATION HISTORY |
6609 | 18-Mar-2009 Simranjeet Singh Created |
6610 | |
6611 +===========================================================================*/
6612
6613 PROCEDURE fetch_manual_tax_lines (
6614 p_event_class_rec IN ZX_API_PUB.event_class_rec_type,
6615 p_index IN BINARY_INTEGER,
6616 x_return_status OUT NOCOPY VARCHAR2)
6617 IS
6618 CURSOR get_manual_tax_lines IS
6619 SELECT * FROM zx_lines
6620 WHERE trx_id = p_event_class_rec.trx_id
6621 AND application_id = p_event_class_rec.application_id
6622 AND event_class_code = p_event_class_rec.event_class_code
6623 AND entity_code = p_event_class_rec.entity_code
6624 AND trx_line_id = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_line_id(p_index)
6625 AND trx_level_type = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_level_type(p_index)
6626 AND manually_entered_flag = 'Y'
6627 AND cancel_flag <> 'Y'
6628 AND mrc_tax_line_flag = 'N'
6629 AND tax_provider_id IS NULL;
6630
6631 l_row_num NUMBER;
6632 l_tax_regime_rec ZX_GLOBAL_STRUCTURES_PKG.tax_regime_rec_type;
6633 l_tax_rec ZX_TDS_UTILITIES_PKG.zx_tax_info_cache_rec;
6634 l_tax_status_rec ZX_TDS_UTILITIES_PKG.zx_status_info_rec;
6635 l_tax_rate_rec ZX_TDS_UTILITIES_PKG.zx_rate_info_rec_type;
6636 l_current_line_amt ZX_LINES.line_amt%TYPE;
6637 l_tax_class VARCHAR2(30);
6638 l_tax_date DATE;
6639 l_tax_determine_date DATE;
6640 l_tax_point_date DATE;
6641 l_error_buffer VARCHAR2(240);
6642 l_return_status VARCHAR2(1);
6643 l_begin_index NUMBER;
6644 l_end_index NUMBER;
6645
6646 BEGIN
6647 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
6648
6649 IF (g_level_event >= g_current_runtime_level ) THEN
6650 FND_LOG.STRING(g_level_event,
6651 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines.BEGIN',
6652 'ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines(+)');
6653 END IF;
6654
6655 x_return_status := FND_API.G_RET_STS_SUCCESS;
6656
6657 IF p_event_class_rec.prod_family_grp_code = 'O2C' THEN
6658 l_tax_class := 'OUTPUT';
6659 ELSIF p_event_class_rec.prod_family_grp_code = 'P2P' THEN
6660 l_tax_class := 'INPUT';
6661 END IF;
6662
6663 l_row_num := NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl.LAST,0);
6664
6665 -- get tax date
6666 ZX_TDS_APPLICABILITY_DETM_PKG.get_tax_date(
6667 p_index,
6668 l_tax_date,
6669 l_tax_determine_date,
6670 l_tax_point_date,
6671 x_return_status);
6672
6673 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6674 IF (g_level_unexpected >= g_current_runtime_level ) THEN
6675 FND_LOG.STRING(g_level_unexpected,
6676 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines',
6677 'Incorrect return_status after calling ' ||
6678 'ZX_TDS_APPLICABILITY_DETM_PKG.get_tax_date()');
6679 FND_LOG.STRING(g_level_unexpected,
6680 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines',
6681 'RETURN_STATUS = ' || x_return_status);
6682 FND_LOG.STRING(g_level_unexpected,
6683 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines.END',
6684 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines(-)');
6685 END IF;
6686 RETURN;
6687 END IF;
6688
6689 FOR tax_line_rec IN get_manual_tax_lines LOOP
6690 l_row_num := l_row_num + 1;
6691 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_row_num) := tax_line_rec;
6692
6693 IF tax_line_rec.other_doc_source = 'REFERENCE' AND
6694 tax_line_rec.unrounded_tax_amt = 0 AND
6695 tax_line_rec.unrounded_taxable_amt = 0 AND
6696 tax_line_rec.manually_entered_flag = 'Y' AND
6697 tax_line_rec.freeze_until_overridden_flag ='Y'
6698 THEN
6699 NULL;
6700
6701 ELSE
6702 -- validate and populate tax_regime_id
6703 ZX_TDS_UTILITIES_PKG.get_regime_cache_info(
6704 tax_line_rec.tax_regime_code,
6705 l_tax_determine_date,
6706 l_tax_regime_rec,
6707 x_return_status,
6708 l_error_buffer);
6709
6710 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6711 IF (g_level_statement >= g_current_runtime_level ) THEN
6712 FND_LOG.STRING(g_level_statement,
6713 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines',
6714 'Incorrect return_status after calling ' ||
6715 'ZX_TDS_UTILITIES_PKG.get_regime_cache_info');
6716 FND_LOG.STRING(g_level_statement,
6717 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines',
6718 'RETURN_STATUS = ' || x_return_status);
6719 FND_LOG.STRING(g_level_statement,
6720 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines.END',
6721 'ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines(-)');
6722 END IF;
6723 RETURN;
6724 END IF;
6725
6726 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_row_num).tax_regime_id := l_tax_regime_rec.tax_regime_id;
6727
6728 -- validate and populate tax_id
6729 ZX_TDS_UTILITIES_PKG.get_tax_cache_info(
6730 tax_line_rec.tax_regime_code,
6731 tax_line_rec.tax,
6732 l_tax_determine_date,
6733 l_tax_rec,
6734 x_return_status,
6735 l_error_buffer);
6736
6737 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6738 IF (g_level_statement >= g_current_runtime_level ) THEN
6739 FND_LOG.STRING(g_level_statement,
6740 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines',
6741 'Incorrect return_status after calling ' ||
6742 'ZX_TDS_UTILITIES_PKG.get_tax_cache_info');
6743 FND_LOG.STRING(g_level_statement,
6744 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines',
6745 'RETURN_STATUS = ' || x_return_status);
6746 FND_LOG.STRING(g_level_statement,
6747 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines.END',
6748 'ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines(-)');
6749 END IF;
6750 RETURN;
6751 END IF;
6752
6753 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_row_num).tax_id := l_tax_rec.tax_id;
6754
6755 -- validate and populate tax_status_id
6756 ZX_TDS_UTILITIES_PKG.get_tax_status_cache_info(
6757 tax_line_rec.tax,
6758 tax_line_rec.tax_regime_code,
6759 tax_line_rec.tax_status_code,
6760 l_tax_determine_date,
6761 l_tax_status_rec,
6762 x_return_status,
6763 l_error_buffer);
6764
6765 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6766 IF (g_level_statement >= g_current_runtime_level ) THEN
6767 FND_LOG.STRING(g_level_statement,
6768 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines',
6769 'Incorrect return_status after calling ' ||
6770 'ZX_TDS_UTILITIES_PKG.get_tax_status_cache_info');
6771 FND_LOG.STRING(g_level_statement,
6772 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines',
6773 'RETURN_STATUS = ' || x_return_status);
6774 FND_LOG.STRING(g_level_statement,
6775 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines.END',
6776 'ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines(-)');
6777 END IF;
6778 RETURN;
6779 END IF;
6780
6781 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_row_num).tax_status_id := l_tax_status_rec.tax_status_id;
6782
6783 -- validate and populate tax_rate_id
6784 ZX_TDS_UTILITIES_PKG.get_tax_rate_info(
6785 tax_line_rec.tax_regime_code,
6786 tax_line_rec.tax,
6787 tax_line_rec.tax_jurisdiction_code,
6788 tax_line_rec.tax_status_code,
6789 tax_line_rec.tax_rate_code,
6790 l_tax_determine_date,
6791 l_tax_class,
6792 l_tax_rate_rec,
6793 x_return_status,
6794 l_error_buffer);
6795
6796 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6797 IF (g_level_statement >= g_current_runtime_level ) THEN
6798 FND_LOG.STRING(g_level_statement,
6799 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines',
6800 'Incorrect return_status after calling ' ||
6801 'ZX_TDS_UTILITIES_PKG.get_tax_rate_info');
6802 FND_LOG.STRING(g_level_statement,
6803 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines',
6804 'RETURN_STATUS = ' || x_return_status);
6805 FND_LOG.STRING(g_level_statement,
6806 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines.END',
6807 'ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines(-)');
6808 END IF;
6809 RETURN;
6810 END IF;
6811
6812 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_row_num).tax_rate_id := l_tax_rate_rec.tax_rate_id;
6813
6814
6815 -- when Recalculate Manual Tax Lines flag is 'Y',
6816 -- prorate tax amount and taxable amount
6817 IF p_event_class_rec.allow_manual_lin_recalc_flag ='Y' THEN
6818 l_current_line_amt := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_amt(p_index);
6819
6820 IF tax_line_rec.line_amt <> 0 THEN
6821 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
6822 l_row_num).unrounded_tax_amt :=
6823 tax_line_rec.unrounded_tax_amt *
6824 l_current_line_amt/tax_line_rec.line_amt;
6825 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
6826 l_row_num).unrounded_taxable_amt :=
6827 tax_line_rec.unrounded_taxable_amt *
6828 l_current_line_amt/tax_line_rec.line_amt;
6829 END IF;
6830
6831 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(
6832 l_row_num).tax_amt := ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_row_num).unrounded_tax_amt;
6833
6834 IF (l_begin_index is null) THEN
6835 l_begin_index := l_row_num;
6836 END IF;
6837 END IF;
6838 END IF;
6839 END LOOP;
6840
6841 IF (l_begin_index IS NOT NULL) THEN
6842 l_end_index := ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl.LAST;
6843 END IF;
6844
6845 ZX_TDS_TAX_LINES_POPU_PKG.cp_tsrm_val_to_zx_lines (p_index,
6846 l_begin_index,
6847 l_end_index,
6848 x_return_status,
6849 l_error_buffer );
6850
6851 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6852 IF (g_level_statement >= g_current_runtime_level ) THEN
6853 FND_LOG.STRING(g_level_statement,
6854 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines',
6855 'Incorrect RETURN_STATUS after calling '||
6856 'ZX_TDS_TAX_LINES_POPU_PKG.cp_tsrm_val_to_zx_lines');
6857 FND_LOG.STRING(g_level_statement,
6858 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines',
6859 'RETURN_STATUS = ' || x_return_status);
6860 FND_LOG.STRING(g_level_statement,
6861 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines.END',
6862 'ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines(-)');
6863 END IF;
6864 RETURN;
6865 END IF;
6866
6867 IF (g_level_event >= g_current_runtime_level ) THEN
6868 FND_LOG.STRING(g_level_event,
6869 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines.END',
6870 'ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines(-)');
6871 END IF;
6872
6873 EXCEPTION
6874 WHEN OTHERS THEN
6875 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6876
6877 IF (g_level_unexpected >= g_current_runtime_level ) THEN
6878 FND_LOG.STRING(g_level_unexpected,
6879 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines',
6880 sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80));
6881 FND_LOG.STRING(g_level_unexpected,
6882 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines.END',
6883 'ZX_PRODUCT_INTEGRATION_PKG.fetch_manual_tax_lines(-)');
6884 END IF;
6885 END fetch_manual_tax_lines;
6886
6887 /*===========================================================================+
6888 | PROCEDURE |
6889 | get_manual_tax_lines_for_cm |
6890 | |
6891 | DESCRIPTION |
6892 | This procedure populates the global structure for tax lines |
6893 | ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl() for |
6894 | the Credit Memo with the details of the manual tax line of |
6895 | the adjusted doc |
6896 | |
6897 | SCOPE - Private |
6898 | |
6899 | MODIFICATION HISTORY |
6900 | 09-Sep-2009 Simranjeet Singh Created |
6901 | |
6902 +===========================================================================*/
6903 PROCEDURE get_manual_tax_lines_for_cm (
6904 p_event_class_rec IN ZX_API_PUB.event_class_rec_type,
6905 p_index IN BINARY_INTEGER,
6906 x_return_status OUT NOCOPY VARCHAR2)
6907 IS
6908 -- Cursor --
6909 CURSOR get_manual_tax_lines IS
6910 SELECT * FROM zx_lines
6911 WHERE application_id = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_application_id(p_index)
6912 AND entity_code = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_entity_code(p_index)
6913 AND event_class_code = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_event_class_code(p_index)
6914 AND trx_id = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_trx_id( p_index)
6915 AND trx_line_id = NVL(ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_line_id(p_index), trx_line_id)
6916 AND trx_level_type = NVL(ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_trx_level_type(p_index), trx_level_type)
6917 AND NVL(manually_entered_flag,'N') = 'Y'
6918 AND NVL(cancel_flag,'N') <> 'Y'
6919 AND NVL(mrc_tax_line_flag,'N') = 'N';
6920
6921 -- Variables --
6922 l_tax_date DATE;
6923 l_tax_determine_date DATE;
6924 l_tax_point_date DATE;
6925 l_new_row_num BINARY_INTEGER;
6926 l_begin_index BINARY_INTEGER;
6927 l_end_index BINARY_INTEGER;
6928 l_error_buffer VARCHAR2(200);
6929
6930 BEGIN
6931
6932 IF (g_level_procedure >= g_current_runtime_level ) THEN
6933 FND_LOG.STRING(g_level_procedure,
6934 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_manual_tax_lines_for_cm.BEGIN',
6935 'ZX_PRODUCT_INTEGRATION_PKG.get_manual_tax_lines_for_cm(+)');
6936 END IF;
6937
6938 x_return_status := FND_API.G_RET_STS_SUCCESS;
6939
6940 l_new_row_num := NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl.LAST, 0);
6941
6942 IF (g_level_statement >= g_current_runtime_level ) THEN
6943 FND_LOG.STRING(g_level_statement,
6944 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_manual_tax_lines_for_cm',
6945 'Detail_Tax_Line_Tbl Index#'||TO_CHAR(l_new_row_num + 1));
6946 END IF;
6947
6948 -- get tax date
6949 ZX_TDS_APPLICABILITY_DETM_PKG.get_tax_date(
6950 p_index,
6951 l_tax_date,
6952 l_tax_determine_date,
6953 l_tax_point_date,
6954 x_return_status);
6955
6956 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6957 IF (g_level_unexpected >= g_current_runtime_level ) THEN
6958 FND_LOG.STRING(g_level_unexpected,
6959 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_manual_tax_lines_for_cm',
6960 'Incorrect return_status after calling ' ||
6961 'ZX_TDS_APPLICABILITY_DETM_PKG.get_tax_date()');
6962 FND_LOG.STRING(g_level_unexpected,
6963 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_manual_tax_lines_for_cm',
6964 'RETURN_STATUS = ' || x_return_status);
6965 FND_LOG.STRING(g_level_unexpected,
6966 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_manual_tax_lines_for_cm.END',
6967 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_manual_tax_lines_for_cm(-)');
6968 END IF;
6969 RETURN;
6970 END IF;
6971
6972 FOR tax_line_rec IN get_manual_tax_lines LOOP
6973
6974 -- populate tax cache ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl with this tax_id,
6975 ZX_TDS_UTILITIES_PKG.populate_tax_cache (
6976 p_tax_id => tax_line_rec.TAX_ID,
6977 p_return_status => x_return_status,
6978 p_error_buffer => l_error_buffer);
6979
6980 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6981 IF (g_level_unexpected >= g_current_runtime_level ) THEN
6982 FND_LOG.STRING(g_level_unexpected,
6983 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_manual_tax_lines_for_cm',
6984 'Incorrect return_status after calling ' ||
6985 'ZX_TDS_UTILITIES_PKG.populate_tax_cache()');
6986 FND_LOG.STRING(g_level_unexpected,
6987 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_manual_tax_lines_for_cm',
6988 'RETURN_STATUS = ' || x_return_status);
6989 FND_LOG.STRING(g_level_unexpected,
6990 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_manual_tax_lines_for_cm.END',
6991 'ZX_PRODUCT_INTEGRATION_PKG.get_manual_tax_lines_for_cm(-)');
6992 END IF;
6993 RETURN;
6994 END IF;
6995
6996 --increment l_new_row_num
6997 l_new_row_num := l_new_row_num +1;
6998
6999 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_REGIME_CODE := tax_line_rec.TAX_REGIME_CODE;
7000 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_REGIME_ID := tax_line_rec.TAX_REGIME_ID;
7001 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_STATUS_CODE := tax_line_rec.TAX_STATUS_CODE;
7002 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_STATUS_ID := tax_line_rec.TAX_STATUS_ID;
7003 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX := tax_line_rec.TAX;
7004 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_ID := tax_line_rec.TAX_ID;
7005 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_RATE_CODE := tax_line_rec.TAX_RATE_CODE;
7006 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_RATE_ID := tax_line_rec.TAX_RATE_ID;
7007 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_RATE := tax_line_rec.TAX_RATE;
7008 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_TYPE_CODE := tax_line_rec.TAX_TYPE_CODE;
7009 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_RATE_TYPE := tax_line_rec.TAX_RATE_TYPE;
7010
7011 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_DATE := l_tax_date;
7012 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_DETERMINE_DATE := l_tax_determine_date;
7013 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_POINT_DATE := l_tax_point_date;
7014
7015 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_APPORTIONMENT_LINE_NUMBER := NVL(tax_line_rec.TAX_APPORTIONMENT_LINE_NUMBER, 1 );
7016
7017 IF (g_level_statement >= g_current_runtime_level ) THEN
7018 FND_LOG.STRING(g_level_statement,
7019 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_manual_tax_lines_for_cm',
7020 'Tax Regime: ' ||ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).tax_regime_code||
7021 ', Tax: ' ||ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).tax ||
7022 ', Tax Status: ' ||ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).tax_status_code||
7023 ', Tax Rate Code: ' ||ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).tax_rate_code ||
7024 ', Tax Rate: ' ||ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).tax_rate ||
7025 ', Tax Apportionment Line Number: '||ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).tax_apportionment_line_number);
7026 END IF;
7027
7028 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).MULTIPLE_JURISDICTIONS_FLAG := tax_line_rec.MULTIPLE_JURISDICTIONS_FLAG;
7029 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).ACCOUNT_SOURCE_TAX_RATE_ID := tax_line_rec.ACCOUNT_SOURCE_TAX_RATE_ID;
7030
7031 IF p_event_class_rec.tax_reporting_flag = 'Y' THEN
7032 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).LEGAL_REPORTING_STATUS := ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl(
7033 tax_line_rec.tax_id).LEGAL_REPORTING_STATUS_DEF_VAL;
7034 END IF;
7035
7036 -- populate taxable_basis_formula and tax_calculation_formula
7037 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAXABLE_BASIS_FORMULA := tax_line_rec.TAXABLE_BASIS_FORMULA;
7038 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_CALCULATION_FORMULA := tax_line_rec.TAX_CALCULATION_FORMULA;
7039
7040 -- Populate other doc line amt, taxable amt and tax amt
7041 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).OTHER_DOC_LINE_AMT := tax_line_rec.LINE_AMT;
7042 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).OTHER_DOC_LINE_TAXABLE_AMT := tax_line_rec.UNROUNDED_TAXABLE_AMT;
7043 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).OTHER_DOC_LINE_TAX_AMT := tax_line_rec.UNROUNDED_TAX_AMT;
7044
7045 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).COPIED_FROM_OTHER_DOC_FLAG := 'Y';
7046 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).OTHER_DOC_SOURCE := 'ADJUSTED';
7047
7048 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).ADJUSTED_DOC_TAX_LINE_ID := tax_line_rec.TAX_LINE_ID;
7049 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TRX_DATE := tax_line_rec.TRX_DATE;
7050 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_LINE_NUMBER := tax_line_rec.TAX_LINE_NUMBER;
7051
7052 -- Rounding related columns
7053 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).ROUNDING_LEVEL_CODE := tax_line_rec.ROUNDING_LEVEL_CODE;
7054 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).ROUNDING_RULE_CODE := tax_line_rec.ROUNDING_RULE_CODE;
7055 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).PRECISION := tax_line_rec.PRECISION;
7056 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).MINIMUM_ACCOUNTABLE_UNIT := tax_line_rec.MINIMUM_ACCOUNTABLE_UNIT;
7057 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TRX_CURRENCY_CODE := tax_line_rec.TRX_CURRENCY_CODE;
7058
7059 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).ROUNDING_LVL_PARTY_TAX_PROF_ID := tax_line_rec.ROUNDING_LVL_PARTY_TAX_PROF_ID;
7060 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).ROUNDING_LVL_PARTY_TYPE := tax_line_rec.ROUNDING_LVL_PARTY_TYPE;
7061 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).OFFSET_FLAG := tax_line_rec.OFFSET_FLAG;
7062 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).OFFSET_TAX_RATE_CODE := tax_line_rec.OFFSET_TAX_RATE_CODE;
7063
7064 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).PLACE_OF_SUPPLY := tax_line_rec.PLACE_OF_SUPPLY;
7065 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).PLACE_OF_SUPPLY_TYPE_CODE := tax_line_rec.PLACE_OF_SUPPLY_TYPE_CODE;
7066 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).PLACE_OF_SUPPLY_RESULT_ID := tax_line_rec.PLACE_OF_SUPPLY_RESULT_ID;
7067 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).REGISTRATION_PARTY_TYPE := tax_line_rec.REGISTRATION_PARTY_TYPE;
7068 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_JURISDICTION_CODE := tax_line_rec.TAX_JURISDICTION_CODE;
7069 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_JURISDICTION_ID := tax_line_rec.TAX_JURISDICTION_ID;
7070 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_REGISTRATION_NUMBER := tax_line_rec.TAX_REGISTRATION_NUMBER;
7071 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_APPLICABILITY_RESULT_ID := tax_line_rec.TAX_APPLICABILITY_RESULT_ID;
7072 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).DIRECT_RATE_RESULT_ID := tax_line_rec.DIRECT_RATE_RESULT_ID;
7073
7074 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_CURRENCY_CODE := tax_line_rec.TAX_CURRENCY_CODE;
7075 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_CURRENCY_CONVERSION_DATE := tax_line_rec.TAX_CURRENCY_CONVERSION_DATE;
7076 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_CURRENCY_CONVERSION_TYPE := tax_line_rec.TAX_CURRENCY_CONVERSION_TYPE;
7077 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_CURRENCY_CONVERSION_RATE := tax_line_rec.TAX_CURRENCY_CONVERSION_RATE;
7078
7079 -- Tax Line Flags
7080 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).MRC_TAX_LINE_FLAG := NVL(tax_line_rec.MRC_TAX_LINE_FLAG,'N');
7081 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_APPORTIONMENT_FLAG := tax_line_rec.TAX_APPORTIONMENT_FLAG;
7082 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).MANUALLY_ENTERED_FLAG := tax_line_rec.MANUALLY_ENTERED_FLAG;
7083 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).LAST_MANUAL_ENTRY := tax_line_rec.LAST_MANUAL_ENTRY;
7084 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).ASSOCIATED_CHILD_FROZEN_FLAG := tax_line_rec.ASSOCIATED_CHILD_FROZEN_FLAG;
7085 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_ONLY_LINE_FLAG := tax_line_rec.TAX_ONLY_LINE_FLAG;
7086 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).REPORTING_ONLY_FLAG := tax_line_rec.REPORTING_ONLY_FLAG;
7087 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).SELF_ASSESSED_FLAG := tax_line_rec.SELF_ASSESSED_FLAG;
7088
7089 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_BASE_MODIFIER_RATE := tax_line_rec.TAX_BASE_MODIFIER_RATE;
7090 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).LEGAL_JUSTIFICATION_TEXT1 := tax_line_rec.LEGAL_JUSTIFICATION_TEXT1;
7091 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).LEGAL_JUSTIFICATION_TEXT2 := tax_line_rec.LEGAL_JUSTIFICATION_TEXT2;
7092 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).LEGAL_JUSTIFICATION_TEXT3 := tax_line_rec.LEGAL_JUSTIFICATION_TEXT3;
7093 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).BASIS_RESULT_ID := tax_line_rec.BASIS_RESULT_ID;
7094 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).CALC_RESULT_ID := tax_line_rec.CALC_RESULT_ID;
7095 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).COMPOUNDING_DEP_TAX_FLAG := tax_line_rec.COMPOUNDING_DEP_TAX_FLAG;
7096 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).COMPOUNDING_TAX_MISS_FLAG := tax_line_rec.COMPOUNDING_TAX_MISS_FLAG;
7097 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).COMPOUNDING_TAX_FLAG := tax_line_rec.COMPOUNDING_TAX_FLAG;
7098
7099 --populate the Legal Message columns also
7100 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).LEGAL_MESSAGE_APPL_2 := tax_line_rec.LEGAL_MESSAGE_APPL_2;
7101 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).LEGAL_MESSAGE_STATUS := tax_line_rec.LEGAL_MESSAGE_STATUS;
7102 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).LEGAL_MESSAGE_RATE := tax_line_rec.LEGAL_MESSAGE_RATE;
7103 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).LEGAL_MESSAGE_BASIS := tax_line_rec.LEGAL_MESSAGE_BASIS;
7104 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).LEGAL_MESSAGE_CALC := tax_line_rec.LEGAL_MESSAGE_CALC;
7105 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).LEGAL_MESSAGE_POS := tax_line_rec.LEGAL_MESSAGE_POS;
7106 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).LEGAL_MESSAGE_TRN := tax_line_rec.LEGAL_MESSAGE_TRN;
7107
7108 -- Populate the global_attribute columns in detailed tax lines based on output tax record returned by LTE
7109 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).GLOBAL_ATTRIBUTE_CATEGORY := tax_line_rec.GLOBAL_ATTRIBUTE_CATEGORY;
7110 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).GLOBAL_ATTRIBUTE1 := tax_line_rec.GLOBAL_ATTRIBUTE1;
7111 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).GLOBAL_ATTRIBUTE2 := tax_line_rec.GLOBAL_ATTRIBUTE2;
7112 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).GLOBAL_ATTRIBUTE3 := tax_line_rec.GLOBAL_ATTRIBUTE3;
7113 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).GLOBAL_ATTRIBUTE4 := tax_line_rec.GLOBAL_ATTRIBUTE4;
7114 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).GLOBAL_ATTRIBUTE5 := tax_line_rec.GLOBAL_ATTRIBUTE5;
7115 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).GLOBAL_ATTRIBUTE6 := tax_line_rec.GLOBAL_ATTRIBUTE6;
7116 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).GLOBAL_ATTRIBUTE7 := tax_line_rec.GLOBAL_ATTRIBUTE7;
7117 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).GLOBAL_ATTRIBUTE8 := tax_line_rec.GLOBAL_ATTRIBUTE8;
7118 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).GLOBAL_ATTRIBUTE9 := tax_line_rec.GLOBAL_ATTRIBUTE9;
7119 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).GLOBAL_ATTRIBUTE10 := tax_line_rec.GLOBAL_ATTRIBUTE10;
7120 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).GLOBAL_ATTRIBUTE11 := tax_line_rec.GLOBAL_ATTRIBUTE11;
7121 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).GLOBAL_ATTRIBUTE12 := tax_line_rec.GLOBAL_ATTRIBUTE12;
7122 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).GLOBAL_ATTRIBUTE13 := tax_line_rec.GLOBAL_ATTRIBUTE13;
7123 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).GLOBAL_ATTRIBUTE14 := tax_line_rec.GLOBAL_ATTRIBUTE14;
7124 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).GLOBAL_ATTRIBUTE15 := tax_line_rec.GLOBAL_ATTRIBUTE15;
7125 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).GLOBAL_ATTRIBUTE16 := tax_line_rec.GLOBAL_ATTRIBUTE16;
7126 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).GLOBAL_ATTRIBUTE17 := tax_line_rec.GLOBAL_ATTRIBUTE17;
7127 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).GLOBAL_ATTRIBUTE18 := tax_line_rec.GLOBAL_ATTRIBUTE18;
7128 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).GLOBAL_ATTRIBUTE19 := tax_line_rec.GLOBAL_ATTRIBUTE19;
7129 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).GLOBAL_ATTRIBUTE20 := tax_line_rec.GLOBAL_ATTRIBUTE20;
7130
7131 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_REG_NUM_DET_RESULT_ID := tax_line_rec.TAX_REG_NUM_DET_RESULT_ID;
7132 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).HQ_ESTB_REG_NUMBER := tax_line_rec.HQ_ESTB_REG_NUMBER;
7133 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).HQ_ESTB_PARTY_TAX_PROF_ID := tax_line_rec.HQ_ESTB_PARTY_TAX_PROF_ID;
7134
7135 -- If line_amt_include_tax_flag on trx line is A, then set to 'Y'
7136 -- for other cases, set to the one from adjusted doc.
7137 IF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_amt_includes_tax_flag(p_index) = 'A' THEN
7138 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_AMT_INCLUDED_FLAG := 'Y';
7139 ELSE
7140 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_AMT_INCLUDED_FLAG := tax_line_rec.TAX_AMT_INCLUDED_FLAG;
7141 END IF;
7142
7143 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_EXEMPTION_ID := tax_line_rec.TAX_EXEMPTION_ID;
7144 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_RATE_BEFORE_EXEMPTION := tax_line_rec.TAX_RATE_BEFORE_EXEMPTION;
7145 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_RATE_NAME_BEFORE_EXEMPTION := tax_line_rec.TAX_RATE_NAME_BEFORE_EXEMPTION;
7146 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).EXEMPT_RATE_MODIFIER := tax_line_rec.EXEMPT_RATE_MODIFIER;
7147 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).EXEMPT_CERTIFICATE_NUMBER := tax_line_rec.EXEMPT_CERTIFICATE_NUMBER;
7148 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).EXEMPT_REASON := tax_line_rec.EXEMPT_REASON;
7149 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).EXEMPT_REASON_CODE := tax_line_rec.EXEMPT_REASON_CODE;
7150
7151 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_EXCEPTION_ID := tax_line_rec.TAX_EXCEPTION_ID;
7152 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_RATE_BEFORE_EXCEPTION := tax_line_rec.TAX_RATE_BEFORE_EXCEPTION;
7153 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_RATE_NAME_BEFORE_EXCEPTION := tax_line_rec.TAX_RATE_NAME_BEFORE_EXCEPTION;
7154 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).EXCEPTION_RATE := tax_line_rec.EXCEPTION_RATE;
7155
7156 -- Prorate Amounts --
7157 IF NVL(tax_line_rec.historical_flag, 'N') = 'Y' THEN
7158 IF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_level_action(p_index) = 'ALLOCATE_TAX_ONLY_ADJUSTMENT' THEN
7159 -- for tax only adjustment set the unrounded tax amount to the
7160 -- unrounded tax amount of the original doc.
7161 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_taxable_amt := NVL(tax_line_rec.unrounded_taxable_amt,tax_line_rec.taxable_amt);
7162 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_tax_amt := NVL(tax_line_rec.unrounded_tax_amt,tax_line_rec.tax_amt);
7163 ELSE
7164 -- current trx is a regular adjustment or CM
7165 -- prorate the line amt to get the unrounded taxable/tax amount
7166 IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).tax_amt_included_flag ='Y' AND tax_line_rec.tax_amt_included_flag = 'N' THEN
7167 -- If current trx is a tax inclusive trx, while the original trx is
7168 -- tax exclusive trx.
7169 IF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ctrl_total_hdr_tx_amt(p_index) IS NOT NULL AND
7170 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ctrl_hdr_tx_appl_flag(p_index) = 'Y' THEN
7171 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_taxable_amt := tax_line_rec.unrounded_taxable_amt;
7172 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_tax_amt := tax_line_rec.unrounded_tax_amt;
7173 ELSE
7174 IF ( tax_line_rec.line_amt + tax_line_rec.tax_amt) <> 0 THEN
7175 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_taxable_amt
7176 := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_amt(p_index) *
7177 ( NVL(tax_line_rec.unrounded_taxable_amt,tax_line_rec.taxable_amt) /
7178 ( tax_line_rec.line_amt + tax_line_rec.tax_amt) );
7179
7180 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_tax_amt
7181 := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_amt(p_index) *
7182 ( NVL(tax_line_rec.unrounded_tax_amt,tax_line_rec.tax_amt) /
7183 ( tax_line_rec.line_amt + tax_line_rec.tax_amt) );
7184 ELSE
7185 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_taxable_amt
7186 := NVL(tax_line_rec.unrounded_taxable_amt,tax_line_rec.taxable_amt);
7187 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_tax_amt
7188 := NVL(tax_line_rec.unrounded_tax_amt,tax_line_rec.tax_amt);
7189 END IF;
7190 END IF;
7191 ELSE -- both current tax line and original tax line are inclusive and exclusive
7192 IF tax_line_rec.line_amt <> 0 THEN
7193 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_taxable_amt
7194 := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_amt(p_index) *
7195 (NVL(tax_line_rec.unrounded_taxable_amt,tax_line_rec.taxable_amt) / tax_line_rec.line_amt);
7196
7197 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_tax_amt
7198 := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_amt(p_index) *
7199 (NVL(tax_line_rec.unrounded_tax_amt,tax_line_rec.tax_amt) / tax_line_rec.line_amt );
7200 ELSE -- equal to that the original trx is a tax only trx
7201 IF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.event_class_code(p_index) = 'CREDIT_MEMO' THEN
7202 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_taxable_amt
7203 := -1 * NVL(tax_line_rec.unrounded_taxable_amt,tax_line_rec.taxable_amt);
7204 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_tax_amt
7205 := -1 * NVL(tax_line_rec.unrounded_tax_amt,tax_line_rec.tax_amt);
7206 ELSE
7207 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_taxable_amt
7208 := NVL(tax_line_rec.unrounded_taxable_amt,tax_line_rec.taxable_amt);
7209 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_tax_amt
7210 := NVL(tax_line_rec.unrounded_tax_amt,tax_line_rec.tax_amt);
7211 END IF;
7212 END IF;
7213 END IF; -- tax_line_rec.tax_amt_included_flag = 'N'
7214 END IF; -- 'ALLOCATE_TAX_ONLY_ADJUSTMENT' trx and else
7215 ELSE -- Historical Flag is 'N'
7216 IF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_level_action(p_index) = 'ALLOCATE_TAX_ONLY_ADJUSTMENT' THEN
7217 -- for tax only adjustment set the unrounded tax amount to the
7218 -- unrounded tax amount of the original doc.
7219 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_taxable_amt := tax_line_rec.unrounded_taxable_amt;
7220 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_tax_amt := tax_line_rec.unrounded_tax_amt;
7221 ELSE
7222 -- current trx is a regular adjustment or CM
7223 -- prorate the line amt to get the unrounded taxable/tax amount
7224 IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).tax_amt_included_flag ='Y' AND tax_line_rec.tax_amt_included_flag = 'N' THEN
7225 -- If current trx is a tax inclusive trx, while the original trx is
7226 -- tax exclusive trx.
7227 IF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ctrl_total_hdr_tx_amt(p_index) IS NOT NULL AND
7228 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ctrl_hdr_tx_appl_flag(p_index) = 'Y' THEN
7229 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_taxable_amt := tax_line_rec.unrounded_taxable_amt;
7230 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_tax_amt := tax_line_rec.unrounded_tax_amt;
7231 ELSE
7232 IF ( tax_line_rec.line_amt + tax_line_rec.tax_amt) <> 0 THEN
7233 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_taxable_amt
7234 := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_amt(p_index) *
7235 ( tax_line_rec.unrounded_taxable_amt /
7236 ( tax_line_rec.line_amt + tax_line_rec.tax_amt) );
7237 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_tax_amt
7238 := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_amt(p_index) *
7239 ( tax_line_rec.unrounded_tax_amt /
7240 ( tax_line_rec.line_amt + tax_line_rec.tax_amt) );
7241 ELSE
7242 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_taxable_amt := tax_line_rec.unrounded_taxable_amt;
7243 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_tax_amt := tax_line_rec.unrounded_tax_amt;
7244 END IF;
7245 END IF;
7246 ELSE -- both current tax line and original tax line are inclusive and exclusive
7247 IF tax_line_rec.line_amt <> 0 THEN
7248 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_taxable_amt
7249 := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_amt(p_index) *
7250 ( tax_line_rec.unrounded_taxable_amt / tax_line_rec.line_amt);
7251
7252 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_tax_amt
7253 := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_amt(p_index) *
7254 ( tax_line_rec.unrounded_tax_amt / tax_line_rec.line_amt );
7255 ELSE -- equal to that the original trx is a tax only trx
7256 IF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.event_class_code(p_index) = 'CREDIT_MEMO' THEN
7257 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_taxable_amt
7258 := -1 * tax_line_rec.unrounded_taxable_amt;
7259 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_tax_amt
7260 := -1 * tax_line_rec.unrounded_tax_amt;
7261 ELSE
7262 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_taxable_amt := tax_line_rec.unrounded_taxable_amt;
7263 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).unrounded_tax_amt := tax_line_rec.unrounded_tax_amt;
7264 END IF;
7265 END IF;
7266 END IF; -- tax_line_rec.tax_amt_included_flag = 'N'
7267 END IF; -- 'ALLOCATE_TAX_ONLY_ADJUSTMENT' trx and else
7268 END IF; -- Historical Flag check
7269
7270 IF (g_level_statement >= g_current_runtime_level ) THEN
7271 FND_LOG.STRING(g_level_statement,
7272 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_manual_tax_lines_for_cm',
7273 'Tax Line#' ||ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).TAX_LINE_NUMBER ||
7274 ': Unrounded Taxable Amount = '||ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).UNROUNDED_TAXABLE_AMT||
7275 ', Unrounded Tax Amount = ' ||ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).UNROUNDED_TAX_AMT);
7276 END IF;
7277
7278 IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).tax_amt_included_flag = 'Y' THEN
7279 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.tax_amt_included_flag(p_index) := 'Y';
7280 END IF;
7281
7282 IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(l_new_row_num).compounding_dep_tax_flag = 'Y' THEN
7283 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.compounding_tax_flag(p_index) := 'Y';
7284 END IF;
7285
7286 IF (l_begin_index IS NULL) THEN
7287 l_begin_index := l_new_row_num;
7288 END IF;
7289 END LOOP;
7290
7291 IF (l_begin_index IS NOT NULL) THEN
7292 l_end_index := ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl.LAST;
7293 END IF;
7294
7295 -- copy transaction info to new tax lines for new tax_lines created here
7296 ZX_TDS_TAX_LINES_POPU_PKG.cp_tsrm_val_to_zx_lines(
7297 p_trx_line_index => p_index ,
7298 p_begin_index => l_begin_index,
7299 p_end_index => l_end_index,
7300 p_return_status => x_return_status ,
7301 p_error_buffer => l_error_buffer );
7302
7303 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7304 IF (g_level_statement >= g_current_runtime_level ) THEN
7305 FND_LOG.STRING(g_level_statement,
7306 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_manual_tax_lines_for_cm',
7307 'Incorrect return_status after calling ' ||
7308 'ZX_TDS_TAX_LINES_POPU_PKG.cp_tsrm_val_to_zx_lines');
7309 FND_LOG.STRING(g_level_statement,
7310 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_manual_tax_lines_for_cm',
7311 'RETURN_STATUS = ' || x_return_status);
7312 FND_LOG.STRING(g_level_statement,
7313 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_manual_tax_lines_for_cm.END',
7314 'ZX_PRODUCT_INTEGRATION_PKG.get_manual_tax_lines_for_cm(-)');
7315 END IF;
7316 RETURN;
7317 END IF;
7318
7319 ZX_TDS_TAX_LINES_POPU_PKG.pop_tax_line_for_trx_line(
7320 p_begin_index => l_begin_index,
7321 p_end_index => l_end_index,
7322 p_return_status => x_return_status ,
7323 p_error_buffer => l_error_buffer );
7324
7325 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7326 IF (g_level_statement >= g_current_runtime_level ) THEN
7327 FND_LOG.STRING(g_level_statement,
7328 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_manual_tax_lines_for_cm',
7329 'Incorrect return_status after calling ' ||
7330 'ZX_TDS_TAX_LINES_POPU_PKG.pop_tax_line_for_trx_line');
7331 FND_LOG.STRING(g_level_statement,
7332 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_manual_tax_lines_for_cm',
7333 'RETURN_STATUS = ' || x_return_status);
7334 FND_LOG.STRING(g_level_statement,
7335 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_manual_tax_lines_for_cm.END',
7336 'ZX_PRODUCT_INTEGRATION_PKG.get_manual_tax_lines_for_cm(-)');
7337 END IF;
7338 RETURN;
7339 END IF;
7340
7341 IF (g_level_procedure >= g_current_runtime_level ) THEN
7342 FND_LOG.STRING(g_level_procedure,
7343 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_manual_tax_lines_for_cm.END',
7344 'ZX_PRODUCT_INTEGRATION_PKG.get_manual_tax_lines_for_cm(-)');
7345 END IF;
7346
7347 EXCEPTION
7348 WHEN OTHERS THEN
7349 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7350 IF (g_level_unexpected >= g_current_runtime_level ) THEN
7351 FND_LOG.STRING(g_level_unexpected,
7352 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_manual_tax_lines_for_cm',
7353 SQLCODE || ': ' || SUBSTR(SQLERRM, 1, 80));
7354 FND_LOG.STRING(g_level_unexpected,
7355 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.get_manual_tax_lines_for_cm.END',
7356 'ZX_PRODUCT_INTEGRATION_PKG.get_manual_tax_lines_for_cm(-)');
7357 END IF;
7358
7359 END get_manual_tax_lines_for_cm;
7360
7361 /*===========================================================================+
7362 | PROCEDURE |
7363 | package constructor |
7364 | |
7365 | DESCRIPTION |
7366 | |
7367 | MODIFICATION HISTORY |
7368 | |
7369 +===========================================================================*/
7370
7371 -- package constructor
7372 BEGIN
7373 --Initialize the debug variable pg_debug
7374 pg_debug := NVL(FND_PROFILE.value('AFLOG_ENABLED'), 'N');
7375 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
7376 IF (g_level_procedure >= g_current_runtime_level ) THEN
7377 FND_LOG.STRING(g_level_procedure,
7378 'ZX.PLSQL.ZX_PRODUCT_INTEGRATION_PKG.constructor',
7379 'ZX_PRODUCT_INTEGRATION_PKG: constructor');
7380 END IF;
7381 END ZX_PRODUCT_INTEGRATION_PKG;
7382