[Home] [Help]
PACKAGE BODY: APPS.IGC_ETAX_UTIL_PKG
Source
1 PACKAGE BODY IGC_ETAX_UTIL_PKG AS
2 /* $Header: IGCETXUB.pls 120.7.12010000.2 2008/11/25 16:07:17 sasukuma ship $ */
3
4
5 -- Create global variables to maintain the session info
6 l_user_id igc_cc_headers.created_by%TYPE := FND_GLOBAL.user_id;
7 l_login_id igc_cc_headers.last_update_login%TYPE := FND_GLOBAL.login_id;
8 l_sysdate DATE := sysdate;
9
10 G_PKG_NAME CONSTANT VARCHAR2(30) := 'IGC_ETAX_UTIL_PKG';
11 G_MSG_UERROR CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR;
12 G_MSG_ERROR CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_ERROR;
13 G_MSG_SUCCESS CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_SUCCESS;
14 G_MSG_HIGH CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH;
15 G_MSG_MEDIUM CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM;
16 G_MSG_LOW CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW;
17 G_LINES_PER_FETCH CONSTANT NUMBER := 1000;
18 g_debug_mode VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
19 G_CURRENT_RUNTIME_LEVEL CONSTANT NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
20 G_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
21 G_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
22 G_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
23 G_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
24 G_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
25 G_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
26 G_MODULE_NAME CONSTANT VARCHAR2(64) := 'IGC.PLSQL.ICETXUB.IGC_ETAX_UTIL_PKG.';
27 G_ORG_LOC_ID HR_ALL_ORGANIZATION_UNITS.location_id%TYPE;
28
29 FUNCTION Populate_Dist_GT(
30 P_CC_Header_Rec IN igc_cc_headers%ROWTYPE,
31 P_Line_Id IN igc_cc_acct_lines.cc_acct_line_id%type,
32 P_Calling_Mode IN VARCHAR2,
33 P_Error_Code OUT NOCOPY VARCHAR2,
34 P_Calling_Sequence IN VARCHAR2,
35 P_Amount IN NUMBER) RETURN VARCHAR2 ;
36
37 PROCEDURE Put_Debug_Msg (
38 p_path IN VARCHAR2,
39 p_debug_msg IN VARCHAR2,
40 p_sev_level IN VARCHAR2 := G_LEVEL_STATEMENT
41 );
42
43 PROCEDURE set_tax_security_context
44 (p_org_id IN NUMBER,
45 p_legal_entity_id IN NUMBER,
46 p_transaction_date IN DATE,
47 p_related_doc_date IN DATE,
48 p_adjusted_doc_date IN DATE,
49 p_effective_date OUT NOCOPY DATE,
50 p_return_status OUT NOCOPY VARCHAR2,
51 p_msg_count OUT NOCOPY NUMBER,
52 p_msg_data OUT NOCOPY VARCHAR2) IS
53
54 l_debug_info VARCHAR2(240);
55
56 BEGIN
57 ---------------------------------------------------------------
58 l_debug_info := 'Calling zx_api_pub.set_tax_security_context';
59 ---------------------------------------------------------------
60
61 IF p_org_id IS NOT NULL AND
62 p_legal_entity_id IS NOT NULL AND
63 p_transaction_date IS NOT NULL THEN
64
65 zx_api_pub.set_tax_security_context
66 (p_api_version => 1.0,
67 p_init_msg_list => FND_API.G_FALSE,
68 p_commit => FND_API.G_FALSE,
69 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
70 x_return_status => p_return_status,
71 x_msg_count => p_msg_count,
72 x_msg_data => p_msg_data,
73 p_internal_org_id => p_org_id,
74 p_legal_entity_id => p_legal_entity_id,
75 p_transaction_date => p_transaction_date,
76 p_related_doc_date => p_related_doc_date,
77 p_adjusted_doc_date => p_adjusted_doc_date,
78 x_effective_date => p_effective_date);
79
80 END IF;
81
82 EXCEPTION
83 WHEN OTHERS THEN
84 FND_MESSAGE.SET_NAME('IGC','IGC_DEBUG');
85 FND_MESSAGE.SET_TOKEN('ERROR',SQLERRM);
86 FND_MESSAGE.SET_TOKEN('CALLING_SEQUENCE', 'IGC_ETAX_UTIL_PKG.set_tax_security_context');
87 FND_MESSAGE.SET_TOKEN('PARAMETERS', 'p_org_id: ' || p_org_id ||
88 'p_legal_entity_id: ' || p_legal_entity_id ||
89 'p_transaction_date: ' || p_transaction_date ||
90 'p_related_doc_date: ' || p_related_doc_date ||
91 'p_adjusted_doc_date:' || p_adjusted_doc_date);
92 FND_MESSAGE.SET_TOKEN('DEBUG_INFO',l_debug_info);
93 APP_EXCEPTION.RAISE_EXCEPTION;
94
95 END set_tax_security_context;
96
97
98 FUNCTION Populate_Headers_GT(
99 P_CC_Header_Rec IN igc_cc_headers%ROWTYPE,
100 P_Calling_Mode IN VARCHAR2,
101 --P_Event_Class_Code IN VARCHAR2,
102 --P_Event_Type_Code IN VARCHAR2,
103 P_Legal_Entity_Id IN NUMBER,
104 P_Error_Code OUT NOCOPY VARCHAR2) RETURN VARCHAR2 IS
105
106
107 l_precision fnd_currencies.precision%TYPE;
108 l_minimum_accountable_unit fnd_currencies.minimum_accountable_unit%TYPE;
109
110 l_calling_sequence VARCHAR2(240);
111 l_return_status VARCHAR2(32) := FND_API.G_RET_STS_UNEXP_ERROR;
112 l_api_name VARCHAR2(30) := 'Populate_Headers_gt';
113 l_debug_info VARCHAR2(240);
114 l_rounding_bill_to_party_id HR_ALL_ORGANIZATION_UNITS.organization_id%Type;
115 l_ledger_currency fnd_currencies.currency_code%type;
116
117 BEGIN
118
119 l_debug_info := 'Populating zx header table';
120
121 IF P_CC_Header_Rec.cc_header_id IS NOT NULL AND
122 P_Legal_Entity_Id IS NOT NULL then
123
124 /* Modified for bug#6719456.Use ledger currency instead of transaction currency */
125 SELECT currency_code
126 INTO l_ledger_currency
127 FROM gl_ledgers
128 WHERE ledger_id = P_CC_Header_Rec.set_of_books_id;
129
130 SELECT NVL(precision, 0), NVL(minimum_accountable_unit,(1/power(10,precision)))
131 INTO l_precision, l_minimum_accountable_unit
132 FROM fnd_currencies
133 WHERE currency_code = l_ledger_currency;
134
135
136 DELETE FROM zx_trx_headers_gt
137 WHERE application_id = IGC_ETAX_UTIL_PKG.IGC_APPLICATION_ID
138 AND entity_code = IGC_ETAX_UTIL_PKG.IGC_ENTITY_CODE
139 AND event_class_code = IGC_ETAX_UTIL_PKG.IGC_EVENT_CLASS_CODE
140 AND trx_id = P_CC_Header_Rec.cc_header_id;
141
142 IF g_org_loc_id is NOT NULL THEN -- Bug#6647075
143 l_rounding_bill_to_party_id := P_CC_Header_Rec.org_id;
144 END IF;
145
146
147 INSERT INTO zx_trx_headers_gt(
148 internal_organization_id,
149 internal_org_location_id,
150 application_id,
151 entity_code,
152 event_class_code,
153 event_type_code,
154 trx_id,
155 hdr_trx_user_key1,
156 hdr_trx_user_key2,
157 hdr_trx_user_key3,
158 hdr_trx_user_key4,
159 hdr_trx_user_key5,
160 hdr_trx_user_key6,
161 trx_date,
162 trx_doc_revision,
163 ledger_id,
164 trx_currency_code,
165 currency_conversion_date,
166 currency_conversion_rate,
167 currency_conversion_type,
168 minimum_accountable_unit,
169 precision,
170 legal_entity_id,
171 rounding_ship_to_party_id,
172 rounding_ship_from_party_id,
173 rounding_bill_to_party_id,
174 rounding_bill_from_party_id,
175 rndg_ship_to_party_site_id,
176 rndg_ship_from_party_site_id,
177 rndg_bill_to_party_site_id,
178 rndg_bill_from_party_site_id,
179 establishment_id,
180 receivables_trx_type_id,
181 related_doc_application_id,
182 related_doc_entity_code,
183 related_doc_event_class_code,
184 related_doc_trx_id,
185 rel_doc_hdr_trx_user_key1,
186 rel_doc_hdr_trx_user_key2,
187 rel_doc_hdr_trx_user_key3,
188 rel_doc_hdr_trx_user_key4,
189 rel_doc_hdr_trx_user_key5,
190 rel_doc_hdr_trx_user_key6,
191 related_doc_number,
192 related_doc_date,
193 default_taxation_country,
194 quote_flag,
195 ctrl_total_hdr_tx_amt,
196 trx_number,
197 trx_description,
198 trx_communicated_date,
199 batch_source_id,
200 batch_source_name,
201 doc_seq_id,
202 doc_seq_name,
203 doc_seq_value,
204 trx_due_date,
205 trx_type_description,
206 document_sub_type,
207 supplier_tax_invoice_number,
208 supplier_tax_invoice_date,
209 supplier_exchange_rate,
210 tax_invoice_date,
211 tax_invoice_number,
212 tax_event_class_code,
213 tax_event_type_code,
214 doc_event_status,
215 rdng_ship_to_pty_tx_prof_id,
216 rdng_ship_from_pty_tx_prof_id,
217 rdng_bill_to_pty_tx_prof_id,
218 rdng_bill_from_pty_tx_prof_id,
219 rdng_ship_to_pty_tx_p_st_id,
220 rdng_ship_from_pty_tx_p_st_id,
221 rdng_bill_to_pty_tx_p_st_id,
222 rdng_bill_from_pty_tx_p_st_id,
223 bill_third_pty_acct_id,
224 bill_third_pty_acct_site_id,
225 ship_third_pty_acct_id,
226 ship_third_pty_acct_site_id,
227 icx_session_id)
228 VALUES
229 (
230 P_CC_Header_Rec.org_id, --internal_organization_id
231 NULL, --P_CC_Header_Rec.location_id, --internal_org_location_id ^^
232 IGC_ETAX_UTIL_PKG.IGC_APPLICATION_ID, --application_id
233 IGC_ETAX_UTIL_PKG.IGC_ENTITY_CODE, --entity_code
234 IGC_ETAX_UTIL_PKG.IGC_EVENT_CLASS_CODE, --event_class_code
235 IGC_ETAX_UTIL_PKG.IGC_EVENT_TYPE_CODE, --event_type_code
236 P_CC_Header_Rec.cc_header_id, --trx_id
237 NULL, --hdr_trx_user_key1
238 NULL, --hdr_trx_user_key2
239 NULL, --hdr_trx_user_key3
240 NULL, --hdr_trx_user_key4
241 NULL, --hdr_trx_user_key5
242 NULL, --hdr_trx_user_key6
243 nvl(P_CC_Header_Rec.cc_acct_date,sysdate), -- *check* p_invoice_header_rec.invoice_date, --trx_date
244 NULL, --trx_doc_revision
245 P_CC_Header_Rec.set_of_books_id, --ledger_id
246 l_ledger_currency, --trx_currency_code
247 null, --currency_conversion_date
248 null, --currency_conversion_rate
249 null, --currency_conversion_type
250 l_minimum_accountable_unit, --minimum_accountable_unit
251 l_precision, --precision
252 P_Legal_Entity_Id, --*check* p_invoice_header_rec.legal_entity_id, --legal_entity_id
253 P_CC_Header_Rec.vendor_id, --rounding_ship_to_party_id ^^
254 NULL, --rounding_ship_from_party_id *CC*
255 l_rounding_bill_to_party_id, --rounding_bill_to_party_id
256 NULL, --rounding_bill_from_party_id *CC*
257 NULL, --rndg_ship_to_party_site_id
258 NULL, --rndg_ship_from_party_site_id *CC*
259 NULL, --rndg_bill_to_party_site_id
260 NULL, --rndg_bill_from_party_site_id *CC*
261 NULL, --establishment_id
262 NULL, --receivables_trx_type_id
263 NULL, --related_doc_application_id *CC*
264 NULL, --related_doc_entity_code *CC*
265 NULL, --related_doc_event_class_code *CC*
266 NULL, --related_doc_trx_id *CC*
267 NULL, --rel_doc_hdr_trx_user_key1
268 NULL, --rel_doc_hdr_trx_user_key2
269 NULL, --rel_doc_hdr_trx_user_key3
270 NULL, --rel_doc_hdr_trx_user_key4
271 NULL, --rel_doc_hdr_trx_user_key5
272 NULL, --rel_doc_hdr_trx_user_key6
273 NULL, --related_doc_number *CC*
274 NULL, --related_doc_date *CC*
275 NULL, --*check* p_invoice_header_rec.taxation_country, --default_taxation_country
276 IGC_ETAX_UTIL_PKG.IGC_TAX_QUOTE_FLAG, --quote_flag
277 NULL, --ctrl_total_hdr_tx_amt *CC*
278 P_CC_Header_Rec.cc_num, --trx_number *CC*
279 NULL, --trx_description
280 NULL, --trx_communicated_date
281 NULL, --batch_source_id
282 NULL, --batch_source_name
283 NULL, --doc_seq_id *CC*
284 NULL, --doc_seq_name *CC*
285 NULL, --doc_seq_value *CC*
286 NULL, --trx_due_date
287 NULL, --trx_type_description *CC*
288 NULL, --document_sub_type *CC*
289 NULL, --supplier_tax_invoice_number *CC*
290 NULL, --supplier_tax_invoice_date *CC*
291 NULL, --supplier_exchange_rate *CC*
292 NULL, --tax_invoice_date *CC*
293 NULL, --tax_invoice_number *CC*
294 NULL, --tax_event_class_code
295 IGC_ETAX_UTIL_PKG.IGC_TAX_EVENT_TYPE_CODE, --tax_event_type_code
296 NULL, --doc_event_status
297 NULL, --rdng_ship_to_pty_tx_prof_id
298 NULL, --rdng_ship_from_pty_tx_prof_id
299 NULL, --rdng_bill_to_pty_tx_prof_id
300 NULL, --rdng_bill_from_pty_tx_prof_id
301 NULL, --rdng_ship_to_pty_tx_p_st_id
302 NULL, --rdng_ship_from_pty_tx_p_st_id
303 NULL, --rdng_bill_to_pty_tx_p_st_id
304 NULL, --rdng_bill_from_pty_tx_p_st_id
305 P_CC_Header_Rec.vendor_id, --bill_third_pty_acct_id
306 P_CC_Header_Rec.vendor_site_id, --bill_third_pty_acct_site_id
307 P_CC_Header_Rec.vendor_id, --ship_third_pty_acct_id
308 P_CC_Header_Rec.vendor_site_id, --ship_third_pty_acct_site_id
309 FND_GLOBAL.session_id --icx_session_id
310 );
311
312 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
313 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'zx_trx_headers_gt values ');
314 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Application_id: '|| IGC_ETAX_UTIL_PKG.IGC_APPLICATION_ID);
315 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Entity_code: ' || IGC_ETAX_UTIL_PKG.IGC_ENTITY_CODE);
316 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Event_class_code: ' || IGC_ETAX_UTIL_PKG.IGC_EVENT_CLASS_CODE);
317 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Event_type_code: ' || IGC_ETAX_UTIL_PKG.IGC_EVENT_TYPE_CODE);
318 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'CC Header Id: '|| P_CC_Header_Rec.cc_header_id);
319 END IF;
320 l_return_status := FND_API.G_RET_STS_SUCCESS;
321 l_debug_info := 'Populating zx header table after insert before retunr';
322 RETURN l_return_status;
323 END IF;
324 EXCEPTION
325 WHEN OTHERS THEN
326 FND_MESSAGE.SET_NAME('IGC','IGC_DEBUG');
327 FND_MESSAGE.SET_TOKEN('ERROR',SQLERRM);
328 FND_MESSAGE.SET_TOKEN('CALLING_SEQUENCE',l_calling_sequence);
329 FND_MESSAGE.SET_TOKEN('PARAMETERS',
330 ' P_CC_Header_Rec = '||P_CC_Header_Rec.cc_header_id||
331 ' P_Calling_Mode ='||P_Calling_Mode||
332 ' P_Legal_Entity_Id = '||P_Legal_Entity_Id);
333 FND_MESSAGE.SET_TOKEN('DEBUG_INFO',l_debug_info);
334 l_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
335
336 APP_EXCEPTION.RAISE_EXCEPTION;
337
338 END Populate_Headers_GT;
339
340 /* Bug 6719456 - Added new parameter P_Line_Id */
341 FUNCTION Populate_Lines_GT(
342 P_CC_Header_Rec IN igc_cc_headers%ROWTYPE,
343 P_Line_Id IN igc_cc_acct_lines.cc_acct_line_id%type,
344 P_Calling_Mode IN VARCHAR2,
345 --P_Event_Class_Code IN VARCHAR2,
346 --P_Line_Number IN NUMBER DEFAULT NULL,
347 P_Error_Code OUT NOCOPY VARCHAR2,
348 P_Calling_Sequence IN VARCHAR2,
349 P_Amount IN NUMBER) RETURN VARCHAR2 IS
350
351
352 TYPE Trans_Lines_Tab_Type IS TABLE OF zx_transaction_lines_gt%ROWTYPE;
353 TYPE CC_Lines_Tab_Type IS TABLE OF igc_cc_acct_lines%ROWTYPE;
354 l_trans_lines Trans_Lines_Tab_Type := Trans_Lines_Tab_Type();
355 l_cc_line_list CC_Lines_Tab_Type := CC_Lines_Tab_Type();
356 l_return_status VARCHAR2(32) := FND_API.G_RET_STS_SUCCESS;
357 l_api_name VARCHAR2(30) := 'Populate_Lines_GT';
358 l_calling_sequence VARCHAR2(240) := P_Calling_Sequence;
359 l_debug_info VARCHAR2(240);
360
361 /* Bug 6719456 - changed cursor parameter and where clause from cc_header_id to P_Line_Id */
362
363 CURSOR CC_Acct_Lines (c_line_id NUMBER) IS
364 SELECT *
365 FROM igc_cc_acct_lines
366 WHERE cc_acct_line_id = c_line_id;
367
368 BEGIN
369 l_calling_sequence := 'IGC_ETAX_UTIL_PKG.Populate_Lines_GT';
370 IF (l_cc_line_list.COUNT <> 0) THEN
371 l_cc_line_list.DELETE;
372 ELSE
373 OPEN CC_Acct_Lines (P_Line_Id);
374 FETCH CC_Acct_Lines
375 BULK COLLECT INTO l_cc_line_list;
376 CLOSE CC_Acct_Lines;
377 END IF;
378
379 /* Bug 6719456 - Deleting all records instead of just passed line*/
380 DELETE FROM zx_transaction_lines_gt
381 WHERE application_id = IGC_ETAX_UTIL_PKG.IGC_APPLICATION_ID
382 AND entity_code = IGC_ETAX_UTIL_PKG.IGC_ENTITY_CODE
383 AND event_class_code = IGC_ETAX_UTIL_PKG.IGC_EVENT_CLASS_CODE
384 AND trx_id = P_CC_Header_Rec.cc_header_id
385 AND TRX_LEVEL_TYPE = IGC_ETAX_UTIL_PKG.IGC_TRX_LEVEL_TYPE ;
386
387 /* --*CC* Set l_debug variable across for debug information */
388 IF ( l_cc_line_list.COUNT > 0) THEN
389 l_trans_lines.EXTEND(l_cc_line_list.COUNT);
390 FOR i IN l_cc_line_list.FIRST .. l_cc_line_list.LAST LOOP
391 l_trans_lines(i).application_id := IGC_ETAX_UTIL_PKG.IGC_APPLICATION_ID;
392 l_trans_lines(i).entity_code := IGC_ETAX_UTIL_PKG.IGC_ENTITY_CODE;
393 l_trans_lines(i).event_class_code := IGC_ETAX_UTIL_PKG.IGC_EVENT_CLASS_CODE;
394 l_trans_lines(i).trx_id := P_CC_Header_Rec.cc_header_id;
395 l_trans_lines(i).trx_line_id := l_cc_line_list(i).cc_acct_line_id;
396 l_trans_lines(i).line_amt := NVL(P_Amount,0);
397 l_trans_lines(i).trx_level_type := IGC_ETAX_UTIL_PKG.IGC_TRX_LEVEL_TYPE;
398 l_trans_lines(i).line_level_action := IGC_ETAX_UTIL_PKG.IGC_LINE_LEVEL_ACTION;
399 l_trans_lines(i).line_class := IGC_ETAX_UTIL_PKG.IGC_LINE_CLASS;
400 l_trans_lines(i).line_amt_includes_tax_flag := 'S';
401 l_trans_lines(i).trx_line_date := P_CC_Header_Rec.cc_acct_date;
402 l_trans_lines(i).ship_from_location_id := P_CC_Header_Rec.location_id;
403 l_trans_lines(i).ship_to_location_id := P_CC_Header_Rec.location_id;
404 l_trans_lines(i).input_tax_classification_code := l_cc_line_list(i).tax_classif_code;
405 l_trans_lines(i).bill_to_location_id := g_org_loc_id; -- Bug#6647075
406 /* Will add based on requirement
407 trans_lines(i).trx_receipt_date := l_trx_receipt_date;
408 trans_lines(i).trx_line_type := l_inv_line_list(i).line_type_lookup_code;
409 trans_lines(i).trx_line_number := l_inv_line_list(i).line_number;
410 trans_lines(i).trx_line_description := l_inv_line_list(i).description;
411 trans_lines(i).trx_line_gl_date := l_inv_line_list(i).accounting_date;
412 trans_lines(i).account_ccid := l_inv_line_list(i).default_dist_ccid;
413
414 trans_lines(i).trx_line_quantity := nvl(l_inv_line_list(i).quantity_invoiced, 1);
415 trans_lines(i).unit_price := nvl(l_inv_line_list(i).unit_price, trans_lines(i).line_amt);
416 trans_lines(i).uom_code := l_uom_code;
417
418 trans_lines(i).trx_business_category := l_inv_line_list(i).trx_business_category;
419 trans_lines(i).line_intended_use := nvl(l_inv_line_list(i).primary_intended_use,l_intended_use);
420 trans_lines(i).user_defined_fisc_class := nvl(l_inv_line_list(i).user_defined_fisc_class,l_user_defined_fisc_class);
421 trans_lines(i).product_fisc_classification := nvl(l_inv_line_list(i).product_fisc_classification,l_product_fisc_class);
422 trans_lines(i).assessable_value := nvl(l_inv_line_list(i).assessable_value,l_assessable_value);
423 trans_lines(i).input_tax_classification_code := nvl(l_inv_line_list(i).tax_classification_code,l_dflt_tax_class_code);
424
425 trans_lines(i).product_id := l_inv_line_list(i).inventory_item_id;
426 trans_lines(i).product_org_id := l_product_org_id;
427 trans_lines(i).product_category := nvl(l_inv_line_list(i).product_category,l_product_category);
428 trans_lines(i).product_type := nvl(l_inv_line_list(i).product_type,l_product_type);
429 trans_lines(i).product_description := l_inv_line_list(i).item_description;
430 trans_lines(i).fob_point := l_fob_point;
431
432 trans_lines(i).ship_to_party_id := l_inv_line_list(i).org_id;
433 trans_lines(i).ship_from_party_id := P_Invoice_Header_Rec.party_id;
434
435 trans_lines(i).bill_to_party_id := l_inv_line_list(i).org_id;
436 trans_lines(i).bill_from_party_id := P_Invoice_Header_Rec.party_id;
437
438 trans_lines(i).ship_from_party_site_id := P_Invoice_Header_Rec.party_site_id;
439 trans_lines(i).bill_from_party_site_id := P_Invoice_Header_Rec.party_site_id;
440
441 trans_lines(i).ship_to_location_id := l_inv_line_list(i).ship_to_location_id;
442 trans_lines(i).ship_from_location_id := l_location_id;
443
444 trans_lines(i).bill_from_location_id := l_location_id;
445
446 trans_lines(i).ref_doc_application_id := l_ref_doc_application_id;
447 trans_lines(i).ref_doc_entity_code := l_ref_doc_entity_code;
448 trans_lines(i).ref_doc_event_class_code := l_ref_doc_event_class_code;
449 trans_lines(i).ref_doc_trx_id := l_ref_doc_trx_id;
450 trans_lines(i).ref_doc_trx_level_type := l_ref_doc_trx_level_type;
451 trans_lines(i).ref_doc_line_id := l_inv_line_list(i).po_line_location_id;
452 trans_lines(i).ref_doc_line_quantity := l_ref_doc_line_quantity;
453
454 trans_lines(i).applied_from_application_id := l_prepay_doc_application_id;
455 trans_lines(i).applied_from_entity_code := l_prepay_doc_entity_code;
456 trans_lines(i).applied_from_event_class_code := l_prepay_doc_event_class_code;
457 trans_lines(i).applied_from_trx_id := l_applied_from_trx_id;
458 trans_lines(i).applied_from_trx_level_type := l_applied_from_trx_level_type;
459 trans_lines(i).applied_from_line_id := l_applied_from_line_id;
460
461 trans_lines(i).adjusted_doc_application_id := l_adj_doc_application_id;
462 trans_lines(i).adjusted_doc_entity_code := l_adj_doc_entity_code;
463 trans_lines(i).adjusted_doc_event_class_code := l_adj_doc_event_class_code;
464 trans_lines(i).adjusted_doc_trx_id := l_inv_line_list(i).corrected_inv_id;
465 trans_lines(i).adjusted_doc_line_id := l_inv_line_list(i).corrected_line_number;
466 trans_lines(i).adjusted_doc_trx_level_type := l_adj_doc_trx_level_type;
467 trans_lines(i).adjusted_doc_number := l_adj_doc_number;
468 trans_lines(i).adjusted_doc_date := l_adj_doc_date;
469
470 trans_lines(i).applied_to_application_id := l_applied_to_application_id;
471 trans_lines(i).applied_to_entity_code := l_applied_to_entity_code;
472 trans_lines(i).applied_to_event_class_code := l_applied_to_event_class_code;
473 trans_lines(i).applied_to_trx_id := l_inv_line_list(i).rcv_transaction_id;
474 trans_lines(i).applied_to_trx_line_id :=NULL;
475 trans_lines(i).source_application_id := l_inv_line_list(i).source_application_id;
476 trans_lines(i).source_entity_code := l_inv_line_list(i).source_entity_code;
477 trans_lines(i).source_event_class_code := l_inv_line_list(i).source_event_class_code;
478 trans_lines(i).source_trx_id := l_inv_line_list(i).source_trx_id;
479 trans_lines(i).source_line_id := l_inv_line_list(i).source_line_id;
480 trans_lines(i).source_trx_level_type := l_inv_line_list(i).source_trx_level_type;
481 trans_lines(i).merchant_party_name := l_inv_line_list(i).merchant_name;
482 trans_lines(i).merchant_party_document_number := l_inv_line_list(i).merchant_document_number;
483 trans_lines(i).merchant_party_reference := l_inv_line_list(i).merchant_reference;
484 trans_lines(i).merchant_party_taxpayer_id := l_inv_line_list(i).merchant_taxpayer_id;
485 trans_lines(i).merchant_party_tax_reg_number := l_inv_line_list(i).merchant_tax_reg_number;
486 trans_lines(i).merchant_party_country := l_inv_line_list(i).country_of_supply;
487
488 trans_lines(i).line_amt_includes_tax_flag := l_line_amt_includes_tax_flag;
489 trans_lines(i).historical_flag := NVL(P_Invoice_Header_Rec.historical_flag, 'N');
490 trans_lines(i).ctrl_hdr_tx_appl_flag := l_ctrl_hdr_tx_appl_flag;
491 trans_lines(i).ctrl_total_line_tx_amt := l_inv_line_list(i).control_amount;
492
493 */
494 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
495 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'zx_transaction_lines_gt values ');
496 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'event_class_code: ' || l_trans_lines(i).event_class_code);
497 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'trx_id: ' || l_trans_lines(i).trx_id);
498 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'trx_line_id: ' || l_trans_lines(i).trx_line_id);
499 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'trx_level_type: ' || l_trans_lines(i).trx_level_type);
500 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'trx_line_type: ' || l_trans_lines(i).trx_line_type );
501 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'line_level_action: '|| l_trans_lines(i).line_level_action);
502 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'line_class: ' || l_trans_lines(i).line_class);
503 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'line_amt: ' || l_trans_lines(i).line_amt);
504 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'unit_price: ' || l_trans_lines(i).unit_price);
505 END IF;
506
507 END LOOP;
508 END IF;
509 -------------------------------------------------------------------
510 l_debug_info := 'Bulk Insert into global temp table';
511 -------------------------------------------------------------------
512 FORALL i IN l_trans_lines.FIRST .. l_trans_lines.LAST
513 INSERT INTO zx_transaction_lines_gt
514 VALUES l_trans_lines(i);
515 RETURN l_return_status;
516 EXCEPTION
517 WHEN OTHERS THEN
518 FND_MESSAGE.SET_NAME('IGC','IGC_DEBUG');
519 FND_MESSAGE.SET_TOKEN('ERROR',SQLERRM);
520 FND_MESSAGE.SET_TOKEN('CALLING_SEQUENCE',l_calling_sequence);
521 FND_MESSAGE.SET_TOKEN('PARAMETERS',
522 ' P_CC_Header_Rec = '||P_CC_Header_Rec.cc_header_id||
523 ' P_Calling_Mode ='||P_Calling_Mode||
524 ' P_Error_Code = '||P_Error_Code||
525 ' P_Amount = '||P_Amount||
526 ' P_Calling_Sequence = '||P_Calling_Sequence);
527 FND_MESSAGE.SET_TOKEN('DEBUG_INFO',l_debug_info);
528 l_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
529
530 APP_EXCEPTION.RAISE_EXCEPTION;
531
532 END Populate_Lines_GT;
533
534
535 /* New function created for Bug#6719456 */
536 FUNCTION Populate_Dist_GT(
537 P_CC_Header_Rec IN igc_cc_headers%ROWTYPE,
538 P_Line_Id IN igc_cc_acct_lines.cc_acct_line_id%type,
539 P_Calling_Mode IN VARCHAR2,
540 P_Error_Code OUT NOCOPY VARCHAR2,
541 P_Calling_Sequence IN VARCHAR2,
542 P_Amount IN NUMBER) RETURN VARCHAR2 IS
543
544 CURSOR c_Acct_Lines (p_acct_line_id IN NUMBER) IS
545 SELECT *
546 FROM igc_cc_acct_lines
547 WHERE cc_acct_line_id = p_acct_line_id;
548
549 l_api_name VARCHAR2(30) := 'Populate_dest_GT';
550 l_calling_sequence VARCHAR2(240) := P_Calling_Sequence;
551 l_full_path VARCHAR2(500) := G_MODULE_NAME||'Populate_Dist_GT';
552 l_return_status VARCHAR2(32) := FND_API.G_RET_STS_SUCCESS;
553 l_debug_info VARCHAR2(240);
554 BEGIN
555
556 /* First Delete from zx_itm_distributions_gt table */
557 l_calling_sequence := 'IGC_ETAX_UTIL_PKG.Populate_Dist_GT';
558 IF (g_debug_mode = 'Y') THEN
559 Put_Debug_Msg (l_full_path,p_debug_msg => 'Deleting records from zx_itm_distributions_gt table');
560 END IF;
561
562 DELETE FROM zx_itm_distributions_gt
563 WHERE application_id = IGC_ETAX_UTIL_PKG.IGC_APPLICATION_ID
564 AND entity_code = IGC_ETAX_UTIL_PKG.IGC_ENTITY_CODE
565 AND event_class_code = IGC_ETAX_UTIL_PKG.IGC_EVENT_CLASS_CODE
566 AND trx_id = P_CC_Header_Rec.cc_header_id
567 AND TRX_LEVEL_TYPE = IGC_ETAX_UTIL_PKG.IGC_TRX_LEVEL_TYPE ;
568
569 IF (g_debug_mode = 'Y') THEN
570 Put_Debug_Msg (l_full_path,p_debug_msg => 'Deletion from zx_itm_distributions_gt complete');
571 Put_Debug_Msg (l_full_path,p_debug_msg => 'Calling insert into zx_itm_distributions_gt');
572 END IF;
573
574 FOR l_cc_lines IN c_Acct_Lines (P_Line_Id)
575 LOOP
576 INSERT INTO zx_itm_distributions_gt(
577 application_id
578 ,entity_code
579 ,event_class_code
580 ,trx_id
581 ,trx_line_id
582 ,trx_level_type
583 ,trx_line_dist_id
584 ,dist_level_action
585 ,trx_line_dist_date
586 ,item_dist_number
587 ,task_id
588 ,award_id
589 ,project_id
590 ,expenditure_type
591 ,expenditure_organization_id
592 ,expenditure_item_date
593 ,trx_line_dist_amt
594 ,trx_line_dist_qty
595 ,trx_line_quantity
596 ,account_ccid
597 ,currency_exchange_rate
598 ,overriding_recovery_rate
599 )
600 Values
601 (
602 IGC_ETAX_UTIL_PKG.IGC_APPLICATION_ID --application_id
603 ,IGC_ETAX_UTIL_PKG.IGC_ENTITY_CODE --entity_code
604 ,IGC_ETAX_UTIL_PKG.IGC_EVENT_CLASS_CODE --event_class_code
605 ,P_CC_Header_Rec.cc_header_id --trx_id
606 ,l_cc_lines.cc_acct_line_id --trx_line_id
607 ,IGC_ETAX_UTIL_PKG.IGC_TRX_LEVEL_TYPE --trx_level_type
608 ,1 --trx_line_dist_id /* We cal always insert trx_line_dist_id as 1. Only one distribution is required for each call */
609 ,'CREATE' --dist_level_action
610 ,sysdate --trx_line_dist_date
611 ,l_cc_lines.cc_acct_line_num --item_dist_number
612 ,null --task_id
613 ,null --award_id
614 ,l_cc_lines.project_id
615 ,null --expenditure_type
616 ,null --expenditure_organization_id
617 ,null --expenditure_item_date
618 ,nvl(p_amount,0) --trx_line_dist_amt
619 ,1 --trx_line_dist_qty
620 ,1 --trx_line_quantity
621 ,l_cc_lines.cc_charge_code_combination_id --account_ccid
622 ,null --currency_exchange_rate
623 ,null --overriding_recovery_rate
624 );
625 END LOOP;
626
627 IF (g_debug_mode = 'Y') THEN
628 Put_Debug_Msg (l_full_path,p_debug_msg => 'Insert into zx_itm_distributions_gt complete');
629 END IF;
630 RETURN l_return_status;
631 EXCEPTION
632 WHEN OTHERS THEN
633 FND_MESSAGE.SET_NAME('IGC','IGC_DEBUG');
634 FND_MESSAGE.SET_TOKEN('ERROR',SQLERRM);
635 FND_MESSAGE.SET_TOKEN('CALLING_SEQUENCE',l_calling_sequence);
636 FND_MESSAGE.SET_TOKEN('PARAMETERS',
637 ' P_CC_Header_Rec = '||P_CC_Header_Rec.cc_header_id||
638 ' P_Calling_Mode ='||P_Calling_Mode||
639 ' P_Error_Code = '||P_Error_Code||
640 ' P_Amount = '||P_Amount||
641 ' P_Calling_Sequence = '||P_Calling_Sequence);
642 FND_MESSAGE.SET_TOKEN('DEBUG_INFO',l_debug_info);
643 l_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
644
645 APP_EXCEPTION.RAISE_EXCEPTION;
646
647 END Populate_Dist_GT;
648
649 Procedure Calculate_Tax(
650 P_CC_Header_Rec IN igc_cc_headers%ROWTYPE,
651 P_Calling_Mode IN VARCHAR2,
652 P_Error_Code OUT NOCOPY VARCHAR2,
653 P_Amount IN NUMBER,
654 P_Tax_Amount OUT NOCOPY NUMBER,
655 P_Line_Id IN igc_cc_acct_lines.cc_acct_line_id%type,
656 P_Return_Status OUT NOCOPY VARCHAR2) IS
657
658
659 l_debug_info VARCHAR2(240);
660 l_calling_sequence VARCHAR2(240);
661 l_msg_count NUMBER;
662 l_msg_data VARCHAR2(10);
663 --l_tax_amount ZX_REC_NREC_DIST_GT.rec_nrec_tax_amt%type;
664 l_tax_amount ZX_DETAIL_TAX_LINES_GT.tax_amt%type;
665 l_taxable_amount ZX_DETAIL_TAX_LINES_GT.taxable_amt%type;
666 l_amount_includes_tax_flag ZX_DETAIL_TAX_LINES_GT.tax_amt_included_flag%type;
667 l_tax_value NUMBER := 0;
668 l_return_status VARCHAR2(32):=FND_API.G_RET_STS_SUCCESS;
669 l_effective_date date;
670 l_legal_entity_id varchar2(32);
671 l_full_path VARCHAR2(500) := G_MODULE_NAME||'Calculate_Tax';
672
673 CURSOR get_legal_entity(p_org_id P_CC_Header_Rec.org_id%type)
674 is
675 select hrop.default_legal_context_id from
676 hr_operating_units hrop
677 where hrop.organization_id=p_org_id;
678
679 BEGIN
680
681 l_calling_sequence := 'IGC.IGC_ETAX_UTIL_PKG.Calculate_Tax';
682
683 --fetch legal entity
684 l_debug_info := 'Fetching legal entity';
685 open get_legal_entity(P_CC_Header_Rec.ORG_ID);
686 fetch get_legal_entity into l_legal_entity_id;
687 close get_legal_entity;
688
689 if l_legal_entity_id is null then
690 l_debug_info := 'Legal entity is null';
691 p_tax_amount := 0;
692 P_Return_Status:=FND_API.G_RET_STS_SUCCESS;
693 Return;
694 /* Modified for Bug 6609963, legal entity is mandatory to calculate tax, setting the tax amt to zero if legal entity data is not found,
695 so that the funds checking completes successfully. Thus maintaining the 11i functionality */
696 end if;
697
698 --set security context
699 l_debug_info := 'Calling set_tax_security_context';
700 set_tax_security_context
701 (p_org_id =>P_CC_Header_Rec.org_id,
702 P_Legal_Entity_Id =>l_legal_entity_id,
703 p_transaction_date =>P_CC_Header_Rec.cc_acct_date,
704 p_related_doc_date =>NULL,
705 p_adjusted_doc_date =>NULL,
706 p_effective_date =>l_effective_date,
707 p_return_status =>l_return_status,
708 p_msg_count =>l_msg_count,
709 p_msg_data =>l_msg_data);
710
711 IF ( l_return_status <> FND_API.G_RET_STS_SUCCESS ) THEN
712 P_Return_Status:=FND_API.G_RET_STS_UNEXP_ERROR;
713 return;
714 end if;
715 -- Set G_ORG_LOC_ID if vendor, vendor_site and location is null
716 IF P_CC_Header_Rec.vendor_id IS NULL AND P_CC_Header_Rec.vendor_site_id IS NULL
717 AND P_CC_Header_Rec.location_id IS NULL THEN
718 BEGIN
719 SELECT location_id
720 INTO G_ORG_LOC_ID
721 FROM HR_ALL_ORGANIZATION_UNITS
722 WHERE organization_id = p_cc_header_rec.org_id;
723 EXCEPTION
724 WHEN NO_DATA_FOUND THEN
725 NULL;
726 END;
727
728 END IF;
729
730 -- Populate GT Headers
731 l_debug_info := 'Calling Populate_Headers_GT API';
732 l_return_status := Populate_Headers_GT
733 (P_CC_Header_Rec=>P_CC_Header_Rec,
734 P_Calling_Mode=>null,
735 P_Legal_Entity_Id=>l_legal_entity_id,
736 P_Error_Code=>P_Error_Code);
737
738 IF ( l_return_status <> FND_API.G_RET_STS_SUCCESS ) THEN
739 P_Return_Status :=FND_API.G_RET_STS_UNEXP_ERROR;
740 RETURN;
741 END IF;
742
743 -- Populate GT Lines
744 l_debug_info := 'Calling Populate_lines_GT API';
745 l_return_status := Populate_Lines_GT
746 (P_CC_Header_Rec=>P_CC_Header_Rec,
747 P_Line_Id => P_Line_Id,
748 P_Calling_Mode=>null,
749 P_Amount=>P_Amount,
750 P_Error_Code=>P_Error_Code,
751 P_Calling_Sequence=>l_calling_sequence);
752 IF ( l_return_status <> FND_API.G_RET_STS_SUCCESS ) THEN
753 P_Return_Status :=FND_API.G_RET_STS_UNEXP_ERROR;
754 RETURN;
755 END IF;
756
757 -- Calling ZX Calculate Tax API
758 l_debug_info := 'Calling ZX Calculate Tax API';
759
760 ZX_API_PUB.calculate_tax(
761 p_api_version => 1.0,
762 p_init_msg_list => FND_API.G_FALSE,
763 p_commit => FND_API.G_FALSE,
764 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
765 x_return_status => l_return_status,
766 x_msg_count => l_msg_count,
767 x_msg_data => l_msg_data);
768
769 IF ( l_return_status <> FND_API.G_RET_STS_SUCCESS ) THEN
770 P_Return_Status :=FND_API.G_RET_STS_UNEXP_ERROR;
771 Return;
772 end if;
773
774 /* Bug#6719456 start */
775
776 /* Update zx_trx_headers_gt to set event code to "DISTRIBUTED" */
777 UPDATE zx_trx_headers_gt
778 set event_type_code = 'DISTRIBUTED'
779 WHERE application_id = IGC_ETAX_UTIL_PKG.IGC_APPLICATION_ID
780 AND entity_code = IGC_ETAX_UTIL_PKG.IGC_ENTITY_CODE
781 AND event_class_code = IGC_ETAX_UTIL_PKG.IGC_EVENT_CLASS_CODE
782 AND trx_id = P_CC_Header_Rec.cc_header_id;
783
784 l_debug_info := 'Populate Distribution table Tax API';
785 l_return_status := Populate_dist_GT
786 (P_CC_Header_Rec=>P_CC_Header_Rec,
787 P_Line_Id => P_Line_Id,
788 P_Calling_Mode=>null,
789 P_Amount=>P_Amount,
790 P_Error_Code=>P_Error_Code,
791 P_Calling_Sequence=>l_calling_sequence);
792
793 IF ( l_return_status <> FND_API.G_RET_STS_SUCCESS ) THEN
794 P_Return_Status :=FND_API.G_RET_STS_UNEXP_ERROR;
795 Return;
796 end if;
797
798
799 l_debug_info := 'Calling ZX determine_recovery API';
800
801 ZX_API_PUB.determine_recovery(
802 p_api_version => 1.0,
803 p_init_msg_list => FND_API.G_TRUE,
804 p_commit => FND_API.G_FALSE,
805 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
806 x_return_status => l_return_status,
807 x_msg_count => l_msg_count,
808 x_msg_data => l_msg_data
809 );
810
811 IF (g_debug_mode = 'Y') THEN
812 Put_Debug_Msg (l_full_path,p_debug_msg => 'After running : determine_recovery : status : '||l_return_status);
813 Put_Debug_Msg (l_full_path,p_debug_msg => 'After running : determine_recovery'||l_msg_data);
814 END IF;
815
816 --fetch tax detail from zx table
817 l_debug_info := 'Fetching data from ZX table';
818
819 l_tax_amount := 0;
820
821 /*
822 FOR l_zx_rec_nrec_dist_gt in C_ZX_REC_NREC_DIST_GT(P_CC_Header_Rec.cc_header_id, P_Line_Id)
823 LOOP
824 IF (g_debug_mode = 'Y') THEN
825 Put_Debug_Msg (l_full_path,p_debug_msg => 'Value of C_ZX_REC_NREC_DIST_GT.recoverable_flag : '||l_zx_rec_nrec_dist_gt.recoverable_flag);
826 Put_Debug_Msg (l_full_path,p_debug_msg => 'Value of C_ZX_REC_NREC_DIST_GT.rec_nrec_tax_amt : '||l_zx_rec_nrec_dist_gt.rec_nrec_tax_amt);
827 Put_Debug_Msg (l_full_path,p_debug_msg => 'Value of C_ZX_REC_NREC_DIST_GT.REC_NREC_RATE : '||l_zx_rec_nrec_dist_gt.REC_NREC_RATE);
828 Put_Debug_Msg (l_full_path,p_debug_msg => 'Value of C_ZX_REC_NREC_DIST_GT.TAX_ID :'||l_zx_rec_nrec_dist_gt.TAX_ID);
829 Put_Debug_Msg (l_full_path,p_debug_msg => 'Value of C_ZX_REC_NREC_DIST_GT.TRX_CURRENCY_CODE : '||l_zx_rec_nrec_dist_gt.TRX_CURRENCY_CODE);
830 Put_Debug_Msg (l_full_path,p_debug_msg => 'Value of C_ZX_REC_NREC_DIST_GT.TAX_CURRENCY_CODE : '||l_zx_rec_nrec_dist_gt.TAX_CURRENCY_CODE);
831 Put_Debug_Msg (l_full_path,p_debug_msg => 'Value of C_ZX_REC_NREC_DIST_GT.TAX_CURRENCY_CONVERSION_RATE : '||l_zx_rec_nrec_dist_gt.TAX_CURRENCY_CONVERSION_RATE );
832 END IF;
833 END LOOP;
834 */
835 SELECT nvl(SUM(rec_nrec_tax_amt),0)
836 INTO l_tax_amount
837 FROM ZX_REC_NREC_DIST_GT
838 WHERE application_id = IGC_ETAX_UTIL_PKG.IGC_APPLICATION_ID --'8407'
839 AND entity_code =IGC_ETAX_UTIL_PKG.IGC_ENTITY_CODE --'IGC_CC_HEADERS'
840 AND event_class_code =IGC_ETAX_UTIL_PKG.IGC_EVENT_CLASS_CODE --'PURCHASE_TRANSACTION_TAX_QUOTE'
841 AND trx_id = P_CC_Header_Rec.cc_header_id
842 AND trx_line_id = p_line_id
843 AND trx_level_type = IGC_ETAX_UTIL_PKG.IGC_TRX_LEVEL_TYPE --'LINE'
844 AND recoverable_flag = 'N';
845
846 IF (g_debug_mode = 'Y') THEN
847 Put_Debug_Msg (l_full_path,p_debug_msg => 'Calculated Tax amount : '||l_tax_amount);
848 END IF;
849 p_tax_amount := l_tax_amount;
850 P_Return_Status:=FND_API.G_RET_STS_SUCCESS;
851
852 /* Bug#6719456 End */
853
854 EXCEPTION
855 WHEN OTHERS THEN
856 --IF (SQLCODE <> -20001) THEN
857 FND_MESSAGE.SET_NAME('IGC','IGC_DEBUG');
858 FND_MESSAGE.SET_TOKEN('ERROR',SQLERRM);
859 FND_MESSAGE.SET_TOKEN('CALLING_SEQUENCE',l_calling_sequence);
860 FND_MESSAGE.SET_TOKEN('PARAMETERS',
861 ' P_CC_Header_Rec = '||P_CC_Header_Rec.cc_header_id||
862 ' P_Calling_Mode ='||P_Calling_Mode||
863 ' P_Amount ='||P_Amount||
864 ' P_Line_Id ='||P_Line_Id);
865 FND_MESSAGE.SET_TOKEN('DEBUG_INFO',l_debug_info);
866 --END IF;
867 P_Error_Code := SQLERRM;
868 P_Return_Status :=FND_API.G_RET_STS_UNEXP_ERROR;
869 APP_EXCEPTION.RAISE_EXCEPTION;
870
871 END Calculate_Tax;
872
873 PROCEDURE get_cc_def_tax_classification(
874 p_cc_header_id IN zx_lines_det_factors.ref_doc_trx_id%TYPE,
875 p_cc_line_id IN zx_lines_det_factors.ref_doc_line_id%TYPE,
876 p_cc_trx_level_type IN zx_lines_det_factors.ref_doc_trx_level_type%TYPE,
877 p_vendor_id IN po_vendors.vendor_id%TYPE,
878 p_vendor_site_id IN po_vendor_sites.vendor_site_id%TYPE,
879 p_code_combination_id IN gl_code_combinations.code_combination_id%TYPE,
880 p_concatenated_segments IN varchar2,
881 p_templ_tax_classification_cd IN varchar2,
882 p_tax_classification_code IN OUT NOCOPY varchar2,
883 p_allow_tax_code_override_flag OUT NOCOPY zx_acct_tx_cls_defs.allow_tax_code_override_flag%TYPE,
884 p_tax_user_override_flag IN VARCHAR2,
885 p_user_tax_name IN VARCHAR2,
886 p_legal_entity_id IN zx_lines.legal_entity_id%TYPE,
887 p_calling_sequence IN VARCHAR2,
888 p_internal_organization_id IN NUMBER) IS
889
890
891 l_api_name VARCHAR2(64) := 'get_cc_default_tax_classification';
892 l_calling_sequence VARCHAR2(240) := P_Calling_Sequence;
893 l_debug_info VARCHAR2(240);
894
895 BEGIN
896
897 ZX_AP_TAX_CLASSIFICATN_DEF_PKG.get_default_tax_classification(
898 p_ref_doc_application_id => IGC_ETAX_UTIL_PKG.IGC_APPLICATION_ID,
899 p_ref_doc_entity_code => IGC_ETAX_UTIL_PKG.IGC_ENTITY_CODE,
900 p_ref_doc_event_class_code => IGC_ETAX_UTIL_PKG.IGC_EVENT_CLASS_CODE,
901 p_ref_doc_trx_id => p_cc_header_id,
902 p_ref_doc_line_id => p_cc_line_id,
903 p_ref_doc_trx_level_type => IGC_ETAX_UTIL_PKG.IGC_TRX_LEVEL_TYPE,
904 p_vendor_id => p_vendor_id,
905 p_vendor_site_id => p_vendor_site_id,
906 p_code_combination_id => p_code_combination_id,
907 p_concatenated_segments => p_concatenated_segments,
908 p_templ_tax_classification_cd => p_templ_tax_classification_cd,
909 p_ship_to_location_id => NULL,
910 p_ship_to_loc_org_id => NULL,
911 p_inventory_item_id => NULL,
912 p_item_org_id => NULL,
913 p_tax_classification_code => p_tax_classification_code,
914 p_allow_tax_code_override_flag => p_allow_tax_code_override_flag,
915 p_tax_user_override_flag => p_tax_user_override_flag,
916 p_user_tax_name => p_user_tax_name,
917 p_legal_entity_id => p_legal_entity_id,
918 APPL_SHORT_NAME => 'IGC',
919 FUNC_SHORT_NAME => 'NONE',
920 p_calling_sequence => p_calling_sequence,
921 p_event_class_code => IGC_ETAX_UTIL_PKG.IGC_EVENT_CLASS_CODE,
922 p_entity_code => IGC_ETAX_UTIL_PKG.IGC_ENTITY_CODE,
923 p_application_id => IGC_ETAX_UTIL_PKG.IGC_APPLICATION_ID,
924 p_internal_organization_id => p_internal_organization_id);
925
926
927 EXCEPTION
928 WHEN OTHERS THEN
929 FND_MESSAGE.SET_NAME('IGC','IGC_DEBUG');
930 FND_MESSAGE.SET_TOKEN('ERROR',SQLERRM);
931 FND_MESSAGE.SET_TOKEN('CALLING_SEQUENCE',l_calling_sequence);
932 FND_MESSAGE.SET_TOKEN('PARAMETERS',
933 ' P_CC_Header_Id = '||p_cc_header_id||
934 ' P_Calling_Sequence = '||P_Calling_Sequence);
935 FND_MESSAGE.SET_TOKEN('DEBUG_INFO',l_debug_info);
936
937 APP_EXCEPTION.RAISE_EXCEPTION;
938
939 END get_cc_def_tax_classification;
940
941 PROCEDURE Put_Debug_Msg (
942 p_path IN VARCHAR2,
943 p_debug_msg IN VARCHAR2,
944 p_sev_level IN VARCHAR2 := G_LEVEL_STATEMENT
945 ) IS
946 BEGIN
947
948 IF p_sev_level >= G_CURRENT_RUNTIME_LEVEL THEN
949 fnd_log.string(p_sev_level, p_path, p_debug_msg);
950 END IF;
951 END Put_Debug_Msg;
952
953
954 END IGC_ETAX_UTIL_PKG;