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