[Home] [Help]
PACKAGE BODY: APPS.ZX_DEFAULT_AUTOMATION_PKG
Source
1 PACKAGE BODY ZX_DEFAULT_AUTOMATION_PKG AS
2 /* $Header: zxdidefautopvtb.pls 120.31.12010000.3 2008/12/08 11:31:27 ssohal ship $ */
3
4 /* Declare constants */
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'ZX_DEFAULT_AUTOMATION_PKG';
7 G_MODULE_NAME CONSTANT VARCHAR2(30) := 'ZX.PLSQL.ZX_DFLT_AUTO_PKG.';
8 G_MSG_UERROR CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR;
9 G_MSG_ERROR CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_ERROR;
10 G_MSG_SUCCESS CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_SUCCESS;
11
12 G_MSG_HIGH CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH;
13 G_MSG_MEDIUM CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM;
14 G_MSG_LOW CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW;
15
16
17 l_error_buffer VARCHAR2(240);
18
19 g_current_runtime_level NUMBER;
20 g_level_statement CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
21 g_level_procedure CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
22 g_level_event CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
23 g_level_unexpected CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
24 g_level_error CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
25
26 TYPE DET_TAX_ATTR_REC IS RECORD
27 (DEFAULT_TAXATION_COUNTRY zx_lines_det_factors.DEFAULT_TAXATION_COUNTRY%type,
28 DOCUMENT_SUB_TYPE zx_lines_det_factors.DOCUMENT_SUB_TYPE%type,
29 TRX_BUSINESS_CATEGORY zx_lines_det_factors.TRX_BUSINESS_CATEGORY%type,
30 LINE_INTENDED_USE zx_lines_det_factors.LINE_INTENDED_USE%type,
31 PRODUCT_FISC_CLASSIFICATION zx_lines_det_factors.PRODUCT_FISC_CLASSIFICATION%type,
32 PRODUCT_CATEGORY zx_lines_det_factors.PRODUCT_CATEGORY%type,
33 PRODUCT_TYPE zx_lines_det_factors.PRODUCT_TYPE%type,
34 USER_DEFINED_FISC_CLASS zx_lines_det_factors.USER_DEFINED_FISC_CLASS%type,
35 ASSESSABLE_VALUE zx_lines_det_factors.ASSESSABLE_VALUE%type,
36 USER_OVERRIDE_TAX_FLAG zx_lines_det_factors.USER_UPD_DET_FACTORS_FLAG%type);
37
38 TYPE DET_TAX_ATTR_TBL IS TABLE OF DET_TAX_ATTR_REC INDEX BY VARCHAR2(150);
39 l_det_tax_attr_tbl DET_TAX_ATTR_TBL;
40
41 PROCEDURE DEFAULT_FROM_SOURCE_DOC
42 (
43 p_trx_line_index IN BINARY_INTEGER,
44 x_return_status OUT NOCOPY VARCHAR2 )
45 IS
46
47 l_source_line_key VARCHAR2(2000);
48 BEGIN
49 IF (g_level_procedure >= g_current_runtime_level ) THEN
50 FND_LOG.STRING(g_level_procedure,
51 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS.BEGIN',
52 'ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_FROM_SOURCE_DOC(+)');
53 END IF;
54
55 x_return_status := FND_API.G_RET_STS_SUCCESS;
56
57 IF (g_level_statement >= g_current_runtime_level ) THEN
58 FND_LOG.STRING(g_level_statement,
59 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS',
60 'default_taxation_country(' || p_trx_line_index || ') = '
61 || ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.default_taxation_country(p_trx_line_index) || '$' ||
62 'DOCUMENT_SUB_TYPE = '
63 || ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DOCUMENT_SUB_TYPE(p_trx_line_index) || '$' ||
64 'TRX_BUSINESS_CATEGORY = '
65 || ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_BUSINESS_CATEGORY(p_trx_line_index) || '$' ||
66 'LINE_INTENDED_USE = '
67 || ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LINE_INTENDED_USE(p_trx_line_index) || '$' ||
68 'PRODUCT_FISC_CLASSIFICATION = '
69 || ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_FISC_CLASSIFICATION(p_trx_line_index) || '$' ||
70 'PRODUCT_CATEGORY = '
71 || ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_CATEGORY(p_trx_line_index) || '$' ||
72 'PRODUCT_TYPE = '
73 || ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_TYPE(p_trx_line_index) || '$' ||
74 'USER_DEFINED_FISC_CLASS = '
75 || ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.USER_DEFINED_FISC_CLASS(p_trx_line_index) || '$' ||
76 'ASSESSABLE_VALUE = '
77 || ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ASSESSABLE_VALUE(p_trx_line_index)
78 );
79 END IF;
80
81 IF (
82 -- ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DEFAULT_TAXATION_COUNTRY(p_trx_line_index) IS NULL AND
83 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DOCUMENT_SUB_TYPE(p_trx_line_index) IS NULL AND
84 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_BUSINESS_CATEGORY(p_trx_line_index) IS NULL AND
85 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LINE_INTENDED_USE(p_trx_line_index) IS NULL AND
86 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_FISC_CLASSIFICATION(p_trx_line_index) IS NULL AND
87 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_CATEGORY(p_trx_line_index) IS NULL AND
88 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_TYPE(p_trx_line_index) IS NULL AND
89 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.USER_DEFINED_FISC_CLASS(p_trx_line_index) IS NULL AND
90 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ASSESSABLE_VALUE(p_trx_line_index) IS NULL) THEN
91
92 l_source_line_key := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.source_application_id(p_trx_line_index) || '$' ||
93 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.source_entity_code(p_trx_line_index) || '$' ||
94 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.source_event_class_code(p_trx_line_index) || '$' ||
95 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.source_trx_id(p_trx_line_index) || '$' ||
96 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.source_line_id(p_trx_line_index) || '$' ||
97 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.source_trx_level_type(p_trx_line_index);
98 IF NOT (l_det_tax_attr_tbl.EXISTS(l_source_line_key)) THEN
99 BEGIN
100 SELECT default_taxation_country
101 , document_sub_type
102 , trx_business_category
103 , line_intended_use
104 , product_fisc_classification
105 , product_category
106 , product_type
107 , user_defined_fisc_class
108 , assessable_value
109 , DECODE(APPLICATION_ID, 201, NVL(USER_UPD_DET_FACTORS_FLAG, 'N'), 'Y') user_override_tax_flag
110 INTO l_det_tax_attr_tbl(l_source_line_key).DEFAULT_TAXATION_COUNTRY
111 , l_det_tax_attr_tbl(l_source_line_key).DOCUMENT_SUB_TYPE
112 , l_det_tax_attr_tbl(l_source_line_key).TRX_BUSINESS_CATEGORY
113 , l_det_tax_attr_tbl(l_source_line_key).LINE_INTENDED_USE
114 , l_det_tax_attr_tbl(l_source_line_key).PRODUCT_FISC_CLASSIFICATION
115 , l_det_tax_attr_tbl(l_source_line_key).PRODUCT_CATEGORY
116 , l_det_tax_attr_tbl(l_source_line_key).PRODUCT_TYPE
117 , l_det_tax_attr_tbl(l_source_line_key).USER_DEFINED_FISC_CLASS
118 , l_det_tax_attr_tbl(l_source_line_key).ASSESSABLE_VALUE
119 , l_det_tax_attr_tbl(l_source_line_key).USER_OVERRIDE_TAX_FLAG
120 FROM zx_lines_det_factors
121 WHERE application_id = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.source_application_id(p_trx_line_index)
122 AND entity_code = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.source_entity_code(p_trx_line_index)
123 AND event_class_code = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.source_event_class_code(p_trx_line_index)
124 AND trx_id = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.source_trx_id(p_trx_line_index)
125 AND trx_line_id = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.source_line_id(p_trx_line_index)
126 AND trx_level_type = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.source_trx_level_type(p_trx_line_index);
127 END;
128 END IF;
129 IF l_det_tax_attr_tbl(l_source_line_key).USER_OVERRIDE_TAX_FLAG = 'Y' THEN
130 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DEFAULT_TAXATION_COUNTRY(p_trx_line_index) := l_det_tax_attr_tbl(l_source_line_key).DEFAULT_TAXATION_COUNTRY;
131 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DOCUMENT_SUB_TYPE(p_trx_line_index) := l_det_tax_attr_tbl(l_source_line_key).DOCUMENT_SUB_TYPE;
132 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_BUSINESS_CATEGORY(p_trx_line_index) := l_det_tax_attr_tbl(l_source_line_key).TRX_BUSINESS_CATEGORY;
133 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LINE_INTENDED_USE(p_trx_line_index) := l_det_tax_attr_tbl(l_source_line_key).LINE_INTENDED_USE;
134 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_FISC_CLASSIFICATION(p_trx_line_index) := l_det_tax_attr_tbl(l_source_line_key).PRODUCT_FISC_CLASSIFICATION;
135 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_CATEGORY(p_trx_line_index) := l_det_tax_attr_tbl(l_source_line_key).PRODUCT_CATEGORY;
136 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_TYPE(p_trx_line_index) := l_det_tax_attr_tbl(l_source_line_key).PRODUCT_TYPE;
137 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.USER_DEFINED_FISC_CLASS(p_trx_line_index) := l_det_tax_attr_tbl(l_source_line_key).USER_DEFINED_FISC_CLASS;
138 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ASSESSABLE_VALUE(p_trx_line_index) := l_det_tax_attr_tbl(l_source_line_key).ASSESSABLE_VALUE;
139 END IF;
140 END IF;
141
142 IF (g_level_statement >= g_current_runtime_level ) THEN
143 FND_LOG.STRING(g_level_statement,
144 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS',
145 'default_taxation_country(' || p_trx_line_index || ') = '
146 || ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.default_taxation_country(p_trx_line_index) || '$' ||
147 'DOCUMENT_SUB_TYPE = '
148 || ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DOCUMENT_SUB_TYPE(p_trx_line_index) || '$' ||
149 'TRX_BUSINESS_CATEGORY = '
150 || ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_BUSINESS_CATEGORY(p_trx_line_index) || '$' ||
151 'LINE_INTENDED_USE = '
152 || ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LINE_INTENDED_USE(p_trx_line_index) || '$' ||
153 'PRODUCT_FISC_CLASSIFICATION = '
154 || ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_FISC_CLASSIFICATION(p_trx_line_index) || '$' ||
155 'PRODUCT_CATEGORY = '
156 || ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_CATEGORY(p_trx_line_index) || '$' ||
157 'PRODUCT_TYPE = '
158 || ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_TYPE(p_trx_line_index) || '$' ||
159 'USER_DEFINED_FISC_CLASS = '
160 || ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.USER_DEFINED_FISC_CLASS(p_trx_line_index) || '$' ||
161 'ASSESSABLE_VALUE = '
162 || ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ASSESSABLE_VALUE(p_trx_line_index)
163 );
164 END IF;
165
166 IF (g_level_procedure >= g_current_runtime_level ) THEN
167 FND_LOG.STRING(g_level_procedure,
168 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS.END',
169 'ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_FROM_SOURCE_DOC(-)');
170 END IF;
171
172 END DEFAULT_FROM_SOURCE_DOC;
173
174 /* =================================================================================*
175 | PROCEDURE DEFAULT_TAX_DET_FACTORS |
176 | This procedure is to be called by lines determine factors UI and |
177 | calculate_tax API |
178 | Expected input trx line information should have been populated in |
179 | ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl. |
180 | The output will also be populated in ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl. |
181 |
182 * ================================================================================*/
183
184 PROCEDURE DEFAULT_TAX_DET_FACTORS
185 (
186 p_trx_line_index IN BINARY_INTEGER,
187 p_event_class_rec IN OUT NOCOPY ZX_API_PUB.event_class_rec_type,
188 p_taxation_country IN VARCHAR2,
189 p_document_sub_type IN VARCHAR2,
190 x_return_status OUT NOCOPY VARCHAR2 )
191 IS
192 l_country_code XLE_FIRSTPARTY_INFORMATION_V.COUNTRY%TYPE;
193 l_trx_business_category VARCHAR2(240);
194 l_product_category ZX_FC_COUNTRY_DEFAULTS.PRODUCT_CATEG_DEFAULT%TYPE;
195 l_product_fisc_class ZX_FC_TYPES_B.CLASSIFICATION_TYPE_CODE%TYPE;
196 l_intended_use ZX_FC_TYPES_B.CLASSIFICATION_TYPE_CODE%TYPE;
197 l_trx_date DATE;
198 l_document_sub_type ZX_FC_DOCUMENT_FISCAL_V.CLASSIFICATION_CODE%TYPE;
199 l_user_defined_fisc_class ZX_FC_CODES_B.CLASSIFICATION_CODE%TYPE;
200 l_product_type FND_LOOKUPS.LOOKUP_CODE%TYPE;
201 l_init_msg_list VARCHAR2(1);
202 l_commit VARCHAR2(1);
203 l_validation_level NUMBER;
204 l_msg_count NUMBER;
205 l_msg_data VARCHAR2(1);
206 l_error_buffer VARCHAR2(2000);
207 l_definfo ZX_API_PUB.def_tax_cls_code_info_rec_type;
208
209 l_context_info_rec ZX_API_PUB.context_info_rec_type;
210
211 BEGIN
212
213 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
214
215 IF (g_level_procedure >= g_current_runtime_level ) THEN
216 FND_LOG.STRING(g_level_procedure,
217 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS.BEGIN',
218 'ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS(+)'||
219 ' taxation_country = ' || p_taxation_country||
220 ' document_sub_type = ' || p_document_sub_type);
221 END IF;
222
223 x_return_status := FND_API.G_RET_STS_SUCCESS;
224
225 l_trx_date := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_DATE(p_trx_line_index);
226
227 l_country_code := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DEFAULT_TAXATION_COUNTRY(p_trx_line_index);
228
229 /*
230 When a transaction is created from a source transaction,
231 the defaulting should happen from the source and NOT from the setup.
232 */
233
234 IF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.source_trx_id(p_trx_line_index) is not null THEN
235 default_from_source_doc( p_trx_line_index,
236 x_return_status);
237 RETURN;
238 END IF;
239
240 /*
241 case 1 : In update mode, if taxation country is changed or
242 case 2 : When a new trx line gets inserted, if there are already other trx lines existing
243 in zx_lines_det_facotrs then default taxation country and document sub type values
244 will be passed from the existing trx lines.
245 In both cases re-default the tax attributes based on taxation country parameter
246 */
247
248 -- If taxation country is passed then default the other tax attributes based on the passed value.
249 IF p_taxation_country IS NOT NULL AND (l_country_code IS NULL OR l_country_code <> p_taxation_country) THEN
250
251 l_country_code := p_taxation_country;
252 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DEFAULT_TAXATION_COUNTRY(p_trx_line_index) := p_taxation_country;
253
254 /* If line level action is other than Create or any of the defaulting tax attributes are not null then
255 don't do the defaulting */
256
257 ELSE
258 IF p_taxation_country IS NULL AND l_country_code IS NULL THEN
259
260 --******************** DEFAULT TAXATION COUNTRY *************************
261 --Call the procedure the get the default country code
262 GET_DEFAULT_COUNTRY_CODE(
263 p_event_class_rec.tax_method_code,
264 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.internal_organization_id(p_trx_line_index),
265 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LEGAL_ENTITY_ID(p_trx_line_index),
266 l_country_code,
267 x_return_status );
268
269 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
270 IF (g_level_error >= g_current_runtime_level ) THEN
271 FND_LOG.STRING(g_level_error,
272 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS',
273 'Incorrect return_status after calling ' ||
274 'ZX_TCM_EXT_SERVICES_PUB.GET_DEFAULT_COUNTRY_CODE');
275 FND_LOG.STRING(g_level_error,
276 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS.END',
277 'ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS(-)'||x_return_status);
278 END IF;
279
280 RETURN;
281
282 END IF;
283
284 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DEFAULT_TAXATION_COUNTRY(p_trx_line_index) := l_country_code;
285
286 IF (g_level_statement >= g_current_runtime_level ) THEN
287 FND_LOG.STRING(g_level_statement,
288 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS',
289 'l_country_code = ' || l_country_code);
290 END IF;
291
292 ELSE
293
294 IF NVL(ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.USER_UPD_DET_FACTORS_FLAG(p_trx_line_index), 'N') = 'Y' OR
295 -- NVL(p_trx_line_changed,'N') = 'N' AND
296 (ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DOCUMENT_SUB_TYPE(p_trx_line_index) IS NOT NULL OR
297 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_BUSINESS_CATEGORY(p_trx_line_index) IS NOT NULL OR
298 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LINE_INTENDED_USE(p_trx_line_index) IS NOT NULL OR
299 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_FISC_CLASSIFICATION(p_trx_line_index) IS NOT NULL OR
300 -- ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_CATEGORY(p_trx_line_index) IS NOT NULL OR
301 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_TYPE(p_trx_line_index) IS NOT NULL OR
302 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.USER_DEFINED_FISC_CLASS(p_trx_line_index) IS NOT NULL OR
303 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ASSESSABLE_VALUE(p_trx_line_index) IS NOT NULL) THEN
304
305 IF (g_level_statement >= g_current_runtime_level ) THEN
306 FND_LOG.STRING(g_level_statement,
307 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS',
308 'One of the defaulting tax attributes are not null. So defaulting logic is not required.' ||
309 'ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS()');
310 FND_LOG.STRING(g_level_statement,
311 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS.END',
312 'ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS(-)');
313 END IF;
314
315 RETURN;
316 END IF;
317 END IF; -- p_taxation_country IS NULL AND l_country_code IS NULL
318 END IF; -- p_taxation_country IS NOT NULL AND (l_country_code IS NULL OR ...)
319
320 --******************** DOCUMENT SUB TYPE ********************************
321 -- In the update mode if document sub type is passed then copy the passed value.
322 IF p_document_sub_type IS NOT NULL THEN
323
324 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DOCUMENT_SUB_TYPE(p_trx_line_index) := p_document_sub_type;
325
326 ELSIF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DOCUMENT_SUB_TYPE(p_trx_line_index) IS NULL THEN
327
328 -- Bug 4637855: Use TCM API to derive document_sub_type
329 --
330 ZX_TCM_EXT_SERVICES_PUB.get_default_classif_code(
331 p_fiscal_type_code => 'DOCUMENT_SUBTYPE',
332 p_country_code => l_country_code,
333 p_application_id => NULL,
334 p_entity_code => NULL,
335 p_event_class_code => NULL,
336 p_source_event_class_code => NULL,
337 p_item_id => NULL,
338 p_org_id => NULL,
339 p_default_code => l_document_sub_type,
340 p_return_status => x_return_status);
341
342 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
343 IF (g_level_error >= g_current_runtime_level ) THEN
344 FND_LOG.STRING(g_level_error,
345 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS',
346 'Incorrect return_status after calling ' ||
347 'ZX_TCM_EXT_SERVICES_PUB.get_default_classif_code for document_sub_type');
348 FND_LOG.STRING(g_level_error,
349 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS.END',
350 'ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS(-)'||x_return_status);
351 END IF;
352 RETURN;
353 END IF;
354
355 -- BEGIN
356 -- SELECT classification_code INTO l_document_sub_type
357 -- FROM ZX_FC_DOCUMENT_FISCAL_V
358 -- WHERE l_trx_date between effective_from and nvl(effective_to, l_trx_date)
359 -- AND (country_code = l_country_code OR country_code IS NULL);
360 -- EXCEPTION
361 -- WHEN NO_DATA_FOUND THEN
362 -- IF (g_level_event >= g_current_runtime_level ) THEN
363 -- FND_LOG.STRING(g_level_event,
364 -- 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS',
365 -- 'No document_sub_type Found. ');
366 -- END IF;
367 -- l_document_sub_type := NULL;
368 -- WHEN TOO_MANY_ROWS THEN
369 -- IF (g_level_event >= g_current_runtime_level ) THEN
370 -- FND_LOG.STRING(g_level_event,
371 -- 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS',
372 -- 'No document_sub_type defaulted. ');
373 -- END IF;
374 -- l_document_sub_type := NULL;
375 -- WHEN OTHERS THEN
376 -- IF (g_level_event >= g_current_runtime_level ) THEN
377 -- FND_LOG.STRING(g_level_event,
378 -- 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS',
379 -- sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80));
380 -- FND_LOG.STRING(g_level_event,
381 -- 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS',
382 -- 'Other Exception: This exception will not stop the program.');
383 -- END IF;
384 -- END;
385
386 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DOCUMENT_SUB_TYPE(p_trx_line_index) := l_document_sub_type;
387
388 IF (g_level_statement >= g_current_runtime_level ) THEN
389 FND_LOG.STRING(g_level_statement,
390 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS',
391 'l_document_sub_type = ' || l_document_sub_type);
392 END IF;
393 END IF;
394
395 -- If Tax method is Latin Tax Engine then
396 IF p_event_class_rec.tax_method_code = 'LTE' THEN
397
398 JL_ZZ_TAX_VALIDATE_PKG.DEFAULT_TAX_ATTR(
399 p_trx_line_index => p_trx_line_index,
400 x_return_status => x_return_status);
401
402 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
403 IF (g_level_error >= g_current_runtime_level ) THEN
404 FND_LOG.STRING(g_level_error,
405 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS',
406 'Incorrect return_status after calling ' ||
407 'ZX_API_PUB.GET_DEFAULT_TAX_DET_ATTRIBS');
408 FND_LOG.STRING(g_level_error,
409 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS.END',
410 'ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS(-)'||x_return_status);
411 END IF;
412 RETURN;
413 END IF;
414 ELSE -- if tax method is ETAX then
415
416 --******************** DEFAULT TAX LINE ATTRIBUTES ***********************
417
418 ZX_API_PUB.GET_DEFAULT_TAX_DET_ATTRIBS
419 (p_api_version => 1.0,
420 p_init_msg_list => l_init_msg_list,
421 p_commit => l_commit,
422 p_validation_level => l_validation_level,
423 x_return_status => x_return_status,
424 x_msg_count => l_msg_count,
425 x_msg_data => l_msg_data,
426 p_application_id => p_event_class_rec.application_id,
427 p_entity_code => p_event_class_rec.entity_code,
428 p_event_class_code => p_event_class_rec.event_class_code,
429 p_org_id => zx_global_structures_pkg.trx_line_dist_tbl.internal_organization_id(p_trx_line_index),
430 p_item_id => zx_global_structures_pkg.trx_line_dist_tbl.product_id(p_trx_line_index),
431 p_country_code => l_country_code,
432 p_effective_date => l_trx_date,
433 p_source_event_class_code => zx_global_structures_pkg.trx_line_dist_tbl.source_event_class_code(p_trx_line_index),
434 x_trx_biz_category => l_trx_business_category,
435 x_intended_use => l_intended_use,
436 x_prod_category => l_product_category,
437 x_prod_fisc_class_code => l_product_fisc_class,
438 x_product_type => l_product_type
439 );
440
441 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
442 IF (g_level_error >= g_current_runtime_level ) THEN
443 FND_LOG.STRING(g_level_error,
444 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS',
445 'Incorrect return_status after calling ' ||
446 'ZX_API_PUB.GET_DEFAULT_TAX_DET_ATTRIBS');
447 FND_LOG.STRING(g_level_error,
448 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS.END',
449 'ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS(-)'||x_return_status);
450 END IF;
451 RETURN;
452 END IF;
453
454 -- Populate the default value for Product category, Product Fiscal Classification and Intended Use
455 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_BUSINESS_CATEGORY(p_trx_line_index) := l_trx_business_category;
456 IF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_CATEGORY(p_trx_line_index) IS NULL THEN
457 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_CATEGORY(p_trx_line_index) := l_product_category;
458 END IF;
459 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_FISC_CLASSIFICATION(p_trx_line_index) := l_product_fisc_class;
460 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LINE_INTENDED_USE(p_trx_line_index) := l_intended_use;
461 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_TYPE(p_trx_line_index) := l_product_type;
462
463 --Populate the default value for assessable value from line amount
464 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ASSESSABLE_VALUE(p_trx_line_index) := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LINE_AMT(p_trx_line_index);
465
466 -- Bug 5622704: Do not default user defined fiscal classification
467 -- Bug 4637855: Use TCM API to derive user defined fiscal classification
468 --
469 -- ZX_TCM_EXT_SERVICES_PUB.get_default_classif_code(
470 -- p_fiscal_type_code => 'USER_DEFINED',
471 -- p_country_code => l_country_code,
472 -- p_application_id => NULL,
473 -- p_entity_code => NULL,
474 -- p_event_class_code => NULL,
475 -- p_source_event_class_code => NULL,
476 -- p_item_id => NULL,
477 -- p_org_id => NULL,
478 -- p_default_code => l_user_defined_fisc_class,
479 -- p_return_status => x_return_status);
480 --
481 -- IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
482 -- IF (g_level_statement >= g_current_runtime_level ) THEN
483 -- FND_LOG.STRING(g_level_statement,
484 -- 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS',
485 -- 'Incorrect return_status after calling ' ||
486 -- 'ZX_TCM_EXT_SERVICES_PUB.get_default_classif_code for user_defined');
487 -- FND_LOG.STRING(g_level_statement,
488 -- 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS.END',
489 -- 'ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS(-)'||x_return_status);
490 -- END IF;
491 -- RETURN;
492 -- END IF;
493 --
494 -- IF (g_level_statement >= g_current_runtime_level ) THEN
495 -- FND_LOG.STRING(g_level_statement,
496 -- 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS',
497 -- 'l_user_defined_fisc_class= ' || l_user_defined_fisc_class);
498 -- END IF;
499 --
500 -- ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.USER_DEFINED_FISC_CLASS(
501 -- p_trx_line_index) := l_user_defined_fisc_class;
502
503
504 END IF; -- End of Tax method check
505
506 IF (g_level_procedure >= g_current_runtime_level ) THEN
507
508 FND_LOG.STRING(g_level_procedure,
509 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS.END',
510 'ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS(-)'||x_return_status);
511 END IF;
512
513 EXCEPTION
514
515 WHEN OTHERS THEN
516
517 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
518 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
519 l_context_info_rec.APPLICATION_ID := p_event_class_rec.application_id;
520 l_context_info_rec.ENTITY_CODE := p_event_class_rec.entity_code;
521 l_context_info_rec.EVENT_CLASS_CODE := p_event_class_rec.event_class_code;
522 l_context_info_rec.TRX_ID := p_event_class_rec.trx_id;
523 IF ZX_API_PUB.G_DATA_TRANSFER_MODE IS NULL
524 OR l_context_info_rec.TRX_ID IS NULL
525 THEN
526 FND_MSG_PUB.Add;
527 ELSE
528 ZX_API_PUB.add_msg( p_context_info_rec =>l_context_info_rec );
529 END IF;
530
531 IF (g_level_unexpected >= g_current_runtime_level ) THEN
532 FND_LOG.STRING(g_level_unexpected,
533 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS',
534 sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80));
535 FND_LOG.STRING(g_level_unexpected,
536 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS.END',
537 'ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS(-)');
538 END IF;
539
540 END DEFAULT_TAX_DET_FACTORS;
541
542
543 PROCEDURE DEFAULT_TAX_REPORTING_ATTRIBS
544 (
545 p_trx_line_index IN BINARY_INTEGER,
546 p_tax_invoice_number IN VARCHAR2,
547 p_tax_invoice_date IN DATE,
548 x_return_status OUT NOCOPY VARCHAR2
549 )
550
551 IS
552
553 l_api_name CONSTANT VARCHAR2(30) := 'DEFAULT_TAX_REPORTING_ATTRIBS';
554
555 l_tax_invoice_number ZX_LINES_DET_FACTORS.TAX_INVOICE_NUMBER%TYPE;
556 l_tax_invoice_date ZX_LINES_DET_FACTORS.TAX_INVOICE_DATE%TYPE;
557
558 l_context_info_rec ZX_API_PUB.context_info_rec_type;
559
560 BEGIN
561 -- start bug#6503114
562 x_return_status := FND_API.G_RET_STS_SUCCESS;
563 -- end bug#6503114
564
565 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
566 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
567 END IF;
568
569 BEGIN
570 SELECT nvl(global_attribute8,'0') global_attribute8,
571 to_char(to_date(global_attribute9,'YYYY/MM/DD HH24:MI:SS'),
572 'RRRR-MON-DD') global_attribute9 INTO l_tax_invoice_number, l_tax_invoice_date
573 FROM RA_BATCH_SOURCES_ALL
574 WHERE batch_source_id = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.BATCH_SOURCE_ID(p_trx_line_index)
575 AND NVL(org_id, -99) =
576 NVL(ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.internal_organization_id(p_trx_line_index), -99);
577 EXCEPTION
578 WHEN NO_DATA_FOUND THEN
579 IF (g_level_statement >= g_current_runtime_level ) THEN
580 FND_LOG.STRING(g_level_statement,
581 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_REPORTING_ATTRIBS',
582 'No Record Found for tax_invoice_number and tax_invoice_date.');
583 END IF;
584 WHEN OTHERS THEN
585 IF (g_level_unexpected >= g_current_runtime_level ) THEN
586 FND_LOG.STRING(g_level_unexpected,
587 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_REPORTING_ATTRIBS',
588 sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80));
589 END IF;
590 END;
591
592 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
593 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
594 'p_tax_invoice_number := ' || p_tax_invoice_number||
595 ' l_tax_invoice_number := ' || l_tax_invoice_number||
596 'p_tax_invoice_date := ' || p_tax_invoice_date||
597 'l_tax_invoice_date := ' || l_tax_invoice_date);
598 END IF;
599
600 IF p_tax_invoice_number IS NOT NULL THEN
601
602 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TAX_INVOICE_NUMBER(p_trx_line_index) := p_tax_invoice_number;
603
604 ELSIF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TAX_INVOICE_NUMBER(p_trx_line_index) IS NULL THEN
605
606 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TAX_INVOICE_NUMBER(p_trx_line_index) := l_tax_invoice_number;
607
608 END IF;
609
610 IF p_tax_invoice_date IS NOT NULL THEN
611
612 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TAX_INVOICE_DATE(p_trx_line_index) := p_tax_invoice_date;
613
614 ELSIF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TAX_INVOICE_DATE(p_trx_line_index) IS NULL THEN
615
616 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TAX_INVOICE_DATE(p_trx_line_index) := l_tax_invoice_date;
617
618 END IF;
619
620 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
621 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME ||l_api_name||'(-)');
622 END IF;
623
624 EXCEPTION
625
626 WHEN OTHERS THEN
627
628 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
629 FND_MESSAGE.SET_NAME('ZX','ZX_UNEXPECTED_ERROR');
630 l_context_info_rec.APPLICATION_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.application_id(p_trx_line_index);
631 l_context_info_rec.ENTITY_CODE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.entity_code(p_trx_line_index);
632 l_context_info_rec.EVENT_CLASS_CODE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.event_class_code(p_trx_line_index);
633 l_context_info_rec.TRX_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_id(p_trx_line_index);
634 IF ZX_API_PUB.G_DATA_TRANSFER_MODE IS NULL
635 OR l_context_info_rec.TRX_ID IS NULL
636 THEN
637 FND_MSG_PUB.Add;
638 ELSE
639 ZX_API_PUB.add_msg( p_context_info_rec =>l_context_info_rec );
640 END IF;
641
642 IF (g_level_unexpected >= g_current_runtime_level ) THEN
643 FND_LOG.STRING(g_level_unexpected,
644 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_REPORTING_ATTRIBS',
645 sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80));
646 FND_LOG.STRING(g_level_unexpected,
647 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_REPORTING_ATTRIBS.END',
648 'ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_REPORTING_ATTRIBS(-)');
649 END IF;
650
651
652 END DEFAULT_TAX_REPORTING_ATTRIBS;
653
654
655 PROCEDURE DEFAULT_TAX_CLASSIFICATION
656 (
657 p_trx_line_index IN BINARY_INTEGER,
658 x_return_status OUT NOCOPY VARCHAR2
659 )
660
661 IS
662
663 l_api_name CONSTANT VARCHAR2(30) := 'DEFAULT_TAX_CLASSIFICATION';
664 l_error_buffer VARCHAR2(240);
665 l_definfo ZX_API_PUB.def_tax_cls_code_info_rec_type;
666
667 BEGIN
668
669 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
670 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
671 END IF;
672
673 x_return_status := FND_API.G_RET_STS_SUCCESS;
674
675 -- If Application is PO and Input classification code is Null then default the value.
676 IF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLICATION_ID(p_trx_line_index) = 201 AND
677 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.INPUT_TAX_CLASSIFICATION_CODE(p_trx_line_index) IS NULL THEN
678
679 l_definfo.ref_doc_application_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ref_doc_application_id(p_trx_line_index);
680 l_definfo.ref_doc_entity_code := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ref_doc_entity_code(p_trx_line_index);
681 l_definfo.ref_doc_event_class_code := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ref_doc_event_class_code(p_trx_line_index);
682 l_definfo.ref_doc_trx_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ref_doc_trx_id(p_trx_line_index);
683 l_definfo.ref_doc_line_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ref_doc_line_id(p_trx_line_index);
684 l_definfo.ref_doc_trx_level_type := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ref_doc_trx_level_type(p_trx_line_index);
685 --l_definfo.vendor_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ship_from_party_id(p_trx_line_index);
686 -- bug#4991176
687 -- l_definfo.ship_third_pty_acct_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ship_from_party_id(p_trx_line_index);
688 --l_definfo.vendor_site_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ship_from_party_site_id(p_trx_line_index);
689 -- bug#4991176
690 --l_definfo.ship_third_pty_acct_site_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ship_from_party_site_id(p_trx_line_index);
691 l_definfo.account_ccid := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.account_ccid(p_trx_line_index);
692 l_definfo.account_string := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.account_string(p_trx_line_index);
693 l_definfo.ship_to_location_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ship_to_location_id(p_trx_line_index);
694 l_definfo.product_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_id(p_trx_line_index);
695 l_definfo.application_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.application_id(p_trx_line_index);
696 l_definfo.event_class_code := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.event_class_code(p_trx_line_index);
697 l_definfo.entity_code := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.entity_code(p_trx_line_index);
698 --l_definfo.bill_to_site_use_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.bill_third_pty_acct_id(p_trx_line_index);
699 l_definfo.bill_to_cust_acct_site_use_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.bill_to_cust_acct_site_use_id(p_trx_line_index);
700 --l_definfo.ship_to_site_use_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ship_third_pty_acct_id(p_trx_line_index);
701 l_definfo.ship_to_cust_acct_site_use_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ship_to_cust_acct_site_use_id(p_trx_line_index);
702 l_definfo.ledger_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ledger_id(p_trx_line_index);
703 l_definfo.trx_date := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_date(p_trx_line_index);
704 l_definfo.receivables_trx_type_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.receivables_trx_type_id(p_trx_line_index);
705 l_definfo.trx_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_id(p_trx_line_index);
706 l_definfo.trx_line_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_line_id(p_trx_line_index);
707 l_definfo.ship_third_pty_acct_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ship_third_pty_acct_id(p_trx_line_index);
708 -- bug#4991176
709 l_definfo.ship_third_pty_acct_site_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ship_third_pty_acct_site_id(p_trx_line_index);
710
711 l_definfo.bill_third_pty_acct_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.bill_third_pty_acct_id(p_trx_line_index);
712
713 l_definfo.product_org_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_org_id(p_trx_line_index);
714 l_definfo.internal_organization_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.internal_organization_id(p_trx_line_index);
715
716 --
717 -- bug#4868489
718 --
719 l_definfo.legal_entity_id :=
720 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.legal_entity_id(p_trx_line_index);
721
722 -- Per discussion with Sri, Pass all the defaulting attributes from
723 -- trx_line_dist_tbl. These defaulting attributes will be intepreted internally.
724 --
725 -- bug#4868489- removed the call to
726 -- ZX_TAX_DEFAULT_PKG.map_parm_for_def_tax_classif
727 -- and assign directly to defaulting_attributes
728 -- in l_definfo record
729 --
730 l_definfo.defaulting_attribute1 :=
731 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.defaulting_attribute1(p_trx_line_index);
732 l_definfo.defaulting_attribute2 :=
733 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.defaulting_attribute2(p_trx_line_index);
734 l_definfo.defaulting_attribute3 :=
735 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.defaulting_attribute3(p_trx_line_index);
736 l_definfo.defaulting_attribute4 :=
737 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.defaulting_attribute4(p_trx_line_index);
738 l_definfo.defaulting_attribute5 :=
739 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.defaulting_attribute5(p_trx_line_index);
740 l_definfo.defaulting_attribute6 :=
741 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.defaulting_attribute6(p_trx_line_index);
742 l_definfo.defaulting_attribute7 :=
743 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.defaulting_attribute7(p_trx_line_index);
744 l_definfo.defaulting_attribute8 :=
745 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.defaulting_attribute8(p_trx_line_index);
746 l_definfo.defaulting_attribute9 :=
747 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.defaulting_attribute9(p_trx_line_index);
748 l_definfo.defaulting_attribute10 :=
749 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.defaulting_attribute10(p_trx_line_index);
750
751 ZX_TAX_DEFAULT_PKG.get_default_tax_classification
752 (p_definfo => l_definfo,
753 p_return_status => x_return_status,
754 p_error_buffer => l_error_buffer
755 );
756
757 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
758
759 IF (g_level_error >= g_current_runtime_level ) THEN
760 FND_LOG.STRING(g_level_error,
761 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_CLASSIFICATION',
762 'Incorrect return_status after calling ' ||
763 'ZX_TAX_DEFAULT_PKG.get_default_tax_classification');
764 FND_LOG.STRING(g_level_error,
765 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_CLASSIFICATION.END',
766 'ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_CLASSIFICATION(-)');
767 END IF;
768
769 RETURN;
770
771 END IF;
772
773 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.INPUT_TAX_CLASSIFICATION_CODE(p_trx_line_index) := l_definfo.input_tax_classification_code;
774
775 END IF; -- End of PO Application check
776
777 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
778 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME ||l_api_name||'(-)');
779 END IF;
780
781 END DEFAULT_TAX_CLASSIFICATION;
782
783
784 -- This is the main wrapper procedure
785 PROCEDURE DEFAULT_TAX_ATTRIBS
786 (
787 p_trx_line_index IN BINARY_INTEGER,
788 p_event_class_rec IN OUT NOCOPY ZX_API_PUB.event_class_rec_type,
789 p_taxation_country IN VARCHAR2,
790 p_document_sub_type IN VARCHAR2,
791 p_tax_invoice_number IN VARCHAR2,
792 p_tax_invoice_date IN DATE,
793 x_return_status OUT NOCOPY VARCHAR2
794 )
795 IS
796
797 l_api_name CONSTANT VARCHAR2(30) := 'DEFAULT_TAX_ATTRIBS';
798
799 BEGIN
800
801 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
802 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
803 END IF;
804
805 DEFAULT_TAX_DET_FACTORS
806 (
807 p_trx_line_index,
808 p_event_class_rec,
809 p_taxation_country,
810 p_document_sub_type,
811 x_return_status
812 );
813
814 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
815 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
816 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
817 'after calling default_tax_det_factors RETURN_STATUS = ' || x_return_status);
818 END IF;
819 -- RETURN;
820 END IF;
821
822 DEFAULT_TAX_REPORTING_ATTRIBS
823 (
824 p_trx_line_index,
825 p_tax_invoice_number,
826 p_tax_invoice_date,
827 x_return_status
828 );
829
830 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
831 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
832 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
833 'after calling default_tax_reporting_attribs RETURN_STATUS = ' || x_return_status);
834 END IF;
835 -- RETURN;
836 END IF;
837
838 DEFAULT_TAX_CLASSIFICATION
839 (
840 p_trx_line_index,
841 x_return_status
842 );
843
844 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
845 IF ( G_LEVEL_error >= G_CURRENT_RUNTIME_LEVEL) THEN
846 FND_LOG.STRING(G_LEVEL_error,G_MODULE_NAME||l_api_name,
847 'after calling default_tax_classification RETURN_STATUS = ' || x_return_status);
848 END IF;
849 -- RETURN;
850 END IF;
851
852 END DEFAULT_TAX_ATTRIBS;
853
854 -- Re-Defaulting APIs
855 --
856 PROCEDURE redefault_intended_use(
857 p_application_id IN NUMBER,
858 p_entity_code IN VARCHAR2,
859 p_event_class_code IN VARCHAR2,
860 p_internal_org_id IN NUMBER,
861 p_country_code IN VARCHAR2,
862 p_item_id IN NUMBER,
863 p_item_org_id IN NUMBER,
864 x_intended_use OUT NOCOPY VARCHAR2,
865 x_return_status OUT NOCOPY VARCHAR2) IS
866
867 l_tax_method VARCHAR2(30);
868 l_error_buffer VARCHAR2(256);
869 l_zx_proudct_options_rec ZX_GLOBAL_STRUCTURES_PKG.zx_product_options_rec_type;
870
871 BEGIN
872
873 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
874
875 IF (g_level_procedure >= g_current_runtime_level ) THEN
876 FND_LOG.STRING(g_level_procedure,
877 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.redefault_intended_use.BEGIN',
878 'ZX_DEFAULT_AUTOMATION_PKG.redefault_intended_use(+)');
879 END IF;
880
881 x_return_status := FND_API.G_RET_STS_SUCCESS;
882
883 -- get tax method
884 --
885
886 ZX_GLOBAL_STRUCTURES_PKG.get_product_options_info
887 (p_application_id => p_application_id,
888 p_org_id => p_internal_org_id,
889 x_product_options_rec => l_zx_proudct_options_rec,
890 x_return_status => x_return_status);
891 IF x_return_status = FND_API.G_RET_STS_ERROR then
892 l_tax_method := 'EBTAX';
893 ELSE
894 l_tax_method := l_zx_proudct_options_rec.tax_method_code;
895 END IF;
896
897 IF l_tax_method = 'EBTAX' THEN
898
899 ZX_TCM_EXT_SERVICES_PUB.get_default_classif_code(
900 p_fiscal_type_code => 'INTENDED_USE',
901 p_country_code => p_country_code,
902 p_application_id => p_application_id,
903 p_entity_code => p_entity_code,
904 p_event_class_code => p_event_class_code,
905 p_source_event_class_code => NULL,
906 p_org_id => p_item_org_id,
907 p_item_id => p_item_id,
908 p_default_code => x_intended_use,
909 p_return_status => x_return_status);
910
911 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
912 IF (g_level_statement >= g_current_runtime_level ) THEN
913 FND_LOG.STRING(g_level_statement,
914 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.redefault_intended_use',
915 'Incorrect return_status after calling ' ||
916 'ZX_TCM_EXT_SERVICES_PUB.get_default_classif_code()');
917 FND_LOG.STRING(g_level_statement,
918 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.redefault_intended_use.END',
919 'ZX_DEFAULT_AUTOMATION_PKG.redefault_intended_use(-)');
920 END IF;
921 RETURN;
922 END IF;
923 END IF;
924
925 IF (g_level_procedure >= g_current_runtime_level ) THEN
926
927 FND_LOG.STRING(g_level_procedure,
928 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.redefault_intended_use.END',
929 'ZX_DEFAULT_AUTOMATION_PKG.redefault_intended_use(-)'||
930 'x_intended_use := ' || x_intended_use||
931 'RETURN_STATUS = ' || x_return_status);
932 END IF;
933
934 EXCEPTION
935 WHEN OTHERS THEN
936
937 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
938 x_intended_use := NULL;
939
940 FND_MESSAGE.SET_NAME('ZX','ZX_UNEXPECTED_ERROR');
941 FND_MSG_PUB.Add;
942
943 IF (g_level_unexpected >= g_current_runtime_level ) THEN
944 FND_LOG.STRING(g_level_unexpected,
945 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.redefault_intended_use',
946 sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80));
947 FND_LOG.STRING(g_level_unexpected,
948 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.redefault_intended_use.END',
949 'ZX_DEFAULT_AUTOMATION_PKG.redefault_intended_use(-)');
950 END IF;
951
952 END redefault_intended_use;
953
954 PROCEDURE redefault_prod_fisc_class_code(
955 p_application_id IN NUMBER,
956 p_entity_code IN VARCHAR2,
957 p_event_class_code IN VARCHAR2,
958 p_internal_org_id IN NUMBER,
959 p_country_code IN VARCHAR2,
960 p_item_id IN NUMBER,
961 p_item_org_id IN NUMBER,
962 x_prod_fisc_class_code OUT NOCOPY VARCHAR2,
963 x_return_status OUT NOCOPY VARCHAR2) IS
964
965 l_tax_method VARCHAR2(30);
966 l_error_buffer VARCHAR2(256);
967 l_zx_proudct_options_rec ZX_GLOBAL_STRUCTURES_PKG.zx_product_options_rec_type;
968
969 BEGIN
970
971 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
972
973 IF (g_level_procedure >= g_current_runtime_level ) THEN
974 FND_LOG.STRING(g_level_procedure,
975 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.redefault_prod_fisc_class_code.BEGIN',
976 'ZX_DEFAULT_AUTOMATION_PKG.redefault_prod_fisc_class_code(+)');
977 END IF;
978
979 x_return_status := FND_API.G_RET_STS_SUCCESS;
980
981 ZX_GLOBAL_STRUCTURES_PKG.get_product_options_info
982 (p_application_id => p_application_id,
983 p_org_id => p_internal_org_id,
984 x_product_options_rec => l_zx_proudct_options_rec,
985 x_return_status => x_return_status);
986 IF x_return_status = FND_API.G_RET_STS_ERROR then
987 l_tax_method := 'EBTAX';
988 ELSE
989 l_tax_method := l_zx_proudct_options_rec.tax_method_code;
990 END IF;
991
992
993 IF l_tax_method = 'EBTAX' THEN
994
995 ZX_TCM_EXT_SERVICES_PUB.get_default_product_classif(
996 p_country_code => p_country_code,
997 p_item_id => p_item_id,
998 p_org_id => p_item_org_id,
999 p_default_code => x_prod_fisc_class_code,
1000 p_return_status => x_return_status);
1001
1002 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1003 IF (g_level_error >= g_current_runtime_level ) THEN
1004 FND_LOG.STRING(g_level_error,
1005 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.redefault_prod_fisc_class_code',
1006 'Incorrect return_status after calling ' ||
1007 'ZX_TCM_EXT_SERVICES_PUB.get_default_product_classif()');
1008 FND_LOG.STRING(g_level_error,
1009 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.redefault_prod_fisc_class_code.END',
1010 'ZX_DEFAULT_AUTOMATION_PKG.redefault_prod_fisc_class_code(-)'||x_return_status);
1011 END IF;
1012 RETURN;
1013 END IF;
1014 ELSIF l_tax_method = 'LTE' THEN
1015
1016 IF p_item_id IS NOT NULL and p_item_org_id IS NOT NULL THEN
1017
1018 BEGIN
1019
1020 SELECT fc.classification_code
1021 INTO x_prod_fisc_class_code
1022 FROM zx_fc_product_fiscal_v fc,
1023 mtl_item_categories mic
1024 WHERE fc.country_code = p_country_code
1025 AND mic.inventory_item_id = p_item_id
1026 AND mic.organization_id = p_item_org_id
1027 AND mic.category_id = fc.category_id
1028 AND mic.category_set_id = fc.category_set_id
1029 AND fc.structure_name = 'PRODUCT_FISCAL_CLASS'
1030 AND fc.country_code in ('JL', 'BR', 'CO')
1031 AND EXISTS
1032 ( SELECT 1
1033 FROM jl_zz_ar_tx_fsc_cls_all
1034 WHERE fiscal_classification_code = fc.classification_code
1035 AND NVL(org_id, -99) = NVL(p_internal_org_id, -99)
1036 AND enabled_flag = 'Y');
1037
1038 EXCEPTION
1039 WHEN NO_DATA_FOUND THEN
1040 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1041 FND_LOG.STRING(g_level_unexpected,
1042 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.redefault_prod_fisc_class_code',
1043 'Unable to default Product Fiscal Classification which is mandatory for LTE');
1044 END IF;
1045 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1046
1047 END;
1048 ELSIF p_item_id IS NOT NULL and p_item_org_id IS NULL THEN
1049
1050 -- In case where the product type is 'MEMO', default Product Category
1051 -- from ar_memo_lines.
1052 --
1053 BEGIN
1054 SELECT memo.global_attribute2 product_category
1055 INTO x_prod_fisc_class_code
1056 FROM ar_memo_lines_all_b Memo
1057 WHERE memo_line_id = p_item_id
1058 AND NVL(org_id, -99) = NVL(p_internal_org_id, -99);
1059
1060 EXCEPTION
1061 WHEN NO_DATA_FOUND THEN
1062 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1063 FND_LOG.STRING(g_level_unexpected,
1064 'JL_ZZ_TAX_VALIDATE_PKG.DEFAULT_TAX_ATTR',
1065 'Unable to default Product Fiscal Classification ot Trx Business Category'||
1066 ' which is mandatory for LTE');
1067 END IF;
1068 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1069 END;
1070 END IF;
1071 END IF;
1072
1073
1074 IF (g_level_procedure >= g_current_runtime_level ) THEN
1075
1076 FND_LOG.STRING(g_level_procedure,
1077 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.redefault_prod_fisc_class_code.END',
1078 'ZX_DEFAULT_AUTOMATION_PKG.redefault_prod_fisc_class_code(-)'||
1079 'x_prod_fisc_class_code := ' || x_prod_fisc_class_code||
1080 'RETURN_STATUS = ' || x_return_status);
1081 END IF;
1082
1083 EXCEPTION
1084 WHEN OTHERS THEN
1085
1086 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1087 x_prod_fisc_class_code := NULL;
1088
1089 FND_MESSAGE.SET_NAME('ZX','ZX_UNEXPECTED_ERROR');
1090 FND_MSG_PUB.Add;
1091
1092 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1093 FND_LOG.STRING(g_level_unexpected,
1094 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.redefault_prod_fisc_class_code',
1095 sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80));
1096 FND_LOG.STRING(g_level_unexpected,
1097 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.redefault_prod_fisc_class_code.END',
1098 'ZX_DEFAULT_AUTOMATION_PKG.redefault_prod_fisc_class_code(-)');
1099 END IF;
1100
1101 END redefault_prod_fisc_class_code;
1102
1103 PROCEDURE redefault_assessable_value(
1104 p_application_id IN NUMBER,
1105 p_entity_code IN VARCHAR2,
1106 p_event_class_code IN VARCHAR2,
1107 p_internal_org_id IN NUMBER,
1108 p_trx_id IN NUMBER,
1109 p_trx_line_id IN NUMBER,
1110 p_trx_level_type IN VARCHAR2,
1111 p_item_id IN NUMBER,
1112 p_item_org_id IN NUMBER,
1113 p_line_amt IN NUMBER,
1114 x_assessable_value OUT NOCOPY NUMBER,
1115 x_return_status OUT NOCOPY VARCHAR2) IS
1116
1117 l_error_buffer VARCHAR2(256);
1118
1119 BEGIN
1120
1121 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1122
1123 IF (g_level_procedure >= g_current_runtime_level ) THEN
1124 FND_LOG.STRING(g_level_procedure,
1125 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.redefault_assessable_value.BEGIN',
1126 'ZX_DEFAULT_AUTOMATION_PKG.redefault_assessable_value(+)');
1127 END IF;
1128
1129 x_return_status := FND_API.G_RET_STS_SUCCESS;
1130
1131 -- Just assign line_amt to the x_assessable_vale. For the logic to get default
1132 -- assessable value will be determinered based on the input parameters
1133 --
1134 x_assessable_value := p_line_amt;
1135
1136 IF (g_level_procedure >= g_current_runtime_level ) THEN
1137
1138 FND_LOG.STRING(g_level_procedure,
1139 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.redefault_assessable_value.END',
1140 'ZX_DEFAULT_AUTOMATION_PKG.redefault_assessable_value(-)'||
1141 ' assessable value: '||x_assessable_value);
1142 END IF;
1143
1144 EXCEPTION
1145 WHEN OTHERS THEN
1146
1147 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1148 x_assessable_value := NULL;
1149
1150 FND_MESSAGE.SET_NAME('ZX','ZX_UNEXPECTED_ERROR');
1151 FND_MSG_PUB.Add;
1152
1153 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1154 FND_LOG.STRING(g_level_unexpected,
1155 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.redefault_assessable_value',
1156 sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80));
1157 FND_LOG.STRING(g_level_unexpected,
1158 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.redefault_assessable_value.END',
1159 'ZX_DEFAULT_AUTOMATION_PKG.redefault_assessable_value(-)');
1160 END IF;
1161
1162 END redefault_assessable_value;
1163
1164 -- This is the defaulting api for PO on-the_fly migration
1165 --
1166 PROCEDURE default_tax_attributes_for_po(
1167 p_trx_line_index IN BINARY_INTEGER,
1168 x_return_status OUT NOCOPY VARCHAR2) IS
1169
1170 l_tax_code_id NUMBER;
1171 l_tax_determine_date DATE;
1172 l_tax_date DATE;
1173 l_tax_point_date DATE;
1174 l_tax_classification_code VARCHAR2(150);
1175 l_effective_from DATE;
1176 l_effective_to DATE;
1177
1178 l_country_code XLE_FIRSTPARTY_INFORMATION_V.COUNTRY%TYPE;
1179 l_fnd_return BOOLEAN;
1180 l_inv_flag VARCHAR2(30);
1181 l_inv_industry VARCHAR2(30);
1182 l_temp_attribute1 mtl_system_items_b.global_attribute1%TYPE;
1183
1184 l_error_buffer VARCHAR2(256);
1185 l_context_info_rec ZX_API_PUB.context_info_rec_type;
1186
1187 BEGIN
1188
1189 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1190
1191 IF (g_level_procedure >= g_current_runtime_level ) THEN
1192 FND_LOG.STRING(g_level_procedure,
1193 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.default_tax_attributes_for_po.BEGIN',
1194 'ZX_DEFAULT_AUTOMATION_PKG.default_tax_attributes_for_po(+)');
1195 END IF;
1196
1197 x_return_status := FND_API.G_RET_STS_SUCCESS;
1198
1199 l_tax_code_id :=
1200 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.historical_tax_code_id(
1201 p_trx_line_index);
1202
1203 IF l_tax_code_id IS NOT NULL THEN
1204
1205
1206 ZX_TDS_APPLICABILITY_DETM_PKG.get_tax_date(
1207 p_trx_line_index,
1208 l_tax_date,
1209 l_tax_determine_date,
1210 l_tax_point_date,
1211 x_return_status);
1212
1213 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1214 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1215 FND_LOG.STRING(g_level_unexpected,
1216 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.default_tax_attributes_for_po',
1217 'Incorrect return_status after calling ' ||
1218 'ZX_TDS_APPLICABILITY_DETM_PKG.get_tax_date()');
1219 FND_LOG.STRING(g_level_unexpected,
1220 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.default_tax_attributes_for_po',
1221 'RETURN_STATUS = ' || x_return_status);
1222 FND_LOG.STRING(g_level_unexpected,
1223 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.default_tax_attributes_for_po.END',
1224 'ZX_DEFAULT_AUTOMATION_PKG.default_tax_attributes_for_po(-)');
1225 END IF;
1226 RETURN;
1227 END IF;
1228
1229
1230 BEGIN
1231 SELECT tax_classification_code, effective_from, effective_to
1232 INTO l_tax_classification_code, l_effective_from, l_effective_to
1233 FROM zx_id_tcc_mapping
1234 WHERE tax_rate_code_id = l_tax_code_id
1235 AND source = 'AP';
1236
1237 EXCEPTION
1238 WHEN NO_DATA_FOUND THEN
1239 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1240 FND_LOG.STRING(g_level_unexpected,
1241 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.default_tax_attributes_for_po',
1242 'Invalid Tax Code Id: No Record Found');
1243 END IF;
1244 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR; -- bug 4893261;
1245 END;
1246
1247 IF l_effective_from <= l_tax_determine_date AND
1248 (l_effective_to >= l_tax_determine_date OR l_effective_to IS NULL)
1249 THEN
1250
1251 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.input_tax_classification_code(
1252 p_trx_line_index) := l_tax_classification_code;
1253
1254 ELSE
1255 IF (g_level_statement >= g_current_runtime_level ) THEN
1256 FND_LOG.STRING(g_level_statement,
1257 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.default_tax_attributes_for_po',
1258 'No Valid Tax Classification Code Found for Tax Code Id: ' ||
1259 l_tax_code_id);
1260 END IF;
1261 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR; -- bug 4893261
1262 RETURN;
1263 END IF;
1264 END IF;
1265
1266 -- get the country code
1267 --
1268 l_country_code := SUBSTR(
1269 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.global_attribute_category(
1270 p_trx_line_index), 4, 2);
1271
1272 -- get if inventory is installed
1273 --
1274 l_fnd_return := FND_INSTALLATION.get(401, 401, l_inv_flag, l_inv_industry);
1275
1276 IF NOT l_fnd_return THEN
1277 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1278 FND_LOG.STRING(g_level_unexpected,
1279 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.default_tax_attributes_for_po',
1280 'Got error after calling FND_INSTALLATION.get');
1281 FND_LOG.STRING(g_level_unexpected,
1282 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.default_tax_attributes_for_po.END',
1283 'ZX_DEFAULT_AUTOMATION_PKG.default_tax_attributes_for_po(-)');
1284 END IF;
1285 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR; -- bug 4893261
1286 RETURN;
1287 END IF;
1288
1289 IF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.global_attribute1(
1290 p_trx_line_index) IS NOT NULL THEN
1291
1292 IF g_level_statement >= G_CURRENT_RUNTIME_LEVEL THEN
1293 FND_LOG.STRING(g_level_statement,
1294 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.default_tax_attributes_for_po',
1295 'Default Product Fisiclassification Code or Product Category');
1296 END IF;
1297
1298 IF l_country_code = 'BR' THEN
1299
1300 IF l_inv_flag = 'I' THEN
1301
1302 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_fisc_classification(
1303 p_trx_line_index) :=
1304 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.global_attribute1(
1305 p_trx_line_index);
1306 ELSE
1307 IF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_category(p_trx_line_index) IS NULL THEN
1308 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_category(
1309 p_trx_line_index) := 'STATISTICAL CODE' || '.' ||
1310 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.global_attribute1(
1311 p_trx_line_index);
1312 END IF;
1313 END IF;
1314 ELSIF l_country_code = 'HU' OR l_country_code = 'PL' THEN
1315
1316 BEGIN
1317 SELECT global_attribute1
1318 INTO l_temp_attribute1
1319 FROM mtl_system_items_b
1320 WHERE inventory_item_id =
1321 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_id(p_trx_line_index)
1322 AND organization_id =
1323 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_org_id(p_trx_line_index);
1324
1325 EXCEPTION
1326 WHEN NO_DATA_FOUND THEN
1327 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1328 FND_LOG.STRING(g_level_unexpected,
1329 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.default_tax_attributes_for_po',
1330 'Not MTL Item Found');
1331 END IF;
1332 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR; -- bug 4893261
1333 END;
1334
1335 IF l_inv_flag = 'I' THEN
1336
1337 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_fisc_classification(
1338 p_trx_line_index) := l_temp_attribute1;
1339 ELSE
1340 IF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_category(p_trx_line_index) IS NULL THEN
1341 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_category(
1342 p_trx_line_index) := 'STATISTICAL CODE' || '.' || l_temp_attribute1;
1343 END IF;
1344 END IF;
1345 END IF;
1346 END IF;
1347
1348 IF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_id(
1349 p_trx_line_index) IS NOT NULL AND
1350 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_org_id(
1351 p_trx_line_index) IS NOT NULL
1352 THEN
1353
1354 IF ( g_level_statement >= G_CURRENT_RUNTIME_LEVEL) THEN
1355 FND_LOG.STRING(g_level_statement,
1356 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.default_tax_attributes_for_po',
1357 'Default Transaction Business _category for Brazil');
1358 END IF;
1359
1360 IF l_country_code = 'BR' THEN
1361
1362 BEGIN
1363 SELECT ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.tax_event_class_code( p_trx_line_index)
1364 || '.' || global_attribute2
1365 INTO ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_business_category(p_trx_line_index)
1366 FROM mtl_system_items_b
1367 WHERE inventory_item_id =
1368 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_id(p_trx_line_index)
1369 AND organization_id =
1370 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_org_id(p_trx_line_index);
1371
1372 EXCEPTION
1373 WHEN NO_DATA_FOUND THEN
1374 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1375 FND_LOG.STRING(g_level_unexpected,
1376 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.default_tax_attributes_for_po',
1377 'Not MTL Item Found');
1378 END IF;
1379 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR; -- bug 4893261
1380 END;
1381 END IF;
1382 END IF;
1383
1384 IF (g_level_procedure >= g_current_runtime_level ) THEN
1385
1386 FND_LOG.STRING(g_level_procedure,
1387 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.default_tax_attributes_for_po.END',
1388 'ZX_DEFAULT_AUTOMATION_PKG.default_tax_attributes_for_po(-)'||x_return_status);
1389 END IF;
1390
1391 EXCEPTION
1392 WHEN OTHERS THEN
1393
1394 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1395
1396 FND_MESSAGE.SET_NAME('ZX','ZX_UNEXPECTED_ERROR');
1397 l_context_info_rec.APPLICATION_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.application_id(p_trx_line_index);
1398 l_context_info_rec.ENTITY_CODE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.entity_code(p_trx_line_index);
1399 l_context_info_rec.EVENT_CLASS_CODE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.event_class_code(p_trx_line_index);
1400 l_context_info_rec.TRX_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_id(p_trx_line_index);
1401 IF ZX_API_PUB.G_DATA_TRANSFER_MODE IS NULL
1402 OR l_context_info_rec.TRX_ID IS NULL
1403 THEN
1404 FND_MSG_PUB.Add;
1405 ELSE
1406 ZX_API_PUB.add_msg( p_context_info_rec =>l_context_info_rec );
1407 END IF;
1408
1409 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1410 FND_LOG.STRING(g_level_unexpected,
1411 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.default_tax_attributes_for_po',
1412 sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80));
1413 FND_LOG.STRING(g_level_unexpected,
1414 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.default_tax_attributes_for_po.END',
1415 'ZX_DEFAULT_AUTOMATION_PKG.default_tax_attributes_for_po(-)');
1416 END IF;
1417
1418 END default_tax_attributes_for_po;
1419
1420 /* This procedure is used to get the default country code based on
1421 tax method for input parameter internal_org_id/legal_entity_id
1422 This procedure is called from Additional Tax Attributes UI when Taxation Country is null
1423 */
1424 PROCEDURE GET_DEFAULT_COUNTRY_CODE
1425 (
1426 p_tax_method_code IN VARCHAR2,
1427 p_internal_org_id IN NUMBER,
1428 p_legal_entity_id IN NUMBER,
1429 x_country_code OUT NOCOPY VARCHAR2,
1430 x_return_status OUT NOCOPY VARCHAR2
1431 )
1432 IS
1433 l_api_name CONSTANT VARCHAR2(30) := 'GET_DEFAULT_COUNTRY_CODE';
1434 l_country_code XLE_FIRSTPARTY_INFORMATION_V.COUNTRY%TYPE;
1435
1436 BEGIN
1437
1438 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1439 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
1440 END IF;
1441
1442 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1443 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1444 ' p_tax_method_code := ' || p_tax_method_code ||
1445 ' p_internal_org_id := ' || to_char(p_internal_org_id) ||
1446 ' p_legal_entity_id := ' || to_char(p_legal_entity_id) );
1447 END IF;
1448
1449 x_return_status := FND_API.G_RET_STS_SUCCESS;
1450
1451 IF p_tax_method_code = 'LTE' THEN
1452
1453 BEGIN
1454 SELECT decode(global_attribute13,'ARGENTINA', 'AR',
1455 'COLOMBIA', 'CO',
1456 'BRAZIL', 'BR',
1457 NULL) INTO l_country_code FROM ar_system_parameters_all
1458 WHERE NVL(org_id, -99) = NVL(p_internal_org_id, -99)
1459 AND global_attribute_category like 'JL%';
1460
1461 EXCEPTION
1462 WHEN NO_DATA_FOUND THEN
1463 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1464 IF (g_level_statement >= g_current_runtime_level ) THEN
1465 FND_LOG.STRING(g_level_statement,
1466 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.GET_DEFAULT_COUNTRY_CODE',
1467 'No COUNTRY_CODE Found For LTE.');
1468 END IF;
1469 WHEN OTHERS THEN
1470 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1471 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1472 FND_LOG.STRING(g_level_unexpected,
1473 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.GET_DEFAULT_COUNTRY_CODE',
1474 sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80));
1475 END IF;
1476 END;
1477
1478 ELSE
1479
1480 BEGIN
1481 SELECT le.country INTO l_country_code
1482 FROM XLE_FIRSTPARTY_INFORMATION_V le
1483 WHERE le.legal_entity_id = p_legal_entity_id;
1484 EXCEPTION
1485 WHEN NO_DATA_FOUND THEN
1486 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1487 IF (g_level_statement >= g_current_runtime_level ) THEN
1488 FND_LOG.STRING(g_level_statement,
1489 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.GET_DEFAULT_COUNTRY_CODE',
1490 'No COUNTRY_CODE Found for EBTax. ');
1491 END IF;
1492 WHEN OTHERS THEN
1493 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1494 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1495 FND_LOG.STRING(g_level_unexpected,
1496 'ZX.PLSQL.ZX_DEFAULT_AUTOMATION_PKG.GET_DEFAULT_COUNTRY_CODE',
1497 sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80));
1498 END IF;
1499 END;
1500
1501 END IF; -- tax_method_code
1502
1503 x_country_code:= l_country_code;
1504
1505 END GET_DEFAULT_COUNTRY_CODE;
1506
1507 END ZX_DEFAULT_AUTOMATION_PKG;