[Home] [Help]
PACKAGE BODY: APPS.ZX_TAX_DEFAULT_PKG
Source
1 package body ZX_TAX_DEFAULT_PKG as
2 /* $Header: zxdidefhierpvtb.pls 120.14.12010000.1 2008/07/28 13:30:31 appldev ship $ */
3
4 g_current_runtime_level NUMBER;
5 g_level_procedure CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
6 g_level_statement CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
7 g_level_unexpected CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
8
9 ---------------------------------------------------------------------------
10 -- PUBLIC PROCEDURE
11 -- get_default_tax_classification
12 --
13 -- DESCRIPTION
14 -- This procedure is the wrapper to call the defaulting tax classification
15 -- code API in AR, AP or PA depending on the application id
16 -- passed in
17 --
18
19 PROCEDURE get_default_tax_classification (
20 p_definfo IN OUT NOCOPY ZX_API_PUB.def_tax_cls_code_info_rec_type,
21 p_return_status OUT NOCOPY VARCHAR2,
22 p_error_buffer OUT NOCOPY VARCHAR2) IS
23
24 l_appl_short_name VARCHAR2(10);
25 l_memo_line_id NUMBER;
26 l_customer_id NUMBER;
27 l_tax_calculation_flag VARCHAR(1);
28
29 CURSOR get_tax_calc_flag IS
30 SELECT tax_calculation_flag
31 FROM RA_CUST_TRX_TYPES_ALL
32 WHERE org_id = p_definfo.internal_organization_id
33 AND cust_trx_type_id = p_definfo.receivables_trx_type_id;
34
35 BEGIN
36
37 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
38
39 IF (g_level_procedure >= g_current_runtime_level ) THEN
40 FND_LOG.STRING(g_level_procedure,
41 'ZX.PLSQL.ZX_TAX_DEFAULT_PKG.get_default_tax_classification.BEGIN',
42 'ZX_TAX_DEFAULT_PKG: get_default_tax_classification(+)');
43 END IF;
44
45 -- init error buffer and return status
46 --
47 p_return_status := FND_API.G_RET_STS_SUCCESS;
48 p_error_buffer := NULL;
49
50 -- bug 4395918 : Add conditions for 'PURCHASE_TRANSACTION_TAX_QUOTE' and
51 -- 'SALES_TRANSACTION_TAX_QUOTE'
52 --
53 IF p_definfo.event_class_code = 'PURCHASE_TRANSACTION_TAX_QUOTE' OR
54 (p_definfo.application_id IN (200, 201, 230, 401) AND
55 p_definfo.event_class_code <> 'SALES_TRANSACTION_TAX_QUOTE')
56 THEN
57 --
58 -- determine application short name for P2P products
59 --
60 IF p_definfo.application_id = 200 THEN
61 l_appl_short_name := 'SQLAP';
62 ELSE
63 l_appl_short_name := 'PO';
64 END IF;
65
66 ZX_AP_TAX_CLASSIFICATN_DEF_PKG.get_default_tax_classification (
67 p_ref_doc_application_id => p_definfo.ref_doc_application_id,
68 p_ref_doc_entity_code => p_definfo.ref_doc_entity_code,
69 p_ref_doc_event_class_code => p_definfo.ref_doc_event_class_code,
70 p_ref_doc_trx_id => p_definfo.ref_doc_trx_id,
71 p_ref_doc_line_id => p_definfo.ref_doc_line_id,
72 p_ref_doc_trx_level_type => p_definfo.ref_doc_trx_level_type,
73 p_vendor_id => p_definfo.ship_third_pty_acct_id,
74 p_vendor_site_id => p_definfo.ship_third_pty_acct_site_id,
75 p_code_combination_id => p_definfo.account_ccid,
76 p_concatenated_segments => p_definfo.account_string,
77 p_templ_tax_classification_cd => p_definfo.defaulting_attribute3,
78 p_ship_to_location_id => p_definfo.ship_to_location_id,
79 p_ship_to_loc_org_id => p_definfo.defaulting_attribute1,
80 p_inventory_item_id => p_definfo.product_id,
81 p_item_org_id => p_definfo.product_org_id,
82 p_tax_classification_code => p_definfo.input_tax_classification_code,
83 p_allow_tax_code_override_flag => p_definfo.x_allow_tax_code_override_flag,
84 p_tax_user_override_flag => p_definfo.tax_user_override_flag,
85 p_user_tax_name => p_definfo.overridden_tax_cls_code,
86 p_legal_entity_id => p_definfo.legal_entity_id,
87 APPL_SHORT_NAME => l_appl_short_name,
88 FUNC_SHORT_NAME => p_definfo.defaulting_attribute2,
89 p_calling_sequence => 'ZX_TAX_DEFAULT_PKG.GET_DEFAULT_TAX_CLASSIFICATION',
90 p_event_class_code => p_definfo.event_class_code,
91 p_entity_code => p_definfo.entity_code,
92 p_application_id => p_definfo.application_id,
93 p_internal_organization_id => p_definfo.internal_organization_id);
94
95 p_definfo.x_tax_classification_code := p_definfo.input_tax_classification_code;
96
97
98 ELSIF p_definfo.event_class_code = 'SALES_TRANSACTION_TAX_QUOTE' OR
99 p_definfo.application_id IN (222, 300, 660, 697)
100 THEN
101 -- determine application short name for O2C products
102 --
103 IF p_definfo.application_id = 222 THEN
104 -- detrmining the tax calculation flag value for calling defaulting
105 OPEN get_tax_calc_flag;
106 FETCH get_tax_calc_flag INTO l_tax_calculation_flag;
107 CLOSE get_tax_calc_flag;
108 l_appl_short_name := 'AR';
109 ELSE
110 l_appl_short_name := NULL;
111 END IF;
112
113 -- bug 4382316
114 IF (p_definfo.product_id IS NOT NULL AND
115 p_definfo.product_org_id IS NULL) THEN
116 l_memo_line_id := p_definfo.product_id;
117 END IF;
118
119 l_customer_id :=
120 NVL(p_definfo.ship_third_pty_acct_id, p_definfo.bill_third_pty_acct_id);
121
122 IF p_definfo.application_id <> 222 OR (p_definfo.application_id = 222 AND
123 l_tax_calculation_flag = 'Y') THEN
124 ZX_AR_TAX_CLASSIFICATN_DEF_PKG.get_default_tax_classification (
125 p_ship_to_site_use_id => p_definfo.ship_to_cust_acct_site_use_id,
126 p_bill_to_site_use_id => p_definfo.bill_to_cust_acct_site_use_id,
127 p_inventory_item_id => p_definfo.product_id,
128 p_organization_id => p_definfo.product_org_id,
129 p_set_of_books_id => p_definfo.ledger_id,
130 p_trx_date => p_definfo.trx_date,
131 p_trx_type_id => p_definfo.receivables_trx_type_id,
132 p_tax_classification_code => p_definfo.output_tax_classification_code,
133 p_cust_trx_id => p_definfo.trx_id,
134 p_cust_trx_line_id => p_definfo.trx_line_id,
135 p_customer_id => l_customer_id,
136 p_memo_line_id => l_memo_line_id,
137 APPL_SHORT_NAME => l_appl_short_name ,
138 FUNC_SHORT_NAME => p_definfo.defaulting_attribute3,
139 p_party_flag => p_definfo.defaulting_attribute1,
140 p_party_location_id => p_definfo.defaulting_attribute2,
141 p_entity_code => p_definfo.entity_code,
142 p_event_class_code => p_definfo.event_class_code,
143 p_application_id => p_definfo.application_id,
144 p_internal_organization_id => p_definfo.internal_organization_id,
145 p_ccid => p_definfo.account_ccid);
146 END IF;
147
148 p_definfo.x_tax_classification_code := p_definfo.output_tax_classification_code;
149
150
151 ELSIF p_definfo.application_id = 275 THEN
152
153 l_appl_short_name := 'PA';
154 --
155 -- PA product
156 --
157
158 ZX_AR_TAX_CLASSIFICATN_DEF_PKG.get_pa_default_classification (
159 p_project_id => p_definfo.defaulting_attribute1,
160 p_project_customer_id => p_definfo.defaulting_attribute2,
161 p_ship_to_site_use_id => p_definfo.ship_to_cust_acct_site_use_id,
162 p_bill_to_site_use_id => p_definfo.bill_to_cust_acct_site_use_id,
163 p_set_of_books_id => p_definfo.ledger_id,
164 p_event_id => p_definfo.defaulting_attribute3,
165 p_expenditure_item_id => p_definfo.defaulting_attribute4,
166 p_line_type => p_definfo.defaulting_attribute5,
167 p_request_id => p_definfo.defaulting_attribute6,
168 p_user_id => p_definfo.defaulting_attribute7,
169 p_trx_date => p_definfo.trx_date,
170 p_tax_classification_code => p_definfo.output_tax_classification_code,
171 p_ship_to_customer_id => p_definfo.ship_third_pty_acct_id,
172 p_bill_to_customer_id => p_definfo.bill_third_pty_acct_id,
173 p_application_id => p_definfo.application_id,
174 p_internal_organization_id => p_definfo.internal_organization_id);
175
176 p_definfo.x_tax_classification_code := p_definfo.output_tax_classification_code;
177
178 ELSE
179 --
180 -- unknown application id
181 --
182 IF (g_level_statement >= g_current_runtime_level ) THEN
183 FND_LOG.STRING(g_level_statement,
184 'ZX.PLSQL.ZX_TAX_DEFAULT_PKG.get_default_tax_classification',
185 'Invalid application_id to fetch default Tax Classification Code : '
186 || TO_CHAR(p_definfo.application_id));
187 END IF;
188
189 END IF;
190
191 IF (g_level_procedure >= g_current_runtime_level ) THEN
192 FND_LOG.STRING(g_level_procedure,
193 'ZX.PLSQL.ZX_TAX_DEFAULT_PKG.get_default_tax_classification.END',
194 'ZX_TAX_DEFAULT_PKG: get_default_tax_classification(-)'||
195 ' tax class code: '||p_definfo.x_tax_classification_code);
196 END IF;
197
198 EXCEPTION
199 WHEN OTHERS THEN
200 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
201 p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
202
203 FND_MESSAGE.SET_NAME('ZX','ZX_UNEXPECTED_ERROR');
204 FND_MSG_PUB.Add;
205
206 IF (g_level_unexpected >= g_current_runtime_level ) THEN
207 FND_LOG.STRING(g_level_unexpected,
208 'ZX.PLSQL.ZX_TAX_DEFAULT_PKG.get_default_tax_classification',
209 p_error_buffer);
210 END IF;
211
212 END get_default_tax_classification;
213
214 ---------------------------------------------------------------------------
215 -- PUBLIC PROCEDURE
216 -- map_parm_for_def_tax_classif
217 --
218 -- DESCRIPTION
219 -- This procedure maps products specific parameters to the columns
220 -- defined in default tax classification info record
221
222 -- Bug#4868489- This procedure is no longer used but keep
223 -- it here just for the mapping reference
224 --
225 --PROCEDURE map_parm_for_def_tax_classif(
226 -- p_definfo IN OUT NOCOPY DEFINFO%TYPE,
227 -- p_defaulting_attribute1 IN VARCHAR2,
228 -- p_defaulting_attribute2 IN VARCHAR2,
229 -- p_defaulting_attribute3 IN VARCHAR2,
230 -- p_defaulting_attribute4 IN VARCHAR2,
231 -- p_defaulting_attribute5 IN VARCHAR2,
232 -- p_defaulting_attribute6 IN VARCHAR2,
233 -- p_defaulting_attribute7 IN VARCHAR2,
234 -- p_defaulting_attribute8 IN VARCHAR2,
235 -- p_defaulting_attribute9 IN VARCHAR2,
236 -- p_defaulting_attribute10 IN VARCHAR2,
237 -- p_return_status OUT NOCOPY VARCHAR2,
238 -- p_error_buffer OUT NOCOPY VARCHAR2)
239 --IS
240 --BEGIN
241 --
242 -- g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
243 --
244 -- IF (g_level_statement >= g_current_runtime_level ) THEN
245 -- FND_LOG.STRING(g_level_statement,
246 -- 'ZX.PLSQL.ZX_TAX_DEFAULT_PKG.map_parm_for_def_tax_classif.BEGIN',
247 -- 'ZX_TAX_DEFAULT_PKG: map_parm_for_def_tax_classif(+)');
248 -- END IF;
249 --
250 -- --
251 -- -- init error buffer and return status
252 -- --
253 -- p_return_status := FND_API.G_RET_STS_SUCCESS;
254 -- p_error_buffer := NULL;
255 --
256 -- --
257 -- -- map parameters for each product
258 -- --
259 -- IF p_definfo.application_id IN (200, 201, 230, 401) THEN
260 -- --
261 -- -- P2P
262 -- --
263 -- p_definfo.ship_to_loc_org_id := p_defaulting_attribute1;
264 -- p_definfo.func_short_name := p_defaulting_attribute2;
265 -- p_definfo.templ_tax_classification_code := p_defaulting_attribute3;
266 --
267 -- ELSIF p_definfo.application_id IN (222, 300, 660, 697) THEN
268 -- --
269 -- -- O2C
270 -- --
271 -- p_definfo.party_flag := p_defaulting_attribute1;
272 -- p_definfo.party_location_id := p_defaulting_attribute2;
273 -- p_definfo.func_short_name := p_defaulting_attribute3;
274 --
275 -- ELSIF p_definfo.application_id = 275 THEN
276 -- --
277 -- -- PA
278 -- --
279 -- p_definfo.project_id := p_defaulting_attribute1;
280 -- p_definfo.project_customer_id := p_defaulting_attribute2;
281 -- p_definfo.event_id := p_defaulting_attribute3;
282 -- p_definfo.expenditure_item_id := p_defaulting_attribute4;
283 -- p_definfo.line_type := p_defaulting_attribute5;
284 -- p_definfo.request_id := p_defaulting_attribute6;
285 -- p_definfo.user_id := p_defaulting_attribute7;
286 -- END IF;
287 --
288 -- IF (g_level_statement >= g_current_runtime_level ) THEN
289 -- FND_LOG.STRING(g_level_statement,
290 -- 'ZX.PLSQL.ZX_TAX_DEFAULT_PKG.map_parm_for_def_tax_classif.END',
291 -- 'ZX_TAX_DEFAULT_PKG: map_parm_for_def_tax_classif(-)');
292 -- END IF;
293 --
294 -- EXCEPTION
295 -- WHEN OTHERS THEN
296 -- p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
297 -- p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
298 --
299 -- FND_MESSAGE.SET_NAME('ZX','ZX_UNEXPECTED_ERROR');
300 -- FND_MSG_PUB.Add;
301 --
302 -- IF (g_level_unexpected >= g_current_runtime_level ) THEN
303 -- FND_LOG.STRING(g_level_unexpected,
304 -- 'ZX.PLSQL.ZX_TAX_DEFAULT_PKG.map_parm_for_def_tax_classif',
305 -- p_error_buffer);
306 -- END IF;
307 --END map_parm_for_def_tax_classif;
308
309 END ZX_TAX_DEFAULT_PKG;