[Home] [Help]
PACKAGE BODY: APPS.POR_TAX_PVT
Source
1 PACKAGE BODY POR_TAX_PVT AS
2 /* $Header: PORVTAXB.pls 120.10.12010000.6 2009/01/15 13:18:36 debrchak ship $ */
3
4
5 -- Logging Static Variables
6 G_CURRENT_RUNTIME_LEVEL NUMBER;
7 G_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
8 G_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
9 G_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
10 G_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
11 G_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
12 G_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
13 G_MODULE_NAME CONSTANT VARCHAR2(30) := 'PO.PLSQL.POR_TAX_PVT';
14
15
16 PROCEDURE calculate_tax (p_tax_head_tbl IN POR_TAX_HEADER_OBJ_TBL_TYPE,
17 p_tax_line_tbl IN POR_TAX_LINE_OBJ_TBL_TYPE,
18 p_tax_dist_tbl IN POR_TAX_DIST_OBJ_TBL_TYPE,
19 x_tax_dist_id_tbl OUT NOCOPY ICX_TBL_NUMBER,
20 x_tax_recov_amt_tbl OUT NOCOPY ICX_TBL_NUMBER,
21 x_tax_nonrecov_amt_tbl OUT NOCOPY ICX_TBL_NUMBER,
22 x_return_status OUT NOCOPY VARCHAR2,
23 x_msg_data OUT NOCOPY VARCHAR2,
24 x_msg_count OUT NOCOPY NUMBER) IS
25
26 l_legal_entity_id PLS_INTEGER;
27 i PLS_INTEGER;
28 tbl_sz PLS_INTEGER;
29 l_msg_count NUMBER;
30 l_return_status VARCHAR2(60);
31 l_msg_data VARCHAR2(480);
32 l_dist_id PLS_INTEGER;
33 l_recov_tax NUMBER;
34 l_non_recov_tax NUMBER;
35 l_progress PLS_INTEGER;
36
37 -- Bug 7526131
38 ship_from_location_id HZ_PARTY_SITES.LOCATION_ID%TYPE;
39 l_ship_from_location_id HZ_PARTY_SITES.LOCATION_ID%TYPE;
40 l_ship_from_party_site_id NUMBER;
41 CURSOR get_sfli (ship_from_party_site_id IN NUMBER) IS
42 SELECT hzps.location_id
43 FROM hz_party_sites hzps
44 WHERE hzps.party_site_id = ship_from_party_site_id;
45
46 -- Logging Infra
47 l_procedure_name CONSTANT VARCHAR2(30) := 'calculate_tax';
48 l_log_msg FND_LOG_MESSAGES.MESSAGE_TEXT%TYPE;
49
50 --Bug 7412966 : Changed the code to calculate the rec and non-rec tax in functional currency
51 CURSOR c_get_tax IS
52 SELECT trx_line_dist_id,
53 sum(decode(recoverable_flag, 'Y', rec_nrec_tax_amt_funcl_curr, 0)) as recov_tax,
54 sum(decode(recoverable_flag, 'N', rec_nrec_tax_amt_funcl_curr, 0)) as non_recov_tax
55 FROM ZX_REC_NREC_DIST_GT
56 GROUP BY trx_line_dist_id;
57
58 BEGIN
59 l_progress := 0;
60
61 -- Logging Infra: Setting up runtime level
62 G_CURRENT_RUNTIME_LEVEL := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
63
64 -- Logging Infra: Procedure level
65 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL ) THEN
66 l_log_msg := '<-------------------->';
67 FND_LOG.STRING(G_LEVEL_PROCEDURE, G_MODULE_NAME||l_procedure_name||'.begin', l_log_msg);
68 l_log_msg := l_procedure_name||'(+)';
69 FND_LOG.STRING(G_LEVEL_PROCEDURE, G_MODULE_NAME||l_procedure_name||'.begin', l_log_msg);
70 END IF;
71
72 -- delete from ZX_TRX_HEADERS_GT
73 DELETE ZX_TRX_HEADERS_GT;
74
75 l_progress := 100;
76
77 -- Logging Infra: Statement level
78 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
79 l_log_msg := 'Deleted ZX_TRX_HEADERS_GT';
80 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
81 END IF;
82
83 -- get legal entity id
84 l_legal_entity_id := XLE_UTILITIES_GRP.Get_DefaultLegalContext_OU(p_tax_head_tbl(1).org_id);
85
86 -- Logging Infra: Statement level
87 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
88 l_log_msg := 'XLE Legal Entity=' || l_legal_entity_id;
89 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
90 END IF;
91
92 l_progress := 200;
93
94 -- insert into ZX Headers global temp table
95 INSERT INTO ZX_TRX_HEADERS_GT (internal_organization_id,
96 icx_session_id,
97 application_id,
98 entity_code,
99 event_class_code,
100 event_type_code,
101 trx_id,
102 trx_date,
103 ledger_id,
104 legal_entity_id,
105 rounding_bill_to_party_id,
106 default_taxation_country,
107 quote_flag,
108 document_sub_type)
109 VALUES(p_tax_head_tbl(1).org_id,
110 p_tax_head_tbl(1).icx_session_id,
111 201,
112 'REQUISITION',
113 'REQUISITION',
114 'REQ_CREATED',
115 p_tax_head_tbl(1).trx_id,
116 p_tax_head_tbl(1).trx_date,
117 p_tax_head_tbl(1).ledger_id,
118 l_legal_entity_id,
119 p_tax_head_tbl(1).rndg_bill_to_party_id,
120 p_tax_head_tbl(1).taxation_country,
121 'Y',
122 p_tax_head_tbl(1).doc_subtype);
123
124 l_progress := 300;
125
126 -- Logging Infra: Statement level
127 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
128 l_log_msg := 'Inserted into ZX_TRX_HEADERS_GT';
129 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
130 END IF;
131
132 -- delete from ZX_TRANSACTION_LINES_GT
133 DELETE ZX_TRANSACTION_LINES_GT;
134
135 l_progress := 400;
136
137 -- Logging Infra: Statement level
138 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
139 l_log_msg := 'Deleted from ZX_TRANSACTION_LINES_GT';
140 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
141 END IF;
142
143 -- insert into ZX Lines global temp table
144 i := 1;
145 tbl_sz := p_tax_line_tbl.count();
146
147 LOOP
148
149 IF (l_ship_from_party_site_id = p_tax_line_tbl(i).ship_from_party_site_id) THEN
150 ship_from_location_id := l_ship_from_location_id;
151 ELSE
152 OPEN get_sfli(p_tax_line_tbl(i).ship_from_party_site_id);
153 FETCH get_sfli into ship_from_location_id;
154 IF get_sfli%NOTFOUND THEN
155 ship_from_location_id := -1;
156 l_ship_from_location_id := -1;
157 ELSE
158 l_ship_from_location_id := ship_from_location_id;
159 END IF;
160 CLOSE get_sfli;
161 END IF;
162
163 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
164 l_log_msg := 'ship_from_location_id: ' || ship_from_location_id;
165 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
166 END IF;
167
168 INSERT INTO ZX_TRANSACTION_LINES_GT( application_id,
169 entity_code,
170 event_class_code,
171 trx_id,
172 trx_level_type,
173 trx_line_id,
174 line_class,
175 line_level_action,
176 trx_line_type,
177 trx_line_date,
178 trx_business_category,
179 line_intended_use,
180 user_defined_fisc_class,
181 line_amt_includes_tax_flag,
182 line_amt,
183 trx_line_quantity,
184 unit_price,
185 product_id,
186 product_fisc_classification,
187 product_org_id,
188 uom_code,
189 product_type,
190 product_code,
191 product_category,
192 ship_to_party_id,
193 ship_from_party_id,
194 bill_to_party_id,
195 bill_from_party_id,
196 ship_from_party_site_id,
197 bill_from_party_site_id,
198 ship_to_location_id,
199 ship_from_location_id,
200 bill_to_location_id,
201 ship_third_pty_acct_id,
202 ship_third_pty_acct_site_id,
203 assessable_value,
204 historical_flag,
205 trx_line_currency_code,
206 trx_line_currency_conv_date,
207 trx_line_currency_conv_rate,
208 trx_line_currency_conv_type,
209 trx_line_mau,
210 trx_line_precision,
211 historical_tax_code_id,
212 input_tax_classification_code,
213 user_upd_det_factors_flag)
214 VALUES(201,
215 'REQUISITION',
216 'REQUISITION',
217 p_tax_line_tbl(i).trx_id,
218 'LINE',
219 p_tax_line_tbl(i).trx_line_id,
220 'INVOICE',
221 'CREATE',
222 'ITEM',
223 p_tax_line_tbl(i).trx_line_date,
224 p_tax_line_tbl(i).trx_business_cat,
225 p_tax_line_tbl(i).line_intended_use,
226 p_tax_line_tbl(i).user_fiscal_class,
227 'N',
228 p_tax_line_tbl(i).line_amt,
229 p_tax_line_tbl(i).trx_line_quantity,
230 p_tax_line_tbl(i).unit_price,
231 p_tax_line_tbl(i).product_id,
232 p_tax_line_tbl(i).prod_fiscal_class,
233 p_tax_line_tbl(i).product_org_id,
234 p_tax_line_tbl(i).uom_code,
235 p_tax_line_tbl(i).product_type,
236 p_tax_line_tbl(i).product_code,
237 p_tax_line_tbl(i).product_category,
238 p_tax_line_tbl(i).ship_to_party_id,
239 p_tax_line_tbl(i).ship_from_party_id,
240 p_tax_line_tbl(i).bill_to_party_id,
241 p_tax_line_tbl(i).bill_from_party_id,
242 p_tax_line_tbl(i).ship_from_party_site_id,
243 p_tax_line_tbl(i).bill_from_party_site_id,
244 p_tax_line_tbl(i).ship_to_location_id,
245 ship_from_location_id,
246 p_tax_line_tbl(i).bill_to_location_id,
247 p_tax_line_tbl(i).ship_third_pty_id,
248 p_tax_line_tbl(i).ship_third_pty_site_id,
249 p_tax_line_tbl(i).assessable_value,
250 'N',
251 p_tax_line_tbl(i).currency_code,
252 p_tax_line_tbl(i).currency_date,
253 p_tax_line_tbl(i).currency_rate,
254 p_tax_line_tbl(i).currency_type,
255 p_tax_line_tbl(i).currency_min_unit,
256 p_tax_line_tbl(i).currency_precision,
257 p_tax_line_tbl(i).historical_tax_id,
258 p_tax_line_tbl(i).input_tax_class,
259 p_tax_line_tbl(i).user_override_flag);
260
261 -- Logging Infra: Statement level
262 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
263 l_log_msg := 'Inserted record into ZX_TRANSACTION_LINES_GT.';
264 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
265 l_log_msg := '>>> LineId=' || p_tax_line_tbl(i).trx_line_id || '; OverrideFlag=' || p_tax_line_tbl(i).user_override_flag;
266 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
267 END IF;
268
269 i := i + 1;
270 EXIT WHEN (i > tbl_sz);
271 END LOOP;
272
273 l_progress := 500;
274
275 -- delete from ZX_ITM_DISTRIBUTIONS_GT;
276 DELETE ZX_ITM_DISTRIBUTIONS_GT;
277
278 l_progress := 600;
279
280 -- Logging Infra: Statement level
281 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
282 l_log_msg := 'Deleted ZX_ITM_DISTRIBUTIONS_GT';
283 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
284 END IF;
285
286 -- insert into ZX Distributions global temp table
287 i := 1;
288 tbl_sz := p_tax_dist_tbl.count();
289
290 LOOP
291 INSERT INTO ZX_ITM_DISTRIBUTIONS_GT (application_id,
292 entity_code,
293 event_class_code,
294 trx_id,
295 trx_line_id,
296 trx_level_type,
297 trx_line_dist_id,
298 dist_level_action,
299 trx_line_dist_date,
300 item_dist_number,
301 dist_intended_use,
302 task_id,
303 award_id,
304 project_id,
305 expenditure_type,
306 expenditure_organization_id,
307 expenditure_item_date,
308 trx_line_dist_amt,
309 trx_line_dist_qty,
310 trx_line_quantity,
311 account_ccid,
312 historical_flag,
313 OVERRIDING_RECOVERY_RATE)
314 VALUES(201,
315 'REQUISITION',
316 'REQUISITION',
317 p_tax_dist_tbl(i).trx_id,
318 p_tax_dist_tbl(i).trx_line_id,
319 'LINE',
320 p_tax_dist_tbl(i).trx_line_dist_id,
321 'CREATE',
322 p_tax_dist_tbl(i).trx_line_dist_date,
323 p_tax_dist_tbl(i).item_dist_number,
324 p_tax_dist_tbl(i).intended_use,
325 p_tax_dist_tbl(i).task_id,
326 p_tax_dist_tbl(i).award_id,
327 p_tax_dist_tbl(i).project_id,
328 p_tax_dist_tbl(i).expenditure_type,
329 p_tax_dist_tbl(i).expenditure_org_id,
330 p_tax_dist_tbl(i).expenditure_item_date,
331 p_tax_dist_tbl(i).trx_line_dist_amt,
332 p_tax_dist_tbl(i).trx_line_dist_quantity,
333 p_tax_dist_tbl(i).trx_line_quantity,
334 p_tax_dist_tbl(i).account_ccid,
335 'N',
336 p_tax_dist_tbl(i).recovery_rate_override);
337
338 -- Logging Infra: Statement level
339 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
340 l_log_msg := 'Inserted record into ZX_ITM_DISTRIBUTIONS_GT. DistId=' || p_tax_dist_tbl(i).trx_line_dist_id;
341 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
342 END IF;
343
344 i := i + 1;
345 EXIT WHEN (i > tbl_sz);
346 END LOOP;
347
348 l_progress := 700;
349
350 -- Logging Infra: Statement level
351 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
352 l_log_msg := 'ZX calculate_tax(+)';
353 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
354 END IF;
355
356 -- Now calculate the tax
357 zx_api_pub.calculate_tax(p_api_version => 1.0,
358 p_init_msg_list => null,
359 p_commit => null,
360 p_validation_level => null,
361 x_return_status => l_return_status,
362 x_msg_count => l_msg_count,
363 x_msg_data => l_msg_data);
364
365 -- Logging Infra: Statement level
366 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
367 l_log_msg := 'ZX calculate_tax returned status=' || l_return_status;
368 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
369 l_log_msg := 'ZX calculate_tax(-)';
370 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
371 END IF;
372
373 l_progress := 800;
374
375 x_msg_count := l_msg_count;
376 x_msg_data := l_msg_data;
377 x_return_status := l_return_status;
378
379 -- only continue if calculate_tax was successful
380 IF (x_return_status = 'S') THEN
381
382 -- Logging Infra: Statement level
383 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
384 l_log_msg := 'ZX determine_recovery(+)';
385 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
386 END IF;
387
388 -- Now determine the recovery
389 zx_api_pub.determine_recovery(p_api_version => 1.0,
390 p_init_msg_list => null,
391 p_commit => null,
392 p_validation_level => null,
393 x_return_status => l_return_status,
394 x_msg_count => l_msg_count,
395 x_msg_data => l_msg_data);
396
397 -- Logging Infra: Statement level
398 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
399 l_log_msg := 'ZX determine_recovery returned status=' || l_return_status;
400 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
401 l_log_msg := 'ZX determine_recovery(-)';
402 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
403 END IF;
404
405 l_progress := 900;
406
407 -- update the return error-handling variables
408 x_msg_count := x_msg_count + l_msg_count;
409 x_msg_data := x_msg_data || ':' || l_msg_data;
410 x_return_status := x_return_status || ':' || l_return_status;
411
412 -- query resultant tax from global tables
413 i := 1;
414 OPEN c_get_tax;
415 LOOP
416 FETCH c_get_tax into l_dist_id, l_recov_tax, l_non_recov_tax;
417 EXIT WHEN c_get_tax%NOTFOUND;
418
419 IF (i=1) THEN
420 -- Initialize the output tables
421 x_tax_dist_id_tbl := ICX_TBL_NUMBER(null);
422 x_tax_recov_amt_tbl := ICX_TBL_NUMBER(null);
423 x_tax_nonrecov_amt_tbl := ICX_TBL_NUMBER(null);
424 ELSE
425 x_tax_dist_id_tbl.EXTEND;
426 x_tax_recov_amt_tbl.EXTEND;
427 x_tax_nonrecov_amt_tbl.EXTEND;
428 END IF;
429
430 x_tax_dist_id_tbl(i) := l_dist_id;
431 x_tax_recov_amt_tbl(i) := l_recov_tax;
432 x_tax_nonrecov_amt_tbl(i) := l_non_recov_tax;
433
434 -- Logging Infra: Statement level
435 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
436 l_log_msg := 'Tax=' || l_dist_id || ':' || l_recov_tax || ':' || l_non_recov_tax;
437 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
438 END IF;
439
440 i := i+1;
441 END LOOP;
442 CLOSE c_get_tax;
443
444 l_progress := 1000;
445
446 -- Logging Infra: Statement level
447 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
448 i := i-1;
449 l_log_msg := 'Found tax for ' || i || ' distributions.';
450 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
451 END IF;
452 END IF;
453
454 -- Logging Infra: Procedure level
455 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL ) THEN
456 l_log_msg := l_procedure_name||'(-)';
457 FND_LOG.STRING(G_LEVEL_PROCEDURE, G_MODULE_NAME||l_procedure_name||'.end', l_log_msg);
458 l_log_msg := '<-------------------->';
459 FND_LOG.STRING(G_LEVEL_PROCEDURE, G_MODULE_NAME||l_procedure_name||'.begin', l_log_msg);
460 END IF;
461
462 EXCEPTION
463 WHEN OTHERS THEN
464 RAISE_APPLICATION_ERROR(-20000,
465 'Exception at POR_TAX_PVT.calculate_tax():'
466 || ' SQLERRM= ' || SQLERRM || ' Error= ' || x_msg_data
467 || ' Progress= ' || l_progress);
468
469 END calculate_tax;
470
471
472 PROCEDURE get_default_tax_attributes (p_tax_head_tbl IN POR_TAX_HEADER_OBJ_TBL_TYPE,
473 p_tax_line_tbl IN POR_TAX_LINE_OBJ_TBL_TYPE,
474 x_tax_country OUT NOCOPY VARCHAR2,
475 x_doc_subtype OUT NOCOPY VARCHAR2,
476 x_tax_class_tbl OUT NOCOPY ICX_TBL_VARCHAR240,
477 x_trx_bus_tbl OUT NOCOPY ICX_TBL_VARCHAR240,
478 x_prd_fisc_tbl OUT NOCOPY ICX_TBL_VARCHAR240,
479 x_prd_type_tbl OUT NOCOPY ICX_TBL_VARCHAR240,
480 x_int_use_tbl OUT NOCOPY ICX_TBL_VARCHAR240,
481 x_usr_fisc_tbl OUT NOCOPY ICX_TBL_VARCHAR240,
482 x_ass_val_tbl OUT NOCOPY ICX_TBL_NUMBER,
483 x_prd_cat_tbl OUT NOCOPY ICX_TBL_VARCHAR240,
484 x_override_tbl OUT NOCOPY ICX_TBL_FLAG,
485 x_line_id_tbl OUT NOCOPY ICX_TBL_NUMBER,
486 x_return_status OUT NOCOPY VARCHAR2,
487 x_msg_data OUT NOCOPY VARCHAR2,
488 x_msg_count OUT NOCOPY NUMBER) IS
489
490 l_legal_entity_id PLS_INTEGER;
491 i PLS_INTEGER;
492 tbl_sz PLS_INTEGER;
493 l_msg_count NUMBER;
494 l_return_status VARCHAR2(60);
495 l_msg_data VARCHAR2(480);
496 l_tax_obj_init POR_TAX_OBJECT_TYPE;
497 l_user_override_flag VARCHAR2(1);
498 l_progress PLS_INTEGER;
499
500 -- Additional Tax Attributes
501 l_line_id NUMBER;
502 l_tax_country VARCHAR2(2);
503 l_doc_subtype VARCHAR2(240);
504 l_tax_class_code VARCHAR2(30);
505 l_intended_use VARCHAR2(240);
506 l_trx_business_cat VARCHAR2(240);
507 l_user_fiscal_class VARCHAR2(30);
508 l_prod_fiscal_class VARCHAR2(240);
509 l_product_category VARCHAR2(240);
510 l_product_type VARCHAR2(240);
511 l_assessable_value NUMBER;
512
513 -- Bug 7526131
514 ship_from_location_id HZ_PARTY_SITES.LOCATION_ID%TYPE;
515 l_ship_from_location_id HZ_PARTY_SITES.LOCATION_ID%TYPE;
516 l_ship_from_party_site_id NUMBER;
517 CURSOR get_sfli (ship_from_party_site_id IN NUMBER) IS
518 SELECT hzps.location_id
519 FROM hz_party_sites hzps
520 WHERE hzps.party_site_id = ship_from_party_site_id;
521
522 -- Logging Infra
523 l_procedure_name CONSTANT VARCHAR2(30) := 'get_default_tax_attributes';
524 l_log_msg FND_LOG_MESSAGES.MESSAGE_TEXT%TYPE;
525
526 CURSOR c_tax_head IS
527 SELECT default_taxation_country,
528 document_sub_type
529 FROM ZX_TRX_HEADERS_GT;
530
531 CURSOR c_tax_line IS
532 SELECT TRX_LINE_ID,
533 INPUT_TAX_CLASSIFICATION_CODE,
534 TRX_BUSINESS_CATEGORY,
535 PRODUCT_FISC_CLASSIFICATION,
536 PRODUCT_TYPE,
537 LINE_INTENDED_USE,
538 USER_DEFINED_FISC_CLASS,
539 ASSESSABLE_VALUE,
540 PRODUCT_CATEGORY,
541 USER_UPD_DET_FACTORS_FLAG
542 FROM ZX_TRANSACTION_LINES_GT;
543
544 BEGIN
545
546 l_progress := 0;
547
548 -- Logging Infra: Setting up runtime level
549 G_CURRENT_RUNTIME_LEVEL := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
550
551 -- Logging Infra: Procedure level
552 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL ) THEN
553 l_log_msg := '<-------------------->';
554 FND_LOG.STRING(G_LEVEL_PROCEDURE, G_MODULE_NAME||l_procedure_name||'.begin', l_log_msg);
555 l_log_msg := l_procedure_name||'(+)';
556 FND_LOG.STRING(G_LEVEL_PROCEDURE, G_MODULE_NAME||l_procedure_name, l_log_msg);
557 END IF;
558
559 -- get legal entity id
560 l_legal_entity_id := XLE_UTILITIES_GRP.Get_DefaultLegalContext_OU(p_tax_head_tbl(1).org_id);
561
562 -- Logging Infra: Statement level
563 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
564 l_log_msg := 'XLE Legal Entity=' || l_legal_entity_id;
565 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
566 END IF;
567
568 l_progress := 100;
569
570 -- delete from ZX_TRX_HEADERS_GT
571 DELETE ZX_TRX_HEADERS_GT;
572
573 l_progress := 200;
574
575 -- delete from ZX_TRANSACTION_LINES_GT
576 DELETE ZX_TRANSACTION_LINES_GT;
577
578 l_progress := 300;
579
580 -- insert into ZX Lines global temp table
581 i := 1;
582 tbl_sz := p_tax_line_tbl.count();
583
584 -- Logging Infra: Statement level
585 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
586 l_log_msg := 'Input lines table size=' || tbl_sz;
587 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
588 END IF;
589
590 LOOP
591
592 IF (i=1) THEN
593 -- Logging Infra: Statement level
594 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
595 l_log_msg := 'Inserting into ZX_TRX_HEADERS_GT';
596 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
597 END IF;
598
599 -- insert into ZX Headers global temp table
600 INSERT INTO ZX_TRX_HEADERS_GT (internal_organization_id,
601 icx_session_id,
602 application_id,
603 entity_code,
604 event_class_code,
605 event_type_code,
606 trx_id,
607 trx_date,
608 ledger_id,
609 legal_entity_id,
610 rounding_bill_to_party_id,
611 default_taxation_country,
612 quote_flag,
613 document_sub_type)
614 VALUES(p_tax_head_tbl(1).org_id,
615 p_tax_head_tbl(1).icx_session_id,
616 201,
617 'REQUISITION',
618 'REQUISITION',
619 'REQ_CREATED',
620 p_tax_head_tbl(1).trx_id,
621 p_tax_head_tbl(1).trx_date,
622 p_tax_head_tbl(1).ledger_id,
623 l_legal_entity_id,
624 p_tax_head_tbl(1).rndg_bill_to_party_id,
625 NULL,
626 'Y',
627 NULL);
628 END IF;
629
630
631 -- Logging Infra: Statement level
632 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
633 l_log_msg := 'Inserting into ZX_TRANSACTION_LINES_GT';
634 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
635 l_log_msg := '--> Defaulting attribute is ship_to_loc_org_id=' || p_tax_line_tbl(i).product_org_id;
636 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
637 END IF;
638
639 IF (l_ship_from_party_site_id = p_tax_line_tbl(i).ship_from_party_site_id) THEN
640 ship_from_location_id := l_ship_from_location_id;
641 ELSE
642 OPEN get_sfli(p_tax_line_tbl(i).ship_from_party_site_id);
643 FETCH get_sfli into ship_from_location_id;
644 IF get_sfli%NOTFOUND THEN
645 ship_from_location_id := -1;
646 l_ship_from_location_id := -1;
647 ELSE
648 l_ship_from_location_id := ship_from_location_id;
649 END IF;
650 CLOSE get_sfli;
651 END IF;
652
653 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
654 l_log_msg := 'ship_from_location_id: ' || ship_from_location_id;
655 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
656 END IF;
657
658 INSERT INTO ZX_TRANSACTION_LINES_GT(application_id,
659 entity_code,
660 event_class_code,
661 trx_id,
662 trx_level_type,
663 trx_line_id,
664 line_class,
665 line_level_action,
666 trx_line_type,
667 trx_line_date,
668 trx_business_category,
669 line_intended_use,
670 user_defined_fisc_class,
671 line_amt_includes_tax_flag,
672 line_amt,
673 trx_line_quantity,
674 unit_price,
675 product_id,
676 product_fisc_classification,
677 product_org_id,
678 uom_code,
679 product_type,
680 product_code,
681 product_category,
682 ship_to_party_id,
683 ship_from_party_id,
684 bill_to_party_id,
685 bill_from_party_id,
686 ship_from_party_site_id,
687 bill_from_party_site_id,
688 ship_to_location_id,
689 ship_from_location_id,
690 bill_to_location_id,
691 ship_third_pty_acct_id,
692 ship_third_pty_acct_site_id,
693 assessable_value,
694 historical_flag,
695 trx_line_currency_code,
696 trx_line_currency_conv_date,
697 trx_line_currency_conv_rate,
698 trx_line_currency_conv_type,
699 trx_line_mau,
700 trx_line_precision,
701 historical_tax_code_id,
702 input_tax_classification_code,
703 user_upd_det_factors_flag,
704 DEFAULTING_ATTRIBUTE1)
705 VALUES(201,
706 'REQUISITION',
707 'REQUISITION',
708 p_tax_line_tbl(i).trx_id,
709 'LINE',
710 p_tax_line_tbl(i).trx_line_id,
711 'INVOICE',
712 nvl(p_tax_line_tbl(i).tax_attribute_update_code, 'CREATE'),
713 'ITEM',
714 p_tax_line_tbl(i).trx_line_date,
715 NULL,
716 NULL,
717 NULL,
718 'N',
719 p_tax_line_tbl(i).line_amt,
720 p_tax_line_tbl(i).trx_line_quantity,
721 p_tax_line_tbl(i).unit_price,
722 p_tax_line_tbl(i).product_id,
723 NULL,
724 p_tax_line_tbl(i).product_org_id,
725 p_tax_line_tbl(i).uom_code,
726 NULL,
727 p_tax_line_tbl(i).product_code,
728 NULL,
729 p_tax_line_tbl(i).ship_to_party_id,
730 p_tax_line_tbl(i).ship_from_party_id,
731 p_tax_line_tbl(i).bill_to_party_id,
732 p_tax_line_tbl(i).bill_from_party_id,
733 p_tax_line_tbl(i).ship_from_party_site_id,
734 p_tax_line_tbl(i).bill_from_party_site_id,
735 p_tax_line_tbl(i).ship_to_location_id,
736 ship_from_location_id,
737 p_tax_line_tbl(i).bill_to_location_id,
738 p_tax_line_tbl(i).ship_third_pty_id,
739 p_tax_line_tbl(i).ship_third_pty_site_id,
740 NULL,
741 'N',
742 p_tax_line_tbl(i).currency_code,
743 p_tax_line_tbl(i).currency_date,
744 p_tax_line_tbl(i).currency_rate,
745 p_tax_line_tbl(i).currency_type,
746 p_tax_line_tbl(i).currency_min_unit,
747 p_tax_line_tbl(i).currency_precision,
748 p_tax_line_tbl(i).historical_tax_id,
749 NULL,
750 NULL,
751 p_tax_line_tbl(i).product_org_id);
752 i := i + 1;
753 EXIT WHEN (i > tbl_sz);
754 END LOOP;
755
756 l_progress := 400;
757
758 -- Logging Infra: Statement level
759 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
760 l_log_msg := 'ZX get_default_tax_det_attribs(+)';
761 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
762 END IF;
763
764 -- Now get the default tax attibutes
765 zx_api_pub.get_default_tax_det_attribs(p_api_version => 1.0,
766 p_init_msg_list => null,
767 p_commit => null,
768 p_validation_level => null,
769 x_return_status => l_return_status,
770 x_msg_count => l_msg_count,
771 x_msg_data => l_msg_data);
772
773 l_progress := 500;
774
775 -- Logging Infra: Statement level
776 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
777 l_log_msg := 'ZX get_default_tax_det_attribs returned status=' || l_return_status;
778 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
779 l_log_msg := 'ZX get_default_tax_det_attribs(-)';
780 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
781 END IF;
782
783 x_msg_count := l_msg_count;
784 x_msg_data := l_msg_data;
785 x_return_status := l_return_status;
786
787 -- Query the tax header attributes from the global temp table
788 OPEN c_tax_head;
789 FETCH c_tax_head into x_tax_country, x_doc_subtype;
790 CLOSE c_tax_head;
791
792 l_progress := 600;
793
794 -- Logging Infra: Statement level
795 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
796 l_log_msg := 'DEFAULT: tax_country=' || x_tax_country;
797 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
798 l_log_msg := 'DEFAULT: doc_subtype=' || x_doc_subtype;
799 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
800 END IF;
801
802 -- Query the tax line attributes from the global temp table
803 i := 1;
804 OPEN c_tax_line;
805 LOOP
806 FETCH c_tax_line into l_line_id,
807 l_tax_class_code,
808 l_trx_business_cat,
809 l_prod_fiscal_class,
810 l_product_type,
811 l_intended_use,
812 l_user_fiscal_class,
813 l_assessable_value,
814 l_product_category,
815 l_user_override_flag;
816
817 EXIT WHEN c_tax_line%NOTFOUND;
818
819 -- Logging Infra: Statement level
820 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
821 l_log_msg := 'DEFAULT: req line id=' || l_line_id;
822 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
823 l_log_msg := 'DEFAULT: business_cat=' || l_trx_business_cat;
824 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
825 l_log_msg := 'DEFAULT: intended_use=' || l_intended_use;
826 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
827 l_log_msg := 'DEFAULT: user_fisc_class=' || l_user_fiscal_class;
828 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
829 l_log_msg := 'DEFAULT: prod_fisc_class=' || l_prod_fiscal_class;
830 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
831 l_log_msg := 'DEFAULT: prod_category=' || l_product_category;
832 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
833 l_log_msg := 'DEFAULT: prod_type=' || l_product_type;
834 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
835 l_log_msg := 'DEFAULT: assessable_value=' || l_assessable_value;
836 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
837 l_log_msg := 'DEFAULT: tax_classification=' || l_tax_class_code;
838 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
839 l_log_msg := 'DEFAULT: override_flag=' || l_user_override_flag;
840 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
841 END IF;
842
843 IF (i=1) THEN
844 -- Initialize the tables
845 x_line_id_tbl := ICX_TBL_NUMBER(null);
846 x_tax_class_tbl := ICX_TBL_VARCHAR240(null);
847 x_trx_bus_tbl := ICX_TBL_VARCHAR240(null);
848 x_prd_fisc_tbl := ICX_TBL_VARCHAR240(null);
849 x_prd_type_tbl := ICX_TBL_VARCHAR240(null);
850 x_int_use_tbl := ICX_TBL_VARCHAR240(null);
851 x_usr_fisc_tbl := ICX_TBL_VARCHAR240(null);
852 x_ass_val_tbl := ICX_TBL_NUMBER(null);
853 x_prd_cat_tbl := ICX_TBL_VARCHAR240(null);
854 x_override_tbl := ICX_TBL_FLAG(null);
855 ELSE
856 -- extend the tables
857 x_line_id_tbl.EXTEND;
858 x_tax_class_tbl.EXTEND;
859 x_trx_bus_tbl.EXTEND;
860 x_prd_fisc_tbl.EXTEND;
861 x_prd_type_tbl.EXTEND;
862 x_int_use_tbl.EXTEND;
863 x_usr_fisc_tbl.EXTEND;
864 x_ass_val_tbl.EXTEND;
865 x_prd_cat_tbl.EXTEND;
866 x_override_tbl.EXTEND;
867 END IF;
868
869 x_line_id_tbl(i) := l_line_id;
870 x_tax_class_tbl(i) := l_tax_class_code;
871 x_trx_bus_tbl(i) := l_trx_business_cat;
872 x_prd_fisc_tbl(i) := l_prod_fiscal_class;
873 x_prd_type_tbl(i) := l_product_type;
874 x_int_use_tbl(i) := l_intended_use;
875 x_usr_fisc_tbl(i) := l_user_fiscal_class;
876 x_ass_val_tbl(i) := l_assessable_value;
877 x_prd_cat_tbl(i) := l_product_category;
878 x_override_tbl(i) := l_user_override_flag;
879
880 i := i + 1;
881 END LOOP;
882 CLOSE c_tax_line;
883
884 -- Logging Infra: Procedure level
885 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL ) THEN
886 l_log_msg := l_procedure_name||'(-)';
887 FND_LOG.STRING(G_LEVEL_PROCEDURE, G_MODULE_NAME||l_procedure_name, l_log_msg);
888 l_log_msg := '<-------------------->';
889 FND_LOG.STRING(G_LEVEL_PROCEDURE, G_MODULE_NAME||l_procedure_name||'.begin', l_log_msg);
890 END IF;
891
892 EXCEPTION
893 WHEN OTHERS THEN
894 RAISE_APPLICATION_ERROR(-20000,
895 'Exception at POR_TAX_PVT.get_default_tax_attributes():'
896 || ' SQLERRM= ' || SQLERRM || ' Error= ' || x_msg_data
897 || ' Progress= ' || l_progress);
898
899 END get_default_tax_attributes;
900
901
902
903 PROCEDURE delete_all_tax_attr (p_org_id IN NUMBER,
904 p_trx_id IN NUMBER,
905 x_return_status OUT NOCOPY VARCHAR2,
906 x_msg_data OUT NOCOPY VARCHAR2,
907 x_msg_count OUT NOCOPY NUMBER) IS
908
909 PRAGMA AUTONOMOUS_TRANSACTION;
910
911 l_transaction_rec ZX_API_PUB.transaction_rec_type;
912 l_msg_count NUMBER;
913 l_return_status VARCHAR2(60);
914 l_msg_data VARCHAR2(480);
915 l_progress PLS_INTEGER;
916
917 -- Logging Infra
918 l_procedure_name CONSTANT VARCHAR2(30) := 'delete_all_tax_lines';
919 l_log_msg FND_LOG_MESSAGES.MESSAGE_TEXT%TYPE;
920
921 BEGIN
922
923 l_progress := 0;
924
925 -- Logging Infra: Setting up runtime level
926 G_CURRENT_RUNTIME_LEVEL := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
927
928 -- Logging Infra: Procedure level
929 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL ) THEN
930 l_log_msg := '<-------------------->';
931 FND_LOG.STRING(G_LEVEL_PROCEDURE, G_MODULE_NAME||l_procedure_name||'.begin', l_log_msg);
932 l_log_msg := l_procedure_name||'(+)';
933 FND_LOG.STRING(G_LEVEL_PROCEDURE, G_MODULE_NAME||l_procedure_name, l_log_msg);
934 END IF;
935
936 -- populate l_transaction_rec
937 l_transaction_rec.internal_organization_id := p_org_id;
938 l_transaction_rec.application_id := 201;
939 l_transaction_rec.entity_code := 'REQUISITION';
940 l_transaction_rec.event_class_code := 'REQUISITION';
941 l_transaction_rec.event_type_code := 'REQ_DELETED';
942 l_transaction_rec.trx_id := p_trx_id;
943
944 -- Logging Infra: Statement level
945 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
946 l_log_msg := 'Deleting record for trx_id=' || p_trx_id;
947 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
948 l_log_msg := 'ZX global_document_update(+)';
949 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
950 END IF;
951
952 -- this will delete all tax attribute records for this requisition
953 zx_api_pub.global_document_update(p_api_version => 1.0,
954 p_init_msg_list => null,
955 p_commit => null,
956 p_validation_level => null,
957 x_return_status => l_return_status,
958 x_msg_count => l_msg_count,
959 x_msg_data => l_msg_data,
960 p_transaction_rec => l_transaction_rec);
961
962 l_progress := 100;
963
964 -- Logging Infra: Statement level
965 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
966 l_log_msg := 'ZX global_document_update returned status=' || l_return_status;
967 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
968 l_log_msg := 'ZX global_document_update(-)';
969 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
970 END IF;
971
972 x_msg_count := l_msg_count;
973 x_msg_data := l_msg_data;
974 x_return_status := l_return_status;
975
976 -- Logging Infra: Procedure level
977 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL ) THEN
978 l_log_msg := l_procedure_name||'(-)';
979 FND_LOG.STRING(G_LEVEL_PROCEDURE, G_MODULE_NAME||l_procedure_name, l_log_msg);
980 l_log_msg := '<-------------------->';
981 FND_LOG.STRING(G_LEVEL_PROCEDURE, G_MODULE_NAME||l_procedure_name||'.end', l_log_msg);
982 END IF;
983
984 COMMIT;
985
986 EXCEPTION
987 WHEN OTHERS THEN
988 -- rollback
989 ROLLBACK;
990 -- raise exception for java layer
991 RAISE_APPLICATION_ERROR(-20000,
992 'Exception at POR_TAX_PVT.delete_all_tax_attr():'
993 || ' SQLERRM= ' || SQLERRM || ' Error= ' || x_msg_data
994 || ' Progress= ' || l_progress || '; ROLLBACK Complete.');
995
996 END delete_all_tax_attr;
997
998
999
1000
1001 PROCEDURE insert_line_det_attr (p_tax_info_tbl IN POR_INSERT_TAX_OBJ_TBL_TYPE,
1002 x_return_status OUT NOCOPY VARCHAR2,
1003 x_msg_data OUT NOCOPY VARCHAR2,
1004 x_msg_count OUT NOCOPY NUMBER ) IS
1005
1006 PRAGMA AUTONOMOUS_TRANSACTION;
1007
1008 l_transaction_rec ZX_API_PUB.transaction_rec_type;
1009 l_transaction_line_rec ZX_API_PUB.transaction_line_rec_type;
1010
1011 l_legal_entity_id PLS_INTEGER;
1012 i PLS_INTEGER;
1013 tbl_sz PLS_INTEGER;
1014 l_msg_count NUMBER;
1015 l_return_status VARCHAR2(60);
1016 l_msg_data VARCHAR2(480);
1017 l_progress PLS_INTEGER;
1018 -- Bug 7526131
1019 ship_from_location_id HZ_PARTY_SITES.LOCATION_ID%TYPE;
1020 l_ship_from_location_id HZ_PARTY_SITES.LOCATION_ID%TYPE;
1021 l_ship_from_party_site_id NUMBER;
1022 CURSOR get_sfli (ship_from_party_site_id IN NUMBER) IS
1023 SELECT hzps.location_id
1024 FROM hz_party_sites hzps
1025 WHERE hzps.party_site_id = ship_from_party_site_id;
1026
1027 -- Logging Infra
1028 l_procedure_name CONSTANT VARCHAR2(30) := 'insert_line_det_attr';
1029 l_log_msg FND_LOG_MESSAGES.MESSAGE_TEXT%TYPE;
1030
1031 BEGIN
1032
1033 l_progress := 0;
1034
1035 -- Logging Infra: Setting up runtime level
1036 G_CURRENT_RUNTIME_LEVEL := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1037
1038 -- Logging Infra: Procedure level
1039 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL ) THEN
1040 l_log_msg := '<-------------------->';
1041 FND_LOG.STRING(G_LEVEL_PROCEDURE, G_MODULE_NAME||l_procedure_name||'.begin', l_log_msg);
1042 l_log_msg := l_procedure_name||'(+)';
1043 FND_LOG.STRING(G_LEVEL_PROCEDURE, G_MODULE_NAME||l_procedure_name, l_log_msg);
1044 END IF;
1045
1046 -- get legal entity id
1047 l_legal_entity_id := XLE_UTILITIES_GRP.Get_DefaultLegalContext_OU(p_tax_info_tbl(1).org_id);
1048
1049 -- Logging Infra: Statement level
1050 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
1051 l_log_msg := 'XLE Legal Entity=' || l_legal_entity_id;
1052 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
1053 END IF;
1054
1055 l_progress := 50;
1056
1057 -- populate l_transaction_rec
1058 l_transaction_rec.internal_organization_id := p_tax_info_tbl(1).org_id;
1059 l_transaction_rec.application_id := 201;
1060 l_transaction_rec.entity_code := 'REQUISITION';
1061 l_transaction_rec.event_class_code := 'REQUISITION';
1062 l_transaction_rec.event_type_code := 'REQ_DELETED';
1063 l_transaction_rec.trx_id := p_tax_info_tbl(1).trx_id;
1064
1065 -- Logging Infra: Statement level
1066 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
1067 l_log_msg := 'Deleting record for trx_id=' || p_tax_info_tbl(1).trx_id;
1068 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
1069 l_log_msg := 'ZX global_document_update(+)';
1070 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
1071 END IF;
1072
1073 -- this will delete all tax attribute records for this requisition
1074 zx_api_pub.global_document_update(p_api_version => 1.0,
1075 p_init_msg_list => null,
1076 p_commit => null,
1077 p_validation_level => null,
1078 x_return_status => l_return_status,
1079 x_msg_count => l_msg_count,
1080 x_msg_data => l_msg_data,
1081 p_transaction_rec => l_transaction_rec);
1082
1083 l_progress := 100;
1084
1085 -- Logging Infra: Statement level
1086 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
1087 l_log_msg := 'ZX global_document_update returned status=' || l_return_status;
1088 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
1089 l_log_msg := 'ZX global_document_update(-)';
1090 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
1091 END IF;
1092
1093 x_msg_count := l_msg_count;
1094 x_msg_data := l_msg_data;
1095 x_return_status := l_return_status;
1096
1097 -- loop through and insert reqLine data into EBTax global plsql table
1098 i := 1;
1099 tbl_sz := p_tax_info_tbl.count();
1100
1101 LOOP
1102 -- Bug 7526131: Getting ship_from_location_id
1103
1104 IF (l_ship_from_party_site_id = p_tax_info_tbl(i).ship_from_party_site_id) THEN
1105 ship_from_location_id := l_ship_from_location_id;
1106 ELSE
1107 OPEN get_sfli(p_tax_info_tbl(i).ship_from_party_site_id);
1108 FETCH get_sfli into ship_from_location_id;
1109 IF get_sfli%NOTFOUND THEN
1110 ship_from_location_id := -1;
1111 l_ship_from_location_id := -1;
1112 ELSE
1113 l_ship_from_location_id := ship_from_location_id;
1114 END IF;
1115 CLOSE get_sfli;
1116 END IF;
1117
1118 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
1119 l_log_msg := 'ship_from_location_id: ' || ship_from_location_id;
1120 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
1121 END IF;
1122
1123 -- EBTax initialization procedure
1124 ZX_GLOBAL_STRUCTURES_PKG.INIT_TRX_LINE_DIST_TBL(i);
1125
1126 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.INTERNAL_ORGANIZATION_ID(i) :=
1127 p_tax_info_tbl(i).org_id;
1128 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLICATION_ID(i) :=
1129 201;
1130 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ENTITY_CODE(i) :=
1131 'REQUISITION';
1132 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.EVENT_CLASS_CODE(i) :=
1133 'REQUISITION';
1134 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.EVENT_TYPE_CODE(i) :=
1135 'REQ_CREATED';
1136 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_ID(i) :=
1137 p_tax_info_tbl(i).trx_id;
1138 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_DATE(i) :=
1139 p_tax_info_tbl(i).trx_date;
1140 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LEDGER_ID(i) :=
1141 p_tax_info_tbl(i).ledger_id;
1142 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_CURRENCY_CODE(i) :=
1143 p_tax_info_tbl(i).currency_code;
1144 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CURRENCY_CONVERSION_DATE(i) :=
1145 p_tax_info_tbl(i).currency_date;
1146 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CURRENCY_CONVERSION_RATE(i) :=
1147 p_tax_info_tbl(i).currency_rate;
1148 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CURRENCY_CONVERSION_TYPE(i) :=
1149 p_tax_info_tbl(i).currency_type;
1150 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.MINIMUM_ACCOUNTABLE_UNIT(i) :=
1151 p_tax_info_tbl(i).currency_min_unit;
1152 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRECISION(i) :=
1153 p_tax_info_tbl(i).currency_precision;
1154 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_LINE_PRECISION(i) :=
1155 p_tax_info_tbl(i).currency_precision;
1156 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LEGAL_ENTITY_ID(i) :=
1157 l_legal_entity_id;
1158 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DOCUMENT_SUB_TYPE(i) :=
1159 p_tax_info_tbl(i).doc_subtype;
1160 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_BILL_TO_PARTY_ID(i) :=
1161 p_tax_info_tbl(i).rndg_bill_to_party_id;
1162 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DEFAULT_TAXATION_COUNTRY(i) :=
1163 p_tax_info_tbl(i).tax_country;
1164 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TAX_REPORTING_FLAG(i) :=
1165 'N';
1166 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.INPUT_TAX_CLASSIFICATION_CODE(i) :=
1167 p_tax_info_tbl(i).input_tax_class;
1168 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.HISTORICAL_FLAG(i) :=
1169 'N';
1170 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_LEVEL_TYPE(i) :=
1171 'LINE';
1172 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_LINE_ID(i) :=
1173 p_tax_info_tbl(i).trx_line_id;
1174 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LINE_CLASS(i) :=
1175 'INVOICE';
1176 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LINE_LEVEL_ACTION(i) :=
1177 'CREATE';
1178 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_LINE_TYPE(i) :=
1179 'ITEM';
1180 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_LINE_DATE(i) :=
1181 p_tax_info_tbl(i).trx_line_date;
1182 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_BUSINESS_CATEGORY(i) :=
1183 p_tax_info_tbl(i).trx_business_cat;
1184 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LINE_INTENDED_USE(i) :=
1185 p_tax_info_tbl(i).line_intended_use;
1186 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.USER_DEFINED_FISC_CLASS(i) :=
1187 p_tax_info_tbl(i).user_fiscal_class;
1188 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LINE_AMT_INCLUDES_TAX_FLAG(i) :=
1189 'N';
1190 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LINE_AMT(i) :=
1191 p_tax_info_tbl(i).line_amt;
1192 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_LINE_QUANTITY(i) :=
1193 p_tax_info_tbl(i).trx_line_quantity;
1194 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.UNIT_PRICE(i) :=
1195 p_tax_info_tbl(i).unit_price;
1196 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.EXEMPTION_CONTROL_FLAG(i) :=
1197 'S';
1198 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_ID(i) :=
1199 p_tax_info_tbl(i).product_id;
1200 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_FISC_CLASSIFICATION(i) :=
1201 p_tax_info_tbl(i).prod_fiscal_class;
1202 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_ORG_ID(i) :=
1203 p_tax_info_tbl(i).product_org_id;
1204 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.UOM_CODE(i) :=
1205 p_tax_info_tbl(i).uom_code;
1206 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_TYPE(i) :=
1207 p_tax_info_tbl(i).product_type;
1208 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_CODE(i) :=
1209 p_tax_info_tbl(i).product_code;
1210 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_CATEGORY(i) :=
1211 p_tax_info_tbl(i).product_category;
1212 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SHIP_TO_PARTY_ID(i) :=
1213 p_tax_info_tbl(i).ship_to_party_id;
1214 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SHIP_FROM_PARTY_ID(i) :=
1215 p_tax_info_tbl(i).ship_from_party_id;
1216 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.BILL_TO_PARTY_ID(i) :=
1217 p_tax_info_tbl(i).bill_to_party_id;
1218 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.BILL_FROM_PARTY_ID(i) :=
1219 p_tax_info_tbl(i).bill_from_party_id;
1220 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SHIP_FROM_PARTY_SITE_ID(i) :=
1221 p_tax_info_tbl(i).ship_from_party_site_id;
1222 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.BILL_FROM_PARTY_SITE_ID(i) :=
1223 p_tax_info_tbl(i).bill_from_party_site_id;
1224 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SHIP_TO_LOCATION_ID(i) :=
1225 p_tax_info_tbl(i).ship_to_location_id;
1226 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.BILL_TO_LOCATION_ID(i) :=
1227 p_tax_info_tbl(i).bill_to_location_id;
1228 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SHIP_THIRD_PTY_ACCT_ID(i) :=
1229 p_tax_info_tbl(i).ship_third_pty_id;
1230 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SHIP_THIRD_PTY_ACCT_SITE_ID(i) :=
1231 p_tax_info_tbl(i).ship_third_pty_site_id;
1232 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ASSESSABLE_VALUE(i) :=
1233 p_tax_info_tbl(i).assessable_value;
1234 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.HISTORICAL_TAX_CODE_ID(i) :=
1235 p_tax_info_tbl(i).historical_tax_id;
1236 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.USER_UPD_DET_FACTORS_FLAG(i) :=
1237 p_tax_info_tbl(i).user_override;
1238 -- Bug 7526131: populating ship_from_location_id
1239 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SHIP_FROM_LOCATION_ID(i) :=
1240 ship_from_location_id;
1241
1242 -- Logging Infra: Statement level
1243 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
1244 l_log_msg := 'Inserted record into ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl for trx_line_id=' || p_tax_info_tbl(1).trx_line_id;
1245 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
1246 END IF;
1247
1248 i := i + 1;
1249 EXIT WHEN (i > tbl_sz);
1250 END LOOP;
1251
1252 l_progress := 200;
1253
1254 -- populate l_transaction_rec as all NULLs as there are no duplicates
1255 l_transaction_line_rec.internal_organization_id := NULL;
1256 l_transaction_line_rec.application_id := NULL;
1257 l_transaction_line_rec.entity_code := NULL;
1258 l_transaction_line_rec.event_class_code := NULL;
1259 l_transaction_line_rec.event_type_code := NULL;
1260 l_transaction_line_rec.trx_id := NULL;
1261
1262 -- Logging Infra: Statement level
1263 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
1264 l_log_msg := 'ZX insert_line_det_factors(+)';
1265 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
1266 END IF;
1267
1268 -- this will insert the tax determining factors into the EBTax tables
1269 zx_api_pub.insert_line_det_factors(p_api_version => 1.0,
1270 p_init_msg_list => null,
1271 p_commit => null,
1272 p_validation_level => null,
1273 x_return_status => l_return_status,
1274 x_msg_count => l_msg_count,
1275 x_msg_data => l_msg_data);
1276
1277 l_progress := 300;
1278
1279 -- Logging Infra: Statement level
1280 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
1281 l_log_msg := 'ZX insert_line_det_factors returned status=' || l_return_status;
1282 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
1283 l_log_msg := 'ZX insert_line_det_factors(-)';
1284 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
1285 END IF;
1286
1287 x_msg_count := x_msg_count + l_msg_count;
1288 x_msg_data := x_msg_data || ':' || l_msg_data;
1289 x_return_status := x_return_status || ':' || l_return_status;
1290
1291 -- Logging Infra: Procedure level
1292 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL ) THEN
1293 l_log_msg := l_procedure_name||'(-)';
1294 FND_LOG.STRING(G_LEVEL_PROCEDURE, G_MODULE_NAME||l_procedure_name, l_log_msg);
1295 l_log_msg := '<-------------------->';
1296 FND_LOG.STRING(G_LEVEL_PROCEDURE, G_MODULE_NAME||l_procedure_name||'.end', l_log_msg);
1297 END IF;
1298
1299 COMMIT;
1300
1301 EXCEPTION
1302 WHEN OTHERS THEN
1303 -- rollback
1304 ROLLBACK;
1305 -- raise exception for java layer
1306 RAISE_APPLICATION_ERROR(-20000,
1307 'Exception at POR_TAX_PVT.insert_line_det_attr():'
1308 || ' SQLERRM= ' || SQLERRM || ' Error= ' || x_msg_data
1309 || ' Progress= ' || l_progress || '; ROLLBACK Complete.');
1310 END insert_line_det_attr;
1311
1312
1313 PROCEDURE copy_tax_attributes (p_tax_copy_tbl IN POR_TAX_COPY_OBJ_TBL_TYPE,
1314 x_return_status OUT NOCOPY VARCHAR2,
1315 x_msg_data OUT NOCOPY VARCHAR2,
1316 x_msg_count OUT NOCOPY NUMBER) IS
1317
1318 PRAGMA AUTONOMOUS_TRANSACTION;
1319
1320 l_legal_entity_id PLS_INTEGER;
1321 i PLS_INTEGER;
1322 tbl_sz PLS_INTEGER;
1323 l_msg_count NUMBER;
1324 l_return_status VARCHAR2(60);
1325 l_msg_data VARCHAR2(480);
1326 l_progress PLS_INTEGER;
1327
1328 -- Logging Infra
1329 l_procedure_name CONSTANT VARCHAR2(30) := 'copy_tax_attributes';
1330 l_log_msg FND_LOG_MESSAGES.MESSAGE_TEXT%TYPE;
1331
1332 BEGIN
1333
1334 l_progress := 0;
1335
1336 -- Logging Infra: Setting up runtime level
1337 G_CURRENT_RUNTIME_LEVEL := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1338
1339 -- Logging Infra: Procedure level
1340 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL ) THEN
1341 l_log_msg := '<-------------------->';
1342 FND_LOG.STRING(G_LEVEL_PROCEDURE, G_MODULE_NAME||l_procedure_name||'.begin', l_log_msg);
1343 l_log_msg := l_procedure_name||'(+)';
1344 FND_LOG.STRING(G_LEVEL_PROCEDURE, G_MODULE_NAME||l_procedure_name, l_log_msg);
1345 END IF;
1346
1347 -- get legal entity id
1348 l_legal_entity_id := XLE_UTILITIES_GRP.Get_DefaultLegalContext_OU(p_tax_copy_tbl(1).org_id);
1349
1350 -- Logging Infra: Statement level
1351 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
1352 l_log_msg := 'XLE Legal Entity=' || l_legal_entity_id;
1353 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
1354 END IF;
1355
1356 l_progress := 50;
1357
1358 -- loop through and insert reqLine data into EBTax global plsql table
1359 i := 1;
1360 tbl_sz := p_tax_copy_tbl.count();
1361
1362 LOOP
1363 -- EBTax initialization procedure
1364 ZX_GLOBAL_STRUCTURES_PKG.INIT_TRX_LINE_DIST_TBL(i);
1365
1366 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.INTERNAL_ORGANIZATION_ID(i) :=
1367 p_tax_copy_tbl(i).org_id;
1368 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLICATION_ID(i) :=
1369 201;
1370 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ENTITY_CODE(i) :=
1371 'REQUISITION';
1372 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.EVENT_CLASS_CODE(i) :=
1373 'REQUISITION';
1374 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.EVENT_TYPE_CODE(i) :=
1375 'REQ_CREATED';
1376 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_ID(i) :=
1377 p_tax_copy_tbl(i).trx_id;
1378 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_DATE(i) :=
1379 p_tax_copy_tbl(i).trx_date;
1380 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LEDGER_ID(i) :=
1381 p_tax_copy_tbl(i).ledger_id;
1382 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LEGAL_ENTITY_ID(i) :=
1383 l_legal_entity_id;
1384 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_LEVEL_TYPE(i) :=
1385 'LINE';
1386 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LINE_LEVEL_ACTION(i) :=
1387 'CREATE';
1388 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_LINE_ID(i) :=
1389 p_tax_copy_tbl(i).trx_line_id;
1390 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LINE_AMT(i) :=
1391 p_tax_copy_tbl(i).line_amt;
1392 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_LINE_DATE(i) :=
1393 p_tax_copy_tbl(i).trx_line_date;
1394 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SOURCE_APPLICATION_ID(i) :=
1395 201;
1396 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SOURCE_ENTITY_CODE(i) :=
1397 'REQUISITION';
1398 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SOURCE_EVENT_CLASS_CODE(i) :=
1399 'REQUISITION';
1400 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SOURCE_TRX_ID(i) :=
1401 p_tax_copy_tbl(i).source_trx_id;
1402 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SOURCE_LINE_ID(i) :=
1403 p_tax_copy_tbl(i).source_line_id;
1404 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SOURCE_TRX_LEVEL_TYPE(i) :=
1405 'LINE';
1406 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_amt_includes_tax_flag(i) :=
1407 'N';
1408
1409 -- Logging Infra: Procedure level
1410 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
1411 l_log_msg := 'Inserted record into ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl';
1412 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
1413 l_log_msg := '--> source id=' || p_tax_copy_tbl(i).source_trx_id || ':' || p_tax_copy_tbl(i).source_line_id;
1414 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
1415 l_log_msg := '--> dest id=' || p_tax_copy_tbl(i).trx_id || ':' || p_tax_copy_tbl(i).trx_line_id;
1416 FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME||l_procedure_name, l_log_msg);
1417 END IF;
1418
1419 i := i + 1;
1420 EXIT WHEN (i > tbl_sz);
1421 END LOOP;
1422
1423 l_progress := 100;
1424
1425 -- this will insert the tax determining factors into the EBTax tables
1426 zx_api_pub.copy_insert_line_det_factors(p_api_version => 1.0,
1427 p_init_msg_list => null,
1428 p_commit => null,
1429 p_validation_level => null,
1430 x_return_status => l_return_status,
1431 x_msg_count => l_msg_count,
1432 x_msg_data => l_msg_data);
1433
1434 l_progress := 200;
1435
1436 x_msg_count := l_msg_count;
1437 x_msg_data := l_msg_data;
1438 x_return_status := l_return_status;
1439
1440 -- Logging Infra: Procedure level
1441 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL ) THEN
1442 l_log_msg := l_procedure_name||'(-)';
1443 FND_LOG.STRING(G_LEVEL_PROCEDURE, G_MODULE_NAME||l_procedure_name, l_log_msg);
1444 l_log_msg := '<-------------------->';
1445 FND_LOG.STRING(G_LEVEL_PROCEDURE, G_MODULE_NAME||l_procedure_name||'.begin', l_log_msg);
1446 END IF;
1447
1448 COMMIT;
1449
1450 EXCEPTION
1451 WHEN OTHERS THEN
1452 -- rollback
1453 ROLLBACK;
1454 -- raise exception for java layer
1455 RAISE_APPLICATION_ERROR(-20000,
1456 'Exception at POR_TAX_PVT.copy_tax_attributes():'
1457 || ' SQLERRM= ' || SQLERRM || ' Error= ' || x_msg_data
1458 || ' Progress= ' || l_progress || '; ROLLBACK Complete.');
1459
1460 END copy_tax_attributes;
1461
1462
1463 END POR_TAX_PVT;