DBA Data[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;