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