[Home] [Help]
PACKAGE BODY: APPS.ZX_API_PUB
Source
1 PACKAGE BODY ZX_API_PUB AS
2 /* $Header: zxifpubsrvcspubb.pls 120.291.12010000.6 2009/01/27 09:27:05 rajessub ship $ */
3
4 /* ======================================================================*
5 | Global Data Types |
6 * ======================================================================*/
7
8 G_PKG_NAME CONSTANT VARCHAR2(30) := 'ZX_API_PUB';
9 G_MSG_UERROR CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR;
10 G_MSG_ERROR CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_ERROR;
11 G_MSG_SUCCESS CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_SUCCESS;
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 G_LINES_PER_FETCH CONSTANT NUMBER := 1000;
16
17 G_CURRENT_RUNTIME_LEVEL CONSTANT NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
18 G_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
19 G_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
20 G_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
21 G_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
22 G_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
23 G_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
24 G_MODULE_NAME CONSTANT VARCHAR2(30) := 'ZX.PLSQL.ZX_API_PUB.';
25
26 TYPE evnt_cls_rec_type is RECORD
27 ( event_class_code VARCHAR2_30_tbl_type,
28 application_id NUMBER_tbl_type,
29 entity_code VARCHAR2_30_tbl_type,
30 internal_organization_id NUMBER_tbl_type,
31 precedence NUMBER_tbl_type
32 );
33
34 l_evnt_cls evnt_cls_rec_type;
35
36 /*Lock the rows for entire document*/
37 CURSOR lock_line_det_factors_for_doc(trx_rec IN event_class_rec_type) IS
38 SELECT *
39 FROM ZX_LINES_DET_FACTORS
40 WHERE application_id = trx_rec.application_id
41 AND entity_code = trx_rec.entity_code
42 AND event_class_code = trx_rec.event_class_code
43 AND trx_id = trx_rec.trx_id
44 FOR UPDATE NOWAIT;
45
46
47 /***********************
48 PRIVATE PROCEDURES
49 ************************/
50 /* =======================================================================*
51 | Overloaded FUNCTION determine_effective_date : LEASE MANAGEMENT |
52 | Created since wasnt sure if the existing determine_effective_Date was |
53 | being used by products. Although cookbook doesnt mention it, didnt want|
54 | take a chance since its too will create chaos should there be invalids |
55 | now after xbuiild1 |
56 * =======================================================================*/
57
58 FUNCTION determine_effective_date
59 ( p_transaction_date IN DATE,
60 p_related_doc_date IN DATE,
61 p_adjusted_doc_date IN DATE,
62 p_provnl_tax_det_date IN DATE
63 ) RETURN DATE IS
64
65 BEGIN
66 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
67 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||'DETERMINE_EFFECTIVE_DATE.BEGIN','ZX_API_PUB: DETERMINE_EFFECTIVE_DATE()+');
68 END IF;
69
70 IF p_related_doc_date IS NOT NULL THEN
71 return(p_related_doc_date);
72 ELSIF p_provnl_tax_det_date IS NOT NULL THEN
73 return(p_provnl_tax_det_date);
74 ELSIF p_adjusted_doc_date IS NOT NULL THEN
75 return(p_adjusted_doc_date);
76 ELSIF p_transaction_date IS NOT NULL THEN
77 return(p_transaction_date);
78 ELSE
79 return(SYSDATE);
80 END IF;
81
82 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
83 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||'DETERMINE_EFFECTIVE_DATE.END','ZX_API_PUB: DETERMINE_EFFECTIVE_DATE()-');
84 END IF;
85
86 END determine_effective_date;
87
88 -- Added following procedure as a fix for Bug 5159017
89
90 /* =============================================================*
91 | PROCEDURE Update total_inc_tax_amt if present |
92 * ============================================================*/
93
94 PROCEDURE update_total_inc_tax_amt (
95 p_event_class_rec IN event_class_rec_type ,
96 x_return_status OUT NOCOPY VARCHAR2
97 )IS
98 l_trx_line_tbl ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl%TYPE;
99 l_count BINARY_INTEGER := 0;
100 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_TOTAL_INC_TAX_AMT';
101 BEGIN
102 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
103 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: update_total_inc_tax_amt(+)');
104 END IF;
105
106 x_return_status := FND_API.G_RET_STS_SUCCESS;
107
108 IF p_event_class_rec.prod_family_grp_code = 'P2P' THEN
109
110 FOR i IN nvl(ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.application_id.FIRST,0) .. nvl(ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.application_id.LAST,-99)
111
112 LOOP
113
114 IF (ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.tax_amt_included_flag(i) = 'Y')
115 AND (ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.total_inc_tax_amt(i) IS NOT NULL) THEN
116 l_count := l_count + 1;
117 l_trx_line_tbl.trx_line_id(l_count) := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_line_id(i);
118 l_trx_line_tbl.trx_level_type(l_count) := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_level_type(i);
119 l_trx_line_tbl.total_inc_tax_amt(l_count) := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.total_inc_tax_amt(i);
120 END IF;
121
122 END LOOP;
123
124 IF l_count > 0 THEN
125
126 FORALL j IN 1 .. l_count
127
128 UPDATE zx_lines_det_factors
129 SET total_inc_tax_amt = l_trx_line_tbl.total_inc_tax_amt(j)
130 WHERE application_id = p_event_class_rec.application_id
131 AND entity_code = p_event_class_rec.entity_code
132 AND event_class_code = p_event_class_rec.event_class_code
133 AND trx_id = p_event_class_rec.trx_id
134 AND trx_line_id = l_trx_line_tbl.trx_line_id(j)
135 AND trx_level_type = l_trx_line_tbl.trx_level_type(j);
136
137 END IF;
138
139 END IF;
140
141 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
142 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
143 'ZX_API_PUB: update_total_inc_tax_amt(-)'||' RETURN_STATUS = ' || x_return_status);
144 END IF;
145
146 EXCEPTION
147 WHEN OTHERS THEN
148 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
149 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
150 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
151 END IF;
152
153 END update_total_inc_tax_amt;
154
155 /* =============================================================*
156 | PROCEDURE set_ptnr_srvc_subscr_flag |
157 | Sets zx_global_structures_pkg.g_ptnr_srvc_subscr_flag. This |
158 | will improve the performance of non-partner implementations |
159 * ============================================================*/
160
161 PROCEDURE set_ptnr_srvc_subscr_flag (
162 p_event_class_rec IN event_class_rec_type ,
163 x_return_status OUT NOCOPY VARCHAR2
164 )IS
165 l_api_name CONSTANT VARCHAR2(30) := 'SET_PTNR_SRVC_SUBSCR_FLAG';
166 BEGIN
167 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
168 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
169 END IF;
170
171 x_return_status := FND_API.G_RET_STS_SUCCESS;
172
173 BEGIN
174 SELECT 'Y'
175 INTO zx_global_structures_pkg.g_ptnr_srvc_subscr_flag
176 FROM zx_srvc_subscriptions zss
177 WHERE zss.enabled_flag = 'Y'
178 AND zss.prod_family_grp_code = nvl(p_event_class_rec.prod_family_grp_code, zss.prod_family_grp_code)
179 AND exists (select zru.regime_usage_id
180 from zx_regimes_usages zru
181 where zru.regime_usage_id = zss.regime_usage_id
182 and zru.first_pty_org_id = nvl(p_event_class_rec.first_pty_org_id, zru.first_pty_org_id))
183 AND rownum = 1;
184 EXCEPTION WHEN OTHERS THEN
185 zx_global_structures_pkg.g_ptnr_srvc_subscr_flag := 'N';
186 END;
187
188 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
189 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
190 'Setting zx_global_structures_pkg.g_ptnr_srvc_subscr_flag to : '|| zx_global_structures_pkg.g_ptnr_srvc_subscr_flag);
191 END IF;
192
193 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
194 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME || ': ' || l_api_name||'(-)');
195 END IF;
196
197 END set_ptnr_srvc_subscr_flag;
198
199
200 /* =============================================================*
201 | PROCEDURE Perform Partner repository synchronization |
202 * ============================================================*/
203
204 PROCEDURE ptnr_sync_calc_tax (
205 p_event_class_rec IN event_class_rec_type ,
206 x_return_status OUT NOCOPY VARCHAR2
207 )IS
208 l_sync_needed BOOLEAN;
209 l_return_status VARCHAR2(1);
210 l_event_class_rec event_class_rec_type;
211 l_sync_with_prvdr_flag ZX_LINES.sync_with_prvdr_flag%type; -- Bug 5131206
212 l_api_name CONSTANT VARCHAR2(30) := 'PTNR_SYNC_CALC_TAX';
213 BEGIN
214 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
215 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
216 END IF;
217
218 x_return_status := FND_API.G_RET_STS_SUCCESS;
219
220 /*Partner Synchronization process*/
221 IF p_event_class_rec.record_flag = 'Y' AND
222 p_event_class_rec.record_for_partners_flag = 'Y' AND
223 nvl(p_event_class_rec.quote_flag,'N') = 'N' THEN -- Bug 5131206
224 FOR l_regime_index IN nvl(ZX_GLOBAL_STRUCTURES_PKG.tax_regime_tbl.FIRST,0)..nvl(ZX_GLOBAL_STRUCTURES_PKG.tax_regime_tbl.LAST,-99)
225 LOOP
226 /* Bug 5131206 */
227 IF ZX_GLOBAL_STRUCTURES_PKG.tax_regime_tbl.EXISTS(l_regime_index) AND
228 ZX_GLOBAL_STRUCTURES_PKG.tax_regime_tbl(l_regime_index).tax_provider_id IS NOT NULL THEN
229 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
230 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
231 'Regime: '|| ZX_GLOBAL_STRUCTURES_PKG.tax_regime_tbl(l_regime_index).tax_regime_code||
232 ', Partner: '|| ZX_GLOBAL_STRUCTURES_PKG.tax_regime_tbl(l_regime_index).tax_provider_id);
233 END IF;
234 BEGIN
235 SELECT sync_with_prvdr_flag
236 INTO l_sync_with_prvdr_flag
237 FROM zx_detail_tax_lines_gt
238 WHERE application_id = p_event_class_rec.application_id
239 AND entity_code = p_event_class_rec.entity_code
240 AND event_class_code = p_event_class_rec.event_class_code
241 AND trx_id = p_event_class_rec.trx_id
242 AND tax_provider_id = ZX_GLOBAL_STRUCTURES_PKG.tax_regime_tbl(l_regime_index).tax_provider_id
243 AND sync_with_prvdr_flag = 'Y'
244 AND rownum = 1;
245 EXCEPTION
246 WHEN OTHERS THEN
247 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
248 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
249 'Others: l_sync_with_prvdr_flag = '|| l_sync_with_prvdr_flag);
250 END IF;
251 l_sync_with_prvdr_flag := 'N';
252 END;
253 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
254 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
255 'l_sync_with_prvdr_flag = '|| l_sync_with_prvdr_flag);
256 END IF;
257 IF l_sync_with_prvdr_flag = 'Y' THEN
258 l_sync_needed := TRUE;
259 ZX_TPI_SERVICES_PKG.call_partner_service(ZX_GLOBAL_STRUCTURES_PKG.tax_regime_tbl(l_regime_index).tax_regime_code,
260 ZX_GLOBAL_STRUCTURES_PKG.tax_regime_tbl(l_regime_index).tax_provider_id,
261 'SYNCHRONIZE_FOR_TAX',
262 p_event_class_rec,
263 l_return_status
264 );
265
266 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
267 x_return_status := l_return_status ;
268 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
269 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TPI_SERVICES_PKG.call_partner_service returned errors');
270 END IF;
271 RETURN;
272 END IF;
273
274 --Calling Post processing for synchronization with partner
275 ZX_TPI_SERVICES_PKG.ptnr_post_proc_sync_tax(ZX_GLOBAL_STRUCTURES_PKG.tax_regime_tbl(l_regime_index).tax_regime_code,
276 ZX_GLOBAL_STRUCTURES_PKG.tax_regime_tbl(l_regime_index).tax_provider_id,
277 p_event_class_rec,
278 l_return_status
279 );
280 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
281 x_return_status := l_return_status ;
282 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
283 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||' :ZX_TPI_SERVICES_PKG.ptnr_post_proc_sync_tax returned errors');
284 END IF;
285 RETURN;
286 END IF;
287
288 END IF; --sync_with_prvdr_flag
289 END IF; -- tax_provider_id is not null
290 END LOOP;
291 END IF;
292
293 /* RE-INITIALISE SYNCHRONIZATION FLAG in ZX_LINES TO 'N' */
294 IF l_sync_needed THEN
295 --Call zx_lines table handler for updating the sync_with_prvdr_flag to N
296
297 ZX_SRVC_TYP_PKG.zx_lines_table_handler(p_event_class_rec => l_event_class_rec,
298 p_event => 'UPDATE',
299 p_tax_regime_code => null,
300 p_provider_id => null,
301 x_return_status => l_return_status
302 );
303
304 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
305 x_return_status := l_return_status;
306 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
307 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||' ZX_SRVC_TYPS.PKG.zx_lines_table_handler returned errors');
308 END IF;
309 RETURN;
310 END IF;
311 END IF; --l_sync_needed
312
313 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
314 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME || ': ' || l_api_name||'(-)');
315 END IF;
316 END ptnr_sync_calc_tax;
317
318
319 /* =============================================================*
320 | PROCEDURE Perform Partner repository bulk synchronization |
321 * ============================================================*/
322
323 PROCEDURE ptnr_bulk_sync_calc_tax (
324 p_event_class_rec IN event_class_rec_type ,
325 x_return_status OUT NOCOPY VARCHAR2
326 )IS
330 BEGIN
327 l_return_status VARCHAR2(1);
328 l_event_class_rec event_class_rec_type;
329 l_api_name CONSTANT VARCHAR2(30) := 'PTNR_BULK_SYNC_CALC_TAX';
331 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
332 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
333 END IF;
334
335 x_return_status := FND_API.G_RET_STS_SUCCESS;
336
337 FOR l_trx_id_index IN nvl(ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl.FIRST,0) .. nvl(ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl.LAST,-99)
338 LOOP
339
340 l_event_class_rec.application_id := ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_trx_id_index).application_id;
341 l_event_class_rec.event_class_code := ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_trx_id_index).event_class_code;
342 l_event_class_rec.trx_id := ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_trx_id_index).trx_id;
343 l_event_class_rec.entity_code := ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_trx_id_index).entity_code;
344 l_event_class_rec.event_class_mapping_id := ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_trx_id_index).event_class_mapping_id;
345 l_event_class_rec.event_type_code := ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_trx_id_index).event_type_code;
346 l_event_class_rec.record_flag := ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_trx_id_index).record_flag;
347 l_event_class_rec.quote_flag := ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_trx_id_index).quote_flag;
348 l_event_class_rec.record_for_partners_flag := ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_trx_id_index).record_for_partners_flag;
349 l_event_class_rec.prod_family_grp_code := ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_trx_id_index).prod_family_grp_code;
350
351 ZX_GLOBAL_STRUCTURES_PKG.tax_regime_tbl := ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_trx_id_index).tax_regime_tbl;
352
353 /*--------------------------------------------+
354 | Call to zx_security.set_security_context |
355 +--------------------------------------------*/
356 ZX_SECURITY.set_security_context(ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_trx_id_index).legal_entity_id,
357 ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_trx_id_index).internal_organization_id,
358 ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_trx_id_index).effective_date,
359 l_return_status
360 );
361
362 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
363 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
364 'application_id: '||to_char(l_event_class_rec.application_id)||
365 ', entity_code: '||l_event_class_rec.entity_code||
366 ', event_class_code: '||l_event_class_rec.event_class_code||
367 ', event_type_code: '||l_event_class_rec.event_type_code||
368 ', trx_id: '||to_char(l_event_class_rec.trx_id)||
369 ', internal_organization_id: '||to_char(l_event_class_rec.internal_organization_id)||
370 ', ledger_id: '||to_char(l_event_class_rec.ledger_id)||
371 ', legal_entity_id: '||to_char(l_event_class_rec.legal_entity_id)||
372 ', trx_date: '||to_char(l_event_class_rec.trx_date)||
373 ', related_document_date: '||to_char(l_event_class_rec.rel_doc_date)||
374 ', provnl_tax_determination_date: '||to_char(l_event_class_rec.provnl_tax_determination_date)||
375 ', trx_currency_code: '||l_event_class_rec.trx_currency_code||
376 ', currency_conversion_type: '||l_event_class_rec.currency_conversion_type||
377 ', currency_conversion_rate: '||to_char(l_event_class_rec.currency_conversion_rate)||
378 ', currency_conversion_date: '||to_char(l_event_class_rec.currency_conversion_date)||
379 ', rounding_ship_to_party_id: '||to_char(l_event_class_rec.rounding_ship_to_party_id)||
380 ', rounding_ship_from_party_id: '||to_char(l_event_class_rec.rounding_ship_from_party_id)||
381 ', rounding_bill_to_party_id: '||to_char(l_event_class_rec.rounding_bill_to_party_id)||
382 ', rounding_bill_from_party_id: '||to_char(l_event_class_rec.rounding_bill_from_party_id)||
383 ', rndg_ship_to_party_site_id: '||to_char(l_event_class_rec.rndg_ship_to_party_site_id)||
384 ', rndg_ship_from_party_site_id: '||to_char(l_event_class_rec.rndg_ship_from_party_site_id)||
385 ', rndg_bill_to_party_site_id: '||to_char(l_event_class_rec.rndg_bill_to_party_site_id)||
386 ', rndg_bill_from_party_site_id: '||to_char(l_event_class_rec.rndg_bill_from_party_site_id)||
387 ', quote_flag: '||l_event_class_rec.quote_flag ||
388 ', establishment_id: '||to_char(l_event_class_rec.establishment_id)||
389 ', icx_session_id: '||to_char(l_event_class_rec.icx_session_id));
390 END IF;
391
392 ptnr_sync_calc_tax ( p_event_class_rec => l_event_class_rec ,
393 x_return_status => l_return_status
394 );
395 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
396 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
397 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TRL_PUB_PKG.manage_taxlines returned errors');
398 END IF;
399 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
400 RAISE FND_API.G_EXC_ERROR;
404 END IF;
401 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
402 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
403 END IF;
405
406 END LOOP;
407 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
408 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME || ': ' || l_api_name||'(-)');
409 END IF;
410 END ptnr_bulk_sync_calc_tax;
411
412
413 PROCEDURE calculate_tax_pvt
414 ( p_transaction_header_rec IN transaction_header_rec_type,
415 p_api_name IN VARCHAR2,
416 p_event_id IN NUMBER,
417 p_index IN NUMBER,
418 p_api_version IN NUMBER,
419 p_init_msg_list IN VARCHAR2,
420 p_commit IN VARCHAR2,
421 p_validation_level IN NUMBER,
422 x_return_status IN OUT NOCOPY VARCHAR2,
423 x_msg_count IN OUT NOCOPY NUMBER,
424 x_msg_data IN OUT NOCOPY VARCHAR2
425 ) IS
426 l_sync_needed BOOLEAN;
427 l_return_status VARCHAR2(30);
428 l_event_class_rec event_class_rec_type;
429 l_record_tax_lines VARCHAR2(1);
430 l_error_buffer VARCHAR2(1000);
431
432 BEGIN
433 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
434 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||p_api_name||'.BEGIN','ZX_API_PUB: calculate_tax_pvt()+');
435 END IF;
436 /*------------------------------------------------------+
437 | Copy to Event Class Record |
438 +------------------------------------------------------*/
439 l_event_class_rec.EVENT_ID := p_event_id;
440 l_event_class_rec.INTERNAL_ORGANIZATION_ID := p_transaction_header_rec.INTERNAL_ORGANIZATION_ID(p_index);
441 l_event_class_rec.APPLICATION_ID := p_transaction_header_rec.APPLICATION_ID(p_index);
442 l_event_class_rec.ENTITY_CODE := p_transaction_header_rec.ENTITY_CODE(p_index);
443 l_event_class_rec.EVENT_CLASS_CODE := p_transaction_header_rec.EVENT_CLASS_CODE(p_index);
444 l_event_class_rec.ICX_SESSION_ID := p_transaction_header_rec.ICX_SESSION_ID(p_index);
445 l_event_class_rec.QUOTE_FLAG := nvl(p_transaction_header_rec.QUOTE_FLAG(p_index),'N');
446
447 /*
448 l_event_class_rec.LEGAL_ENTITY_ID := p_transaction_header_rec.LEGAL_ENTITY_ID(p_index);
449 l_event_class_rec.LEDGER_ID := p_transaction_header_rec.LEDGER_ID(p_index);
450 l_event_class_rec.EVENT_TYPE_CODE := p_transaction_header_rec.EVENT_TYPE_CODE(p_index);
451 l_event_class_rec.CTRL_TOTAL_HDR_TX_AMT := p_transaction_header_rec.CTRL_TOTAL_HDR_TX_AMT(p_index);
452 l_event_class_rec.TRX_ID := p_transaction_header_rec.TRX_ID(p_index);
453 l_event_class_rec.TRX_DATE := p_transaction_header_rec.TRX_DATE(p_index);
454 l_event_class_rec.REL_DOC_DATE := p_transaction_header_rec.REL_DOC_DATE(p_index);
455 l_event_class_rec.PROVNL_TAX_DETERMINATION_DATE:= p_transaction_header_rec.PROVNL_TAX_DETERMINATION_DATE(p_index);
456 l_event_class_rec.TRX_CURRENCY_CODE := p_transaction_header_rec.TRX_CURRENCY_CODE(p_index);
457 l_event_class_rec.PRECISION := p_transaction_header_rec.PRECISION(p_index);
458 l_event_class_rec.CURRENCY_CONVERSION_TYPE := p_transaction_header_rec.CURRENCY_CONVERSION_TYPE(p_index);
462 l_event_class_rec.ROUNDING_SHIP_FROM_PARTY_ID := p_transaction_header_rec.ROUNDING_SHIP_FROM_PARTY_ID(p_index);
459 l_event_class_rec.CURRENCY_CONVERSION_RATE := p_transaction_header_rec.CURRENCY_CONVERSION_RATE(p_index);
460 l_event_class_rec.CURRENCY_CONVERSION_DATE := p_transaction_header_rec.CURRENCY_CONVERSION_DATE(p_index);
461 l_event_class_rec.ROUNDING_SHIP_TO_PARTY_ID := p_transaction_header_rec.ROUNDING_SHIP_TO_PARTY_ID(p_index);
463 l_event_class_rec.ROUNDING_BILL_TO_PARTY_ID := p_transaction_header_rec.ROUNDING_BILL_TO_PARTY_ID(p_index);
464 l_event_class_rec.ROUNDING_BILL_FROM_PARTY_ID := p_transaction_header_rec.ROUNDING_BILL_FROM_PARTY_ID(p_index);
465 l_event_class_rec.RNDG_SHIP_TO_PARTY_SITE_ID := p_transaction_header_rec.RNDG_SHIP_TO_PARTY_SITE_ID(p_index);
466 l_event_class_rec.RNDG_SHIP_FROM_PARTY_SITE_ID := p_transaction_header_rec.RNDG_SHIP_FROM_PARTY_SITE_ID(p_index);
467 l_event_class_rec.RNDG_BILL_TO_PARTY_SITE_ID := p_transaction_header_rec.RNDG_BILL_TO_PARTY_SITE_ID(p_index);
468 l_event_class_rec.RNDG_BILL_FROM_PARTY_SITE_ID := p_transaction_header_rec.RNDG_BILL_FROM_PARTY_SITE_ID(p_index);
469 l_event_class_rec.ESTABLISHMENT_ID := p_transaction_header_rec.ESTABLISHMENT_ID(p_index);
470
471 */
472
473 IF l_event_class_rec.QUOTE_FLAG = 'Y' and
474 l_event_class_rec.ICX_SESSION_ID is not null THEN
475 ZX_SECURITY.G_ICX_SESSION_ID := l_event_class_rec.ICX_SESSION_ID;
476 --dbms_session.set_context('my_ctx','SESSIONID',to_char(ZX_SECURITY.G_ICX_SESSION_ID));
477 ZX_SECURITY.name_value('SESSIONID',to_char(ZX_SECURITY.G_ICX_SESSION_ID));
478
479 END IF;
480
481 -- Bug 4948674: Following Delete will not work when there are different dbms sessions used for the same user
482 -- session when call originates from a FWK UI. Moved the following Delete logic to the end of this API for O2C
483 -- products and to the end of determine_recovery API for P2P products.
484
485 --If the user calls calculate_tax twice using same db session for the same icx session, then we will have
486 -- un-deleted data in the Det Factors table for the previousc all. So, we need to clean it up first before
487 -- starting to process the input lines of the new call.We should at first always attempt to remove any rows
488 --sitting in Det Factors table for that icx session
489 /* IF l_event_class_rec.ICX_SESSION_ID is not null THEN
490 DELETE from zx_lines_det_factors
491 WHERE application_id = l_event_class_rec.application_id and
492 entity_code = l_event_class_rec.entity_code and
493 event_class_code = l_event_class_rec.event_class_code and
494 trx_id = l_event_class_rec.trx_id;
495 END IF;
496 */
497
498 /*-------------------------------------------------------+
499 |Lock the tax lines table to prevent another |
500 |user from updating same line via the forms/UIs while |
501 |calculation is in progress |
502 +------------------------------------------------------*/
503 /*
504
505 IF l_event_class_rec.tax_event_type_code ='UPDATE' THEN
506
507 ZX_TRL_DETAIL_OVERRIDE_PKG.lock_dtl_tax_lines_for_doc(p_application_id => l_event_class_rec.application_id,
508 p_entity_code => l_event_class_rec.entity_code,
509 p_event_class_code => l_event_class_rec.event_class_code,
510 p_trx_id => l_event_class_rec.trx_id,
511 x_return_status => l_return_status,
512 x_error_buffer => l_error_buffer
513 );
514
515 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
516 x_return_status := l_return_status;
517 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
518 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||p_api_name,
519 ' RETURN_STATUS = ' || x_return_status);
520 END IF;
521 RETURN;
522 END IF;
523
524 ZX_TRL_SUMMARY_OVERRIDE_PKG.lock_summ_tax_lines_for_doc(p_application_id => l_event_class_rec.application_id,
525 p_entity_code => l_event_class_rec.entity_code,
526 p_event_class_code => l_event_class_rec.event_class_code,
527 p_trx_id => l_event_class_rec.trx_id,
528 x_return_status => l_return_status,
529 x_error_buffer => l_error_buffer
530 );
531 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
532 x_return_status := l_return_status;
533 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
534 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||p_api_name,
535 ' RETURN_STATUS = ' || x_return_status);
536 END IF;
537 RETURN;
538 END IF;
539
540 ZX_TRL_DISTRIBUTIONS_PKG.lock_rec_nrec_dist_for_doc (p_application_id => l_event_class_rec.application_id,
541 p_entity_code => l_event_class_rec.entity_code,
542 p_event_class_code => l_event_class_rec.event_class_code,
546 );
543 p_trx_id => l_event_class_rec.trx_id,
544 x_return_status => l_return_status,
545 x_error_buffer => l_error_buffer
547 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
548 x_return_status := l_return_status;
549 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
550 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||p_api_name,
551 ' RETURN_STATUS = ' || x_return_status);
552 END IF;
553 RETURN;
554 END IF;
555 END IF; --tax event type ='UPDATE'
556 */
557
558
559 /*------------------------------------------------------+
560 | Validate and Initializate parameters for Calculate |
561 | tax |
562 +------------------------------------------------------*/
563
564 ZX_GLOBAL_STRUCTURES_PKG.g_party_tax_prof_id_info_tbl.DELETE;
565 ZX_VALID_INIT_PARAMS_PKG.calculate_tax(p_event_class_rec => l_event_class_rec,
566 x_return_status => l_return_status
567 );
568
569 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
570 x_return_status := l_return_status ;
571 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
572 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||p_api_name,G_PKG_NAME||': '||p_api_name||':ZX_VALID_INIT_PARAMS_PKG.calculate_tax returned errors');
573 END IF;
574 RETURN;
575 END IF;
576
577 /* ===============================================================================*
578 |Initialize the global structures/global temp tables owned by TDM at line level |
579 * =============================================================================*/
580 ZX_TDS_CALC_SERVICES_PUB_PKG.initialize (l_event_class_rec ,
581 'HEADER',
582 l_return_status
583 );
584
585 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
586 x_return_status := l_return_status;
587 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
588 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||p_api_name,G_PKG_NAME||': '||p_api_name||':ZX_TDS_CALC_SERVICES_PUB_PKG.initialize returned errors');
589 END IF;
590 RETURN;
591 END IF;
592
593
594 /*----------------------------------------------------+
595 |Call to service type Calculate Tax |
596 +---------------------------------------------------*/
597 ZX_SRVC_TYP_PKG.calculate_tax(p_event_class_rec => l_event_class_rec,
598 x_return_status => l_return_status
599 );
600
601 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
602 x_return_status := l_return_status ;
603 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
604 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||p_api_name,G_PKG_NAME||': '||p_api_name||':ZX_SRVC_TYP_PKG.calculate_tax returned errors');
605 END IF;
606 RETURN;
607 END IF;
608
609
610 /*---------------------------------------------------------+
611 | Delete from the global structures for every loop on the |
612 | header document so that there are no hanging/redundant |
613 | records sitting there |
614 +--------------------------------------------------------*/
615 --Calling routine to delete the global structures
616 ZX_GLOBAL_STRUCTURES_PKG.delete_trx_line_dist_tbl;
617
618 --Also delete the location caching global structures
619 --** execute the following code only when tax partners are used.
620 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.EVENT_CLASS_MAPPING_ID.DELETE;
624 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.LOCATION_TYPE.DELETE;
621 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.TRX_ID.DELETE;
622 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.TRX_LINE_ID.DELETE;
623 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.TRX_LEVEL_TYPE.DELETE;
625 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.LOCATION_TABLE_NAME.DELETE;
626 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.LOCATION_ID.DELETE;
627 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.GEOGRAPHY_TYPE.DELETE;
628 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.GEOGRAPHY_VALUE.DELETE;
629 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.GEOGRAPHY_ID.DELETE;
630 ZX_GLOBAL_STRUCTURES_PKG.LOCATION_HASH_TBL.DELETE;
631
632 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
633 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||p_api_name||'.END','ZX_API_PUB: '||'calculate_tax_pvt'||'()-');
634 END IF;
635 END calculate_tax_pvt;
636
637
638 PROCEDURE import_tax_pvt
639 ( p_evnt_cls IN evnt_cls_rec_type,
640 p_api_name IN VARCHAR2,
641 p_event_id IN NUMBER,
642 p_index IN NUMBER,
643 p_api_version IN NUMBER,
644 p_init_msg_list IN VARCHAR2,
645 p_commit IN VARCHAR2,
646 p_validation_level IN NUMBER,
647 x_return_status IN OUT NOCOPY VARCHAR2,
648 x_msg_count IN OUT NOCOPY NUMBER,
649 x_msg_data IN OUT NOCOPY VARCHAR2
650 ) IS
651 l_sync_needed BOOLEAN;
652 l_return_status VARCHAR2(30);
653 l_event_class_rec event_class_rec_type;
654
655 BEGIN
656 /*------------------------------------------------------+
657 | Copy to Event Class Record |
658 +------------------------------------------------------*/
659 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
660 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||p_api_name||'.BEGIN','ZX_API_PUB: import_tax_pvt()+');
661 END IF;
662
663 l_event_class_rec.EVENT_ID := p_event_id;
664 l_event_class_rec.INTERNAL_ORGANIZATION_ID := p_evnt_cls.INTERNAL_ORGANIZATION_ID(p_index);
665 l_event_class_rec.APPLICATION_ID := p_evnt_cls.APPLICATION_ID(p_index);
666 l_event_class_rec.ENTITY_CODE := p_evnt_cls.ENTITY_CODE(p_index);
667 l_event_class_rec.EVENT_CLASS_CODE := p_evnt_cls.EVENT_CLASS_CODE(p_index);
668
669
670 /*------------------------------------------------------+
671 | Validate Input Paramerters and Fetch Tax Options |
672 +------------------------------------------------------*/
673
674 ZX_VALID_INIT_PARAMS_PKG.import_document_with_tax(p_event_class_rec =>l_event_class_rec,
675 x_return_status =>l_return_status
676 );
677
678 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
679 x_return_status := l_return_status;
680 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
681 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||p_api_name,G_PKG_NAME||': '||p_api_name||':ZX_VALID_INIT_PARAMS_PKG.import_document_with_tax returned errors');
682 END IF;
683 RETURN;
684 END IF;
685
686
687 /*--------------------------------------------------+
688 | Call Service Type Import Document with Tax |
689 +--------------------------------------------------*/
690
691 ZX_SRVC_TYP_PKG.import(p_event_class_rec => l_event_class_rec,
692 x_return_status => l_return_status
693 );
694
695 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
696 x_return_status := l_return_status;
697 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
698 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||p_api_name,G_PKG_NAME||': '||p_api_name||':ZX_SRVC_TYP_PKG.import returned errors');
699 END IF;
700 RETURN;
701 END IF;
702
703
704 /*---------------------------------------------------------+
705 | Delete from the global structures for every loop on the |
706 | header document so that there are no hanging/redundant |
707 | records sitting there |
708 +--------------------------------------------------------*/
709 --Calling routine to delete the global structures
710 ZX_GLOBAL_STRUCTURES_PKG.delete_trx_line_dist_tbl;
711
712 --Also delete the location caching global structures
713 --** Execute this code only when partners are used
714 IF zx_global_structures_pkg.g_ptnr_srvc_subscr_flag = 'Y' THEN
715 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.EVENT_CLASS_MAPPING_ID.DELETE;
716 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.TRX_ID.DELETE;
717 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.TRX_LINE_ID.DELETE;
718 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.TRX_LEVEL_TYPE.DELETE;
719 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.LOCATION_TYPE.DELETE;
720 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.LOCATION_TABLE_NAME.DELETE;
721 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.LOCATION_ID.DELETE;
722 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.GEOGRAPHY_TYPE.DELETE;
726
723 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.GEOGRAPHY_VALUE.DELETE;
724 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.GEOGRAPHY_ID.DELETE;
725 ZX_GLOBAL_STRUCTURES_PKG.LOCATION_HASH_TBL.DELETE;
727 ZX_GLOBAL_STRUCTURES_PKG.g_party_tax_prof_id_info_tbl.DELETE;
728 END IF;
729
730 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
731 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||p_api_name||'.END','ZX_API_PUB: '||'import_tax_pvt'||'()-');
732 END IF;
733
734 END import_tax_pvt;
735
736 /* ======================================================================*
737 | PROCEDURE calculate_tax : Calculates and records tax info |
738 | There exists a pl/sql version of same API for performance |
739 | This API also supports processing for multiple event classes |
740 | GTT involved : ZX_TRX_HEADERS_GT, ZX_TRANSACTION_LINES_GT |
741 * ======================================================================*/
742
743 PROCEDURE Calculate_tax
744 ( p_api_version IN NUMBER,
745 p_init_msg_list IN VARCHAR2,
746 p_commit IN VARCHAR2,
747 p_validation_level IN NUMBER,
748 x_return_status OUT NOCOPY VARCHAR2,
749 x_msg_count OUT NOCOPY NUMBER,
750 x_msg_data OUT NOCOPY VARCHAR2
751 ) IS
752
753 l_api_name CONSTANT VARCHAR2(30) := 'CALCULATE_TAX';
754 l_api_version CONSTANT NUMBER := 1.0;
755 l_return_status VARCHAR2(30);
756 l_event_id NUMBER;
757 l_transaction_header_rec transaction_header_rec_type;
758 l_context_info_rec context_info_rec_type;
759 l_index BINARY_INTEGER;
760 l_precedence NUMBER_tbl_type;
761 l_init_msg_list VARCHAR2(1);
762 l_record_tax_lines VARCHAR2(1);
763 l_ptnr_index NUMBER;
764
765 CURSOR common_header_info IS
766 SELECT
767 INTERNAL_ORGANIZATION_ID,
768 APPLICATION_ID,
769 -- ENTITY_CODE,
770 -- EVENT_CLASS_CODE,
771 QUOTE_FLAG,
772 ICX_SESSION_ID
773 FROM ZX_TRX_HEADERS_GT
774 WHERE rownum = 1;
775
776 CURSOR event_classes IS
777 SELECT distinct
778 header.event_class_code,
779 header.application_id,
780 header.entity_code,
781 header.internal_organization_id,
782 evntmap.processing_precedence
783 FROM ZX_EVNT_CLS_MAPPINGS evntmap,
784 ZX_TRX_HEADERS_GT header
785 WHERE header.application_id = evntmap.application_id
786 AND header.entity_code = evntmap.entity_code
787 AND header.event_class_code = evntmap.event_class_code
788 ORDER BY evntmap.processing_precedence;
789
790 CURSOR c_headers is
791 SELECT APPLICATION_ID,
792 ENTITY_CODE,
793 EVENT_CLASS_CODE,
794 TRX_ID,
795 ICX_SESSION_ID,
796 EVENT_TYPE_CODE,
797 TAX_EVENT_TYPE_CODE,
798 DOC_EVENT_STATUS
799 FROM ZX_TRX_HEADERS_GT;
800
801 l_application_id_tbl NUMBER_tbl_type;
802 l_entity_code_tbl VARCHAR2_30_tbl_type;
803 l_event_class_code_tbl VARCHAR2_30_tbl_type;
804 l_trx_id_tbl NUMBER_tbl_type;
805 l_icx_session_id_tbl NUMBER_tbl_type;
806 l_event_type_code_tbl VARCHAR2_30_tbl_type;
807 l_tax_event_type_code_tbl VARCHAR2_30_tbl_type;
808 l_doc_event_status_tbl VARCHAR2_30_tbl_type;
809
810 BEGIN
811 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
812 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: CALCULATE_TAX()+');
813 END IF;
814
815 /*--------------------------------------------------+
816 | Standard start of API savepoint |
817 +--------------------------------------------------*/
818 SAVEPOINT Calculate_tax_PVT;
819
820 /*--------------------------------------------------+
821 | Standard call to check for call compatibility |
822 +--------------------------------------------------*/
823
824 IF NOT FND_API.Compatible_API_Call(
825 l_api_version,
826 p_api_version,
827 l_api_name,
828 G_PKG_NAME
829 ) THEN
830 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
831 END IF;
832
833
834 /*--------------------------------------------------------------+
838 l_init_msg_list := FND_API.G_FALSE;
835 | Initialize message list if p_init_msg_list is set to TRUE |
836 +--------------------------------------------------------------*/
837 IF p_init_msg_list is null THEN
839 ELSE
840 l_init_msg_list := p_init_msg_list;
841 END IF;
842
843 IF FND_API.to_Boolean(l_init_msg_list) THEN
844 FND_MSG_PUB.initialize;
845 END IF;
846
847
848 /*-----------------------------------------+
849 | Initialize return status to SUCCESS |
850 +-----------------------------------------*/
851
852 x_return_status := FND_API.G_RET_STS_SUCCESS;
853
854 /*-----------------------------------------+
855 | Populate Global Variable |
856 +-----------------------------------------*/
857
858 G_PUB_SRVC := l_api_name;
859 G_PUB_CALLING_SRVC := l_api_name;
860 G_DATA_TRANSFER_MODE := 'TAB';
861 G_EXTERNAL_API_CALL := 'N';
862
863 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
864 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
865 'Data Transfer Mode: '||G_DATA_TRANSFER_MODE);
866 END IF;
867
868 --Call TDS process to reset the session for previous calculate tax calls if any
869 ZX_TDS_CALC_SERVICES_PUB_PKG.initialize (p_event_class_rec => NULL,
870 p_init_level => 'SESSION',
871 x_return_status => l_return_status
872 );
873
874 set_ptnr_srvc_subscr_flag (p_event_class_rec => NULL,
875 x_return_status => l_return_status
876 );
877 /*---------------------------------------------------------+
878 | Initialize the trx line app regimes table for every doc|
879 +--------------------------------------------------------*/
880
881 IF zx_global_structures_pkg.g_ptnr_srvc_subscr_flag = 'Y' THEN
882 ZX_GLOBAL_STRUCTURES_PKG.init_trx_line_app_regime_tbl;
883 END IF;
884
885 ZX_GLOBAL_STRUCTURES_PKG.LOC_GEOGRAPHY_INFO_TBL.DELETE;
886 ZX_GLOBAL_STRUCTURES_PKG.g_registration_info_tbl.DELETE;
887 /*-----------------------------------------+
888 | Get the event id for the whole document |
889 +-----------------------------------------*/
890 select ZX_LINES_DET_FACTORS_S.nextval
891 into l_event_id
892 from dual;
893
894 OPEN event_classes;
895 LOOP
896 FETCH event_classes BULK COLLECT INTO
897 l_evnt_cls.event_class_code,
898 l_evnt_cls.application_id,
899 l_evnt_cls.entity_code,
900 l_evnt_cls.internal_organization_id,
901 l_evnt_cls.precedence
902 LIMIT G_LINES_PER_FETCH;
903 EXIT WHEN event_classes%NOTFOUND;
904 END LOOP;
905 CLOSE event_classes;
906
907 --Event classes such as SALES_TRANSACTION_TAX_QUOTE/PURCHASE_TRANSACTION_TAX_QUOTE
908 --are not seeded in zx_evnt_cls_mappings so cursor event classes will not
909 --return any rows for such event classes passed.
910 IF l_evnt_cls.event_class_code.LAST is null THEN
911 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
912 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
913 'Event class information does not exist - indicates SALES_TRANSACTION_TAX_QUOTE/PURCHASE_TRANSACTION_TAX_QUOTE');
914 END IF;
915
916 select event_class_code,
917 application_id,
918 entity_code,
919 internal_organization_id
920 into l_evnt_cls.event_class_code(1),
921 l_evnt_cls.application_id(1),
922 l_evnt_cls.entity_code(1),
923 l_evnt_cls.internal_organization_id(1)
924 from ZX_TRX_HEADERS_GT
925 where rownum=1;
926 END IF;
927
928 -- added for bug fix 5417887
929
930 -- Assumption for multiple docs: application_id, event class and OU
931 -- will be same for all transactions in a call.
932
933 OPEN common_header_info;
934 FETCH common_header_info BULK COLLECT INTO
935 l_transaction_header_rec.INTERNAL_ORGANIZATION_ID,
936 l_transaction_header_rec.APPLICATION_ID,
937 -- l_transaction_header_rec.ENTITY_CODE,
938 -- l_transaction_header_rec.EVENT_CLASS_CODE,
939 l_transaction_header_rec.QUOTE_FLAG,
940 l_transaction_header_rec.ICX_SESSION_ID;
941
942 CLOSE common_header_info;
943
944 FOR i IN 1..nvl(l_evnt_cls.event_class_code.LAST,0)
945 LOOP
946
947 IF l_evnt_cls.event_class_code(i) = 'CREDIT_MEMO' THEN
948 ZX_GLOBAL_STRUCTURES_PKG.g_credit_memo_exists_flg := 'Y';
949 END IF;
950
951 -- Bug 5704675- need to use index here to avoid entity_code
952 -- and event_class_code in l_transaction_header_rec always
953 -- using the entity_code and event_class_code from the 1st
954 -- record of l_evnt_cls
955 --
959 --BEGIN
956 l_transaction_header_rec.ENTITY_CODE(1) := l_evnt_cls.entity_code(i);
957 l_transaction_header_rec.EVENT_CLASS_CODE(1) := l_evnt_cls.event_class_code(i);
958
960 -- SAVEPOINT Calculate_Tax_Doc_Norel_PVT;
961 calculate_tax_pvt (l_transaction_header_rec,
962 l_api_name,
963 l_event_id,
964 1,
965 p_api_version,
966 l_init_msg_list,
967 p_commit,
968 p_validation_level,
969 l_return_status,
970 x_msg_count,
971 x_msg_data
972 );
973
974 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
975 RAISE FND_API.G_EXC_ERROR;
976 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
977 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
978 END IF;
979
980 /*
981 EXCEPTION
982 WHEN FND_API.G_EXC_ERROR THEN
983 -- ROLLBACK TO Calculate_Tax_Doc_Norel_PVT;
984 x_return_status := FND_API.G_RET_STS_ERROR ;
985 --Call API to dump into zx_errors_gt
986 IF ( errors_tbl.application_id.LAST is NOT NULL) THEN
987 DUMP_MSG;
988 END IF;
989 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
990 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
991 END IF;
992 END;
993 */
994
995
996 -- bug fix 5417887 begin 17-Aug-2006
997 -- Following code for tail end services/TRL/ptnr sync code, is moved from calculte_tax_pvt
998 -- and should be handled for each event_class_code. At present, all product integrations call etax
999 -- for one event class at a time, hence we put these processed out of the event class loop.
1000 -- In the future, if there are cases that etax handle multiple event_class batch, we need to
1001 -- revisist the following code and change accordingly.
1002
1003 -- For furture LTE features, there are could cases that related documents was imported together
1004 -- with original document. For this case, we need to make sure the tail end service for the original
1005 -- docs must be handled before the calculation process of the related docs.
1006
1007 /*-----------------------------------------------------+
1008 | Call to eTax service Dump Detail Tax Lines Into GT|
1009 +-----------------------------------------------------*/
1010
1011 --IF nvl(l_event_class_rec.PROCESS_FOR_APPLICABILITY_FLAG,'Y') = 'Y' THEN
1012 ZX_TDS_CALC_SERVICES_PUB_PKG.dump_detail_tax_lines_into_gt(x_return_status => l_return_status);
1013
1014
1015 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1016 x_return_status := l_return_status;
1017 DUMP_MSG;
1018 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1019 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TDS_CALC_SERVICES_PUB_PKG.dump_detail_tax_lines_into_gt returned errors');
1020 END IF;
1024 /*--------------------------------------------------+
1021 RETURN;
1022 END IF;
1023
1025 | Call to eTax Service Tax Lines Determination |
1026 +--------------------------------------------------*/
1027 ZX_TDS_CALC_SERVICES_PUB_PKG.tax_line_determination(p_event_class_rec => zx_global_structures_pkg.g_event_class_rec,
1028 x_return_status => l_return_status
1029 );
1030
1031 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1032 x_return_status := l_return_status ;
1033 DUMP_MSG;
1034 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1035 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TDS_CALC_SERVICES_PUB_PKG.tax_line_determination returned errors');
1036 END IF;
1037 RETURN;
1038 END IF;
1039
1040 -- Replace the below call with a merge statement
1041
1042 /*--------------------------------------------------+
1043 | Call to Update Total Inclusive Tax Amount |
1044 +--------------------------------------------------*/
1045
1046 /* Replace the call to update_total_inc_tax_amt with the merge statement below
1047
1048 update_total_inc_tax_amt(p_event_class_rec => zx_global_structures_pkg.g_event_class_rec,
1049 x_return_status => l_return_status
1050 );
1051
1052 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1053 x_return_status := l_return_status ;
1054 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1055 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||p_api_name,G_PKG_NAME||': '||p_api_name||':update_total_inc_tax_amt returned errors');
1056 END IF;
1057 RETURN;
1058 END IF;
1059 */
1060
1061 IF zx_global_structures_pkg.g_event_class_rec.prod_family_grp_code = 'P2P' THEN
1062 MERGE INTO ZX_LINES_DET_FACTORS lines_dt
1063 USING (SELECT
1064 application_id,
1065 entity_code,
1066 event_class_code,
1067 trx_id,
1068 trx_level_type,
1069 trx_line_id,
1070 sum(tax_amt) incl_tax_amt
1071 FROM
1072 zx_detail_tax_lines_gt TaxLines
1073 WHERE
1074 tax_amt_included_flag = 'Y'
1075 -- AND mrc_tax_line_flag = 'N'
1076 AND cancel_flag <> 'Y'
1077 GROUP BY
1078 application_id,
1079 entity_code,
1080 event_class_code,
1081 trx_id,
1082 trx_level_type,
1083 trx_line_id
1084 ) Temp
1085 ON ( lines_dt.tax_amt_included_flag = 'Y'
1086 --AND lines_dt.total_inc_tax_amt is NULL
1087 AND lines_dt.application_id = temp.application_id
1088 AND lines_dt.entity_code = temp.entity_code
1089 AND lines_dt.event_class_code = temp.event_class_code
1090 AND lines_dt.trx_id = temp.trx_id
1091 AND Lines_dt.trx_level_type = temp.trx_level_type
1092 AND Lines_dt.trx_line_id = temp.trx_line_id
1093 )
1094 WHEN MATCHED THEN
1095 UPDATE SET
1096 total_inc_tax_amt = incl_tax_amt;
1097
1098 END IF;
1099
1100
1101 /*--------------------------------------------------+
1102 | Call to eTax Service Manage Tax Lines |
1103 +--------------------------------------------------*/
1104 --Rounding and Summarizing Tax Lines for Transaction
1105 /*Bug 3649502 - Check for record flag before calling TRR service*/
1106 /*Bug 4232918 - If record flag =Y and quote flag =Y then do not
1107 record in zx_lines */
1108 l_record_tax_lines := ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec.record_flag;
1109 IF ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec.record_flag = 'Y' and
1110 ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec.quote_flag = 'Y' THEN
1111 l_record_tax_lines := 'N';
1112 END IF;
1113 IF l_record_tax_lines = 'Y' THEN
1114 ZX_TRL_PUB_PKG.manage_taxlines(p_event_class_rec =>zx_global_structures_pkg.g_event_class_rec,
1115 x_return_status =>l_return_status
1116 );
1117 END IF;
1118
1119 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1120 x_return_status := l_return_status ;
1121 DUMP_MSG;
1122 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1123 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TRL_PUB_PKG.manage_taxlines returned errors');
1124 END IF;
1125 RETURN;
1126 END IF;
1127 --END IF; --process_applicability_flag is 'Y'
1128
1129 /*******************************PARTNER CODE START****************************/
1130 -- check with Santosh for a compatible API
1131 IF zx_global_structures_pkg.g_ptnr_srvc_subscr_flag = 'Y' THEN
1132 ptnr_bulk_sync_calc_tax ( p_event_class_rec => zx_global_structures_pkg.g_event_class_rec ,
1133 x_return_status => l_return_status
1134 );
1135 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1136 x_return_status := l_return_status;
1137 DUMP_MSG;
1138 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1139 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ptnr_bulk_sync_calc_tax returned errors');
1140 END IF;
1141 RETURN;
1142 END IF;
1143 END IF;
1144
1145 /*-----------------------------------------------------------+
1146 | Do not record lines based on following condition |
1147 +-----------------------------------------------------------*/
1148 IF (ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec.RECORD_FLAG = 'Y' and
1149 ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec.quote_flag = 'Y' and
1150 ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec.icx_session_id is null)
1151 OR
1152 (ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec.RECORD_FLAG = 'N' and
1153 ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec.quote_flag = 'Y' and
1154 ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec.intgrtn_det_factors_ui_flag = 'N' and
1155 ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec.icx_session_id is null)
1156 OR
1157 /*------------------------------------------------------------------------------+
1158 | Bug 4948674: Handle delete for O2C products when icx_session_id is NOT NULL |
1159 +------------------------------------------------------------------------------*/
1160 (zx_global_structures_pkg.g_event_class_rec.ICX_SESSION_ID is not null AND
1161 zx_global_structures_pkg.g_event_class_rec.PROD_FAMILY_GRP_CODE = 'O2C')
1162 THEN
1163
1164 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1165 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1166 'Delete lines for transaction header which need not be recorded');
1167 END IF;
1168
1169 BEGIN
1170 /*
1171 OPEN C_HEADERS;
1172 LOOP
1173 FETCH c_HEADERS BULK COLLECT INTO
1174 l_application_id_tbl,
1175 l_entity_code_tbl,
1176 l_event_class_code_tbl,
1177 l_trx_id_tbl,
1178 l_icx_session_id_tbl,
1179 l_event_type_code_tbl,
1180 l_tax_event_type_code_tbl,
1181 l_doc_event_status_tbl
1182 LIMIT G_LINES_PER_FETCH;
1183
1184
1185 FORALL i IN l_trx_id_tbl.FIRST .. l_trx_id_tbl.LAST
1186 */
1187 DELETE FROM zx_lines_det_factors
1188 WHERE (APPLICATION_ID, ENTITY_CODE, EVENT_CLASS_CODE, TRX_ID)
1189 IN (SELECT /*+ cardinality (ZX_TRX_HEADERS_GT 1) */ APPLICATION_ID, ENTITY_CODE, EVENT_CLASS_CODE, TRX_ID
1190 FROM ZX_TRX_HEADERS_GT);
1191
1192
1193
1194 /*
1195 exit when c_HEADERS%NOTFOUND;
1196 END LOOP;
1197
1198 close c_HEADERS;
1199 */
1200 EXCEPTION
1201 WHEN OTHERS THEN
1202
1203 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1204 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||': returned errors');
1205 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name, SQLCODE||' ; '||SQLERRM);
1206 END IF;
1207
1208 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1209 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
1210 FND_MSG_PUB.Add;
1211
1212 IF c_HEADERS%ISOPEN THEN
1213 close c_HEADERS;
1214 END IF;
1215 END;
1216 ELSE
1217
1218 /*-----------------------------------------------------+
1219 | Handle delete for mark tax lines deleted |
1220 +-----------------------------------------------------*/
1221 --Remove all lines marked for delete by the mark_tax_lines_deleted API
1222 BEGIN
1223 /*
1224 OPEN C_HEADERS;
1225 LOOP
1226 FETCH c_HEADERS BULK COLLECT INTO
1227 l_application_id_tbl,
1228 l_entity_code_tbl,
1229 l_event_class_code_tbl,
1230 l_trx_id_tbl,
1231 l_icx_session_id_tbl,
1232 l_event_type_code_tbl,
1233 l_tax_event_type_code_tbl,
1234 l_doc_event_status_tbl
1235 LIMIT G_LINES_PER_FETCH;
1236
1237 FORALL i IN l_trx_id_tbl.FIRST .. l_trx_id_tbl.LAST
1238
1239 DELETE from zx_lines_det_factors
1240 WHERE APPLICATION_ID = l_application_id_tbl(i)
1241 AND ENTITY_CODE = l_entity_code_tbl(i)
1242 AND EVENT_CLASS_CODE = l_event_class_code_tbl(i)
1243 AND TRX_ID = l_trx_id_tbl(i)
1244 AND line_level_action ='DELETE';
1245
1246 */
1247 DELETE /*+ ORDERED USE_NL_WITH_INDEX (Z,ZX_LINES_DET_FACTORS_U1) */ FROM zx_lines_det_factors Z
1248 WHERE (Z.APPLICATION_ID, Z.ENTITY_CODE, Z.EVENT_CLASS_CODE, Z.TRX_ID)
1249 IN (SELECT /*+ unnest cardinality (ZX_TRX_HEADERS_GT 1) */
1250 APPLICATION_ID, ENTITY_CODE, EVENT_CLASS_CODE, TRX_ID
1251 FROM ZX_TRX_HEADERS_GT)
1255 /*
1252 AND Z.line_level_action ='DELETE';
1253
1254
1256 exit when c_HEADERS%NOTFOUND;
1257 END LOOP;
1258
1259 close c_HEADERS;
1260 */
1261 EXCEPTION
1262 WHEN OTHERS THEN
1263
1264 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1265 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||': returned errors');
1266 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name, SQLCODE||' ; '||SQLERRM);
1267 END IF;
1268
1269 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1270 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
1271 FND_MSG_PUB.Add;
1272
1273 IF c_HEADERS%ISOPEN THEN
1274 close c_HEADERS;
1275 END IF;
1276 END;
1277
1278 END IF;
1279
1280
1281 /*----------------------------------------------------------------+
1282 | Set the tax_reporting_flag to 'N' for documents called for quote|
1283 +----------------------------------------------------------------*/
1284 -- Bug Fix for 5155481 - Commented out the following update. Reporting flag is set during the
1285 -- insert itself based on the record_flag.
1286
1287 /* IF l_event_class_rec.QUOTE_FLAG = 'Y' THEN
1288 UPDATE zx_lines_det_factors
1289 SET tax_reporting_flag ='N'
1290 WHERE application_id = l_event_class_rec.application_id
1291 AND entity_code = l_event_class_rec.entity_code
1292 AND event_class_code = l_event_class_rec.event_class_code
1293 AND trx_id = l_event_class_rec.trx_id;
1294 END IF;
1295 */
1296 -- bug fix 5417887 end
1297
1298 -- bug#6594730
1299 -- need to flush ZX_DETAIL_TAX_LINES_GT before the procedure
1300 -- calculate_tax_pvt is called for the next event class
1301
1302 IF l_record_tax_lines = 'Y' THEN
1303 DELETE FROM ZX_DETAIL_TAX_LINES_GT;
1304 END IF;
1305
1306 -- bug 6824850
1307 ZX_GLOBAL_STRUCTURES_PKG.PTNR_TAX_REGIME_TBL.DELETE;
1308
1309 END LOOP; -- i IN 1..nvl(l_evnt_cls.event_class_code.LAST,0)
1310
1311 /*---------------------------------------------------------+
1312 | Set the out parameter |
1313 +--------------------------------------------------------*/
1314 BEGIN
1315 UPDATE ZX_TRX_HEADERS_GT headers
1316 SET doc_level_recalc_flag = (SELECT distinct(lines.threshold_indicator_flag)
1317 FROM ZX_LINES_DET_FACTORS lines
1318 WHERE lines.application_id = headers.application_id
1319 AND lines.event_class_code = headers.event_class_code
1320 AND lines.entity_code = headers.entity_code
1321 AND lines.trx_id = headers.trx_id
1322 AND lines.threshold_indicator_flag = 'Y' -- Bug 5210984
1323 );
1324 EXCEPTION WHEN OTHERS THEN
1325 null;
1326 END;
1327
1328 --Reset the icx_session_id at end of API
1329 ZX_SECURITY.G_ICX_SESSION_ID := null;
1330 ZX_SECURITY.name_value('SESSIONID',to_char(ZX_SECURITY.G_ICX_SESSION_ID));
1331 --dbms_session.set_context('my_ctx','SESSIONID',to_char(ZX_SECURITY.G_ICX_SESSION_ID));
1332
1333
1334 --Reset G_PUB_CALLING_SRVC at end of API
1335 ZX_API_PUB.G_PUB_CALLING_SRVC := null;
1336
1337 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1338 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: CALCULATE_TAX()-');
1339 END IF;
1340
1341 EXCEPTION
1342 WHEN FND_API.G_EXC_ERROR THEN
1343 ROLLBACK TO Calculate_tax_PVT;
1344 --Close all open cursors
1345 IF common_header_info%ISOPEN THEN CLOSE common_header_info; END IF;
1346 x_return_status := FND_API.G_RET_STS_ERROR;
1347 DUMP_MSG;
1348 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
1349 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
1350 END IF;
1351
1352 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1353 ROLLBACK TO Calculate_tax_PVT;
1354 --Close all open cursors
1355 IF common_header_info%ISOPEN THEN CLOSE common_header_info; END IF;
1356 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1357 DUMP_MSG;
1358 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
1359 FND_MSG_PUB.add;
1360 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
1361 p_count => x_msg_count,
1362 p_data => x_msg_data
1363 );
1364 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
1365 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
1366 END IF;
1367
1368 WHEN OTHERS THEN
1369 ROLLBACK TO Calculate_tax_PVT;
1370 --Close all open cursors
1371 IF common_header_info%ISOPEN THEN CLOSE common_header_info; END IF;
1372 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1373 DUMP_MSG;
1377 p_count => x_msg_count,
1374 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
1375 FND_MSG_PUB.add;
1376 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
1378 p_data => x_msg_data
1379 );
1380 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
1381 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
1382 END IF;
1383 END calculate_tax; --gtt version
1384
1385 /*======================================================================*
1386 | PROCEDURE calculate_tax : Calculates and records tax info |
1387 | PL/sql tables: trx_line_dist_tbl , transaction_rec |
1388 | |
1389 | This API will be also called by products who uptake the |
1390 | determining factors UI window by which the transaction lines are |
1391 | already recorded into the eBTax repository , however the tax on them |
1392 | is not calculated. They will pass p_data_transfer_mode as WIN |
1393 * ======================================================================*/
1394
1395 PROCEDURE calculate_tax
1396 ( p_api_version IN NUMBER,
1397 p_init_msg_list IN VARCHAR2,
1398 p_commit IN VARCHAR2,
1399 p_validation_level IN NUMBER,
1400 x_return_status OUT NOCOPY VARCHAR2 ,
1401 x_msg_count OUT NOCOPY NUMBER ,
1402 x_msg_data OUT NOCOPY VARCHAR2,
1403 p_transaction_rec IN transaction_rec_type,
1404 p_quote_flag IN VARCHAR2,
1405 p_data_transfer_mode IN VARCHAR2,
1406 x_doc_level_recalc_flag OUT NOCOPY VARCHAR2
1407 )
1408 IS
1409
1410 l_api_name CONSTANT VARCHAR2(30) := 'CALCULATE_TAX';
1411 l_api_version CONSTANT NUMBER := 1.0;
1412 l_return_status VARCHAR2(30);
1413 l_event_class_rec event_class_rec_type;
1414 l_init_msg_list VARCHAR2(1);
1415 l_record_tax_lines VARCHAR2(1);
1416 l_error_buffer VARCHAR2(1000);
1417
1418 l_ptnr_index NUMBER;
1419 BEGIN
1420 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1421 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: CALCULATE_TAX()+');
1422 END IF;
1423
1424 /*--------------------------------------------------+
1425 | Standard start of API savepoint |
1426 +--------------------------------------------------*/
1427 SAVEPOINT Calculate_tax_PVT;
1428
1429 /*--------------------------------------------------+
1430 | Standard call to check for call compatibility |
1431 +--------------------------------------------------*/
1432
1433 IF NOT FND_API.Compatible_API_Call(l_api_version,
1434 p_api_version,
1435 l_api_name,
1436 G_PKG_NAME
1437 ) THEN
1438 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1439 END IF;
1440
1441 /*--------------------------------------------------------------+
1442 | Initialize message list if p_init_msg_list is set to TRUE |
1443 +--------------------------------------------------------------*/
1444 IF p_init_msg_list is null THEN
1445 l_init_msg_list := FND_API.G_FALSE;
1446 ELSE
1447 l_init_msg_list := p_init_msg_list;
1448 END IF;
1449
1450 IF FND_API.to_Boolean(l_init_msg_list) THEN
1451 FND_MSG_PUB.initialize;
1452 END IF;
1453
1454 /*-----------------------------------------+
1455 | Initialize return status to SUCCESS |
1456 +-----------------------------------------*/
1457
1458 x_return_status := FND_API.G_RET_STS_SUCCESS;
1459
1460 /*-----------------------------------------+
1461 | Populate Global Variable |
1462 +-----------------------------------------*/
1463
1464 G_PUB_SRVC := l_api_name;
1465 G_PUB_CALLING_SRVC := l_api_name;
1466 G_DATA_TRANSFER_MODE := p_data_transfer_mode;
1467 G_EXTERNAL_API_CALL := 'N';
1468
1469
1470 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1471 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1472 'Data Transfer Mode: '||G_DATA_TRANSFER_MODE);
1473 END IF;
1474
1475 --Call TDS process to reset the session for previous calculate tax calls if any
1476 ZX_TDS_CALC_SERVICES_PUB_PKG.initialize (p_event_class_rec => NULL,
1477 p_init_level => 'SESSION',
1478 x_return_status => l_return_status
1479 );
1480 set_ptnr_srvc_subscr_flag (p_event_class_rec => NULL,
1481 x_return_status => l_return_status
1482 );
1483
1484 ZX_GLOBAL_STRUCTURES_PKG.LOC_GEOGRAPHY_INFO_TBL.DELETE;
1485 ZX_GLOBAL_STRUCTURES_PKG.g_registration_info_tbl.DELETE;
1486 /*------------------------------------------------------+
1487 | Copy to Event Class Record |
1488 +------------------------------------------------------*/
1489
1490 /*Fetch the event id for the document*/
1491 select ZX_LINES_DET_FACTORS_S.nextval
1492 into l_event_class_rec.event_id
1493 from dual;
1494
1495 /*Populate the event class record structure*/
1496 IF G_DATA_TRANSFER_MODE = 'PLS' THEN
1497 l_event_class_rec.INTERNAL_ORGANIZATION_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.INTERNAL_ORGANIZATION_ID(1);
1498 l_event_class_rec.LEGAL_ENTITY_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LEGAL_ENTITY_ID(1);
1499 l_event_class_rec.LEDGER_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LEDGER_ID(1);
1500 l_event_class_rec.APPLICATION_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLICATION_ID(1);
1501 l_event_class_rec.ENTITY_CODE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ENTITY_CODE(1);
1502 l_event_class_rec.EVENT_CLASS_CODE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.EVENT_CLASS_CODE(1);
1503 l_event_class_rec.EVENT_TYPE_CODE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.EVENT_TYPE_CODE(1);
1504 l_event_class_rec.CTRL_TOTAL_HDR_TX_AMT := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CTRL_TOTAL_HDR_TX_AMT(1);
1505 l_event_class_rec.TRX_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_ID(1);
1506 l_event_class_rec.TRX_DATE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_DATE(1);
1507 l_event_class_rec.REL_DOC_DATE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RELATED_DOC_DATE(1);
1508 l_event_class_rec.PROVNL_TAX_DETERMINATION_DATE:= ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PROVNL_TAX_DETERMINATION_DATE(1);
1509 l_event_class_rec.TRX_CURRENCY_CODE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_CURRENCY_CODE(1);
1510 l_event_class_rec.PRECISION := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRECISION(1);
1511 l_event_class_rec.CURRENCY_CONVERSION_TYPE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CURRENCY_CONVERSION_TYPE(1);
1512 l_event_class_rec.CURRENCY_CONVERSION_RATE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CURRENCY_CONVERSION_RATE(1);
1513 l_event_class_rec.CURRENCY_CONVERSION_DATE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CURRENCY_CONVERSION_DATE(1);
1514 l_event_class_rec.ROUNDING_SHIP_TO_PARTY_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_SHIP_TO_PARTY_ID(1);
1515 l_event_class_rec.ROUNDING_SHIP_FROM_PARTY_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_SHIP_FROM_PARTY_ID(1);
1516 l_event_class_rec.ROUNDING_BILL_TO_PARTY_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_BILL_TO_PARTY_ID(1);
1517 l_event_class_rec.ROUNDING_BILL_FROM_PARTY_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_BILL_FROM_PARTY_ID(1);
1518 l_event_class_rec.RNDG_SHIP_TO_PARTY_SITE_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_SHIP_TO_PARTY_SITE_ID(1);
1519 l_event_class_rec.RNDG_SHIP_FROM_PARTY_SITE_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_SHIP_FROM_PARTY_SITE_ID(1);
1520 l_event_class_rec.RNDG_BILL_TO_PARTY_SITE_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_BILL_TO_PARTY_SITE_ID(1);
1521 l_event_class_rec.RNDG_BILL_FROM_PARTY_SITE_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_BILL_FROM_PARTY_SITE_ID(1);
1522 l_event_class_rec.QUOTE_FLAG := nvl(p_quote_flag,'N');
1523 l_event_class_rec.ICX_SESSION_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ICX_SESSION_ID(1);
1524 ELSIF G_DATA_TRANSFER_MODE ='WIN' THEN
1525 l_event_class_rec.internal_organization_id := p_transaction_rec.internal_organization_id;
1526 l_event_class_rec.APPLICATION_ID := p_transaction_rec.application_id;
1527 l_event_class_rec.ENTITY_CODE := p_transaction_rec.entity_code;
1528 l_event_class_rec.EVENT_CLASS_CODE := p_transaction_rec.event_class_code;
1529 l_event_class_rec.EVENT_TYPE_CODE := p_transaction_rec.event_type_code;
1530 l_event_class_rec.TRX_ID := p_transaction_rec.trx_id;
1531 l_event_class_rec.QUOTE_FLAG := p_quote_flag;
1532
1533 BEGIN
1534 SELECT legal_entity_id,
1535 ledger_id,
1536 trx_date,
1537 related_doc_date,
1538 trx_currency_code,
1539 precision,
1540 currency_conversion_type,
1541 currency_conversion_rate,
1542 currency_conversion_date,
1543 Rdng_ship_to_pty_tx_prof_id,
1544 Rdng_ship_from_pty_tx_prof_id,
1545 Rdng_bill_to_pty_tx_prof_id,
1546 Rdng_bill_from_pty_tx_prof_id,
1547 Rdng_ship_to_pty_tx_p_st_id,
1548 Rdng_ship_from_pty_tx_p_st_id,
1549 Rdng_bill_to_pty_tx_p_st_id,
1550 Rdng_bill_from_pty_tx_p_st_id
1551 INTO l_event_class_rec.legal_entity_id,
1552 l_event_class_rec.ledger_id,
1553 l_event_class_rec.trx_date,
1554 l_event_class_rec.rel_doc_date,
1555 l_event_class_rec.trx_currency_code,
1556 l_event_class_rec.precision,
1557 l_event_class_rec.currency_conversion_type,
1558 l_event_class_rec.currency_conversion_rate,
1559 l_event_class_rec.currency_conversion_date,
1560 l_event_class_rec.RDNG_SHIP_TO_PTY_TX_PROF_ID,
1561 l_event_class_rec.RDNG_SHIP_FROM_PTY_TX_PROF_ID,
1562 l_event_class_rec.RDNG_BILL_TO_PTY_TX_PROF_ID,
1563 l_event_class_rec.RDNG_BILL_FROM_PTY_TX_PROF_ID,
1564 l_event_class_rec.RDNG_SHIP_TO_PTY_TX_P_ST_ID,
1568 FROM ZX_LINES_DET_FACTORS
1565 l_event_class_rec.RDNG_SHIP_FROM_PTY_TX_P_ST_ID,
1566 l_event_class_rec.RDNG_BILL_TO_PTY_TX_P_ST_ID,
1567 l_event_class_rec.RDNG_BILL_FROM_PTY_TX_P_ST_ID
1569 WHERE application_id = p_transaction_rec.application_id
1570 AND entity_code = p_transaction_rec.entity_code
1571 AND event_class_code = p_transaction_rec.event_class_code
1572 AND trx_id = p_transaction_rec.trx_id
1573 AND rownum = 1;
1574 EXCEPTION
1575 WHEN OTHERS THEN
1576 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
1577 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'Data is expected to be in eBTax Repository for this call');
1578 END IF;
1579 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1580 END;
1581 END IF;
1582 --Set a flag to indicate if currency information passed at header/line
1583 IF l_event_class_rec.trx_currency_code is not null AND
1584 l_event_class_rec.precision is not null THEN
1585 l_event_class_rec.header_level_currency_flag := 'Y';
1586 END IF;
1587
1588 --Set the global variable if icx_session_id is not null
1589 IF l_event_class_rec.QUOTE_FLAG = 'Y' and
1590 l_event_class_rec.ICX_SESSION_ID is not null THEN
1591 ZX_SECURITY.G_ICX_SESSION_ID := l_event_class_rec.ICX_SESSION_ID;
1592 ZX_SECURITY.name_value('SESSIONID',to_char(ZX_SECURITY.G_ICX_SESSION_ID));
1593 -- dbms_session.set_context('my_ctx','SESSIONID',to_char(ZX_SECURITY.G_ICX_SESSION_ID));
1594 ELSE
1595 ZX_SECURITY.G_ICX_SESSION_ID := null;
1596 -- dbms_session.set_context('my_ctx','SESSIONID',to_char(ZX_SECURITY.G_ICX_SESSION_ID));
1597 ZX_SECURITY.name_value('SESSIONID',to_char(ZX_SECURITY.G_ICX_SESSION_ID));
1598 END IF;
1599
1600 -- Bug 4948674: Following Delete will not work when there are different dbms sessions used for the same user
1601 -- session when call originates from a FWK UI. Moved the following Delete logic to the end of this API for O2C
1602 -- products and to the end of determine_recovery API for P2P products.
1603
1604 --If the user calls calculate_tax twice using same db session for the same icx session, then we will have
1605 -- un-deleted data in the Det Factors table for the previousc all. So, we need to clean it up first before
1606 -- starting to process the input lines of the new call.We should at first always attempt to remove any rows
1607 --sitting in Det Factors table for that icx session
1608 /* IF l_event_class_rec.ICX_SESSION_ID is not null THEN
1609 DELETE from zx_lines_det_factors
1610 WHERE application_id = l_event_class_rec.application_id and
1611 entity_code = l_event_class_rec.entity_code and
1612 event_class_code = l_event_class_rec.event_class_code and
1613 trx_id = l_event_class_rec.trx_id;
1614 END IF;
1615 */
1616
1617 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1618 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1619 'application_id: '||to_char(l_event_class_rec.application_id)||
1620 ', entity_code: '||l_event_class_rec.entity_code||
1621 ', event_class_code: '||l_event_class_rec.event_class_code||
1622 ', event_type_code: '||l_event_class_rec.event_type_code||
1623 ', trx_id: '||to_char(l_event_class_rec.trx_id)||
1624 ', internal_organization_id: '||to_char(l_event_class_rec.internal_organization_id)||
1625 ', ledger_id: '||to_char(l_event_class_rec.ledger_id)||
1626 ', legal_entity_id: '||to_char(l_event_class_rec.legal_entity_id)||
1627 ', trx_date: '||to_char(l_event_class_rec.trx_date)||
1628 ', related_document_date: '||to_char(l_event_class_rec.rel_doc_date)||
1629 ', trx_currency_code: '||l_event_class_rec.trx_currency_code||
1630 ', currency_conversion_type: '||l_event_class_rec.currency_conversion_type||
1631 ', currency_conversion_rate: '||to_char(l_event_class_rec.currency_conversion_rate)||
1632 ', currency_conversion_date: '||to_char(l_event_class_rec.currency_conversion_date)||
1633 ', rounding_ship_to_party_id: '||to_char(l_event_class_rec.rounding_ship_to_party_id)||
1634 ', rounding_ship_from_party_id: '||to_char(l_event_class_rec.rounding_ship_from_party_id)||
1635 ', rounding_bill_to_party_id: '||to_char(l_event_class_rec.rounding_bill_to_party_id)||
1636 ', rounding_bill_from_party_id: '||to_char(l_event_class_rec.rounding_bill_from_party_id)||
1637 ', rndg_ship_to_party_site_id: '||to_char(l_event_class_rec.rndg_ship_to_party_site_id)||
1638 ', rndg_ship_from_party_site_id: '||to_char(l_event_class_rec.rndg_ship_from_party_site_id)||
1639 ', rndg_bill_to_party_site_id: '||to_char(l_event_class_rec.rndg_bill_to_party_site_id)||
1640 ', rndg_bill_from_party_site_id: '||to_char(l_event_class_rec.rndg_bill_from_party_site_id)||
1641 ', quote_flag: '||l_event_class_rec.quote_flag ||
1642 ', icx_session_id: '||to_char(l_event_class_rec.icx_session_id) );
1643 END IF;
1644
1645 /*-------------------------------------------------------+
1646 |Lock the tax lines table to prevent another |
1647 |user from updating same line via the forms/UIs while |
1648 |calculation is in progress |
1649 +-------------------------------------------------------*/
1650 IF l_event_class_rec.tax_event_type_code ='UPDATE' THEN
1654 p_trx_id => l_event_class_rec.trx_id,
1651 ZX_TRL_DETAIL_OVERRIDE_PKG.lock_dtl_tax_lines_for_doc(p_application_id => l_event_class_rec.application_id,
1652 p_entity_code => l_event_class_rec.entity_code,
1653 p_event_class_code => l_event_class_rec.event_class_code,
1655 x_return_status => l_return_status,
1656 x_error_buffer => l_error_buffer
1657 );
1658
1659 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1660 RAISE FND_API.G_EXC_ERROR;
1661 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1662 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1663 END IF;
1664
1665 ZX_TRL_SUMMARY_OVERRIDE_PKG.lock_summ_tax_lines_for_doc(p_application_id => l_event_class_rec.application_id,
1666 p_entity_code => l_event_class_rec.entity_code,
1667 p_event_class_code => l_event_class_rec.event_class_code,
1668 p_trx_id => l_event_class_rec.trx_id,
1669 x_return_status => l_return_status,
1670 x_error_buffer => l_error_buffer
1671 );
1672 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1673 RAISE FND_API.G_EXC_ERROR;
1674 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1675 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1676 END IF;
1677
1678 ZX_TRL_DISTRIBUTIONS_PKG.lock_rec_nrec_dist_for_doc (p_application_id => l_event_class_rec.application_id,
1679 p_entity_code => l_event_class_rec.entity_code,
1680 p_event_class_code => l_event_class_rec.event_class_code,
1681 p_trx_id => l_event_class_rec.trx_id,
1682 x_return_status => l_return_status,
1683 x_error_buffer => l_error_buffer
1684 );
1685 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1686 RAISE FND_API.G_EXC_ERROR;
1687 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1688 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1689 END IF;
1690 END IF; --tax event type is UPDATE
1691
1692 IF l_event_class_rec.event_class_code = 'CREDIT_MEMO' THEN
1693 ZX_GLOBAL_STRUCTURES_PKG.g_credit_memo_exists_flg := 'Y';
1694 END IF;
1695
1696 /*------------------------------------------------------+
1697 | Validate and Initializate parameters for Calculate |
1698 | tax |
1699 +------------------------------------------------------*/
1700
1701 ZX_VALID_INIT_PARAMS_PKG.calculate_tax(p_event_class_rec => l_event_class_rec,
1702 x_return_status => l_return_status
1703 );
1704
1705 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1706 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1707 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_VALID_INIT_PARAMS_PKG.calculate_tax returned errors');
1708 END IF;
1709 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1710 RAISE FND_API.G_EXC_ERROR;
1711 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1712 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1713 END IF;
1714 END IF;
1715
1716 /* ===============================================================================*
1717 |Initialize the global structures/global temp tables owned by TDM at header level |
1718 * ===============================================================================*/
1719
1720 ZX_TDS_CALC_SERVICES_PUB_PKG.initialize (l_event_class_rec ,
1721 'HEADER',
1722 l_return_status
1723 );
1724
1725 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1726 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1727 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TDS_CALC_SERVICES_PUB_PKG.initialize returned errors');
1728 END IF;
1729 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1730 RAISE FND_API.G_EXC_ERROR;
1731 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1732 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1733 END IF;
1734 END IF;
1735
1736
1737 /*--------------------------------------------------+
1738 | Call to service type Calculate Tax |
1742 | of process_for_applicability_flag |
1739 +--------------------------------------------------*/
1740 /* ----------------------------------------------------+
1741 | Bug 3922920 - Perfrom tail end processes regardless |
1743 + ---------------------------------------------------*/
1744 --IF nvl(l_event_class_rec.PROCESS_FOR_APPLICABILITY_FLAG,'Y') = 'Y' THEN
1745
1746 ZX_SRVC_TYP_PKG.calculate_tax(p_event_class_rec => l_event_class_rec,
1747 x_return_status => l_return_status
1748 );
1749
1750 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1751 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1752 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_SRVC_TYP_PKG.calculate_tax returned errors');
1753 END IF;
1754 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1755 RAISE FND_API.G_EXC_ERROR;
1756 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1757 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1758 END IF;
1759 END IF;
1760
1761 -- populate the tax_regime_tbl cache structure for partner
1762 IF zx_global_structures_pkg.g_ptnr_srvc_subscr_flag = 'Y' THEN
1763 IF nvl(ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl.FIRST,0) = 0 THEN
1764 l_ptnr_index := NVL(ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl.LAST, 0) + 1;
1765 ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_ptnr_index).application_id
1766 := l_event_class_rec.application_id;
1767 ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_ptnr_index).entity_code
1768 := l_event_class_rec.entity_code;
1769 ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_ptnr_index).event_class_code
1770 := l_event_class_rec.event_class_code;
1771 ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_ptnr_index).trx_id
1772 := l_event_class_rec.trx_id;
1773 ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_ptnr_index).event_class_mapping_id
1774 := l_event_class_rec.event_class_mapping_id;
1775 ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_ptnr_index).event_type_code
1776 := l_event_class_rec.event_type_code;
1777 ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_ptnr_index).record_flag
1778 := l_event_class_rec.record_flag;
1779 ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_ptnr_index).quote_flag
1780 := l_event_class_rec.quote_flag;
1781 ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_ptnr_index).record_for_partners_flag
1782 := l_event_class_rec.record_for_partners_flag;
1783 ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_ptnr_index).prod_family_grp_code
1784 := l_event_class_rec.prod_family_grp_code;
1785 ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_ptnr_index).internal_organization_id
1786 := l_event_class_rec.internal_organization_id;
1787 ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_ptnr_index).legal_entity_id
1788 := l_event_class_rec.legal_entity_id;
1789 ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_ptnr_index).effective_date
1790 := zx_security.g_effective_date;
1791 ZX_GLOBAL_STRUCTURES_PKG.ptnr_tax_regime_tbl(l_ptnr_index).tax_regime_tbl
1792 := ZX_GLOBAL_STRUCTURES_PKG.tax_regime_tbl;
1793 END IF;
1794 END IF;
1795
1796 /*-----------------------------------------------------+
1797 | Call to eTax service Dump Detail Tax Lines Into GT|
1798 +-----------------------------------------------------*/
1799 ZX_TDS_CALC_SERVICES_PUB_PKG.dump_detail_tax_lines_into_gt(x_return_status => l_return_status);
1800
1801
1802 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1803 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1804 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TDS_CALC_SERVICES_PUB_PKG.dump_detail_tax_lines_into_gt returned errors');
1805 END IF;
1806 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1807 RAISE FND_API.G_EXC_ERROR;
1808 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1809 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1810 END IF;
1811 END IF;
1812
1813 /*--------------------------------------------------+
1814 | Call to eTax Service Tax Lines Determination |
1815 +--------------------------------------------------*/
1816 ZX_TDS_CALC_SERVICES_PUB_PKG.tax_line_determination(p_event_class_rec => l_event_class_rec,
1817 x_return_status => l_return_status
1818 );
1819
1820 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1821 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1822 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TDS_CALC_SERVICES_PUB_PKG.tax_line_determination returned errors');
1823 END IF;
1824 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1825 RAISE FND_API.G_EXC_ERROR;
1826 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1830
1827 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1828 END IF;
1829 END IF;
1831 /*--------------------------------------------------+
1832 | Call to Update Total Inclusive Tax Amount |
1833 +--------------------------------------------------*/
1834 /* Replace the call to update_total_inc_tax_amt with the merge statement below
1835 update_total_inc_tax_amt(p_event_class_rec => l_event_class_rec,
1836 x_return_status => l_return_status
1837 );
1838
1839 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1840 x_return_status := l_return_status ;
1841 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1842 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':update_total_inc_tax_amt returned errors');
1843 END IF;
1844 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1845 RAISE FND_API.G_EXC_ERROR;
1846 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1847 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1848 END IF;
1849 END IF;
1850 */
1851
1852 IF zx_global_structures_pkg.g_event_class_rec.prod_family_grp_code = 'P2P' THEN
1853 MERGE INTO ZX_LINES_DET_FACTORS lines_dt
1854 USING (SELECT
1855 application_id,
1856 entity_code,
1857 event_class_code,
1858 trx_id,
1859 trx_level_type,
1860 trx_line_id,
1861 sum(tax_amt) incl_tax_amt
1862 FROM
1863 zx_detail_tax_lines_gt TaxLines
1864 WHERE
1865 tax_amt_included_flag = 'Y'
1866 -- AND mrc_tax_line_flag = 'N'
1867 AND cancel_flag <> 'Y'
1868 GROUP BY
1869 application_id,
1870 entity_code,
1871 event_class_code,
1872 trx_id,
1873 trx_level_type,
1874 trx_line_id
1875 ) Temp
1876 ON ( lines_dt.tax_amt_included_flag = 'Y'
1877 --AND lines_dt.total_inc_tax_amt is NULL
1878 AND lines_dt.application_id = temp.application_id
1879 AND lines_dt.entity_code = temp.entity_code
1880 AND lines_dt.event_class_code = temp.event_class_code
1881 AND lines_dt.trx_id = temp.trx_id
1882 AND Lines_dt.trx_level_type = temp.trx_level_type
1883 AND Lines_dt.trx_line_id = temp.trx_line_id
1884 )
1885 WHEN MATCHED THEN
1886 UPDATE SET
1887 total_inc_tax_amt = incl_tax_amt;
1888
1889 END IF;
1890
1891 /*--------------------------------------------------+
1892 | Call to eTax Service Manage Tax Lines |
1893 +--------------------------------------------------*/
1894
1895 --Rounding and Summarizing Tax Lines for Transaction
1896 /*Bug 3649502 - Check for record flag before calling TRR service*/
1897 /*Bug 4232918 - If record flag =Y and quote flag =Y then do not
1898 record in zx_lines */
1899 l_record_tax_lines := l_event_class_rec.record_flag;
1900 IF l_event_class_rec.record_flag = 'Y' and
1901 l_event_class_rec.quote_flag = 'Y' THEN
1902 l_record_tax_lines := 'N';
1903 END IF;
1904 IF l_record_tax_lines = 'Y' THEN
1905 ZX_TRL_PUB_PKG.manage_taxlines(p_event_class_rec =>l_event_class_rec,
1906 x_return_status =>l_return_status
1907 );
1908 END IF;
1909
1910 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1911 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1912 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TRL_PUB_PKG.manage_taxlines returned errors');
1913 END IF;
1914 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1915 RAISE FND_API.G_EXC_ERROR;
1916 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1917 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1918 END IF;
1919 END IF;
1920 -- END IF; -- process_applicability_flag is N
1921
1922 /*******************************PARTNER CODE START****************************/
1923 IF zx_global_structures_pkg.g_ptnr_srvc_subscr_flag = 'Y' THEN
1924
1925 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1926 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1927 'Calling partner routine to synchronize the tax'||
1928 ', ZX_GLOBAL_STRUCTURES_PKG.tax_regime_tbl.count = '||ZX_GLOBAL_STRUCTURES_PKG.tax_regime_tbl.count);
1929 END IF;
1930 ptnr_bulk_sync_calc_tax ( p_event_class_rec => l_event_class_rec ,
1931 x_return_status => l_return_status
1932 );
1933 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1937 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1934 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1935 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TRL_PUB_PKG.manage_taxlines returned errors');
1936 END IF;
1938 RAISE FND_API.G_EXC_ERROR;
1939 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1940 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1941 END IF;
1942 END IF;
1943 END IF;
1944 /*******************************PARTNER CODE END****************************/
1945 /*---------------------------------------------------------+
1946 | End Loop for Transaction Headers |
1947 +---------------------------------------------------------*/
1948
1949 /*---------------------------------------------------------+
1950 | Set the out parameter |
1951 +--------------------------------------------------------*/
1952 BEGIN
1953 SELECT threshold_indicator_flag
1954 INTO x_doc_level_recalc_flag
1955 FROM ZX_LINES_DET_FACTORS
1956 WHERE application_id = l_event_class_rec.application_id
1957 AND event_class_code = l_event_class_rec.event_class_code
1958 AND entity_code = l_event_class_rec.entity_code
1959 AND trx_id = l_event_class_rec.trx_id
1960 AND threshold_indicator_flag = 'Y' -- Bug 5210984
1961 AND rownum = 1;
1962 EXCEPTION WHEN OTHERS THEN
1963 x_doc_level_recalc_flag := 'N'; --bug6062224
1964 --null;
1965 END;
1966
1967 /*-------------------------------------------------------------+
1968 | Do not record lines based on following condition |
1969 +------------------------------------------------------------*/
1970 IF (l_event_class_rec.RECORD_FLAG = 'Y' and
1971 l_event_class_rec.quote_flag = 'Y' and
1972 l_event_class_rec.icx_session_id is null) OR
1973 (l_event_class_rec.RECORD_FLAG = 'N' and
1974 l_event_class_rec.quote_flag = 'Y' and
1975 l_event_class_rec.intgrtn_det_factors_ui_flag = 'N' and
1976 l_event_class_rec.icx_session_id is null) THEN
1977 --Delete lines for transaction header which need not be recorded
1978 DELETE from zx_lines_det_factors
1979 WHERE application_id = l_event_class_rec.application_id
1980 AND entity_code = l_event_class_rec.entity_code
1981 AND event_class_code = l_event_class_rec.event_class_code
1982 AND trx_id = l_event_class_rec.trx_id;
1983 END IF;
1984 /*----------------------------------------------------------------+
1985 | Set the tax_reporting_flag to 'N' for documents called for quote|
1986 +----------------------------------------------------------------*/
1987 -- Bug Fix for 5155481 - Commented out the following update. Reporting flag is set during the
1988 -- insert itself based on the record_flag.
1989
1990 /* IF l_event_class_rec.QUOTE_FLAG = 'Y' THEN
1991 UPDATE zx_lines_det_factors
1992 SET tax_reporting_flag ='N'
1993 WHERE application_id = l_event_class_rec.application_id
1994 AND entity_code = l_event_class_rec.entity_code
1995 AND event_class_code = l_event_class_rec.event_class_code
1996 AND trx_id = l_event_class_rec.trx_id;
1997 END IF;
1998
1999 */
2000
2001 /*-----------------------------------------------------+
2002 | Handle delete for mark tax lines deleted |
2003 +-----------------------------------------------------*/
2004 DELETE FROM ZX_LINES_DET_FACTORS
2005 WHERE line_level_action ='DELETE'
2006 AND application_id = l_event_class_rec.application_id
2007 AND entity_code = l_event_class_rec.entity_code
2008 AND event_class_code = l_event_class_rec.event_class_code
2009 AND trx_id = l_event_class_rec.trx_id;
2010
2011 /*------------------------------------------------------------------------------+
2012 | Bug 4948674: Handle delete for O2C products when icx_session_id is NOT NULL |
2013 +------------------------------------------------------------------------------*/
2014 IF l_event_class_rec.ICX_SESSION_ID is not null AND
2015 l_event_class_rec.PROD_FAMILY_GRP_CODE = 'O2C' THEN
2016 DELETE from zx_lines_det_factors
2017 WHERE application_id = l_event_class_rec.application_id and
2018 entity_code = l_event_class_rec.entity_code and
2019 event_class_code = l_event_class_rec.event_class_code and
2020 trx_id = l_event_class_rec.trx_id and
2021 icx_session_id = l_event_class_rec.icx_session_id;
2022 END IF;
2023
2024 /*---------------------------------------------------------+
2025 | Initialize the trx line app regimes table for every doc|
2026 +--------------------------------------------------------*/
2027 IF zx_global_structures_pkg.g_ptnr_srvc_subscr_flag = 'Y' THEN
2028 ZX_GLOBAL_STRUCTURES_PKG.init_trx_line_app_regime_tbl;
2029 END IF;
2030
2031 --Delete from the global structures so that there are no hanging/redundant
2035 ZX_GLOBAL_STRUCTURES_PKG.g_registration_info_tbl.DELETE;
2032 --records sitting there
2033 ZX_GLOBAL_STRUCTURES_PKG.delete_trx_line_dist_tbl;
2034 ZX_GLOBAL_STRUCTURES_PKG.LOC_GEOGRAPHY_INFO_TBL.DELETE;
2036 ZX_GLOBAL_STRUCTURES_PKG.g_party_tax_prof_id_info_tbl.DELETE;
2037
2038 --Also delete the location caching global structures
2039 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.EVENT_CLASS_MAPPING_ID.DELETE;
2040 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.TRX_ID.DELETE;
2041 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.TRX_LINE_ID.DELETE;
2042 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.TRX_LEVEL_TYPE.DELETE;
2043 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.LOCATION_TYPE.DELETE;
2044 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.LOCATION_TABLE_NAME.DELETE;
2045 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.LOCATION_ID.DELETE;
2046 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.GEOGRAPHY_TYPE.DELETE;
2047 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.GEOGRAPHY_VALUE.DELETE;
2048 ZX_GLOBAL_STRUCTURES_PKG.location_info_tbl.GEOGRAPHY_ID.DELETE;
2049 ZX_GLOBAL_STRUCTURES_PKG.LOCATION_HASH_TBL.DELETE;
2050
2051 --Reset the icx_session_id at end of API
2052 ZX_SECURITY.G_ICX_SESSION_ID := null;
2053 ZX_SECURITY.name_value('SESSIONID',to_char(ZX_SECURITY.G_ICX_SESSION_ID));
2054 -- dbms_session.set_context('my_ctx','SESSIONID',to_char(ZX_SECURITY.G_ICX_SESSION_ID));
2055
2056 --Reset the calling API info at end of API
2057 ZX_API_PUB.G_PUB_CALLING_SRVC := null;
2058
2059 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2060 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: CALCULATE_TAX()-');
2061 END IF;
2062
2063 EXCEPTION
2064 WHEN FND_API.G_EXC_ERROR THEN
2065 ROLLBACK TO Calculate_tax_PVT;
2066 x_return_status := FND_API.G_RET_STS_ERROR ;
2067 /*---------------------------------------------------------+
2068 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
2069 | in the message stack. If there is only one message in |
2070 | the stack it retrieves this message |
2071 +---------------------------------------------------------*/
2072 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
2073 p_count => x_msg_count,
2074 p_data => x_msg_data
2075 );
2076
2077 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
2078 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
2079 END IF;
2080
2081 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2082 ROLLBACK TO Calculate_tax_PVT;
2083 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2084 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
2085 FND_MSG_PUB.Add;
2086 /*---------------------------------------------------------+
2087 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
2088 | in the message stack. If there is only one message in |
2089 | the stack it retrieves this message |
2090 +---------------------------------------------------------*/
2091 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
2092 p_count => x_msg_count,
2093 p_data => x_msg_data
2094 );
2095 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
2096 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
2097 END IF;
2098
2099 WHEN OTHERS THEN
2100 ROLLBACK TO Calculate_tax_PVT;
2101 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2102 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
2103 FND_MSG_PUB.Add;
2104 /*---------------------------------------------------------+
2105 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
2106 | in the message stack. If there is only one message in |
2107 | the stack it retrieves this message |
2108 +---------------------------------------------------------*/
2109 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
2110 p_count => x_msg_count,
2111 p_data => x_msg_data
2112 );
2113
2114 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
2115 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
2116 END IF;
2117
2118 END calculate_tax; --pl/sql version
2119
2120 /* ======================================================================*
2121 | PROCEDURE import_document_with_tax : Imports document with tax |
2122 | This API also supports processing for multiple event classes |
2123 | GTT involved : ZX_TRX_HEADERS_GT, ZX_TRANSACTION_LINES_GT , |
2124 | ZX_IMPORT_TAX_LINES_GT and ZX_TRX_TAX_LINK_GT |
2125 * ======================================================================*/
2126 PROCEDURE Import_document_with_tax
2127 ( p_api_version IN NUMBER,
2128 p_init_msg_list IN VARCHAR2,
2129 p_commit IN VARCHAR2,
2133 x_msg_data OUT NOCOPY VARCHAR2
2130 p_validation_level IN NUMBER,
2131 x_return_status OUT NOCOPY VARCHAR2 ,
2132 x_msg_count OUT NOCOPY NUMBER ,
2134 ) IS
2135 l_api_name CONSTANT VARCHAR2(30) := 'IMPORT_DOCUMENT_WITH_TAX';
2136 l_api_version CONSTANT NUMBER := 1.0;
2137 l_return_status VARCHAR2(30);
2138 l_context_info_rec context_info_rec_type;
2139 l_transaction_header_rec transaction_header_rec_type;
2140 l_event_id NUMBER;
2141 l_precedence NUMBER_tbl_type;
2142 l_index BINARY_INTEGER;
2143 l_init_msg_list VARCHAR2(1);
2144 l_record_tax_lines VARCHAR2(1);
2145
2146
2147 CURSOR event_classes IS
2148 SELECT distinct
2149 header.event_class_code,
2150 header.application_id,
2151 header.entity_code,
2152 header.internal_organization_id,
2153 evntmap.processing_precedence
2154 FROM ZX_EVNT_CLS_MAPPINGS evntmap,
2155 ZX_TRX_HEADERS_GT header
2156 WHERE header.application_id = evntmap.application_id
2157 AND header.entity_code = evntmap.entity_code
2158 AND header.event_class_code = evntmap.event_class_code
2159 ORDER BY evntmap.processing_precedence;
2160
2161 /*Get all the tax lines passed in import process for external tax provider */
2162 CURSOR detail_tax_lines_csr IS
2163 SELECT distinct
2164 r.tax_regime_id,
2165 t.tax_regime_code,
2166 t.tax_provider_id,
2167 r.effective_from,
2168 r.effective_to
2169 FROM ZX_IMPORT_TAX_LINES_GT t, zx_regimes_b r
2170 WHERE t.tax_provider_id is not null
2171 AND r.tax_regime_code = t.tax_regime_code
2172 AND r.effective_to is null;
2173
2174 dtl_tax_lines detail_tax_lines_csr%ROWTYPE;
2175 l_ptnr_index NUMBER;
2176 BEGIN
2177 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2178 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
2179 END IF;
2180
2181 /*--------------------------------------------------+
2182 | Standard start of API savepoint |
2183 +--------------------------------------------------*/
2184 SAVEPOINT import_document_PVT;
2185
2186 /*--------------------------------------------------+
2187 | Standard call to check for call compatibility |
2188 +--------------------------------------------------*/
2189 IF NOT FND_API.Compatible_API_Call(l_api_version,
2190 p_api_version,
2191 l_api_name,
2192 G_PKG_NAME
2193 ) THEN
2194 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2195 END IF;
2196
2197 /*--------------------------------------------------------------+
2198 | Initialize message list if p_init_msg_list is set to TRUE |
2199 +--------------------------------------------------------------*/
2200 IF p_init_msg_list is null THEN
2201 l_init_msg_list := FND_API.G_FALSE;
2202 ELSE
2203 l_init_msg_list := p_init_msg_list;
2204 END IF;
2205
2206 IF FND_API.to_Boolean(l_init_msg_list) THEN
2207 FND_MSG_PUB.initialize;
2208 END IF;
2209
2210
2211 /*-----------------------------------------+
2212 | Initialize return status to SUCCESS |
2213 +-----------------------------------------*/
2214 x_return_status := FND_API.G_RET_STS_SUCCESS;
2215
2216
2217 /*-----------------------------------------+
2218 | Populate Global Variable |
2219 +-----------------------------------------*/
2220 G_PUB_SRVC := l_api_name;
2221 G_DATA_TRANSFER_MODE := 'TAB';
2222 G_EXTERNAL_API_CALL := 'N';
2223
2224 /*-----------------------------------------+
2225 | Get the event id for the whole document |
2226 +-----------------------------------------*/
2227 select zx_lines_det_factors_s.nextval
2228 into l_event_id
2229 from dual;
2230
2231 OPEN event_classes;
2232 LOOP
2233 FETCH event_classes BULK COLLECT INTO
2234 l_evnt_cls.event_class_code,
2235 l_evnt_cls.application_id,
2236 l_evnt_cls.entity_code,
2237 l_evnt_cls.internal_organization_id,
2238 l_evnt_cls.precedence
2239 LIMIT G_LINES_PER_FETCH;
2240 EXIT WHEN event_classes%NOTFOUND;
2241 END LOOP;
2242 CLOSE event_classes;
2243
2244 --Event classes such as SALES_TRANSACTION_TAX_QUOTE/PURCHASE_TRANSACTION_TAX_QUOTE
2245 --are not seeded in zx_evnt_cls_mappings so cursor event classes will not
2246 --return any rows for such event classes passed.
2247 IF l_evnt_cls.event_class_code.LAST is null THEN
2248 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2249 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2250 'Event class information does not exist - indicates SALES_TRANSACTION_TAX_QUOTE/PURCHASE_TRANSACTION_TAX_QUOTE');
2251 END IF;
2252
2253 select event_class_code,
2254 application_id,
2255 entity_code,
2256 internal_organization_id
2260 l_evnt_cls.internal_organization_id(1)
2257 into l_evnt_cls.event_class_code(1),
2258 l_evnt_cls.application_id(1),
2259 l_evnt_cls.entity_code(1),
2261 from ZX_TRX_HEADERS_GT
2262 where rownum=1;
2263 END IF;
2264
2265
2266 -- added init for bug fix 5417887
2267 /* ===============================================================================*
2268 |Initialize the global structures/global temp tables owned by TDM at header level |
2269 * =============================================================================*/
2270 ZX_TDS_CALC_SERVICES_PUB_PKG.initialize (p_event_class_rec => NULL,
2271 p_init_level => 'SESSION',
2272 x_return_status => l_return_status
2273 );
2274
2275 set_ptnr_srvc_subscr_flag (p_event_class_rec => NULL,
2276 x_return_status => l_return_status
2277 );
2278
2279 /*---------------------------------------------------------+
2280 | Initialize the trx line app regimes table for every doc|
2281 +--------------------------------------------------------*/
2282
2283 IF zx_global_structures_pkg.g_ptnr_srvc_subscr_flag = 'Y' THEN
2284
2285 -- Partner code, Point 2 (add a logic to conditionall execute this loop only
2286 -- when partner is installed
2287 -- IF p_event_class_rec.record_flag = 'Y' AND
2288 -- p_event_class_rec.record_for_partners_flag = 'Y' THEN
2289 /*Dump into tax regime table only after existence check */
2290
2291 FOR dtl_tax_lines in detail_tax_lines_csr LOOP
2292 IF NOT ZX_GLOBAL_STRUCTURES_PKG.tax_regime_tbl.EXISTS(dtl_tax_lines.tax_regime_id) THEN
2293 ZX_GLOBAL_STRUCTURES_PKG.tax_regime_tbl(dtl_tax_lines.tax_regime_id).tax_regime_id := dtl_tax_lines.tax_regime_id;
2294 ZX_GLOBAL_STRUCTURES_PKG.tax_regime_tbl(dtl_tax_lines.tax_regime_id).tax_regime_code:= dtl_tax_lines.tax_regime_code;
2295 ZX_GLOBAL_STRUCTURES_PKG.tax_regime_tbl(dtl_tax_lines.tax_regime_id).tax_provider_id := dtl_tax_lines.tax_provider_id;
2296 /* Bug 5557565 */
2297 ZX_GLOBAL_STRUCTURES_PKG.tax_regime_tbl(dtl_tax_lines.tax_regime_id).effective_from := dtl_tax_lines.effective_from;
2298 ZX_GLOBAL_STRUCTURES_PKG.tax_regime_tbl(dtl_tax_lines.tax_regime_id).effective_to := dtl_tax_lines.effective_to;
2299 ZX_GLOBAL_STRUCTURES_PKG.tax_regime_tbl(dtl_tax_lines.tax_regime_id).partner_processing_flag := 'C';
2300 END IF;
2301 END LOOP;
2302 --END IF;
2303
2304 ZX_GLOBAL_STRUCTURES_PKG.init_trx_line_app_regime_tbl;
2305 END IF;
2306
2307 ZX_GLOBAL_STRUCTURES_PKG.LOC_GEOGRAPHY_INFO_TBL.DELETE;
2308 ZX_GLOBAL_STRUCTURES_PKG.g_registration_info_tbl.DELETE;
2309 ZX_GLOBAL_STRUCTURES_PKG.tax_calc_flag_tbl.DELETE;
2310 /*-----------------------------------------+
2311 | Loop for each transaction header |
2312 +-----------------------------------------*/
2313 FOR i IN 1..nvl(l_evnt_cls.event_class_code.LAST,0)
2314 LOOP
2315 -- added for bug fix 5417887
2316 IF l_evnt_cls.event_class_code(i) = 'CREDIT_MEMO' THEN
2317 ZX_GLOBAL_STRUCTURES_PKG.g_credit_memo_exists_flg := 'Y';
2318 END IF;
2319
2320 BEGIN
2321 --SAVEPOINT Import_Doc_Rel_PVT;
2322 import_tax_pvt (l_evnt_cls,
2323 l_api_name,
2324 l_event_id,
2325 i,
2326 p_api_version,
2327 l_init_msg_list,
2328 p_commit,
2329 p_validation_level,
2330 l_return_status,
2331 x_msg_count,
2332 x_msg_data
2333 );
2334
2335 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2336 RAISE FND_API.G_EXC_ERROR;
2337 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2338 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2339 END IF;
2340
2341 EXCEPTION
2342 WHEN FND_API.G_EXC_ERROR THEN
2343 --ROLLBACK TO Import_Doc_Rel_PVT;
2344 x_return_status := FND_API.G_RET_STS_ERROR ;
2345 --Call API to dump into zx_errors_gt
2346 IF ( errors_tbl.application_id.LAST is NOT NULL) THEN
2347 DUMP_MSG;
2348 END IF;
2349 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
2350 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
2351 END IF;
2352 END;
2353
2354
2355 -- bug fix 5417887 begin 17-Aug-2006
2356 -- Following code for tail end services/TRL/ptnr sync code, is moved from calculte_tax_pvt
2357 -- and should be handled for each event_class_code. At present, all product integrations call etax
2358 -- for one event class at a time, hence we put these processed out of the event class loop.
2359 -- In the future, if there are cases that etax handle multiple event_class batch, we need to
2360 -- revisist the following code and change accordingly.
2361
2362 -- For furture LTE features, there are could cases that related documents was imported together
2363 -- with original document. For this case, we need to make sure the tail end service for the original
2364 -- docs must be handled before the calculation process of the related docs.
2365
2366 /*-----------------------------------------------------+
2367 | Call to eTax service Dump Detail Tax Lines Into GT|
2368 +-----------------------------------------------------*/
2369 ZX_TDS_CALC_SERVICES_PUB_PKG.dump_detail_tax_lines_into_gt(x_return_status => l_return_status );
2370
2371 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2372 x_return_status := l_return_status ;
2373 DUMP_MSG;
2374 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2375 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TDS_CALC_SERVICES_PUB_PKG.dump_detail_tax_lines_into_gt returned errors');
2376 END IF;
2377 RETURN;
2378 END IF;
2379
2380 /*--------------------------------------------------+
2381 | Call to eTax Service Tax Lines Determination |
2382 +--------------------------------------------------*/
2383 ZX_TDS_CALC_SERVICES_PUB_PKG.tax_line_determination(
2384 p_event_class_rec => zx_global_structures_pkg.g_event_class_rec,
2385 x_return_status => l_return_status
2386 );
2387
2388 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2389 x_return_status := l_return_status;
2390 DUMP_MSG;
2391 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2392 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TDS_CALC_SERVICES_PUB_PKG.tax_line_determination returned errors');
2393 END IF;
2394 RETURN;
2395 END IF;
2396
2397 /*--------------------------------------------------+
2398 | Call to eTax Service Manage Tax Lines |
2399 +--------------------------------------------------*/
2400 /*Bug 3649502 - Check for record flag before calling TRR service*/
2401 --IF zx_global_structures_pkg.g_event_class_rec.record_flag = 'Y' THEN
2402 l_record_tax_lines := ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec.record_flag;
2403 IF ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec.record_flag = 'Y' and
2404 ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec.quote_flag = 'Y' THEN
2405 l_record_tax_lines := 'N';
2406 END IF;
2407 IF l_record_tax_lines = 'Y' THEN
2408 ZX_TRL_PUB_PKG.manage_taxlines(p_event_class_rec =>zx_global_structures_pkg.g_event_class_rec,
2409 x_return_status =>l_return_status
2410 );
2411 END IF;
2412
2413 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2414 x_return_status := l_return_status;
2415 DUMP_MSG;
2416 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2417 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TRL_PUB_PKG.manage_taxlines returned errors');
2418 END IF;
2419 RETURN;
2420 END IF;
2421
2422 -- bug#6389189
2423 -- need to flush ZX_DETAIL_TAX_LINES_GT before the procedure
2424 -- import_tax_pvt is called for the next event class
2425
2426 -- Bug fix 7506576 Included additional condition flag quote_flag when
2427 -- deleting records from GT TABLES
2428
2429 --IF zx_global_structures_pkg.g_event_class_rec.record_flag = 'Y' AND ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec.quote_flag = 'N'
2430 -- Reimplemented the fix done in bug#7506576
2431 IF l_record_tax_lines = 'Y' THEN
2432 DELETE FROM ZX_DETAIL_TAX_LINES_GT;
2433 END IF;
2434
2435
2436 /*******************************PARTNER CODE START****************************/
2437 IF zx_global_structures_pkg.g_ptnr_srvc_subscr_flag = 'Y' THEN
2438 ptnr_bulk_sync_calc_tax ( p_event_class_rec => zx_global_structures_pkg.g_event_class_rec ,
2439 x_return_status => l_return_status
2440 );
2441 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2442 x_return_status := l_return_status;
2443 DUMP_MSG;
2444 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2445 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ptnr_bulk_sync_calc_tax returned errors');
2446 END IF;
2447 RETURN;
2448 END IF;
2449 END IF;
2450 /*******************************PARTNER CODE END****************************/
2451
2452 -- bug fix 6824850
2453 ZX_GLOBAL_STRUCTURES_PKG.PTNR_TAX_REGIME_TBL.DELETE;
2454
2455 -- bug fix 5417887 end 17-Aug-2006
2456 END LOOP;--event_classes cursor
2457
2458
2459 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2460 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
2461 END IF;
2462
2463 EXCEPTION
2464 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2465 ROLLBACK TO Import_Document_PVT;
2466 --Close all open cursors
2467 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2468 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
2469 FND_MSG_PUB.Add;
2473 | the stack it retrieves this message |
2470 /*---------------------------------------------------------+
2471 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
2472 | in the message stack. If there is only one message in |
2474 +---------------------------------------------------------*/
2475 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
2476 p_count => x_msg_count,
2477 p_data => x_msg_data
2478 );
2479 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
2480 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
2481 END IF;
2482
2483 WHEN OTHERS THEN
2484 ROLLBACK TO Import_Document_PVT;
2485 --Close all open cursors
2486 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2487 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
2488 FND_MSG_PUB.Add;
2489 /*---------------------------------------------------------+
2490 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
2491 | in the message stack. If there is only one message in |
2492 | the stack it retrieves this message |
2493 +---------------------------------------------------------*/
2494 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
2495 p_count => x_msg_count,
2496 p_data => x_msg_data
2497 );
2498
2499 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
2500 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
2501 END IF;
2502 END import_document_with_tax;
2503
2504 /* ======================================================================*
2505 | PROCEDURE synchronize_tax_repository : Updates tax repository |
2506 | There exists only pl/sql version for API |
2507 * ======================================================================*/
2508
2509 PROCEDURE synchronize_tax_repository
2510 ( p_api_version IN NUMBER,
2511 p_init_msg_list IN VARCHAR2,
2512 p_commit IN VARCHAR2,
2513 p_validation_level IN NUMBER,
2514 x_return_status OUT NOCOPY VARCHAR2,
2515 x_msg_count OUT NOCOPY NUMBER,
2516 x_msg_data OUT NOCOPY VARCHAR2,
2517 p_sync_trx_rec IN sync_trx_rec_type,
2518 p_sync_trx_lines_tbl IN sync_trx_lines_tbl_type%type
2519 ) IS
2520 l_api_name CONSTANT VARCHAR2(30) := 'SYNCHRONIZE_TAX_REPOSITORY';
2521 l_api_version CONSTANT NUMBER := 1.0;
2522 l_return_status VARCHAR2(30);
2523 l_index BINARY_INTEGER;
2524 l_event_id NUMBER;
2525 l_event_class_rec event_class_rec_type;
2526 l_init_msg_list VARCHAR2(1);
2527 l_upg_trx_info_rec ZX_ON_FLY_TRX_UPGRADE_PKG.zx_upg_trx_info_rec_type;
2528 BEGIN
2529
2530 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2531 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
2532 END IF;
2533
2534 /*--------------------------------------------------+
2535 | Standard start of API savepoint |
2536 +--------------------------------------------------*/
2537 SAVEPOINT Synchronize_tax_PVT;
2538
2539 /*--------------------------------------------------+
2540 | Standard call to check for call compatibility |
2541 +--------------------------------------------------*/
2542
2543 IF NOT FND_API.Compatible_API_Call(l_api_version,
2544 p_api_version,
2545 l_api_name,
2546 G_PKG_NAME
2547 ) THEN
2548 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2549 END IF;
2550
2551 /*--------------------------------------------------------------+
2552 | Initialize message list if p_init_msg_list is set to TRUE |
2553 +--------------------------------------------------------------*/
2554 IF p_init_msg_list is null THEN
2555 l_init_msg_list := FND_API.G_FALSE;
2556 ELSE
2557 l_init_msg_list := p_init_msg_list;
2558 END IF;
2559
2560 IF FND_API.to_Boolean(l_init_msg_list) THEN
2561 FND_MSG_PUB.initialize;
2562 END IF;
2563
2564 /*-----------------------------------------+
2565 | Initialize return status to SUCCESS |
2566 +-----------------------------------------*/
2567
2568 x_return_status := FND_API.G_RET_STS_SUCCESS;
2569
2570 /*-----------------------------------------+
2571 | Populate Global Variable |
2572 +-----------------------------------------*/
2573
2574 G_PUB_SRVC := l_api_name;
2575 G_DATA_TRANSFER_MODE := 'PLS';
2576 G_EXTERNAL_API_CALL := 'N';
2577
2578 /*------------------------------------------+
2579 |Populate the event class record |
2580 +-----------------------------------------*/
2581 l_event_class_rec.APPLICATION_ID := p_sync_trx_rec.APPLICATION_ID;
2582 l_event_class_rec.ENTITY_CODE := p_sync_trx_rec.ENTITY_CODE;
2586 l_event_class_rec.record_flag := 'Y';
2583 l_event_class_rec.EVENT_CLASS_CODE := p_sync_trx_rec.EVENT_CLASS_CODE;
2584 l_event_class_rec.EVENT_TYPE_CODE := p_sync_trx_rec.EVENT_TYPE_CODE;
2585 l_event_class_rec.TRX_ID := p_sync_trx_rec.TRX_ID;
2587 l_event_class_rec.record_for_partners_flag := 'Y';
2588
2589 BEGIN
2590
2591 SELECT prod_family_grp_code into l_event_class_rec.prod_family_grp_code
2592 FROM
2593 zx_evnt_cls_mappings
2594 WHERE
2595 application_id = p_sync_trx_rec.application_id
2596 AND entity_code = p_sync_trx_rec.entity_code
2597 AND event_class_code = p_sync_trx_rec.event_class_code;
2598
2599 EXCEPTION
2600 WHEN OTHERS THEN
2601 --NULL;
2602 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2603 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Incorrect event_class_code passed: ' || p_sync_trx_rec.event_class_code);
2604 END IF;
2605 RETURN;
2606 END;
2607
2608
2609
2610 BEGIN
2611
2612 SELECT tax_event_type_code into l_event_class_rec.tax_event_type_code
2613 FROM
2614 ZX_EVNT_TYP_MAPPINGS
2615 WHERE
2616 application_id = p_sync_trx_rec.application_id
2617 AND entity_code = p_sync_trx_rec.entity_code
2618 AND event_class_code = p_sync_trx_rec.event_class_code
2619 AND event_type_code = p_sync_trx_rec.event_type_code;
2620
2621 EXCEPTION
2622 WHEN OTHERS THEN
2623 --NULL;
2624 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2625 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Incorrect event_type_code passed: ' || p_sync_trx_rec.event_type_code);
2626 END IF;
2627 RETURN;
2628 END;
2629
2630 BEGIN
2631
2632 SELECT distinct internal_organization_id into
2633 l_event_class_rec.internal_organization_id
2634 FROM
2635 zx_lines
2636 WHERE
2637 application_id = p_sync_trx_rec.application_id
2638 AND entity_code = p_sync_trx_rec.entity_code
2639 AND event_class_code = p_sync_trx_rec.event_class_code
2640 AND trx_id = p_sync_trx_rec.trx_id;
2641
2642 EXCEPTION
2643 WHEN OTHERS THEN
2644 NULL;
2645 END;
2646
2647 /*--------------------------------------------------+
2648 | Update zx_lines_det_factors |
2649 +--------------------------------------------------*/
2650 /*Retrieve the sequence id since it has to be same for all updated rows*/
2651 select ZX_LINES_DET_FACTORS_S.nextval
2652 INTO l_event_class_rec.event_id
2653 FROM dual;
2654
2655 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2656 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2657 'application_id: '||to_char(p_sync_trx_rec.application_id)||
2658 ', entity_code: '||p_sync_trx_rec.entity_code||
2659 ', event_class_code: '||p_sync_trx_rec.event_class_code||
2660 ', event_type_code: '||p_sync_trx_rec.event_type_code||
2661 ', tax_event_type_code: '||l_event_class_rec.tax_event_type_code||
2662 ', trx_id: '||to_char(p_sync_trx_rec.trx_id)||
2663 ', trx_number: '||p_sync_trx_rec.trx_number||
2664 ', trx_description: '||p_sync_trx_rec.trx_description||
2665 ', trx_communicated_date: '||to_char(p_sync_trx_rec.trx_communicated_date)||
2666 ', batch_source_id: '||to_char(p_sync_trx_rec.batch_source_id)||
2667 ', batch_source_name: '||p_sync_trx_rec.batch_source_name||
2668 ', doc_seq_id: '||to_char(p_sync_trx_rec.doc_seq_id)||
2669 ', doc_seq_name: '||p_sync_trx_rec.doc_seq_name||
2670 ', doc_seq_name: '||p_sync_trx_rec.doc_seq_value||
2671 ', trx_due_date: '||to_char(p_sync_trx_rec.trx_due_date)||
2672 ', trx_type_description: '||to_char(p_sync_trx_rec.trx_type_description)||
2673 ', supplier_tax_invoice_number: '||p_sync_trx_rec.supplier_tax_invoice_number||
2674 ', supplier_exchange_rate: '||to_char(p_sync_trx_rec.supplier_exchange_rate)||
2675 ', supplier_tax_invoice_date: '||to_char(p_sync_trx_rec.supplier_tax_invoice_date)||
2676 ', tax_invoice_date: '||to_char(p_sync_trx_rec.tax_invoice_date)||
2677 ', tax_invoice_number: '||p_sync_trx_rec.tax_invoice_number||
2678 ', port_of_entry_code: '||p_sync_trx_rec.port_of_entry_code);
2679
2680 FOR i IN 1..nvl(p_sync_trx_lines_tbl.APPLICATION_ID.LAST,-99)
2681 LOOP
2682 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2683 'trx_line_id: '||to_char(p_sync_trx_lines_tbl.trx_line_id(i))||
2684 ', trx_level_type: '||p_sync_trx_lines_tbl.trx_level_type(i)||
2685 ', trx_waybill_number: '||p_sync_trx_lines_tbl.trx_waybill_number(i)||
2686 ', trx_line_description: '||p_sync_trx_lines_tbl.trx_line_description(i)||
2687 ', product_description: '||p_sync_trx_lines_tbl.product_description(i)||
2688 ', trx_line_gl_date: '||to_char(p_sync_trx_lines_tbl.trx_line_gl_date(i))||
2689 ', merchant_party_name: '||p_sync_trx_lines_tbl.merchant_party_name(i)||
2690 ', merchant_party_document_number: '||p_sync_trx_lines_tbl.merchant_party_document_number(i)||
2691 ', merchant_party_reference: '||p_sync_trx_lines_tbl.merchant_party_reference(i)||
2695 END LOOP;
2692 ', merchant_party_taxpayer_id: '||p_sync_trx_lines_tbl.merchant_party_taxpayer_id(i)||
2693 ', merchant_party_tax_reg_number: '||p_sync_trx_lines_tbl.merchant_party_tax_reg_number(i)||
2694 ', asset_number: '||to_char(p_sync_trx_lines_tbl.asset_number(i)));
2696 END IF;
2697
2698 /* update the header level attributes*/
2699 UPDATE ZX_LINES_DET_FACTORS SET
2700 EVENT_ID = l_event_class_rec.event_id,
2701 --EVENT_TYPE_CODE = p_sync_trx_rec.EVENT_TYPE_CODE, /*bug 3922983*/
2702 TRX_NUMBER = p_sync_trx_rec.TRX_NUMBER,
2703 TRX_DESCRIPTION = p_sync_trx_rec.TRX_DESCRIPTION,
2704 TRX_COMMUNICATED_DATE = p_sync_trx_rec.TRX_COMMUNICATED_DATE,
2705 BATCH_SOURCE_ID = p_sync_trx_rec.BATCH_SOURCE_ID,
2706 BATCH_SOURCE_NAME = p_sync_trx_rec.BATCH_SOURCE_NAME,
2707 DOC_SEQ_ID = p_sync_trx_rec.DOC_SEQ_ID,
2708 DOC_SEQ_NAME = p_sync_trx_rec.DOC_SEQ_NAME,
2709 DOC_SEQ_VALUE = p_sync_trx_rec.DOC_SEQ_VALUE,
2710 TRX_DUE_DATE = p_sync_trx_rec.TRX_DUE_DATE,
2711 TRX_TYPE_DESCRIPTION = p_sync_trx_rec.TRX_TYPE_DESCRIPTION,
2712 SUPPLIER_TAX_INVOICE_NUMBER = decode(p_sync_trx_rec.SUPPLIER_TAX_INVOICE_NUMBER,FND_API.G_MISS_CHAR,SUPPLIER_TAX_INVOICE_NUMBER,p_sync_trx_rec.SUPPLIER_TAX_INVOICE_NUMBER), --Bug 5910475
2713 SUPPLIER_TAX_INVOICE_DATE = decode(p_sync_trx_rec.SUPPLIER_TAX_INVOICE_DATE,FND_API.G_MISS_DATE,SUPPLIER_TAX_INVOICE_DATE,p_sync_trx_rec.SUPPLIER_TAX_INVOICE_DATE), --Bug 5910475
2714 SUPPLIER_EXCHANGE_RATE = decode(p_sync_trx_rec.SUPPLIER_EXCHANGE_RATE,FND_API.G_MISS_NUM,SUPPLIER_EXCHANGE_RATE,p_sync_trx_rec.SUPPLIER_EXCHANGE_RATE), --Bug 5910475
2715 TAX_INVOICE_DATE = decode(p_sync_trx_rec.TAX_INVOICE_DATE,FND_API.G_MISS_DATE,TAX_INVOICE_DATE,p_sync_trx_rec.TAX_INVOICE_DATE), --Bug 5910475
2716 TAX_INVOICE_NUMBER = decode(p_sync_trx_rec.TAX_INVOICE_NUMBER,FND_API.G_MISS_CHAR,TAX_INVOICE_NUMBER,p_sync_trx_rec.TAX_INVOICE_NUMBER), --Bug 5910475
2717 PORT_OF_ENTRY_CODE = decode(p_sync_trx_rec.PORT_OF_ENTRY_CODE,FND_API.G_MISS_CHAR,PORT_OF_ENTRY_CODE,p_sync_trx_rec.PORT_OF_ENTRY_CODE) , --Bug 5910475
2718 APPLICATION_DOC_STATUS = decode(p_sync_trx_rec.APPLICATION_DOC_STATUS,FND_API.G_MISS_CHAR,APPLICATION_DOC_STATUS,p_sync_trx_rec.APPLICATION_DOC_STATUS) --Bug 5910475
2719 WHERE APPLICATION_ID = p_sync_trx_rec.APPLICATION_ID
2720 AND ENTITY_CODE = p_sync_trx_rec.ENTITY_CODE
2721 AND EVENT_CLASS_CODE = p_sync_trx_rec.EVENT_CLASS_CODE
2722 AND TRX_ID = p_sync_trx_rec.TRX_ID;
2723 /* Fixed as part of 6826754 */
2724 UPDATE ZX_LINES
2725 SET TRX_NUMBER = p_sync_trx_rec.TRX_NUMBER
2726 WHERE APPLICATION_ID = p_sync_trx_rec.APPLICATION_ID
2727 AND ENTITY_CODE = p_sync_trx_rec.ENTITY_CODE
2728 AND EVENT_CLASS_CODE = p_sync_trx_rec.EVENT_CLASS_CODE
2729 AND TRX_ID = p_sync_trx_rec.TRX_ID;
2730
2731 --Bugfix 4486946 -Call on the fly upgrade if the transaction if not found
2732 IF sql%notfound THEN
2733 l_upg_trx_info_rec.application_id := l_event_class_rec.application_id;
2734 l_upg_trx_info_rec.entity_code := l_event_class_rec.entity_code;
2735 l_upg_trx_info_rec.event_class_code := l_event_class_rec.event_class_code;
2736 l_upg_trx_info_rec.trx_id := l_event_class_rec.trx_id;
2737 ZX_ON_FLY_TRX_UPGRADE_PKG.upgrade_trx_on_fly(p_upg_trx_info_rec => l_upg_trx_info_rec,
2738 x_return_status => l_return_status
2739 );
2740 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2741 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2742 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_ON_FLY_TRX_UPGRADE_PKG.upgrade_trx_on_fly returned errors');
2743 END IF;
2744 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2745 RAISE FND_API.G_EXC_ERROR;
2746 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2747 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2748 END IF;
2749 END IF;
2750 /* update the header level attributes*/
2751 UPDATE ZX_LINES_DET_FACTORS SET
2752 EVENT_ID = l_event_class_rec.event_id,
2753 --EVENT_TYPE_CODE = p_sync_trx_rec.EVENT_TYPE_CODE, /*bug 3922983*/
2754 TRX_NUMBER = p_sync_trx_rec.TRX_NUMBER,
2755 TRX_DESCRIPTION = p_sync_trx_rec.TRX_DESCRIPTION,
2756 TRX_COMMUNICATED_DATE = p_sync_trx_rec.TRX_COMMUNICATED_DATE,
2757 BATCH_SOURCE_ID = p_sync_trx_rec.BATCH_SOURCE_ID,
2758 BATCH_SOURCE_NAME = p_sync_trx_rec.BATCH_SOURCE_NAME,
2759 DOC_SEQ_ID = p_sync_trx_rec.DOC_SEQ_ID,
2760 DOC_SEQ_NAME = p_sync_trx_rec.DOC_SEQ_NAME,
2761 DOC_SEQ_VALUE = p_sync_trx_rec.DOC_SEQ_VALUE,
2762 TRX_DUE_DATE = p_sync_trx_rec.TRX_DUE_DATE,
2763 TRX_TYPE_DESCRIPTION = p_sync_trx_rec.TRX_TYPE_DESCRIPTION,
2767 TAX_INVOICE_DATE = decode(p_sync_trx_rec.TAX_INVOICE_DATE,FND_API.G_MISS_DATE,TAX_INVOICE_DATE,p_sync_trx_rec.TAX_INVOICE_DATE), --Bug 5910475
2764 SUPPLIER_TAX_INVOICE_NUMBER = decode(p_sync_trx_rec.SUPPLIER_TAX_INVOICE_NUMBER,FND_API.G_MISS_CHAR,SUPPLIER_TAX_INVOICE_NUMBER,p_sync_trx_rec.SUPPLIER_TAX_INVOICE_NUMBER), --Bug 5910475
2765 SUPPLIER_TAX_INVOICE_DATE = decode(p_sync_trx_rec.SUPPLIER_TAX_INVOICE_DATE,FND_API.G_MISS_DATE,SUPPLIER_TAX_INVOICE_DATE,p_sync_trx_rec.SUPPLIER_TAX_INVOICE_DATE), --Bug 5910475
2766 SUPPLIER_EXCHANGE_RATE = decode(p_sync_trx_rec.SUPPLIER_EXCHANGE_RATE,FND_API.G_MISS_NUM,SUPPLIER_EXCHANGE_RATE,p_sync_trx_rec.SUPPLIER_EXCHANGE_RATE), --Bug 5910475
2768 TAX_INVOICE_NUMBER = decode(p_sync_trx_rec.TAX_INVOICE_NUMBER,FND_API.G_MISS_CHAR,TAX_INVOICE_NUMBER,p_sync_trx_rec.TAX_INVOICE_NUMBER), --Bug 5910475
2769 PORT_OF_ENTRY_CODE = decode(p_sync_trx_rec.PORT_OF_ENTRY_CODE,FND_API.G_MISS_CHAR,PORT_OF_ENTRY_CODE,p_sync_trx_rec.PORT_OF_ENTRY_CODE) , --Bug 5910475
2770 APPLICATION_DOC_STATUS = decode(p_sync_trx_rec.APPLICATION_DOC_STATUS,FND_API.G_MISS_CHAR,APPLICATION_DOC_STATUS,p_sync_trx_rec.APPLICATION_DOC_STATUS) --Bug 5910475
2771 WHERE APPLICATION_ID = p_sync_trx_rec.APPLICATION_ID
2772 AND ENTITY_CODE = p_sync_trx_rec.ENTITY_CODE
2773 AND EVENT_CLASS_CODE = p_sync_trx_rec.EVENT_CLASS_CODE
2774 AND TRX_ID = p_sync_trx_rec.TRX_ID;
2775 /* Fixed as part of 6826754 */
2776 UPDATE ZX_LINES
2777 SET TRX_NUMBER = p_sync_trx_rec.TRX_NUMBER
2778 WHERE APPLICATION_ID = p_sync_trx_rec.APPLICATION_ID
2779 AND ENTITY_CODE = p_sync_trx_rec.ENTITY_CODE
2780 AND EVENT_CLASS_CODE = p_sync_trx_rec.EVENT_CLASS_CODE
2781 AND TRX_ID = p_sync_trx_rec.TRX_ID;
2782
2783 END IF; --sql%notfound
2784 --Bugfix 4486946 - on-the-fly upgrade end
2785
2786 /* update the line level attributes if passed*/
2787 IF (p_sync_trx_lines_tbl.APPLICATION_ID.EXISTS(1)) THEN
2788 FORALL i IN 1..nvl(p_sync_trx_lines_tbl.APPLICATION_ID.LAST,-99)
2789 UPDATE ZX_LINES_DET_FACTORS SET
2790 TRX_LEVEL_TYPE = p_sync_trx_lines_tbl.TRX_LEVEL_TYPE(i),
2791 TRX_LINE_ID = p_sync_trx_lines_tbl.TRX_LINE_ID(i),
2792 TRX_WAYBILL_NUMBER = p_sync_trx_lines_tbl.TRX_WAYBILL_NUMBER(i),
2793 TRX_LINE_DESCRIPTION = p_sync_trx_lines_tbl.TRX_LINE_DESCRIPTION(i),
2794 PRODUCT_DESCRIPTION = p_sync_trx_lines_tbl.PRODUCT_DESCRIPTION(i),
2795 TRX_LINE_GL_DATE = p_sync_trx_lines_tbl.TRX_LINE_GL_DATE(i),
2796 MERCHANT_PARTY_NAME = p_sync_trx_lines_tbl.MERCHANT_PARTY_NAME(i),
2797 MERCHANT_PARTY_DOCUMENT_NUMBER = p_sync_trx_lines_tbl.MERCHANT_PARTY_DOCUMENT_NUMBER(i),
2798 MERCHANT_PARTY_REFERENCE = p_sync_trx_lines_tbl.MERCHANT_PARTY_REFERENCE(i),
2799 MERCHANT_PARTY_TAXPAYER_ID = p_sync_trx_lines_tbl.MERCHANT_PARTY_TAXPAYER_ID(i),
2800 MERCHANT_PARTY_TAX_REG_NUMBER = p_sync_trx_lines_tbl.MERCHANT_PARTY_TAX_REG_NUMBER(i),
2801 ASSET_NUMBER = p_sync_trx_lines_tbl.ASSET_NUMBER(i)
2802 WHERE APPLICATION_ID = p_sync_trx_rec.APPLICATION_ID
2803 AND ENTITY_CODE = p_sync_trx_rec.ENTITY_CODE
2804 AND EVENT_CLASS_CODE = p_sync_trx_rec.EVENT_CLASS_CODE
2805 AND TRX_ID = p_sync_trx_rec.TRX_ID
2806 AND TRX_LINE_ID = p_sync_trx_lines_tbl.TRX_LINE_ID(i)
2807 AND TRX_LEVEL_TYPE = p_sync_trx_lines_tbl.TRX_LEVEL_TYPE(i);
2808 END IF;
2809
2810
2811 /*********Partner code Start************************/
2812 ZX_SRVC_TYP_PKG.synchronize_tax(l_event_class_rec,
2813 l_return_status
2814 );
2815 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2816 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2817 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_SRVC_TYP_PKG.synchronize_tax returned errors');
2818 END IF;
2819 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2820 RAISE FND_API.G_EXC_ERROR;
2821 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2822 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2823 END IF;
2824 END IF;
2825
2826 /********Partner Code End *************************/
2827
2828 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2829 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
2830 END IF;
2831
2832 EXCEPTION
2833 WHEN FND_API.G_EXC_ERROR THEN
2834 ROLLBACK TO Synchronize_tax_PVT;
2835 x_return_status := FND_API.G_RET_STS_ERROR ;
2836 /*---------------------------------------------------------+
2837 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
2838 | in the message stack. If there is only one message in |
2839 | the stack it retrieves this message |
2840 +---------------------------------------------------------*/
2841 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
2842 p_count => x_msg_count,
2843 p_data => x_msg_data
2844 );
2845 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
2849 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2846 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
2847 END IF;
2848
2850 ROLLBACK TO Synchronize_tax_PVT;
2851 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2852 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
2853 FND_MSG_PUB.Add;
2854 /*---------------------------------------------------------+
2855 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
2856 | in the message stack. If there is only one message in |
2857 | the stack it retrieves this message |
2858 +---------------------------------------------------------*/
2859 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
2860 p_count => x_msg_count,
2861 p_data => x_msg_data
2862 );
2863 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
2864 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
2865 END IF;
2866
2867 WHEN OTHERS THEN
2868 ROLLBACK TO Synchronize_tax_PVT;
2869 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2870 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
2871 FND_MSG_PUB.Add;
2872 /*---------------------------------------------------------+
2873 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
2874 | in the message stack. If there is only one message in |
2875 | the stack it retrieves this message |
2876 +---------------------------------------------------------*/
2877 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
2878 p_count => x_msg_count,
2879 p_data => x_msg_data
2880 );
2881 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
2882 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
2883 END IF;
2884 END synchronize_tax_repository;
2885
2886 /* ======================================================================*
2887 | PROCEDURE override_tax : Overrides tax lines |
2888 | There exists only pl/sql version for this API |
2889 * ======================================================================*/
2890
2891 PROCEDURE Override_tax
2892 ( p_api_version IN NUMBER,
2893 p_init_msg_list IN VARCHAR2,
2894 p_commit IN VARCHAR2,
2895 p_validation_level IN NUMBER,
2896 x_return_status OUT NOCOPY VARCHAR2,
2897 x_msg_count OUT NOCOPY NUMBER,
2898 x_msg_data OUT NOCOPY VARCHAR2,
2899 p_transaction_rec IN transaction_rec_type,
2900 p_override_level IN VARCHAR2,
2901 p_event_id IN NUMBER
2902 ) IS
2903 l_api_name CONSTANT VARCHAR2(30) := 'OVERRIDE_TAX';
2904 l_api_version CONSTANT NUMBER := 1.0;
2905 l_return_status VARCHAR2(30);
2906 l_init_msg_list VARCHAR2(1);
2907 l_event_class_rec event_class_rec_type;
2908 l_transaction_header_rec transaction_header_rec_type;
2909 l_context_info_rec context_info_rec_type;
2910 l_index BINARY_INTEGER;
2911 l_record_tax_lines VARCHAR2(1);
2912
2913 CURSOR get_trx_date_csr
2914 (c_application_id zx_lines_det_factors.application_id%TYPE,
2915 c_entity_code zx_lines_det_factors.entity_code%TYPE,
2916 c_event_class_code zx_lines_det_factors.event_class_code%TYPE,
2917 c_trx_id zx_lines_det_factors.trx_id%TYPE,
2918 c_event_id zx_lines_det_factors.event_id%TYPE
2919 ) IS
2920 SELECT trx_date,
2921 related_doc_date,
2922 provnl_tax_determination_date
2923 FROM zx_lines_det_factors
2924 WHERE application_id = c_application_id
2925 AND entity_code = c_entity_code
2926 AND event_class_code = c_event_class_code
2927 AND trx_id = c_trx_id
2928 AND event_id = c_event_id
2929 AND ROWNUM = 1;
2930
2931 BEGIN
2932
2933 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2934 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
2935 END IF;
2936
2937 /*--------------------------------------------------+
2938 | Standard start of API savepoint |
2939 +--------------------------------------------------*/
2940 SAVEPOINT Override_Tax_PVT;
2941
2942 /*--------------------------------------------------+
2943 | Standard call to check for call compatibility |
2944 +--------------------------------------------------*/
2945
2946 IF NOT FND_API.Compatible_API_Call(l_api_version,
2947 p_api_version,
2948 l_api_name,
2949 G_PKG_NAME
2950 ) THEN
2951 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2952 END IF;
2953
2954
2955 /*--------------------------------------------------------------+
2956 | Initialize message list if p_init_msg_list is set to TRUE |
2957 +--------------------------------------------------------------*/
2958 IF p_init_msg_list is null THEN
2959 l_init_msg_list := FND_API.G_FALSE;
2963
2960 ELSE
2961 l_init_msg_list := p_init_msg_list;
2962 END IF;
2964 IF FND_API.to_Boolean(l_init_msg_list) THEN
2965 FND_MSG_PUB.initialize;
2966 END IF;
2967
2968 /*-----------------------------------------+
2969 | Initialize return status to SUCCESS |
2970 +-----------------------------------------*/
2971
2972 x_return_status := FND_API.G_RET_STS_SUCCESS;
2973
2974 /*-----------------------------------------+
2975 | Populate Global Variable |
2976 +-----------------------------------------*/
2977
2978 G_PUB_SRVC := l_api_name;
2979 G_DATA_TRANSFER_MODE := 'PLS';
2980 G_EXTERNAL_API_CALL := 'N';
2981
2982 --Call TDS process to reset the session for previous override tax calls if any
2983 ZX_TDS_CALC_SERVICES_PUB_PKG.initialize (p_event_class_rec => NULL,
2984 p_init_level => 'SESSION',
2985 x_return_status => l_return_status
2986 );
2987
2988 set_ptnr_srvc_subscr_flag (p_event_class_rec => NULL,
2989 x_return_status => l_return_status
2990 );
2991
2992 ZX_GLOBAL_STRUCTURES_PKG.LOC_GEOGRAPHY_INFO_TBL.DELETE;
2993 ZX_GLOBAL_STRUCTURES_PKG.g_registration_info_tbl.DELETE;
2994 /*------------------------------------------------------+
2995 | Copy to Event Class Record |
2996 +------------------------------------------------------*/
2997 l_event_class_rec.event_id := p_event_id;
2998 l_event_class_rec.INTERNAL_ORGANIZATION_ID := p_transaction_rec.INTERNAL_ORGANIZATION_ID;
2999 l_event_class_rec.APPLICATION_ID := p_transaction_rec.APPLICATION_ID;
3000 l_event_class_rec.ENTITY_CODE := p_transaction_rec.ENTITY_CODE;
3001 l_event_class_rec.EVENT_CLASS_CODE := p_transaction_rec.EVENT_CLASS_CODE;
3002 l_event_class_rec.EVENT_TYPE_CODE := p_transaction_rec.EVENT_TYPE_CODE;
3003 l_event_class_rec.TRX_ID := p_transaction_rec.TRX_ID;
3004
3005 -- bug 5684123
3006 --
3007 OPEN get_trx_date_csr
3008 (l_event_class_rec.application_id,
3009 l_event_class_rec.entity_code,
3010 l_event_class_rec.event_class_code,
3011 l_event_class_rec.trx_id,
3012 l_event_class_rec.event_id);
3013 FETCH get_trx_date_csr INTO l_event_class_rec.trx_date,
3014 l_event_class_rec.rel_doc_date,
3015 l_event_class_rec.provnl_tax_determination_date;
3016 CLOSE get_trx_date_csr;
3017
3018 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3019 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
3020 'application_id: '||to_char(l_event_class_rec.application_id)||
3021 ', entity_code: '||l_event_class_rec.entity_code||
3022 ', event_class_code: '||l_event_class_rec.event_class_code||
3023 ', event_type_code: '||l_event_class_rec.event_type_code||
3024 ', trx_id: '||to_char(l_event_class_rec.trx_id)||
3025 ', internal_organization_id: '||to_char(l_event_class_rec.internal_organization_id) ||
3026 ', trx_date: '||to_char(l_event_class_rec.trx_date, 'MM-DD-YYYY'));
3027 END IF;
3028
3029 IF l_event_class_rec.event_class_code = 'CREDIT_MEMO' THEN
3030 ZX_GLOBAL_STRUCTURES_PKG.g_credit_memo_exists_flg := 'Y';
3031 END IF;
3032
3033 /*------------------------------------------------------+
3034 | Validate and Initializate parameters for Override |
3035 | tax |
3036 +------------------------------------------------------*/
3037 ZX_VALID_INIT_PARAMS_PKG.override_tax(x_return_status => l_return_status ,
3038 p_override => p_override_level,
3039 p_event_class_rec => l_event_class_rec,
3040 p_trx_rec => p_transaction_rec
3041 );
3042
3043 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3044 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3045 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_VALID_INIT_PARAMS_PKG.override_tax returned errors');
3046 END IF;
3047 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
3048 RAISE FND_API.G_EXC_ERROR;
3049 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3050 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3051 END IF;
3052 END IF;
3053
3054 /*===============================================================================*
3055 |Initialize the global structures/global temp tables owned by TDM at header level |
3056 *================================================================================*/
3057 ZX_TDS_CALC_SERVICES_PUB_PKG.initialize (l_event_class_rec,
3058 'HEADER',
3059 l_return_status
3060 );
3061
3062 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3063 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3064 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TDS_CALC_SERVICES_PUB_PKG.initialize returned errors');
3065 END IF;
3069 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3066 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
3067 RAISE FND_API.G_EXC_ERROR;
3068 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3070 END IF;
3071 END IF;
3072
3073 /*--------------------------------------------------+
3074 | Call Service Type Override Summary or Override |
3075 | Detail Tax Lines depending of the overriding |
3076 | level. |
3077 +--------------------------------------------------*/
3078 ZX_SRVC_TYP_PKG.override_tax_lines(p_event_class_rec => l_event_class_rec,
3079 p_override_level => p_override_level,
3080 x_return_status => l_return_status
3081 );
3082 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3083 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3084 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TDS_CALC_SERVICES_PUB_PKG.initialize returned errors');
3085 END IF;
3086 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
3087 RAISE FND_API.G_EXC_ERROR;
3088 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3089 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3090 END IF;
3091 END IF;
3092
3093 /*-----------------------------------------------------+
3094 | Call to eTax service Dump Detail Tax Lines Into GT|
3095 +-----------------------------------------------------*/
3096 ZX_TDS_CALC_SERVICES_PUB_PKG.dump_detail_tax_lines_into_gt(x_return_status => l_return_status);
3097
3098 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3099 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3100 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TDS_CALC_SERVICES_PUB_PKG.dump_detail_tax_lines_into_gt returned errors');
3101 END IF;
3102 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
3103 RAISE FND_API.G_EXC_ERROR;
3104 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3105 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3106 END IF;
3107 END IF;
3108
3109 /*--------------------------------------------------+
3110 | Call to eTax Service Tax Lines Determination |
3111 +--------------------------------------------------*/
3112 ZX_TDS_CALC_SERVICES_PUB_PKG.tax_line_determination(p_event_class_rec => l_event_class_rec,
3113 x_return_status => l_return_status
3114 );
3115
3116 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3117 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3118 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TDS_CALC_SERVICES_PUB_PKG.tax_line_determination returned errors');
3119 END IF;
3120 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
3121 RAISE FND_API.G_EXC_ERROR;
3122 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3123 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3124 END IF;
3125 END IF;
3126
3127 /*--------------------------------------------------+
3128 | Call to eTax Service Manage Tax Lines |
3129 +--------------------------------------------------*/
3130 --Rounding and Summarization of Tax Lines for Transaction
3131 /*Bug 3649502 - Check for record flag before calling TRR service*/
3132 --IF l_event_class_rec.record_flag = 'Y' THEN
3133
3134 l_record_tax_lines := l_event_class_rec.record_flag;
3135 IF l_event_class_rec.record_flag = 'Y' and
3136 l_event_class_rec.quote_flag = 'Y' THEN
3137 l_record_tax_lines := 'N';
3138 END IF;
3139 IF l_record_tax_lines = 'Y' THEN
3140 ZX_TRL_PUB_PKG.manage_taxlines(p_event_class_rec =>l_event_class_rec,
3141 x_return_status =>l_return_status
3142 );
3143 END IF;
3144
3145 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3146 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3147 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TRL_PUB_PKG.manage_taxlines returned errors');
3148 END IF;
3149 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
3150 RAISE FND_API.G_EXC_ERROR;
3151 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3152 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3153 END IF;
3154 END IF;
3155
3156 --Delete from the global structures so that there are no hanging/redundant
3157 --records sitting there
3158 ZX_GLOBAL_STRUCTURES_PKG.delete_trx_line_dist_tbl;
3159
3160 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3161 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
3162 END IF;
3163
3164 EXCEPTION
3165 WHEN FND_API.G_EXC_ERROR THEN
3166 ROLLBACK TO Override_Tax_PVT;
3167 x_return_status := FND_API.G_RET_STS_ERROR ;
3168 /*---------------------------------------------------------+
3169 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
3170 | in the message stack. If there is only one message in |
3171 | the stack it retrieves this message |
3172 +---------------------------------------------------------*/
3173 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
3174 p_count => x_msg_count,
3178 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
3175 p_data => x_msg_data
3176 );
3177 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
3179 END IF;
3180
3181 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3182 ROLLBACK TO Override_Tax_PVT;
3183 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3184 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
3185 FND_MSG_PUB.Add;
3186 /*---------------------------------------------------------+
3187 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
3188 | in the message stack. If there is only one message in |
3189 | the stack it retrieves this message |
3190 +---------------------------------------------------------*/
3191 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
3192 p_count => x_msg_count,
3193 p_data => x_msg_data
3194 );
3195 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
3196 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
3197 END IF;
3198
3199 WHEN OTHERS THEN
3200 ROLLBACK TO Override_Tax_PVT;
3201 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3202 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
3203 FND_MSG_PUB.Add;
3204 /*---------------------------------------------------------+
3205 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
3206 | in the message stack. If there is only one message in |
3207 | the stack it retrieves this message |
3208 +---------------------------------------------------------*/
3209 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
3210 p_count => x_msg_count,
3211 p_data => x_msg_data
3212 );
3213 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
3214 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
3215 END IF;
3216 END override_tax;
3217
3218
3219 /* ======================================================================*
3220 | PROCEDURE global_document_update : |
3221 * ======================================================================*/
3222
3223 PROCEDURE Global_document_update
3224 ( p_api_version IN NUMBER,
3225 p_init_msg_list IN VARCHAR2,
3226 p_commit IN VARCHAR2 ,
3227 p_validation_level IN NUMBER,
3228 x_return_status OUT NOCOPY VARCHAR2,
3229 x_msg_count OUT NOCOPY NUMBER,
3230 x_msg_data OUT NOCOPY VARCHAR2,
3231 p_transaction_rec IN OUT NOCOPY transaction_rec_type
3232 ) IS
3233 l_api_name CONSTANT VARCHAR2(30) := 'GLOBAL_DOCUMENT_UPDATE';
3234 l_api_version CONSTANT NUMBER := 1.0;
3235 l_return_status VARCHAR2(30);
3236 l_validation_status ZX_API_PUB.validation_status_tbl_type;
3237 l_init_msg_list VARCHAR2(1);
3238
3239 BEGIN
3240 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3241 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
3242 END IF;
3243
3244 /*--------------------------------------------------+
3245 | Standard start of API savepoint |
3246 +--------------------------------------------------*/
3247 SAVEPOINT global_document_update_PVT;
3248
3249 /*--------------------------------------------------+
3250 | Standard call to check for call compatibility |
3251 +--------------------------------------------------*/
3252
3253 IF NOT FND_API.Compatible_API_Call(l_api_version,
3254 p_api_version,
3255 l_api_name,
3256 G_PKG_NAME
3257 ) THEN
3258 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3259 END IF;
3260
3261 /*--------------------------------------------------------------+
3262 | Initialize message list if p_init_msg_list is set to TRUE |
3263 +--------------------------------------------------------------*/
3264 IF p_init_msg_list is null THEN
3265 l_init_msg_list := FND_API.G_FALSE;
3266 ELSE
3267 l_init_msg_list := p_init_msg_list;
3268 END IF;
3269
3270 IF FND_API.to_Boolean(l_init_msg_list) THEN
3271 FND_MSG_PUB.initialize;
3272 END IF;
3273
3274 /*-----------------------------------------+
3275 | Initialize return status to SUCCESS |
3276 +-----------------------------------------*/
3277
3278 x_return_status := FND_API.G_RET_STS_SUCCESS;
3279
3280 /*-----------------------------------------+
3281 | Populate Global Variable |
3282 +-----------------------------------------*/
3283 G_PUB_SRVC := l_api_name;
3284 G_DATA_TRANSFER_MODE := 'PLS';
3285 G_EXTERNAL_API_CALL := 'N';
3286
3287 /*-----------------------------------------------+
3288 | Calling Global Document Update with |
3289 | with validation status |
3290 +-----------------------------------------------*/
3291
3292 ZX_API_PUB.global_document_update(p_api_version,
3293 l_init_msg_list,
3294 p_commit,
3298 x_msg_data,
3295 p_validation_level,
3296 l_return_status,
3297 x_msg_count,
3299 p_transaction_rec,
3300 l_validation_status
3301 );
3302
3303 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3304 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3305 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_API_PUB.global_document_update returned errors');
3306 END IF;
3307 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
3308 RAISE FND_API.G_EXC_ERROR;
3309 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3310 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3311 END IF;
3312 END IF;
3313
3314 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3315 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
3316 END IF;
3317
3318 EXCEPTION
3319 WHEN FND_API.G_EXC_ERROR THEN
3320 ROLLBACK TO global_document_update_PVT;
3321 x_return_status := FND_API.G_RET_STS_ERROR ;
3322 /*---------------------------------------------------------+
3323 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
3324 | in the message stack. If there is only one message in |
3325 | the stack it retrieves this message |
3326 +---------------------------------------------------------*/
3327 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
3328 p_count => x_msg_count,
3329 p_data => x_msg_data
3330 );
3331 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
3332 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
3333 END IF;
3334
3335 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3336 ROLLBACK TO global_document_update_PVT;
3337 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3338 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
3339 FND_MSG_PUB.Add;
3340 /*---------------------------------------------------------+
3341 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
3342 | in the message stack. If there is only one message in |
3343 | the stack it retrieves this message |
3344 +---------------------------------------------------------*/
3345 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
3346 p_count => x_msg_count,
3347 p_data => x_msg_data
3348 );
3349 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
3350 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
3351 END IF;
3352
3353 WHEN OTHERS THEN
3354 ROLLBACK TO global_document_update_PVT;
3355 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3356 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
3357 FND_MSG_PUB.Add;
3358 /*---------------------------------------------------------+
3359 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
3360 | in the message stack. If there is only one message in |
3361 | the stack it retrieves this message |
3362 +---------------------------------------------------------*/
3363 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
3364 p_count => x_msg_count,
3365 p_data => x_msg_data
3366 );
3367
3368 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
3369 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
3370 END IF;
3371 END global_document_update;
3372
3373 /* ======================================================================*
3374 | PROCEDURE global_document_update : |
3375 * ======================================================================*/
3376
3377 PROCEDURE global_document_update
3378 ( p_api_version IN NUMBER,
3379 p_init_msg_list IN VARCHAR2,
3380 p_commit IN VARCHAR2,
3381 p_validation_level IN NUMBER,
3382 x_return_status OUT NOCOPY VARCHAR2,
3383 x_msg_count OUT NOCOPY NUMBER,
3384 x_msg_data OUT NOCOPY VARCHAR2,
3385 p_transaction_rec IN OUT NOCOPY transaction_rec_type,
3386 p_validation_status IN ZX_API_PUB.validation_status_tbl_type
3387 ) IS
3388 l_api_name CONSTANT VARCHAR2(30) := 'GLOBAL_DOCUMENT_UPDATE';
3389 l_api_version CONSTANT NUMBER := 1.0;
3390 l_event_class_rec event_class_rec_type;
3391 l_return_status VARCHAR2(30);
3392 l_context_info_rec context_info_rec_type;
3393 l_init_msg_list VARCHAR2(1);
3394 l_upg_trx_info_rec ZX_ON_FLY_TRX_UPGRADE_PKG.zx_upg_trx_info_rec_type;
3395 l_lines_det_rec zx_lines_det_factors%rowtype;
3396 BEGIN
3397 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3398 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
3399 END IF;
3400
3401 /*--------------------------------------------------+
3405
3402 | Standard start of API savepoint |
3403 +--------------------------------------------------*/
3404 SAVEPOINT global_document_update_PVT;
3406 /*--------------------------------------------------+
3407 | Standard call to check for call compatibility |
3408 +--------------------------------------------------*/
3409 IF NOT FND_API.Compatible_API_Call( l_api_version,
3410 p_api_version,
3411 l_api_name,
3412 G_PKG_NAME
3413 ) THEN
3414 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3415 END IF;
3416
3417 /*--------------------------------------------------------------+
3418 | Initialize message list if p_init_msg_list is set to TRUE |
3419 +--------------------------------------------------------------*/
3420 IF p_init_msg_list is null THEN
3421 l_init_msg_list := FND_API.G_FALSE;
3422 ELSE
3423 l_init_msg_list := p_init_msg_list;
3424 END IF;
3425
3426 IF FND_API.to_Boolean(l_init_msg_list) THEN
3427 FND_MSG_PUB.initialize;
3428 END IF;
3429
3430 /*-----------------------------------------+
3431 | Initialize return status to SUCCESS |
3432 +-----------------------------------------*/
3433 x_return_status := FND_API.G_RET_STS_SUCCESS;
3434
3435 /*-----------------------------------------+
3436 | Populate Global Variable |
3437 +-----------------------------------------*/
3438 G_PUB_SRVC := l_api_name;
3439 G_DATA_TRANSFER_MODE := 'PLS';
3440 G_EXTERNAL_API_CALL := 'N';
3441
3442
3443 /*------------------------------------------------------+
3444 | Validate Input Paramerters and Fetch Tax Options |
3445 +------------------------------------------------------*/
3446 ZX_VALID_INIT_PARAMS_PKG.global_document_update(x_return_status => l_return_status,
3447 p_event_class_rec => l_event_class_rec,
3448 p_trx_rec => p_transaction_rec
3449 );
3450
3451 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3452 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3453 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_VALID_INIT_PARAMS_PKG.global_document_update returned errors');
3454 END IF;
3455 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
3456 RAISE FND_API.G_EXC_ERROR;
3457 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3458 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3459 END IF;
3460 END IF;
3461
3462
3463
3464 /*------------------------------------------------+
3465 | Update zx_lines_det_factors |
3466 +------------------------------------------------*/
3467 IF l_event_class_rec.tax_event_type_code IN ('DELETE','PURGE') THEN
3468 -- Bug 5200373: Incarporated missing hook to take snapshot of zx_lines_det_factors so that
3469 -- upgraded R11i partner softwares can handle the header level document delete
3470 -- sceanrio.
3471 zx_r11i_tax_partner_pkg.copy_trx_line_for_ptnr_bef_upd(NULL
3472 , l_event_class_rec
3473 , NULL
3474 , 'N'
3475 , NULL
3476 , NULL
3477 , l_return_status);
3478 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3479 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3480 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':zx_r11i_tax_partner_pkg.copy_trx_line_for_ptnr_bef_upd returned errors');
3481 END IF;
3482 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
3483 RAISE FND_API.G_EXC_ERROR;
3484 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3485 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3486 END IF;
3487 END IF;
3488
3489 -- Bug 5237826: Explicitly check if the resource is busy prior to making the delete. Resource can
3490 -- become busy if calling products fail to issue a COMMIT or ROLLBACK immediately
3491 -- after call to this API.
3492 BEGIN
3493 /*Lock trx line det factors for delete*/
3494 SELECT *
3495 INTO l_lines_det_rec
3496 FROM ZX_LINES_DET_FACTORS
3497 WHERE application_id = p_transaction_rec.application_id
3498 AND entity_code = p_transaction_rec.entity_code
3499 AND event_class_code = p_transaction_rec.event_class_code
3500 AND trx_id = p_transaction_rec.trx_id
3501 AND rownum = 1
3502 FOR UPDATE NOWAIT;
3503 EXCEPTION
3504 WHEN NO_DATA_FOUND THEN
3505 NULL;
3506 WHEN OTHERS THEN
3507 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
3508 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3509 END IF;
3510 IF (SQLCODE = 54) THEN
3511 FND_MESSAGE.SET_NAME('ZX','ZX_RESOURCE_BUSY');
3512 l_context_info_rec.APPLICATION_ID := p_transaction_rec.APPLICATION_ID;
3516 ZX_API_PUB.add_msg( p_context_info_rec => l_context_info_rec );
3513 l_context_info_rec.ENTITY_CODE := p_transaction_rec.ENTITY_CODE;
3514 l_context_info_rec.EVENT_CLASS_CODE := p_transaction_rec.EVENT_CLASS_CODE;
3515 l_context_info_rec.TRX_ID := p_transaction_rec.TRX_ID;
3517 RAISE FND_API.G_EXC_ERROR;
3518 ELSE
3519 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3520 END IF;
3521 END;
3522
3523 DELETE from ZX_LINES_DET_FACTORS
3524 WHERE APPLICATION_ID = p_transaction_rec.APPLICATION_ID
3525 AND ENTITY_CODE = p_transaction_rec.ENTITY_CODE
3526 AND EVENT_CLASS_CODE = p_transaction_rec.EVENT_CLASS_CODE
3527 AND TRX_ID = p_transaction_rec.TRX_ID;
3528
3529 ELSIF l_event_class_rec.tax_event_type_code NOT IN ('RELEASE_HOLD') THEN
3530 UPDATE ZX_LINES_DET_FACTORS
3531 SET EVENT_TYPE_CODE = l_event_class_rec.event_type_code,
3532 TAX_EVENT_TYPE_CODE = l_event_class_rec.tax_event_type_code,
3533 DOC_EVENT_STATUS = l_event_class_rec.doc_status_code
3534 WHERE APPLICATION_ID = p_transaction_rec.APPLICATION_ID
3535 AND ENTITY_CODE = p_transaction_rec.ENTITY_CODE
3536 AND EVENT_CLASS_CODE = p_transaction_rec.EVENT_CLASS_CODE
3537 AND TRX_ID = p_transaction_rec.TRX_ID;
3538
3539 --Bugfix 4486946 -Call on the fly upgrade if the transaction if not found
3540 IF sql%notfound THEN
3541 l_upg_trx_info_rec.application_id := l_event_class_rec.application_id;
3542 l_upg_trx_info_rec.entity_code := l_event_class_rec.entity_code;
3543 l_upg_trx_info_rec.event_class_code := l_event_class_rec.event_class_code;
3544 l_upg_trx_info_rec.trx_id := l_event_class_rec.trx_id;
3545 ZX_ON_FLY_TRX_UPGRADE_PKG.upgrade_trx_on_fly(p_upg_trx_info_rec => l_upg_trx_info_rec,
3546 x_return_status => l_return_status
3547 );
3548 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3549 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3550 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_ON_FLY_TRX_UPGRADE_PKG.upgrade_trx_on_fly returned errors');
3551 END IF;
3552 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
3553 RAISE FND_API.G_EXC_ERROR;
3554 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3555 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3556 END IF;
3557 END IF;
3558 UPDATE ZX_LINES_DET_FACTORS
3559 SET EVENT_TYPE_CODE = l_event_class_rec.event_type_code,
3560 TAX_EVENT_TYPE_CODE = l_event_class_rec.tax_event_type_code,
3561 DOC_EVENT_STATUS = l_event_class_rec.doc_status_code
3562 WHERE APPLICATION_ID = p_transaction_rec.APPLICATION_ID
3563 AND ENTITY_CODE = p_transaction_rec.ENTITY_CODE
3564 AND EVENT_CLASS_CODE = p_transaction_rec.EVENT_CLASS_CODE
3565 AND TRX_ID = p_transaction_rec.TRX_ID;
3566 END IF; --sql%notfound
3567 END IF; --not in (RELEASE_HOLD)
3568 --Bugfix 4486946 - on-the-fly upgrade end
3569
3570 /*--------------------------------------------------+
3571 | Call to Service Type Document Level Changes |
3572 +--------------------------------------------------*/
3573 --Bug 4463450: Do not carry out any reversals for tax lines and dists for
3574 --event classes not reportable for tax
3575 IF l_event_class_rec.tax_event_type_code = 'CANCEL' AND
3576 l_event_class_rec.tax_reporting_flag = 'N' THEN
3577 null;
3578 ELSE
3579
3580 ZX_SRVC_TYP_PKG.document_level_changes(x_return_status => l_return_status,
3581 p_event_class_rec => l_event_class_rec,
3582 p_tax_hold_released_code => p_validation_status
3583 );
3584
3585 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3586 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3587 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_VALID_INIT_PARAMS_PKG.global_document_update returned errors');
3588 END IF;
3589 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
3590 RAISE FND_API.G_EXC_ERROR;
3591 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3592 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3593 END IF;
3594 END IF;
3595 END IF;
3596
3597
3598 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3599 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
3600 END IF;
3601
3602 EXCEPTION
3603 WHEN FND_API.G_EXC_ERROR THEN
3604 ROLLBACK TO global_document_update_PVT;
3605 x_return_status := FND_API.G_RET_STS_ERROR ;
3606 /*---------------------------------------------------------+
3607 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
3608 | in the message stack. If there is only one message in |
3609 | the stack it retrieves this message |
3610 +---------------------------------------------------------*/
3611 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
3612 p_count => x_msg_count,
3613 p_data => x_msg_data
3614 );
3615 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
3616 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
3617 END IF;
3618
3619 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3620 ROLLBACK TO global_document_update_PVT;
3621 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3622 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
3623 FND_MSG_PUB.Add;
3624 /*---------------------------------------------------------+
3625 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
3626 | in the message stack. If there is only one message in |
3627 | the stack it retrieves this message |
3628 +---------------------------------------------------------*/
3629 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
3630 p_count => x_msg_count,
3631 p_data => x_msg_data
3632 );
3633
3634 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
3635 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
3636 END IF;
3637
3638 WHEN OTHERS THEN
3639 ROLLBACK TO global_document_update_PVT;
3640 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3641 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
3642 FND_MSG_PUB.Add;
3643 /*---------------------------------------------------------+
3644 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
3645 | in the message stack. If there is only one message in |
3646 | the stack it retrieves this message |
3647 +---------------------------------------------------------*/
3648 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
3649 p_count => x_msg_count,
3650 p_data => x_msg_data
3651 );
3652 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
3653 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
3654 END IF;
3655 END global_document_update;
3656
3657
3658 /* ======================================================================*
3659 | PROCEDURE Mark_tax_lines_deleted : |
3660 * ======================================================================*/
3661
3662 PROCEDURE Mark_tax_lines_deleted
3663 ( p_api_version IN NUMBER,
3664 p_init_msg_list IN VARCHAR2,
3665 p_commit IN VARCHAR2,
3666 p_validation_level IN NUMBER,
3667 x_return_status OUT NOCOPY VARCHAR2 ,
3668 x_msg_count OUT NOCOPY NUMBER ,
3669 x_msg_data OUT NOCOPY VARCHAR2 ,
3670 p_transaction_line_rec IN OUT NOCOPY transaction_line_rec_type
3671 ) IS
3672 l_api_name CONSTANT VARCHAR2(30) := 'MARK_TAX_LINES_DELETED';
3673 l_api_version CONSTANT NUMBER := 1.0;
3674 l_return_status VARCHAR2(30);
3675 l_init_msg_list VARCHAR2(1);
3676 l_event_type_code VARCHAR2(30);
3677 BEGIN
3678 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3679 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
3680 END IF;
3681
3682 /*--------------------------------------------------+
3683 | Standard start of API savepoint |
3684 +--------------------------------------------------*/
3685 SAVEPOINT mark_tax_lines_del_PVT;
3686
3687 /*--------------------------------------------------+
3688 | Standard call to check for call compatibility |
3689 +--------------------------------------------------*/
3690 IF NOT FND_API.Compatible_API_Call(l_api_version,
3691 p_api_version,
3692 l_api_name,
3693 G_PKG_NAME
3694 ) THEN
3695 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3696 END IF;
3697
3698 /*--------------------------------------------------------------+
3699 | Initialize message list if p_init_msg_list is set to TRUE |
3700 +--------------------------------------------------------------*/
3701 IF p_init_msg_list is null THEN
3702 l_init_msg_list := FND_API.G_FALSE;
3703 ELSE
3704 l_init_msg_list := p_init_msg_list;
3705 END IF;
3706
3707 IF FND_API.to_Boolean(l_init_msg_list) THEN
3708 FND_MSG_PUB.initialize;
3709 END IF;
3710
3711 /*-----------------------------------------+
3712 | Initialize return status to SUCCESS |
3713 +-----------------------------------------*/
3714 x_return_status := FND_API.G_RET_STS_SUCCESS;
3715
3716
3717 /*-----------------------------------------+
3718 | Populate Global Variable |
3719 +-----------------------------------------*/
3720 G_PUB_SRVC := l_api_name;
3721 G_DATA_TRANSFER_MODE := 'PLS';
3722 G_EXTERNAL_API_CALL := 'N';
3723
3724 /*------------------------------------------------------+
3725 | Validate Input Paramerters and Fetch Tax Options |
3726 +------------------------------------------------------*/
3730
3727 ZX_VALID_INIT_PARAMS_PKG.mark_tax_lines_deleted( x_return_status => l_return_status,
3728 p_transaction_line_rec => p_transaction_line_rec
3729 );
3731 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3732 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3733 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_VALID_INIT_PARAMS_PKG.mark_tax_lines_deleted returned errors');
3734 END IF;
3735 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
3736 RAISE FND_API.G_EXC_ERROR;
3737 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3738 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3739 END IF;
3740 END IF;
3741
3742 /*--------------------------------------------------+
3743 | Call Service Type Mark Tax Lines Deleted |
3744 +--------------------------------------------------*/
3745 ZX_SRVC_TYP_PKG.mark_tax_lines_deleted( p_trx_line_rec => p_transaction_line_rec,
3746 x_return_status => l_return_status
3747 );
3748
3749 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3750 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3751 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_SRVC_TYP_PKG.mark_tax_lines_deleted returned errors');
3752 END IF;
3753 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
3754 RAISE FND_API.G_EXC_ERROR;
3755 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3756 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3757 END IF;
3758 END IF;
3759 /*--------------------------------------------------+
3760 | Update line level action to Deleted |
3761 +--------------------------------------------------*/
3762 IF p_transaction_line_rec.event_type_code is null THEN
3763 BEGIN
3764 SELECT event_type_code
3765 INTO l_event_type_code
3766 FROM ZX_EVNT_TYP_MAPPINGS
3767 WHERE application_id = p_transaction_line_rec.application_id
3768 AND entity_code = p_transaction_line_rec.entity_code
3769 AND event_class_code = p_transaction_line_rec.event_class_code
3770 AND tax_event_type_code = 'UPDATE';
3771 EXCEPTION
3772 WHEN NO_DATA_FOUND THEN
3773 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3774 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':Event information passed is incorrect');
3775 END IF;
3776 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3777 END;
3778 END IF;
3779
3780 BEGIN
3781 UPDATE ZX_LINES_DET_FACTORS
3782 SET LINE_LEVEL_ACTION = 'DELETE',
3783 EVENT_TYPE_CODE = nvl(p_transaction_line_rec.event_type_code, l_event_type_code),
3784 TAX_EVENT_TYPE_CODE = 'UPDATE'
3785 WHERE application_id = p_transaction_line_rec.application_id
3786 AND entity_code = p_transaction_line_rec.entity_code
3787 AND event_class_code = p_transaction_line_rec.event_class_code
3788 AND trx_id = p_transaction_line_rec.trx_id
3789 AND trx_line_id = p_transaction_line_rec.trx_line_id;
3790 EXCEPTION
3791 WHEN NO_DATA_FOUND THEN
3792 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3793 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':Event information passed is incorrect');
3794 END IF;
3795 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3796 END;
3797
3798
3799 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3800 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
3801 END IF;
3802
3803 /* Bug 3704651 - No need to uptake error handling as it is a PLS API*/
3804 EXCEPTION
3805 WHEN FND_API.G_EXC_ERROR THEN
3806 ROLLBACK TO mark_tax_lines_del_PVT;
3807 x_return_status := FND_API.G_RET_STS_ERROR ;
3808 /*---------------------------------------------------------+
3809 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
3810 | in the message stack. If there is only one message in |
3811 | the stack it retrieves this message |
3812 +---------------------------------------------------------*/
3813 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
3814 p_count => x_msg_count,
3815 p_data => x_msg_data
3816 );
3817 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
3818 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
3819 END IF;
3820
3821 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3822 ROLLBACK TO mark_tax_lines_del_PVT;
3823 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3824 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
3825 FND_MSG_PUB.Add;
3826 /*---------------------------------------------------------+
3827 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
3831 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
3828 | in the message stack. If there is only one message in |
3829 | the stack it retrieves this message |
3830 +---------------------------------------------------------*/
3832 p_count => x_msg_count,
3833 p_data => x_msg_data
3834 );
3835
3836 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
3837 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
3838 END IF;
3839
3840 WHEN OTHERS THEN
3841 ROLLBACK TO mark_tax_lines_del_PVT;
3842 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3843 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
3844 FND_MSG_PUB.Add;
3845 /*---------------------------------------------------------+
3846 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
3847 | in the message stack. If there is only one message in |
3848 | the stack it retrieves this message |
3849 +---------------------------------------------------------*/
3850 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
3851 p_count => x_msg_count,
3852 p_data => x_msg_data
3853 );
3854 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
3855 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
3856 END IF;
3857
3858 END mark_tax_lines_deleted;
3859
3860
3861 /* ======================================================================*
3862 | PROCEDURE reverse_document : Reverses the base document |
3863 | GTT involved : ZX_REV_TRX_HEADERS_GT, ZX_REVERSE_TRX_LINES_GT |
3864 | This API has been coded with the assumption that it will receive only |
3865 | only document in a call |
3866 * ======================================================================*/
3867 PROCEDURE reverse_document
3868 ( p_api_version IN NUMBER,
3869 p_init_msg_list IN VARCHAR2,
3870 p_commit IN VARCHAR2,
3871 p_validation_level IN NUMBER,
3872 x_return_status OUT NOCOPY VARCHAR2 ,
3873 x_msg_count OUT NOCOPY NUMBER ,
3874 x_msg_data OUT NOCOPY VARCHAR2
3875 ) IS
3876 l_api_name CONSTANT VARCHAR2(30) := 'REVERSE_DOCUMENT';
3877 l_api_version CONSTANT NUMBER := 1.0;
3878 l_return_status VARCHAR2(30);
3879 l_event_class_rec event_class_rec_type;
3880 l_context_info_rec context_info_rec_type;
3881 l_init_msg_list VARCHAR2(1);
3882
3883 BEGIN
3884 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3885 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
3886 END IF;
3887
3888 /*--------------------------------------------------+
3889 | Standard start of API savepoint |
3890 +--------------------------------------------------*/
3891 SAVEPOINT reverse_document_PVT;
3892
3893 /*--------------------------------------------------+
3894 | Standard call to check for call compatibility |
3895 +--------------------------------------------------*/
3896
3897 IF NOT FND_API.Compatible_API_Call(l_api_version,
3898 p_api_version,
3899 l_api_name,
3900 G_PKG_NAME
3901 ) THEN
3902 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3903 END IF;
3904
3905 /*--------------------------------------------------------------+
3906 | Initialize message list if p_init_msg_list is set to TRUE |
3907 +--------------------------------------------------------------*/
3908 IF p_init_msg_list is null THEN
3909 l_init_msg_list := FND_API.G_FALSE;
3910 ELSE
3911 l_init_msg_list := p_init_msg_list;
3912 END IF;
3913
3914 IF FND_API.to_Boolean(l_init_msg_list) THEN
3915 FND_MSG_PUB.initialize;
3916 END IF;
3917
3918 /*-----------------------------------------+
3919 | Initialize return status to SUCCESS |
3920 +-----------------------------------------*/
3921 x_return_status := FND_API.G_RET_STS_SUCCESS;
3922
3923 /*-----------------------------------------+
3924 | Populate Global Variable |
3925 +-----------------------------------------*/
3926 G_PUB_SRVC := l_api_name;
3927 G_DATA_TRANSFER_MODE := 'TAB';
3928 G_EXTERNAL_API_CALL := 'N';
3929
3930 /*-----------------------------------------+
3931 | Get the event id for the whole document |
3932 +-----------------------------------------*/
3933 select ZX_LINES_DET_FACTORS_S.nextval
3934 into l_event_class_rec.event_id
3935 from dual;
3936
3937 /*------------------------------------------------------+
3938 | Validate Input Paramerters and Fetch Tax Options |
3939 +------------------------------------------------------*/
3940 ZX_VALID_INIT_PARAMS_PKG.reverse_document(x_return_status => l_return_status,
3941 p_event_class_rec => l_event_class_rec
3942 );
3943
3944 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3945 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3949 RAISE FND_API.G_EXC_ERROR;
3946 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_VALID_INIT_PARAMS_PKG.reverse_document returned errors');
3947 END IF;
3948 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
3950 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3951 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3952 END IF;
3953 END IF;
3954
3955 /*-----------------------------------------+
3956 | Bug 5662795 |
3957 +-----------------------------------------*/
3958 set_ptnr_srvc_subscr_flag (p_event_class_rec => NULL,
3959 x_return_status => l_return_status
3960 );
3961
3962 /*--------------------------------------------------+
3963 | Call Service Reverse Type Document |
3964 +--------------------------------------------------*/
3965 ZX_SRVC_TYP_PKG.reverse_document(p_event_class_rec => l_event_class_rec,
3966 x_return_status => l_return_status
3967 );
3968
3969 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3970 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3971 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_SRVC_TYP_PKG.reverse_document returned errors');
3972 END IF;
3973 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
3974 RAISE FND_API.G_EXC_ERROR;
3975 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3976 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3977 END IF;
3978 END IF;
3979
3980 --Delete from the global structures so that there are no hanging/redundant
3981 --records sitting there
3982 ZX_GLOBAL_STRUCTURES_PKG.delete_trx_line_dist_tbl;
3983
3984 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3985 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
3986 END IF;
3987
3988 EXCEPTION
3989 WHEN FND_API.G_EXC_ERROR THEN
3990 ROLLBACK TO reverse_document_PVT;
3991 x_return_status := FND_API.G_RET_STS_ERROR ;
3992 --Call API to dump into zx_errors_gt if not already inserted.
3993 DUMP_MSG;
3994 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
3995 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
3996 END IF;
3997
3998 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3999 ROLLBACK TO reverse_document_PVT;
4000 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4001 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
4002 FND_MSG_PUB.Add;
4003 /*---------------------------------------------------------+
4004 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
4005 | in the message stack. If there is only one message in |
4006 | the stack it retrieves this message |
4007 +---------------------------------------------------------*/
4008 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
4009 p_count => x_msg_count,
4010 p_data => x_msg_data
4011 );
4012
4013 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
4014 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
4015 END IF;
4016
4017 WHEN OTHERS THEN
4018 ROLLBACK TO reverse_document_PVT;
4019 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4020 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
4021 FND_MSG_PUB.Add;
4022 /*---------------------------------------------------------+
4023 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
4024 | in the message stack. If there is only one message in |
4025 | the stack it retrieves this message |
4026 +---------------------------------------------------------*/
4027 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
4028 p_count => x_msg_count,
4029 p_data => x_msg_data
4030 );
4031
4032 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
4033 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
4034 END IF;
4035 END reverse_document;
4036
4037
4038 /* ======================================================================*
4039 | PROCEDURE Reverse_distributions : Reverses the base distribution |
4040 | GTT involved : ZX_REVERSE_DIST_GT |
4041 * ======================================================================*/
4042 PROCEDURE reverse_distributions
4043 ( p_api_version IN NUMBER,
4044 p_init_msg_list IN VARCHAR2,
4045 p_commit IN VARCHAR2,
4046 p_validation_level IN NUMBER,
4047 x_return_status OUT NOCOPY VARCHAR2 ,
4048 x_msg_count OUT NOCOPY NUMBER ,
4049 x_msg_data OUT NOCOPY VARCHAR2
4050 ) IS
4051 l_api_name CONSTANT VARCHAR2(30) := 'REVERSE_DISTRIBUTIONS';
4052 l_api_version CONSTANT NUMBER := 1.0;
4053 l_return_status VARCHAR2(30);
4054 l_context_info_rec context_info_rec_type;
4055 l_init_msg_list VARCHAR2(1);
4056
4057 BEGIN
4058 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4059 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
4063 | Standard start of API savepoint |
4060 END IF;
4061
4062 /*--------------------------------------------------+
4064 +--------------------------------------------------*/
4065 SAVEPOINT reverse_distributions_PVT;
4066
4067 /*--------------------------------------------------+
4068 | Standard call to check for call compatibility |
4069 +--------------------------------------------------*/
4070 IF NOT FND_API.Compatible_API_Call( l_api_version,
4071 p_api_version,
4072 l_api_name,
4073 G_PKG_NAME
4074 ) THEN
4075 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4076 END IF;
4077
4078 /*--------------------------------------------------------------+
4079 | Initialize message list if p_init_msg_list is set to TRUE |
4080 +--------------------------------------------------------------*/
4081 IF p_init_msg_list is null THEN
4082 l_init_msg_list := FND_API.G_FALSE;
4083 ELSE
4084 l_init_msg_list := p_init_msg_list;
4085 END IF;
4086
4087 IF FND_API.to_Boolean(l_init_msg_list) THEN
4088 FND_MSG_PUB.initialize;
4089 END IF;
4090
4091 /*-----------------------------------------+
4092 | Initialize return status to SUCCESS |
4093 +-----------------------------------------*/
4094 x_return_status := FND_API.G_RET_STS_SUCCESS;
4095
4096
4097 /*-----------------------------------------+
4098 | Populate Global Variable |
4099 +-----------------------------------------*/
4100 G_PUB_SRVC := l_api_name;
4101 G_DATA_TRANSFER_MODE := 'TAB';
4102 G_EXTERNAL_API_CALL := 'N';
4103
4104 /*------------------------------------------------------+
4105 | Validate Input Paramerters and Fetch Tax Options |
4106 +------------------------------------------------------*/
4107 IF ( G_LEVEL_EVENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4108 FND_LOG.STRING(G_LEVEL_EVENT,G_MODULE_NAME||l_api_name,
4109 'Validating Reversing Document Distributions'
4110 );
4111 END IF;
4112
4113 ZX_VALID_INIT_PARAMS_PKG.reverse_distributions(x_return_status =>l_return_status);
4114
4115 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4116 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4117 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_VALID_INIT_PARAMS_PKG.reverse_distributions returned errors');
4118 END IF;
4119 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
4120 RAISE FND_API.G_EXC_ERROR;
4121 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4122 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4123 END IF;
4124 END IF;
4125
4126 /*--------------------------------------------------+
4127 | Call Service Reverse Distributions |
4128 +--------------------------------------------------*/
4129 ZX_SRVC_TYP_PKG.reverse_distributions(x_return_status => l_return_status );
4130
4131 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4132 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4133 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_SRVC_TYP_PKG.reverse_distributions returned errors');
4134 END IF;
4135 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
4136 RAISE FND_API.G_EXC_ERROR;
4137 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4138 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4139 END IF;
4140 END IF;
4141
4142 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4143 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
4144 END IF;
4145
4146 EXCEPTION
4147 WHEN FND_API.G_EXC_ERROR THEN
4148 ROLLBACK TO reverse_distributions_PVT;
4149 x_return_status := FND_API.G_RET_STS_ERROR ;
4150 --Call API to dump into zx_errors_gt
4151 DUMP_MSG;
4152 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
4153 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
4154 END IF;
4155
4156 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4157 ROLLBACK TO reverse_distributions_PVT;
4158 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4159 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
4160 FND_MSG_PUB.ADD;
4161 /*---------------------------------------------------------+
4162 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
4163 | in the message stack. If there is only one message in |
4164 | the stack it retrieves this message |
4165 +---------------------------------------------------------*/
4166 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
4167 p_count => x_msg_count,
4168 p_data => x_msg_data
4169 );
4170 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
4171 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
4172 END IF;
4173
4174 WHEN OTHERS THEN
4175 ROLLBACK TO reverse_distributions_PVT;
4176 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4177 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
4178 FND_MSG_PUB.ADD;
4179 /*---------------------------------------------------------+
4180 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
4184 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
4181 | in the message stack. If there is only one message in |
4182 | the stack it retrieves this message |
4183 +---------------------------------------------------------*/
4185 p_count => x_msg_count,
4186 p_data => x_msg_data
4187 );
4188 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
4189 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
4190 END IF;
4191 END reverse_distributions;
4192
4193 /* ================================================================================*
4194 | PROCEDURE Reverse_document_distribution: Reverses the base reversing event class|
4195 | GTT involved : ZX_REV_TRX_HEADERS_GT, ZX_REVERSE_TRX_LINES_GT |
4196 * ================================================================================*/
4197 PROCEDURE reverse_document_distribution
4198 ( p_api_version IN NUMBER,
4199 p_init_msg_list IN VARCHAR2,
4200 p_commit IN VARCHAR2,
4201 p_validation_level IN NUMBER,
4202 x_return_status OUT NOCOPY VARCHAR2 ,
4203 x_msg_count OUT NOCOPY NUMBER ,
4204 x_msg_data OUT NOCOPY VARCHAR2
4205 ) IS
4206 l_api_name CONSTANT VARCHAR2(30) := 'REVERSE_DOCUMENT_DISTRIBUTION';
4207 l_api_version CONSTANT NUMBER := 1.0;
4208 l_return_status VARCHAR2(30);
4209 l_event_class_rec event_class_rec_type;
4210 l_context_info_rec context_info_rec_type;
4211 l_init_msg_list VARCHAR2(1);
4212
4213 BEGIN
4214 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4215 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
4216 END IF;
4217
4218 /*--------------------------------------------------+
4219 | Standard start of API savepoint |
4220 +--------------------------------------------------*/
4221 SAVEPOINT reverse_doc_distribution_PVT;
4222
4223 /*--------------------------------------------------+
4224 | Standard call to check for call compatibility |
4225 +--------------------------------------------------*/
4226 IF NOT FND_API.Compatible_API_Call( l_api_version,
4227 p_api_version,
4228 l_api_name,
4229 G_PKG_NAME
4230 ) THEN
4231 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4232 END IF;
4233
4234 /*--------------------------------------------------------------+
4235 | Initialize message list if p_init_msg_list is set to TRUE |
4236 +--------------------------------------------------------------*/
4237 IF p_init_msg_list is null THEN
4238 l_init_msg_list := FND_API.G_FALSE;
4239 ELSE
4240 l_init_msg_list := p_init_msg_list;
4241 END IF;
4242
4243 IF FND_API.to_Boolean(l_init_msg_list) THEN
4244 FND_MSG_PUB.initialize;
4245 END IF;
4246
4247 /*-----------------------------------------+
4248 | Initialize return status to SUCCESS |
4249 +-----------------------------------------*/
4250 x_return_status := FND_API.G_RET_STS_SUCCESS;
4251
4252 /*-----------------------------------------+
4253 | Populate Global Variable |
4254 +-----------------------------------------*/
4255 G_PUB_SRVC := l_api_name;
4256 G_DATA_TRANSFER_MODE := 'TAB';
4257 G_EXTERNAL_API_CALL := 'N';
4258
4259 /*-----------------------------------------+
4260 | Get the event id for the whole document |
4261 +-----------------------------------------*/
4262 select zx_lines_det_factors_s.nextval
4263 into l_event_class_rec.event_id
4264 from dual;
4265
4266 /*------------------------------------------------------+
4267 | Validate Input Paramerters and Fetch Tax Options |
4268 +------------------------------------------------------*/
4269 ZX_VALID_INIT_PARAMS_PKG.reverse_document( x_return_status => l_return_status ,
4270 p_event_class_rec => l_event_class_rec
4271 );
4272
4273 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4274 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4275 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_VALID_INIT_PARAMS_PKG.reverse_document returned errors');
4276 END IF;
4277 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
4278 RAISE FND_API.G_EXC_ERROR;
4279 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4280 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4281 END IF;
4282 END IF;
4283
4284 /*-----------------------------------------+
4285 | Bug 5662795 |
4286 +-----------------------------------------*/
4287 set_ptnr_srvc_subscr_flag (p_event_class_rec => NULL,
4288 x_return_status => l_return_status
4289 );
4290
4291 /*--------------------------------------------------+
4292 | Call Service Reverse Document |
4293 +--------------------------------------------------*/
4294 ZX_SRVC_TYP_PKG.reverse_document( p_event_class_rec => l_event_class_rec,
4295 x_return_status => l_return_status
4296 );
4297
4298 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4302 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
4299 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4300 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_SRVC_TYP_PKG.reverse_document returned errors');
4301 END IF;
4303 RAISE FND_API.G_EXC_ERROR;
4304 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4305 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4306 END IF;
4307 END IF;
4308
4309 /*------------------------------------------------------+
4310 | Validate Input Paramerters and Fetch Tax Options |
4311 +------------------------------------------------------*/
4312 ZX_VALID_INIT_PARAMS_PKG.reverse_distributions(x_return_status => l_return_status );
4313
4314 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4315 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4316 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_VALID_INIT_PARAMS_PKG.reverse_distributions returned errors');
4317 END IF;
4318 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
4319 RAISE FND_API.G_EXC_ERROR;
4320 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4321 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4322 END IF;
4323 END IF;
4324 /*--------------------------------------------------+
4325 | Call Service Reverse Distributions |
4326 +--------------------------------------------------*/
4327 ZX_SRVC_TYP_PKG.reverse_distributions(x_return_status => l_return_status );
4328
4329 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4330 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4331 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_SRVC_TYP_PKG.reverse_distributions returned errors');
4332 END IF;
4333 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
4334 RAISE FND_API.G_EXC_ERROR;
4335 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4336 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4337 END IF;
4338 END IF;
4339
4340 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4341 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
4342 END IF;
4343
4344 EXCEPTION
4345 WHEN FND_API.G_EXC_ERROR THEN
4346 ROLLBACK TO reverse_doc_distribution_PVT;
4347 x_return_status := FND_API.G_RET_STS_ERROR ;
4348 --Call API to dump into zx_errors_gt if not already inserted.
4349 DUMP_MSG;
4350 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
4351 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
4352 END IF;
4353
4354 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4355 ROLLBACK TO reverse_doc_distribution_PVT;
4356 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4357 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
4358 FND_MSG_PUB.ADD;
4359 /*---------------------------------------------------------+
4360 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
4361 | in the message stack. If there is only one message in |
4362 | the stack it retrieves this message |
4363 +---------------------------------------------------------*/
4364 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
4365 p_count => x_msg_count,
4366 p_data => x_msg_data
4367 );
4368 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
4369 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
4370 END IF;
4371
4372 WHEN OTHERS THEN
4373 ROLLBACK TO reverse_doc_distribution_PVT;
4374 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4375 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
4376 FND_MSG_PUB.ADD;
4377 /*---------------------------------------------------------+
4378 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
4379 | in the message stack. If there is only one message in |
4380 | the stack it retrieves this message |
4381 +---------------------------------------------------------*/
4382 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
4383 p_count => x_msg_count,
4384 p_data => x_msg_data
4385 );
4386 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
4387 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
4388 END IF;
4389
4390 END reverse_document_distribution;
4391
4392 /* =======================================================================*
4393 | PROCEDURE determine_recovery : Calculate the distribution of tax amounts
4394 | into recoverable and/or non-recoverable tax amounts. |
4395 | This API also supports processing for multiple event classes |
4396 | GTT involved : ZX_TRX_HEADERS_GT, ZX_ITM_DISTRIBUTIONS_GT |
4397 * =======================================================================*/
4398
4399 PROCEDURE Determine_recovery
4400 ( p_api_version IN NUMBER,
4401 p_init_msg_list IN VARCHAR2,
4402 p_commit IN VARCHAR2,
4403 p_validation_level IN NUMBER,
4404 x_return_status OUT NOCOPY VARCHAR2 ,
4405 x_msg_count OUT NOCOPY NUMBER ,
4406 x_msg_data OUT NOCOPY VARCHAR2
4407 ) IS
4408 l_api_name CONSTANT VARCHAR2(30) := 'DETERMINE_RECOVERY';
4412 l_context_info_rec context_info_rec_type;
4409 l_api_version CONSTANT NUMBER := 1.0;
4410 l_return_status VARCHAR2(30);
4411 l_error_buffer VARCHAR2(1000);
4413 l_event_class_rec event_class_rec_type;
4414 l_transaction_header_rec transaction_header_rec_type;
4415 l_index BINARY_INTEGER;
4416 l_precedence NUMBER_tbl_type;
4417 l_init_msg_list VARCHAR2(1);
4418 l_event_id NUMBER;
4419 l_related_doc_date DATE;
4420 l_adjusted_doc_date DATE;
4421 l_trx_date DATE;
4422 l_prov_tax_det_date DATE;
4423 l_effective_date DATE;
4424 l_call_evnt_cls_options VARCHAR2(1);
4425 l_record_dist_lines VARCHAR2(1);
4426
4427 CURSOR event_classes IS
4428 SELECT distinct
4429 header.event_class_code,
4430 header.application_id,
4431 header.entity_code,
4432 header.internal_organization_id,
4433 evntmap.processing_precedence
4434 FROM ZX_EVNT_CLS_MAPPINGS evntmap,
4435 ZX_TRX_HEADERS_GT header
4436 WHERE header.application_id = evntmap.application_id
4437 AND header.entity_code = evntmap.entity_code
4438 AND header.event_class_code = evntmap.event_class_code
4439 ORDER BY evntmap.processing_precedence;
4440
4441 CURSOR headers (p_event_class_code VARCHAR2,
4442 p_application_id NUMBER,
4443 p_entity_code VARCHAR2 ) IS
4444 SELECT INTERNAL_ORGANIZATION_ID,
4445 APPLICATION_ID,
4446 LEGAL_ENTITY_ID,
4447 ENTITY_CODE,
4448 EVENT_TYPE_CODE,
4449 EVENT_CLASS_CODE,
4450 TRX_ID,
4451 QUOTE_FLAG,
4452 ICX_SESSION_ID
4453 FROM ZX_TRX_HEADERS_GT
4454 WHERE event_class_code = p_event_class_code
4455 AND application_id = p_application_id
4456 AND entity_code = p_entity_code
4457 AND (validation_check_flag is null OR
4458 validation_check_flag <> 'N');
4459
4460 -- added for bug fix 5417887
4461 CURSOR c_headers is
4462 SELECT APPLICATION_ID, ENTITY_CODE, EVENT_CLASS_CODE, TRX_ID, ICX_SESSION_ID,
4463 EVENT_TYPE_CODE, TAX_EVENT_TYPE_CODE, DOC_EVENT_STATUS
4464 FROM ZX_TRX_HEADERS_GT;
4465
4466 l_application_id_tbl NUMBER_tbl_type;
4467 l_entity_code_tbl VARCHAR2_30_tbl_type;
4468 l_event_class_code_tbl VARCHAR2_30_tbl_type;
4469 l_trx_id_tbl NUMBER_tbl_type;
4470 l_icx_session_id_tbl NUMBER_tbl_type;
4471 l_event_type_code_tbl VARCHAR2_30_tbl_type;
4472 l_tax_event_type_code_tbl VARCHAR2_30_tbl_type;
4473 l_doc_event_status_tbl VARCHAR2_30_tbl_type;
4474
4475 CURSOR check_trx_line_dist_qty
4476 IS
4477 SELECT APPLICATION_ID,
4478 ENTITY_CODE,
4479 EVENT_CLASS_CODE,
4480 TRX_ID,
4481 TRX_LINE_ID,
4482 TRX_LEVEL_TYPE
4483 FROM
4484 ZX_ITM_DISTRIBUTIONS_GT
4485 WHERE application_id = l_event_class_rec.application_id
4486 AND entity_code = l_event_class_rec.entity_code
4487 AND event_class_code = l_event_class_rec.event_class_code
4488 AND nvl(tax_variance_calc_flag,l_event_class_rec.tax_variance_calc_flag) = 'Y'
4489 AND ref_doc_application_id is not null
4490 AND trx_line_dist_qty is null;
4491
4492 -- Bug 5516630: Move unit price validation to determine_recovery
4493
4494 CURSOR check_trx_line_dist_unit_price
4495 IS
4496 SELECT APPLICATION_ID,
4497 ENTITY_CODE,
4498 EVENT_CLASS_CODE,
4499 TRX_ID,
4500 TRX_LINE_ID,
4501 TRX_LEVEL_TYPE
4502 FROM
4503 ZX_ITM_DISTRIBUTIONS_GT
4504 WHERE application_id = l_event_class_rec.application_id
4505 AND entity_code = l_event_class_rec.entity_code
4506 AND event_class_code = l_event_class_rec.event_class_code
4507 AND nvl(tax_variance_calc_flag,l_event_class_rec.tax_variance_calc_flag) = 'Y'
4508 AND ref_doc_application_id is not null
4509 AND unit_price is null;
4510
4511 -- This cursor is used to update event info on lines det factors
4512 CURSOR c_event_info
4513 is
4514 SELECT
4515 l_event_id EVENT_ID,
4516 h.EVENT_TYPE_CODE EVENT_TYPE_CODE,
4517 zxevntmap.TAX_EVENT_TYPE_CODE TAX_EVENT_TYPE_CODE,
4518 zxevnttyp.status_code DOC_EVENT_STATUS,
4519 H.application_id application_id,
4520 H.entity_code entity_code,
4521 h.event_class_code event_class_code,
4522 H.trx_id trx_id,
4523 H.quote_flag quote_flag -- Bug 5646787
4524 from
4525 ZX_TRX_HEADERS_GT h,
4526 ZX_EVNT_TYP_MAPPINGS zxevntmap,
4527 ZX_EVNT_CLS_TYPS zxevnttyp
4528 where
4529 zxevntmap.event_class_code = h.event_class_code
4530 AND zxevntmap.application_id = h.application_id
4531 AND zxevntmap.entity_code = h.entity_code
4532 AND zxevntmap.event_type_code = h.event_type_code
4533 AND zxevnttyp.tax_event_type_code = zxevntmap.tax_event_type_code
4534 AND zxevnttyp.tax_event_class_code = zxevntmap.tax_event_class_code
4535 AND zxevntmap.enabled_flag = 'Y';
4536
4537
4538 BEGIN
4539 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4543 /*--------------------------------------------------+
4540 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
4541 END IF;
4542
4544 | Standard start of API savepoint |
4545 +--------------------------------------------------*/
4546 SAVEPOINT determine_recovery_PVT;
4547
4548 /*--------------------------------------------------+
4549 | Standard call to check for call compatibility |
4550 +--------------------------------------------------*/
4551 IF NOT FND_API.Compatible_API_Call( l_api_version,
4552 p_api_version,
4553 l_api_name,
4554 G_PKG_NAME
4555 ) THEN
4556 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4557 END IF;
4558
4559 /*--------------------------------------------------------------+
4560 | Initialize message list if p_init_msg_list is set to TRUE |
4561 +--------------------------------------------------------------*/
4562 IF p_init_msg_list is null THEN
4563 l_init_msg_list := FND_API.G_FALSE;
4564 ELSE
4565 l_init_msg_list := p_init_msg_list;
4566 END IF;
4567
4568 IF FND_API.to_Boolean(l_init_msg_list) THEN
4569 FND_MSG_PUB.initialize;
4570 END IF;
4571
4572 /*-----------------------------------------+
4573 | Initialize return status to SUCCESS |
4574 +-----------------------------------------*/
4575
4576 x_return_status := FND_API.G_RET_STS_SUCCESS;
4577
4578 /*-----------------------------------------+
4579 | Populate Global Variable |
4580 +-----------------------------------------*/
4581 G_PUB_SRVC := l_api_name;
4582 G_DATA_TRANSFER_MODE := 'TAB';
4583 G_EXTERNAL_API_CALL := 'N';
4584
4585 --Call TDS process to initialise distributions for previous calls to determine recovery
4586 --if any
4587 ZX_TDS_CALC_SERVICES_PUB_PKG.initialize (p_event_class_rec => NULL,
4588 p_init_level => 'TAX_DISTRIBUTION',
4589 x_return_status => l_return_status
4590 );
4591
4592 l_call_evnt_cls_options := 'Y';
4593
4594 /*-----------------------------------------+
4595 | Get the event id for the whole document |
4596 +-----------------------------------------*/
4597 select ZX_LINES_DET_FACTORS_S.nextval
4598 into l_event_id
4599 from dual;
4600
4601 /*------------------------------------------------+
4602 | Update zx_lines_det_factors |
4603 +------------------------------------------------*/
4604
4605 FOR c_rec in c_event_info loop
4606 IF c_rec.quote_flag <> 'Y' THEN -- Bug 5646787
4607 UPDATE ZX_LINES_DET_FACTORS D
4608 SET EVENT_ID = c_rec.EVENT_ID,
4609 EVENT_TYPE_CODE = c_rec.EVENT_TYPE_CODE,
4610 TAX_EVENT_TYPE_CODE = c_rec.TAX_EVENT_TYPE_CODE,
4611 DOC_EVENT_STATUS = c_rec.DOC_EVENT_STATUS
4612 WHERE
4613 D.APPLICATION_ID = c_rec.application_id
4614 AND D.ENTITY_CODE = c_rec.ENTITY_CODE
4615 AND D.EVENT_CLASS_CODE = c_rec.EVENT_CLASS_CODE
4616 AND D.TRX_ID = c_rec.TRX_ID;
4617 END IF;
4618 END LOOP;
4619
4620 OPEN event_classes;
4621 LOOP
4622 FETCH event_classes BULK COLLECT INTO
4623 l_evnt_cls.event_class_code,
4624 l_evnt_cls.application_id,
4625 l_evnt_cls.entity_code,
4626 l_evnt_cls.internal_organization_id,
4627 l_evnt_cls.precedence
4628 LIMIT G_LINES_PER_FETCH;
4629 EXIT WHEN event_classes%NOTFOUND;
4630 END LOOP;
4631 CLOSE event_classes;
4632
4633 --Event classes such as SALES_TRANSACTION_TAX_QUOTE/PURCHASE_TRANSACTION_TAX_QUOTE
4634 --are not seeded in zx_evnt_cls_mappings so cursor event classes will not
4635 --return any rows for such event classes passed. This flag to keep track of this
4636 IF l_evnt_cls.event_class_code.LAST is null THEN
4637 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4638 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4639 'Event class information does not exist - indicates SALES_TRANSACTION_TAX_QUOTE/PURCHASE_TRANSACTION_TAX_QUOTE');
4640 END IF;
4641 SELECT event_class_code,
4642 application_id,
4643 internal_organization_id,
4644 entity_code
4645 INTO l_evnt_cls.event_class_code(1),
4646 l_evnt_cls.application_id(1),
4647 l_evnt_cls.internal_organization_id(1),
4648 l_evnt_cls.entity_code(1)
4649 FROM ZX_TRX_HEADERS_GT
4650 WHERE rownum=1;
4651 END IF;
4652
4653 /*-----------------------------------------+
4654 | Loop for each transaction header |
4655 +-----------------------------------------*/
4656 FOR i IN 1..nvl(l_evnt_cls.event_class_code.LAST,0)
4657 LOOP
4658
4659 l_event_class_rec.event_id := l_event_id;
4660 l_event_class_rec.INTERNAL_ORGANIZATION_ID := l_evnt_cls.INTERNAL_ORGANIZATION_ID(i);
4661 l_event_class_rec.APPLICATION_ID := l_evnt_cls.APPLICATION_ID(i);
4662 l_event_class_rec.ENTITY_CODE := l_evnt_cls.ENTITY_CODE(i);
4663 l_event_class_rec.EVENT_CLASS_CODE := l_evnt_cls.EVENT_CLASS_CODE(i);
4664
4668 | Validate Input Paramerters and Fetch Tax Options |
4665 ZX_TRD_SERVICES_PUB_PKG.g_variance_calc_flag := 'N';
4666
4667 /*------------------------------------------------------+
4669 +------------------------------------------------------*/
4670 ZX_VALID_INIT_PARAMS_PKG.determine_recovery(x_return_status =>l_return_status,
4671 p_event_class_rec =>l_event_class_rec
4672 );
4673
4674 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4675 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4676 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_VALID_INIT_PARAMS_PKG.determine_recovery returned errors');
4677 END IF;
4678 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
4679 RAISE FND_API.G_EXC_ERROR;
4680 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4681 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4682 END IF;
4683 END IF;
4684
4685 select ICX_SESSION_ID
4686 INTO l_event_class_rec.ICX_SESSION_ID
4687 FROM ZX_TRX_HEADERS_GT
4688 where rownum = 1;
4689
4690 IF l_event_class_rec.QUOTE_FLAG = 'Y' and
4691 l_event_class_rec.ICX_SESSION_ID is not null THEN
4692 ZX_SECURITY.G_ICX_SESSION_ID := l_event_class_rec.ICX_SESSION_ID;
4693 ZX_SECURITY.name_value('SESSIONID',to_char(ZX_SECURITY.G_ICX_SESSION_ID));
4694 -- dbms_session.set_context('my_ctx','SESSIONID',to_char(ZX_SECURITY.G_ICX_SESSION_ID));
4695
4696 ELSE
4697 ZX_SECURITY.G_ICX_SESSION_ID := null;
4698 ZX_SECURITY.name_value('SESSIONID',to_char(ZX_SECURITY.G_ICX_SESSION_ID));
4699 --dbms_session.set_context('my_ctx','SESSIONID',to_char(ZX_SECURITY.G_ICX_SESSION_ID));
4700
4701 END IF;
4702
4703 -- Check if trx line dist qty is passed when variance calc flag is 'Y'
4704
4705 FOR invalid_rec IN check_trx_line_dist_qty
4706 LOOP
4707
4708 -- x_return_status := FND_API.G_RET_STS_ERROR;
4709 FND_MESSAGE.SET_NAME('ZX','ZX_TRX_LINE_DIST_QTY_REQD');
4710 l_context_info_rec.APPLICATION_ID := invalid_rec.APPLICATION_ID;
4711 l_context_info_rec.ENTITY_CODE := invalid_rec.ENTITY_CODE;
4712 l_context_info_rec.EVENT_CLASS_CODE := invalid_rec.EVENT_CLASS_CODE;
4713 l_context_info_rec.TRX_ID := invalid_rec.TRX_ID;
4714 ZX_API_PUB.add_msg( p_context_info_rec =>l_context_info_rec );
4715 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4716 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Transaction line distribution quantity is required');
4717 END IF;
4718 END LOOP;
4719
4720 -- Check if trx line dist unit price is passed when variance calc flag is 'Y'
4721
4722 FOR invalid_rec IN check_trx_line_dist_unit_price
4723 LOOP
4724
4725 -- x_return_status := FND_API.G_RET_STS_ERROR;
4726 FND_MESSAGE.SET_NAME('ZX','ZX_UNIT_PRICE_REQD');
4727 l_context_info_rec.APPLICATION_ID := invalid_rec.APPLICATION_ID;
4728 l_context_info_rec.ENTITY_CODE := invalid_rec.ENTITY_CODE;
4729 l_context_info_rec.EVENT_CLASS_CODE := invalid_rec.EVENT_CLASS_CODE;
4730 l_context_info_rec.TRX_ID := invalid_rec.TRX_ID;
4731 ZX_API_PUB.add_msg( p_context_info_rec =>l_context_info_rec );
4732 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4733 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Transaction line distribution unit price is required');
4734 END IF;
4735 END LOOP;
4736
4737
4738 OPEN headers(l_evnt_cls.event_class_code(i),
4739 l_evnt_cls.application_id(i),
4740 l_evnt_cls.entity_code(i)
4741 );
4742 LOOP
4743 FETCH headers BULK COLLECT INTO
4744 l_transaction_header_rec.INTERNAL_ORGANIZATION_ID,
4745 l_transaction_header_rec.APPLICATION_ID,
4746 l_transaction_header_rec.LEGAL_ENTITY_ID,
4747 l_transaction_header_rec.ENTITY_CODE,
4748 l_transaction_header_rec.EVENT_TYPE_CODE,
4749 l_transaction_header_rec.EVENT_CLASS_CODE,
4750 l_transaction_header_rec.TRX_ID,
4751 l_transaction_header_rec.QUOTE_FLAG,
4752 l_transaction_header_rec.ICX_SESSION_ID
4753 LIMIT G_LINES_PER_FETCH;
4754
4755 FOR l_index IN 1..nvl(l_transaction_header_rec.application_id.LAST,0)
4756 LOOP
4757 BEGIN
4758 SAVEPOINT Determine_Recovery_Hdr_PVT;
4759 --Copy to event class record
4760 l_event_class_rec.INTERNAL_ORGANIZATION_ID := l_transaction_header_rec.INTERNAL_ORGANIZATION_ID(l_index);
4761 l_event_class_rec.APPLICATION_ID := l_transaction_header_rec.APPLICATION_ID(l_index);
4762 l_event_class_rec.LEGAL_ENTITY_ID := l_transaction_header_rec.LEGAL_ENTITY_ID(l_index);
4763 l_event_class_rec.ENTITY_CODE := l_transaction_header_rec.ENTITY_CODE(l_index);
4764 l_event_class_rec.EVENT_CLASS_CODE := l_transaction_header_rec.EVENT_CLASS_CODE(l_index);
4765 l_event_class_rec.EVENT_TYPE_CODE := l_transaction_header_rec.EVENT_TYPE_CODE(l_index);
4766 l_event_class_rec.TRX_ID := l_transaction_header_rec.TRX_ID(l_index);
4770
4767 l_event_class_rec.ICX_SESSION_ID := l_transaction_header_rec.ICX_SESSION_ID(l_index);
4768 l_event_class_rec.QUOTE_FLAG := l_transaction_header_rec.QUOTE_FLAG(l_index);
4769
4771 /* ----------------------------------------------------------------------+
4772 | Bug 3129063 - Setting the Security Context for Subscription |
4773 + ----------------------------------------------------------------------*/
4774 ZX_VALID_INIT_PARAMS_PKG.get_tax_subscriber
4775 (l_event_class_rec,
4776 l_return_status);
4777
4778 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4779 DUMP_MSG;
4780 x_return_status := l_return_status;
4781 RETURN;
4782 END IF;
4783
4784
4785 /* ----------------------------------------------------------------------+
4786 | Get Tax Event Type |
4787 + ----------------------------------------------------------------------*/
4788 ZX_VALID_INIT_PARAMS_PKG.get_tax_event_type (l_return_status
4789 ,l_event_class_rec.event_class_code
4790 ,l_event_class_rec.application_id
4791 ,l_event_class_rec.entity_code
4792 ,l_event_class_rec.event_type_code
4793 ,l_event_class_rec.tax_event_class_code
4794 ,l_event_class_rec.tax_event_type_code
4795 ,l_event_class_rec.doc_status_code
4796 );
4797
4798 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4799 x_return_status := l_return_status;
4800 DUMP_MSG;
4801 RETURN;
4802 END IF;
4803 -- Bug 6135079, SDSU - enforce_tax_from_ref_doc should be picked up from event class instead of event mappings
4804 -- This can be achieved by calling populate_event_class_options as we have done it in calculate_tax
4805
4806 BEGIN
4807 BEGIN
4808 SELECT first_pty_org_id ,
4809 related_doc_date,
4810 adjusted_doc_date,
4811 trx_date,
4812 provnl_tax_determination_date
4813 INTO l_event_class_rec.first_pty_org_id,
4814 l_related_doc_date,
4815 l_adjusted_doc_date,
4816 l_trx_date,
4817 l_prov_tax_det_date
4818 FROM ZX_LINES_DET_FACTORS
4819 WHERE application_id = l_event_class_rec.application_id
4820 AND entity_code = l_event_class_rec.entity_code
4821 AND event_class_code = l_event_class_rec.event_class_code
4822 AND trx_id = l_event_class_rec.trx_id
4823 AND rownum = 1;
4824 EXCEPTION
4825 when no_data_found then
4826 l_call_evnt_cls_options := 'N';
4827 END;
4828
4829 l_effective_date := determine_effective_date (l_trx_date,
4830 l_related_doc_date,
4831 l_adjusted_doc_date,
4832 l_prov_tax_det_date
4833 );
4834 EXCEPTION
4835 WHEN OTHERS THEN
4836 l_effective_date := SYSDATE;
4837 END;
4838 /* ----------------------------------------------------------------------+
4839 | Populate Event Class Options |
4840 + ----------------------------------------------------------------------*/
4841 IF l_call_evnt_cls_options = 'Y' THEN
4842 ZX_VALID_INIT_PARAMS_PKG.populate_event_class_options(l_return_status,
4843 l_effective_date,
4844 l_event_class_rec
4845 );
4846 END IF;
4847
4848 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4849 x_return_status := l_return_status;
4850 DUMP_MSG;
4851 RETURN;
4852 END IF;
4853
4854 ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec := l_event_class_rec;
4855
4856 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4857 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4858 'application_id: '||to_char(l_event_class_rec.application_id)||
4859 ' entity_code: '||l_event_class_rec.entity_code||
4860 ' event_class_code: '||l_event_class_rec.event_class_code||
4861 ' event_type_code: '||l_event_class_rec.event_type_code||
4862 ' trx_id: '||to_char(l_event_class_rec.trx_id)||
4863 ' internal_organization_id: '||to_char(l_event_class_rec.internal_organization_id)||
4864 ' quote_flag: '||to_char(l_event_class_rec.quote_flag)||
4865 ' icx_session_id: '||to_char(l_event_class_rec.icx_session_id));
4866 END IF;
4867
4868
4869 /* ===============================================================================*
4870 |Initialize the global structures/global temp tables owned by TDM at header level |
4874 l_return_status
4871 * =============================================================================*/
4872 ZX_TDS_CALC_SERVICES_PUB_PKG.initialize (l_event_class_rec ,
4873 'HEADER',
4875 );
4876
4877 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4878 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4879 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TDS_CALC_SERVICES_PUB_PKG.initialize returned errors');
4880 END IF;
4881 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
4882 RAISE FND_API.G_EXC_ERROR;
4883 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4884 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4885 END IF;
4886 END IF;
4887
4888 ZX_GLOBAL_STRUCTURES_PKG.rec_nrec_ccid_tbl.DELETE;
4889 /*--------------------------------------------------+
4890 | Call Service Type Determine Recovery |
4891 +--------------------------------------------------*/
4892 ZX_SRVC_TYP_PKG.determine_recovery(p_event_class_rec => l_event_class_rec,
4893 x_return_status => l_return_status
4894 );
4895
4896 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4897 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4898 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_SRVC_TYP_PKG.determine_recovery returned errors');
4899 END IF;
4900 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
4901 RAISE FND_API.G_EXC_ERROR;
4902 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4903 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4904 END IF;
4905 END IF;
4906
4907 EXCEPTION
4908 WHEN FND_API.G_EXC_ERROR THEN
4909 ROLLBACK TO Determine_Recovery_Hdr_PVT;
4910 x_return_status := FND_API.G_RET_STS_ERROR ;
4911 --Call API to dump into zx_errors_gt
4912 DUMP_MSG;
4913 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
4914 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
4915 END IF;
4916 END;
4917 END LOOP; --end loop for transaction headers
4918 EXIT WHEN headers%NOTFOUND;
4919 END LOOP;
4920 CLOSE headers;
4921
4922 -- bug fix 3313938: add tax_variance_calc_flag check.
4923 --
4924 IF ZX_TRD_SERVICES_PUB_PKG.g_variance_calc_flag = 'Y' THEN
4925
4926 ZX_TRD_INTERNAL_SERVICES_PVT.calc_variance_factors(
4927 l_return_status,
4928 l_error_buffer);
4929
4930 IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
4931 IF (g_level_statement >= g_current_runtime_level ) THEN
4932 FND_LOG.STRING(g_level_statement,
4933 G_MODULE_NAME||l_api_name,
4934 'After calling calc_variance_factors ' ||
4935 ' l_return_status = ' || l_return_status);
4936 FND_LOG.STRING(g_level_statement,
4937 G_MODULE_NAME||l_api_name,
4938 'ZX_API_PUB.DETERMINE_RECOVERY(-)');
4939 END IF;
4940 DUMP_MSG;
4941 RETURN;
4942 END IF;
4943 END IF;
4944
4945
4946 -- Bug fix 5417887 begin
4947
4948 /*--------------------------------------------------+
4949 | Call to eTax Service Manage Tax Distributions |
4950 +--------------------------------------------------*/
4951 /*-----------------------------------------------------------------+
4952 | Bug 3649502 - Check for record flag before calling TRR service |
4953 +----------------------------------------------------------------*/
4954 --IF zx_global_structures_pkg.g_event_class_rec.record_flag = 'Y' THEN
4955
4956 l_record_dist_lines := ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec.record_flag;
4957
4958 IF zx_global_structures_pkg.g_event_class_rec.record_flag = 'Y' and
4959 ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec.quote_flag = 'Y' THEN
4960 l_record_dist_lines := 'N';
4961 END IF;
4962
4963 IF l_record_dist_lines = 'Y' THEN
4964 ZX_TRL_PUB_PKG.manage_taxdistributions(x_return_status =>l_return_status,
4965 p_event_class_rec =>zx_global_structures_pkg.g_event_class_rec
4966 );
4967 END IF;
4968
4969 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4970 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4971 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TRL_PUB_PKG.manage_taxdistributions returned errors');
4972 END IF;
4973 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
4974 DUMP_MSG;
4975 RAISE FND_API.G_EXC_ERROR;
4976 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4977 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4978 END IF;
4979 END IF;
4980
4981 -- Bug fix 7506576 Included additional condition flag quote_flag when
4982 -- deleting records from GT TABLES
4983
4984 --IF zx_global_structures_pkg.g_event_class_rec.record_flag = 'Y' AND ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec.quote_flag = 'N'
4985
4986 --Reimplemented the fix done in bug#7506576
4987 IF l_record_dist_lines = 'Y' THEN
4988 DELETE FROM ZX_REC_NREC_DIST_GT;
4989 END IF;
4990
4991 END LOOP;--event_classes cursor
4992
4993 /*------------------------------------------------+
4994 | Update zx_lines_det_factors |
4995 +------------------------------------------------*/
4996
4997 IF zx_global_structures_pkg.g_event_class_rec.quote_flag <> 'Y' OR
4998 zx_global_structures_pkg.g_event_class_rec.ICX_SESSION_ID is not null
4999 THEN
5000
5001 -- ICX_SESSION_ID / QUOTE_FLAG should be same for all rows
5002 IF zx_global_structures_pkg.g_event_class_rec.ICX_SESSION_ID is not null THEN
5003
5004 BEGIN
5005 OPEN C_HEADERS;
5006 LOOP
5007 FETCH c_HEADERS BULK COLLECT INTO
5008 l_application_id_tbl,
5009 l_entity_code_tbl,
5010 l_event_class_code_tbl,
5011 l_trx_id_tbl,
5012 l_icx_session_id_tbl,
5013 l_event_type_code_tbl,
5014 l_tax_event_type_code_tbl,
5015 l_doc_event_status_tbl
5016 LIMIT G_LINES_PER_FETCH;
5017
5018
5019 /*------------------------------------------------------------------------------+
5020 | Bug 4948674: Handle delete for P2P products when icx_session_id is NOT NULL |
5021 +------------------------------------------------------------------------------*/
5022
5023 FORALL i IN l_application_id_tbl.FIRST .. l_application_id_tbl.LAST
5024 DELETE from zx_lines_det_factors
5025 WHERE APPLICATION_ID = l_application_id_tbl(i)
5026 AND ENTITY_CODE = l_entity_code_tbl(i)
5027 AND EVENT_CLASS_CODE = l_event_class_code_tbl(i)
5028 AND TRX_ID = l_trx_id_tbl(i)
5029 AND ICX_SESSION_ID = l_icx_session_id_tbl(i);
5030
5031 exit when c_HEADERS%NOTFOUND;
5032 END LOOP;
5033
5034 close c_HEADERS;
5035 EXCEPTION
5036 WHEN OTHERS THEN
5037
5038 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
5039 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TRL_PUB_PKG.manage_taxdistributions returned errors');
5040 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name, SQLCODE||' ; '||SQLERRM);
5041 END IF;
5042
5043 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
5044 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
5045 FND_MSG_PUB.Add;
5046
5047 IF c_HEADERS%ISOPEN THEN
5048 close c_HEADERS;
5049 END IF;
5050 END;
5051 END IF; -- icx_session_id
5052
5053
5054 END IF;
5055
5056 -- Bug fix 5417887 end
5057
5058 --Reset the icx_session_id at end of API
5059 ZX_SECURITY.G_ICX_SESSION_ID := null;
5060 ZX_SECURITY.name_value('SESSIONID',to_char(ZX_SECURITY.G_ICX_SESSION_ID));
5061 -- dbms_session.set_context('my_ctx','SESSIONID',to_char(ZX_SECURITY.G_ICX_SESSION_ID));
5062
5063
5064 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5065 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
5066 END IF;
5067
5068 EXCEPTION
5069 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5070 ROLLBACK TO Determine_Recovery_PVT;
5071 --Close all open cursors
5072 IF headers%ISOPEN THEN CLOSE headers; END IF;
5073 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
5074 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
5075 FND_MSG_PUB.Add;
5076 /*---------------------------------------------------------+
5077 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
5078 | in the message stack. If there is only one message in |
5079 | the stack it retrieves this message |
5080 +---------------------------------------------------------*/
5081 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
5082 p_count => x_msg_count,
5083 p_data => x_msg_data
5084 );
5085 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
5086 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
5087 END IF;
5088
5089 WHEN OTHERS THEN
5090 ROLLBACK TO Determine_Recovery_PVT;
5091 --Close all open cursors
5092 IF headers%ISOPEN THEN CLOSE headers; END IF;
5093 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
5094 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
5095 FND_MSG_PUB.Add;
5096 /*---------------------------------------------------------+
5097 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
5098 | in the message stack. If there is only one message in |
5099 | the stack it retrieves this message |
5100 +---------------------------------------------------------*/
5101 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
5102 p_count => x_msg_count,
5106 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
5103 p_data => x_msg_data
5104 );
5105 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
5107 END IF;
5108
5109 END determine_recovery;
5110
5111 /* =======================================================================*
5112 | PROCEDURE override_recovery :Overrides the tax recovery rate code |
5113 * =======================================================================*/
5114
5115 PROCEDURE Override_recovery
5116 ( p_api_version IN NUMBER,
5117 p_init_msg_list IN VARCHAR2,
5118 p_commit IN VARCHAR2,
5119 p_validation_level IN NUMBER,
5120 x_return_status OUT NOCOPY VARCHAR2 ,
5121 x_msg_count OUT NOCOPY NUMBER ,
5122 x_msg_data OUT NOCOPY VARCHAR2,
5123 p_transaction_rec IN OUT NOCOPY transaction_rec_type
5124 ) IS
5125 l_api_name CONSTANT VARCHAR2(30) := 'OVERRIDE_RECOVERY';
5126 l_api_version CONSTANT NUMBER := 1.0;
5127 l_return_status VARCHAR2(30);
5128 l_event_class_rec event_class_rec_type;
5129 l_trans_rec transaction_rec_type;
5130 l_init_msg_list VARCHAR2(1);
5131 l_record_dist_lines VARCHAR2(1);
5132
5133 BEGIN
5134 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5135 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
5136 END IF;
5137
5138 /*--------------------------------------------------+
5139 | Standard start of API savepoint |
5140 +--------------------------------------------------*/
5141 SAVEPOINT override_recovery_PVT;
5142
5143 /*--------------------------------------------------+
5144 | Standard call to check for call compatibility |
5145 +--------------------------------------------------*/
5146 IF NOT FND_API.Compatible_API_Call( l_api_version,
5147 p_api_version,
5148 l_api_name,
5149 G_PKG_NAME
5150 ) THEN
5151 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5152 END IF;
5153
5154 /*--------------------------------------------------------------+
5155 | Initialize message list if p_init_msg_list is set to TRUE |
5156 +--------------------------------------------------------------*/
5157 IF p_init_msg_list is null THEN
5158 l_init_msg_list := FND_API.G_FALSE;
5159 ELSE
5160 l_init_msg_list := p_init_msg_list;
5161 END IF;
5162
5163 IF FND_API.to_Boolean(l_init_msg_list) THEN
5164 FND_MSG_PUB.initialize;
5165 END IF;
5166
5167 /*-----------------------------------------+
5168 | Initialize return status to SUCCESS |
5169 +-----------------------------------------*/
5170 x_return_status := FND_API.G_RET_STS_SUCCESS;
5171
5172 /*-----------------------------------------+
5173 | Populate Global Variable |
5174 +-----------------------------------------*/
5175 G_PUB_SRVC := l_api_name;
5176 G_DATA_TRANSFER_MODE := 'PLS';
5177 G_EXTERNAL_API_CALL := 'N';
5178
5179 --Call TDS process to initialise distributions for previous calls to determine recovery
5180 --if any
5181 ZX_TDS_CALC_SERVICES_PUB_PKG.initialize (p_event_class_rec => NULL,
5182 p_init_level => 'TAX_DISTRIBUTION',
5183 x_return_status => l_return_status
5184 );
5185 /*------------------------------------------------------+
5186 | Validate Input Paramerters and Fetch Tax Options |
5187 +------------------------------------------------------*/
5188 ZX_VALID_INIT_PARAMS_PKG.override_recovery(x_return_status => l_return_status,
5189 p_event_class_rec => l_event_class_rec,
5190 p_trx_rec => p_transaction_rec
5191 );
5192
5193 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5194 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5195 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_VALID_INIT_PARAMS_PKG.override_recovery returned errors');
5196 END IF;
5197 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
5198 RAISE FND_API.G_EXC_ERROR;
5199 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5200 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5201 END IF;
5202 END IF;
5203
5204 /*--------------------------------------------------+
5205 | Call Service Type Override Recovery |
5206 +--------------------------------------------------*/
5207 ZX_SRVC_TYP_PKG.override_recovery(p_event_class_rec => l_event_class_rec,
5208 x_return_status => l_return_status
5209 );
5210
5211 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5212 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5213 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_SRVC_TYP_PKG.override_recovery returned errors');
5214 END IF;
5215 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
5216 RAISE FND_API.G_EXC_ERROR;
5220 END IF;
5217 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5218 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5219 END IF;
5221
5222 /*--------------------------------------------------+
5223 | Call to eTax Service Manage Tax Distributions |
5224 +--------------------------------------------------*/
5225 --IF l_event_class_rec.record_flag = 'Y' THEN
5226
5227 l_record_dist_lines := l_event_class_rec.record_flag;
5228
5229 IF l_event_class_rec.record_flag = 'Y' and
5230 l_event_class_rec.quote_flag = 'Y' THEN
5231 l_record_dist_lines := 'N';
5232 END IF;
5233 IF l_record_dist_lines = 'Y' THEN
5234 ZX_TRL_PUB_PKG.manage_taxdistributions(x_return_status => l_return_status,
5235 p_event_class_rec => l_event_class_rec
5236 );
5237 END IF;
5238
5239 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5240 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5241 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TRL_PUB_PKG.manage_taxdistributions returned errors');
5242 END IF;
5243 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
5244 RAISE FND_API.G_EXC_ERROR;
5245 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5246 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5247 END IF;
5248 END IF;
5249
5250 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5251 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
5252 END IF;
5253
5254 /* Bug 3704651 - No need to uptake error handling as it is a PLS API*/
5255 EXCEPTION
5256 WHEN FND_API.G_EXC_ERROR THEN
5257 ROLLBACK TO override_recovery_PVT;
5258 x_return_status := FND_API.G_RET_STS_ERROR ;
5259 /*---------------------------------------------------------+
5260 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
5261 | in the message stack. If there is only one message in |
5262 | the stack it retrieves this message |
5263 +---------------------------------------------------------*/
5264 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
5265 p_count => x_msg_count,
5266 p_data => x_msg_data
5267 );
5268 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
5269 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
5270 END IF;
5271
5272 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5273 ROLLBACK TO override_recovery_PVT;
5274 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
5275 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
5276 FND_MSG_PUB.Add;
5277 /*---------------------------------------------------------+
5278 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
5279 | in the message stack. If there is only one message in |
5280 | the stack it retrieves this message |
5281 +---------------------------------------------------------*/
5282 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
5283 p_count => x_msg_count,
5284 p_data => x_msg_data
5285 );
5286 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
5287 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
5288 END IF;
5289
5290 WHEN OTHERS THEN
5291 /*-------------------------------------------------------+
5292 | Handle application errors that result from trapable |
5293 | error conditions. The error messages have already |
5294 | been put on the error stack. |
5295 +-------------------------------------------------------*/
5296 ROLLBACK TO override_recovery_PVT;
5297 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
5298 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
5299 FND_MSG_PUB.Add;
5300 /*---------------------------------------------------------+
5301 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
5302 | in the message stack. If there is only one message in |
5303 | the stack it retrieves this message |
5304 +---------------------------------------------------------*/
5305 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
5306 p_count => x_msg_count,
5307 p_data => x_msg_data
5308 );
5309 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
5310 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
5311 END IF;
5312 END override_recovery;
5313
5314
5315 /* =======================================================================*
5316 | PROCEDURE freeze_tax_distributions : |
5317 * =======================================================================*/
5318
5319 PROCEDURE freeze_tax_distributions
5320 ( p_api_version IN NUMBER,
5321 p_init_msg_list IN VARCHAR2,
5322 p_commit IN VARCHAR2,
5323 p_validation_level IN NUMBER,
5324 x_return_status OUT NOCOPY VARCHAR2 ,
5328 ) IS
5325 x_msg_count OUT NOCOPY NUMBER ,
5326 x_msg_data OUT NOCOPY VARCHAR2,
5327 p_transaction_rec IN OUT NOCOPY transaction_rec_type
5329 l_api_name CONSTANT VARCHAR2(30) := 'FREEZE_TAX_DISTRIBUTIONS';
5330 l_api_version CONSTANT NUMBER := 1.0;
5331 l_return_status VARCHAR2(30);
5332 l_event_class_rec event_class_rec_type;
5333 l_init_msg_list VARCHAR2(1);
5334
5335 CURSOR get_event_class_info
5336 IS
5337 SELECT dist.application_id,
5338 dist.entity_code,
5339 dist.event_class_code,
5340 evnttyp.event_type_code,
5341 dist.tax_event_class_code,
5342 'UPDATE' tax_event_type_code,
5343 'UPDATED' doc_status_code,
5344 evntcls.summarization_flag,
5345 evntcls.retain_summ_tax_line_id_flag
5346 FROM zx_rec_nrec_dist dist,
5347 zx_evnt_cls_mappings evntcls,
5348 zx_evnt_typ_mappings evnttyp,
5349 zx_tax_dist_id_gt distgt
5350 WHERE dist.application_id = evntcls.application_id
5351 AND dist.entity_code = evntcls.entity_code
5352 AND dist.event_class_code = evntcls.event_class_code
5353 AND evnttyp.application_id = evntcls.application_id
5354 AND evnttyp.entity_code = evntcls.entity_code
5355 AND evnttyp.event_class_code = evntcls.event_class_code
5356 AND evnttyp.tax_event_type_code = 'UPDATE'
5357 AND dist.REC_NREC_TAX_DIST_ID = distgt.tax_dist_id;
5358
5359
5360 BEGIN
5361
5362 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5363 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
5364 END IF;
5365
5366 /*--------------------------------------------------+
5367 | Standard start of API savepoint |
5368 +--------------------------------------------------*/
5369 SAVEPOINT FREEZE_TAX_DISTRIBUTIONS_PVT;
5370
5371 /*--------------------------------------------------+
5372 | Standard call to check for call compatibility |
5373 +--------------------------------------------------*/
5374 IF NOT FND_API.Compatible_API_Call( l_api_version,
5375 p_api_version,
5376 l_api_name,
5377 G_PKG_NAME
5378 ) THEN
5379 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5380 END IF;
5381
5382 /*--------------------------------------------------------------+
5383 | Initialize message list if p_init_msg_list is set to TRUE |
5384 +--------------------------------------------------------------*/
5385 IF p_init_msg_list is null THEN
5386 l_init_msg_list := FND_API.G_FALSE;
5387 ELSE
5388 l_init_msg_list := p_init_msg_list;
5389 END IF;
5390
5391 IF FND_API.to_Boolean(l_init_msg_list) THEN
5392 FND_MSG_PUB.initialize;
5393 END IF;
5394
5395 /*-----------------------------------------+
5396 | Initialize return status to SUCCESS |
5397 +-----------------------------------------*/
5398 x_return_status := FND_API.G_RET_STS_SUCCESS;
5399
5400 /*-----------------------------------------+
5401 | Populate Global Variable |
5402 +-----------------------------------------*/
5403 G_PUB_SRVC := l_api_name;
5404 G_DATA_TRANSFER_MODE := 'PLS';
5405 G_EXTERNAL_API_CALL := 'N';
5406
5407 /*-----------------------------------------------------+
5408 | Validate Input Parameters and Fetch Tax Options |
5409 +-----------------------------------------------------*/
5410 -- Bug 5580045 - Commented out the call to valid intit package so that necessary
5411 -- information can be retrieved for BULK processing
5412 /*
5413 ZX_VALID_INIT_PARAMS_PKG.freeze_distribution_lines(x_return_status => l_return_status,
5414 p_event_class_rec => l_event_class_rec,
5415 p_trx_rec => p_transaction_rec
5416 );
5417
5418 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5419 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5420 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_VALID_INIT_PARAMS_PKG.freeze_distribution_lines returned errors');
5421 END IF;
5422 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
5423 RAISE FND_API.G_EXC_ERROR;
5424 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5425 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5426 END IF;
5427 END IF;
5428 */
5429
5430 -- Get Event Class Info.
5431
5432 OPEN get_event_class_info;
5433 FETCH get_event_class_info INTO
5434 l_event_class_rec.APPLICATION_ID,
5435 l_event_class_rec.ENTITY_CODE,
5436 l_event_class_rec.EVENT_CLASS_CODE,
5437 l_event_class_rec.EVENT_TYPE_CODE,
5438 l_event_class_rec.TAX_EVENT_CLASS_CODE,
5439 l_event_class_rec.TAX_EVENT_TYPE_CODE,
5440 l_event_class_rec.DOC_STATUS_CODE,
5441 l_event_class_rec.summarization_flag,
5442 l_event_class_rec.retain_summ_tax_line_id_flag;
5443
5444 IF get_event_class_info%notfound THEN
5445
5446 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
5447
5448 FND_LOG.STRING(G_LEVEL_STATEMENT,
5449 G_MODULE_NAME || l_api_name, G_PKG_NAME||':'||l_api_name
5453 END IF;
5450 ||': Event Class Info not retreived');
5451 END IF;
5452
5454
5455 CLOSE get_event_class_info;
5456
5457 -- Begin Bug fix 5552750: Stamp event_id for only trx lines for which
5458 -- tax distributions are being frozen
5459
5460 /*-----------------------------------------+
5461 | Get the event id for the whole document |
5462 +-----------------------------------------*/
5463 select ZX_LINES_DET_FACTORS_S.nextval
5464 into l_event_class_rec.event_id
5465 from dual;
5466
5467 /*------------------------------------------------+
5468 | Update zx_lines_det_factors |
5469 +------------------------------------------------*/
5470
5471 UPDATE ZX_LINES_DET_FACTORS
5472 SET EVENT_TYPE_CODE = l_event_class_rec.event_type_code,
5473 TAX_EVENT_TYPE_CODE = l_event_class_rec.tax_event_type_code,
5474 EVENT_ID = l_event_class_rec.event_id,
5475 DOC_EVENT_STATUS = l_event_class_rec.doc_status_code
5476 WHERE APPLICATION_ID = p_transaction_rec.APPLICATION_ID
5477 AND ENTITY_CODE = p_transaction_rec.ENTITY_CODE
5478 AND EVENT_CLASS_CODE = p_transaction_rec.EVENT_CLASS_CODE
5479 -- AND TRX_ID = p_transaction_rec.TRX_ID
5480 AND (TRX_ID,TRX_LINE_ID,TRX_LEVEL_TYPE) IN (Select dist.trx_id, dist.trx_line_id,
5481 dist.trx_level_type from zx_rec_nrec_dist dist,
5482 zx_tax_dist_id_gt zxgt
5483 where dist.rec_nrec_tax_dist_id = zxgt.tax_dist_id);
5484
5485 -- End Bug fix 5552750
5486
5487 /*--------------------------------------------------+
5488 | Call Service Type Freeze Distribution Lines |
5489 +--------------------------------------------------*/
5490 ZX_SRVC_TYP_PKG.freeze_distribution_lines(x_return_status => l_return_status,
5491 p_event_class_rec => l_event_class_rec
5492 );
5493
5494 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5495 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5496 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_SRVC_TYP_PKG.freeze_distribution_lines returned errors');
5497 END IF;
5498 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
5499 RAISE FND_API.G_EXC_ERROR;
5500 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5501 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5502 END IF;
5503 END IF;
5504
5505
5506 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5507 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
5508 END IF;
5509
5510 EXCEPTION
5511 WHEN FND_API.G_EXC_ERROR THEN
5512 ROLLBACK TO FREEZE_TAX_DISTRIBUTIONS_PVT;
5513 x_return_status := FND_API.G_RET_STS_ERROR ;
5514 /*---------------------------------------------------------+
5515 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
5516 | in the message stack. If there is only one message in |
5517 | the stack it retrieves this message |
5518 +---------------------------------------------------------*/
5519 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
5520 p_count => x_msg_count,
5521 p_data => x_msg_data
5522 );
5523
5524 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
5525 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
5526 END IF;
5527
5528 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5529 ROLLBACK TO FREEZE_TAX_DISTRIBUTIONS_PVT;
5530 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
5531 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
5532 FND_MSG_PUB.Add;
5533 /*---------------------------------------------------------+
5534 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
5535 | in the message stack. If there is only one message in |
5536 | the stack it retrieves this message |
5537 +---------------------------------------------------------*/
5538 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
5539 p_count => x_msg_count,
5540 p_data => x_msg_data
5541 );
5542 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
5543 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
5544 END IF;
5545
5546 WHEN OTHERS THEN
5547 ROLLBACK TO FREEZE_TAX_DISTRIBUTIONS_PVT;
5548 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
5549 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
5550 FND_MSG_PUB.Add;
5551 /*---------------------------------------------------------+
5552 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
5553 | in the message stack. If there is only one message in |
5554 | the stack it retrieves this message |
5555 +---------------------------------------------------------*/
5556 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
5557 p_count => x_msg_count,
5558 p_data => x_msg_data
5559 );
5560 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
5564
5561 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
5562 END IF;
5563 END freeze_tax_distributions;
5565 /* ======================================================================*
5566 | PROCEDURE get_tax_distribution_ccids : Products call this API if they |
5567 | need to determine the code |
5568 | combination identifiers for |
5569 | tax liability and tax recovery/|
5570 | nonrecovery accounts |
5571 | There exists only the pl/sql version of the API |
5572 * ======================================================================*/
5573 PROCEDURE get_tax_distribution_ccids
5574 ( p_api_version IN NUMBER,
5575 p_init_msg_list IN VARCHAR2,
5576 p_commit IN VARCHAR2,
5577 p_validation_level IN NUMBER,
5578 x_return_status OUT NOCOPY VARCHAR2 ,
5579 x_msg_count OUT NOCOPY NUMBER ,
5580 x_msg_data OUT NOCOPY VARCHAR2,
5581 p_dist_ccid_rec IN OUT NOCOPY distccid_det_facts_rec_type
5582 ) IS
5583 l_api_name CONSTANT VARCHAR2(30) := 'GET_TAX_DISTRIBUTION_CCIDS';
5584 l_api_version CONSTANT NUMBER := 1.0;
5585 l_return_status VARCHAR2(30);
5586 l_init_msg_list VARCHAR2(1);
5587
5588 BEGIN
5589 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5590 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
5591 END IF;
5592
5593 /*--------------------------------------------------+
5594 | Standard start of API savepoint |
5595 +--------------------------------------------------*/
5596 SAVEPOINT Get_Tax_Distribution_ccids_PVT;
5597
5598 /*-----------------------------------------+
5599 | Initialize return status to SUCCESS |
5600 +-----------------------------------------*/
5601
5602 x_return_status := FND_API.G_RET_STS_SUCCESS;
5603
5604 /*--------------------------------------------------+
5605 | Standard call to check for call compatibility |
5606 +--------------------------------------------------*/
5607 IF NOT FND_API.Compatible_API_Call( l_api_version,
5608 p_api_version,
5609 l_api_name,
5610 G_PKG_NAME
5611 ) THEN
5612 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5613 END IF;
5614
5615 /*--------------------------------------------------------------+
5616 | Initialize message list if p_init_msg_list is set to TRUE |
5617 +--------------------------------------------------------------*/
5618 IF p_init_msg_list is null THEN
5619 l_init_msg_list := FND_API.G_FALSE;
5620 ELSE
5621 l_init_msg_list := p_init_msg_list;
5622 END IF;
5623
5624 IF FND_API.to_Boolean(l_init_msg_list) THEN
5625 FND_MSG_PUB.initialize;
5626 END IF;
5627
5628 /*-----------------------------------------+
5629 | Populate Global Variable |
5630 +-----------------------------------------*/
5631 G_PUB_SRVC := l_api_name;
5632 G_DATA_TRANSFER_MODE := 'PLS';
5633 G_EXTERNAL_API_CALL := 'N';
5634
5635 /*---------------------------------------------+
5636 | Missing Gl Date |
5637 +---------------------------------------------*/
5638 IF p_dist_ccid_rec.gl_date is NULL THEN
5639 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5640 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
5641 'GL date of tax distribution is required');
5642 END IF;
5643 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5644 END IF;
5645
5646 /*---------------------------------------------+
5647 | Missing Tax Rate Id |
5648 +---------------------------------------------*/
5649 IF p_dist_ccid_rec.tax_rate_id is NULL THEN
5650 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5651 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
5652 'Tax rate ID of tax distribution is required');
5653 END IF;
5654 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5655 END IF;
5656
5657 /*---------------------------------------------+
5658 | Missing Rec Rate Id |
5659 +---------------------------------------------*/
5660 IF p_dist_ccid_rec.recoverable_flag = 'Y' and
5661 p_dist_ccid_rec.rec_rate_id is NULL THEN
5662 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5663 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
5664 'Recovery rate ID of tax distribution is required');
5665 END IF;
5666 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5667 END IF;
5668
5669 /*---------------------------------------------+
5670 | Missing Self Assessed Flag |
5671 +---------------------------------------------*/
5672
5673 IF p_dist_ccid_rec.self_assessed_flag is NULL THEN
5674 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5675 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
5676 'Self-assessed flag of tax distribution is required');
5680
5677 END IF;
5678 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5679 END IF;
5681 /*---------------------------------------------+
5682 | Missing Recoverable Flag |
5683 +---------------------------------------------*/
5684
5685 IF p_dist_ccid_rec.recoverable_flag is NULL THEN
5686 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5687 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
5688 'Recoverable flag of tax distribution is required');
5689 END IF;
5690 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5691 END IF;
5692
5693 /*---------------------------------------------+
5694 | Missing Tax Jurisdiction Id |
5695 +---------------------------------------------*/
5696
5697 /*IF p_dist_ccid_rec.tax_jurisdiction_id is NULL THEN
5698 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5699 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
5700 'Tax jurisdiction ID of tax distribution is required');
5701 END IF;
5702 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5703 END IF;
5704 */
5705
5706 /*---------------------------------------------+
5707 | Missing Tax Regime Id |
5708 +---------------------------------------------*/
5709
5710 IF p_dist_ccid_rec.tax_regime_id is NULL THEN
5711 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5712 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
5713 'Tax regime ID of tax distribution is required');
5714 END IF;
5715 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5716 END IF;
5717
5718 /*---------------------------------------------+
5719 | Missing Tax Id |
5720 +---------------------------------------------*/
5721
5722 IF p_dist_ccid_rec.tax_id is NULL THEN
5723 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5724 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
5725 'Tax id of tax distribution is required');
5726 END IF;
5727 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5728 END IF;
5729
5730 /*---------------------------------------------+
5731 | Missing Tax Status Id |
5732 +---------------------------------------------*/
5733
5734 IF p_dist_ccid_rec.tax_status_id is NULL THEN
5735 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5736 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
5737 'Tax status ID of tax distribution is required');
5738 END IF;
5739 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5740 END IF;
5741
5742 /*---------------------------------------------+
5743 | Missing Org Id |
5744 +---------------------------------------------*/
5745
5746 IF p_dist_ccid_rec.internal_organization_id is NULL THEN
5747 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5748 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
5749 'Operating Unit is required');
5750 END IF;
5751 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5752 END IF;
5753
5754 /*---------------------------------------------+
5755 | Missing Revenue Expense CCID |
5756 +---------------------------------------------*/
5757
5758 IF p_dist_ccid_rec.revenue_expense_ccid is NULL THEN
5759 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5760 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
5761 'Revenue account of tax distribution is required');
5762 END IF;
5763 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5764 END IF;
5765
5766 /*-----------------------------------------+
5767 | Get CCID |
5768 +-----------------------------------------*/
5769 ZX_TRD_SERVICES_PUB_PKG.get_ccid(p_gl_date => p_dist_ccid_rec.gl_date,
5770 p_tax_rate_id => p_dist_ccid_rec.tax_rate_id,
5771 p_rec_rate_id => p_dist_ccid_rec.rec_rate_id,
5772 p_Self_Assessed_Flag => p_dist_ccid_rec.self_assessed_flag,
5773 p_Recoverable_Flag => p_dist_ccid_rec.recoverable_flag,
5774 p_tax_jurisdiction_id => p_dist_ccid_rec.tax_jurisdiction_id,
5775 p_tax_regime_id => p_dist_ccid_rec.tax_regime_id,
5776 p_tax_id => p_dist_ccid_rec.tax_id,
5777 p_tax_status_id => p_dist_ccid_rec.tax_status_id,
5778 p_org_id => p_dist_ccid_rec.internal_organization_id,
5779 p_revenue_expense_ccid => p_dist_ccid_rec.revenue_expense_ccid,
5780 p_ledger_id => p_dist_ccid_rec.ledger_id,
5781 p_account_source_tax_rate_id => p_dist_ccid_rec.account_source_tax_rate_id,
5782 p_rec_nrec_tax_dist_id => p_dist_ccid_rec.rec_nrec_tax_dist_id,
5786 );
5783 p_rec_nrec_ccid => p_dist_ccid_rec.rec_nrec_ccid,
5784 p_tax_liab_ccid => p_dist_ccid_rec.tax_liab_ccid,
5785 x_return_status => l_return_status
5787
5788
5789 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5790 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5791 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TRD_SERVICES_PUB_PKG.get_ccid returned errors');
5792 END IF;
5793 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
5794 RAISE FND_API.G_EXC_ERROR;
5795 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5796 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5797 END IF;
5798 ELSE
5799 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5800 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
5801 'Recovery/NonRecovery CCID : ' ||
5802 to_char(p_dist_ccid_rec.revenue_expense_ccid) ||
5803 'Tax liability CCID : ' ||
5804 to_char(p_dist_ccid_rec.tax_liab_ccid) ||
5805 'Revenue CCID : ' ||
5806 to_char(p_dist_ccid_rec.tax_liab_ccid)
5807 );
5808 END IF;
5809 END IF;
5810
5811 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5812 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
5813 END IF;
5814
5815 /* Bug 3704651 - No need to uptake error handling as it is a PLS API*/
5816 EXCEPTION
5817 WHEN FND_API.G_EXC_ERROR THEN
5818 ROLLBACK TO Get_Tax_Distribution_Ccids_PVT;
5819 x_return_status := FND_API.G_RET_STS_ERROR ;
5820 /*---------------------------------------------------------+
5821 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
5822 | in the message stack. If there is only one message in |
5823 | the stack it retrieves this message |
5824 +---------------------------------------------------------*/
5825 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
5826 p_count => x_msg_count,
5827 p_data => x_msg_data
5828 );
5829
5830 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
5831 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
5832 END IF;
5833
5834 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5835 ROLLBACK TO Get_Tax_Distribution_Ccids_PVT;
5836 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
5837 FND_MSG_PUB.Add;
5838 /*---------------------------------------------------------+
5839 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
5840 | in the message stack. If there is only one message in |
5841 | the stack it retrieves this message |
5842 +---------------------------------------------------------*/
5843 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
5844 p_count => x_msg_count,
5845 p_data => x_msg_data
5846 );
5847 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
5848 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
5849 END IF;
5850
5851 WHEN OTHERS THEN
5852 ROLLBACK TO Get_Tax_Distribution_Ccids_PVT;
5853 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
5854 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
5855 FND_MSG_PUB.Add;
5856 /*---------------------------------------------------------+
5857 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
5858 | in the message stack. If there is only one message in |
5859 | the stack it retrieves this message |
5860 +---------------------------------------------------------*/
5861 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
5862 p_count => x_msg_count,
5863 p_data => x_msg_data
5864 );
5865
5866 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
5867 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
5868 END IF;
5869
5870 END get_tax_distribution_ccids;
5871
5872
5873 /* ===================================================================================*
5874 | PROCEDURE Update_tax_dist_gl_date : Updates gl date of a list of Tax Distributions |
5875 | GTT involved : ZX_TAX_DIST_ID_GT |
5876 * ====================================================================================*/
5877
5878 PROCEDURE Update_Tax_dist_gl_date
5879 ( p_api_version IN NUMBER,
5880 p_init_msg_list IN VARCHAR2,
5881 p_commit IN VARCHAR2,
5882 p_validation_level IN NUMBER,
5883 x_return_status OUT NOCOPY VARCHAR2,
5884 x_msg_count OUT NOCOPY NUMBER,
5885 x_msg_data OUT NOCOPY VARCHAR2,
5886 p_gl_date IN DATE
5887 ) IS
5891 l_context_info_rec context_info_rec_type;
5888 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_TAX_DIST_GL_DATE';
5889 l_api_version CONSTANT NUMBER := 1.0;
5890 l_return_status VARCHAR2(30);
5892 l_init_msg_list VARCHAR2(1);
5893
5894 BEGIN
5895 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5896 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
5897 END IF;
5898
5899 /*--------------------------------------------------+
5900 | Standard start of API savepoint |
5901 +--------------------------------------------------*/
5902 SAVEPOINT Update_Tax_Dist_GL_Date_PVT;
5903
5904 /*--------------------------------------------------+
5905 | Standard call to check for call compatibility |
5906 +--------------------------------------------------*/
5907 IF NOT FND_API.Compatible_API_Call( l_api_version,
5908 p_api_version,
5909 l_api_name,
5910 G_PKG_NAME
5911 ) THEN
5912 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5913 END IF;
5914
5915 /*--------------------------------------------------------------+
5916 | Initialize message list if p_init_msg_list is set to TRUE |
5917 +--------------------------------------------------------------*/
5918 IF p_init_msg_list is null THEN
5919 l_init_msg_list := FND_API.G_FALSE;
5920 ELSE
5921 l_init_msg_list := p_init_msg_list;
5922 END IF;
5923
5924 IF FND_API.to_Boolean(l_init_msg_list) THEN
5925 FND_MSG_PUB.initialize;
5926 END IF;
5927
5928 /*-----------------------------------------+
5929 | Initialize return status to SUCCESS |
5930 +-----------------------------------------*/
5931
5932 x_return_status := FND_API.G_RET_STS_SUCCESS;
5933
5934 /*-----------------------------------------+
5935 | Populate Global Variable |
5936 +-----------------------------------------*/
5937
5938 G_PUB_SRVC := l_api_name;
5939 G_DATA_TRANSFER_MODE := 'PLS';
5940 G_EXTERNAL_API_CALL := 'N';
5941
5942 /*--------------------------------+
5943 | Update gl date |
5944 +-------------------------------*/
5945 ZX_TRL_PUB_PKG.update_gl_date(p_gl_date =>p_gl_date,
5946 x_return_status =>l_return_status
5947 );
5948
5949 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5950 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5951 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TRL_PUB_PKG.update_gl_date returned errors');
5952 END IF;
5953 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
5954 RAISE FND_API.G_EXC_ERROR;
5955 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5956 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5957 END IF;
5958 END IF;
5959
5960 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5961 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()+');
5962 END IF;
5963
5964 EXCEPTION
5965 WHEN FND_API.G_EXC_ERROR THEN
5966 ROLLBACK TO Update_Tax_Dist_Gl_Date_PVT;
5967 x_return_status := FND_API.G_RET_STS_ERROR ;
5968 /*---------------------------------------------------------+
5969 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
5970 | in the message stack. If there is only one message in |
5971 | the stack it retrieves this message |
5972 +---------------------------------------------------------*/
5973 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
5974 p_count => x_msg_count,
5975 p_data => x_msg_data
5976 );
5977 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
5978 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
5979 END IF;
5980
5981 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5982 ROLLBACK TO Update_Tax_Dist_GL_Date_PVT;
5983 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
5984 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
5985 FND_MSG_PUB.Add;
5986 /*---------------------------------------------------------+
5987 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
5988 | in the message stack. If there is only one message in |
5989 | the stack it retrieves this message |
5990 +---------------------------------------------------------*/
5991 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
5992 p_count => x_msg_count,
5993 p_data => x_msg_data
5994 );
5995 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
5996 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
5997 END IF;
5998
5999 WHEN OTHERS THEN
6000 ROLLBACK TO Update_tax_dist_gl_date_PVT;
6001 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
6002 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
6003 FND_MSG_PUB.Add;
6007 | the stack it retrieves this message |
6004 /*---------------------------------------------------------+
6005 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
6006 | in the message stack. If there is only one message in |
6008 +---------------------------------------------------------*/
6009 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
6010 p_count => x_msg_count,
6011 p_data => x_msg_data
6012 );
6013 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
6014 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
6015 END IF;
6016
6017 END update_tax_dist_gl_date;
6018
6019 /* =====================================================================*
6020 | PROCEDURE Update_exchange_rate : Updates Exchange Rate |
6021 +========================================================================*/
6022
6023 PROCEDURE update_exchange_rate
6024 ( p_api_version IN NUMBER,
6025 p_init_msg_list IN VARCHAR2,
6026 p_commit IN VARCHAR2,
6027 p_validation_level IN NUMBER,
6028 x_return_status OUT NOCOPY VARCHAR2,
6029 x_msg_count OUT NOCOPY NUMBER,
6030 x_msg_data OUT NOCOPY VARCHAR2,
6031 p_transaction_rec IN transaction_rec_type,
6032 p_curr_conv_rate IN NUMBER,
6033 p_curr_conv_date IN DATE,
6034 p_curr_conv_type IN VARCHAR2
6035 ) IS
6036 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_EXCHANGE_RATE';
6037 l_api_version CONSTANT NUMBER := 1.0;
6038 l_event_class_rec event_class_rec_type;
6039 l_return_status VARCHAR2(30);
6040 l_ledger_id NUMBER;
6041 l_init_msg_list VARCHAR2(1);
6042
6043 BEGIN
6044
6045 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6046 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
6047 END IF;
6048
6049 /*--------------------------------------------------+
6050 | Standard start of API savepoint |
6051 +--------------------------------------------------*/
6052 SAVEPOINT Update_Exchange_Rate_PVT;
6053
6054 /*--------------------------------------------------+
6055 | Standard call to check for call compatibility |
6056 +--------------------------------------------------*/
6057 IF NOT FND_API.Compatible_API_Call( l_api_version,
6058 p_api_version,
6059 l_api_name,
6060 G_PKG_NAME
6061 ) THEN
6062 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6063 END IF;
6064
6065 /*--------------------------------------------------------------+
6066 | Initialize message list if p_init_msg_list is set to TRUE |
6067 +--------------------------------------------------------------*/
6068 IF p_init_msg_list is null THEN
6069 l_init_msg_list := FND_API.G_FALSE;
6070 ELSE
6071 l_init_msg_list := p_init_msg_list;
6072 END IF;
6073
6074 IF FND_API.to_Boolean(l_init_msg_list) THEN
6075 FND_MSG_PUB.initialize;
6076 END IF;
6077
6078 /*-----------------------------------------+
6079 | Initialize return status to SUCCESS |
6080 +-----------------------------------------*/
6081
6082 x_return_status := FND_API.G_RET_STS_SUCCESS;
6083
6084 /*-----------------------------------------+
6085 | Populate Global Variable |
6086 +-----------------------------------------*/
6087
6088 G_PUB_SRVC := l_api_name;
6089 G_DATA_TRANSFER_MODE := 'PLS';
6090 G_EXTERNAL_API_CALL := 'N';
6091
6092 /*---------------------------------------------+
6093 | Missing Currency Conversion Rate |
6094 +---------------------------------------------*/
6095 IF p_curr_conv_rate is NULL THEN
6096 FND_MESSAGE.SET_NAME('ZX','ZX_CURRENCY_CONVERSION_RATE_REQD');
6097 FND_MSG_PUB.Add;
6098 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6099 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
6100 'Currency conversion rate is passed as null');
6101 END IF;
6102 RAISE FND_API.G_EXC_ERROR;
6103 END IF;
6104
6105 /*---------------------------------------------+
6106 | Missing Currency Conversion Date |
6107 +---------------------------------------------*/
6108 IF p_curr_conv_date is NULL THEN
6109 FND_MESSAGE.SET_NAME('ZX','ZX_CURRENCY_CONVERSION_DATE_REQD');
6110 FND_MSG_PUB.Add;
6111 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6112 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
6113 'Currency conversion date is passed as null');
6114 END IF;
6115 RAISE FND_API.G_EXC_ERROR;
6116 END IF;
6117
6118 /*---------------------------------------------+
6119 | Missing Currency Conversion Type |
6120 +---------------------------------------------*/
6121 IF p_curr_conv_type is NULL THEN
6125 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
6122 FND_MESSAGE.SET_NAME('ZX','ZX_CURRENCY_CONVERSION_TYPE_REQD');
6123 FND_MSG_PUB.Add;
6124 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6126 'Currency conversion type is passed as null');
6127 END IF;
6128 RAISE FND_API.G_EXC_ERROR;
6129 END IF;
6130
6131 /*-----------------------------------------+
6132 | Call Check Trx Rec |
6133 +-----------------------------------------*/
6134 ZX_CHECK_REQUIRED_PARAMS_PKG.check_trx_rec(l_return_status,
6135 p_transaction_rec
6136 );
6137
6138 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6139 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6140 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TRL_PUB_PKG.update_gl_date returned errors');
6141 END IF;
6142 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
6143 RAISE FND_API.G_EXC_ERROR;
6144 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
6145 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6146 END IF;
6147 END IF;
6148
6149 /*-------------------------------------------------+
6150 | Retrieve the ledger id to pass to TDS process |
6151 +------------------------------------------------*/
6152 SELECT ledger_id
6153 INTO l_ledger_id
6154 FROM ZX_LINES_DET_FACTORS
6155 WHERE application_id = p_transaction_rec.application_id
6156 AND entity_code = p_transaction_rec.entity_code
6157 AND event_class_code = p_transaction_rec.event_class_code
6158 AND trx_id = p_transaction_rec.trx_id
6159 AND rownum = 1;
6160
6161 /*-------------------------------------------------+
6162 | Call TDS routine update_exchange_rate |
6163 +------------------------------------------------*/
6164 ZX_TDS_CALC_SERVICES_PUB_PKG.update_exchange_rate(p_event_class_rec => l_event_class_rec,
6165 p_ledger_id => l_ledger_id,
6166 p_currency_conversion_rate => p_curr_conv_rate,
6167 p_currency_conversion_type => p_curr_conv_type,
6168 p_currency_conversion_date => p_curr_conv_date,
6169 x_return_status => l_return_status
6170 );
6171
6172 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6173 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6174 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TDS_CALC_SERVICES_PUB_PKG.update_exchange_rate returned errors');
6175 END IF;
6176 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
6177 RAISE FND_API.G_EXC_ERROR;
6178 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
6179 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6180 END IF;
6181 END IF;
6182 /*------------------------------------------------+
6183 | Update zx_lines_det_factors for currency info |
6184 +------------------------------------------------*/
6185 UPDATE ZX_LINES_DET_FACTORS SET
6186 CURRENCY_CONVERSION_DATE = p_curr_conv_date,
6187 CURRENCY_CONVERSION_RATE = p_curr_conv_rate,
6188 CURRENCY_CONVERSION_TYPE = p_curr_conv_type
6189 WHERE APPLICATION_ID = p_transaction_rec.APPLICATION_ID
6190 AND ENTITY_CODE = p_transaction_rec.ENTITY_CODE
6191 AND EVENT_CLASS_CODE = p_transaction_rec.EVENT_CLASS_CODE
6192 AND TRX_ID = p_transaction_rec.TRX_ID;
6193
6194 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6195 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()+');
6196 END IF;
6197
6198 EXCEPTION
6199 WHEN FND_API.G_EXC_ERROR THEN
6200 ROLLBACK TO Update_Exchange_Rate_PVT;
6201 x_return_status := FND_API.G_RET_STS_ERROR ;
6202 /*---------------------------------------------------------+
6203 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
6204 | in the message stack. If there is only one message in |
6205 | the stack it retrieves this message |
6206 +---------------------------------------------------------*/
6207 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
6208 p_count => x_msg_count,
6209 p_data => x_msg_data
6210 );
6211
6212 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
6213 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,SQLERRM);
6214 END IF;
6215
6216 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6217 ROLLBACK TO Update_Exchange_Rate_PVT;
6218 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
6219 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
6220 FND_MSG_PUB.Add;
6221 /*---------------------------------------------------------+
6222 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
6223 | in the message stack. If there is only one message in |
6224 | the stack it retrieves this message |
6225 +---------------------------------------------------------*/
6226 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
6227 p_count => x_msg_count,
6228 p_data => x_msg_data
6229 );
6230 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
6231 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,SQLERRM);
6232 END IF;
6233
6234 WHEN OTHERS THEN
6235 ROLLBACK TO Update_Exchange_Rate_PVT;
6236 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
6237 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
6238 FND_MSG_PUB.Add;
6239 /*---------------------------------------------------------+
6240 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
6241 | in the message stack. If there is only one message in |
6242 | the stack it retrieves this message |
6243 +---------------------------------------------------------*/
6244 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
6245 p_count => x_msg_count,
6246 p_data => x_msg_data
6247 );
6248
6249 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
6250 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
6251 END IF;
6252
6253 END Update_Exchange_Rate;
6254
6255 /* =============================================================================*
6256 | PROCEDURE Discard_tax_only_lines : Called when the whole document containing|
6257 | tax only lines is cancelled |
6258 * =============================================================================*/
6259 PROCEDURE discard_tax_only_lines
6260 ( p_api_version IN NUMBER,
6261 p_init_msg_list IN VARCHAR2,
6262 p_commit IN VARCHAR2,
6263 p_validation_level IN NUMBER,
6264 x_return_status OUT NOCOPY VARCHAR2,
6265 x_msg_count OUT NOCOPY NUMBER,
6266 x_msg_data OUT NOCOPY VARCHAR2,
6267 p_transaction_rec IN transaction_rec_type
6268 ) IS
6269 l_api_name CONSTANT VARCHAR2(30) := 'DISCARD_TAX_ONLY_LINES';
6270 l_api_version CONSTANT NUMBER := 1.0;
6271 l_return_status VARCHAR2(30);
6272 l_event_class_rec event_class_rec_type;
6273 l_init_msg_list VARCHAR2(1);
6274
6275 CURSOR get_event_class_info IS
6276 SELECT summarization_flag,
6277 retain_summ_tax_line_id_flag
6278 FROM zx_evnt_cls_mappings
6279 WHERE application_id = p_transaction_rec.application_id
6280 AND entity_code = p_transaction_rec.entity_code
6281 AND event_class_code = p_transaction_rec.event_class_code;
6282
6283 BEGIN
6284 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6285 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
6286 END IF;
6287
6288
6289 /*--------------------------------------------------+
6290 | Standard start of API savepoint |
6291 +--------------------------------------------------*/
6292 SAVEPOINT discard_tax_only_lines_PVT;
6293
6294 /*--------------------------------------------------+
6295 | Standard call to check for call compatibility |
6296 +--------------------------------------------------*/
6297 IF NOT FND_API.Compatible_API_Call( l_api_version,
6298 p_api_version,
6299 l_api_name,
6300 G_PKG_NAME
6301 ) THEN
6302 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6303 END IF;
6304
6305 /*--------------------------------------------------------------+
6306 | Initialize message list if p_init_msg_list is set to TRUE |
6307 +--------------------------------------------------------------*/
6308 IF p_init_msg_list is null THEN
6309 l_init_msg_list := FND_API.G_FALSE;
6310 ELSE
6311 l_init_msg_list := p_init_msg_list;
6312 END IF;
6313
6314 IF FND_API.to_Boolean(l_init_msg_list) THEN
6315 FND_MSG_PUB.initialize;
6316 END IF;
6317
6318 /*-----------------------------------------+
6319 | Initialize return status to SUCCESS |
6320 +-----------------------------------------*/
6321 x_return_status := FND_API.G_RET_STS_SUCCESS;
6322
6323 /*-----------------------------------------+
6324 | Populate Global Variable |
6325 +-----------------------------------------*/
6326 G_PUB_SRVC := l_api_name;
6327 G_DATA_TRANSFER_MODE := 'PLS';
6328 G_EXTERNAL_API_CALL := 'N';
6329
6330 /*------------------------------------------------------+
6331 | Validate Input Paramerters and Fetch Tax Options |
6332 +------------------------------------------------------*/
6336
6333 ZX_VALID_INIT_PARAMS_PKG.discard_tax_only_lines(x_return_status => l_return_status ,
6334 p_trx_rec => p_transaction_rec
6335 );
6337 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6338 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6339 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_VALID_INIT_PARAMS_PKG.discard_tax_only_lines returned errors');
6340 END IF;
6341 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
6342 RAISE FND_API.G_EXC_ERROR;
6343 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
6344 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6345 END IF;
6346 END IF;
6347
6348 l_event_class_rec.application_id := p_transaction_rec.application_id;
6349 l_event_class_rec.entity_code := p_transaction_rec.entity_code;
6350 l_event_class_rec.event_class_code := p_transaction_rec.event_class_code;
6351 l_event_class_rec.event_type_code := p_transaction_rec.event_type_code;
6352 l_event_class_rec.trx_id := p_transaction_rec.trx_id;
6353 l_event_class_rec.first_pty_org_id := p_transaction_rec.first_pty_org_id;
6354 l_event_class_rec.tax_event_class_code := p_transaction_rec.tax_event_class_code;
6355 l_event_class_rec.tax_event_type_code := p_transaction_rec.tax_event_type_code;
6356
6357 -- Get Event Class Info.
6358
6359 OPEN get_event_class_info;
6360 FETCH get_event_class_info INTO
6361 l_event_class_rec.summarization_flag,
6362 l_event_class_rec.retain_summ_tax_line_id_flag;
6363
6364 IF get_event_class_info%NOTFOUND THEN
6365
6366 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
6367
6368 FND_LOG.STRING(G_LEVEL_STATEMENT,
6369 G_MODULE_NAME || l_api_name,
6370 G_PKG_NAME||':'||l_api_name||': Event Class Info not retreived');
6371 END IF;
6372
6373 END IF;
6374
6375 CLOSE get_event_class_info;
6376
6377 /*--------------------------------------------------+
6378 | Call to Service Type Discard Tax Only Lines |
6379 +--------------------------------------------------*/
6380 IF ( G_LEVEL_EVENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6381 FND_LOG.STRING(G_LEVEL_EVENT,G_MODULE_NAME||l_api_name,
6382 'Updating Tax Lines for Transaction: '||
6383 to_char(p_transaction_rec.trx_id)||
6384 ' of Application: '||
6385 to_char(p_transaction_rec.application_id)||
6386 ' and Event Class: '||
6387 p_transaction_rec.event_class_code
6388 );
6389 END IF;
6390
6391 ZX_SRVC_TYP_PKG.discard_tax_only_lines(p_event_class_rec => l_event_class_rec,
6392 x_return_status => l_return_status
6393 );
6394
6395 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6396 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6397 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_SRVC_TYP_PKG.discard_tax_only_lines returned errors');
6398 END IF;
6399 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
6400 RAISE FND_API.G_EXC_ERROR;
6401 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
6402 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6403 END IF;
6404 END IF;
6405
6406 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6407 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
6408 END IF;
6409
6410 EXCEPTION
6411 WHEN FND_API.G_EXC_ERROR THEN
6412 ROLLBACK TO discard_tax_only_lines_PVT;
6413 x_return_status := FND_API.G_RET_STS_ERROR ;
6414 /*---------------------------------------------------------+
6415 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
6416 | in the message stack. If there is only one message in |
6417 | the stack it retrieves this message |
6418 +---------------------------------------------------------*/
6419 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
6420 p_count => x_msg_count,
6421 p_data => x_msg_data
6422 );
6423 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
6424 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
6425 END IF;
6426
6427 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6428 ROLLBACK TO discard_tax_only_lines_PVT;
6429 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
6430 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
6431 FND_MSG_PUB.Add;
6432 /*---------------------------------------------------------+
6433 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
6434 | in the message stack. If there is only one message in |
6435 | the stack it retrieves this message |
6436 +---------------------------------------------------------*/
6437 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
6441 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
6438 p_count => x_msg_count,
6439 p_data => x_msg_data
6440 );
6442 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
6443 END IF;
6444
6445 WHEN OTHERS THEN
6446 ROLLBACK TO discard_tax_only_lines_PVT;
6447 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
6448 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
6449 FND_MSG_PUB.Add;
6450 /*---------------------------------------------------------+
6451 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
6452 | in the message stack. If there is only one message in |
6453 | the stack it retrieves this message |
6454 +---------------------------------------------------------*/
6455 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
6456 p_count => x_msg_count,
6457 p_data => x_msg_data
6458 );
6459 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
6460 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
6461 END IF;
6462 END discard_tax_only_lines;
6463
6464
6465 /* =======================================================================*
6466 | PROCEDURE validate_document_for_tax : |
6467 * =======================================================================*/
6468
6469 PROCEDURE Validate_document_for_tax
6470 ( p_api_version IN NUMBER,
6471 p_init_msg_list IN VARCHAR2 ,
6472 p_commit IN VARCHAR2,
6473 p_validation_level IN NUMBER,
6474 x_return_status OUT NOCOPY VARCHAR2 ,
6475 x_msg_count OUT NOCOPY NUMBER ,
6476 x_msg_data OUT NOCOPY VARCHAR2,
6477 p_transaction_rec IN OUT NOCOPY transaction_rec_type,
6478 x_validation_status OUT NOCOPY VARCHAR2,
6479 x_hold_codes_tbl OUT NOCOPY ZX_API_PUB.hold_codes_tbl_type
6480 ) IS
6481 l_api_name CONSTANT VARCHAR2(30) := 'VALIDATE_DOCUMENT_FOR_TAX';
6482 l_api_version CONSTANT NUMBER := 1.0;
6483 l_return_status VARCHAR2(30);
6484 l_init_msg_list VARCHAR2(1);
6485 l_event_class_rec event_class_rec_type;
6486
6487 BEGIN
6488 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6489 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
6490 END IF;
6491
6492
6493 /*--------------------------------------------------+
6494 | Standard start of API savepoint |
6495 +--------------------------------------------------*/
6496 SAVEPOINT Validate_Document_PVT;
6497
6498 /*--------------------------------------------------+
6499 | Standard call to check for call compatibility |
6500 +--------------------------------------------------*/
6501 IF NOT FND_API.Compatible_API_Call(l_api_version,
6502 p_api_version,
6503 l_api_name,
6504 G_PKG_NAME
6505 ) THEN
6506 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6507 END IF;
6508
6509 /*--------------------------------------------------------------+
6510 | Initialize message list if p_init_msg_list is set to TRUE |
6511 +--------------------------------------------------------------*/
6512 IF p_init_msg_list is null THEN
6513 l_init_msg_list := FND_API.G_FALSE;
6514 ELSE
6515 l_init_msg_list := p_init_msg_list;
6516 END IF;
6517
6518 IF FND_API.to_Boolean(l_init_msg_list) THEN
6519 FND_MSG_PUB.initialize;
6520 END IF;
6521
6522 /*-----------------------------------------+
6523 | Initialize return status to SUCCESS |
6524 +-----------------------------------------*/
6525
6526 x_return_status := FND_API.G_RET_STS_SUCCESS;
6527
6528 /*-----------------------------------------+
6529 | Populate Global Variable |
6530 +-----------------------------------------*/
6531 G_PUB_SRVC := l_api_name;
6532 G_DATA_TRANSFER_MODE := 'PLS';
6533 G_EXTERNAL_API_CALL := 'N';
6534
6535 /*------------------------------------------------------+
6536 | Validate Input Paramerters and Fetch Tax Options |
6537 +------------------------------------------------------*/
6538 ZX_VALID_INIT_PARAMS_PKG.validate_document_for_tax(x_return_status => l_return_status,
6539 p_event_class_rec => l_event_class_rec,
6540 p_trx_rec => p_transaction_rec
6541 );
6542
6543 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6544 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6545 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_VALID_INIT_PARAMS_PKG.validate_document_for_tax returned errors');
6546 END IF;
6547 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
6548 RAISE FND_API.G_EXC_ERROR;
6549 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
6553
6550 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6551 END IF;
6552 END IF;
6554 /*--------------------------------------------------+
6555 | Call Service Type Validate Document for Tax |
6556 +--------------------------------------------------*/
6557 ZX_SRVC_TYP_PKG.validate_document_for_tax(p_trx_rec => p_transaction_rec,
6558 p_event_class_rec => l_event_class_rec,
6559 x_validation_status => x_validation_status,
6560 x_hold_status_code => x_hold_codes_tbl,
6561 x_return_status => l_return_status
6562 );
6563
6564 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6565 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6566 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_SRVC_TYP_PKG.validate_document_for_tax returned errors');
6567 END IF;
6568 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
6569 RAISE FND_API.G_EXC_ERROR;
6570 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
6571 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6572 END IF;
6573 END IF;
6574
6575 /*------------------------------------------------+
6576 | Update zx_lines_det_factors |
6577 +------------------------------------------------*/
6578 UPDATE ZX_LINES_DET_FACTORS
6579 SET TAX_EVENT_TYPE_CODE = l_event_class_rec.tax_event_type_code,
6580 DOC_EVENT_STATUS = l_event_class_rec.doc_status_code
6581 WHERE APPLICATION_ID = p_transaction_rec.APPLICATION_ID
6582 AND ENTITY_CODE = p_transaction_rec.ENTITY_CODE
6583 AND EVENT_CLASS_CODE = p_transaction_rec.EVENT_CLASS_CODE
6584 AND TRX_ID = p_transaction_rec.TRX_ID;
6585
6586 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6587 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
6588 END IF;
6589
6590 EXCEPTION
6591 WHEN FND_API.G_EXC_ERROR THEN
6592 ROLLBACK TO Validate_Document_PVT;
6593 x_return_status := FND_API.G_RET_STS_ERROR ;
6594 /*---------------------------------------------------------+
6595 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
6596 | in the message stack. If there is only one message in |
6597 | the stack it retrieves this message |
6598 +---------------------------------------------------------*/
6599 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
6600 p_count => x_msg_count,
6601 p_data => x_msg_data
6602 );
6603 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
6604 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
6605 END IF;
6606
6607 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6608 ROLLBACK TO Validate_Document_PVT;
6609 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
6610 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
6611 FND_MSG_PUB.Add;
6612 /*---------------------------------------------------------+
6613 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
6614 | in the message stack. If there is only one message in |
6615 | the stack it retrieves this message |
6616 +---------------------------------------------------------*/
6617 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
6618 p_count => x_msg_count,
6619 p_data => x_msg_data
6620 );
6621 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
6622 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
6623 END IF;
6624
6625
6626 WHEN OTHERS THEN
6627 ROLLBACK TO Validate_Document_PVT;
6628 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
6629 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
6630 FND_MSG_PUB.Add;
6631 /*---------------------------------------------------------+
6632 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
6633 | in the message stack. If there is only one message in |
6634 | the stack it retrieves this message |
6635 +---------------------------------------------------------*/
6636 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
6637 p_count => x_msg_count,
6638 p_data => x_msg_data
6639 );
6640
6641 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
6642 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
6643 END IF;
6644
6645 END validate_document_for_tax;
6646
6647
6648 /* =======================================================================*
6649 | PROCEDURE validate_document_for_tax for Receivables Autoinvoice |
6650 | and recurring invoice. |
6651 | Bug 5518807 |
6652 * =======================================================================*/
6653
6657 p_commit IN VARCHAR2,
6654 PROCEDURE Validate_document_for_tax
6655 ( p_api_version IN NUMBER,
6656 p_init_msg_list IN VARCHAR2 ,
6658 p_validation_level IN NUMBER,
6659 x_return_status OUT NOCOPY VARCHAR2 ,
6660 x_msg_count OUT NOCOPY NUMBER ,
6661 x_msg_data OUT NOCOPY VARCHAR2
6662 ) IS
6663 l_api_name CONSTANT VARCHAR2(30) := 'BULK_VALIDATE_DOCUMENT_FOR_TAX';
6664 l_api_version CONSTANT NUMBER := 1.0;
6665 l_return_status VARCHAR2(30);
6666 l_init_msg_list VARCHAR2(1);
6667
6668 CURSOR c_headers is
6669 SELECT zthg.application_id
6670 , zthg.entity_code
6671 , zthg.event_class_code
6672 , zthg.trx_id
6673 , zetm.event_type_code -- Bug 5598384
6674 , zect.tax_event_type_code
6675 , zect.status_code
6676 FROM ZX_TRX_HEADERS_GT zthg
6677 , ZX_EVNT_TYP_MAPPINGS zetm
6678 , ZX_EVNT_CLS_TYPS zect
6679 WHERE zthg.event_class_code = zetm.event_class_code
6680 AND zthg.entity_code = zetm.entity_code
6681 AND zthg.application_id = zetm.application_id
6682 AND zetm.event_type_code = DECODE(zetm.event_class_code, -- Bug 5598384
6683 'INVOICE', 'INV_COMPLETE',
6684 'DEBIT_MEMO', 'DM_COMPLETE',
6685 'CREDIT_MEMO', 'CM_COMPLETE'
6686 )
6687 AND zect.tax_event_class_code = zetm.tax_event_class_code
6688 AND zect.tax_event_type_code = zetm.tax_event_type_code
6689 AND (validation_check_flag is null OR
6690 validation_check_flag <> 'N');
6691
6692 l_application_id_tbl NUMBER_tbl_type;
6693 l_entity_code_tbl VARCHAR2_30_tbl_type;
6694 l_event_class_code_tbl VARCHAR2_30_tbl_type;
6695 l_trx_id_tbl NUMBER_tbl_type;
6696 l_event_type_code_tbl VARCHAR2_30_tbl_type;
6697 l_tax_event_type_code_tbl VARCHAR2_30_tbl_type;
6698 l_doc_event_status_tbl VARCHAR2_30_tbl_type;
6699
6700
6701 BEGIN
6702 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6703 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'(+)');
6704 END IF;
6705
6706
6707 /*--------------------------------------------------+
6708 | Standard start of API savepoint |
6709 +--------------------------------------------------*/
6710 SAVEPOINT Validate_Document_PVT;
6711
6712 /*--------------------------------------------------+
6713 | Standard call to check for call compatibility |
6714 +--------------------------------------------------*/
6715 IF NOT FND_API.Compatible_API_Call(l_api_version,
6716 p_api_version,
6717 l_api_name,
6718 G_PKG_NAME
6719 ) THEN
6720 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6721 END IF;
6722
6723 /*--------------------------------------------------------------+
6724 | Initialize message list if p_init_msg_list is set to TRUE |
6725 +--------------------------------------------------------------*/
6726 IF p_init_msg_list is null THEN
6727 l_init_msg_list := FND_API.G_FALSE;
6728 ELSE
6729 l_init_msg_list := p_init_msg_list;
6730 END IF;
6731
6732 IF FND_API.to_Boolean(l_init_msg_list) THEN
6733 FND_MSG_PUB.initialize;
6734 END IF;
6735
6736 /*-----------------------------------------+
6737 | Initialize return status to SUCCESS |
6738 +-----------------------------------------*/
6739
6740 x_return_status := FND_API.G_RET_STS_SUCCESS;
6741
6742 /*-----------------------------------------+
6743 | Populate Global Variable |
6744 +-----------------------------------------*/
6745 G_PUB_SRVC := l_api_name;
6746 G_DATA_TRANSFER_MODE := 'PLS';
6747 G_EXTERNAL_API_CALL := 'N';
6748
6749 BEGIN
6750 OPEN C_HEADERS;
6751 LOOP
6752 FETCH c_HEADERS BULK COLLECT INTO
6753 l_application_id_tbl,
6754 l_entity_code_tbl,
6755 l_event_class_code_tbl,
6756 l_trx_id_tbl,
6757 l_event_type_code_tbl,
6758 l_tax_event_type_code_tbl,
6759 l_doc_event_status_tbl
6760 LIMIT G_LINES_PER_FETCH;
6761
6762
6763 FORALL i IN l_application_id_tbl.FIRST .. l_application_id_tbl.LAST
6764 UPDATE ZX_LINES_DET_FACTORS
6765 SET EVENT_TYPE_CODE = l_event_type_code_tbl(i),
6766 TAX_EVENT_TYPE_CODE = l_tax_event_type_code_tbl(i),
6767 DOC_EVENT_STATUS = l_doc_event_status_tbl(i)
6768 WHERE
6769 APPLICATION_ID = l_application_id_tbl(i)
6770 AND ENTITY_CODE = l_entity_code_tbl(i)
6771 AND EVENT_CLASS_CODE = l_event_class_code_tbl(i)
6772 AND TRX_ID = l_trx_id_tbl(i);
6773
6774 exit when c_HEADERS%NOTFOUND;
6775 END LOOP;
6776
6780 EXCEPTION
6777 close c_HEADERS;
6778 END;
6779
6781 WHEN FND_API.G_EXC_ERROR THEN
6782 ROLLBACK TO Validate_Document_PVT;
6783 x_return_status := FND_API.G_RET_STS_ERROR ;
6784 /*---------------------------------------------------------+
6785 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
6786 | in the message stack. If there is only one message in |
6787 | the stack it retrieves this message |
6788 +---------------------------------------------------------*/
6789 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
6790 p_count => x_msg_count,
6791 p_data => x_msg_data
6792 );
6793 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
6794 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
6795 END IF;
6796
6797 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6798 ROLLBACK TO Validate_Document_PVT;
6799 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
6800 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
6801 FND_MSG_PUB.Add;
6802 /*---------------------------------------------------------+
6803 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
6804 | in the message stack. If there is only one message in |
6805 | the stack it retrieves this message |
6806 +---------------------------------------------------------*/
6807 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
6808 p_count => x_msg_count,
6809 p_data => x_msg_data
6810 );
6811 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
6812 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
6813 END IF;
6814
6815
6816 WHEN OTHERS THEN
6817 ROLLBACK TO Validate_Document_PVT;
6818 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
6819 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
6820 FND_MSG_PUB.Add;
6821 /*---------------------------------------------------------+
6822 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
6823 | in the message stack. If there is only one message in |
6824 | the stack it retrieves this message |
6825 +---------------------------------------------------------*/
6826 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
6827 p_count => x_msg_count,
6828 p_data => x_msg_data
6829 );
6830
6831 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
6832 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
6833 END IF;
6834
6835 END validate_document_for_tax;
6836
6837
6838 /* ============================================================================*
6839 | PROCEDURE get_default_tax_line_attribs : default the tax status and tax rate|
6840 | based on the tax regime and tax |
6841 * ===========================================================================*/
6842 PROCEDURE get_default_tax_line_attribs
6843 ( p_api_version IN NUMBER,
6844 p_init_msg_list IN VARCHAR2,
6845 p_commit IN VARCHAR2,
6846 p_validation_level IN NUMBER,
6847 x_return_status OUT NOCOPY VARCHAR2,
6848 x_msg_count OUT NOCOPY NUMBER,
6849 x_msg_data OUT NOCOPY VARCHAR2,
6850 p_tax_regime_code IN VARCHAR2,
6851 p_tax IN VARCHAR2,
6852 p_effective_date IN DATE,
6853 x_tax_status_code OUT NOCOPY VARCHAR2,
6854 x_tax_rate_code OUT NOCOPY VARCHAR2
6855 ) IS
6856 l_api_name CONSTANT VARCHAR2(30) := 'GET_DEFAULT_TAX_LINE_ATTRIBS';
6857 l_api_version CONSTANT NUMBER := 1.0;
6858 l_return_status VARCHAR2(30);
6859 l_error_buffer VARCHAR2(1000);
6860 l_tax_method VARCHAR2(30);
6861 l_init_msg_list VARCHAR2(1);
6862
6863 BEGIN
6864 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6865 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
6866 END IF;
6867
6868
6869 /*--------------------------------------------------+
6870 | Standard start of API savepoint |
6871 +--------------------------------------------------*/
6872 SAVEPOINT Get_Default_Tax_Line_Attrs_PVT;
6873
6874 /*--------------------------------------------------+
6875 | Standard call to check for call compatibility |
6876 +--------------------------------------------------*/
6877 IF NOT FND_API.Compatible_API_Call(l_api_version,
6878 p_api_version,
6879 l_api_name,
6880 G_PKG_NAME
6881 ) THEN
6882 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6883 END IF;
6884
6885 /*--------------------------------------------------------------+
6886 | Initialize message list if p_init_msg_list is set to TRUE |
6887 +--------------------------------------------------------------*/
6891 l_init_msg_list := p_init_msg_list;
6888 IF p_init_msg_list is null THEN
6889 l_init_msg_list := FND_API.G_FALSE;
6890 ELSE
6892 END IF;
6893
6894 IF FND_API.to_Boolean(l_init_msg_list) THEN
6895 FND_MSG_PUB.initialize;
6896 END IF;
6897
6898
6899 /*-----------------------------------------+
6900 | Initialize return status to SUCCESS |
6901 +-----------------------------------------*/
6902 x_return_status := FND_API.G_RET_STS_SUCCESS;
6903
6904 /*-----------------------------------------+
6905 | Populate Global Variable |
6906 +-----------------------------------------*/
6907 G_PUB_SRVC := l_api_name;
6908 G_DATA_TRANSFER_MODE := 'PLS';
6909 G_EXTERNAL_API_CALL := 'N';
6910
6911 /*-----------------------------------------+
6912 | Get the tax status and tax rate |
6913 +-----------------------------------------*/
6914 ZX_TCM_EXT_SERVICES_PUB.get_default_status_rates(p_tax_regime_code => p_tax_regime_code,
6915 p_tax => p_tax,
6916 p_date => p_effective_date,
6917 p_tax_status_code => x_tax_status_code,
6918 p_tax_rate_code => x_tax_rate_code,
6919 p_return_status => l_return_status
6920 );
6921
6922 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6923 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6924 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TCM_EXT_SERVICES_PUB.get_default_status_rates returned errors');
6925 END IF;
6926 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
6927 RAISE FND_API.G_EXC_ERROR;
6928 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
6929 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6930 END IF;
6931 END IF;
6932
6933
6934 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6935 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()+');
6936 END IF;
6937
6938 EXCEPTION
6939 WHEN FND_API.G_EXC_ERROR THEN
6940 ROLLBACK TO Get_Default_Tax_Line_Attrs_PVT;
6941 x_return_status := FND_API.G_RET_STS_ERROR ;
6942 /*---------------------------------------------------------+
6943 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
6944 | in the message stack. If there is only one message in |
6945 | the stack it retrieves this message |
6946 +---------------------------------------------------------*/
6947 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
6948 p_count => x_msg_count,
6949 p_data => x_msg_data
6950 );
6951 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
6952 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
6953 END IF;
6954
6955 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6956 ROLLBACK TO Get_Default_Tax_Line_Attrs_PVT;
6957 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
6958 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
6959 FND_MSG_PUB.Add;
6960 /*---------------------------------------------------------+
6961 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
6962 | in the message stack. If there is only one message in |
6963 | the stack it retrieves this message |
6964 +---------------------------------------------------------*/
6965 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
6966 p_count => x_msg_count,
6967 p_data => x_msg_data
6968 );
6969 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
6970 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
6971 END IF;
6972
6973 WHEN OTHERS THEN
6974 ROLLBACK TO Get_Default_Tax_Line_Attrs_PVT;
6975 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
6976 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
6977 FND_MSG_PUB.Add;
6978 /*---------------------------------------------------------+
6979 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
6980 | in the message stack. If there is only one message in |
6981 | the stack it retrieves this message |
6982 +---------------------------------------------------------*/
6983 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
6984 p_count => x_msg_count,
6985 p_data => x_msg_data
6986 );
6987
6988 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
6989 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
6990 END IF;
6991
6992 END get_default_tax_line_attribs;
6993
6994 /* =================================================================================*
6995 | OVERLOADED version till XBUILD 2 so that AP processes do not get invalidated |
6996 | NEED TO REMOVE THIS PROCEDURE ONCE AP CHANGES GO IN |
7000 | class, inventory organization and inventory item values: |
6997 | |
6998 | Procedure get_default_tax_det_attribs : default the following product fiscal |
6999 | classification based on the relevant default taxation country, application event |
7001 | * trx_business_category |
7002 | * primary_intended_use |
7003 | * product_fisc_classification |
7004 | * product_category |
7005 * ================================================================================*/
7006
7007
7008 PROCEDURE get_default_tax_det_attribs
7009 ( p_api_version IN NUMBER,
7010 p_init_msg_list IN VARCHAR2,
7011 p_commit IN VARCHAR2,
7012 p_validation_level IN NUMBER,
7013 x_return_status OUT NOCOPY VARCHAR2 ,
7014 x_msg_count OUT NOCOPY NUMBER ,
7015 x_msg_data OUT NOCOPY VARCHAR2,
7016 p_application_id IN NUMBER,
7017 p_entity_code IN VARCHAR2,
7018 p_event_class_code IN VARCHAR2,
7019 p_org_id IN NUMBER,
7020 p_item_id IN NUMBER,
7021 p_country_code IN VARCHAR2,
7022 p_effective_date IN DATE,
7023 x_trx_biz_category OUT NOCOPY VARCHAR2,
7024 x_intended_use OUT NOCOPY VARCHAR2,
7025 x_prod_category OUT NOCOPY VARCHAR2,
7026 x_prod_fisc_class_code OUT NOCOPY VARCHAR2,
7027 x_product_type OUT NOCOPY VARCHAR2
7028 ) IS
7029 BEGIN
7030 NULL;
7031 END get_default_tax_det_attribs;
7032
7033
7034 /* =================================================================================*
7035 | Procedure get_default_tax_det_attribs : default the following product fiscal |
7036 | classification based on the relevant default taxation country, application event |
7037 | class, inventory organization and inventory item values: |
7038 | * trx_business_category |
7039 | * primary_intended_use |
7040 | * product_fisc_classification |
7041 | * product_category |
7042 * ================================================================================*/
7043
7044
7045 PROCEDURE get_default_tax_det_attribs
7046 ( p_api_version IN NUMBER,
7047 p_init_msg_list IN VARCHAR2,
7048 p_commit IN VARCHAR2,
7049 p_validation_level IN NUMBER,
7050 x_return_status OUT NOCOPY VARCHAR2 ,
7051 x_msg_count OUT NOCOPY NUMBER ,
7052 x_msg_data OUT NOCOPY VARCHAR2,
7053 p_application_id IN NUMBER,
7054 p_entity_code IN VARCHAR2,
7055 p_event_class_code IN VARCHAR2,
7056 p_org_id IN NUMBER,
7057 p_item_id IN NUMBER,
7058 p_country_code IN VARCHAR2,
7059 p_effective_date IN DATE,
7060 p_source_event_class_code IN VARCHAR2,
7061 x_trx_biz_category OUT NOCOPY VARCHAR2,
7062 x_intended_use OUT NOCOPY VARCHAR2,
7063 x_prod_category OUT NOCOPY VARCHAR2,
7064 x_prod_fisc_class_code OUT NOCOPY VARCHAR2,
7065 x_product_type OUT NOCOPY VARCHAR2
7066 ) IS
7067 l_api_name CONSTANT VARCHAR2(30) := 'GET_DEFAULT_TAX_DET_ATTRIBS';
7068 l_api_version CONSTANT NUMBER := 1.0;
7069 l_return_status VARCHAR2(30);
7070 l_error_buffer VARCHAR2(1000);
7071 l_tax_method VARCHAR2(30);
7072 l_init_msg_list VARCHAR2(1);
7073 l_internal_org_id NUMBER;
7074 l_application_id NUMBER;
7075 l_entity_code zx_evnt_cls_mappings.entity_code%TYPE;
7076 l_event_class_code zx_evnt_cls_mappings.event_class_code%TYPE;
7077 l_zx_product_options_rec ZX_GLOBAL_STRUCTURES_PKG.zx_product_options_rec_type;
7078
7079 CURSOR c_trx_biz_cat_csr (c_application_id NUMBER,
7080 c_entity_code zx_evnt_cls_mappings.entity_code%TYPE,
7081 c_event_class_code zx_evnt_cls_mappings.event_class_code%TYPE) IS
7082 SELECT tax_event_class_code, intrcmp_tx_evnt_cls_code
7083 FROM zx_evnt_cls_mappings
7084 WHERE application_id = c_application_id
7085 AND entity_code = c_entity_code
7086 AND event_class_code = c_event_class_code;
7087
7088 CURSOR c_intrcmp_code (c_application_id NUMBER,
7089 c_entity_code zx_evnt_cls_mappings.entity_code%TYPE,
7090 c_event_class_code zx_evnt_cls_mappings.event_class_code%TYPE) IS
7091 SELECT DEF_INTRCMP_TRX_BIZ_CATEGORY
7092 FROM ZX_EVNT_CLS_OPTIONS
7093 WHERE application_id = c_application_id
7094 AND entity_code = c_entity_code
7095 AND event_class_code = c_event_class_code
7096 AND FIRST_PTY_ORG_ID = p_org_id;
7097
7098 BEGIN
7099 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7100 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
7101 END IF;
7102
7103 /*--------------------------------------------------+
7107
7104 | Standard start of API savepoint |
7105 +--------------------------------------------------*/
7106 SAVEPOINT Get_Default_Tax_Det_Attrs_PVT;
7108 /*--------------------------------------------------+
7109 | Standard call to check for call compatibility |
7110 +--------------------------------------------------*/
7111 IF NOT FND_API.Compatible_API_Call(l_api_version,
7112 p_api_version,
7113 l_api_name,
7114 G_PKG_NAME
7115 ) THEN
7116 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7117 END IF;
7118
7119 /*--------------------------------------------------------------+
7120 | Initialize message list if p_init_msg_list is set to TRUE |
7121 +--------------------------------------------------------------*/
7122 IF p_init_msg_list is null THEN
7123 l_init_msg_list := FND_API.G_FALSE;
7124 ELSE
7125 l_init_msg_list := p_init_msg_list;
7126 END IF;
7127
7128 IF FND_API.to_Boolean(l_init_msg_list) THEN
7129 FND_MSG_PUB.initialize;
7130 END IF;
7131
7132 /*-----------------------------------------+
7133 | Initialize return status to SUCCESS |
7134 +-----------------------------------------*/
7135 x_return_status := FND_API.G_RET_STS_SUCCESS;
7136
7137
7138 /*-----------------------------------------+
7139 | Populate Global Variable |
7140 +-----------------------------------------*/
7141 --Currently this procedure is being called from internal TDS services when defaulting the determining
7142 --attributes in case of calculate_tax, insert_line_det_factors,etc. So need to set the parameters only
7143 --if direct call to this API and not via other published APIs
7144 IF G_PUB_CALLING_SRVC is null THEN
7145 G_PUB_SRVC := l_api_name;
7146 G_DATA_TRANSFER_MODE := 'PLS';
7147 G_EXTERNAL_API_CALL := 'N';
7148 --ELSE
7149 -- G_PUB_CALLING_SRVC := null;
7150 END IF;
7151
7152 /*-----------------------------------------------------------------+
7153 | Populate Global Event Class Rec If Not Populated |
7154 +-----------------------------------------------------------------*/
7155
7156 l_application_id := p_application_id; --bug# 6662504
7157
7158 IF ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec.application_id IS NULL THEN
7159
7160 IF p_event_class_code = 'SALES_TRANSACTION_TAX_QUOTE' THEN
7161 l_application_id := 222;
7162 l_entity_code := 'TRANSACTIONS';
7163 l_event_class_code := 'INVOICE';
7164 ELSIF p_event_class_code = 'PURCHASE_TRANSACTION_TAX_QUOTE' THEN
7165 l_application_id := 200;
7166 l_entity_code := 'AP_INVOICES';
7167 l_event_class_code := 'STANDARD INVOICES';
7168 ELSE
7169 l_application_id := p_application_id;
7170 l_entity_code := p_entity_code;
7171 l_event_class_code := p_event_class_code;
7172 END IF;
7173
7174
7175 -- Fetch tax event class and intercompany tax event class
7176
7177 OPEN c_trx_biz_cat_csr(l_application_id, l_entity_code, l_event_class_code);
7178 FETCH c_trx_biz_cat_csr INTO ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec.tax_event_class_code,
7179 ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec.intrcmp_tx_evnt_cls_code;
7180 CLOSE c_trx_biz_cat_csr;
7181
7182 -- Fetch default transaction business category
7183
7184 OPEN c_intrcmp_code(l_application_id, l_entity_code, l_event_class_code);
7185 FETCH c_intrcmp_code INTO ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec.DEF_INTRCMP_TRX_BIZ_CATEGORY;
7186 CLOSE c_intrcmp_code;
7187
7188 END IF;
7189
7190
7191 -- Fetch tax method
7192 -- Fix for bug 5102996: Fetch tax method from zx_product_options only if it is not found in the cache
7193
7194 ZX_GLOBAL_STRUCTURES_PKG.get_product_options_info
7195 (p_application_id => l_application_id,
7196 p_org_id => p_org_id,
7197 x_product_options_rec => l_zx_product_options_rec,
7198 x_return_status => x_return_status);
7199
7200 IF x_return_status = FND_API.G_RET_STS_ERROR then
7201
7202 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
7203 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'Incorrect return status after calling '||
7204 'ZX_GLOBAL_STRUCTURES_PKG.get_product_options_info');
7205 END IF;
7206 ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec.tax_method_code := 'EBTAX';
7207
7208 ELSE
7209 ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec.tax_method_code := nvl(l_zx_product_options_rec.tax_method_code,'EBTAX'); --6841552
7210 END IF;
7211
7212 l_tax_method := ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec.tax_method_code;
7213
7214
7215 IF l_tax_method = 'EBTAX' THEN
7216
7217 /*---------------------------------------------------------+
7218 | Get the default value for trx business category |
7219 +---------------------------------------------------------*/
7220 ZX_TCM_EXT_SERVICES_PUB.get_default_classif_code(p_fiscal_type_code => 'TRX_BUSINESS_CATEGORY',
7221 p_country_code => p_country_code,
7222 p_application_id => p_application_id,
7226 p_org_id => p_org_id,
7223 p_entity_code => p_entity_code,
7224 p_event_class_code => p_event_class_code,
7225 p_source_event_class_code => p_source_event_class_code,
7227 p_item_id => p_item_id,
7228 p_default_code => x_trx_biz_category,
7229 p_return_status => l_return_status
7230 );
7231 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7232 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7233 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TCM_EXT_SERVICES_PUB.get_default_classif_code returned errors');
7234 END IF;
7235 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
7236 RAISE FND_API.G_EXC_ERROR;
7237 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
7238 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7239 END IF;
7240 ELSE
7241 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7242 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
7243 'Transaction Business Category:' || x_trx_biz_category);
7244 END IF;
7245 END IF;
7246
7247 /*---------------------------------------------------------+
7248 | Get the default value for Intended use |
7249 +---------------------------------------------------------*/
7250 ZX_TCM_EXT_SERVICES_PUB.get_default_classif_code(p_fiscal_type_code => 'INTENDED_USE',
7251 p_country_code => p_country_code,
7252 p_application_id => p_application_id,
7253 p_entity_code => p_entity_code,
7254 p_event_class_code => p_event_class_code,
7255 p_source_event_class_code => p_source_event_class_code,
7256 p_org_id => p_org_id,
7257 p_item_id => p_item_id,
7258 p_default_code => x_intended_use,
7259 p_return_status => l_return_status
7260 );
7261
7262 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7263 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7264 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TCM_EXT_SERVICES_PUB.get_default_classif_code returned errors');
7265 END IF;
7266 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
7267 RAISE FND_API.G_EXC_ERROR;
7268 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
7269 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7270 END IF;
7271 ELSE
7272 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7273 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
7274 'Intended Use :' || x_intended_use);
7275 END IF;
7276 END IF;
7277
7278 --Bug 6841552
7279 /*-----------------------------------------------------+
7280 | Get the default value for product category |
7281 +-----------------------------------------------------*/
7282 ZX_TCM_EXT_SERVICES_PUB.get_default_classif_code(p_fiscal_type_code => 'PRODUCT_CATEGORY',
7283 p_country_code => p_country_code,
7284 p_application_id => p_application_id,
7285 p_entity_code => p_entity_code,
7286 p_event_class_code => p_event_class_code,
7287 p_source_event_class_code => p_source_event_class_code,
7288 p_item_id => p_item_id,
7289 p_org_id => p_org_id,
7290 p_default_code => x_prod_category ,
7291 p_return_status => l_return_status
7292 );
7293 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7294 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7295 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TCM_EXT_SERVICES_PUB.get_default_classif_code returned errors');
7296 END IF;
7297 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
7298 RAISE FND_API.G_EXC_ERROR;
7299 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
7300 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7301 END IF;
7302 ELSE
7303 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7304 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
7308
7305 'Product Category :' || x_prod_category);
7306 END IF;
7307 END IF;
7309 IF p_item_id is not null THEN
7310 /*---------------------------------------------------------+
7311 | Get the value for fiscal product classification |
7312 +---------------------------------------------------------*/
7313 ZX_TCM_EXT_SERVICES_PUB.get_default_product_classif(p_country_code => p_country_code,
7314 p_item_id => p_item_id,
7315 p_org_id => p_org_id,
7316 p_default_code => x_prod_fisc_class_code,
7317 p_return_status => l_return_status
7318 );
7319 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7320 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7321 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||': ZX_TCM_EXT_SERVICES_PUB.get_default_product_classif returned errors');
7322 END IF;
7323 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
7324 RAISE FND_API.G_EXC_ERROR;
7325 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
7326 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7327 END IF;
7328 ELSE
7329 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7330 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
7331 'Product Fiscal Classification :'|| x_prod_fisc_class_code);
7332 END IF;
7333 END IF;
7334
7335 /*-----------------------------------------------------+
7336 | Get the default value for product type |
7337 +-----------------------------------------------------*/
7338 ZX_TCM_EXT_SERVICES_PUB.get_default_classif_code(p_fiscal_type_code => 'PRODUCT_TYPE',
7339 p_country_code => p_country_code,
7340 p_application_id => p_application_id,
7341 p_entity_code => p_entity_code,
7342 p_event_class_code => p_event_class_code,
7343 p_source_event_class_code => p_source_event_class_code,
7344 p_item_id => p_item_id,
7345 p_org_id => p_org_id,
7346 p_default_code => x_product_type ,
7347 p_return_status => l_return_status
7348 );
7349 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7350 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7351 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TCM_EXT_SERVICES_PUB.get_default_classif_code returned errors');
7352 END IF;
7353 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
7354 RAISE FND_API.G_EXC_ERROR;
7355 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
7356 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7357 END IF;
7358 ELSE
7359 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7360 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
7361 'Product Type :' || x_product_type);
7362 END IF;
7363 END IF;
7364
7365 ELSE --p_item_id is null
7366 x_product_type := null;
7367 x_prod_fisc_class_code := null;
7368
7369 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7370 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
7371 'Product Type :' || x_product_type||
7372 ', Product Fiscal Classification :' || x_prod_fisc_class_code);
7373 END IF;
7374 END IF; --p_item_id is not null
7375 ELSIF l_tax_method = 'LTE' THEN
7376 JL_ZZ_TAX_VALIDATE_PKG.default_tax_attr(x_return_status => l_return_status);
7377
7378 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7379 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7380 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TCM_EXT_SERVICES_PUB.get_default_classif_code returned errors');
7381 END IF;
7382 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
7383 RAISE FND_API.G_EXC_ERROR;
7384 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
7385 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7386 END IF;
7387 END IF;
7388 END IF; --tax method condition
7389
7390 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7391 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()+');
7392 END IF;
7393
7394 EXCEPTION
7395 WHEN FND_API.G_EXC_ERROR THEN
7396 ROLLBACK TO Get_Default_Tax_Det_Attrs_PVT;
7397 x_return_status := FND_API.G_RET_STS_ERROR ;
7398 /*---------------------------------------------------------+
7399 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
7403 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
7400 | in the message stack. If there is only one message in |
7401 | the stack it retrieves this message |
7402 +---------------------------------------------------------*/
7404 p_count => x_msg_count,
7405 p_data => x_msg_data
7406 );
7407 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
7408 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,SQLERRM);
7409 END IF;
7410
7411 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
7412 ROLLBACK TO Get_Default_Tax_Det_Attrs_PVT;
7413 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
7414 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
7415 FND_MSG_PUB.Add;
7416 /*---------------------------------------------------------+
7417 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
7418 | in the message stack. If there is only one message in |
7419 | the stack it retrieves this message |
7420 +---------------------------------------------------------*/
7421 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
7422 p_count => x_msg_count,
7423 p_data => x_msg_data
7424 );
7425
7426 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
7427 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,SQLERRM);
7428 END IF;
7429
7430 WHEN OTHERS THEN
7431 ROLLBACK TO Get_Default_Tax_Det_Attrs_PVT;
7432 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
7433 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
7434 FND_MSG_PUB.Add;
7435 /*---------------------------------------------------------+
7436 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
7437 | in the message stack. If there is only one message in |
7438 | the stack it retrieves this message |
7439 +---------------------------------------------------------*/
7440 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
7441 p_count => x_msg_count,
7442 p_data => x_msg_data
7443 );
7444 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
7445 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
7446 END IF;
7447 END get_default_tax_det_attribs;
7448
7449
7450
7451 /* =================================================================================*
7452 | Overloaded Procedure get_default_tax_det_attribs- for products that do not call |
7453 | ARP_TAX.get_default_tax_classification |
7454 | Default the following product fiscal |
7455 | classification based on the relevant default taxation country, application event |
7456 | class, inventory organization and inventory item values: |
7457 | * trx_business_category |
7458 | * primary_intended_use |
7459 | * product_fisc_classification |
7460 | * product_category |
7461 | Also default the tax classification code |
7462 * ================================================================================*/
7463
7464 PROCEDURE get_default_tax_det_attribs
7465 (
7466 p_api_version IN NUMBER,
7467 p_init_msg_list IN VARCHAR2,
7468 p_commit IN VARCHAR2,
7469 p_validation_level IN NUMBER,
7470 x_return_status OUT NOCOPY VARCHAR2 ,
7471 x_msg_count OUT NOCOPY NUMBER ,
7472 x_msg_data OUT NOCOPY VARCHAR2,
7473 p_defaulting_rec_type IN det_fact_defaulting_rec_type,
7474 x_trx_biz_category OUT NOCOPY VARCHAR2,
7475 x_intended_use OUT NOCOPY VARCHAR2,
7476 x_prod_category OUT NOCOPY VARCHAR2,
7477 x_prod_fisc_class_code OUT NOCOPY VARCHAR2,
7478 x_product_type OUT NOCOPY VARCHAR2,
7479 x_tax_classification_code OUT NOCOPY VARCHAR2
7480 ) IS
7481 l_api_name CONSTANT VARCHAR2(30) := 'GET_DEFAULT_TAX_DET_ATTRIBS';
7482 l_api_version CONSTANT NUMBER := 1.0;
7483 l_return_status VARCHAR2(30);
7484 l_error_buffer VARCHAR2(1000);
7485 l_init_msg_list VARCHAR2(1);
7486 l_redef_tax_class_code_rec def_tax_cls_code_info_rec_type;
7487
7488 BEGIN
7489 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7490 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
7491 END IF;
7492
7493 /*--------------------------------------------------+
7494 | Standard start of API savepoint |
7495 +--------------------------------------------------*/
7496 SAVEPOINT Get_Default_Tax_Det_Attrs_PVT;
7497
7498 /*--------------------------------------------------+
7499 | Standard call to check for call compatibility |
7500 +--------------------------------------------------*/
7501 IF NOT FND_API.Compatible_API_Call(l_api_version,
7502 p_api_version,
7503 l_api_name,
7504 G_PKG_NAME
7505 ) THEN
7506 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7507 END IF;
7508
7509 /*--------------------------------------------------------------+
7510 | Initialize message list if p_init_msg_list is set to TRUE |
7511 +--------------------------------------------------------------*/
7512 IF p_init_msg_list is null THEN
7513 l_init_msg_list := FND_API.G_FALSE;
7514 ELSE
7515 l_init_msg_list := p_init_msg_list;
7516 END IF;
7517
7518 IF FND_API.to_Boolean(l_init_msg_list) THEN
7519 FND_MSG_PUB.initialize;
7520 END IF;
7521
7522 /*-----------------------------------------+
7523 | Initialize return status to SUCCESS |
7524 +-----------------------------------------*/
7525 x_return_status := FND_API.G_RET_STS_SUCCESS;
7526
7527 /*-----------------------------------------+
7528 | Populate Global Variable |
7529 +-----------------------------------------*/
7530 G_PUB_SRVC := l_api_name;
7531 G_DATA_TRANSFER_MODE := 'PLS';
7532 G_EXTERNAL_API_CALL := 'N';
7533
7534 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7535 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
7536 'application_id: ' || to_char(p_defaulting_rec_type.application_id)||
7537 ', entity_code: ' || p_defaulting_rec_type.entity_code||
7538 ', event_class_code: ' || p_defaulting_rec_type.event_class_code||
7539 ', org_id: ' || to_char(p_defaulting_rec_type.org_id)||
7540 ', item_id: ' || to_char(p_defaulting_rec_type.item_id)||
7541 ', country_code: ' || p_defaulting_rec_type.country_code||
7542 ', effective_date: ' || to_char(p_defaulting_rec_type.effective_date)||
7543 ', trx_id: ' || to_char(p_defaulting_rec_type.trx_id)||
7544 ', item_id: ' || to_char(p_defaulting_rec_type.item_id)||
7545 ', trx_date: ' || to_char(p_defaulting_rec_type.trx_date)||
7546 ', ledger_id: ' || to_char(p_defaulting_rec_type.ledger_id)||
7547 ', ship_from_party_id: ' || to_char(p_defaulting_rec_type.ship_from_party_id)||
7548 ', ship_to_party_id: ' || to_char(p_defaulting_rec_type.ship_to_party_id)||
7549 ', bill_to_party_id: ' || to_char(p_defaulting_rec_type.bill_to_party_id)||
7550 ', ship_from_pty_site_id: ' || to_char(p_defaulting_rec_type.ship_from_pty_site_id)||
7551 ', ship_to_location_id: ' || to_char(p_defaulting_rec_type.ship_to_location_id)||
7552 ', ship_to_acct_site_use_id: ' || to_char(p_defaulting_rec_type.ship_to_acct_site_use_id)||
7553 ', bill_to_acct_site_use_id: ' || to_char(p_defaulting_rec_type.bill_to_acct_site_use_id)||
7554 ', account_ccid: ' || to_char(p_defaulting_rec_type.account_ccid)||
7555 ', account_string: ' || p_defaulting_rec_type.account_string||
7556 ', ship_third_pty_acct_id: ' || to_char(p_defaulting_rec_type.ship_third_pty_acct_id)||
7557 ', bill_third_pty_acct_id: ' || to_char(p_defaulting_rec_type.bill_third_pty_acct_id)||
7558 ', ref_doc_application_id: ' || to_char(p_defaulting_rec_type.application_id)||
7559 ', ref_doc_entity_code: ' || p_defaulting_rec_type.ref_doc_entity_code||
7560 ', ref_doc_event_class_code: ' || p_defaulting_rec_type.ref_doc_event_class_code||
7561 ', ref_doc_trx_id: ' || to_char(p_defaulting_rec_type.ref_doc_trx_id)||
7562 ', ref_doc_line_id: ' || to_char(p_defaulting_rec_type.ref_doc_line_id)||
7563 ', ref_doc_trx_level_type: ' || p_defaulting_rec_type.ref_doc_trx_level_type||
7564 ', defaulting_attribute1: ' || p_defaulting_rec_type.defaulting_attribute1||
7565 ', defaulting_attribute2: ' || p_defaulting_rec_type.defaulting_attribute2||
7566 ', defaulting_attribute3: ' || p_defaulting_rec_type.defaulting_attribute3||
7567 ', defaulting_attribute4: ' || p_defaulting_rec_type.defaulting_attribute4||
7568 ', defaulting_attribute5: ' || p_defaulting_rec_type.defaulting_attribute5||
7569 ', defaulting_attribute6: ' || p_defaulting_rec_type.defaulting_attribute6||
7570 ', defaulting_attribute7: ' || p_defaulting_rec_type.defaulting_attribute7||
7571 ', defaulting_attribute8: ' || p_defaulting_rec_type.defaulting_attribute8||
7572 ', defaulting_attribute9: ' || p_defaulting_rec_type.defaulting_attribute9||
7573 ', defaulting_attribute10: ' || p_defaulting_rec_type.defaulting_attribute10||
7574 ', legal_entity_id: ' || to_char(p_defaulting_rec_type.legal_entity_id)||
7575 ', source_event_class_code: ' || to_char(p_defaulting_rec_type.source_event_class_code));
7576 END IF;
7577
7578 /*------------------------------------------------------------------------------------------+
7579 | Call original get_default_tax_line_attribs to get the values of fiscal classifications |
7580 +-----------------------------------------------------------------------------------------*/
7581 get_default_tax_det_attribs (p_api_version,
7582 l_init_msg_list,
7583 p_commit,
7584 p_validation_level,
7585 l_return_status,
7586 x_msg_count,
7587 x_msg_data,
7588 p_defaulting_rec_type.application_id,
7589 p_defaulting_rec_type.entity_code,
7590 p_defaulting_rec_type.event_class_code,
7591 p_defaulting_rec_type.org_id,
7592 p_defaulting_rec_type.item_id,
7593 p_defaulting_rec_type.country_code,
7594 p_defaulting_rec_type.effective_date,
7598 x_prod_category,
7595 p_defaulting_rec_type.source_event_class_code,
7596 x_trx_biz_category,
7597 x_intended_use,
7599 x_prod_fisc_class_code ,
7600 x_product_type
7601 ) ;
7602
7603 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7604 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7605 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':get_default_tax_det_attribs returned errors');
7606 END IF;
7607 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
7608 RAISE FND_API.G_EXC_ERROR;
7609 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
7610 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7611 END IF;
7612 END IF;
7613
7614 /*---------------------------------------------------------------------------------+
7615 | Copy from input structure before calling API to default the tax classification|
7616 +--------------------------------------------------------------------------------*/
7617 l_redef_tax_class_code_rec.application_id := p_defaulting_rec_type.application_id;
7618 l_redef_tax_class_code_rec.entity_code := p_defaulting_rec_type.entity_code;
7619 l_redef_tax_class_code_rec.event_class_code := p_defaulting_rec_type.event_class_code;
7620 l_redef_tax_class_code_rec.internal_organization_id := p_defaulting_rec_type.org_id;
7621 l_redef_tax_class_code_rec.trx_id := p_defaulting_rec_type.trx_id;
7622 l_redef_tax_class_code_rec.trx_line_id := p_defaulting_rec_type.trx_line_id;
7623 l_redef_tax_class_code_rec.trx_level_type := p_defaulting_rec_type.trx_level_type;
7624 l_redef_tax_class_code_rec.ledger_id := p_defaulting_rec_type.ledger_id;
7625 l_redef_tax_class_code_rec.trx_date := p_defaulting_rec_type.trx_date;
7626 l_redef_tax_class_code_rec.ref_doc_application_id := p_defaulting_rec_type.ref_doc_application_id;
7627 l_redef_tax_class_code_rec.ref_doc_event_class_code := p_defaulting_rec_type.ref_doc_event_class_code;
7628 l_redef_tax_class_code_rec.ref_doc_entity_code := p_defaulting_rec_type.ref_doc_entity_code;
7629 l_redef_tax_class_code_rec.ref_doc_trx_id := p_defaulting_rec_type.ref_doc_trx_id;
7630 l_redef_tax_class_code_rec.ref_doc_line_id := p_defaulting_rec_type.ref_doc_line_id;
7631 l_redef_tax_class_code_rec.ref_doc_trx_level_type := p_defaulting_rec_type.ref_doc_trx_level_type;
7632 l_redef_tax_class_code_rec.account_ccid := p_defaulting_rec_type.account_ccid;
7633 l_redef_tax_class_code_rec.account_string := p_defaulting_rec_type.account_string;
7634 l_redef_tax_class_code_rec.product_id := p_defaulting_rec_type.item_id;
7635 l_redef_tax_class_code_rec.product_org_id := p_defaulting_rec_type.item_org_id;
7636 l_redef_tax_class_code_rec.receivables_trx_type_id := p_defaulting_rec_type.application_id;
7637 l_redef_tax_class_code_rec.ship_third_pty_acct_id := p_defaulting_rec_type.ship_third_pty_acct_id;
7638 l_redef_tax_class_code_rec.bill_third_pty_acct_id := p_defaulting_rec_type.bill_third_pty_acct_id;
7639 l_redef_tax_class_code_rec.ship_to_cust_acct_site_use_id := p_defaulting_rec_type.ship_to_acct_site_use_id;
7640 l_redef_tax_class_code_rec.bill_to_cust_acct_site_use_id := p_defaulting_rec_type.bill_to_acct_site_use_id;
7641 l_redef_tax_class_code_rec.ship_to_location_id := p_defaulting_rec_type.ship_to_location_id;
7642 l_redef_tax_class_code_rec.receivables_trx_type_id := p_defaulting_rec_type.trx_type_id;
7643 l_redef_tax_class_code_rec.defaulting_attribute1 := p_defaulting_rec_type.defaulting_attribute1;
7644 l_redef_tax_class_code_rec.defaulting_attribute2 := p_defaulting_rec_type.defaulting_attribute2;
7645 l_redef_tax_class_code_rec.defaulting_attribute3 := p_defaulting_rec_type.defaulting_attribute3;
7646 l_redef_tax_class_code_rec.defaulting_attribute4 := p_defaulting_rec_type.defaulting_attribute4;
7647 l_redef_tax_class_code_rec.defaulting_attribute5 := p_defaulting_rec_type.defaulting_attribute5;
7648 l_redef_tax_class_code_rec.defaulting_attribute6 := p_defaulting_rec_type.defaulting_attribute6;
7649 l_redef_tax_class_code_rec.defaulting_attribute7 := p_defaulting_rec_type.defaulting_attribute7;
7650 l_redef_tax_class_code_rec.defaulting_attribute8 := p_defaulting_rec_type.defaulting_attribute8;
7651 l_redef_tax_class_code_rec.defaulting_attribute9 := p_defaulting_rec_type.defaulting_attribute9;
7652 l_redef_tax_class_code_rec.defaulting_attribute10 := p_defaulting_rec_type.defaulting_attribute10;
7653 l_redef_tax_class_code_rec.legal_entity_id := p_defaulting_rec_type.legal_entity_id;
7654
7655
7656 /*-------------------------------------------------+
7657 | Call TDM API to default the tax classification|
7658 +-------------------------------------------------*/
7659 IF ( G_LEVEL_EVENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7660 FND_LOG.STRING(G_LEVEL_EVENT,G_MODULE_NAME||l_api_name,
7661 'Call TDM to default tax classfication'
7662 );
7663 END IF;
7664
7665 ZX_TAX_DEFAULT_PKG.get_default_tax_classification (p_definfo => l_redef_tax_class_code_rec,
7666 p_return_status => l_return_status,
7667 p_error_buffer => l_error_buffer
7668 );
7669 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7673 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
7670 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7671 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TAX_DEFAULT_PKG.get_default_tax_classification returned errors');
7672 END IF;
7674 RAISE FND_API.G_EXC_ERROR;
7675 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
7676 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7677 END IF;
7678 ELSE
7679 x_tax_classification_code := l_redef_tax_class_code_rec.x_tax_classification_code;
7680 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7681 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
7682 'Tax Classification: ' || x_tax_classification_code
7683 );
7684 END IF;
7685 END IF;
7686
7687 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7688 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()+');
7689 END IF;
7690
7691 EXCEPTION
7692 WHEN FND_API.G_EXC_ERROR THEN
7693 ROLLBACK TO Get_Default_Tax_Det_Attrs_PVT;
7694 x_return_status := FND_API.G_RET_STS_ERROR ;
7695 /*---------------------------------------------------------+
7696 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
7697 | in the message stack. If there is only one message in |
7698 | the stack it retrieves this message |
7699 +---------------------------------------------------------*/
7700 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
7701 p_count => x_msg_count,
7702 p_data => x_msg_data
7703 );
7704 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
7705 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,SQLERRM);
7706 END IF;
7707
7708 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
7709 ROLLBACK TO Get_Default_Tax_Det_Attrs_PVT;
7710 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
7711 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
7712 FND_MSG_PUB.Add;
7713 /*---------------------------------------------------------+
7714 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
7715 | in the message stack. If there is only one message in |
7716 | the stack it retrieves this message |
7717 +---------------------------------------------------------*/
7718 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
7719 p_count => x_msg_count,
7720 p_data => x_msg_data
7721 );
7722
7723 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
7724 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,SQLERRM);
7725 END IF;
7726
7727 WHEN OTHERS THEN
7728 ROLLBACK TO Get_Default_Tax_Det_Attrs_PVT;
7729 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
7730 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
7731 FND_MSG_PUB.Add;
7732 /*---------------------------------------------------------+
7733 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
7734 | in the message stack. If there is only one message in |
7735 | the stack it retrieves this message |
7736 +---------------------------------------------------------*/
7737 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
7738 p_count => x_msg_count,
7739 p_data => x_msg_data
7740 );
7741 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
7742 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
7743 END IF;
7744
7745 END get_default_tax_det_attribs;
7746
7747 /* =======================================================================*
7748 | PROCEDURE set_tax_security_context : Sets the security context based |
7749 | on OU and LE of transaction |
7750 * =======================================================================*/
7751 PROCEDURE set_tax_security_context
7752 ( p_api_version IN NUMBER,
7753 p_init_msg_list IN VARCHAR2,
7754 p_commit IN VARCHAR2,
7755 p_validation_level IN NUMBER,
7756 x_return_status OUT NOCOPY VARCHAR2 ,
7757 x_msg_count OUT NOCOPY NUMBER ,
7758 x_msg_data OUT NOCOPY VARCHAR2,
7759 p_internal_org_id IN NUMBER,
7760 p_legal_entity_id IN NUMBER,
7761 p_transaction_date IN DATE,
7762 p_related_doc_date IN DATE,
7763 p_adjusted_doc_date IN DATE,
7764 x_effective_date OUT NOCOPY DATE
7765 )IS
7766 l_api_name CONSTANT VARCHAR2(30) := 'SET_TAX_SECURITY_CONTEXT';
7767 l_api_version CONSTANT NUMBER := 1.0;
7768 l_return_status VARCHAR2(30);
7769 l_init_msg_list VARCHAR2(1);
7770
7771 l_effective_date DATE;
7772
7773 BEGIN
7774 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7775 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
7776 END IF;
7777
7778 /*--------------------------------------------------+
7779 | Standard start of API savepoint |
7783 /*--------------------------------------------------+
7780 +--------------------------------------------------*/
7781 SAVEPOINT Set_Tax_Security_Context_PVT;
7782
7784 | Standard call to check for call compatibility |
7785 +--------------------------------------------------*/
7786 IF NOT FND_API.Compatible_API_Call(l_api_version,
7787 p_api_version,
7788 l_api_name,
7789 G_PKG_NAME
7790 ) THEN
7791 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7792 END IF;
7793
7794 /*--------------------------------------------------------------+
7795 | Initialize message list if p_init_msg_list is set to TRUE |
7796 +--------------------------------------------------------------*/
7797 IF p_init_msg_list is null THEN
7798 l_init_msg_list := FND_API.G_FALSE;
7799 ELSE
7800 l_init_msg_list := p_init_msg_list;
7801 END IF;
7802
7803 IF FND_API.to_Boolean(l_init_msg_list) THEN
7804 FND_MSG_PUB.initialize;
7805 END IF;
7806
7807 /*-----------------------------------------+
7808 | Initialize return status to SUCCESS |
7809 +-----------------------------------------*/
7810 x_return_status := FND_API.G_RET_STS_SUCCESS;
7811
7812
7813 /*--------------------------------------------+
7814 | Call to zx_security.set_security_context |
7815 +--------------------------------------------*/
7816
7817 x_effective_date := determine_effective_date(p_transaction_date,
7818 p_related_doc_date,
7819 p_adjusted_doc_date);
7820 l_effective_date := x_effective_date;
7821
7822 ZX_SECURITY.set_security_context(p_legal_entity_id,
7823 p_internal_org_id,
7824 l_effective_date,
7825 l_return_status
7826 );
7827
7828 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7829 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7830 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_SECURITY.set_security_context returned errors');
7831 END IF;
7832 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
7833 RAISE FND_API.G_EXC_ERROR;
7834 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
7835 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7836 END IF;
7837 END IF;
7838
7839 /*---------------------------------------------------------+
7840 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
7841 | in the message stack. If there is only one message in |
7842 | the stack it retrieves this message |
7843 +---------------------------------------------------------*/
7844 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
7845 p_count => x_msg_count,
7846 p_data => x_msg_data
7847 );
7848
7849 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7850 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
7851 END IF;
7852
7853 EXCEPTION
7854 WHEN FND_API.G_EXC_ERROR THEN
7855 ROLLBACK TO Set_Tax_Security_Context_PVT;
7856 x_return_status := FND_API.G_RET_STS_ERROR ;
7857 /*---------------------------------------------------------+
7858 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
7859 | in the message stack. If there is only one message in |
7860 | the stack it retrieves this message |
7861 +---------------------------------------------------------*/
7862 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
7863 p_count => x_msg_count,
7864 p_data => x_msg_data
7865 );
7866
7867 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
7868 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
7869 END IF;
7870
7871 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
7872 ROLLBACK TO Set_Tax_Security_Context_PVT;
7873 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
7874 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
7875 FND_MSG_PUB.Add;
7876 /*---------------------------------------------------------+
7877 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
7878 | in the message stack. If there is only one message in |
7879 | the stack it retrieves this message |
7880 +---------------------------------------------------------*/
7881 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
7882 p_count => x_msg_count,
7883 p_data => x_msg_data
7884 );
7885
7886 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
7887 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
7888 END IF;
7889
7890 WHEN OTHERS THEN
7891 ROLLBACK TO set_tax_security_context_PVT;
7892 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
7893 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
7894 FND_MSG_PUB.Add;
7898 | the stack it retrieves this message |
7895 /*---------------------------------------------------------+
7896 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
7897 | in the message stack. If there is only one message in |
7899 +---------------------------------------------------------*/
7900 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
7901 p_count => x_msg_count,
7902 p_data => x_msg_data
7903 );
7904 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
7905 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
7906 END IF;
7907 END set_tax_security_context;
7908
7909
7910
7911 /* =======================================================================*
7912 | Overloaded PROCEDURE set_tax_security_context: for Lease Management |
7913 | Also includes setting the date based on provnl_tax_determination_date |
7914 * =======================================================================*/
7915 PROCEDURE set_tax_security_context
7916 ( p_api_version IN NUMBER,
7917 p_init_msg_list IN VARCHAR2,
7918 p_commit IN VARCHAR2,
7919 p_validation_level IN NUMBER,
7920 x_return_status OUT NOCOPY VARCHAR2 ,
7921 x_msg_count OUT NOCOPY NUMBER ,
7922 x_msg_data OUT NOCOPY VARCHAR2,
7923 p_internal_org_id IN NUMBER,
7924 p_legal_entity_id IN NUMBER,
7925 p_transaction_date IN DATE,
7926 p_related_doc_date IN DATE,
7927 p_adjusted_doc_date IN DATE,
7928 p_provnl_tax_det_date IN DATE,
7929 x_effective_date OUT NOCOPY DATE
7930 )IS
7931 l_api_name CONSTANT VARCHAR2(30) := 'SET_TAX_SECURITY_CONTEXT';
7932 l_api_version CONSTANT NUMBER := 1.0;
7933 l_return_status VARCHAR2(30);
7934 l_init_msg_list VARCHAR2(1);
7935
7936 BEGIN
7937 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7938 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
7939 END IF;
7940
7941 /*--------------------------------------------------+
7942 | Standard start of API savepoint |
7943 +--------------------------------------------------*/
7944 SAVEPOINT Set_Tax_Security_Context_PVT;
7945
7946 /*--------------------------------------------------+
7947 | Standard call to check for call compatibility |
7948 +--------------------------------------------------*/
7949 IF NOT FND_API.Compatible_API_Call(l_api_version,
7950 p_api_version,
7951 l_api_name,
7952 G_PKG_NAME
7953 ) THEN
7954 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7955 END IF;
7956
7957 /*--------------------------------------------------------------+
7958 | Initialize message list if p_init_msg_list is set to TRUE |
7959 +--------------------------------------------------------------*/
7960 IF p_init_msg_list is null THEN
7961 l_init_msg_list := FND_API.G_FALSE;
7962 ELSE
7963 l_init_msg_list := p_init_msg_list;
7964 END IF;
7965
7966 IF FND_API.to_Boolean(l_init_msg_list) THEN
7967 FND_MSG_PUB.initialize;
7968 END IF;
7969
7970 /*-----------------------------------------+
7971 | Initialize return status to SUCCESS |
7972 +-----------------------------------------*/
7973 x_return_status := FND_API.G_RET_STS_SUCCESS;
7974
7975
7976 /*--------------------------------------------+
7977 | Call to zx_security.set_security_context |
7978 +--------------------------------------------*/
7979 ZX_SECURITY.set_security_context(p_legal_entity_id,
7980 p_internal_org_id,
7981 determine_effective_date(p_transaction_date,
7982 p_related_doc_date,
7983 p_adjusted_doc_date,
7984 p_provnl_tax_det_date),
7985 l_return_status
7986 );
7987
7988 x_effective_date := ZX_SECURITY.G_EFFECTIVE_DATE;
7989
7990 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7991 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7992 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_SECURITY.set_security_context returned errors');
7993 END IF;
7994 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
7995 RAISE FND_API.G_EXC_ERROR;
7996 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
7997 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7998 END IF;
7999 END IF;
8000
8001 /*---------------------------------------------------------+
8002 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
8003 | in the message stack. If there is only one message in |
8004 | the stack it retrieves this message |
8005 +---------------------------------------------------------*/
8006 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
8007 p_count => x_msg_count,
8011 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8008 p_data => x_msg_data
8009 );
8010
8012 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
8013 END IF;
8014
8015 EXCEPTION
8016 WHEN FND_API.G_EXC_ERROR THEN
8017 ROLLBACK TO Set_Tax_Security_Context_PVT;
8018 x_return_status := FND_API.G_RET_STS_ERROR ;
8019 /*---------------------------------------------------------+
8020 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
8021 | in the message stack. If there is only one message in |
8022 | the stack it retrieves this message |
8023 +---------------------------------------------------------*/
8024 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
8025 p_count => x_msg_count,
8026 p_data => x_msg_data
8027 );
8028
8029 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
8030 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
8031 END IF;
8032
8033 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
8034 ROLLBACK TO Set_Tax_Security_Context_PVT;
8035 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
8036 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
8037 FND_MSG_PUB.Add;
8038 /*---------------------------------------------------------+
8039 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
8040 | in the message stack. If there is only one message in |
8041 | the stack it retrieves this message |
8042 +---------------------------------------------------------*/
8043 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
8044 p_count => x_msg_count,
8045 p_data => x_msg_data
8046 );
8047
8048 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
8049 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
8050 END IF;
8051
8052 WHEN OTHERS THEN
8053 ROLLBACK TO set_tax_security_context_PVT;
8054 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
8055 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
8056 FND_MSG_PUB.Add;
8057 /*---------------------------------------------------------+
8058 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
8059 | in the message stack. If there is only one message in |
8060 | the stack it retrieves this message |
8061 +---------------------------------------------------------*/
8062 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
8063 p_count => x_msg_count,
8064 p_data => x_msg_data
8065 );
8066 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
8067 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
8068 END IF;
8069 END set_tax_security_context;
8070
8071
8072
8073 /* =======================================================================*
8074 | PROCEDURE validate_and_default_tax_attr : |
8075 | This api supports multiple document processing |
8076 * =======================================================================*/
8077 PROCEDURE validate_and_default_tax_attr
8078 (
8079 p_api_version IN NUMBER,
8080 p_init_msg_list IN VARCHAR2,
8081 p_commit IN VARCHAR2,
8082 p_validation_level IN NUMBER,
8083 x_return_status OUT NOCOPY VARCHAR2 ,
8084 x_msg_count OUT NOCOPY NUMBER ,
8085 x_msg_data OUT NOCOPY VARCHAR2
8086 ) IS
8087 l_api_name CONSTANT VARCHAR2(30) := 'VALIDATE_AND_DEFAULT_TAX_ATTR';
8088 l_api_version CONSTANT NUMBER := 1.0;
8089 l_tax_method VARCHAR2(30);
8090 l_app_id NUMBER;
8091 l_return_status VARCHAR2(30);
8092 l_context_info_rec context_info_rec_type;
8093 l_init_msg_list VARCHAR2(1);
8094 l_internal_organization_id NUMBER;
8095 l_zx_product_options_rec ZX_GLOBAL_STRUCTURES_PKG.zx_product_options_rec_type;
8096
8097 BEGIN
8098 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8099 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
8100 END IF;
8101
8102 /*--------------------------------------------------+
8103 | Standard start of API savepoint |
8104 +--------------------------------------------------*/
8105 SAVEPOINT Validate_And_Default_Tax_Attr;
8106
8107 /*--------------------------------------------------+
8108 | Standard call to check for call compatibility |
8109 +--------------------------------------------------*/
8110 IF NOT FND_API.Compatible_API_Call(l_api_version,
8111 p_api_version,
8112 l_api_name,
8113 G_PKG_NAME
8114 ) THEN
8115 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8116 END IF;
8117
8121 IF p_init_msg_list is null THEN
8118 /*--------------------------------------------------------------+
8119 | Initialize message list if p_init_msg_list is set to TRUE |
8120 +--------------------------------------------------------------*/
8122 l_init_msg_list := FND_API.G_FALSE;
8123 ELSE
8124 l_init_msg_list := p_init_msg_list;
8125 END IF;
8126
8127 IF FND_API.to_Boolean(l_init_msg_list) THEN
8128 FND_MSG_PUB.initialize;
8129 END IF;
8130
8131 /*-----------------------------------------+
8132 | Initialize return status to SUCCESS |
8133 +-----------------------------------------*/
8134 x_return_status := FND_API.G_RET_STS_SUCCESS;
8135
8136 /*-----------------------------------------+
8137 | Populate Global Variable |
8138 +-----------------------------------------*/
8139 G_PUB_SRVC := l_api_name;
8140 G_DATA_TRANSFER_MODE := 'TAB';
8141 G_EXTERNAL_API_CALL := 'N';
8142
8143 BEGIN
8144 SELECT internal_organization_id,
8145 application_id
8146 INTO l_internal_organization_id,
8147 l_app_id
8148 FROM ZX_TRX_HEADERS_GT headers
8149 WHERE rownum =1;
8150
8151 EXCEPTION
8152 WHEN NO_DATA_FOUND THEN
8153 l_tax_method := 'EBTAX';
8154 END;
8155
8156 ZX_GLOBAL_STRUCTURES_PKG.get_product_options_info
8157 (p_application_id => l_app_id,
8158 p_org_id => l_internal_organization_id,
8159 x_product_options_rec => l_zx_product_options_rec,
8160 x_return_status => x_return_status);
8161
8162 IF x_return_status = FND_API.G_RET_STS_ERROR then
8163
8164 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8165 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Incorrect return status after calling '||
8166 'ZX_GLOBAL_STRUCTURES_PKG.get_product_options_info');
8167 END IF;
8168 l_tax_method := 'EBTAX';
8169 ELSE
8170 -- Bug 7528340
8171 l_tax_method := NVL(l_zx_product_options_rec.tax_method_code,'EBTAX');
8172 END IF;
8173
8174 IF l_app_id = 200 AND l_tax_method IS NULL THEN
8175 l_tax_method := 'EBTAX';
8176 END IF;
8177
8178 IF l_tax_method = 'EBTAX' THEN
8179 ZX_VALIDATE_API_PKG.default_and_validate_tax_attr(p_api_version,
8180 l_init_msg_list,
8181 p_commit,
8182 p_validation_level,
8183 l_return_status,
8184 x_msg_count,
8185 x_msg_data
8186 );
8187 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
8188 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8189 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_VALIDATE_API_PKG.default_and_validate_tax_attr returned errors');
8190 END IF;
8191 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
8192 RAISE FND_API.G_EXC_ERROR;
8193 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
8194 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8195 END IF;
8196 END IF;
8197 ELSIF l_tax_method = 'LTE' THEN
8198 JL_ZZ_TAX_VALIDATE_PKG.default_and_validate_tax_attr(p_api_version,
8199 l_init_msg_list,
8200 p_commit,
8201 p_validation_level,
8202 l_return_status,
8203 x_msg_count,
8204 x_msg_data
8205 );
8206 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
8207 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8208 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':JL_ZZ_TAX_VALIDATE_PKG.default_and_validate_tax_attr returned errors');
8209 END IF;
8210 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
8211 RAISE FND_API.G_EXC_ERROR;
8212 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
8213 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8214 END IF;
8215 END IF;
8216 END IF; --l_tax_method
8217
8218
8219 EXCEPTION
8220 WHEN FND_API.G_EXC_ERROR THEN
8221 --Since this API only inserts into the errors GT and updates the header and line GTTs
8222 --we shouldnt be rolling back here as that data too will be lost
8223 --ROLLBACK TO Validate_And_Default_Tax_Attr;
8224 x_return_status := FND_API.G_RET_STS_ERROR ;
8225 --Messages are inserted into ZX_VALIDATION_ERRORS_GT for this API
8226 DUMP_MSG;
8227 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
8228 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
8229 END IF;
8230
8231 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
8232 ROLLBACK TO Validate_And_Default_Tax_Attr;
8233 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
8237 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
8234 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
8235 FND_MSG_PUB.Add;
8236 /*---------------------------------------------------------+
8238 | in the message stack. If there is only one message in |
8239 | the stack it retrieves this message |
8240 +---------------------------------------------------------*/
8241 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
8242 p_count => x_msg_count,
8243 p_data => x_msg_data
8244 );
8245
8246 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
8247 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
8248 END IF;
8249
8250 WHEN OTHERS THEN
8251 ROLLBACK TO Validate_And_Default_Tax_Attr;
8252 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
8253 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
8254 FND_MSG_PUB.Add;
8255 /*---------------------------------------------------------+
8256 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
8257 | in the message stack. If there is only one message in |
8258 | the stack it retrieves this message |
8259 +---------------------------------------------------------*/
8260 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
8261 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
8262 END IF;
8263 END validate_and_default_tax_attr;
8264
8265
8266
8267 /* ==========================================================================*
8268 | PROCEDURE rollback_for_tax : Communicate to the Tax Partners to rollback|
8269 | transactions in their system |
8270 * =========================================================================*/
8271 PROCEDURE rollback_for_tax
8272 ( p_api_version IN NUMBER,
8273 p_init_msg_list IN VARCHAR2,
8274 p_commit IN VARCHAR2,
8275 p_validation_level IN NUMBER,
8276 x_return_status OUT NOCOPY VARCHAR2 ,
8277 x_msg_count OUT NOCOPY NUMBER ,
8278 x_msg_data OUT NOCOPY VARCHAR2
8279 )IS
8280 l_api_name CONSTANT VARCHAR2(30) := 'ROLLBACK_FOR_TAX';
8281 l_api_version CONSTANT NUMBER := 1.0;
8282
8283 BEGIN
8284 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8285 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
8286 END IF;
8287
8288 END rollback_for_tax;
8289
8290 /* ========================================================================*
8291 | PROCEDURE commit_for_tax : Communicate to the Tax Partners to commit |
8292 | transactions in their system |
8293 * =======================================================================*/
8294
8295 PROCEDURE commit_for_tax
8296 ( p_api_version IN NUMBER,
8297 p_init_msg_list IN VARCHAR2,
8298 p_commit IN VARCHAR2,
8299 p_validation_level IN NUMBER ,
8300 x_return_status OUT NOCOPY VARCHAR2 ,
8301 x_msg_count OUT NOCOPY NUMBER ,
8302 x_msg_data OUT NOCOPY VARCHAR2
8303 )IS
8304 l_api_name CONSTANT VARCHAR2(30) := 'COMMIT_FOR_TAX';
8305 l_api_version CONSTANT NUMBER := 1.0;
8306
8307 BEGIN
8308 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8309 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
8310 END IF;
8311
8312 END commit_for_tax;
8313
8314 /* =======================================================================*
8315 | PROCEDURE add_msg : Adds the message to the fnd message stack or |
8316 | local plsql table to be dumped later into the |
8317 | errors GT. |
8318 * =======================================================================*/
8319
8320 PROCEDURE add_msg (p_context_info_rec IN context_info_rec_type)
8321 IS
8322 l_count BINARY_INTEGER;
8323 l_mesg VARCHAR2(2000);
8324 l_api_name CONSTANT VARCHAR2(30) := 'ADD_MSG';
8325 BEGIN
8326 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8327 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
8328 END IF;
8329 --Add unexpected errors to fnd_stack
8330 IF p_context_info_rec.application_id is null THEN
8331 FND_MSG_PUB.Add();
8332 END IF;
8333
8334 IF G_DATA_TRANSFER_MODE = 'PLS' OR
8335 G_DATA_TRANSFER_MODE = 'WIN' THEN
8336 /*If G_EXTERNAL_API_CALL is 'Y' reset it back to 'N' and no need to add to stack
8337 since message is already in stack.*/
8338 IF G_EXTERNAL_API_CALL = 'Y' THEN
8339 G_EXTERNAL_API_CALL := 'N';
8340 ELSE
8341 FND_MSG_PUB.Add();
8342 END IF;
8343 ELSIF G_DATA_TRANSFER_MODE = 'TAB' THEN
8344 l_count:= errors_tbl.application_id.COUNT;
8345 IF G_EXTERNAL_API_CALL = 'Y' THEN
8346 LOOP
8347 l_mesg := FND_MSG_PUB.Get(FND_MSG_PUB.G_NEXT, FND_API.G_FALSE);
8348 IF l_mesg IS NULL THEN
8349 EXIT;
8350 ELSE
8354 errors_tbl.trx_id(l_count+1) := p_context_info_rec.trx_id;
8351 errors_tbl.application_id(l_count+1) := p_context_info_rec.application_id;
8352 errors_tbl.entity_code(l_count+1) := p_context_info_rec.entity_code;
8353 errors_tbl.event_class_code(l_count+1) := p_context_info_rec.event_class_code;
8355 errors_tbl.trx_level_type(l_count+1) := p_context_info_rec.trx_level_type;
8356 errors_tbl.trx_line_id(l_count+1) := p_context_info_rec.trx_line_id;
8357 errors_tbl.summary_tax_line_number(l_count+1) := p_context_info_rec.summary_tax_line_number;
8358 errors_tbl.tax_line_id(l_count+1) := p_context_info_rec.tax_line_id;
8359 errors_tbl.trx_line_dist_id(l_count+1) := p_context_info_rec.trx_line_dist_id;
8360 errors_tbl.message_text(l_count+1) := l_mesg;
8361 END IF;
8362 END LOOP;
8363 G_EXTERNAL_API_CALL := 'N'; -- reset G_EXTERNAL_API_CALL
8364 ELSE --G_EXTERNAL_API_CALL is 'N' then retrieve message from fnd_stack
8365 errors_tbl.application_id(l_count+1) := p_context_info_rec.application_id;
8366 errors_tbl.entity_code(l_count+1) := p_context_info_rec.entity_code;
8367 errors_tbl.event_class_code(l_count+1) := p_context_info_rec.event_class_code;
8368 errors_tbl.trx_id(l_count+1) := p_context_info_rec.trx_id;
8369 errors_tbl.trx_level_type(l_count+1) := p_context_info_rec.trx_level_type;
8370 errors_tbl.trx_line_id(l_count+1) := p_context_info_rec.trx_line_id;
8371 errors_tbl.summary_tax_line_number(l_count+1) := p_context_info_rec.summary_tax_line_number;
8372 errors_tbl.tax_line_id(l_count+1) := p_context_info_rec.tax_line_id;
8373 errors_tbl.trx_line_dist_id(l_count+1) := p_context_info_rec.trx_line_dist_id;
8374 errors_tbl.message_text(l_count+1) := fnd_message.get();
8375 END IF; --G_EXTERNAL_API_CALL
8376 l_count:=errors_tbl.application_id.COUNT;
8377 END IF; --G_DATA_TRANSFER_MODE
8378
8379 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8380 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
8381 END IF;
8382 END add_msg;
8383
8384 /* ============================================================================*
8385 | PROCEDURE dump_msg : Dump all error messages from pl/sql structure to table |
8386 * ============================================================================*/
8387 PROCEDURE dump_msg
8388 IS
8389 l_api_name CONSTANT VARCHAR2(30) := 'DUMP_MSG';
8390 BEGIN
8391 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8392 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
8393 END IF;
8394 FORALL i IN 1 .. nvl(errors_tbl.application_id.LAST,-99)
8395 INSERT INTO ZX_ERRORS_GT (application_id,
8396 entity_code,
8397 event_class_code,
8398 trx_id,
8399 trx_line_id,
8400 trx_level_type,
8401 summary_tax_line_number,
8402 tax_line_id,
8403 trx_line_dist_id,
8404 message_text)
8405 values (errors_tbl.application_id(i),
8406 errors_tbl.entity_code(i),
8407 errors_tbl.event_class_code(i),
8408 errors_tbl.trx_id(i),
8409 errors_tbl.trx_line_id(i),
8410 errors_tbl.trx_level_type(i),
8411 errors_tbl.summary_tax_line_number(i),
8412 errors_tbl.tax_line_id(i),
8413 errors_tbl.trx_line_dist_id(i),
8414 NVL(errors_tbl.message_text(i),'UNEXPECTED_ERROR_DUMP_MSG')
8415 );
8416 errors_tbl.application_id.delete;
8417 errors_tbl.entity_code.delete;
8418 errors_tbl.event_class_code.delete;
8419 errors_tbl.trx_id.delete;
8420 errors_tbl.trx_line_id.delete;
8421 errors_tbl.trx_level_type.delete;
8422 errors_tbl.summary_tax_line_number.delete;
8423 errors_tbl.tax_line_id.delete;
8424 errors_tbl.trx_line_dist_id.delete;
8425 errors_tbl.message_text.delete;
8426 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8427 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()-');
8428 END IF;
8429 END dump_msg;
8430
8431 /* =======================================================================*
8432 | FUNCTION determine_effective_date : |
8433 * =======================================================================*/
8434
8435 FUNCTION determine_effective_date
8436 ( p_transaction_date IN DATE,
8437 p_related_doc_date IN DATE,
8438 p_adjusted_doc_date IN DATE
8439 ) RETURN DATE IS
8440
8441 BEGIN
8442 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8443 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||'DETERMINE_EFFECTIVE_DATE.BEGIN','ZX_API_PUB: DETERMINE_EFFECTIVE_DATE()+');
8444 END IF;
8445
8449 return(p_adjusted_doc_date);
8446 IF p_related_doc_date IS NOT NULL THEN
8447 return(p_related_doc_date);
8448 ELSIF p_adjusted_doc_date IS NOT NULL THEN
8450 ELSIF p_transaction_date IS NOT NULL THEN
8451 return(p_transaction_date);
8452 ELSE
8453 return(SYSDATE);
8454 END IF;
8455
8456 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8457 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||'DETERMINE_EFFECTIVE_DATE.END','ZX_API_PUB: DETERMINE_EFFECTIVE_DATE()-');
8458 END IF;
8459
8460 END determine_effective_date;
8461
8462
8463 /* =======================================================================*
8464 | Function Get_Default_Tax_Reg : Returns the Default Registration Number|
8465 | for a Given Party |
8466 * =======================================================================*/
8467
8468 FUNCTION get_default_tax_reg(
8469 p_api_version IN NUMBER,
8470 p_init_msg_list IN VARCHAR2,
8471 p_commit IN VARCHAR2,
8472 p_validation_level IN NUMBER,
8473 x_return_status OUT NOCOPY VARCHAR2,
8474 x_msg_count OUT NOCOPY NUMBER,
8475 x_msg_data OUT NOCOPY VARCHAR2,
8476 p_party_id IN ZX_PARTY_TAX_PROFILE.party_id%type,
8477 p_party_type IN ZX_PARTY_TAX_PROFILE.party_type_code%type,
8478 p_effective_date IN ZX_REGISTRATIONS.effective_from%type
8479 ) RETURN Varchar2 IS
8480 l_api_name CONSTANT VARCHAR2(30) := 'GET_DEFAULT_TAX_REG';
8481 l_api_version CONSTANT NUMBER := 1.0;
8482 l_reg_number VARCHAR2(50);
8483 l_return_status VARCHAR2(1);
8484 l_context_info_rec context_info_rec_type;
8485 l_init_msg_list VARCHAR2(1);
8486 BEGIN
8487 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8488 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
8489 END IF;
8490
8491 /*--------------------------------------------------+
8492 | Standard start of API savepoint |
8493 +--------------------------------------------------*/
8494 -- Commenting this save point as per bug# 5395191
8495 -- SAVEPOINT Get_Default_Tax_Reg_PVT;
8496
8497 /*--------------------------------------------------+
8498 | Standard call to check for call compatibility |
8499 +--------------------------------------------------*/
8500 IF NOT FND_API.Compatible_API_Call(l_api_version,
8501 p_api_version,
8502 l_api_name,
8503 G_PKG_NAME
8504 ) THEN
8505 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8506 END IF;
8507
8508 /*--------------------------------------------------------------+
8509 | Initialize message list if p_init_msg_list is set to TRUE |
8510 +--------------------------------------------------------------*/
8511 IF p_init_msg_list is null THEN
8512 l_init_msg_list := FND_API.G_FALSE;
8513 ELSE
8514 l_init_msg_list := p_init_msg_list;
8515 END IF;
8516
8517 IF FND_API.to_Boolean(l_init_msg_list) THEN
8518 FND_MSG_PUB.initialize;
8519 END IF;
8520
8521 /*-----------------------------------------+
8522 | Initialize return status to SUCCESS |
8523 +-----------------------------------------*/
8524 x_return_status := FND_API.G_RET_STS_SUCCESS;
8525
8526 /*-----------------------------------------+
8527 | Populate Global Variable |
8528 +-----------------------------------------*/
8529 G_PUB_SRVC := l_api_name;
8530 G_DATA_TRANSFER_MODE := 'PLS';
8531 G_EXTERNAL_API_CALL := 'N';
8532
8533
8534 /*-----------------------------------------------------+
8535 | Get the default value for product category |
8536 +-----------------------------------------------------*/
8537 l_reg_number:= ZX_TCM_EXT_SERVICES_PUB.get_default_tax_reg(p_party_id,
8538 p_party_type,
8539 p_effective_date,
8540 l_return_status
8541 );
8542
8543 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
8544 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8545 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_TCM_EXT_SERVICES_PUB.get_default_tax_reg returned errors');
8546 END IF;
8547 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
8548 RAISE FND_API.G_EXC_ERROR;
8549 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
8550 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8551 END IF;
8552 ELSE
8553 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8554 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
8555 'Registration Number: '|| l_reg_number
8556 );
8557 END IF;
8558 RETURN l_reg_number;
8559 END IF;
8560
8561
8562 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8566 EXCEPTION
8563 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
8564 END IF;
8565
8567 WHEN FND_API.G_EXC_ERROR THEN
8568 -- Commented rollback as per bug 5395191
8569 -- ROLLBACK TO Get_Default_Tax_Reg_PVT;
8570 x_return_status := FND_API.G_RET_STS_ERROR ;
8571 /*---------------------------------------------------------+
8572 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
8573 | in the message stack. If there is only one message in |
8574 | the stack it retrieves this message |
8575 +---------------------------------------------------------*/
8576 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
8577 p_count => x_msg_count,
8578 p_data => x_msg_data
8579 );
8580 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
8581 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
8582 END IF;
8583
8584 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
8585 -- Commented rollback as per bug 5395191
8586 -- ROLLBACK TO Get_Default_Tax_Reg_PVT;
8587 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
8588 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
8589 FND_MSG_PUB.Add;
8590 /*---------------------------------------------------------+
8591 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
8592 | in the message stack. If there is only one message in |
8593 | the stack it retrieves this message |
8594 +---------------------------------------------------------*/
8595 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
8596 p_count => x_msg_count,
8597 p_data => x_msg_data
8598 );
8599 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
8600 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
8601 END IF;
8602
8603 WHEN OTHERS THEN
8604 -- Commented rollback as per bug 5395191
8605 -- ROLLBACK TO Get_Default_Tax_Reg_PVT;
8606 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
8607 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
8608 FND_MSG_PUB.Add;
8609 /*---------------------------------------------------------+
8610 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
8611 | in the message stack. If there is only one message in |
8612 | the stack it retrieves this message |
8613 +---------------------------------------------------------*/
8614 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
8615 p_count => x_msg_count,
8616 p_data => x_msg_data
8617 );
8618 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
8619 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
8620 END IF;
8621
8622 END get_default_tax_reg;
8623
8624 /* ========================================================================*
8625 | PROCEDURE insert_line_det_factors : This procedure should be called by |
8626 | products when creating a document or inserting a new transaction line |
8627 | for existing document. This line will be flagged to be picked up by the |
8628 | tax calculation process |
8629 * =======================================================================*/
8630 PROCEDURE insert_line_det_factors (
8631 p_api_version IN NUMBER,
8632 p_init_msg_list IN VARCHAR2,
8633 p_commit IN VARCHAR2,
8634 p_validation_level IN NUMBER,
8635 x_return_status OUT NOCOPY VARCHAR2,
8636 x_msg_count OUT NOCOPY NUMBER,
8637 x_msg_data OUT NOCOPY VARCHAR2,
8638 p_duplicate_line_rec IN transaction_line_rec_type
8639 ) IS
8640 l_api_name CONSTANT VARCHAR2(30) := 'INSERT_LINE_DET_FACTORS';
8641 l_api_version CONSTANT NUMBER := 1.0;
8642 l_return_status VARCHAR2(1);
8643 l_event_class_rec event_class_rec_type;
8644 l_line_det_rec ZX_LINES_DET_FACTORS%rowtype;
8645 l_line_exists NUMBER;
8646 l_record_exists BOOLEAN;
8647 l_init_msg_list VARCHAR2(1);
8648 l_tax_classification_code VARCHAR2(50);
8649 l_do_defaulting BOOLEAN;
8650 l_upg_trx_info_rec ZX_ON_FLY_TRX_UPGRADE_PKG.zx_upg_trx_info_rec_type;
8651 BEGIN
8652 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8653 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'1()+');
8654 END IF;
8655
8656 /*--------------------------------------------------+
8657 | Standard start of API savepoint |
8658 +--------------------------------------------------*/
8659 SAVEPOINT Insert_Line_Det_Factors_PVT;
8660
8661 /*--------------------------------------------------+
8662 | Standard call to check for call compatibility |
8663 +--------------------------------------------------*/
8664 IF NOT FND_API.Compatible_API_Call(l_api_version,
8665 p_api_version,
8669 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8666 l_api_name,
8667 G_PKG_NAME
8668 ) THEN
8670 END IF;
8671
8672 /*--------------------------------------------------------------+
8673 | Initialize message list if p_init_msg_list is set to TRUE |
8674 +--------------------------------------------------------------*/
8675 IF p_init_msg_list is null THEN
8676 l_init_msg_list := FND_API.G_FALSE;
8677 ELSE
8678 l_init_msg_list := p_init_msg_list;
8679 END IF;
8680
8681 IF FND_API.to_Boolean(l_init_msg_list) THEN
8682 FND_MSG_PUB.initialize;
8683 END IF;
8684
8685 /*-----------------------------------------+
8686 | Initialize return status to SUCCESS |
8687 +-----------------------------------------*/
8688 x_return_status := FND_API.G_RET_STS_SUCCESS;
8689
8690 /*-----------------------------------------+
8691 | Populate Global Variable |
8692 +-----------------------------------------*/
8693 G_PUB_SRVC := l_api_name;
8694 G_PUB_CALLING_SRVC := l_api_name;
8695 G_DATA_TRANSFER_MODE := 'PLS';
8696 G_EXTERNAL_API_CALL := 'N';
8697
8698 /*-----------------------------------------+
8699 |Populate the event class record structure|
8700 +-----------------------------------------*/
8701 l_event_class_rec.INTERNAL_ORGANIZATION_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.INTERNAL_ORGANIZATION_ID(1);
8702 l_event_class_rec.LEGAL_ENTITY_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LEGAL_ENTITY_ID(1);
8703 l_event_class_rec.LEDGER_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LEDGER_ID(1);
8704 l_event_class_rec.APPLICATION_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLICATION_ID(1);
8705 l_event_class_rec.ENTITY_CODE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ENTITY_CODE(1);
8706 l_event_class_rec.EVENT_CLASS_CODE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.EVENT_CLASS_CODE(1);
8707 l_event_class_rec.EVENT_TYPE_CODE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.EVENT_TYPE_CODE(1);
8708 l_event_class_rec.CTRL_TOTAL_HDR_TX_AMT := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CTRL_TOTAL_HDR_TX_AMT(1);
8709 l_event_class_rec.TRX_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_ID(1);
8710 l_event_class_rec.TRX_DATE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_DATE(1);
8711 l_event_class_rec.REL_DOC_DATE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RELATED_DOC_DATE(1);
8712 l_event_class_rec.PROVNL_TAX_DETERMINATION_DATE:= ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PROVNL_TAX_DETERMINATION_DATE(1);
8713 l_event_class_rec.TRX_CURRENCY_CODE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_CURRENCY_CODE(1);
8714 l_event_class_rec.PRECISION := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRECISION(1);
8715 l_event_class_rec.CURRENCY_CONVERSION_TYPE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CURRENCY_CONVERSION_TYPE(1);
8716 l_event_class_rec.CURRENCY_CONVERSION_RATE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CURRENCY_CONVERSION_RATE(1);
8717 l_event_class_rec.CURRENCY_CONVERSION_DATE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CURRENCY_CONVERSION_DATE(1);
8718 l_event_class_rec.ROUNDING_SHIP_TO_PARTY_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_SHIP_TO_PARTY_ID(1);
8719 l_event_class_rec.ROUNDING_SHIP_FROM_PARTY_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_SHIP_FROM_PARTY_ID(1);
8720 l_event_class_rec.ROUNDING_BILL_TO_PARTY_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_BILL_TO_PARTY_ID(1);
8721 l_event_class_rec.ROUNDING_BILL_FROM_PARTY_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_BILL_FROM_PARTY_ID(1);
8722 l_event_class_rec.RNDG_SHIP_TO_PARTY_SITE_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_SHIP_TO_PARTY_SITE_ID(1);
8723 l_event_class_rec.RNDG_SHIP_FROM_PARTY_SITE_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_SHIP_FROM_PARTY_SITE_ID(1);
8724 l_event_class_rec.RNDG_BILL_TO_PARTY_SITE_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_BILL_TO_PARTY_SITE_ID(1);
8725 l_event_class_rec.RNDG_BILL_FROM_PARTY_SITE_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_BILL_FROM_PARTY_SITE_ID(1);
8726
8727 --Check if need to upgrade
8728 l_record_exists := FALSE;
8729 IF l_event_class_rec.event_type_code = 'INV_UPDATE' THEN
8730 FOR l_line_det_rec in lock_line_det_factors_for_doc(l_event_class_rec)
8731 LOOP
8732 l_record_exists := TRUE;
8733 l_event_class_rec.event_id := l_line_det_rec.event_id;
8734 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.default_taxation_country(1) := l_line_det_rec.default_taxation_country;
8735 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.document_sub_type(1) := l_line_det_rec.document_sub_type;
8736 EXIT;
8737 END LOOP;
8738 IF NOT(l_record_exists) THEN
8739 --Bugfix 4486946 -Call on the fly upgrade if the transaction if not found
8740 l_upg_trx_info_rec.application_id := l_event_class_rec.application_id;
8741 l_upg_trx_info_rec.entity_code := l_event_class_rec.entity_code;
8742 l_upg_trx_info_rec.event_class_code := l_event_class_rec.event_class_code;
8743 l_upg_trx_info_rec.trx_id := l_event_class_rec.trx_id;
8744 ZX_ON_FLY_TRX_UPGRADE_PKG.upgrade_trx_on_fly(p_upg_trx_info_rec => l_upg_trx_info_rec,
8745 x_return_status => l_return_status
8746 );
8747 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
8748 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8749 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_ON_FLY_TRX_UPGRADE_PKG.upgrade_trx_on_fly returned errors');
8750 END IF;
8751 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
8752 RAISE FND_API.G_EXC_ERROR;
8753 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
8754 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8755 END IF;
8756 END IF;
8757 FOR l_line_det_rec in lock_line_det_factors_for_doc(l_event_class_rec)
8758 LOOP
8759 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8760 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
8761 'Lock the document so that no updates can happen for transaction :' || to_char(l_event_class_rec.trx_id));
8762 END IF;
8763 l_record_exists := TRUE;
8764 l_event_class_rec.event_id := l_line_det_rec.event_id;
8765 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.default_taxation_country(1) := l_line_det_rec.default_taxation_country;
8766 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.document_sub_type(1) := l_line_det_rec.document_sub_type;
8767 EXIT;
8768 END LOOP;
8769 END IF; --record does not exist so upgrade
8770 --Bugfix 4486946 - on-the-fly upgrade end
8771 END IF; --event_type_code
8772
8773 IF NOT(l_record_exists) THEN
8774 SELECT ZX_LINES_DET_FACTORS_S.nextval
8775 INTO l_event_class_rec.event_id
8776 FROM dual;
8777 END IF;
8778
8779 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8780 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
8781 'application_id: '||to_char(l_event_class_rec.application_id)||
8782 ', entity_code: '||l_event_class_rec.entity_code||
8783 ', event_class_code: '||l_event_class_rec.event_class_code||
8784 ', event_type_code: '||l_event_class_rec.event_type_code||
8785 ', trx_id: '||to_char(l_event_class_rec.trx_id)||
8786 ', internal_organization_id: '||to_char(l_event_class_rec.internal_organization_id)||
8787 ', ledger_id: '||to_char(l_event_class_rec.ledger_id)||
8788 ', legal_entity_id: '||to_char(l_event_class_rec.legal_entity_id)||
8789 ', trx_date: '||to_char(l_event_class_rec.trx_date)||
8790 ', related_document_date: '||to_char(l_event_class_rec.rel_doc_date)||
8791 ', provnl_tax_determination_date: '||to_char(l_event_class_rec.provnl_tax_determination_date)||
8792 ', trx_currency_code: '||l_event_class_rec.trx_currency_code||
8793 ', currency_conversion_type: '||l_event_class_rec.currency_conversion_type||
8794 ', currency_conversion_rate: '||to_char(l_event_class_rec.currency_conversion_rate)||
8795 ', currency_conversion_date: '||to_char(l_event_class_rec.currency_conversion_date)||
8796 ', rounding_ship_to_party_id: '||to_char(l_event_class_rec.rounding_ship_to_party_id)||
8797 ', rounding_ship_from_party_id: '||to_char(l_event_class_rec.rounding_ship_from_party_id)||
8798 ', rounding_bill_to_party_id: '||to_char(l_event_class_rec.rounding_bill_to_party_id)||
8799 ', rounding_bill_from_party_id: '||to_char(l_event_class_rec.rounding_bill_from_party_id)||
8800 ', rndg_ship_to_party_site_id: '||to_char(l_event_class_rec.rndg_ship_to_party_site_id)||
8801 ', rndg_ship_from_party_site_id: '||to_char(l_event_class_rec.rndg_ship_from_party_site_id)||
8802 ', rndg_bill_to_party_site_id: '||to_char(l_event_class_rec.rndg_bill_to_party_site_id)||
8803 ', rndg_bill_from_party_site_id: '||to_char(l_event_class_rec.rndg_bill_from_party_site_id)
8804 );
8805 END IF;
8806
8807 -- Bug 5676960: Set a flag to indicate if currency information passed at header/line
8808 IF l_event_class_rec.trx_currency_code is not null AND
8809 l_event_class_rec.precision is not null THEN
8810 l_event_class_rec.header_level_currency_flag := 'Y';
8811 END IF;
8812
8813 /*------------------------------------------------------+
8814 | Validate and Initializate parameters for Inserting |
8815 | into line_det_factors |
8816 +------------------------------------------------------*/
8817 ZX_VALID_INIT_PARAMS_PKG.insupd_line_det_factors(p_event_class_rec =>l_event_class_rec,
8818 p_trx_line_index => 1,
8819 x_return_status =>l_return_status
8820 );
8821
8822 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
8823 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8824 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_VALID_INIT_PARAMS_PKG.insupd_line_det_factors returned errors');
8825 END IF;
8826 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
8827 RAISE FND_API.G_EXC_ERROR;
8828 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
8829 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8830 END IF;
8831 END IF;
8832
8833 -- Fix for Bug 5038953
8834 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TAX_EVENT_CLASS_CODE(1) := l_event_class_rec.TAX_EVENT_CLASS_CODE;
8835 -- End fix for Bug 5038953
8836
8837 /* ==============================================*
8838 |Determine if we need to default the parameters|
8839 * ============================================*/
8843 /*If the Duplicate Source Document Line identifiers are passed, then derive the values
8840 l_do_defaulting := ZX_SRVC_TYP_PKG.decide_call_redefault_APIs (p_trx_line_index => 1);
8841
8842 IF l_do_defaulting THEN
8844 of the tax determining factors from ZX_LINES_DET_FACTORS for the duplicate source document line.*/
8845 IF p_duplicate_line_rec.application_id is not null THEN
8846 --Default determining factors from Duplicated Line
8847 SELECT
8848 default_taxation_country,
8849 document_sub_type,
8850 trx_business_category,
8851 line_intended_use,
8852 user_defined_fisc_class,
8853 product_fisc_classification,
8854 product_category,
8855 assessable_value,
8856 product_type,
8857 decode(l_event_class_rec.prod_family_grp_code,'P2P',input_tax_classification_code,
8858 'O2C',output_tax_classification_code)
8859 INTO
8860 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.default_taxation_country(1),
8861 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.document_sub_type(1),
8862 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_business_category(1),
8863 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_intended_use(1),
8864 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.user_defined_fisc_class(1),
8865 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_fisc_classification(1),
8866 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_category(1),
8867 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.assessable_value(1),
8868 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_type(1),
8869 l_tax_classification_code
8870 FROM ZX_LINES_DET_FACTORS
8871 WHERE application_id = p_duplicate_line_rec.application_id
8872 AND entity_code = p_duplicate_line_rec.entity_code
8873 AND event_class_code = p_duplicate_line_rec.event_class_code
8874 AND trx_id = p_duplicate_line_rec.trx_id
8875 AND trx_line_id = p_duplicate_line_rec.trx_line_id
8876 AND trx_level_type = p_duplicate_line_rec.trx_level_type;
8877
8878 --AR always passes the tax classification code so do not override the passed value
8879 IF l_event_class_rec.prod_family_grp_code = 'P2P' THEN
8880 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.input_tax_classification_code(1) := l_tax_classification_code;
8881 ELSIF l_event_class_rec.prod_family_grp_code = 'O2C' AND
8882 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.output_tax_classification_code is null THEN
8883 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.output_tax_classification_code(1) := l_tax_classification_code;
8884 END IF;
8885 /*If the applied from, adjusted, source document information is passed with
8886 the transaction line, then derive the values tax determining factors from
8887 ZX_LINES_DET_FACTORS or call TDS defaulting API*/
8888 ELSE ZX_SRVC_TYP_PKG.default_tax_attrs_wrapper (p_trx_line_index => 1,
8889 p_event_class_rec => l_event_class_rec,
8890 x_return_status => l_return_status
8891 );
8892 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
8893 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8894 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_SRVC_TYP_PKG.default_tax_attrs_wrapper returned errors');
8895 END IF;
8896 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
8897 RAISE FND_API.G_EXC_ERROR;
8898 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
8899 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8900 END IF;
8901 END IF;
8902 END IF; --duplicate check
8903 END IF; --l_do_defaulting
8904
8905
8906 /*------------------------------------------+
8907 |Call to insert the lines |
8908 +------------------------------------------*/
8909 ZX_SRVC_TYP_PKG.insupd_line_det_factors(p_event_class_rec => l_event_class_rec,
8910 x_return_status => l_return_status
8911 );
8912
8913 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
8914 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8915 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_SRVC_TYP_PKG.insupd_line_det_factors returned errors');
8916 END IF;
8917 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
8918 RAISE FND_API.G_EXC_ERROR;
8919 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
8920 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8921 END IF;
8922 END IF;
8923
8924 --Delete from the global structures so that there are no hanging/redundant
8925 --records sitting there
8926 ZX_GLOBAL_STRUCTURES_PKG.delete_trx_line_dist_tbl;
8927
8928 --Reset G_PUB_CALLING_SRVC at end of API
8929 ZX_API_PUB.G_PUB_CALLING_SRVC := null;
8930
8931 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8932 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
8933 END IF;
8934
8935 EXCEPTION
8936 WHEN FND_API.G_EXC_ERROR THEN
8937 ROLLBACK TO Insert_Line_Det_Factors_PVT;
8938 x_return_status := FND_API.G_RET_STS_ERROR ;
8939 /*---------------------------------------------------------+
8943 +---------------------------------------------------------*/
8940 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
8941 | in the message stack. If there is only one message in |
8942 | the stack it retrieves this message |
8944 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
8945 p_count => x_msg_count,
8946 p_data => x_msg_data
8947 );
8948
8949 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
8950 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
8951 END IF;
8952
8953 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
8954 ROLLBACK TO Insert_Line_Det_Factors_PVT;
8955 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
8956 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
8957 FND_MSG_PUB.Add;
8958 /*---------------------------------------------------------+
8959 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
8960 | in the message stack. If there is only one message in |
8961 | the stack it retrieves this message |
8962 +---------------------------------------------------------*/
8963 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
8964 p_count => x_msg_count,
8965 p_data => x_msg_data
8966 );
8967 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
8968 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
8969 END IF;
8970
8971 WHEN OTHERS THEN
8972 ROLLBACK TO Insert_Line_Det_Factors_PVT;
8973 IF (SQLCODE = 54) THEN
8974 x_return_status := FND_API.G_RET_STS_ERROR ;
8975 FND_MESSAGE.SET_NAME('ZX','ZX_RESOURCE_BUSY');
8976 ELSE
8977 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
8978 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
8979 END IF;
8980 FND_MSG_PUB.Add;
8981 /*---------------------------------------------------------+
8982 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
8983 | in the message stack. If there is only one message in |
8984 | the stack it retrieves this message |
8985 +---------------------------------------------------------*/
8986 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
8987 p_count => x_msg_count,
8988 p_data => x_msg_data
8989 );
8990
8991 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
8992 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
8993 END IF;
8994 END insert_line_det_factors;
8995
8996 /* ============================================================================*
8997 | PROCEDURE insert_line_det_factors : This overloaded procedure will be called|
8998 | by iProcurement to insert all the transaction lines with defaulted tax |
8999 | determining attributes into zx_lines_det_factors after complying with the |
9000 | validation process |
9001 * ============================================================================*/
9002 PROCEDURE insert_line_det_factors (
9003 p_api_version IN NUMBER,
9004 p_init_msg_list IN VARCHAR2,
9005 p_commit IN VARCHAR2,
9006 p_validation_level IN NUMBER,
9007 x_return_status OUT NOCOPY VARCHAR2,
9008 x_msg_count OUT NOCOPY NUMBER,
9009 x_msg_data OUT NOCOPY VARCHAR2
9010 ) IS
9011 l_api_name CONSTANT VARCHAR2(30) := 'INSERT_LINE_DET_FACTORS';
9012 l_api_version CONSTANT NUMBER := 1.0;
9013 l_return_status VARCHAR2(1);
9014 l_event_class_rec event_class_rec_type;
9015 l_line_det_rec ZX_LINES_DET_FACTORS%rowtype;
9016 l_line_exists NUMBER;
9017 l_record_exists BOOLEAN;
9018 l_init_msg_list VARCHAR2(1);
9019 l_upg_trx_info_rec ZX_ON_FLY_TRX_UPGRADE_PKG.zx_upg_trx_info_rec_type;
9020
9021 BEGIN
9022 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
9023 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'2()+');
9024 END IF;
9025
9026 /*--------------------------------------------------+
9027 | Standard start of API savepoint |
9028 +--------------------------------------------------*/
9029 SAVEPOINT Insert_Line_Det_Factors_PVT;
9030
9031 /*--------------------------------------------------+
9032 | Standard call to check for call compatibility |
9033 +--------------------------------------------------*/
9034 IF NOT FND_API.Compatible_API_Call(l_api_version,
9035 p_api_version,
9036 l_api_name,
9037 G_PKG_NAME
9038 ) THEN
9039 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9040 END IF;
9041
9042 /*--------------------------------------------------------------+
9043 | Initialize message list if p_init_msg_list is set to TRUE |
9044 +--------------------------------------------------------------*/
9045 IF p_init_msg_list is null THEN
9049 END IF;
9046 l_init_msg_list := FND_API.G_FALSE;
9047 ELSE
9048 l_init_msg_list := p_init_msg_list;
9050
9051 IF FND_API.to_Boolean(l_init_msg_list) THEN
9052 FND_MSG_PUB.initialize;
9053 END IF;
9054
9055 /*-----------------------------------------+
9056 | Initialize return status to SUCCESS |
9057 +-----------------------------------------*/
9058 x_return_status := FND_API.G_RET_STS_SUCCESS;
9059
9060 /*-----------------------------------------+
9061 | Populate Global Variable |
9062 +-----------------------------------------*/
9063 G_PUB_SRVC := l_api_name;
9064 G_DATA_TRANSFER_MODE := 'PLS';
9065 G_EXTERNAL_API_CALL := 'N';
9066
9067
9068 /*-----------------------------------------+
9069 |Populate the event class record structure|
9070 +-----------------------------------------*/
9071 l_event_class_rec.INTERNAL_ORGANIZATION_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.INTERNAL_ORGANIZATION_ID(1);
9072 l_event_class_rec.LEGAL_ENTITY_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LEGAL_ENTITY_ID(1);
9073 l_event_class_rec.LEDGER_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LEDGER_ID(1);
9074 l_event_class_rec.APPLICATION_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLICATION_ID(1);
9075 l_event_class_rec.ENTITY_CODE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ENTITY_CODE(1);
9076 l_event_class_rec.EVENT_CLASS_CODE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.EVENT_CLASS_CODE(1);
9077 l_event_class_rec.EVENT_TYPE_CODE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.EVENT_TYPE_CODE(1);
9078 l_event_class_rec.CTRL_TOTAL_HDR_TX_AMT := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CTRL_TOTAL_HDR_TX_AMT(1);
9079 l_event_class_rec.TRX_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_ID(1);
9080 l_event_class_rec.TRX_DATE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_DATE(1);
9081 l_event_class_rec.REL_DOC_DATE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RELATED_DOC_DATE(1);
9082 l_event_class_rec.PROVNL_TAX_DETERMINATION_DATE:= ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PROVNL_TAX_DETERMINATION_DATE(1);
9083 l_event_class_rec.TRX_CURRENCY_CODE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_CURRENCY_CODE(1);
9084 l_event_class_rec.PRECISION := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRECISION(1);
9085 l_event_class_rec.CURRENCY_CONVERSION_TYPE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CURRENCY_CONVERSION_TYPE(1);
9086 l_event_class_rec.CURRENCY_CONVERSION_RATE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CURRENCY_CONVERSION_RATE(1);
9087 l_event_class_rec.CURRENCY_CONVERSION_DATE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CURRENCY_CONVERSION_DATE(1);
9088 l_event_class_rec.ROUNDING_SHIP_TO_PARTY_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_SHIP_TO_PARTY_ID(1);
9089 l_event_class_rec.ROUNDING_SHIP_FROM_PARTY_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_SHIP_FROM_PARTY_ID(1);
9090 l_event_class_rec.ROUNDING_BILL_TO_PARTY_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_BILL_TO_PARTY_ID(1);
9091 l_event_class_rec.ROUNDING_BILL_FROM_PARTY_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_BILL_FROM_PARTY_ID(1);
9092 l_event_class_rec.RNDG_SHIP_TO_PARTY_SITE_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_SHIP_TO_PARTY_SITE_ID(1);
9093 l_event_class_rec.RNDG_SHIP_FROM_PARTY_SITE_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_SHIP_FROM_PARTY_SITE_ID(1);
9094 l_event_class_rec.RNDG_BILL_TO_PARTY_SITE_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_BILL_TO_PARTY_SITE_ID(1);
9095 l_event_class_rec.RNDG_BILL_FROM_PARTY_SITE_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_BILL_FROM_PARTY_SITE_ID(1);
9096
9097 --Check if need to upgrade
9098 l_record_exists := FALSE;
9099 IF l_event_class_rec.event_type_code = 'INV_UPDATE' THEN
9100 FOR l_line_det_rec in lock_line_det_factors_for_doc(l_event_class_rec)
9101 LOOP
9102 l_record_exists := TRUE;
9103 l_event_class_rec.event_id := l_line_det_rec.event_id;
9104 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.default_taxation_country(1) := l_line_det_rec.default_taxation_country;
9105 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.document_sub_type(1) := l_line_det_rec.document_sub_type;
9106 EXIT;
9107 END LOOP;
9108 IF NOT(l_record_exists) THEN
9109 --Bugfix 4486946 -Call on the fly upgrade if the transaction if not found
9110 l_upg_trx_info_rec.application_id := l_event_class_rec.application_id;
9111 l_upg_trx_info_rec.entity_code := l_event_class_rec.entity_code;
9112 l_upg_trx_info_rec.event_class_code := l_event_class_rec.event_class_code;
9113 l_upg_trx_info_rec.trx_id := l_event_class_rec.trx_id;
9114 ZX_ON_FLY_TRX_UPGRADE_PKG.upgrade_trx_on_fly(p_upg_trx_info_rec => l_upg_trx_info_rec,
9115 x_return_status => l_return_status
9116 );
9117 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9118 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9119 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_ON_FLY_TRX_UPGRADE_PKG.upgrade_trx_on_fly returned errors');
9120 END IF;
9121 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
9122 RAISE FND_API.G_EXC_ERROR;
9123 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
9127 FOR l_line_det_rec in lock_line_det_factors_for_doc(l_event_class_rec)
9124 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9125 END IF;
9126 END IF;
9128 LOOP
9129 l_record_exists := TRUE;
9130 l_event_class_rec.event_id := l_line_det_rec.event_id;
9131 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.default_taxation_country(1) := l_line_det_rec.default_taxation_country;
9132 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.document_sub_type(1) := l_line_det_rec.document_sub_type;
9133 EXIT;
9134 END LOOP;
9135 END IF; --record does not exist so upgrade
9136 --Bugfix 4486946 - on-the-fly upgrade end
9137 END IF; --event_type_code
9138
9139 /*------------------------------------------------------------------------------------------+
9140 | Set the event id for the whole document- Since this API is called for each transaction |
9141 | line, the event id needs to be generated from the sequence only for the first transaction|
9142 | line. For other lines, we need to retrieve the event id from the table. |
9143 +-----------------------------------------------------------------------------------------*/
9144 IF NOT(l_record_exists) THEN
9145 SELECT ZX_LINES_DET_FACTORS_S.nextval
9146 INTO l_event_class_rec.event_id
9147 FROM dual;
9148 END IF;
9149
9150 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
9151 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,
9152 'application_id: '||to_char(l_event_class_rec.application_id)||
9153 ', entity_code: '||l_event_class_rec.entity_code||
9154 ', event_class_code: '||l_event_class_rec.event_class_code||
9155 ', event_type_code: '||l_event_class_rec.event_type_code||
9156 ', trx_id: '||to_char(l_event_class_rec.trx_id)||
9157 ', internal_organization_id: '||to_char(l_event_class_rec.internal_organization_id)||
9158 ', ledger_id: '||to_char(l_event_class_rec.ledger_id)||
9159 ', legal_entity_id: '||to_char(l_event_class_rec.legal_entity_id)||
9160 ', trx_date: '||to_char(l_event_class_rec.trx_date)||
9161 ', related_document_date: '||to_char(l_event_class_rec.rel_doc_date)||
9162 ', provnl_tax_determination_date: '||to_char(l_event_class_rec.provnl_tax_determination_date)||
9163 ', trx_currency_code: '||l_event_class_rec.trx_currency_code||
9164 ', currency_conversion_type: '||l_event_class_rec.currency_conversion_type||
9165 ', currency_conversion_rate: '||to_char(l_event_class_rec.currency_conversion_rate)||
9166 ', currency_conversion_date: '||to_char(l_event_class_rec.currency_conversion_date)||
9167 ', rounding_ship_to_party_id: '||to_char(l_event_class_rec.rounding_ship_to_party_id)||
9168 ', rounding_ship_from_party_id: '||to_char(l_event_class_rec.rounding_ship_from_party_id)||
9169 ', rounding_bill_to_party_id: '||to_char(l_event_class_rec.rounding_bill_to_party_id)||
9170 ', rounding_bill_from_party_id: '||to_char(l_event_class_rec.rounding_bill_from_party_id)||
9171 ', rndg_ship_to_party_site_id: '||to_char(l_event_class_rec.rndg_ship_to_party_site_id)||
9172 ', rndg_ship_from_party_site_id: '||to_char(l_event_class_rec.rndg_ship_from_party_site_id)||
9173 ', rndg_bill_to_party_site_id: '||to_char(l_event_class_rec.rndg_bill_to_party_site_id)||
9174 ', rndg_bill_from_party_site_id: '||to_char(l_event_class_rec.rndg_bill_from_party_site_id)
9175 );
9176 END IF;
9177
9178 /*------------------------------------------------------+
9179 | Validate and Initializate parameters for Inserting |
9180 | into line_det_factors |
9181 +------------------------------------------------------*/
9182 ZX_VALID_INIT_PARAMS_PKG.insupd_line_det_factors(p_event_class_rec =>l_event_class_rec,
9183 p_trx_line_index =>1,
9184 x_return_status =>l_return_status
9185 );
9186
9187 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9188 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9189 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_VALID_INIT_PARAMS_PKG.insupd_line_det_factors returned errors');
9190 END IF;
9191 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
9192 RAISE FND_API.G_EXC_ERROR;
9193 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
9194 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9195 END IF;
9196 END IF;
9197
9198 /*------------------------------------------+
9199 |Call to insert the lines |
9200 +------------------------------------------*/
9201 ZX_SRVC_TYP_PKG.insupd_line_det_factors(p_event_class_rec => l_event_class_rec,
9202 x_return_status => l_return_status
9203 );
9204
9205 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9206 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9207 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_SRVC_TYP_PKG.insupd_line_det_factors returned errors');
9208 END IF;
9209 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
9210 RAISE FND_API.G_EXC_ERROR;
9211 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
9212 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9213 END IF;
9217 --records sitting there
9214 END IF;
9215
9216 --Delete from the global structures so that there are no hanging/redundant
9218 ZX_GLOBAL_STRUCTURES_PKG.delete_trx_line_dist_tbl;
9219
9220 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
9221 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
9222 END IF;
9223
9224 EXCEPTION
9225 WHEN FND_API.G_EXC_ERROR THEN
9226 ROLLBACK TO Insert_Line_Det_Factors_PVT;
9227 x_return_status := FND_API.G_RET_STS_ERROR ;
9228 /*---------------------------------------------------------+
9229 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
9230 | in the message stack. If there is only one message in |
9231 | the stack it retrieves this message |
9232 +---------------------------------------------------------*/
9233 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
9234 p_count => x_msg_count,
9235 p_data => x_msg_data
9236 );
9237
9238 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
9239 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
9240 END IF;
9241
9242 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
9243 ROLLBACK TO Insert_Line_Det_Factors_PVT;
9244 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
9245 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
9246 FND_MSG_PUB.Add;
9247 /*---------------------------------------------------------+
9248 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
9249 | in the message stack. If there is only one message in |
9250 | the stack it retrieves this message |
9251 +---------------------------------------------------------*/
9252 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
9253 p_count => x_msg_count,
9254 p_data => x_msg_data
9255 );
9256 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
9257 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
9258 END IF;
9259
9260 WHEN OTHERS THEN
9261 /*-------------------------------------------------------+
9262 | Handle application errors that result from trapable |
9263 | error conditions. The error messages have already |
9264 | been put on the error stack. |
9265 +-------------------------------------------------------*/
9266 ROLLBACK TO Insert_Line_Det_Factors_PVT;
9267 IF (SQLCODE = 54) THEN
9268 x_return_status := FND_API.G_RET_STS_ERROR ;
9269 FND_MESSAGE.SET_NAME('ZX','ZX_RESOURCE_BUSY');
9270 ELSE
9271 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
9272 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
9273 END IF;
9274 FND_MSG_PUB.Add;
9275 /*---------------------------------------------------------+
9276 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
9277 | in the message stack. If there is only one message in |
9278 | the stack it retrieves this message |
9279 +---------------------------------------------------------*/
9280 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
9281 p_count => x_msg_count,
9282 p_data => x_msg_data
9283 );
9284
9285 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
9286 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
9287 END IF;
9288 END insert_line_det_factors;
9289
9290
9291 /* ========================================================================*
9292 | PROCEDURE update_det_factors_hdr: This procedure should be called by |
9293 | products when updating any of the header attributes on the transaction |
9294 | so that the tax repository is also in sync with the header level updates|
9295 | |
9296 | NOTES: Products will pass intended nullable values as null while they |
9297 | will pass G_MISS_NUM/G_MISS_DATE/G_MISS_CHAR for the attributes where |
9298 | intention is to retain the original values as stored in tax repository |
9299 * =======================================================================*/
9300
9301 PROCEDURE update_det_factors_hdr
9302 (
9303 p_api_version IN NUMBER,
9304 p_init_msg_list IN VARCHAR2,
9305 p_commit IN VARCHAR2,
9306 p_validation_level IN NUMBER,
9307 x_return_status OUT NOCOPY VARCHAR2,
9308 x_msg_count OUT NOCOPY NUMBER,
9309 x_msg_data OUT NOCOPY VARCHAR2,
9310 p_hdr_det_factors_rec IN header_det_factors_rec_type
9311 )IS
9312 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_DET_FACTORS_HDR';
9313 l_api_version CONSTANT NUMBER := 1.0;
9314 l_return_status VARCHAR2(1);
9315 l_event_class_rec event_class_rec_type;
9316 l_init_msg_list VARCHAR2(1);
9317 l_rdng_ship_to_ptp_id NUMBER;
9318 l_rdng_bill_to_ptp_id NUMBER;
9319 l_rdng_ship_from_ptp_id NUMBER;
9323 l_rdng_ship_to_ptp_st_id NUMBER;
9320 l_rdng_bill_from_ptp_id NUMBER;
9321 l_rdng_bill_to_ptp_st_id NUMBER;
9322 l_rdng_bill_from_ptp_st_id NUMBER;
9324 l_rdng_ship_from_ptp_st_id NUMBER;
9325 l_ship_to_ptp_id NUMBER;
9326 l_ship_from_ptp_id NUMBER;
9327 l_bill_to_ptp_id NUMBER;
9328 l_bill_from_ptp_id NUMBER;
9329 l_ship_to_ptp_site_id NUMBER;
9330 l_ship_from_ptp_site_id NUMBER;
9331 l_bill_to_ptp_site_id NUMBER;
9332 l_bill_from_ptp_site_id NUMBER;
9333 l_poa_ptp_id NUMBER;
9334 l_poo_ptp_id NUMBER;
9335 l_poo_ptp_site_id NUMBER;
9336 l_poa_ptp_site_id NUMBER;
9337 l_hq_estb_ptp_id NUMBER;
9338 l_party_type VARCHAR2(30);
9339 l_transaction_rec transaction_rec_type;
9340 l_upg_trx_info_rec ZX_ON_FLY_TRX_UPGRADE_PKG.zx_upg_trx_info_rec_type;
9341 l_incomplete_scenario number;
9342
9343 BEGIN
9344 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
9345 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
9346 END IF;
9347
9348 /*--------------------------------------------------+
9349 | Standard start of API savepoint |
9350 +--------------------------------------------------*/
9351 SAVEPOINT Update_Det_Factors_Hdr_PVT;
9352
9353 /*--------------------------------------------------+
9354 | Standard call to check for call compatibility |
9355 +--------------------------------------------------*/
9356 IF NOT FND_API.Compatible_API_Call(l_api_version,
9357 p_api_version,
9358 l_api_name,
9359 G_PKG_NAME
9360 ) THEN
9361 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9362 END IF;
9363
9364 /*--------------------------------------------------------------+
9365 | Initialize message list if p_init_msg_list is set to TRUE |
9366 +--------------------------------------------------------------*/
9367 IF p_init_msg_list is null THEN
9368 l_init_msg_list := FND_API.G_FALSE;
9369 ELSE
9370 l_init_msg_list := p_init_msg_list;
9371 END IF;
9372
9373 IF FND_API.to_Boolean(l_init_msg_list) THEN
9374 FND_MSG_PUB.initialize;
9375 END IF;
9376
9377 /*-----------------------------------------+
9378 | Initialize return status to SUCCESS |
9379 +-----------------------------------------*/
9380 x_return_status := FND_API.G_RET_STS_SUCCESS;
9381
9382 /*-----------------------------------------+
9383 | Populate Global Variable |
9384 +-----------------------------------------*/
9385 G_PUB_SRVC := 'UPDATE_DET_FACTORS_HDR';
9386 G_DATA_TRANSFER_MODE := 'PLS';
9387 G_EXTERNAL_API_CALL := 'N';
9388 /*
9389 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9390 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Passed in data: APPLICATION_ID: '||to_char(p_hdr_det_factors_rec.application_id)||
9391 ', ENTITY_CODE: '||p_hdr_det_factors_rec.entity_code||
9392 ', EVENT_CLASS_CODE: '||p_hdr_det_factors_rec.event_class_code||
9393 ', EVENT_TYPE_CODE: '||p_hdr_det_factors_rec.event_type_code||
9394 ', TRX_ID: '||to_char(p_hdr_det_factors_rec.trx_id)||
9395 ', INTERNAL_ORGANIZATION_ID: '|| to_char(p_hdr_det_factors_rec.internal_organization_id)||
9396 ', INTERNAL_ORG_LOCATION_ID : '|| to_char(p_hdr_det_factors_rec.internal_org_location_id)||
9397 ', LEGAL_ENTITY_ID :'||to_char(p_hdr_det_factors_rec.legal_entity_id)||
9398 ', LEDGER_ID :' ||to_char(p_hdr_det_factors_rec.ledger_id)||
9399 ', TRX_DATE :' ||to_char(p_hdr_det_factors_rec.trx_date)||
9400 ', TRX_DOC_REVISION :' ||p_hdr_det_factors_rec.trx_doc_revision||
9401 ', TRX_CURRENCY_CODE :' ||p_hdr_det_factors_rec.trx_currency_code ||
9402 ', CURRENCY_CONVERSION_TYPE :' ||p_hdr_det_factors_rec.currency_conversion_type ||
9403 ', CURRENCY_CONVERSION_RATE :' ||to_char(p_hdr_det_factors_rec.currency_conversion_rate) ||
9404 ', CURRENCY_CONVERSION_DATE :' ||to_char(p_hdr_det_factors_rec.currency_conversion_date) ||
9405 ', MINIMUM_ACCOUNTABLE_UNIT: ' ||to_char(p_hdr_det_factors_rec.minimum_accountable_unit)||
9406 ', PRECISION:' ||to_char(p_hdr_det_factors_rec.precision) ||
9407 ', ROUNDING_SHIP_TO_PARTY_ID : '||to_char(p_hdr_det_factors_rec.rounding_ship_to_party_id)||
9408 ', ROUNDING_SHIP_FROM_PARTY_ID: '||to_char(p_hdr_det_factors_rec.rounding_ship_from_party_id)||
9409 ', ROUNDING_BILL_TO_PARTY_ID: '||to_char(p_hdr_det_factors_rec.rounding_bill_to_party_id)||
9410 ', ROUNDING_BILL_FROM_PARTY_ID :'||to_char(p_hdr_det_factors_rec.rounding_bill_from_party_id)||
9411 ', RNDG_SHIP_TO_PARTY_SITE_ID :'||to_char(p_hdr_det_factors_rec.rndg_ship_to_party_site_id)||
9412 ', RNDG_SHIP_FROM_PARTY_SITE_ID :'||to_char(p_hdr_det_factors_rec.rndg_ship_from_party_site_id)||
9413 ', RNDG_BILL_TO_PARTY_SITE_ID :'||to_char(p_hdr_det_factors_rec.rndg_bill_to_party_site_id)||
9414 ', RNDG_BILL_FROM_PARTY_SITE_ID :'||to_char(p_hdr_det_factors_rec.rndg_bill_from_party_site_id)||
9415 ', QUOTE_FLAG :'||p_hdr_det_factors_rec.quote_flag||
9416 ', ESTABLISHMENT_ID :'||to_char(p_hdr_det_factors_rec.establishment_id)||
9420 ', RELATED_DOC_EVENT_CLASS_CODE :'||p_hdr_det_factors_rec.related_doc_event_class_code||
9417 ', RECEIVABLES_TRX_TYPE_ID :'||to_char(p_hdr_det_factors_rec.receivables_trx_type_id)||
9418 ', RELATED_DOC_APPLICATION_ID :'||to_char(p_hdr_det_factors_rec.related_doc_application_id)||
9419 ', RELATED_DOC_ENTITY_CODE :'||p_hdr_det_factors_rec.related_doc_entity_code||
9421 ', RELATED_DOC_TRX_ID :'||to_char(p_hdr_det_factors_rec.related_doc_trx_id)||
9422 ', RELATED_DOC_NUMBER :'||to_char(p_hdr_det_factors_rec.related_doc_number)||
9423 ', RELATED_DOC_DATE :'||to_char(p_hdr_det_factors_rec.related_doc_date)||
9424 ', DEFAULT_TAXATION_COUNTRY :'||p_hdr_det_factors_rec.default_taxation_country||
9425 ', CTRL_TOTAL_HDR_TX_AMT :'||to_char(p_hdr_det_factors_rec.ctrl_total_hdr_tx_amt)||
9426 ', TRX_NUMBER :'||p_hdr_det_factors_rec.trx_number||
9427 ', TRX_DESCRIPTION :'||p_hdr_det_factors_rec.trx_description||
9428 ', TRX_COMMUNICATED_DATE :'||to_char(p_hdr_det_factors_rec.trx_communicated_date)||
9429 ', BATCH_SOURCE_ID :'||to_char(p_hdr_det_factors_rec.batch_source_id)||
9430 ', BATCH_SOURCE_NAME :'||p_hdr_det_factors_rec.batch_source_name||
9431 ', DOC_SEQ_ID :'||to_char(p_hdr_det_factors_rec.doc_seq_id)||
9432 ', DOC_SEQ_NAME :'||p_hdr_det_factors_rec.doc_seq_id||
9433 ', DOC_SEQ_VALUE :'||p_hdr_det_factors_rec.doc_seq_value||
9434 ', TRX_DUE_DATE :'||to_char(p_hdr_det_factors_rec.trx_due_date)||
9435 ', TRX_TYPE_DESCRIPTION :'||p_hdr_det_factors_rec.trx_type_description
9436 );
9437 END IF;
9438 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9439 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
9440 ', DOCUMENT_SUB_TYPE :'||p_hdr_det_factors_rec.document_sub_type||
9441 ', SUPPLIER_TAX_INVOICE_NUMBER :'||p_hdr_det_factors_rec.supplier_tax_invoice_number||
9442 ', SUPPLIER_TAX_INVOICE_DATE :'||to_char(p_hdr_det_factors_rec.supplier_tax_invoice_date)||
9443 ', SUPPLIER_EXCHANGE_RATE :'||to_char(p_hdr_det_factors_rec.supplier_exchange_rate)||
9444 ', TAX_INVOICE_DATE :'||to_char(p_hdr_det_factors_rec.tax_invoice_date)||
9445 ', TAX_INVOICE_NUMBER :'||p_hdr_det_factors_rec.tax_invoice_date||
9446 ', FIRST_PTY_ORG_ID :'||to_char(p_hdr_det_factors_rec.first_pty_org_id)||
9447 ', TAX_EVENT_CLASS_CODE :'||p_hdr_det_factors_rec.tax_event_class_code||
9448 ', TAX_EVENT_TYPE_CODE :'||p_hdr_det_factors_rec.tax_event_type_code||
9449 ', DOC_EVENT_STATUS :'||p_hdr_det_factors_rec.doc_event_status||
9450 ', PORT_OF_ENTRY_CODE :'||p_hdr_det_factors_rec.port_of_entry_code||
9451 ', TAX_REPORTING_FLAG :'||p_hdr_det_factors_rec.tax_reporting_flag||
9452 ', PROVNL_TAX_DETERMINATION_DATE :'||to_char(p_hdr_det_factors_rec.provnl_tax_determination_date)||
9453 ', SHIP_THIRD_PTY_ACCT_ID :'||to_char(p_hdr_det_factors_rec.ship_third_pty_acct_id)||
9454 ', BILL_THIRD_PTY_ACCT_ID :'||to_char(p_hdr_det_factors_rec.bill_third_pty_acct_id)||
9455 ', SHIP_THIRD_PTY_ACCT_SITE_ID :'||to_char(p_hdr_det_factors_rec.ship_third_pty_acct_site_id)||
9456 ', BILL_THIRD_PTY_ACCT_SITE_ID :'||to_char(p_hdr_det_factors_rec.bill_third_pty_acct_site_id)||
9457 ', SHIP_TO_CUST_ACCT_SITE_USE_ID :'||to_char(p_hdr_det_factors_rec.ship_to_cust_acct_site_use_id)||
9458 ', BILL_TO_CUST_ACCT_SITE_USE_ID :'||to_char(p_hdr_det_factors_rec.bill_to_cust_acct_site_use_id)||
9459 ', TRX_BATCH_ID :'||to_char(p_hdr_det_factors_rec.trx_batch_id)||
9460 ', APPLIED_TO_TRX_NUMBER :'||p_hdr_det_factors_rec.applied_to_trx_number||
9461 ', APPLICATION_DOC_STATUS :'||p_hdr_det_factors_rec.application_doc_status||
9462 ', SHIP_TO_PARTY_ID :'||to_char(p_hdr_det_factors_rec.ship_to_party_id)||
9463 ', SHIP_FROM_PARTY_ID :'||to_char(p_hdr_det_factors_rec.ship_from_party_id)||
9464 ', POA_PARTY_ID :'||to_char(p_hdr_det_factors_rec.poa_party_id)||
9465 ', POO_PARTY_ID :'||to_char(p_hdr_det_factors_rec.poo_party_id)||
9466 ', BILL_TO_PARTY_ID :'||to_char(p_hdr_det_factors_rec.bill_to_party_id)||
9467 ', BILL_FROM_PARTY_ID :'||to_char(p_hdr_det_factors_rec.bill_from_party_id)||
9468 ', MERCHANT_PARTY_ID :'||to_char(p_hdr_det_factors_rec.merchant_party_id)||
9469 ', SHIP_TO_PARTY_SITE_ID :'||to_char(p_hdr_det_factors_rec.ship_to_party_site_id)||
9470 ', SHIP_FROM_PARTY_SITE_ID :'||to_char(p_hdr_det_factors_rec.ship_from_party_site_id)||
9471 ', POA_PARTY_SITE_ID :'||to_char(p_hdr_det_factors_rec.poa_party_site_id)||
9472 ', POO_PARTY_SITE_ID :'||to_char(p_hdr_det_factors_rec.poo_party_site_id)||
9473 ', BILL_TO_PARTY_SITE_ID :'||to_char(p_hdr_det_factors_rec.bill_to_party_site_id)||
9474 ', BILL_FROM_PARTY_SITE_ID :'||to_char(p_hdr_det_factors_rec.bill_from_party_site_id)||
9475 ', SHIP_TO_LOCATION_ID :'||to_char(p_hdr_det_factors_rec.ship_to_location_id)||
9476 ', SHIP_FROM_LOCATION_ID :'||to_char(p_hdr_det_factors_rec.ship_from_location_id)||
9477 ', POA_LOCATION_ID :'||to_char(p_hdr_det_factors_rec.poa_location_id)||
9478 ', POO_LOCATION_ID :'||to_char(p_hdr_det_factors_rec.poo_location_id)||
9479 ', BILL_TO_LOCATION_ID :'||to_char(p_hdr_det_factors_rec.bill_to_location_id)||
9480 ', BILL_FROM_LOCATION_ID :'||to_char(p_hdr_det_factors_rec.bill_from_location_id)||
9481 ', PAYING_PARTY_ID :'||to_char(p_hdr_det_factors_rec.paying_party_id)||
9482 ', OWN_HQ_PARTY_ID :'||to_char(p_hdr_det_factors_rec.own_hq_party_id)||
9486 END IF;
9483 ', TRADING_HQ_PARTY_ID :'||to_char(p_hdr_det_factors_rec.trading_hq_party_id)||
9484 ', POI_PARTY_ID :'||to_char(p_hdr_det_factors_rec.poi_party_id)
9485 );
9487 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9488 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
9489 ', POD_PARTY_ID :'||to_char(p_hdr_det_factors_rec.pod_party_id)||
9490 ', TITLE_TRANSFER_PARTY_ID :'||to_char(p_hdr_det_factors_rec.title_transfer_party_id)||
9491 ', PAYING_PARTY_SITE_ID :'||to_char(p_hdr_det_factors_rec.paying_party_site_id)||
9492 ', OWN_HQ_PARTY_SITE_ID :'||to_char(p_hdr_det_factors_rec.own_hq_party_site_id)||
9493 ', TRADING_HQ_PARTY_SITE_ID :'||to_char(p_hdr_det_factors_rec.trading_hq_party_site_id)||
9494 ', POI_PARTY_SITE_ID :'||to_char(p_hdr_det_factors_rec.poi_party_site_id)||
9495 ', POD_PARTY_SITE_ID :'||to_char(p_hdr_det_factors_rec.pod_party_site_id)||
9496 ', TITLE_TRANSFER_PARTY_SITE_ID :'||to_char(p_hdr_det_factors_rec.title_transfer_party_site_id)||
9497 ', PAYING_LOCATION_ID :'||to_char(p_hdr_det_factors_rec.paying_location_id)||
9498 ', OWN_HQ_LOCATION_ID :'||to_char(p_hdr_det_factors_rec.own_hq_location_id)||
9499 ', TRADING_HQ_LOCATION_ID :'||to_char(p_hdr_det_factors_rec.trading_hq_location_id)||
9500 ', POC_LOCATION_ID :'||to_char(p_hdr_det_factors_rec.poc_location_id)||
9501 ', POI_LOCATION_ID :'||to_char(p_hdr_det_factors_rec.poi_location_id)||
9502 ', POD_LOCATION_ID :'||to_char(p_hdr_det_factors_rec.pod_location_id)||
9503 ', TITLE_TRANSFER_LOCATION_ID :'||to_char(p_hdr_det_factors_rec.title_transfer_location_id)
9504 );
9505 END IF;
9506 */
9507 /*------------------------------------------------------+
9508 | Populate the event class record structure |
9509 +------------------------------------------------------*/
9510 l_event_class_rec.application_id := p_hdr_det_factors_rec.application_id;
9511 l_event_class_rec.entity_code := p_hdr_det_factors_rec.entity_code;
9512 l_event_class_rec.event_class_code := p_hdr_det_factors_rec.event_class_code;
9513 l_event_class_rec.event_type_code := p_hdr_det_factors_rec.event_type_code;
9514 l_event_class_rec.trx_id := p_hdr_det_factors_rec.trx_id;
9515 l_event_class_rec.trx_date := p_hdr_det_factors_rec.trx_date;
9516 l_event_class_rec.internal_organization_id := p_hdr_det_factors_rec.internal_organization_id;
9517 l_event_class_rec.legal_entity_id := p_hdr_det_factors_rec.legal_entity_id;
9518 l_event_class_rec.rel_doc_date := p_hdr_det_factors_rec.related_doc_date;
9519 l_event_class_rec.trx_currency_code := p_hdr_det_factors_rec.trx_currency_code;
9520 l_event_class_rec.precision := p_hdr_det_factors_rec.precision;
9521 l_event_class_rec.currency_conversion_type := p_hdr_det_factors_rec.currency_conversion_type;
9522 l_event_class_rec.currency_conversion_rate := p_hdr_det_factors_rec.currency_conversion_rate;
9523 l_event_class_rec.currency_conversion_date := p_hdr_det_factors_rec.currency_conversion_date;
9524 l_event_class_rec.rounding_ship_to_party_id := p_hdr_det_factors_rec.rounding_ship_to_party_id;
9525 l_event_class_rec.rounding_ship_from_party_id := p_hdr_det_factors_rec.rounding_ship_from_party_id;
9526 l_event_class_rec.rounding_bill_to_party_id := p_hdr_det_factors_rec.rounding_bill_to_party_id;
9527 l_event_class_rec.rounding_bill_from_party_id := p_hdr_det_factors_rec.rounding_bill_from_party_id;
9528 l_event_class_rec.rndg_ship_to_party_site_id := p_hdr_det_factors_rec.rndg_ship_to_party_site_id;
9529 l_event_class_rec.rndg_ship_from_party_site_id := p_hdr_det_factors_rec.rndg_ship_from_party_site_id;
9530 l_event_class_rec.rndg_bill_to_party_site_id := p_hdr_det_factors_rec.rndg_bill_to_party_site_id;
9531 l_event_class_rec.rndg_bill_from_party_site_id := p_hdr_det_factors_rec.rndg_bill_from_party_site_id;
9532
9533 OPEN lock_line_det_factors_for_doc(l_event_class_rec);
9534 CLOSE lock_line_det_factors_for_doc;
9535
9536 /*------------------------------------------------------+
9537 | Bug 5371288: Check if AR has called this API |
9538 | to incomplete the transaction |
9539 +------------------------------------------------------*/
9540
9541 IF p_hdr_det_factors_rec.application_id = 222 THEN
9542 l_incomplete_scenario := 0;
9543 BEGIN
9544 SELECT 1
9545 INTO l_incomplete_scenario
9546 FROM zx_lines_det_factors
9547 WHERE event_class_code = p_hdr_det_factors_rec.event_class_code
9548 AND application_id = p_hdr_det_factors_rec.application_id
9549 AND entity_code = p_hdr_det_factors_rec.entity_code
9550 AND trx_id = p_hdr_det_factors_rec.trx_id
9551 AND tax_event_type_code = 'VALIDATE_FOR_TAX'
9552 AND rownum = 1;
9553 EXCEPTION
9554 WHEN OTHERS THEN
9555 l_incomplete_scenario := 0;
9556 END;
9557
9558 IF l_incomplete_scenario = 1 THEN
9559 BEGIN
9560 SELECT zxevnttyp.tax_event_type_code,
9561 zxevnttyp.status_code
9562 INTO l_event_class_rec.tax_event_type_code,
9563 l_event_class_rec.doc_status_code
9564 FROM ZX_EVNT_TYP_MAPPINGS zxevntmap,
9565 ZX_EVNT_CLS_TYPS zxevnttyp
9569 AND zxevntmap.event_type_code = p_hdr_det_factors_rec.event_type_code
9566 WHERE zxevntmap.event_class_code = p_hdr_det_factors_rec.event_class_code
9567 AND zxevntmap.application_id = p_hdr_det_factors_rec.application_id
9568 AND zxevntmap.entity_code = p_hdr_det_factors_rec.entity_code
9570 AND zxevnttyp.tax_event_type_code = zxevntmap.tax_event_type_code
9571 AND zxevnttyp.tax_event_class_code = zxevntmap.tax_event_class_code
9572 AND zxevntmap.enabled_flag = 'Y';
9573 EXCEPTION
9574 WHEN NO_DATA_FOUND THEN
9575 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
9576 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9577 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
9578 ' Incorrect event information passed in for event type :' ||p_hdr_det_factors_rec.event_type_code ||' Please Check!');
9579 END IF;
9580 END;
9581 BEGIN
9582 UPDATE ZX_LINES_DET_FACTORS
9583 SET TAX_EVENT_TYPE_CODE = l_event_class_rec.tax_event_type_code,
9584 DOC_EVENT_STATUS = l_event_class_rec.doc_status_code
9585 WHERE APPLICATION_ID = p_hdr_det_factors_rec.APPLICATION_ID
9586 AND ENTITY_CODE = p_hdr_det_factors_rec.ENTITY_CODE
9587 AND EVENT_CLASS_CODE = p_hdr_det_factors_rec.EVENT_CLASS_CODE
9588 AND TRX_ID = p_hdr_det_factors_rec.TRX_ID;
9589 END;
9590 RETURN;
9591 END IF;
9592 END IF;
9593
9594 /*------------------------------------------------------+
9595 | Validate and Initializate parameters for Inserting |
9596 | into line_det_factors |
9597 +------------------------------------------------------*/
9598 ZX_VALID_INIT_PARAMS_PKG.insupd_line_det_factors(p_event_class_rec =>l_event_class_rec,
9599 p_trx_line_index => NULL,
9600 x_return_status =>l_return_status
9601 );
9602
9603 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9604 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9605 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_VALID_INIT_PARAMS_PKG.insupd_line_det_factors returned errors');
9606 END IF;
9607 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
9608 RAISE FND_API.G_EXC_ERROR;
9609 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
9610 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9611 END IF;
9612 END IF;
9613
9614 /*-----------------------------------------+
9615 |Derive the PTPs |
9616 +-----------------------------------------*/
9617 IF p_hdr_det_factors_rec.rounding_ship_to_party_id is NOT NULL AND
9618 p_hdr_det_factors_rec.rounding_ship_to_party_id <> FND_API.G_MISS_NUM THEN
9619 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9620 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' Call TCM API to get ptp for rounding_ship_to_party_id: '||
9621 to_char(p_hdr_det_factors_rec.rounding_ship_to_party_id));
9622 END IF;
9623 ZX_TCM_PTP_PKG.get_ptp(p_hdr_det_factors_rec.rounding_ship_to_party_id
9624 ,ZX_VALID_INIT_PARAMS_PKG.source_rec.ship_to_party_type
9625 ,p_hdr_det_factors_rec.legal_entity_id
9626 ,p_hdr_det_factors_rec.ship_to_location_id
9627 ,l_rdng_ship_to_ptp_id
9628 ,l_return_status
9629 );
9630
9631 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9632 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9633 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
9634 ':ZX_TCM_PTP_PKG.get_ptp for rounding_ship_to_party_id returned errors');
9635 END IF;
9636 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
9637 RAISE FND_API.G_EXC_ERROR;
9638 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
9639 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9640 END IF;
9641 END IF;
9642 END IF;
9643
9644 IF p_hdr_det_factors_rec.rounding_ship_from_party_id is NOT NULL AND
9645 p_hdr_det_factors_rec.rounding_ship_from_party_id <> FND_API.G_MISS_NUM THEN
9646 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9647 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' Call TCM API to get ptp for rounding_ship_from_party_id: '||
9648 to_char(p_hdr_det_factors_rec.rounding_ship_from_party_id));
9649 END IF;
9650 ZX_TCM_PTP_PKG.get_ptp(p_hdr_det_factors_rec.rounding_ship_from_party_id
9651 ,ZX_VALID_INIT_PARAMS_PKG.source_rec.ship_from_party_type
9652 ,p_hdr_det_factors_rec.legal_entity_id
9653 ,p_hdr_det_factors_rec.ship_from_location_id
9654 ,l_rdng_ship_from_ptp_id
9655 ,l_return_status
9656 );
9657
9658 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9662 END IF;
9659 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9660 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
9661 ':ZX_TCM_PTP_PKG.get_ptp for rounding_ship_from_party_id returned errors');
9663 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
9664 RAISE FND_API.G_EXC_ERROR;
9665 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
9666 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9667 END IF;
9668 END IF;
9669 END IF;
9670
9671 IF p_hdr_det_factors_rec.rndg_ship_to_party_site_id is NOT NULL AND
9672 p_hdr_det_factors_rec.rndg_ship_to_party_site_id <> FND_API.G_MISS_NUM THEN
9673 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9674 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' Call TCM API to get ptp for rndg_ship_to_party_site_id: '||
9675 to_char(p_hdr_det_factors_rec.rndg_ship_to_party_site_id));
9676 END IF;
9677 ZX_TCM_PTP_PKG.get_ptp( p_hdr_det_factors_rec.rndg_ship_to_party_site_id
9678 ,ZX_VALID_INIT_PARAMS_PKG.source_rec.ship_to_pty_site_type
9679 ,p_hdr_det_factors_rec.legal_entity_id
9680 ,null
9681 ,l_rdng_ship_to_ptp_st_id
9682 ,l_return_status
9683 );
9684
9685 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9686 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9687 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
9688 ':ZX_TCM_PTP_PKG.get_ptp for rndg_ship_to_party_site_id returned errors');
9689 END IF;
9690 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
9691 RAISE FND_API.G_EXC_ERROR;
9692 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
9693 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9694 END IF;
9695 END IF;
9696 END IF;
9697
9698 IF p_hdr_det_factors_rec.rndg_ship_from_party_site_id is NOT NULL AND
9699 p_hdr_det_factors_rec.rndg_ship_from_party_site_id <> FND_API.G_MISS_NUM THEN
9700 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9701 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' Call TCM API to get ptp for rndg_ship_from_party_site_id: '||
9702 to_char(p_hdr_det_factors_rec.rndg_ship_from_party_site_id));
9703 END IF;
9704 ZX_TCM_PTP_PKG.get_ptp( p_hdr_det_factors_rec.rndg_ship_from_party_site_id
9705 ,ZX_VALID_INIT_PARAMS_PKG.source_rec.ship_from_pty_site_type
9706 ,p_hdr_det_factors_rec.legal_entity_id
9707 ,null
9708 ,l_rdng_ship_from_ptp_st_id
9709 ,l_return_status
9710 );
9711
9712 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9713 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9714 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
9715 ':ZX_TCM_PTP_PKG.get_ptp for rndg_ship_from_party_site_id returned errors');
9716 END IF;
9717 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
9718 RAISE FND_API.G_EXC_ERROR;
9719 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
9720 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9721 END IF;
9722 END IF;
9723 END IF;
9724
9725 IF p_hdr_det_factors_rec.rounding_bill_to_party_id is NOT NULL AND
9726 p_hdr_det_factors_rec.rounding_bill_to_party_id <> FND_API.G_MISS_NUM THEN
9727 IF (p_hdr_det_factors_rec.rounding_bill_to_party_id <> p_hdr_det_factors_rec.rounding_ship_to_party_id)
9728 OR (ZX_VALID_INIT_PARAMS_PKG.source_rec.ship_to_party_type <> ZX_VALID_INIT_PARAMS_PKG.source_rec.bill_to_party_type)
9729 OR p_hdr_det_factors_rec.rounding_ship_to_party_id is null THEN
9730 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9731 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' Call TCM API to get ptp for rounding_bill_to_party_id: '||
9732 to_char(p_hdr_det_factors_rec.rounding_bill_to_party_id));
9733 END IF;
9734 ZX_TCM_PTP_PKG.get_ptp(p_hdr_det_factors_rec.rounding_bill_to_party_id
9735 ,ZX_VALID_INIT_PARAMS_PKG.source_rec.bill_to_party_type
9736 ,p_hdr_det_factors_rec.legal_entity_id
9737 ,p_hdr_det_factors_rec.bill_to_location_id
9738 ,l_rdng_bill_to_ptp_id
9739 ,l_return_status
9740 );
9741
9742 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9743 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9744 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
9745 ':ZX_TCM_PTP_PKG.get_ptp for rounding_bill_to_party_id returned errors');
9746 END IF;
9747 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
9748 RAISE FND_API.G_EXC_ERROR;
9749 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
9750 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9754 l_rdng_bill_to_ptp_id := l_rdng_ship_to_ptp_id;
9751 END IF;
9752 END IF;
9753 ELSE
9755 END IF;
9756 END IF;
9757
9758 IF p_hdr_det_factors_rec.rounding_bill_from_party_id is NOT NULL AND
9759 p_hdr_det_factors_rec.rounding_bill_from_party_id <> FND_API.G_MISS_NUM THEN
9760 IF (p_hdr_det_factors_rec.rounding_bill_from_party_id <> p_hdr_det_factors_rec.rounding_ship_from_party_id)
9761 OR (ZX_VALID_INIT_PARAMS_PKG.source_rec.ship_from_party_type <> ZX_VALID_INIT_PARAMS_PKG.source_rec.bill_from_party_type)
9762 OR p_hdr_det_factors_rec.rounding_ship_from_party_id is null THEN
9763 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9764 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' Call TCM API to get ptp for rounding_bill_from_party_id: '||
9765 to_char(p_hdr_det_factors_rec.rounding_bill_from_party_id));
9766 END IF;
9767 ZX_TCM_PTP_PKG.get_ptp(p_hdr_det_factors_rec.rounding_bill_from_party_id
9768 ,ZX_VALID_INIT_PARAMS_PKG.source_rec.bill_from_party_type
9769 ,p_hdr_det_factors_rec.legal_entity_id
9770 ,p_hdr_det_factors_rec.bill_from_location_id
9771 ,l_rdng_bill_from_ptp_id
9772 ,l_return_status
9773 );
9774
9775 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9776 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9777 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
9778 ':ZX_TCM_PTP_PKG.get_ptp for rounding_bill_from_party_id returned errors');
9779 END IF;
9780 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
9781 RAISE FND_API.G_EXC_ERROR;
9782 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
9783 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9784 END IF;
9785 END IF;
9786 ELSE
9787 l_rdng_bill_from_ptp_id := l_rdng_ship_from_ptp_id;
9788 END IF;
9789 END IF;
9790
9791 IF p_hdr_det_factors_rec.rndg_bill_to_party_site_id is NOT NULL AND
9792 p_hdr_det_factors_rec.rndg_bill_to_party_site_id <> FND_API.G_MISS_NUM THEN
9793 IF (p_hdr_det_factors_rec.rndg_bill_to_party_site_id <> p_hdr_det_factors_rec.rndg_ship_to_party_site_id)
9794 OR (ZX_VALID_INIT_PARAMS_PKG.source_rec.ship_to_pty_site_type <> ZX_VALID_INIT_PARAMS_PKG.source_rec.bill_to_pty_site_type)
9795 OR p_hdr_det_factors_rec.rndg_ship_to_party_site_id is null THEN
9796 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9797 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' Call TCM API to get ptp for rndg_bill_to_party_site_id: '||
9798 to_char(p_hdr_det_factors_rec.rndg_bill_to_party_site_id));
9799 END IF;
9800 ZX_TCM_PTP_PKG.get_ptp(p_hdr_det_factors_rec.rndg_bill_to_party_site_id
9801 ,ZX_VALID_INIT_PARAMS_PKG.source_rec.bill_to_pty_site_type
9802 ,p_hdr_det_factors_rec.legal_entity_id
9803 ,null
9804 ,l_rdng_bill_to_ptp_st_id
9805 ,l_return_status
9806 );
9807
9808 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9809 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9810 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
9811 ':ZX_TCM_PTP_PKG.get_ptp for rndg_bill_to_party_site_id returned errors');
9812 END IF;
9813 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
9814 RAISE FND_API.G_EXC_ERROR;
9815 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
9816 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9817 END IF;
9818 END IF;
9819 ELSE
9820 l_rdng_bill_to_ptp_st_id := l_rdng_ship_to_ptp_st_id;
9821 END IF;
9822 END IF;
9823
9824 IF p_hdr_det_factors_rec.rndg_bill_from_party_site_id is NOT NULL AND
9825 p_hdr_det_factors_rec.rndg_bill_to_party_site_id <> FND_API.G_MISS_NUM THEN
9826 IF p_hdr_det_factors_rec.rndg_bill_from_party_site_id <> p_hdr_det_factors_rec.rndg_ship_from_party_site_id
9827 OR (ZX_VALID_INIT_PARAMS_PKG.source_rec.ship_from_pty_site_type <> ZX_VALID_INIT_PARAMS_PKG.source_rec.bill_from_pty_site_type)
9828 OR p_hdr_det_factors_rec.rndg_ship_from_party_site_id is null THEN
9829 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9830 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' Call TCM API to get ptp for rndg_bill_from_party_site_id: '||
9831 to_char(p_hdr_det_factors_rec.rndg_bill_from_party_site_id));
9832 END IF;
9833 ZX_TCM_PTP_PKG.get_ptp(p_hdr_det_factors_rec.rndg_bill_from_party_site_id
9834 ,ZX_VALID_INIT_PARAMS_PKG.source_rec.bill_from_pty_site_type
9835 ,p_hdr_det_factors_rec.legal_entity_id
9836 ,null
9837 ,l_rdng_bill_from_ptp_st_id
9838 ,l_return_status
9839 );
9840
9841 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9842 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9843 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
9844 ':ZX_TCM_PTP_PKG.get_ptp for rndg_bill_from_party_site_id returned errors');
9845 END IF;
9846 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
9847 RAISE FND_API.G_EXC_ERROR;
9848 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
9849 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9850 END IF;
9851 END IF;
9852 ELSE
9853 l_rdng_bill_from_ptp_st_id := l_rdng_ship_from_ptp_st_id;
9854 END IF;
9855 END IF;
9856
9857 --get_tax_profile_ids expects the following data legal entity id in zx_global_structures table.
9858 zx_global_structures_pkg.trx_line_dist_tbl.LEGAL_ENTITY_ID(1) := p_hdr_det_factors_rec.legal_entity_id;
9859
9860 IF p_hdr_det_factors_rec.ship_to_party_id is not NULL AND
9861 p_hdr_det_factors_rec.ship_to_party_id <> FND_API.G_MISS_NUM THEN
9862 IF ((p_hdr_det_factors_rec.rounding_ship_to_party_id is NULL)
9863 OR ((p_hdr_det_factors_rec.rounding_ship_to_party_id is NOT NULL)
9864 AND (p_hdr_det_factors_rec.ship_to_party_id <>
9865 p_hdr_det_factors_rec.rounding_ship_to_party_id))) THEN
9866 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9867 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Get PTP Id for Ship To Party Id: '||
9868 to_char(p_hdr_det_factors_rec.ship_to_party_id));
9869 END IF;
9870 l_party_type := ZX_VALID_INIT_PARAMS_PKG.source_rec.ship_to_party_type;
9871 ZX_SRVC_TYP_PKG.get_tax_profile_ids(l_return_status,
9872 l_party_type,
9873 p_hdr_det_factors_rec.ship_to_party_id,
9874 p_hdr_det_factors_rec.ship_to_location_id,
9875 NULL,
9876 l_ship_to_ptp_id
9877 );
9878
9879 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9880 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9881 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
9882 ':ZX_TCM_PTP_PKG.get_ptp for ship_to_party_id returned errors');
9883 END IF;
9884 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
9885 RAISE FND_API.G_EXC_ERROR;
9886 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
9887 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9888 END IF;
9889 END IF;
9890 ELSE /* Ship To Party is same as Rounding Ship To Party */
9891 l_ship_to_ptp_id := l_rdng_ship_to_ptp_id;
9892 END IF;
9893 END IF; /* Completed Condition Check for Ship To Party */
9894
9895
9896 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9897 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Call TCM API to get ptp for Legal Entity: '||
9898 to_char(p_hdr_det_factors_rec.legal_entity_id));
9899 END IF;
9900
9901 ZX_TCM_PTP_PKG.get_ptp_hq(p_hdr_det_factors_rec.legal_entity_id,
9902 l_hq_estb_ptp_id,
9903 l_return_status
9904 );
9905
9906 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9907 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9908 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
9909 ':ZX_TCM_PTP_PKG.get_ptp for legal_entity_id returned errors');
9910 END IF;
9911 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
9912 RAISE FND_API.G_EXC_ERROR;
9913 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
9914 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9915 END IF;
9916 END IF;
9917
9918 IF p_hdr_det_factors_rec.ship_from_party_id is NOT NULL AND
9919 p_hdr_det_factors_rec.ship_from_party_id <> FND_API.G_MISS_NUM THEN
9920 IF ((p_hdr_det_factors_rec.rounding_ship_from_party_id is NULL)
9921 OR ((p_hdr_det_factors_rec.rounding_ship_from_party_id is NOT NULL)
9922 AND (p_hdr_det_factors_rec.ship_from_party_id <> p_hdr_det_factors_rec.rounding_ship_from_party_id))) THEN
9923 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9924 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Get PTP Id for Ship From Party Id: '||
9925 to_char(p_hdr_det_factors_rec.ship_from_party_id));
9926 END IF;
9927 l_party_type := ZX_VALID_INIT_PARAMS_PKG.source_rec.ship_from_party_type;
9928 ZX_SRVC_TYP_PKG.get_tax_profile_ids(l_return_status,
9929 l_party_type,
9930 p_hdr_det_factors_rec.ship_from_party_id,
9931 p_hdr_det_factors_rec.ship_from_location_id,
9932 NULL,
9933 l_ship_from_ptp_id
9934 );
9935
9939 ':ZX_TCM_PTP_PKG.get_ptp for ship_from_party_id returned errors');
9936 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9937 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9938 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
9940 END IF;
9941 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
9942 RAISE FND_API.G_EXC_ERROR;
9943 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
9944 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9945 END IF;
9946 END IF;
9947 ELSE /* Ship from party is same as rounding ship from party */
9948 l_ship_from_ptp_id := l_rdng_ship_from_ptp_id;
9949 END IF;
9950 END IF; /* Completed condition check for ship from party */
9951
9952 IF p_hdr_det_factors_rec.poa_party_tax_prof_id is NOT NULL AND
9953 p_hdr_det_factors_rec.poa_party_tax_prof_id <> FND_API.G_MISS_NUM THEN
9954 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9955 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Get PTP Id for POA Party Id: '
9956 || to_char(p_hdr_det_factors_rec.poa_party_id));
9957 END IF;
9958
9959 l_party_type := ZX_VALID_INIT_PARAMS_PKG.source_rec.poa_party_type;
9960 ZX_SRVC_TYP_PKG.get_tax_profile_ids(l_return_status,
9961 l_party_type ,
9962 p_hdr_det_factors_rec.poa_party_id,
9963 p_hdr_det_factors_rec.poa_location_id,
9964 NULL,
9965 l_poa_ptp_id
9966 );
9967
9968 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9969 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9970 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
9971 ':ZX_TCM_PTP_PKG.get_ptp for poa_party_id returned errors');
9972 END IF;
9973 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
9974 RAISE FND_API.G_EXC_ERROR;
9975 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
9976 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9977 END IF;
9978 END IF;
9979 END IF; /* Completed condition check for poa party */
9980
9981
9982 IF p_hdr_det_factors_rec.poo_party_id is NOT NULL AND
9983 p_hdr_det_factors_rec.poa_party_tax_prof_id <> FND_API.G_MISS_NUM THEN
9984 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9985 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Get PTP Id for POO Party Id: '||
9986 to_char(p_hdr_det_factors_rec.poo_party_id));
9987 END IF;
9988
9989 l_party_type := ZX_VALID_INIT_PARAMS_PKG.source_rec.poo_party_type;
9990 ZX_SRVC_TYP_PKG.get_tax_profile_ids(l_return_status,
9991 l_party_type,
9992 p_hdr_det_factors_rec.poo_party_id,
9993 p_hdr_det_factors_rec.poo_location_id,
9994 NULL,
9995 l_poo_ptp_id
9996 );
9997
9998 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9999 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10000 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
10001 ':ZX_TCM_PTP_PKG.get_ptp for poo_party_id returned errors');
10002 END IF;
10003 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
10004 RAISE FND_API.G_EXC_ERROR;
10005 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10006 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10007 END IF;
10008 END IF;
10009 END IF; /* Completed condition check for poo party */
10010
10011 IF p_hdr_det_factors_rec.bill_to_party_id is NOT NULL AND
10012 p_hdr_det_factors_rec.bill_to_party_id <> FND_API.G_MISS_NUM THEN
10013 IF ((p_hdr_det_factors_rec.rounding_bill_to_party_id is NULL)
10014 OR ((p_hdr_det_factors_rec.rounding_bill_to_party_id is NOT NULL)
10015 AND (p_hdr_det_factors_rec.bill_to_party_id
10016 <> p_hdr_det_factors_rec.rounding_bill_to_party_id))) THEN
10017
10018 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10019 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Get PTP Id for Bill To Party Id: '||
10020 to_char(p_hdr_det_factors_rec.bill_to_party_id));
10021 END IF;
10022
10023 l_party_type := ZX_VALID_INIT_PARAMS_PKG.source_rec.bill_to_party_type;
10024 ZX_SRVC_TYP_PKG.get_tax_profile_ids(l_return_status,
10025 l_party_type,
10026 p_hdr_det_factors_rec.bill_to_party_id,
10027 p_hdr_det_factors_rec.bill_to_location_id,
10028 NULL,
10029 l_bill_to_ptp_id
10030 );
10031
10032 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10033 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10037 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
10034 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
10035 ':ZX_TCM_PTP_PKG.get_ptp for bill_to_party_id returned errors');
10036 END IF;
10038 RAISE FND_API.G_EXC_ERROR;
10039 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10040 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10041 END IF;
10042 END IF;
10043 ELSE /* Bill to party is same as rounding bill to party */
10044 l_bill_to_ptp_id := l_rdng_bill_to_ptp_id;
10045 END IF;
10046 END IF; /* Completed condition check for bill to party */
10047
10048
10049 IF p_hdr_det_factors_rec.bill_from_party_id is NOT NULL AND
10050 p_hdr_det_factors_rec.bill_from_party_id <> FND_API.G_MISS_NUM THEN
10051 IF ((p_hdr_det_factors_rec.rounding_bill_from_party_id is NULL)
10052 OR ((p_hdr_det_factors_rec.rounding_bill_from_party_id is NOT NULL)
10053 AND (p_hdr_det_factors_rec.bill_from_party_id
10054 <> p_hdr_det_factors_rec.rounding_bill_from_party_id))) THEN
10055
10056 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10057 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Get PTP Id for Bill From Party Id: '||
10058 to_char(p_hdr_det_factors_rec.bill_from_party_id));
10059 END IF;
10060
10061 l_party_type := ZX_VALID_INIT_PARAMS_PKG.source_rec.bill_from_party_type;
10062 ZX_SRVC_TYP_PKG.get_tax_profile_ids(l_return_status,
10063 l_party_type,
10064 p_hdr_det_factors_rec.bill_from_party_id,
10065 p_hdr_det_factors_rec.bill_from_location_id ,
10066 NULL,
10067 l_bill_from_ptp_id
10068 );
10069
10070 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10071 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10072 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
10073 ':ZX_TCM_PTP_PKG.get_ptp for bill_from_party_id returned errors');
10074 END IF;
10075 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
10076 RAISE FND_API.G_EXC_ERROR;
10077 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10078 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10079 END IF;
10080 END IF;
10081 ELSE /* Bill from party is same as rounding bill from party */
10082 l_bill_from_ptp_id := l_rdng_bill_from_ptp_id;
10083 END IF;
10084 END IF; /* Completed condition check for bill from party */
10085
10086 IF p_hdr_det_factors_rec.ship_to_party_site_id is NOT NULL AND
10087 p_hdr_det_factors_rec.ship_to_party_site_id <> FND_API.G_MISS_NUM THEN
10088 IF ((p_hdr_det_factors_rec.rndg_ship_to_party_site_id is NULL)
10089 OR ((p_hdr_det_factors_rec.rndg_ship_to_party_site_id is NOT NULL)
10090 AND (p_hdr_det_factors_rec.ship_to_party_site_id
10091 <> p_hdr_det_factors_rec.rndg_ship_to_party_site_id))) THEN
10092
10093 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10094 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Get PTP Id for Ship To Party Site Id: '||
10095 to_char(p_hdr_det_factors_rec.ship_to_party_site_id));
10096 END IF;
10097 l_party_type := ZX_VALID_INIT_PARAMS_PKG.source_rec.ship_to_pty_site_type;
10098 ZX_SRVC_TYP_PKG.get_tax_profile_ids(l_return_status,
10099 l_party_type,
10100 NULL,
10101 NULL,
10102 p_hdr_det_factors_rec.ship_to_party_site_id ,
10103 l_ship_to_ptp_site_id
10104 );
10105
10106 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10107 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10108 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
10109 ':ZX_TCM_PTP_PKG.get_ptp for ship_to_party_site_id returned errors');
10110 END IF;
10111 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
10112 RAISE FND_API.G_EXC_ERROR;
10113 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10114 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10115 END IF;
10116 END IF;
10117 ELSE /* Ship to site is same as rounding ship to site */
10118 l_ship_to_ptp_site_id := l_rdng_ship_to_ptp_st_id;
10119 END IF;
10120 END IF; /* Completed condition check for ship to party site */
10121
10122 IF p_hdr_det_factors_rec.ship_from_party_site_id is NOT NULL AND
10123 p_hdr_det_factors_rec.ship_to_party_site_id <> FND_API.G_MISS_NUM THEN
10124 IF ((p_hdr_det_factors_rec.rndg_ship_from_party_site_id is NULL)
10125 OR ((p_hdr_det_factors_rec.rndg_ship_from_party_site_id is NOT NULL)
10126 AND (p_hdr_det_factors_rec.ship_from_party_site_id
10127 <> p_hdr_det_factors_rec.rndg_ship_from_party_site_id))) THEN
10128
10132 END IF;
10129 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10130 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Get PTP Id for Ship From Party Site Id: '||
10131 to_char(p_hdr_det_factors_rec.ship_from_party_site_id));
10133
10134 l_party_type := ZX_VALID_INIT_PARAMS_PKG.source_rec.ship_from_pty_site_type;
10135 ZX_SRVC_TYP_PKG.get_tax_profile_ids(l_return_status,
10136 l_party_type,
10137 NULL,
10138 NULL,
10139 p_hdr_det_factors_rec.ship_from_party_site_id,
10140 l_ship_from_ptp_site_id
10141 );
10142
10143 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10144 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10145 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
10146 ':ZX_TCM_PTP_PKG.get_ptp for ship_from_party_site_id returned errors');
10147 END IF;
10148 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
10149 RAISE FND_API.G_EXC_ERROR;
10150 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10151 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10152 END IF;
10153 END IF;
10154 ELSE /* Ship from site is same as rounding ship from site */
10155 l_ship_from_ptp_site_id := l_rdng_ship_from_ptp_st_id;
10156 END IF;
10157 END IF; /* Completed condition check for ship from site*/
10158
10159 IF p_hdr_det_factors_rec.poa_party_site_id is NOT NULL AND
10160 p_hdr_det_factors_rec.poa_party_site_id <> FND_API.G_MISS_NUM THEN
10161
10162 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10163 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Get PTP Id for POA Party Site Id: '||
10164 to_char(p_hdr_det_factors_rec.poa_party_site_id));
10165 END IF;
10166 l_party_type := ZX_VALID_INIT_PARAMS_PKG.source_rec.poa_pty_site_type;
10167 ZX_SRVC_TYP_PKG.get_tax_profile_ids(l_return_status,
10168 l_party_type,
10169 NULL,
10170 NULL,
10171 p_hdr_det_factors_rec.poa_party_site_id,
10172 l_poa_ptp_site_id
10173 );
10174
10175 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10176 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10177 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
10178 ':ZX_TCM_PTP_PKG.get_ptp for poa_party_site_id returned errors');
10179 END IF;
10180 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
10181 RAISE FND_API.G_EXC_ERROR;
10182 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10183 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10184 END IF;
10185 END IF;
10186 END IF; /* Completed condition check for poa party site */
10187
10188
10189 IF p_hdr_det_factors_rec.poo_party_site_id is NOT NULL AND
10190 p_hdr_det_factors_rec.poo_party_site_id <> FND_API.G_MISS_NUM THEN
10191 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10192 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Get PTP Id for POO Party Site Id: '||
10193 to_char(p_hdr_det_factors_rec.poo_party_site_id));
10194 END IF;
10195 l_party_type := ZX_VALID_INIT_PARAMS_PKG.source_rec.poo_pty_site_type;
10196 ZX_SRVC_TYP_PKG.get_tax_profile_ids(l_return_status,
10197 l_party_type,
10198 NULL,
10199 NULL,
10200 p_hdr_det_factors_rec.poo_party_site_id,
10201 l_poo_ptp_site_id
10202 );
10203
10204 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10205 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10206 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
10207 ':ZX_TCM_PTP_PKG.get_ptp for poo_party_site_id returned errors');
10208 END IF;
10209 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
10210 RAISE FND_API.G_EXC_ERROR;
10211 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10212 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10213 END IF;
10214 END IF;
10215 END IF; /* Completed condition check for poo party site */
10216
10217 IF p_hdr_det_factors_rec.bill_to_party_site_id is NOT NULL AND
10218 p_hdr_det_factors_rec.bill_to_party_site_id <> FND_API.G_MISS_NUM THEN
10219 IF ((p_hdr_det_factors_rec.rndg_bill_to_party_site_id is NULL)
10220 OR ((p_hdr_det_factors_rec.rndg_bill_to_party_site_id is NOT NULL)
10221 AND (p_hdr_det_factors_rec.bill_to_party_site_id
10222 <> p_hdr_det_factors_rec.rndg_bill_to_party_site_id))) THEN
10223
10227 END IF;
10224 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10225 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Get PTP Id for Bill To Party Site Id: '||
10226 to_char(p_hdr_det_factors_rec.bill_to_party_site_id));
10228 l_party_type := ZX_VALID_INIT_PARAMS_PKG.source_rec.bill_to_pty_site_type;
10229 ZX_SRVC_TYP_PKG.get_tax_profile_ids(l_return_status,
10230 l_party_type,
10231 NULL,
10232 NULL,
10233 p_hdr_det_factors_rec.bill_to_party_site_id,
10234 l_bill_to_ptp_site_id
10235 );
10236
10237 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10238 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10239 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
10240 ':ZX_TCM_PTP_PKG.get_ptp for bill_to_party_site_id returned errors');
10241 END IF;
10242 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
10243 RAISE FND_API.G_EXC_ERROR;
10244 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10245 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10246 END IF;
10247 END IF;
10248 ELSE /* Bill to site is same as rounding bill to site */
10249 l_bill_to_ptp_site_id := l_rdng_bill_to_ptp_st_id;
10250 END IF;
10251 END IF; /* Completed condition check for bill to site */
10252
10253
10254 IF p_hdr_det_factors_rec.bill_from_party_site_id is NOT NULL AND
10255 p_hdr_det_factors_rec.bill_from_party_site_id <> FND_API.G_MISS_NUM THEN
10256 IF ((p_hdr_det_factors_rec.rndg_bill_from_party_site_id is NULL)
10257 OR ((p_hdr_det_factors_rec.rndg_bill_from_party_site_id is NOT NULL)
10258 AND (p_hdr_det_factors_rec.bill_from_party_site_id
10259 <> p_hdr_det_factors_rec.rndg_bill_from_party_site_id))) THEN
10260
10261 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10262 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Get PTP Id for Bill From Party Site Id: '||
10263 to_char(p_hdr_det_factors_rec.bill_from_party_site_id));
10264 END IF;
10265 l_party_type := ZX_VALID_INIT_PARAMS_PKG.source_rec.bill_from_pty_site_type;
10266 ZX_SRVC_TYP_PKG.get_tax_profile_ids(l_return_status,
10267 l_party_type,
10268 NULL,
10269 NULL,
10270 p_hdr_det_factors_rec.bill_from_party_site_id,
10271 l_bill_from_ptp_site_id
10272 );
10273
10274 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10275 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10276 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
10277 ':ZX_TCM_PTP_PKG.get_ptp for bill_from_party_site_id returned errors');
10278 END IF;
10279 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
10280 RAISE FND_API.G_EXC_ERROR;
10281 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10282 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10283 END IF;
10284 END IF;
10285 ELSE /* Bill from site is same as rounding bill from site */
10286 l_bill_from_ptp_site_id := l_rdng_bill_from_ptp_st_id;
10287 END IF;
10288 END IF; /* Completed condition check for rounding bill from site */
10289
10290 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10291 x_return_status := l_return_status;
10292 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10293 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
10294 ' RETURN_STATUS = ' || x_return_status);
10295 END IF;
10296 RETURN;
10297 END IF;
10298
10299 ZX_R11I_TAX_PARTNER_PKG.copy_trx_line_for_ptnr_bef_upd(NULL,
10300 l_event_class_rec,
10301 NULL,
10302 'N',
10303 NULL,
10304 NULL,
10305 l_return_status
10306 );
10307 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10308 x_return_status := l_return_status ;
10309 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10310 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_R11I_TAX_PARTNER_PKG.copy_trx_line_for_ptnr_bef_upd returned errors');
10311 END IF;
10312 RETURN;
10313 END IF;
10314
10315 /*-----------------------------------------------+
10316 |Update the headers only in zx_line_det_factors |
10317 +----------------------------------------------*/
10321 EVENT_CLASS_CODE = p_hdr_det_factors_rec.EVENT_CLASS_CODE,
10318 UPDATE ZX_LINES_DET_FACTORS SET
10319 APPLICATION_ID = p_hdr_det_factors_rec.APPLICATION_ID,
10320 ENTITY_CODE = p_hdr_det_factors_rec.ENTITY_CODE,
10322 EVENT_TYPE_CODE = p_hdr_det_factors_rec.EVENT_TYPE_CODE,
10323 INTERNAL_ORGANIZATION_ID = p_hdr_det_factors_rec.INTERNAL_ORGANIZATION_ID,
10324 LEGAL_ENTITY_ID = p_hdr_det_factors_rec.LEGAL_ENTITY_ID,
10325 TRX_ID = p_hdr_det_factors_rec.TRX_ID,
10326 TRX_DOC_REVISION = decode(p_hdr_det_factors_rec.TRX_DOC_REVISION,FND_API.G_MISS_CHAR,
10327 TRX_DOC_REVISION,
10328 p_hdr_det_factors_rec.TRX_DOC_REVISION),
10329 TRX_DATE = decode(p_hdr_det_factors_rec.TRX_DATE,FND_API.G_MISS_DATE,
10330 TRX_DATE,
10331 p_hdr_det_factors_rec.TRX_DATE),
10332 LEDGER_ID = decode(p_hdr_det_factors_rec.LEDGER_ID,FND_API.G_MISS_NUM,
10333 LEDGER_ID,
10334 p_hdr_det_factors_rec.LEDGER_ID),
10335 INTERNAL_ORG_LOCATION_ID = decode(p_hdr_det_factors_rec.INTERNAL_ORG_LOCATION_ID,FND_API.G_MISS_NUM,
10336 INTERNAL_ORG_LOCATION_ID,
10337 p_hdr_det_factors_rec.INTERNAL_ORG_LOCATION_ID),
10338 TRX_CURRENCY_CODE = decode(p_hdr_det_factors_rec.TRX_CURRENCY_CODE,FND_API.G_MISS_CHAR,
10339 TRX_CURRENCY_CODE,
10340 p_hdr_det_factors_rec.TRX_CURRENCY_CODE),
10341 CURRENCY_CONVERSION_TYPE = decode(p_hdr_det_factors_rec.CURRENCY_CONVERSION_TYPE,FND_API.G_MISS_CHAR,
10342 CURRENCY_CONVERSION_TYPE,
10343 p_hdr_det_factors_rec.CURRENCY_CONVERSION_TYPE),
10344 CURRENCY_CONVERSION_RATE = decode(p_hdr_det_factors_rec.CURRENCY_CONVERSION_RATE,FND_API.G_MISS_NUM,
10345 CURRENCY_CONVERSION_RATE,
10346 p_hdr_det_factors_rec.CURRENCY_CONVERSION_RATE),
10347 CURRENCY_CONVERSION_DATE = decode(p_hdr_det_factors_rec.CURRENCY_CONVERSION_DATE,FND_API.G_MISS_DATE,
10348 CURRENCY_CONVERSION_DATE,
10349 p_hdr_det_factors_rec.CURRENCY_CONVERSION_DATE),
10350 MINIMUM_ACCOUNTABLE_UNIT = decode(p_hdr_det_factors_rec.MINIMUM_ACCOUNTABLE_UNIT,FND_API.G_MISS_NUM,
10351 MINIMUM_ACCOUNTABLE_UNIT,
10352 p_hdr_det_factors_rec.MINIMUM_ACCOUNTABLE_UNIT),
10353 PRECISION = decode(p_hdr_det_factors_rec.PRECISION,FND_API.G_MISS_NUM,
10354 PRECISION,
10355 p_hdr_det_factors_rec.PRECISION),
10356 ESTABLISHMENT_ID = decode(p_hdr_det_factors_rec.ESTABLISHMENT_ID,FND_API.G_MISS_NUM,
10357 ESTABLISHMENT_ID,
10358 p_hdr_det_factors_rec.ESTABLISHMENT_ID),
10359 RECEIVABLES_TRX_TYPE_ID = decode(p_hdr_det_factors_rec.RECEIVABLES_TRX_TYPE_ID,FND_API.G_MISS_NUM,
10360 RECEIVABLES_TRX_TYPE_ID,
10361 p_hdr_det_factors_rec.RECEIVABLES_TRX_TYPE_ID),
10362 RELATED_DOC_APPLICATION_ID = decode(p_hdr_det_factors_rec.RELATED_DOC_APPLICATION_ID,FND_API.G_MISS_NUM,
10363 RELATED_DOC_APPLICATION_ID,
10364 p_hdr_det_factors_rec.RELATED_DOC_APPLICATION_ID),
10365 RELATED_DOC_ENTITY_CODE = decode(p_hdr_det_factors_rec.RELATED_DOC_ENTITY_CODE,FND_API.G_MISS_CHAR,
10366 RELATED_DOC_ENTITY_CODE,
10367 p_hdr_det_factors_rec.RELATED_DOC_ENTITY_CODE),
10371 RELATED_DOC_TRX_ID = decode(p_hdr_det_factors_rec.RELATED_DOC_TRX_ID,FND_API.G_MISS_NUM,
10368 RELATED_DOC_EVENT_CLASS_CODE = decode(p_hdr_det_factors_rec.RELATED_DOC_EVENT_CLASS_CODE,FND_API.G_MISS_CHAR,
10369 RELATED_DOC_EVENT_CLASS_CODE,
10370 p_hdr_det_factors_rec.RELATED_DOC_EVENT_CLASS_CODE),
10372 RELATED_DOC_TRX_ID,
10373 p_hdr_det_factors_rec.RELATED_DOC_TRX_ID),
10374 RELATED_DOC_NUMBER = decode(p_hdr_det_factors_rec.RELATED_DOC_NUMBER,FND_API.G_MISS_CHAR,
10375 RELATED_DOC_NUMBER,
10376 p_hdr_det_factors_rec.RELATED_DOC_NUMBER),
10377 RELATED_DOC_DATE = decode(p_hdr_det_factors_rec.RELATED_DOC_DATE,FND_API.G_MISS_DATE,
10378 RELATED_DOC_DATE,
10379 p_hdr_det_factors_rec.RELATED_DOC_DATE),
10380 DEFAULT_TAXATION_COUNTRY = decode(p_hdr_det_factors_rec.DEFAULT_TAXATION_COUNTRY,FND_API.G_MISS_CHAR,
10381 DEFAULT_TAXATION_COUNTRY,
10382 p_hdr_det_factors_rec.DEFAULT_TAXATION_COUNTRY),
10383 TRX_NUMBER = decode(p_hdr_det_factors_rec.TRX_NUMBER,FND_API.G_MISS_CHAR,
10384 TRX_NUMBER,
10385 p_hdr_det_factors_rec.TRX_NUMBER),
10386 TRX_DESCRIPTION = decode(p_hdr_det_factors_rec.TRX_DESCRIPTION,FND_API.G_MISS_CHAR,
10387 TRX_DESCRIPTION,
10388 p_hdr_det_factors_rec.TRX_DESCRIPTION),
10389 TRX_COMMUNICATED_DATE = decode(p_hdr_det_factors_rec.TRX_COMMUNICATED_DATE,FND_API.G_MISS_DATE,
10390 TRX_COMMUNICATED_DATE,
10391 p_hdr_det_factors_rec.TRX_COMMUNICATED_DATE),
10392 BATCH_SOURCE_ID = decode(p_hdr_det_factors_rec.BATCH_SOURCE_ID,FND_API.G_MISS_NUM,
10393 BATCH_SOURCE_ID,
10394 p_hdr_det_factors_rec.BATCH_SOURCE_ID),
10395 BATCH_SOURCE_NAME = decode(p_hdr_det_factors_rec.BATCH_SOURCE_NAME,FND_API.G_MISS_CHAR,
10396 BATCH_SOURCE_NAME,
10397 p_hdr_det_factors_rec.BATCH_SOURCE_NAME),
10398 DOC_SEQ_ID = decode(p_hdr_det_factors_rec.DOC_SEQ_ID,FND_API.G_MISS_NUM,
10399 DOC_SEQ_ID,
10400 p_hdr_det_factors_rec.DOC_SEQ_ID),
10401 DOC_SEQ_NAME = decode(p_hdr_det_factors_rec.DOC_SEQ_NAME,FND_API.G_MISS_CHAR,
10402 DOC_SEQ_NAME,
10403 p_hdr_det_factors_rec.DOC_SEQ_NAME),
10404 DOC_SEQ_VALUE = decode(p_hdr_det_factors_rec.DOC_SEQ_VALUE,FND_API.G_MISS_CHAR,
10405 DOC_SEQ_VALUE,
10406 p_hdr_det_factors_rec.DOC_SEQ_VALUE),
10407 TRX_DUE_DATE = decode(p_hdr_det_factors_rec.TRX_DUE_DATE,FND_API.G_MISS_DATE,
10408 TRX_DUE_DATE,
10409 p_hdr_det_factors_rec.TRX_DUE_DATE),
10410 TRX_TYPE_DESCRIPTION = decode(p_hdr_det_factors_rec.TRX_TYPE_DESCRIPTION,FND_API.G_MISS_CHAR,
10411 TRX_TYPE_DESCRIPTION,
10412 p_hdr_det_factors_rec.TRX_TYPE_DESCRIPTION),
10413 DOCUMENT_SUB_TYPE = decode(p_hdr_det_factors_rec.DOCUMENT_SUB_TYPE,FND_API.G_MISS_CHAR,
10414 DOCUMENT_SUB_TYPE,
10415 p_hdr_det_factors_rec.DOCUMENT_SUB_TYPE),
10416 SUPPLIER_TAX_INVOICE_NUMBER = decode(p_hdr_det_factors_rec.SUPPLIER_TAX_INVOICE_NUMBER,FND_API.G_MISS_CHAR,
10420 SUPPLIER_TAX_INVOICE_DATE,
10417 SUPPLIER_TAX_INVOICE_NUMBER,
10418 p_hdr_det_factors_rec.SUPPLIER_TAX_INVOICE_NUMBER),
10419 SUPPLIER_TAX_INVOICE_DATE = decode(p_hdr_det_factors_rec.SUPPLIER_TAX_INVOICE_DATE,FND_API.G_MISS_DATE,
10421 p_hdr_det_factors_rec.SUPPLIER_TAX_INVOICE_DATE),
10422 SUPPLIER_EXCHANGE_RATE = decode(p_hdr_det_factors_rec.SUPPLIER_EXCHANGE_RATE,FND_API.G_MISS_NUM,
10423 SUPPLIER_EXCHANGE_RATE,
10424 p_hdr_det_factors_rec.SUPPLIER_EXCHANGE_RATE),
10425 TAX_INVOICE_DATE = decode(p_hdr_det_factors_rec.TAX_INVOICE_DATE,FND_API.G_MISS_DATE,
10426 TAX_INVOICE_DATE,
10427 p_hdr_det_factors_rec.TAX_INVOICE_DATE),
10428 TAX_INVOICE_NUMBER = decode(p_hdr_det_factors_rec.TAX_INVOICE_NUMBER,FND_API.G_MISS_CHAR,
10429 TAX_INVOICE_NUMBER,
10430 p_hdr_det_factors_rec.TAX_INVOICE_NUMBER),
10431 CTRL_TOTAL_HDR_TX_AMT = decode(p_hdr_det_factors_rec.CTRL_TOTAL_HDR_TX_AMT,FND_API.G_MISS_NUM,
10432 ctrl_total_hdr_tx_amt,
10433 p_hdr_det_factors_rec.CTRL_TOTAL_HDR_TX_AMT),
10434 FIRST_PTY_ORG_ID = l_event_class_rec.first_pty_org_id,
10435 TAX_EVENT_CLASS_CODE = l_event_class_rec.TAX_EVENT_CLASS_CODE,
10436 TAX_EVENT_TYPE_CODE = l_event_class_rec.TAX_EVENT_TYPE_CODE,
10437 DOC_EVENT_STATUS = l_event_class_rec.DOC_STATUS_CODE,
10438 TRX_BATCH_ID = decode(p_hdr_det_factors_rec.TRX_BATCH_ID,FND_API.G_MISS_NUM,
10439 TRX_BATCH_ID,
10440 p_hdr_det_factors_rec.TRX_BATCH_ID),
10441 APPLIED_TO_TRX_NUMBER = decode(p_hdr_det_factors_rec.APPLIED_TO_TRX_NUMBER,FND_API.G_MISS_CHAR,
10442 APPLIED_TO_TRX_NUMBER,
10443 p_hdr_det_factors_rec.APPLIED_TO_TRX_NUMBER),
10444 APPLICATION_DOC_STATUS = decode(p_hdr_det_factors_rec.APPLICATION_DOC_STATUS,FND_API.G_MISS_CHAR,
10445 APPLICATION_DOC_STATUS,
10446 p_hdr_det_factors_rec.APPLICATION_DOC_STATUS),
10447 RDNG_SHIP_TO_PTY_TX_PROF_ID = decode(p_hdr_det_factors_rec.ROUNDING_SHIP_TO_PARTY_ID,FND_API.G_MISS_NUM,
10448 RDNG_SHIP_TO_PTY_TX_PROF_ID,
10449 l_rdng_ship_to_ptp_id),
10450 RDNG_SHIP_FROM_PTY_TX_PROF_ID = decode(p_hdr_det_factors_rec.ROUNDING_SHIP_FROM_PARTY_ID,FND_API.G_MISS_NUM,
10451 RDNG_SHIP_FROM_PTY_TX_PROF_ID,
10452 l_rdng_ship_from_ptp_id),
10453 RDNG_BILL_TO_PTY_TX_PROF_ID = decode(p_hdr_det_factors_rec.ROUNDING_BILL_TO_PARTY_ID,FND_API.G_MISS_NUM,
10454 RDNG_BILL_TO_PTY_TX_PROF_ID,
10455 l_rdng_bill_to_ptp_id),
10456 RDNG_BILL_FROM_PTY_TX_PROF_ID = decode(p_hdr_det_factors_rec.ROUNDING_BILL_FROM_PARTY_ID,FND_API.G_MISS_NUM,
10457 RDNG_BILL_FROM_PTY_TX_PROF_ID,
10458 l_rdng_bill_from_ptp_id),
10459 RDNG_SHIP_TO_PTY_TX_P_ST_ID = decode(p_hdr_det_factors_rec.RNDG_SHIP_TO_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10460 RDNG_SHIP_TO_PTY_TX_P_ST_ID,
10461 l_rdng_ship_to_ptp_st_id),
10462 RDNG_SHIP_FROM_PTY_TX_P_ST_ID = decode(p_hdr_det_factors_rec.RNDG_SHIP_FROM_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10463 RDNG_SHIP_FROM_PTY_TX_P_ST_ID,
10464 l_rdng_ship_from_ptp_st_id),
10465 RDNG_BILL_TO_PTY_TX_P_ST_ID = decode(p_hdr_det_factors_rec.RNDG_BILL_TO_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10469 RDNG_BILL_FROM_PTY_TX_P_ST_ID,
10466 RDNG_BILL_TO_PTY_TX_P_ST_ID,
10467 l_rdng_bill_to_ptp_st_id),
10468 RDNG_BILL_FROM_PTY_TX_P_ST_ID = decode(p_hdr_det_factors_rec.RNDG_BILL_FROM_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10470 l_rdng_bill_from_ptp_st_id),
10471 PORT_OF_ENTRY_CODE = decode(p_hdr_det_factors_rec.PORT_OF_ENTRY_CODE,FND_API.G_MISS_CHAR,
10472 PORT_OF_ENTRY_CODE,
10473 p_hdr_det_factors_rec.PORT_OF_ENTRY_CODE),
10474 TAX_REPORTING_FLAG = decode(p_hdr_det_factors_rec.TAX_REPORTING_FLAG,FND_API.G_MISS_CHAR,
10475 TAX_REPORTING_FLAG,
10476 p_hdr_det_factors_rec.TAX_REPORTING_FLAG),
10477 PROVNL_TAX_DETERMINATION_DATE = decode(p_hdr_det_factors_rec.PROVNL_TAX_DETERMINATION_DATE,FND_API.G_MISS_DATE,
10478 PROVNL_TAX_DETERMINATION_DATE,
10479 p_hdr_det_factors_rec.PROVNL_TAX_DETERMINATION_DATE),
10480 SHIP_THIRD_PTY_ACCT_ID = decode(p_hdr_det_factors_rec.SHIP_THIRD_PTY_ACCT_ID,FND_API.G_MISS_NUM,
10481 SHIP_THIRD_PTY_ACCT_ID,
10482 p_hdr_det_factors_rec.SHIP_THIRD_PTY_ACCT_ID),
10483 BILL_THIRD_PTY_ACCT_ID = decode(p_hdr_det_factors_rec.BILL_THIRD_PTY_ACCT_ID,FND_API.G_MISS_NUM,
10484 BILL_THIRD_PTY_ACCT_ID,
10485 p_hdr_det_factors_rec.BILL_THIRD_PTY_ACCT_ID),
10486 SHIP_THIRD_PTY_ACCT_SITE_ID = decode(p_hdr_det_factors_rec.SHIP_THIRD_PTY_ACCT_SITE_ID,FND_API.G_MISS_NUM,
10487 SHIP_THIRD_PTY_ACCT_SITE_ID,
10488 p_hdr_det_factors_rec.SHIP_THIRD_PTY_ACCT_SITE_ID),
10489 BILL_THIRD_PTY_ACCT_SITE_ID = decode(p_hdr_det_factors_rec.BILL_THIRD_PTY_ACCT_SITE_ID,FND_API.G_MISS_NUM,
10490 BILL_THIRD_PTY_ACCT_SITE_ID,
10491 p_hdr_det_factors_rec.BILL_THIRD_PTY_ACCT_SITE_ID),
10492 SHIP_TO_CUST_ACCT_SITE_USE_ID = decode(p_hdr_det_factors_rec.SHIP_TO_CUST_ACCT_SITE_USE_ID,FND_API.G_MISS_NUM,
10493 SHIP_TO_CUST_ACCT_SITE_USE_ID,
10494 p_hdr_det_factors_rec.SHIP_TO_CUST_ACCT_SITE_USE_ID),
10495 BILL_TO_CUST_ACCT_SITE_USE_ID = decode(p_hdr_det_factors_rec.BILL_TO_CUST_ACCT_SITE_USE_ID,FND_API.G_MISS_NUM,
10496 BILL_TO_CUST_ACCT_SITE_USE_ID,
10497 p_hdr_det_factors_rec.BILL_TO_CUST_ACCT_SITE_USE_ID),
10498 SHIP_TO_LOCATION_ID = decode(p_hdr_det_factors_rec.SHIP_TO_LOCATION_ID,FND_API.G_MISS_NUM,
10499 SHIP_TO_LOCATION_ID,
10500 p_hdr_det_factors_rec.SHIP_TO_LOCATION_ID),
10501 SHIP_FROM_LOCATION_ID = decode(p_hdr_det_factors_rec.SHIP_FROM_LOCATION_ID,FND_API.G_MISS_NUM,
10502 SHIP_FROM_LOCATION_ID,
10503 p_hdr_det_factors_rec.SHIP_FROM_LOCATION_ID),
10504 BILL_TO_LOCATION_ID = decode(p_hdr_det_factors_rec.BILL_TO_LOCATION_ID,FND_API.G_MISS_NUM,
10505 BILL_TO_LOCATION_ID,
10506 p_hdr_det_factors_rec.BILL_TO_LOCATION_ID),
10507 BILL_FROM_LOCATION_ID = decode(p_hdr_det_factors_rec.BILL_FROM_LOCATION_ID,FND_API.G_MISS_NUM,
10508 BILL_FROM_LOCATION_ID,
10509 p_hdr_det_factors_rec.BILL_FROM_LOCATION_ID),
10510 POA_LOCATION_ID = decode(p_hdr_det_factors_rec.POA_LOCATION_ID,FND_API.G_MISS_NUM,
10511 POA_LOCATION_ID,
10515 p_hdr_det_factors_rec.POO_LOCATION_ID),
10512 p_hdr_det_factors_rec.POA_LOCATION_ID),
10513 POO_LOCATION_ID = decode(p_hdr_det_factors_rec.POO_LOCATION_ID,FND_API.G_MISS_NUM,
10514 POO_LOCATION_ID,
10516 PAYING_LOCATION_ID = decode(p_hdr_det_factors_rec.PAYING_LOCATION_ID,FND_API.G_MISS_NUM,
10517 PAYING_LOCATION_ID,
10518 p_hdr_det_factors_rec.PAYING_LOCATION_ID),
10519 OWN_HQ_LOCATION_ID = decode(p_hdr_det_factors_rec.OWN_HQ_LOCATION_ID,FND_API.G_MISS_NUM,
10520 OWN_HQ_LOCATION_ID,
10521 p_hdr_det_factors_rec.OWN_HQ_LOCATION_ID),
10522 TRADING_HQ_LOCATION_ID = decode(p_hdr_det_factors_rec.TRADING_HQ_LOCATION_ID,FND_API.G_MISS_NUM,
10523 TRADING_HQ_LOCATION_ID,
10524 p_hdr_det_factors_rec.TRADING_HQ_LOCATION_ID),
10525 POC_LOCATION_ID = decode(p_hdr_det_factors_rec.POC_LOCATION_ID,FND_API.G_MISS_NUM,
10526 POC_LOCATION_ID,
10527 p_hdr_det_factors_rec.POC_LOCATION_ID),
10528 POI_LOCATION_ID = decode(p_hdr_det_factors_rec.POI_LOCATION_ID,FND_API.G_MISS_NUM,
10529 POI_LOCATION_ID,
10530 p_hdr_det_factors_rec.POI_LOCATION_ID),
10531 POD_LOCATION_ID = decode(p_hdr_det_factors_rec.POD_LOCATION_ID,FND_API.G_MISS_NUM,
10532 POD_LOCATION_ID,
10533 p_hdr_det_factors_rec.POD_LOCATION_ID),
10534 TITLE_TRANSFER_LOCATION_ID = decode(p_hdr_det_factors_rec.TITLE_TRANSFER_LOCATION_ID,FND_API.G_MISS_NUM,
10535 TITLE_TRANSFER_LOCATION_ID,
10536 p_hdr_det_factors_rec.TITLE_TRANSFER_LOCATION_ID),
10537 SHIP_TO_PARTY_TAX_PROF_ID = decode(p_hdr_det_factors_rec.SHIP_TO_PARTY_ID,FND_API.G_MISS_NUM,
10538 SHIP_TO_PARTY_TAX_PROF_ID,
10539 l_ship_to_ptp_id),
10540 SHIP_FROM_PARTY_TAX_PROF_ID = decode(p_hdr_det_factors_rec.SHIP_FROM_PARTY_ID,FND_API.G_MISS_NUM,
10541 SHIP_FROM_PARTY_TAX_PROF_ID,
10542 l_ship_from_ptp_id),
10543 POA_PARTY_TAX_PROF_ID = decode(p_hdr_det_factors_rec.POA_PARTY_ID,FND_API.G_MISS_NUM,
10544 POA_PARTY_TAX_PROF_ID,
10545 l_poa_ptp_id),
10546 POO_PARTY_TAX_PROF_ID = decode(p_hdr_det_factors_rec.POO_PARTY_ID,FND_API.G_MISS_NUM,
10547 POO_PARTY_TAX_PROF_ID,
10548 l_poo_ptp_id),
10549 PAYING_PARTY_TAX_PROF_ID = decode(p_hdr_det_factors_rec.PAYING_PARTY_ID,FND_API.G_MISS_NUM,
10550 PAYING_PARTY_TAX_PROF_ID,
10551 p_hdr_det_factors_rec.PAYING_PARTY_TAX_PROF_ID),
10552 OWN_HQ_PARTY_TAX_PROF_ID = decode(p_hdr_det_factors_rec.OWN_HQ_PARTY_ID,FND_API.G_MISS_NUM,
10553 OWN_HQ_PARTY_TAX_PROF_ID,
10554 p_hdr_det_factors_rec.OWN_HQ_PARTY_TAX_PROF_ID),
10555 TRADING_HQ_PARTY_TAX_PROF_ID = decode(p_hdr_det_factors_rec.TRADING_HQ_PARTY_ID,FND_API.G_MISS_NUM,
10556 TRADING_HQ_PARTY_TAX_PROF_ID,
10557 p_hdr_det_factors_rec.TRADING_HQ_PARTY_TAX_PROF_ID),
10558 POI_PARTY_TAX_PROF_ID = decode(p_hdr_det_factors_rec.POI_PARTY_ID,FND_API.G_MISS_NUM,
10559 POI_PARTY_TAX_PROF_ID,
10563 p_hdr_det_factors_rec.POD_PARTY_TAX_PROF_ID),
10560 p_hdr_det_factors_rec.POI_PARTY_TAX_PROF_ID),
10561 POD_PARTY_TAX_PROF_ID = decode(p_hdr_det_factors_rec.POD_PARTY_ID,FND_API.G_MISS_NUM,
10562 POD_PARTY_TAX_PROF_ID,
10564 BILL_TO_PARTY_TAX_PROF_ID = decode(p_hdr_det_factors_rec.BILL_TO_PARTY_ID,FND_API.G_MISS_NUM,
10565 BILL_TO_PARTY_TAX_PROF_ID,
10566 l_bill_to_ptp_id),
10567 BILL_FROM_PARTY_TAX_PROF_ID = decode(p_hdr_det_factors_rec.BILL_FROM_PARTY_ID,FND_API.G_MISS_NUM,
10568 BILL_FROM_PARTY_TAX_PROF_ID,
10569 l_bill_from_ptp_id),
10570 TITLE_TRANS_PARTY_TAX_PROF_ID = decode(p_hdr_det_factors_rec.TITLE_TRANSFER_PARTY_ID,FND_API.G_MISS_NUM,
10571 TITLE_TRANS_PARTY_TAX_PROF_ID,
10572 p_hdr_det_factors_rec.TITLE_TRANS_PARTY_TAX_PROF_ID),
10573 SHIP_TO_SITE_TAX_PROF_ID = decode(p_hdr_det_factors_rec.SHIP_TO_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10574 SHIP_TO_SITE_TAX_PROF_ID,
10575 l_ship_to_ptp_site_id),
10576 SHIP_FROM_SITE_TAX_PROF_ID = decode(p_hdr_det_factors_rec.SHIP_FROM_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10577 SHIP_FROM_SITE_TAX_PROF_ID,
10578 l_ship_from_ptp_site_id),
10579 BILL_TO_SITE_TAX_PROF_ID = decode(p_hdr_det_factors_rec.BILL_TO_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10580 BILL_TO_SITE_TAX_PROF_ID,
10581 l_bill_to_ptp_site_id),
10582 BILL_FROM_SITE_TAX_PROF_ID = decode(p_hdr_det_factors_rec.BILL_FROM_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10583 BILL_FROM_SITE_TAX_PROF_ID,
10584 l_bill_from_ptp_site_id),
10585 POA_SITE_TAX_PROF_ID = decode(p_hdr_det_factors_rec.POA_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10586 POA_SITE_TAX_PROF_ID,
10587 l_poa_ptp_site_id),
10588 POO_SITE_TAX_PROF_ID = decode(p_hdr_det_factors_rec.POO_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10589 POO_SITE_TAX_PROF_ID,
10590 l_poo_ptp_site_id),
10591 PAYING_SITE_TAX_PROF_ID = decode(p_hdr_det_factors_rec.PAYING_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10592 PAYING_SITE_TAX_PROF_ID,
10593 p_hdr_det_factors_rec.PAYING_SITE_TAX_PROF_ID),
10594 OWN_HQ_SITE_TAX_PROF_ID = decode(p_hdr_det_factors_rec.OWN_HQ_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10595 OWN_HQ_SITE_TAX_PROF_ID,
10596 p_hdr_det_factors_rec.OWN_HQ_SITE_TAX_PROF_ID),
10597 POI_SITE_TAX_PROF_ID = decode(p_hdr_det_factors_rec.POI_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10598 POI_SITE_TAX_PROF_ID,
10599 p_hdr_det_factors_rec.POI_SITE_TAX_PROF_ID),
10600 POD_SITE_TAX_PROF_ID = decode(p_hdr_det_factors_rec.POD_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10601 POD_SITE_TAX_PROF_ID,
10602 p_hdr_det_factors_rec.POD_SITE_TAX_PROF_ID),
10603 TITLE_TRANS_SITE_TAX_PROF_ID = decode(p_hdr_det_factors_rec.TITLE_TRANSFER_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10604 TITLE_TRANS_SITE_TAX_PROF_ID,
10605 p_hdr_det_factors_rec.TITLE_TRANS_SITE_TAX_PROF_ID),
10606 HQ_ESTB_PARTY_TAX_PROF_ID = l_hq_estb_ptp_id,
10607 LINE_LEVEL_ACTION = decode(LINE_LEVEL_ACTION, 'CREATE','UPDATE',
10608 'SYNCHRONIZE','UPDATE',
10612 LAST_UPDATED_BY = fnd_global.user_id,
10609 LINE_LEVEL_ACTION),
10610 TAX_PROCESSING_COMPLETED_FLAG = 'N',
10611 LAST_UPDATE_DATE = sysdate,
10613 LAST_UPDATE_LOGIN = fnd_global.conc_login_id
10614 WHERE APPLICATION_ID = p_hdr_det_factors_rec.APPLICATION_ID
10615 AND ENTITY_CODE = p_hdr_det_factors_rec.ENTITY_CODE
10616 AND EVENT_CLASS_CODE = p_hdr_det_factors_rec.EVENT_CLASS_CODE
10617 AND TRX_ID = p_hdr_det_factors_rec.TRX_ID;
10618 --Bugfix 4486946 -Call on the fly upgrade if the transaction if not found
10619 IF sql%NOTFOUND THEN
10620 l_upg_trx_info_rec.application_id := l_event_class_rec.application_id;
10621 l_upg_trx_info_rec.entity_code := l_event_class_rec.entity_code;
10622 l_upg_trx_info_rec.event_class_code := l_event_class_rec.event_class_code;
10623 l_upg_trx_info_rec.trx_id := l_event_class_rec.trx_id;
10624 ZX_ON_FLY_TRX_UPGRADE_PKG.upgrade_trx_on_fly(p_upg_trx_info_rec => l_upg_trx_info_rec,
10625 x_return_status => l_return_status
10626 );
10627 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10628 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10629 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_ON_FLY_TRX_UPGRADE_PKG.upgrade_trx_on_fly returned errors');
10630 END IF;
10631 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
10632 RAISE FND_API.G_EXC_ERROR;
10633 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10634 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10635 END IF;
10636 END IF;
10637
10638 ZX_R11I_TAX_PARTNER_PKG.copy_trx_line_for_ptnr_bef_upd(NULL,
10639 l_event_class_rec,
10640 NULL,
10641 'N',
10642 NULL,
10643 NULL,
10644 l_return_status
10645 );
10646 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10647 x_return_status := l_return_status ;
10648 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10649 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_R11I_TAX_PARTNER_PKG.copy_trx_line_for_ptnr_bef_upd returned errors');
10650 END IF;
10651 RETURN;
10652 END IF;
10653
10654 /*-----------------------------------------------+
10655 |Update the headers only in zx_line_det_factors |
10656 +----------------------------------------------*/
10657 UPDATE ZX_LINES_DET_FACTORS SET
10658 APPLICATION_ID = p_hdr_det_factors_rec.APPLICATION_ID,
10659 ENTITY_CODE = p_hdr_det_factors_rec.ENTITY_CODE,
10660 EVENT_CLASS_CODE = p_hdr_det_factors_rec.EVENT_CLASS_CODE,
10661 EVENT_TYPE_CODE = p_hdr_det_factors_rec.EVENT_TYPE_CODE,
10662 INTERNAL_ORGANIZATION_ID = p_hdr_det_factors_rec.INTERNAL_ORGANIZATION_ID,
10663 LEGAL_ENTITY_ID = p_hdr_det_factors_rec.LEGAL_ENTITY_ID,
10664 TRX_ID = p_hdr_det_factors_rec.TRX_ID,
10665 TRX_DOC_REVISION = decode(p_hdr_det_factors_rec.TRX_DOC_REVISION,FND_API.G_MISS_CHAR,
10666 TRX_DOC_REVISION,
10667 p_hdr_det_factors_rec.TRX_DOC_REVISION),
10668 TRX_DATE = decode(p_hdr_det_factors_rec.TRX_DATE,FND_API.G_MISS_DATE,
10669 TRX_DATE,
10670 p_hdr_det_factors_rec.TRX_DATE),
10671 LEDGER_ID = decode(p_hdr_det_factors_rec.LEDGER_ID,FND_API.G_MISS_NUM,
10672 LEDGER_ID,
10673 p_hdr_det_factors_rec.LEDGER_ID),
10674 INTERNAL_ORG_LOCATION_ID = decode(p_hdr_det_factors_rec.INTERNAL_ORG_LOCATION_ID,FND_API.G_MISS_NUM,
10675 INTERNAL_ORG_LOCATION_ID,
10676 p_hdr_det_factors_rec.INTERNAL_ORG_LOCATION_ID),
10677 TRX_CURRENCY_CODE = decode(p_hdr_det_factors_rec.TRX_CURRENCY_CODE,FND_API.G_MISS_CHAR,
10678 TRX_CURRENCY_CODE,
10679 p_hdr_det_factors_rec.TRX_CURRENCY_CODE),
10680 CURRENCY_CONVERSION_TYPE = decode(p_hdr_det_factors_rec.CURRENCY_CONVERSION_TYPE,FND_API.G_MISS_CHAR,
10681 CURRENCY_CONVERSION_TYPE,
10685 p_hdr_det_factors_rec.CURRENCY_CONVERSION_RATE),
10682 p_hdr_det_factors_rec.CURRENCY_CONVERSION_TYPE),
10683 CURRENCY_CONVERSION_RATE = decode(p_hdr_det_factors_rec.CURRENCY_CONVERSION_RATE,FND_API.G_MISS_NUM,
10684 CURRENCY_CONVERSION_RATE,
10686 CURRENCY_CONVERSION_DATE = decode(p_hdr_det_factors_rec.CURRENCY_CONVERSION_DATE,FND_API.G_MISS_DATE,
10687 CURRENCY_CONVERSION_DATE,
10688 p_hdr_det_factors_rec.CURRENCY_CONVERSION_DATE),
10689 MINIMUM_ACCOUNTABLE_UNIT = decode(p_hdr_det_factors_rec.MINIMUM_ACCOUNTABLE_UNIT,FND_API.G_MISS_NUM,
10690 MINIMUM_ACCOUNTABLE_UNIT,
10691 p_hdr_det_factors_rec.MINIMUM_ACCOUNTABLE_UNIT),
10692 PRECISION = decode(p_hdr_det_factors_rec.PRECISION,FND_API.G_MISS_NUM,
10693 PRECISION,
10694 p_hdr_det_factors_rec.PRECISION),
10695 ESTABLISHMENT_ID = decode(p_hdr_det_factors_rec.ESTABLISHMENT_ID,FND_API.G_MISS_NUM,
10696 ESTABLISHMENT_ID,
10697 p_hdr_det_factors_rec.ESTABLISHMENT_ID),
10698 RECEIVABLES_TRX_TYPE_ID = decode(p_hdr_det_factors_rec.RECEIVABLES_TRX_TYPE_ID,FND_API.G_MISS_NUM,
10699 RECEIVABLES_TRX_TYPE_ID,
10700 p_hdr_det_factors_rec.RECEIVABLES_TRX_TYPE_ID),
10701 RELATED_DOC_APPLICATION_ID = decode(p_hdr_det_factors_rec.RELATED_DOC_APPLICATION_ID,FND_API.G_MISS_NUM,
10702 RELATED_DOC_APPLICATION_ID,
10703 p_hdr_det_factors_rec.RELATED_DOC_APPLICATION_ID),
10704 RELATED_DOC_ENTITY_CODE = decode(p_hdr_det_factors_rec.RELATED_DOC_ENTITY_CODE,FND_API.G_MISS_CHAR,
10705 RELATED_DOC_ENTITY_CODE,
10706 p_hdr_det_factors_rec.RELATED_DOC_ENTITY_CODE),
10707 RELATED_DOC_EVENT_CLASS_CODE = decode(p_hdr_det_factors_rec.RELATED_DOC_EVENT_CLASS_CODE,FND_API.G_MISS_CHAR,
10708 RELATED_DOC_EVENT_CLASS_CODE,
10709 p_hdr_det_factors_rec.RELATED_DOC_EVENT_CLASS_CODE),
10710 RELATED_DOC_TRX_ID = decode(p_hdr_det_factors_rec.RELATED_DOC_TRX_ID,FND_API.G_MISS_NUM,
10711 RELATED_DOC_TRX_ID,
10712 p_hdr_det_factors_rec.RELATED_DOC_TRX_ID),
10713 RELATED_DOC_NUMBER = decode(p_hdr_det_factors_rec.RELATED_DOC_NUMBER,FND_API.G_MISS_CHAR,
10714 RELATED_DOC_NUMBER,
10715 p_hdr_det_factors_rec.RELATED_DOC_NUMBER),
10716 RELATED_DOC_DATE = decode(p_hdr_det_factors_rec.RELATED_DOC_DATE,FND_API.G_MISS_DATE,
10717 RELATED_DOC_DATE,
10718 p_hdr_det_factors_rec.RELATED_DOC_DATE),
10719 DEFAULT_TAXATION_COUNTRY = decode(p_hdr_det_factors_rec.DEFAULT_TAXATION_COUNTRY,FND_API.G_MISS_CHAR,
10720 DEFAULT_TAXATION_COUNTRY,
10721 p_hdr_det_factors_rec.DEFAULT_TAXATION_COUNTRY),
10722 TRX_NUMBER = decode(p_hdr_det_factors_rec.TRX_NUMBER,FND_API.G_MISS_CHAR,
10723 TRX_NUMBER,
10724 p_hdr_det_factors_rec.TRX_NUMBER),
10725 TRX_DESCRIPTION = decode(p_hdr_det_factors_rec.TRX_DESCRIPTION,FND_API.G_MISS_CHAR,
10726 TRX_DESCRIPTION,
10727 p_hdr_det_factors_rec.TRX_DESCRIPTION),
10728 TRX_COMMUNICATED_DATE = decode(p_hdr_det_factors_rec.TRX_COMMUNICATED_DATE,FND_API.G_MISS_DATE,
10729 TRX_COMMUNICATED_DATE,
10733 p_hdr_det_factors_rec.BATCH_SOURCE_ID),
10730 p_hdr_det_factors_rec.TRX_COMMUNICATED_DATE),
10731 BATCH_SOURCE_ID = decode(p_hdr_det_factors_rec.BATCH_SOURCE_ID,FND_API.G_MISS_NUM,
10732 BATCH_SOURCE_ID,
10734 BATCH_SOURCE_NAME = decode(p_hdr_det_factors_rec.BATCH_SOURCE_NAME,FND_API.G_MISS_CHAR,
10735 BATCH_SOURCE_NAME,
10736 p_hdr_det_factors_rec.BATCH_SOURCE_NAME),
10737 DOC_SEQ_ID = decode(p_hdr_det_factors_rec.DOC_SEQ_ID,FND_API.G_MISS_NUM,
10738 DOC_SEQ_ID,
10739 p_hdr_det_factors_rec.DOC_SEQ_ID),
10740 DOC_SEQ_NAME = decode(p_hdr_det_factors_rec.DOC_SEQ_NAME,FND_API.G_MISS_CHAR,
10741 DOC_SEQ_NAME,
10742 p_hdr_det_factors_rec.DOC_SEQ_NAME),
10743 DOC_SEQ_VALUE = decode(p_hdr_det_factors_rec.DOC_SEQ_VALUE,FND_API.G_MISS_CHAR,
10744 DOC_SEQ_VALUE,
10745 p_hdr_det_factors_rec.DOC_SEQ_VALUE),
10746 TRX_DUE_DATE = decode(p_hdr_det_factors_rec.TRX_DUE_DATE,FND_API.G_MISS_DATE,
10747 TRX_DUE_DATE,
10748 p_hdr_det_factors_rec.TRX_DUE_DATE),
10749 TRX_TYPE_DESCRIPTION = decode(p_hdr_det_factors_rec.TRX_TYPE_DESCRIPTION,FND_API.G_MISS_CHAR,
10750 TRX_TYPE_DESCRIPTION,
10751 p_hdr_det_factors_rec.TRX_TYPE_DESCRIPTION),
10752 DOCUMENT_SUB_TYPE = decode(p_hdr_det_factors_rec.DOCUMENT_SUB_TYPE,FND_API.G_MISS_CHAR,
10753 DOCUMENT_SUB_TYPE,
10754 p_hdr_det_factors_rec.DOCUMENT_SUB_TYPE),
10755 SUPPLIER_TAX_INVOICE_NUMBER = decode(p_hdr_det_factors_rec.SUPPLIER_TAX_INVOICE_NUMBER,FND_API.G_MISS_CHAR,
10756 SUPPLIER_TAX_INVOICE_NUMBER,
10757 p_hdr_det_factors_rec.SUPPLIER_TAX_INVOICE_NUMBER),
10758 SUPPLIER_TAX_INVOICE_DATE = decode(p_hdr_det_factors_rec.SUPPLIER_TAX_INVOICE_DATE,FND_API.G_MISS_DATE,
10759 SUPPLIER_TAX_INVOICE_DATE,
10760 p_hdr_det_factors_rec.SUPPLIER_TAX_INVOICE_DATE),
10761 SUPPLIER_EXCHANGE_RATE = decode(p_hdr_det_factors_rec.SUPPLIER_EXCHANGE_RATE,FND_API.G_MISS_NUM,
10762 SUPPLIER_EXCHANGE_RATE,
10763 p_hdr_det_factors_rec.SUPPLIER_EXCHANGE_RATE),
10764 TAX_INVOICE_DATE = decode(p_hdr_det_factors_rec.TAX_INVOICE_DATE,FND_API.G_MISS_DATE,
10765 TAX_INVOICE_DATE,
10766 p_hdr_det_factors_rec.TAX_INVOICE_DATE),
10767 TAX_INVOICE_NUMBER = decode(p_hdr_det_factors_rec.TAX_INVOICE_NUMBER,FND_API.G_MISS_CHAR,
10768 TAX_INVOICE_NUMBER,
10769 p_hdr_det_factors_rec.TAX_INVOICE_NUMBER),
10770 CTRL_TOTAL_HDR_TX_AMT = decode(p_hdr_det_factors_rec.CTRL_TOTAL_HDR_TX_AMT,FND_API.G_MISS_NUM,
10771 ctrl_total_hdr_tx_amt,
10772 p_hdr_det_factors_rec.CTRL_TOTAL_HDR_TX_AMT),
10773 FIRST_PTY_ORG_ID = l_event_class_rec.first_pty_org_id,
10774 TAX_EVENT_CLASS_CODE = l_event_class_rec.TAX_EVENT_CLASS_CODE,
10775 TAX_EVENT_TYPE_CODE = l_event_class_rec.TAX_EVENT_TYPE_CODE,
10776 DOC_EVENT_STATUS = l_event_class_rec.DOC_STATUS_CODE,
10777 TRX_BATCH_ID = decode(p_hdr_det_factors_rec.TRX_BATCH_ID,FND_API.G_MISS_NUM,
10778 TRX_BATCH_ID,
10779 p_hdr_det_factors_rec.TRX_BATCH_ID),
10783 APPLICATION_DOC_STATUS = decode(p_hdr_det_factors_rec.APPLICATION_DOC_STATUS,FND_API.G_MISS_CHAR,
10780 APPLIED_TO_TRX_NUMBER = decode(p_hdr_det_factors_rec.APPLIED_TO_TRX_NUMBER,FND_API.G_MISS_CHAR,
10781 APPLIED_TO_TRX_NUMBER,
10782 p_hdr_det_factors_rec.APPLIED_TO_TRX_NUMBER),
10784 APPLICATION_DOC_STATUS,
10785 p_hdr_det_factors_rec.APPLICATION_DOC_STATUS),
10786 RDNG_SHIP_TO_PTY_TX_PROF_ID = decode(p_hdr_det_factors_rec.ROUNDING_SHIP_TO_PARTY_ID,FND_API.G_MISS_NUM,
10787 RDNG_SHIP_TO_PTY_TX_PROF_ID,
10788 l_rdng_ship_to_ptp_id),
10789 RDNG_SHIP_FROM_PTY_TX_PROF_ID = decode(p_hdr_det_factors_rec.ROUNDING_SHIP_FROM_PARTY_ID,FND_API.G_MISS_NUM,
10790 RDNG_SHIP_FROM_PTY_TX_PROF_ID,
10791 l_rdng_ship_from_ptp_id),
10792 RDNG_BILL_TO_PTY_TX_PROF_ID = decode(p_hdr_det_factors_rec.ROUNDING_BILL_TO_PARTY_ID,FND_API.G_MISS_NUM,
10793 RDNG_BILL_TO_PTY_TX_PROF_ID,
10794 l_rdng_bill_to_ptp_id),
10795 RDNG_BILL_FROM_PTY_TX_PROF_ID = decode(p_hdr_det_factors_rec.ROUNDING_BILL_FROM_PARTY_ID,FND_API.G_MISS_NUM,
10796 RDNG_BILL_FROM_PTY_TX_PROF_ID,
10797 l_rdng_bill_from_ptp_id),
10798 RDNG_SHIP_TO_PTY_TX_P_ST_ID = decode(p_hdr_det_factors_rec.RNDG_SHIP_TO_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10799 RDNG_SHIP_TO_PTY_TX_P_ST_ID,
10800 l_rdng_ship_to_ptp_st_id),
10801 RDNG_SHIP_FROM_PTY_TX_P_ST_ID = decode(p_hdr_det_factors_rec.RNDG_SHIP_FROM_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10802 RDNG_SHIP_FROM_PTY_TX_P_ST_ID,
10803 l_rdng_ship_from_ptp_st_id),
10804 RDNG_BILL_TO_PTY_TX_P_ST_ID = decode(p_hdr_det_factors_rec.RNDG_BILL_TO_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10805 RDNG_BILL_TO_PTY_TX_P_ST_ID,
10806 l_rdng_bill_to_ptp_st_id),
10807 RDNG_BILL_FROM_PTY_TX_P_ST_ID = decode(p_hdr_det_factors_rec.RNDG_BILL_FROM_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10808 RDNG_BILL_FROM_PTY_TX_P_ST_ID,
10809 l_rdng_bill_from_ptp_st_id),
10810 PORT_OF_ENTRY_CODE = decode(p_hdr_det_factors_rec.PORT_OF_ENTRY_CODE,FND_API.G_MISS_CHAR,
10811 PORT_OF_ENTRY_CODE,
10812 p_hdr_det_factors_rec.PORT_OF_ENTRY_CODE),
10813 TAX_REPORTING_FLAG = decode(p_hdr_det_factors_rec.TAX_REPORTING_FLAG,FND_API.G_MISS_CHAR,
10814 TAX_REPORTING_FLAG,
10815 p_hdr_det_factors_rec.TAX_REPORTING_FLAG),
10816 PROVNL_TAX_DETERMINATION_DATE = decode(p_hdr_det_factors_rec.PROVNL_TAX_DETERMINATION_DATE,FND_API.G_MISS_DATE,
10817 PROVNL_TAX_DETERMINATION_DATE,
10818 p_hdr_det_factors_rec.PROVNL_TAX_DETERMINATION_DATE),
10819 SHIP_THIRD_PTY_ACCT_ID = decode(p_hdr_det_factors_rec.SHIP_THIRD_PTY_ACCT_ID,FND_API.G_MISS_NUM,
10820 SHIP_THIRD_PTY_ACCT_ID,
10821 p_hdr_det_factors_rec.SHIP_THIRD_PTY_ACCT_ID),
10822 BILL_THIRD_PTY_ACCT_ID = decode(p_hdr_det_factors_rec.BILL_THIRD_PTY_ACCT_ID,FND_API.G_MISS_NUM,
10823 BILL_THIRD_PTY_ACCT_ID,
10824 p_hdr_det_factors_rec.BILL_THIRD_PTY_ACCT_ID),
10825 SHIP_THIRD_PTY_ACCT_SITE_ID = decode(p_hdr_det_factors_rec.SHIP_THIRD_PTY_ACCT_SITE_ID,FND_API.G_MISS_NUM,
10826 SHIP_THIRD_PTY_ACCT_SITE_ID,
10830 p_hdr_det_factors_rec.BILL_THIRD_PTY_ACCT_SITE_ID),
10827 p_hdr_det_factors_rec.SHIP_THIRD_PTY_ACCT_SITE_ID),
10828 BILL_THIRD_PTY_ACCT_SITE_ID = decode(p_hdr_det_factors_rec.BILL_THIRD_PTY_ACCT_SITE_ID,FND_API.G_MISS_NUM,
10829 BILL_THIRD_PTY_ACCT_SITE_ID,
10831 SHIP_TO_CUST_ACCT_SITE_USE_ID = decode(p_hdr_det_factors_rec.SHIP_TO_CUST_ACCT_SITE_USE_ID,FND_API.G_MISS_NUM,
10832 SHIP_TO_CUST_ACCT_SITE_USE_ID,
10833 p_hdr_det_factors_rec.SHIP_TO_CUST_ACCT_SITE_USE_ID),
10834 BILL_TO_CUST_ACCT_SITE_USE_ID = decode(p_hdr_det_factors_rec.BILL_TO_CUST_ACCT_SITE_USE_ID,FND_API.G_MISS_NUM,
10835 BILL_TO_CUST_ACCT_SITE_USE_ID,
10836 p_hdr_det_factors_rec.BILL_TO_CUST_ACCT_SITE_USE_ID),
10837 SHIP_TO_LOCATION_ID = decode(p_hdr_det_factors_rec.SHIP_TO_LOCATION_ID,FND_API.G_MISS_NUM,
10838 SHIP_TO_LOCATION_ID,
10839 p_hdr_det_factors_rec.SHIP_TO_LOCATION_ID),
10840 SHIP_FROM_LOCATION_ID = decode(p_hdr_det_factors_rec.SHIP_FROM_LOCATION_ID,FND_API.G_MISS_NUM,
10841 SHIP_FROM_LOCATION_ID,
10842 p_hdr_det_factors_rec.SHIP_FROM_LOCATION_ID),
10843 BILL_TO_LOCATION_ID = decode(p_hdr_det_factors_rec.BILL_TO_LOCATION_ID,FND_API.G_MISS_NUM,
10844 BILL_TO_LOCATION_ID,
10845 p_hdr_det_factors_rec.BILL_TO_LOCATION_ID),
10846 BILL_FROM_LOCATION_ID = decode(p_hdr_det_factors_rec.BILL_FROM_LOCATION_ID,FND_API.G_MISS_NUM,
10847 BILL_FROM_LOCATION_ID,
10848 p_hdr_det_factors_rec.BILL_FROM_LOCATION_ID),
10849 POA_LOCATION_ID = decode(p_hdr_det_factors_rec.POA_LOCATION_ID,FND_API.G_MISS_NUM,
10850 POA_LOCATION_ID,
10851 p_hdr_det_factors_rec.POA_LOCATION_ID),
10852 POO_LOCATION_ID = decode(p_hdr_det_factors_rec.POO_LOCATION_ID,FND_API.G_MISS_NUM,
10853 POO_LOCATION_ID,
10854 p_hdr_det_factors_rec.POO_LOCATION_ID),
10855 PAYING_LOCATION_ID = decode(p_hdr_det_factors_rec.PAYING_LOCATION_ID,FND_API.G_MISS_NUM,
10856 PAYING_LOCATION_ID,
10857 p_hdr_det_factors_rec.PAYING_LOCATION_ID),
10858 OWN_HQ_LOCATION_ID = decode(p_hdr_det_factors_rec.OWN_HQ_LOCATION_ID,FND_API.G_MISS_NUM,
10859 OWN_HQ_LOCATION_ID,
10860 p_hdr_det_factors_rec.OWN_HQ_LOCATION_ID),
10861 TRADING_HQ_LOCATION_ID = decode(p_hdr_det_factors_rec.TRADING_HQ_LOCATION_ID,FND_API.G_MISS_NUM,
10862 TRADING_HQ_LOCATION_ID,
10863 p_hdr_det_factors_rec.TRADING_HQ_LOCATION_ID),
10864 POC_LOCATION_ID = decode(p_hdr_det_factors_rec.POC_LOCATION_ID,FND_API.G_MISS_NUM,
10865 POC_LOCATION_ID,
10866 p_hdr_det_factors_rec.POC_LOCATION_ID),
10867 POI_LOCATION_ID = decode(p_hdr_det_factors_rec.POI_LOCATION_ID,FND_API.G_MISS_NUM,
10868 POI_LOCATION_ID,
10869 p_hdr_det_factors_rec.POI_LOCATION_ID),
10870 POD_LOCATION_ID = decode(p_hdr_det_factors_rec.POD_LOCATION_ID,FND_API.G_MISS_NUM,
10871 POD_LOCATION_ID,
10872 p_hdr_det_factors_rec.POD_LOCATION_ID),
10873 TITLE_TRANSFER_LOCATION_ID = decode(p_hdr_det_factors_rec.TITLE_TRANSFER_LOCATION_ID,FND_API.G_MISS_NUM,
10877 SHIP_TO_PARTY_TAX_PROF_ID,
10874 TITLE_TRANSFER_LOCATION_ID,
10875 p_hdr_det_factors_rec.TITLE_TRANSFER_LOCATION_ID),
10876 SHIP_TO_PARTY_TAX_PROF_ID = decode(p_hdr_det_factors_rec.SHIP_TO_PARTY_ID,FND_API.G_MISS_NUM,
10878 l_ship_to_ptp_id),
10879 SHIP_FROM_PARTY_TAX_PROF_ID = decode(p_hdr_det_factors_rec.SHIP_FROM_PARTY_ID,FND_API.G_MISS_NUM,
10880 SHIP_FROM_PARTY_TAX_PROF_ID,
10881 l_ship_from_ptp_id),
10882 POA_PARTY_TAX_PROF_ID = decode(p_hdr_det_factors_rec.POA_PARTY_ID,FND_API.G_MISS_NUM,
10883 POA_PARTY_TAX_PROF_ID,
10884 l_poa_ptp_id),
10885 POO_PARTY_TAX_PROF_ID = decode(p_hdr_det_factors_rec.POO_PARTY_ID,FND_API.G_MISS_NUM,
10886 POO_PARTY_TAX_PROF_ID,
10887 l_poo_ptp_id),
10888 PAYING_PARTY_TAX_PROF_ID = decode(p_hdr_det_factors_rec.PAYING_PARTY_ID,FND_API.G_MISS_NUM,
10889 PAYING_PARTY_TAX_PROF_ID,
10890 p_hdr_det_factors_rec.PAYING_PARTY_TAX_PROF_ID),
10891 OWN_HQ_PARTY_TAX_PROF_ID = decode(p_hdr_det_factors_rec.OWN_HQ_PARTY_ID,FND_API.G_MISS_NUM,
10892 OWN_HQ_PARTY_TAX_PROF_ID,
10893 p_hdr_det_factors_rec.OWN_HQ_PARTY_TAX_PROF_ID),
10894 TRADING_HQ_PARTY_TAX_PROF_ID = decode(p_hdr_det_factors_rec.TRADING_HQ_PARTY_ID,FND_API.G_MISS_NUM,
10895 TRADING_HQ_PARTY_TAX_PROF_ID,
10896 p_hdr_det_factors_rec.TRADING_HQ_PARTY_TAX_PROF_ID),
10897 POI_PARTY_TAX_PROF_ID = decode(p_hdr_det_factors_rec.POI_PARTY_ID,FND_API.G_MISS_NUM,
10898 POI_PARTY_TAX_PROF_ID,
10899 p_hdr_det_factors_rec.POI_PARTY_TAX_PROF_ID),
10900 POD_PARTY_TAX_PROF_ID = decode(p_hdr_det_factors_rec.POD_PARTY_ID,FND_API.G_MISS_NUM,
10901 POD_PARTY_TAX_PROF_ID,
10902 p_hdr_det_factors_rec.POD_PARTY_TAX_PROF_ID),
10903 BILL_TO_PARTY_TAX_PROF_ID = decode(p_hdr_det_factors_rec.BILL_TO_PARTY_ID,FND_API.G_MISS_NUM,
10904 BILL_TO_PARTY_TAX_PROF_ID,
10905 l_bill_to_ptp_id),
10906 BILL_FROM_PARTY_TAX_PROF_ID = decode(p_hdr_det_factors_rec.BILL_FROM_PARTY_ID,FND_API.G_MISS_NUM,
10907 BILL_FROM_PARTY_TAX_PROF_ID,
10908 l_bill_from_ptp_id),
10909 TITLE_TRANS_PARTY_TAX_PROF_ID = decode(p_hdr_det_factors_rec.TITLE_TRANSFER_PARTY_ID,FND_API.G_MISS_NUM,
10910 TITLE_TRANS_PARTY_TAX_PROF_ID,
10911 p_hdr_det_factors_rec.TITLE_TRANS_PARTY_TAX_PROF_ID),
10912 SHIP_TO_SITE_TAX_PROF_ID = decode(p_hdr_det_factors_rec.SHIP_TO_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10913 SHIP_TO_SITE_TAX_PROF_ID,
10914 l_ship_to_ptp_site_id),
10915 SHIP_FROM_SITE_TAX_PROF_ID = decode(p_hdr_det_factors_rec.SHIP_FROM_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10916 SHIP_FROM_SITE_TAX_PROF_ID,
10917 l_ship_from_ptp_site_id),
10918 BILL_TO_SITE_TAX_PROF_ID = decode(p_hdr_det_factors_rec.BILL_TO_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10919 BILL_TO_SITE_TAX_PROF_ID,
10920 l_bill_to_ptp_site_id),
10921 BILL_FROM_SITE_TAX_PROF_ID = decode(p_hdr_det_factors_rec.BILL_FROM_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10922 BILL_FROM_SITE_TAX_PROF_ID,
10926 l_poa_ptp_site_id),
10923 l_bill_from_ptp_site_id),
10924 POA_SITE_TAX_PROF_ID = decode(p_hdr_det_factors_rec.POA_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10925 POA_SITE_TAX_PROF_ID,
10927 POO_SITE_TAX_PROF_ID = decode(p_hdr_det_factors_rec.POO_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10928 POO_SITE_TAX_PROF_ID,
10929 l_poo_ptp_site_id),
10930 PAYING_SITE_TAX_PROF_ID = decode(p_hdr_det_factors_rec.PAYING_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10931 PAYING_SITE_TAX_PROF_ID,
10932 p_hdr_det_factors_rec.PAYING_SITE_TAX_PROF_ID),
10933 OWN_HQ_SITE_TAX_PROF_ID = decode(p_hdr_det_factors_rec.OWN_HQ_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10934 OWN_HQ_SITE_TAX_PROF_ID,
10935 p_hdr_det_factors_rec.OWN_HQ_SITE_TAX_PROF_ID),
10936 POI_SITE_TAX_PROF_ID = decode(p_hdr_det_factors_rec.POI_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10937 POI_SITE_TAX_PROF_ID,
10938 p_hdr_det_factors_rec.POI_SITE_TAX_PROF_ID),
10939 POD_SITE_TAX_PROF_ID = decode(p_hdr_det_factors_rec.POD_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10940 POD_SITE_TAX_PROF_ID,
10941 p_hdr_det_factors_rec.POD_SITE_TAX_PROF_ID),
10942 TITLE_TRANS_SITE_TAX_PROF_ID = decode(p_hdr_det_factors_rec.TITLE_TRANSFER_PARTY_SITE_ID,FND_API.G_MISS_NUM,
10943 TITLE_TRANS_SITE_TAX_PROF_ID,
10944 p_hdr_det_factors_rec.TITLE_TRANS_SITE_TAX_PROF_ID),
10945 HQ_ESTB_PARTY_TAX_PROF_ID = l_hq_estb_ptp_id,
10946 LINE_LEVEL_ACTION = decode(LINE_LEVEL_ACTION, 'CREATE','UPDATE',
10947 'SYNCHRONIZE','UPDATE',
10948 LINE_LEVEL_ACTION),
10949 TAX_PROCESSING_COMPLETED_FLAG = 'N',
10950 LAST_UPDATE_DATE = sysdate,
10951 LAST_UPDATED_BY = fnd_global.user_id,
10952 LAST_UPDATE_LOGIN = fnd_global.conc_login_id
10953 WHERE APPLICATION_ID = p_hdr_det_factors_rec.APPLICATION_ID
10954 AND ENTITY_CODE = p_hdr_det_factors_rec.ENTITY_CODE
10955 AND EVENT_CLASS_CODE = p_hdr_det_factors_rec.EVENT_CLASS_CODE
10956 AND TRX_ID = p_hdr_det_factors_rec.TRX_ID;
10957 END IF;
10958 --Bugfix 4486946 - on-the-fly upgrade end
10959
10960 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10961 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
10962 END IF;
10963
10964 EXCEPTION
10965 WHEN FND_API.G_EXC_ERROR THEN
10966 ROLLBACK TO Update_Det_Factors_Hdr_PVT;
10967 x_return_status := FND_API.G_RET_STS_ERROR ;
10968 /*---------------------------------------------------------+
10969 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
10970 | in the message stack. If there is only one message in |
10971 | the stack it retrieves this message |
10972 +---------------------------------------------------------*/
10973 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
10974 p_count => x_msg_count,
10975 p_data => x_msg_data
10976 );
10977
10978 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
10979 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
10980 END IF;
10981
10982 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
10983 ROLLBACK TO Update_Det_Factors_Hdr_PVT;
10984 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
10985 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
10986 FND_MSG_PUB.Add;
10987 /*---------------------------------------------------------+
10988 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
10989 | in the message stack. If there is only one message in |
10990 | the stack it retrieves this message |
10991 +---------------------------------------------------------*/
10992 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
10993 p_count => x_msg_count,
10994 p_data => x_msg_data
10995 );
10996 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
11000 ROLLBACK TO Update_Det_Factors_Hdr_PVT;
10997 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
10998 END IF;
10999 WHEN OTHERS THEN
11001 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
11002 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
11003 FND_MSG_PUB.Add;
11004 /*---------------------------------------------------------+
11005 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
11006 | in the message stack. If there is only one message in |
11007 | the stack it retrieves this message |
11008 +---------------------------------------------------------*/
11009 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
11010 p_count => x_msg_count,
11011 p_data => x_msg_data
11012 );
11013
11014 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
11015 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
11016 END IF;
11017 END update_det_factors_hdr;
11018
11019
11020 /* ========================================================================*
11021 | PROCEDURE update_line_det_factors : This procedure should be called by |
11022 | products when updating any of the line attributes on the transaction |
11023 | so that the tax repository is also in sync with the line level updates |
11024 | This line will be flagged to be picked up by the tax calculation process|
11025 * =======================================================================*/
11026
11027 PROCEDURE update_line_det_factors (
11028 p_api_version IN NUMBER,
11029 p_init_msg_list IN VARCHAR2,
11030 p_commit IN VARCHAR2,
11031 p_validation_level IN NUMBER,
11032 x_return_status OUT NOCOPY VARCHAR2,
11033 x_msg_count OUT NOCOPY NUMBER,
11034 x_msg_data OUT NOCOPY VARCHAR2
11035 ) IS
11036 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_LINE_DET_FACTORS';
11037 l_api_version CONSTANT NUMBER := 1.0;
11038 l_return_status VARCHAR2(1);
11039 l_init_msg_list VARCHAR2(1);
11040 l_user_updated_flag VARCHAR2(1);
11041 l_call_default_APIs BOOLEAN;
11042 l_upg_trx_info_rec ZX_ON_FLY_TRX_UPGRADE_PKG.zx_upg_trx_info_rec_type;
11043 l_event_class_rec event_class_rec_type;
11044
11045 BEGIN
11046 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11047 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
11048 END IF;
11049
11050 /*--------------------------------------------------+
11051 | Standard start of API savepoint |
11052 +--------------------------------------------------*/
11053 SAVEPOINT Update_Line_Det_Factors_PVT;
11054
11055 /*--------------------------------------------------+
11056 | Standard call to check for call compatibility |
11057 +--------------------------------------------------*/
11058 IF NOT FND_API.Compatible_API_Call(l_api_version,
11059 p_api_version,
11060 l_api_name,
11061 G_PKG_NAME
11062 ) THEN
11063 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
11064 END IF;
11065
11066 /*--------------------------------------------------------------+
11067 | Initialize message list if p_init_msg_list is set to TRUE |
11068 +--------------------------------------------------------------*/
11069 IF p_init_msg_list is null THEN
11070 l_init_msg_list := FND_API.G_FALSE;
11071 ELSE
11072 l_init_msg_list := p_init_msg_list;
11073 END IF;
11074
11075 IF FND_API.to_Boolean(l_init_msg_list) THEN
11076 FND_MSG_PUB.initialize;
11077 END IF;
11078
11079 /*-----------------------------------------+
11080 | Initialize return status to SUCCESS |
11081 +-----------------------------------------*/
11082 x_return_status := FND_API.G_RET_STS_SUCCESS;
11083
11084 /*-----------------------------------------+
11085 | Populate Global Variable |
11086 +-----------------------------------------*/
11087 G_PUB_SRVC := l_api_name;
11088 G_DATA_TRANSFER_MODE := 'PLS';
11089 G_EXTERNAL_API_CALL := 'N';
11090
11091 l_event_class_rec.INTERNAL_ORGANIZATION_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.INTERNAL_ORGANIZATION_ID(1);
11092 l_event_class_rec.LEGAL_ENTITY_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LEGAL_ENTITY_ID(1);
11093 l_event_class_rec.LEDGER_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LEDGER_ID(1);
11094 l_event_class_rec.APPLICATION_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLICATION_ID(1);
11095 l_event_class_rec.ENTITY_CODE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ENTITY_CODE(1);
11096 l_event_class_rec.EVENT_CLASS_CODE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.EVENT_CLASS_CODE(1);
11097 l_event_class_rec.EVENT_TYPE_CODE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.EVENT_TYPE_CODE(1);
11098 l_event_class_rec.CTRL_TOTAL_HDR_TX_AMT := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CTRL_TOTAL_HDR_TX_AMT(1);
11099 l_event_class_rec.TRX_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_ID(1);
11103 l_event_class_rec.TRX_CURRENCY_CODE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_CURRENCY_CODE(1);
11100 l_event_class_rec.TRX_DATE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_DATE(1);
11101 l_event_class_rec.REL_DOC_DATE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RELATED_DOC_DATE(1);
11102 l_event_class_rec.PROVNL_TAX_DETERMINATION_DATE:= ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PROVNL_TAX_DETERMINATION_DATE(1);
11104 l_event_class_rec.PRECISION := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRECISION(1);
11105 l_event_class_rec.CURRENCY_CONVERSION_TYPE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CURRENCY_CONVERSION_TYPE(1);
11106 l_event_class_rec.CURRENCY_CONVERSION_RATE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CURRENCY_CONVERSION_RATE(1);
11107 l_event_class_rec.CURRENCY_CONVERSION_DATE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CURRENCY_CONVERSION_DATE(1);
11108 l_event_class_rec.ROUNDING_SHIP_TO_PARTY_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_SHIP_TO_PARTY_ID(1);
11109 l_event_class_rec.ROUNDING_SHIP_FROM_PARTY_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_SHIP_FROM_PARTY_ID(1);
11110 l_event_class_rec.ROUNDING_BILL_TO_PARTY_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_BILL_TO_PARTY_ID(1);
11111 l_event_class_rec.ROUNDING_BILL_FROM_PARTY_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_BILL_FROM_PARTY_ID(1);
11112 l_event_class_rec.RNDG_SHIP_TO_PARTY_SITE_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_SHIP_TO_PARTY_SITE_ID(1);
11113 l_event_class_rec.RNDG_SHIP_FROM_PARTY_SITE_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_SHIP_FROM_PARTY_SITE_ID(1);
11114 l_event_class_rec.RNDG_BILL_TO_PARTY_SITE_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_BILL_TO_PARTY_SITE_ID(1);
11115 l_event_class_rec.RNDG_BILL_FROM_PARTY_SITE_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_BILL_FROM_PARTY_SITE_ID(1);
11116
11117
11118 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11119 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,
11120 'application_id: '||to_char(l_event_class_rec.application_id)||
11121 ', entity_code: '||l_event_class_rec.entity_code||
11122 ', event_class_code: '||l_event_class_rec.event_class_code||
11123 ', event_type_code: '||l_event_class_rec.event_type_code||
11124 ', trx_id: '||to_char(l_event_class_rec.trx_id)||
11125 ', internal_organization_id: '||to_char(l_event_class_rec.internal_organization_id)||
11126 ', ledger_id: '||to_char(l_event_class_rec.ledger_id)||
11127 ', legal_entity_id: '||to_char(l_event_class_rec.legal_entity_id)||
11128 ', trx_date: '||to_char(l_event_class_rec.trx_date)||
11129 ', related_document_date: '||to_char(l_event_class_rec.rel_doc_date)||
11130 ', provnl_tax_determination_date: '||to_char(l_event_class_rec.provnl_tax_determination_date)||
11131 ', trx_currency_code: '||l_event_class_rec.trx_currency_code||
11132 ', currency_conversion_type: '||l_event_class_rec.currency_conversion_type||
11133 ', currency_conversion_rate: '||to_char(l_event_class_rec.currency_conversion_rate)||
11134 ', currency_conversion_date: '||to_char(l_event_class_rec.currency_conversion_date)||
11135 ', rounding_ship_to_party_id: '||to_char(l_event_class_rec.rounding_ship_to_party_id)||
11136 ', rounding_ship_from_party_id: '||to_char(l_event_class_rec.rounding_ship_from_party_id)||
11137 ', rounding_bill_to_party_id: '||to_char(l_event_class_rec.rounding_bill_to_party_id)||
11138 ', rounding_bill_from_party_id: '||to_char(l_event_class_rec.rounding_bill_from_party_id)||
11139 ', rndg_ship_to_party_site_id: '||to_char(l_event_class_rec.rndg_ship_to_party_site_id)||
11140 ', rndg_ship_from_party_site_id: '||to_char(l_event_class_rec.rndg_ship_from_party_site_id)||
11141 ', rndg_bill_to_party_site_id: '||to_char(l_event_class_rec.rndg_bill_to_party_site_id)||
11142 ', rndg_bill_from_party_site_id: '||to_char(l_event_class_rec.rndg_bill_from_party_site_id)
11143 );
11144 END IF;
11145
11146
11147 /*Lock the line so no updates by another user can happen*/
11148 BEGIN
11149 SELECT event_id,
11150 nvl(user_upd_det_factors_flag,'N')
11151 INTO l_event_class_rec.event_id,
11152 l_user_updated_flag
11153 FROM ZX_LINES_DET_FACTORS
11154 WHERE application_id = l_event_class_rec.application_id
11155 AND entity_code = l_event_class_rec.entity_code
11156 AND event_class_code = l_event_class_rec.event_class_code
11157 AND trx_id = l_event_class_rec.trx_id
11158 AND trx_line_id = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_line_id(1)
11159 AND trx_level_type = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_level_type(1)
11160 FOR UPDATE NOWAIT; --locks the line
11161
11162 EXCEPTION
11163 WHEN NO_DATA_FOUND THEN
11164 l_upg_trx_info_rec.application_id := l_event_class_rec.application_id;
11165 l_upg_trx_info_rec.entity_code := l_event_class_rec.entity_code;
11166 l_upg_trx_info_rec.event_class_code := l_event_class_rec.event_class_code;
11167 l_upg_trx_info_rec.trx_id := l_event_class_rec.trx_id;
11168 ZX_ON_FLY_TRX_UPGRADE_PKG.upgrade_trx_on_fly(p_upg_trx_info_rec => l_upg_trx_info_rec,
11169 x_return_status => l_return_status
11170 );
11171 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11172 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11176 RAISE FND_API.G_EXC_ERROR;
11173 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_ON_FLY_TRX_UPGRADE_PKG.upgrade_trx_on_fly returned errors');
11174 END IF;
11175 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
11177 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
11178 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
11179 END IF;
11180 END IF;
11181 /*Lock the line so no updates by another user can happen*/
11182 SELECT event_id,
11183 nvl(user_upd_det_factors_flag,'N')
11184 INTO l_event_class_rec.event_id,
11185 l_user_updated_flag
11186 FROM ZX_LINES_DET_FACTORS
11187 WHERE application_id = l_event_class_rec.application_id
11188 AND entity_code = l_event_class_rec.entity_code
11189 AND event_class_code = l_event_class_rec.event_class_code
11190 AND trx_id = l_event_class_rec.trx_id
11191 AND trx_line_id = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_line_id(1)
11192 AND trx_level_type = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_level_type(1)
11193 FOR UPDATE NOWAIT; --locks the line
11194 END;
11195
11196 /*------------------------------------------------------+
11197 | Validate and Initializate parameters for Inserting |
11198 | into line_det_factors |
11199 +------------------------------------------------------*/
11200
11201 IF ( G_LEVEL_EVENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11202 FND_LOG.STRING(G_LEVEL_EVENT,G_MODULE_NAME||l_api_name,
11203 'Validating Transaction: '||
11204 to_char(l_event_class_rec.trx_id)||
11205 ' of Application: '||
11206 to_char(l_event_class_rec.application_id) ||
11207 ' and Event Class: '||
11208 l_event_class_rec.event_class_code
11209 );
11210 END IF;
11211
11212 ZX_VALID_INIT_PARAMS_PKG.insupd_line_det_factors(p_event_class_rec =>l_event_class_rec,
11213 p_trx_line_index => 1,
11214 x_return_status =>l_return_status
11215 );
11216
11217 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11218 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11219 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
11220 ':ZX_VALID_INIT_PARAMS_PKG.insupd_line_det_factors returned errors');
11221 END IF;
11222 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
11223 RAISE FND_API.G_EXC_ERROR;
11224 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
11225 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
11226 END IF;
11227 END IF;
11228
11229 -- Fix for Bug 5038953
11230 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TAX_EVENT_CLASS_CODE(1) := l_event_class_rec.TAX_EVENT_CLASS_CODE;
11231 -- End fix for Bug 5038953
11232
11233 /*----------------------------------------------------------------------------+
11234 |Call the defaulting API to default the determining attributes if user has not|
11235 |already overridden them in the determining factors window in which case we |
11236 |need to honor the overridden values |
11237 +----------------------------------------------------------------------------*/
11238 IF l_user_updated_flag = 'N' THEN
11239 --Call the redefaulting APIs only if all tax determining attributes passed as null
11240 l_call_default_APIs := ZX_SRVC_TYP_PKG.decide_call_redefault_APIs (p_trx_line_index => 1);
11241
11242 IF l_call_default_APIs THEN
11243 IF ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_level_action(1) = 'UPDATE' THEN
11244 ZX_SRVC_TYP_PKG.call_redefaulting_APIs(p_event_class_rec => l_event_class_rec,
11245 p_trx_line_index => 1,
11246 x_return_status => l_return_status
11247 );
11248 END IF;
11249 END IF;
11250
11251 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11252 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11253 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
11254 ':ZX_SRVC_TYP_PKG.call_redefaulting_APIs returned errors');
11255 END IF;
11256 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
11257 RAISE FND_API.G_EXC_ERROR;
11258 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
11259 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
11260 END IF;
11261 END IF;
11262 END IF;
11263
11264 /*------------------------------------------+
11265 |Call to update the lines |
11266 +------------------------------------------*/
11267 ZX_SRVC_TYP_PKG.insupd_line_det_factors(p_event_class_rec => l_event_class_rec,
11268 x_return_status => l_return_status
11269 );
11270
11271 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11272 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11273 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
11274 ':ZX_SRVC_TYP_PKG.insupd_line_det_factors returned errors');
11275 END IF;
11276 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
11277 RAISE FND_API.G_EXC_ERROR;
11281 END IF;
11278 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
11279 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
11280 END IF;
11282
11283 --Delete from the global structures so that there are no hanging/redundant
11284 --records sitting there
11285 ZX_GLOBAL_STRUCTURES_PKG.delete_trx_line_dist_tbl;
11286
11287 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11288 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
11289 END IF;
11290
11291 EXCEPTION
11292 WHEN FND_API.G_EXC_ERROR THEN
11293 ROLLBACK TO Update_Line_Det_Factors_PVT;
11294 x_return_status := FND_API.G_RET_STS_ERROR ;
11295 /*---------------------------------------------------------+
11296 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
11297 | in the message stack. If there is only one message in |
11298 | the stack it retrieves this message |
11299 +---------------------------------------------------------*/
11300 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
11301 p_count => x_msg_count,
11302 p_data => x_msg_data
11303 );
11304
11305 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
11306 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
11307 END IF;
11308
11309 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
11310 ROLLBACK TO Update_Line_Det_Factors_PVT;
11311 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
11312 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
11313 FND_MSG_PUB.Add;
11314 /*---------------------------------------------------------+
11315 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
11316 | in the message stack. If there is only one message in |
11317 | the stack it retrieves this message |
11318 +---------------------------------------------------------*/
11319 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
11320 p_count => x_msg_count,
11321 p_data => x_msg_data
11322 );
11323 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
11324 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
11325 END IF;
11326
11327 WHEN OTHERS THEN
11328 /*-------------------------------------------------------+
11329 | Handle application errors that result from trapable |
11330 | error conditions. The error messages have already |
11331 | been put on the error stack. |
11332 +-------------------------------------------------------*/
11333 ROLLBACK TO Update_Line_Det_Factors_PVT;
11334 IF (SQLCODE = 54) THEN
11335 x_return_status := FND_API.G_RET_STS_ERROR ;
11336 FND_MESSAGE.SET_NAME('ZX','ZX_RESOURCE_BUSY');
11337 ELSE
11338 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
11339 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
11340 END IF;
11341 FND_MSG_PUB.Add;
11342 /*---------------------------------------------------------+
11343 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
11344 | in the message stack. If there is only one message in |
11345 | the stack it retrieves this message |
11346 +---------------------------------------------------------*/
11347 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
11348 p_count => x_msg_count,
11349 p_data => x_msg_data
11350 );
11351
11352 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
11353 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
11354 END IF;
11355 END update_line_det_factors;
11356
11357 /* ============================================================================*
11358 | PROCEDURE copy_insert_line_det_factors : This procedure will be called |
11359 | by iProcurement to insert all the transaction lines into zx_lines_det_factors|
11360 | after copying the tax determining attributes from the source document |
11361 | information passed in. All lines thus inserted will be flagged to be picked |
11362 | up by the tax calculation process |
11363 * ============================================================================*/
11364
11365 PROCEDURE copy_insert_line_det_factors(
11366 p_api_version IN NUMBER,
11367 p_init_msg_list IN VARCHAR2,
11368 p_commit IN VARCHAR2,
11369 p_validation_level IN NUMBER,
11370 x_return_status OUT NOCOPY VARCHAR2,
11371 x_msg_count OUT NOCOPY NUMBER,
11372 x_msg_data OUT NOCOPY VARCHAR2
11373 )IS
11374 l_api_name CONSTANT VARCHAR2(30) := 'COPY_INSERT_LINE_DET_FACTORS';
11375 l_api_version CONSTANT NUMBER := 1.0;
11376 l_return_status VARCHAR2(1);
11377 l_event_class_rec event_class_rec_type;
11378 l_line_det_rec ZX_LINES_DET_FACTORS%rowtype;
11379 l_line_exists NUMBER;
11380 l_record_exists BOOLEAN;
11381 l_init_msg_list VARCHAR2(1);
11382 l_tax_classification_code VARCHAR2(50);
11383 BEGIN
11384 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11388 /*--------------------------------------------------+
11385 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
11386 END IF;
11387
11389 | Standard start of API savepoint |
11390 +--------------------------------------------------*/
11391 SAVEPOINT Copy_Ins_Line_Det_Factors_PVT;
11392
11393 /*--------------------------------------------------+
11394 | Standard call to check for call compatibility |
11395 +--------------------------------------------------*/
11396 IF NOT FND_API.Compatible_API_Call(l_api_version,
11397 p_api_version,
11398 l_api_name,
11399 G_PKG_NAME
11400 ) THEN
11401 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
11402 END IF;
11403
11404 /*--------------------------------------------------------------+
11405 | Initialize message list if p_init_msg_list is set to TRUE |
11406 +--------------------------------------------------------------*/
11407 IF p_init_msg_list is null THEN
11408 l_init_msg_list := FND_API.G_FALSE;
11409 ELSE
11410 l_init_msg_list := p_init_msg_list;
11411 END IF;
11412
11413 IF FND_API.to_Boolean(l_init_msg_list) THEN
11414 FND_MSG_PUB.initialize;
11415 END IF;
11416
11417 /*-----------------------------------------+
11418 | Initialize return status to SUCCESS |
11419 +-----------------------------------------*/
11420 x_return_status := FND_API.G_RET_STS_SUCCESS;
11421
11422 /*-----------------------------------------+
11423 | Populate Global Variable |
11424 +-----------------------------------------*/
11425 G_PUB_SRVC := l_api_name;
11426 G_DATA_TRANSFER_MODE := 'PLS';
11427 G_EXTERNAL_API_CALL := 'N';
11428
11429
11430 /*-----------------------------------------+
11431 |Populate the event class record structure|
11432 +-----------------------------------------*/
11433 l_event_class_rec.INTERNAL_ORGANIZATION_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.INTERNAL_ORGANIZATION_ID(1);
11434 l_event_class_rec.LEGAL_ENTITY_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LEGAL_ENTITY_ID(1);
11435 l_event_class_rec.LEDGER_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LEDGER_ID(1);
11436 l_event_class_rec.APPLICATION_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLICATION_ID(1);
11437 l_event_class_rec.ENTITY_CODE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ENTITY_CODE(1);
11438 l_event_class_rec.EVENT_CLASS_CODE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.EVENT_CLASS_CODE(1);
11439 l_event_class_rec.EVENT_TYPE_CODE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.EVENT_TYPE_CODE(1);
11440 l_event_class_rec.CTRL_TOTAL_HDR_TX_AMT := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CTRL_TOTAL_HDR_TX_AMT(1);
11441 l_event_class_rec.TRX_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_ID(1);
11442 l_event_class_rec.TRX_DATE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_DATE(1);
11443 l_event_class_rec.REL_DOC_DATE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RELATED_DOC_DATE(1);
11444 l_event_class_rec.PROVNL_TAX_DETERMINATION_DATE:= ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PROVNL_TAX_DETERMINATION_DATE(1);
11445 l_event_class_rec.TRX_CURRENCY_CODE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_CURRENCY_CODE(1);
11446 l_event_class_rec.CURRENCY_CONVERSION_TYPE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CURRENCY_CONVERSION_TYPE(1);
11447 l_event_class_rec.CURRENCY_CONVERSION_RATE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CURRENCY_CONVERSION_RATE(1);
11448 l_event_class_rec.CURRENCY_CONVERSION_DATE := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CURRENCY_CONVERSION_DATE(1);
11449 l_event_class_rec.ROUNDING_SHIP_TO_PARTY_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_SHIP_TO_PARTY_ID(1);
11450 l_event_class_rec.ROUNDING_SHIP_FROM_PARTY_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_SHIP_FROM_PARTY_ID(1);
11451 l_event_class_rec.ROUNDING_BILL_TO_PARTY_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_BILL_TO_PARTY_ID(1);
11452 l_event_class_rec.ROUNDING_BILL_FROM_PARTY_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_BILL_FROM_PARTY_ID(1);
11453 l_event_class_rec.RNDG_SHIP_TO_PARTY_SITE_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_SHIP_TO_PARTY_SITE_ID(1);
11454 l_event_class_rec.RNDG_SHIP_FROM_PARTY_SITE_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_SHIP_FROM_PARTY_SITE_ID(1);
11455 l_event_class_rec.RNDG_BILL_TO_PARTY_SITE_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_BILL_TO_PARTY_SITE_ID(1);
11456 l_event_class_rec.RNDG_BILL_FROM_PARTY_SITE_ID := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_BILL_FROM_PARTY_SITE_ID(1);
11457
11458
11459 /*------------------------------------------------------------------------------------------+
11460 | Set the event id for the whole document- Since this API is called for each transaction |
11461 | line, the event id needs to be generated from the sequence only for the first transaction|
11462 | line. For other lines, we need to retrieve the event id from the table. |
11463 | Also store the taxation country, document sub type from the line to be passed to |
11464 | defaulting API which will honor these header attributes of the line instead of trying to |
11465 | redefault them again |
11469 LOOP
11466 +-----------------------------------------------------------------------------------------*/
11467 l_record_exists := FALSE;
11468 FOR l_line_det_rec in lock_line_det_factors_for_doc(l_event_class_rec)
11470 l_record_exists := TRUE;
11471 l_event_class_rec.event_id := l_line_det_rec.event_id;
11472 exit;
11473 END LOOP;
11474
11475
11476 IF NOT(l_record_exists) THEN
11477 SELECT zx_lines_det_factors_s.nextval
11478 INTO l_event_class_rec.event_id
11479 FROM dual;
11480 END IF;
11481
11482 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11483 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,
11484 'application_id: '||to_char(l_event_class_rec.application_id)||
11485 ', entity_code: '||l_event_class_rec.entity_code||
11486 ', event_class_code: '||l_event_class_rec.event_class_code||
11487 ', event_type_code: '||l_event_class_rec.event_type_code||
11488 ', trx_id: '||to_char(l_event_class_rec.trx_id)||
11489 ', internal_organization_id: '||to_char(l_event_class_rec.internal_organization_id)||
11490 ', ledger_id: '||to_char(l_event_class_rec.ledger_id)||
11491 ', legal_entity_id: '||to_char(l_event_class_rec.legal_entity_id)||
11492 ', trx_date: '||to_char(l_event_class_rec.trx_date)||
11493 ', related_document_date: '||to_char(l_event_class_rec.rel_doc_date)||
11494 ', provnl_tax_determination_date: '||to_char(l_event_class_rec.provnl_tax_determination_date)||
11495 ', trx_currency_code: '||l_event_class_rec.trx_currency_code||
11496 ', currency_conversion_type: '||l_event_class_rec.currency_conversion_type||
11497 ', currency_conversion_rate: '||to_char(l_event_class_rec.currency_conversion_rate)||
11498 ', currency_conversion_date: '||to_char(l_event_class_rec.currency_conversion_date)||
11499 ', rounding_ship_to_party_id: '||to_char(l_event_class_rec.rounding_ship_to_party_id)||
11500 ', rounding_ship_from_party_id: '||to_char(l_event_class_rec.rounding_ship_from_party_id)||
11501 ', rounding_bill_to_party_id: '||to_char(l_event_class_rec.rounding_bill_to_party_id)||
11502 ', rounding_bill_from_party_id: '||to_char(l_event_class_rec.rounding_bill_from_party_id)||
11503 ', rndg_ship_to_party_site_id: '||to_char(l_event_class_rec.rndg_ship_to_party_site_id)||
11504 ', rndg_ship_from_party_site_id: '||to_char(l_event_class_rec.rndg_ship_from_party_site_id)||
11505 ', rndg_bill_to_party_site_id: '||to_char(l_event_class_rec.rndg_bill_to_party_site_id)||
11506 ', rndg_bill_from_party_site_id: '||to_char(l_event_class_rec.rndg_bill_from_party_site_id)
11507 );
11508 END IF;
11509
11510 /*------------------------------------------------------+
11511 | Validate and Initializate parameters for Inserting |
11512 | into line_det_factors |
11513 +------------------------------------------------------*/
11514 ZX_VALID_INIT_PARAMS_PKG.insupd_line_det_factors(p_event_class_rec =>l_event_class_rec,
11515 p_trx_line_index => 1,
11516 x_return_status =>l_return_status
11517 );
11518
11519 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11520 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11521 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
11522 ':ZX_VALID_INIT_PARAMS_PKG.insupd_line_det_factors returned errors');
11523 END IF;
11524 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
11525 RAISE FND_API.G_EXC_ERROR;
11526 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
11527 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
11528 END IF;
11529 END IF;
11530
11531 /* =============================================*
11532 |Default the tax determining attributes |
11533 * ============================================*/
11534 /*If the Source Document Line identifiers are passed, then derive the values
11535 of the tax determining factors from ZX_LINES_DET_FACTORS for the source document line.*/
11536 FOR i in 1 .. nvl(ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.application_id.LAST,-99)
11537 LOOP
11538 SELECT
11539 default_taxation_country,
11540 document_sub_type,
11541 trx_business_category,
11542 line_intended_use,
11543 user_defined_fisc_class,
11544 product_fisc_classification,
11545 product_category,
11546 assessable_value,
11547 product_type,
11548 decode(l_event_class_rec.prod_family_grp_code,'P2P',input_tax_classification_code,
11549 'O2C',output_tax_classification_code)
11550 INTO
11551 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.default_taxation_country(i),
11552 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.document_sub_type(i),
11553 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_business_category(i),
11554 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_intended_use(i),
11555 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.user_defined_fisc_class(i),
11556 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_fisc_classification(i),
11557 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_category(i),
11558 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.assessable_value(i),
11559 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_type(i),
11563 AND entity_code = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.source_entity_code(i)
11560 l_tax_classification_code
11561 FROM ZX_LINES_DET_FACTORS
11562 WHERE application_id = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.source_application_id(i)
11564 AND event_class_code = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.source_event_class_code(i)
11565 AND trx_id = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.source_trx_id(i)
11566 AND trx_line_id = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.source_line_id(i)
11567 AND trx_level_type = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.source_trx_level_type(i);
11568
11569 IF l_event_class_rec.prod_family_grp_code = 'P2P' THEN
11570 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.input_tax_classification_code(i) := l_tax_classification_code;
11571 ELSIF l_event_class_rec.prod_family_grp_code = 'O2C' AND --AR passes the tax classification code so do not override
11572 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.output_tax_classification_code(i) is null THEN
11573 ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.output_tax_classification_code(i) := l_tax_classification_code;
11574 END IF;
11575 END LOOP;
11576 /*------------------------------------------+
11577 |Call to insert the lines |
11578 +------------------------------------------*/
11579 ZX_SRVC_TYP_PKG.insupd_line_det_factors(p_event_class_rec => l_event_class_rec,
11580 x_return_status => l_return_status
11581 );
11582
11583 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11584 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11585 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
11586 ':ZX_SRVC_TYP_PKG.insupd_line_det_factors returned errors');
11587 END IF;
11588 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
11589 RAISE FND_API.G_EXC_ERROR;
11590 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
11591 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
11592 END IF;
11593 END IF;
11594
11595 --Delete from the global structures so that there are no hanging/redundant
11596 --records sitting there
11597 ZX_GLOBAL_STRUCTURES_PKG.delete_trx_line_dist_tbl;
11598
11599 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11600 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
11601 END IF;
11602
11603 EXCEPTION
11604 WHEN FND_API.G_EXC_ERROR THEN
11605 ROLLBACK TO Copy_Ins_Line_Det_Factors_PVT;
11606 x_return_status := FND_API.G_RET_STS_ERROR ;
11607 /*---------------------------------------------------------+
11608 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
11609 | in the message stack. If there is only one message in |
11610 | the stack it retrieves this message |
11611 +---------------------------------------------------------*/
11612 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
11613 p_count => x_msg_count,
11614 p_data => x_msg_data
11615 );
11616
11617 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
11618 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
11619 END IF;
11620
11621 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
11622 ROLLBACK TO Copy_Ins_Line_Det_Factors_PVT;
11623 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
11624 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
11625 FND_MSG_PUB.Add;
11626 /*---------------------------------------------------------+
11627 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
11628 | in the message stack. If there is only one message in |
11629 | the stack it retrieves this message |
11630 +---------------------------------------------------------*/
11631 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
11632 p_count => x_msg_count,
11633 p_data => x_msg_data
11634 );
11635 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
11636 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
11637 END IF;
11638
11639 WHEN OTHERS THEN
11640 /*-------------------------------------------------------+
11641 | Handle application errors that result from trapable |
11642 | error conditions. The error messages have already |
11643 | been put on the error stack. |
11644 +-------------------------------------------------------*/
11645 ROLLBACK TO Copy_Ins_Line_Det_Factors_PVT;
11646 IF (SQLCODE = 54) THEN
11647 x_return_status := FND_API.G_RET_STS_ERROR ;
11648 FND_MESSAGE.SET_NAME('ZX','ZX_RESOURCE_BUSY');
11649 ELSE
11650 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
11651 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
11652 END IF;
11653 FND_MSG_PUB.Add;
11654 /*---------------------------------------------------------+
11655 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
11656 | in the message stack. If there is only one message in |
11657 | the stack it retrieves this message |
11661 p_data => x_msg_data
11658 +---------------------------------------------------------*/
11659 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
11660 p_count => x_msg_count,
11662 );
11663
11664 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
11665 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
11666 END IF;
11667 END copy_insert_line_det_factors;
11668
11669
11670 /* ============================================================================*
11671 | PROCEDURE is_recoverability_affected : This procedure will determine |
11672 | whether some accounting related information can be modified on the item |
11673 | distribution from tax point of view. |
11674 * ============================================================================*/
11675 PROCEDURE is_recoverability_affected(
11676 p_api_version IN NUMBER,
11677 p_init_msg_list IN VARCHAR2,
11678 p_commit IN VARCHAR2,
11679 p_validation_level IN NUMBER,
11680 x_return_status OUT NOCOPY VARCHAR2,
11681 x_msg_count OUT NOCOPY NUMBER,
11682 x_msg_data OUT NOCOPY VARCHAR2,
11683 p_pa_item_info_tbl IN OUT NOCOPY pa_item_info_tbl_type
11684 )IS
11685 l_api_name CONSTANT VARCHAR2(30) := 'IS_RECOVERABILITY_AFFECTED';
11686 l_api_version CONSTANT NUMBER := 1.0;
11687 l_return_status VARCHAR2(1);
11688 l_init_msg_list VARCHAR2(1);
11689
11690 BEGIN
11691 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11692 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
11693 END IF;
11694
11695 /*--------------------------------------------------+
11696 | Standard start of API savepoint |
11697 +--------------------------------------------------*/
11698 SAVEPOINT Is_Recoverability_Affected_PVT;
11699
11700 /*--------------------------------------------------+
11701 | Standard call to check for call compatibility |
11702 +--------------------------------------------------*/
11703 IF NOT FND_API.Compatible_API_Call(l_api_version,
11704 p_api_version,
11705 l_api_name,
11706 G_PKG_NAME
11707 ) THEN
11708 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
11709 END IF;
11710
11711 /*--------------------------------------------------------------+
11712 | Initialize message list if p_init_msg_list is set to TRUE |
11713 +--------------------------------------------------------------*/
11714 IF p_init_msg_list is null THEN
11715 l_init_msg_list := FND_API.G_FALSE;
11716 ELSE
11717 l_init_msg_list := p_init_msg_list;
11718 END IF;
11719
11720 IF FND_API.to_Boolean(l_init_msg_list) THEN
11721 FND_MSG_PUB.initialize;
11722 END IF;
11723
11724 /*-----------------------------------------+
11725 | Initialize return status to SUCCESS |
11726 +-----------------------------------------*/
11727 x_return_status := FND_API.G_RET_STS_SUCCESS;
11728
11729 /*-----------------------------------------+
11730 | Populate Global Variable |
11731 +-----------------------------------------*/
11732 G_PUB_SRVC := l_api_name;
11733 G_DATA_TRANSFER_MODE := 'PLS';
11734 G_EXTERNAL_API_CALL := 'N';
11735
11736 IF ( G_LEVEL_EVENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11737 FND_LOG.STRING(G_LEVEL_EVENT,G_MODULE_NAME||l_api_name,
11738 'Call TRD service to determine if accouting info on distributions can be modified'
11739 );
11740 END IF;
11741
11742 ZX_TRD_SERVICES_PUB_PKG.is_recoverability_affected(p_pa_item_info_tbl => p_pa_item_info_tbl,
11743 x_return_status => l_return_status
11744 );
11745
11746 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11747 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11748 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
11749 ':ZX_TRD_SERVICES_PUB_PKG.is_recoverability_affected returned errors');
11750 END IF;
11751 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
11752 RAISE FND_API.G_EXC_ERROR;
11753 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
11754 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
11755 END IF;
11756 END IF;
11757
11758 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11759 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
11760 END IF;
11761
11762 EXCEPTION
11763 WHEN FND_API.G_EXC_ERROR THEN
11764 ROLLBACK TO Is_Recoverability_Affected_PVT;
11765 x_return_status := FND_API.G_RET_STS_ERROR ;
11766 /*---------------------------------------------------------+
11767 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
11768 | in the message stack. If there is only one message in |
11769 | the stack it retrieves this message |
11773 p_data => x_msg_data
11770 +---------------------------------------------------------*/
11771 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
11772 p_count => x_msg_count,
11774 );
11775
11776 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
11777 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
11778 END IF;
11779
11780 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
11781 ROLLBACK TO Is_Recoverability_Affected_PVT;
11782 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
11783 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
11784 FND_MSG_PUB.Add;
11785 /*---------------------------------------------------------+
11786 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
11787 | in the message stack. If there is only one message in |
11788 | the stack it retrieves this message |
11789 +---------------------------------------------------------*/
11790 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
11791 p_count => x_msg_count,
11792 p_data => x_msg_data
11793 );
11794
11795 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
11796 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
11797 END IF;
11798
11799 WHEN OTHERS THEN
11800 ROLLBACK TO Is_Recoverability_Affected_PVT;
11801 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
11802 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
11803 FND_MSG_PUB.Add;
11804 /*---------------------------------------------------------+
11805 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
11806 | in the message stack. If there is only one message in |
11807 | the stack it retrieves this message |
11808 +---------------------------------------------------------*/
11809 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
11810 p_count => x_msg_count,
11811 p_data => x_msg_data
11812 );
11813 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
11814 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
11815 END IF;
11816
11817 END is_recoverability_affected;
11818
11819 /* ======================================================================*
11820 | PROCEDURE delete_tax_line_and_distributions: |
11821 * ======================================================================*/
11822
11823 PROCEDURE del_tax_line_and_distributions(
11824 p_api_version IN NUMBER,
11825 p_init_msg_list IN VARCHAR2,
11826 p_commit IN VARCHAR2,
11827 p_validation_level IN NUMBER,
11828 x_return_status OUT NOCOPY VARCHAR2 ,
11829 x_msg_count OUT NOCOPY NUMBER ,
11830 x_msg_data OUT NOCOPY VARCHAR2 ,
11831 p_transaction_line_rec IN OUT NOCOPY transaction_line_rec_type
11832 )IS
11833 l_api_name CONSTANT VARCHAR2(30) := 'DEL_TAX_LINE_AND_DISTRIBUTIONS';
11834 l_api_version CONSTANT NUMBER := 1.0;
11835 l_return_status VARCHAR2(1);
11836 l_init_msg_list VARCHAR2(1);
11837
11838 BEGIN
11839 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11840 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
11841 END IF;
11842
11843 /*--------------------------------------------------+
11844 | Standard start of API savepoint |
11845 +--------------------------------------------------*/
11846 SAVEPOINT Del_Tax_Line_And_Dists_PVT;
11847
11848 /*--------------------------------------------------+
11849 | Standard call to check for call compatibility |
11850 +--------------------------------------------------*/
11851 IF NOT FND_API.Compatible_API_Call(l_api_version,
11852 p_api_version,
11853 l_api_name,
11854 G_PKG_NAME
11855 ) THEN
11856 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
11857 END IF;
11858
11859 /*--------------------------------------------------------------+
11860 | Initialize message list if p_init_msg_list is set to TRUE |
11861 +--------------------------------------------------------------*/
11862 IF p_init_msg_list is null THEN
11863 l_init_msg_list := FND_API.G_FALSE;
11864 ELSE
11865 l_init_msg_list := p_init_msg_list;
11866 END IF;
11867
11868 IF FND_API.to_Boolean(l_init_msg_list) THEN
11869 FND_MSG_PUB.initialize;
11870 END IF;
11871
11872 /*-----------------------------------------+
11873 | Initialize return status to SUCCESS |
11874 +-----------------------------------------*/
11875 x_return_status := FND_API.G_RET_STS_SUCCESS;
11876
11877 /*-----------------------------------------+
11878 | Populate Global Variable |
11879 +-----------------------------------------*/
11880 G_PUB_SRVC := l_api_name;
11881 G_DATA_TRANSFER_MODE := 'PLS';
11882 G_EXTERNAL_API_CALL := 'N';
11886 +-----------------------------------------*/
11883
11884 /*-----------------------------------------+
11885 | Delete transaction line |
11887
11888 DELETE from ZX_LINES_DET_FACTORS
11889 WHERE application_id = p_transaction_line_rec.application_id
11890 AND entity_code = p_transaction_line_rec.entity_code
11891 AND event_class_code = p_transaction_line_rec.event_class_code
11892 AND trx_id = p_transaction_line_rec.trx_id
11893 AND trx_line_id = p_transaction_line_rec.trx_line_id
11894 AND trx_level_type = p_transaction_line_rec.trx_level_type;
11895
11896
11897 /*-----------------------------------------+
11898 | Delete tax line and distributions |
11899 +-----------------------------------------*/
11900 ZX_TRL_PUB_PKG.delete_tax_lines_and_dists(p_application_id => p_transaction_line_rec.application_id,
11901 p_entity_code => p_transaction_line_rec.entity_code,
11902 p_event_class_code => p_transaction_line_rec.event_class_code,
11903 p_trx_id => p_transaction_line_rec.trx_id,
11904 p_trx_line_id => p_transaction_line_rec.trx_line_id,
11905 p_trx_level_type => p_transaction_line_rec.trx_level_type,
11906 x_return_status => l_return_status
11907 );
11908 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11909 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11910 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
11911 ':ZX_TRL_PUB_PKG.delete_tax_lines_and_dists returned errors');
11912 END IF;
11913 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
11914 RAISE FND_API.G_EXC_ERROR;
11915 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
11916 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
11917 END IF;
11918 END IF;
11919
11920 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11921 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
11922 END IF;
11923
11924 EXCEPTION
11925 WHEN FND_API.G_EXC_ERROR THEN
11926 ROLLBACK TO Del_Tax_Line_And_Dists_PVT;
11927 x_return_status := FND_API.G_RET_STS_ERROR ;
11928 /*---------------------------------------------------------+
11929 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
11930 | in the message stack. If there is only one message in |
11931 | the stack it retrieves this message |
11932 +---------------------------------------------------------*/
11933 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
11934 p_count => x_msg_count,
11935 p_data => x_msg_data
11936 );
11937
11938 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
11939 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
11940 END IF;
11941
11942 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
11943 ROLLBACK TO Del_Tax_Line_And_Dists_PVT;
11944 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
11945 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
11946 FND_MSG_PUB.Add;
11947 /*---------------------------------------------------------+
11948 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
11949 | in the message stack. If there is only one message in |
11950 | the stack it retrieves this message |
11951 +---------------------------------------------------------*/
11952 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
11953 p_count => x_msg_count,
11954 p_data => x_msg_data
11955 );
11956
11957 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
11958 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
11959 END IF;
11960
11961 WHEN OTHERS THEN
11962 ROLLBACK TO Del_Tax_Line_And_Dists_PVT;
11963 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
11964 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
11965 FND_MSG_PUB.Add;
11966 /*---------------------------------------------------------+
11967 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
11968 | in the message stack. If there is only one message in |
11969 | the stack it retrieves this message |
11970 +---------------------------------------------------------*/
11971 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
11972 p_count => x_msg_count,
11973 p_data => x_msg_data
11974 );
11975 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
11976 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
11977 END IF;
11978
11979 END del_tax_line_and_distributions;
11980
11981 /* ======================================================================*
11982 | PROCEDURE delete_tax_distributions: |
11983 * ======================================================================*/
11987 p_init_msg_list IN VARCHAR2,
11984
11985 PROCEDURE delete_tax_distributions(
11986 p_api_version IN NUMBER,
11988 p_commit IN VARCHAR2,
11989 p_validation_level IN NUMBER,
11990 x_return_status OUT NOCOPY VARCHAR2 ,
11991 x_msg_count OUT NOCOPY NUMBER ,
11992 x_msg_data OUT NOCOPY VARCHAR2 ,
11993 p_transaction_line_rec IN OUT NOCOPY transaction_line_rec_type
11994 )IS
11995 l_api_name CONSTANT VARCHAR2(30) := 'DEL_TAX_DISTRIBUTIONS';
11996 l_api_version CONSTANT NUMBER := 1.0;
11997 l_return_status VARCHAR2(1);
11998 l_init_msg_list VARCHAR2(1);
11999
12000 BEGIN
12001 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12002 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
12003 END IF;
12004
12005 /*--------------------------------------------------+
12006 | Standard start of API savepoint |
12007 +--------------------------------------------------*/
12008 SAVEPOINT Del_Tax_Distributions_PVT;
12009
12010 /*--------------------------------------------------+
12011 | Standard call to check for call compatibility |
12012 +--------------------------------------------------*/
12013 IF NOT FND_API.Compatible_API_Call(l_api_version,
12014 p_api_version,
12015 l_api_name,
12016 G_PKG_NAME
12017 ) THEN
12018 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
12019 END IF;
12020
12021 /*--------------------------------------------------------------+
12022 | Initialize message list if p_init_msg_list is set to TRUE |
12023 +--------------------------------------------------------------*/
12024 IF p_init_msg_list is null THEN
12025 l_init_msg_list := FND_API.G_FALSE;
12026 ELSE
12027 l_init_msg_list := p_init_msg_list;
12028 END IF;
12029
12030 IF FND_API.to_Boolean(l_init_msg_list) THEN
12031 FND_MSG_PUB.initialize;
12032 END IF;
12033
12034 /*-----------------------------------------+
12035 | Initialize return status to SUCCESS |
12036 +-----------------------------------------*/
12037 x_return_status := FND_API.G_RET_STS_SUCCESS;
12038
12039 /*-----------------------------------------+
12040 | Populate Global Variable |
12041 +-----------------------------------------*/
12042 G_PUB_SRVC := l_api_name;
12043 G_DATA_TRANSFER_MODE := 'PLS';
12044 G_EXTERNAL_API_CALL := 'N';
12045
12046 /*-----------------------------------------+
12047 | Delete tax distributions |
12048 +-----------------------------------------*/
12049 IF ( G_LEVEL_EVENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12050 FND_LOG.STRING(G_LEVEL_EVENT,G_MODULE_NAME||l_api_name,
12051 'Call TRL service to delete tax distributions'
12052 );
12053 END IF;
12054
12055 ZX_TRL_PUB_PKG.delete_tax_dists (p_application_id => p_transaction_line_rec.application_id,
12056 p_entity_code => p_transaction_line_rec.entity_code,
12057 p_event_class_code => p_transaction_line_rec.event_class_code,
12058 p_trx_id => p_transaction_line_rec.trx_id,
12059 p_trx_line_id => p_transaction_line_rec.trx_line_id,
12060 p_trx_level_type => p_transaction_line_rec.trx_level_type,
12061 x_return_status => l_return_status
12062 );
12063 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
12064 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12065 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
12066 ':ZX_TRL_PUB_PKG.delete_tax_dists returned errors');
12067 END IF;
12068 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
12069 RAISE FND_API.G_EXC_ERROR;
12070 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
12071 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
12072 END IF;
12073 END IF;
12074
12075 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12076 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
12077 END IF;
12078
12079 EXCEPTION
12080 WHEN FND_API.G_EXC_ERROR THEN
12081 ROLLBACK TO Del_Tax_Distributions_PVT;
12082 x_return_status := FND_API.G_RET_STS_ERROR ;
12083 /*---------------------------------------------------------+
12084 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
12085 | in the message stack. If there is only one message in |
12086 | the stack it retrieves this message |
12087 +---------------------------------------------------------*/
12088 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
12089 p_count => x_msg_count,
12090 p_data => x_msg_data
12091 );
12092
12093 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
12094 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
12098 ROLLBACK TO Del_Tax_Distributions_PVT;
12095 END IF;
12096
12097 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
12099 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
12100 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
12101 FND_MSG_PUB.Add;
12102 /*---------------------------------------------------------+
12103 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
12104 | in the message stack. If there is only one message in |
12105 | the stack it retrieves this message |
12106 +---------------------------------------------------------*/
12107 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
12108 p_count => x_msg_count,
12109 p_data => x_msg_data
12110 );
12111
12112 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
12113 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
12114 END IF;
12115
12116 WHEN OTHERS THEN
12117 ROLLBACK TO Del_Tax_Distributions_PVT;
12118 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
12119 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
12120 FND_MSG_PUB.Add;
12121 /*---------------------------------------------------------+
12122 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
12123 | in the message stack. If there is only one message in |
12124 | the stack it retrieves this message |
12125 +---------------------------------------------------------*/
12126 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
12127 p_count => x_msg_count,
12128 p_data => x_msg_data
12129 );
12130 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
12131 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
12132 END IF;
12133
12134 END delete_tax_distributions;
12135
12136 -----------------------------------------------------------------------
12137 -- PUBLIC PROCEDURE
12138 -- get_default_tax_det_attrs
12139 --
12140 -- DESCRIPTION
12141 -- This overloaded procedure acts as a wrapper on TDS default_tax_attribs
12142 -- procedure to default the tax determining attributes. It follows the
12143 -- following logic defaulting the determining attributes.
12144 --
12145 -- Fetch from zx_trx_headers_gt and zx_trx_transaction_lines_gt into
12146 -- global structure zx_global_structures_pkg.trx_line_dist_tbl
12147 -- For records in trx_line_dist_tbl
12148 -- Loop
12149 -- If line_level_action is UPDATE
12150 -- If all tax determining attributes are passed null
12151 -- Fetch all attributes from zx_lines_det_factors
12152 -- if item/item_org_id/country has changed
12153 -- call RE-defaulting API for intended_use, product_fiscal_classification
12154 -- if item/item_org_id/assessable value has changed
12155 -- call redefaulting API for assessable value
12156 -- Always call the tax classification defaulting API
12157 -- ELSIF line level action is CREATE
12158 -- IF historical_tax_code_id/global_attribute_category/global_Attribute1 passed
12159 -- redefault the tax attributes for PO (on the fly migration)
12160 -- elsif historical tax code id/global_attribute_category/global_attribute1 null
12161 -- If adjusted_doc informaiton passed
12162 -- default from adjusted_doc
12163 -- elsif applied_from information passed
12164 -- default from applied_from
12165 -- elsif soure_doc information passed
12166 -- default from source
12167 -- else
12168 -- call the TDM default API
12169 -- End loop
12170 -- Update the GTTs with the defaulting attributes derived here.
12171
12172 -- CALLED BY
12173 -- populateTaxAttributes java method given to iP/PO
12174 -- directly from forms
12175 ----------------------------------------------------------------------
12176 PROCEDURE get_default_tax_det_attribs(
12177 p_api_version IN NUMBER,
12178 p_init_msg_list IN VARCHAR2,
12179 p_commit IN VARCHAR2,
12180 p_validation_level IN NUMBER,
12181 x_return_status OUT NOCOPY VARCHAR2,
12182 x_msg_count OUT NOCOPY NUMBER,
12183 x_msg_data OUT NOCOPY VARCHAR2
12184 )IS
12185 l_api_name CONSTANT VARCHAR2(30) := 'GET_DEFAULT_TAX_DET_ATTRIBS';
12186 l_api_version CONSTANT NUMBER := 1.0;
12187 l_return_status VARCHAR2(1);
12188 l_init_msg_list VARCHAR2(1);
12189 l_event_class_rec event_class_rec_type;
12190 l_context_info_rec context_info_rec_type;
12191 l_transaction_header_rec transaction_header_rec_type;
12192
12193 CURSOR headers_doc IS
12194 SELECT INTERNAL_ORGANIZATION_ID,
12195 LEGAL_ENTITY_ID,
12196 LEDGER_ID,
12197 APPLICATION_ID,
12198 ENTITY_CODE,
12199 EVENT_CLASS_CODE,
12200 EVENT_TYPE_CODE,
12201 CTRL_TOTAL_HDR_TX_AMT,
12202 TRX_ID,
12203 TRX_DATE,
12204 RELATED_DOC_DATE,
12205 PROVNL_TAX_DETERMINATION_DATE,
12206 TRX_CURRENCY_CODE,
12207 PRECISION,
12208 CURRENCY_CONVERSION_TYPE,
12212 ROUNDING_SHIP_FROM_PARTY_ID,
12209 CURRENCY_CONVERSION_RATE,
12210 CURRENCY_CONVERSION_DATE,
12211 ROUNDING_SHIP_TO_PARTY_ID,
12213 ROUNDING_BILL_TO_PARTY_ID,
12214 ROUNDING_BILL_FROM_PARTY_ID,
12215 RNDG_SHIP_TO_PARTY_SITE_ID,
12216 RNDG_SHIP_FROM_PARTY_SITE_ID,
12217 RNDG_BILL_TO_PARTY_SITE_ID,
12218 RNDG_BILL_FROM_PARTY_SITE_ID,
12219 QUOTE_FLAG,
12220 ESTABLISHMENT_ID
12221 FROM ZX_TRX_HEADERS_GT;
12222
12223 BEGIN
12224 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12225 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
12226 END IF;
12227
12228 /*--------------------------------------------------+
12229 | Standard start of API savepoint |
12230 +--------------------------------------------------*/
12231 SAVEPOINT Get_Default_Tax_Det_Attrs_PVT;
12232
12233 /*--------------------------------------------------+
12234 | Standard call to check for call compatibility |
12235 +--------------------------------------------------*/
12236 IF NOT FND_API.Compatible_API_Call(l_api_version,
12237 p_api_version,
12238 l_api_name,
12239 G_PKG_NAME
12240 ) THEN
12241 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
12242 END IF;
12243
12244 /*--------------------------------------------------------------+
12245 | Initialize message list if p_init_msg_list is set to TRUE |
12246 +--------------------------------------------------------------*/
12247 IF p_init_msg_list is null THEN
12248 l_init_msg_list := FND_API.G_FALSE;
12249 ELSE
12250 l_init_msg_list := p_init_msg_list;
12251 END IF;
12252
12253 IF FND_API.to_Boolean(l_init_msg_list) THEN
12254 FND_MSG_PUB.initialize;
12255 END IF;
12256
12257 /*-----------------------------------------+
12258 | Initialize return status to SUCCESS |
12259 +-----------------------------------------*/
12260 x_return_status := FND_API.G_RET_STS_SUCCESS;
12261
12262 /*-----------------------------------------+
12263 | Populate Global Variable |
12264 +-----------------------------------------*/
12265 G_PUB_SRVC := l_api_name;
12266 G_DATA_TRANSFER_MODE := 'TAB';
12267 G_EXTERNAL_API_CALL := 'N';
12268
12269 OPEN headers_doc;
12270 LOOP
12271 FETCH headers_doc BULK COLLECT INTO
12272 l_transaction_header_rec.INTERNAL_ORGANIZATION_ID,
12273 l_transaction_header_rec.LEGAL_ENTITY_ID,
12274 l_transaction_header_rec.LEDGER_ID,
12275 l_transaction_header_rec.APPLICATION_ID,
12276 l_transaction_header_rec.ENTITY_CODE,
12277 l_transaction_header_rec.EVENT_CLASS_CODE,
12278 l_transaction_header_rec.EVENT_TYPE_CODE,
12279 l_transaction_header_rec.CTRL_TOTAL_HDR_TX_AMT,
12280 l_transaction_header_rec.TRX_ID,
12281 l_transaction_header_rec.TRX_DATE,
12282 l_transaction_header_rec.REL_DOC_DATE,
12283 l_transaction_header_rec.PROVNL_TAX_DETERMINATION_DATE,
12284 l_transaction_header_rec.TRX_CURRENCY_CODE,
12285 l_transaction_header_rec.PRECISION,
12286 l_transaction_header_rec.CURRENCY_CONVERSION_TYPE,
12287 l_transaction_header_rec.CURRENCY_CONVERSION_RATE,
12288 l_transaction_header_rec.CURRENCY_CONVERSION_DATE,
12289 l_transaction_header_rec.ROUNDING_SHIP_TO_PARTY_ID,
12290 l_transaction_header_rec.ROUNDING_SHIP_FROM_PARTY_ID,
12291 l_transaction_header_rec.ROUNDING_BILL_TO_PARTY_ID,
12292 l_transaction_header_rec.ROUNDING_BILL_FROM_PARTY_ID,
12293 l_transaction_header_rec.RNDG_SHIP_TO_PARTY_SITE_ID,
12294 l_transaction_header_rec.RNDG_SHIP_FROM_PARTY_SITE_ID,
12295 l_transaction_header_rec.RNDG_BILL_TO_PARTY_SITE_ID,
12296 l_transaction_header_rec.RNDG_BILL_FROM_PARTY_SITE_ID,
12297 l_transaction_header_rec.QUOTE_FLAG,
12298 l_transaction_header_rec.ESTABLISHMENT_ID
12299 LIMIT G_LINES_PER_FETCH;
12300
12301 FOR l_index IN 1..nvl(l_transaction_header_rec.application_id.LAST,0)
12302 LOOP
12303 BEGIN
12304 SAVEPOINT Get_Def_Tax_Det_Attrs_Doc_PVT;
12305 l_event_class_rec.INTERNAL_ORGANIZATION_ID := l_transaction_header_rec.INTERNAL_ORGANIZATION_ID(l_index);
12306 l_event_class_rec.LEGAL_ENTITY_ID := l_transaction_header_rec.LEGAL_ENTITY_ID(l_index);
12307 l_event_class_rec.LEDGER_ID := l_transaction_header_rec.LEDGER_ID(l_index);
12308 l_event_class_rec.APPLICATION_ID := l_transaction_header_rec.APPLICATION_ID(l_index);
12309 l_event_class_rec.ENTITY_CODE := l_transaction_header_rec.ENTITY_CODE(l_index);
12310 l_event_class_rec.EVENT_CLASS_CODE := l_transaction_header_rec.EVENT_CLASS_CODE(l_index);
12311 l_event_class_rec.EVENT_TYPE_CODE := l_transaction_header_rec.EVENT_TYPE_CODE(l_index);
12312 l_event_class_rec.CTRL_TOTAL_HDR_TX_AMT := l_transaction_header_rec.CTRL_TOTAL_HDR_TX_AMT(l_index);
12313 l_event_class_rec.TRX_ID := l_transaction_header_rec.TRX_ID(l_index);
12317 l_event_class_rec.TRX_CURRENCY_CODE := l_transaction_header_rec.TRX_CURRENCY_CODE(l_index);
12314 l_event_class_rec.TRX_DATE := l_transaction_header_rec.TRX_DATE(l_index);
12315 l_event_class_rec.REL_DOC_DATE := l_transaction_header_rec.REL_DOC_DATE(l_index);
12316 l_event_class_rec.PROVNL_TAX_DETERMINATION_DATE:= l_transaction_header_rec.PROVNL_TAX_DETERMINATION_DATE(l_index);
12318 l_event_class_rec.PRECISION := l_transaction_header_rec.PRECISION(l_index);
12319 l_event_class_rec.CURRENCY_CONVERSION_TYPE := l_transaction_header_rec.CURRENCY_CONVERSION_TYPE(l_index);
12320 l_event_class_rec.CURRENCY_CONVERSION_RATE := l_transaction_header_rec.CURRENCY_CONVERSION_RATE(l_index);
12321 l_event_class_rec.CURRENCY_CONVERSION_DATE := l_transaction_header_rec.CURRENCY_CONVERSION_DATE(l_index);
12322 l_event_class_rec.ROUNDING_SHIP_TO_PARTY_ID := l_transaction_header_rec.ROUNDING_SHIP_TO_PARTY_ID(l_index);
12323 l_event_class_rec.ROUNDING_SHIP_FROM_PARTY_ID := l_transaction_header_rec.ROUNDING_SHIP_FROM_PARTY_ID(l_index);
12324 l_event_class_rec.ROUNDING_BILL_TO_PARTY_ID := l_transaction_header_rec.ROUNDING_BILL_TO_PARTY_ID(l_index);
12325 l_event_class_rec.ROUNDING_BILL_FROM_PARTY_ID := l_transaction_header_rec.ROUNDING_BILL_FROM_PARTY_ID(l_index);
12326 l_event_class_rec.RNDG_SHIP_TO_PARTY_SITE_ID := l_transaction_header_rec.RNDG_SHIP_TO_PARTY_SITE_ID(l_index);
12327 l_event_class_rec.RNDG_SHIP_FROM_PARTY_SITE_ID := l_transaction_header_rec.RNDG_SHIP_FROM_PARTY_SITE_ID(l_index);
12328 l_event_class_rec.RNDG_BILL_TO_PARTY_SITE_ID := l_transaction_header_rec.RNDG_BILL_TO_PARTY_SITE_ID(l_index);
12329 l_event_class_rec.RNDG_BILL_FROM_PARTY_SITE_ID := l_transaction_header_rec.RNDG_BILL_FROM_PARTY_SITE_ID(l_index);
12330 l_event_class_rec.QUOTE_FLAG := nvl(l_transaction_header_rec.QUOTE_FLAG(l_index),'N');
12331
12332 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12333 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
12334 'application_id: '||to_char(l_event_class_rec.application_id)||
12335 ', entity_code: '||l_event_class_rec.entity_code||
12336 ', event_class_code: '||l_event_class_rec.event_class_code||
12337 ', event_type_code: '||l_event_class_rec.event_type_code||
12338 ', trx_id: '||to_char(l_event_class_rec.trx_id)||
12339 ', internal_organization_id: '||to_char(l_event_class_rec.internal_organization_id)||
12340 ', ledger_id: '||to_char(l_event_class_rec.ledger_id)||
12341 ', legal_entity_id: '||to_char(l_event_class_rec.legal_entity_id)||
12342 ', trx_date: '||to_char(l_event_class_rec.trx_date)||
12343 ', related_document_date: '||to_char(l_event_class_rec.rel_doc_date)||
12344 ', provnl_tax_determination_date: '||to_char(l_event_class_rec.provnl_tax_determination_date)||
12345 ', trx_currency_code: '||l_event_class_rec.trx_currency_code||
12346 ', currency_conversion_type: '||l_event_class_rec.currency_conversion_type||
12347 ', currency_conversion_rate: '||to_char(l_event_class_rec.currency_conversion_rate)||
12348 ', currency_conversion_date: '||to_char(l_event_class_rec.currency_conversion_date)||
12349 ', rounding_ship_to_party_id: '||to_char(l_event_class_rec.rounding_ship_to_party_id)||
12350 ', rounding_ship_from_party_id: '||to_char(l_event_class_rec.rounding_ship_from_party_id)||
12351 ', rounding_bill_to_party_id: '||to_char(l_event_class_rec.rounding_bill_to_party_id)||
12352 ', rounding_bill_from_party_id: '||to_char(l_event_class_rec.rounding_bill_from_party_id)||
12353 ', rndg_ship_to_party_site_id: '||to_char(l_event_class_rec.rndg_ship_to_party_site_id)||
12354 ', rndg_ship_from_party_site_id: '||to_char(l_event_class_rec.rndg_ship_from_party_site_id)||
12355 ', rndg_bill_to_party_site_id: '||to_char(l_event_class_rec.rndg_bill_to_party_site_id)||
12356 ', rndg_bill_from_party_site_id: '||to_char(l_event_class_rec.rndg_bill_from_party_site_id));
12357 END IF;
12358
12359 /*------------------------------------------------------+
12360 | Validate and Initializate parameters for Calculate |
12361 | tax |
12362 +------------------------------------------------------*/
12363 ZX_VALID_INIT_PARAMS_PKG.get_default_tax_det_attrs(p_event_class_rec => l_event_class_rec,
12364 x_return_status => l_return_status
12365 );
12366
12367 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
12368 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12369 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
12370 ':ZX_VALID_INIT_PARAMS_PKG.get_default_tax_det_attrs returned errors');
12371 END IF;
12372 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
12373 RAISE FND_API.G_EXC_ERROR;
12374 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
12375 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
12376 END IF;
12377 END IF;
12378
12379 /*------------------------------------------------------+
12380 | Call the redefaulting APIs |
12381 +------------------------------------------------------*/
12382 ZX_SRVC_TYP_PKG.get_default_tax_det_attrs(p_event_class_rec => l_event_class_rec,
12386 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
12383 x_return_status => l_return_status
12384 );
12385
12387 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12388 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
12389 ':ZX_SRVC_TYP_PKG.get_default_tax_det_attrs returned errors');
12390 END IF;
12391 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
12392 RAISE FND_API.G_EXC_ERROR;
12393 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
12394 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
12395 END IF;
12396 END IF;
12397
12398 --Delete from the global structure for every loop on header
12399 --so that there are no hanging/redundant records sitting there
12400 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12401 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
12402 'Calling routine to delete the global structures ');
12403 END IF;
12404 ZX_GLOBAL_STRUCTURES_PKG.delete_trx_line_dist_tbl;
12405
12406 EXCEPTION
12407 WHEN FND_API.G_EXC_ERROR THEN
12408 ROLLBACK TO Get_Def_Tax_Det_Attrs_Doc_PVT;
12409 x_return_status := FND_API.G_RET_STS_ERROR ;
12410 --Call API to dump into zx_errors_gt
12411 DUMP_MSG;
12412 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
12413 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
12414 END IF;
12415 END;
12416 END LOOP;--for headers_doc
12417 EXIT WHEN headers_doc%NOTFOUND;
12418 END LOOP;
12419 CLOSE headers_doc;
12420
12421 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12422 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
12423 END IF;
12424
12425 EXCEPTION
12426 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
12427 ROLLBACK TO Get_Default_Tax_Det_Attrs_PVT;
12428 --Close all open cursors
12429 IF headers_doc%ISOPEN THEN CLOSE headers_doc; END IF;
12430 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
12431 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
12432 FND_MSG_PUB.Add;
12433 /*---------------------------------------------------------+
12434 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
12435 | in the message stack. If there is only one message in |
12436 | the stack it retrieves this message |
12437 +---------------------------------------------------------*/
12438 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
12439 p_count => x_msg_count,
12440 p_data => x_msg_data
12441 );
12442 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
12443 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
12444 END IF;
12445
12446 WHEN OTHERS THEN
12447 ROLLBACK TO Get_Default_Tax_Det_Attrs_PVT;
12448 --Close all open cursors
12449 IF headers_doc%ISOPEN THEN CLOSE headers_doc; END IF;
12450 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
12451 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
12452 FND_MSG_PUB.Add;
12453 /*---------------------------------------------------------+
12454 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
12455 | in the message stack. If there is only one message in |
12456 | the stack it retrieves this message |
12457 +---------------------------------------------------------*/
12458 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
12459 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
12460 END IF;
12461 END get_default_tax_det_attribs;
12462
12463 /* ======================================================================*
12464 | PROCEDURE redefault_intended_use: Redefault intended use |
12465 * ======================================================================*/
12466
12467 PROCEDURE redefault_intended_use(
12468 p_api_version IN NUMBER,
12469 p_init_msg_list IN VARCHAR2,
12470 p_commit IN VARCHAR2,
12471 p_validation_level IN NUMBER,
12472 x_return_status OUT NOCOPY VARCHAR2,
12473 x_msg_count OUT NOCOPY NUMBER ,
12474 x_msg_data OUT NOCOPY VARCHAR2,
12475 p_application_id IN NUMBER,
12476 p_entity_code IN VARCHAR2,
12477 p_event_class_code IN VARCHAR2,
12478 p_internal_org_id IN NUMBER,
12479 p_country_code IN VARCHAR2,
12480 p_item_id IN NUMBER,
12481 p_item_org_id IN NUMBER,
12482 x_intended_use OUT NOCOPY VARCHAR2
12483 )IS
12484 l_api_name CONSTANT VARCHAR2(30) := 'REDEFAULT_INTENDED_USE';
12485 l_api_version CONSTANT NUMBER := 1.0;
12486 l_return_status VARCHAR2(1);
12487 l_init_msg_list VARCHAR2(1);
12488
12489 BEGIN
12490 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12494 /*--------------------------------------------------+
12491 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
12492 END IF;
12493
12495 | Standard start of API savepoint |
12496 +--------------------------------------------------*/
12497 SAVEPOINT Redefault_Intended_Use_PVT;
12498
12499 /*--------------------------------------------------+
12500 | Standard call to check for call compatibility |
12501 +--------------------------------------------------*/
12502 IF NOT FND_API.Compatible_API_Call(l_api_version,
12503 p_api_version,
12504 l_api_name,
12505 G_PKG_NAME
12506 ) THEN
12507 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
12508 END IF;
12509
12510 /*--------------------------------------------------------------+
12511 | Initialize message list if p_init_msg_list is set to TRUE |
12512 +--------------------------------------------------------------*/
12513 IF p_init_msg_list is null THEN
12514 l_init_msg_list := FND_API.G_FALSE;
12515 ELSE
12516 l_init_msg_list := p_init_msg_list;
12517 END IF;
12518
12519 IF FND_API.to_Boolean(l_init_msg_list) THEN
12520 FND_MSG_PUB.initialize;
12521 END IF;
12522
12523 /*-----------------------------------------+
12524 | Initialize return status to SUCCESS |
12525 +-----------------------------------------*/
12526 x_return_status := FND_API.G_RET_STS_SUCCESS;
12527
12528 /*-----------------------------------------+
12529 | Populate Global Variable |
12530 +-----------------------------------------*/
12531 G_PUB_SRVC := l_api_name;
12532 G_DATA_TRANSFER_MODE := 'PLS';
12533 G_EXTERNAL_API_CALL := 'N';
12534
12535 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12536 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
12537 'application_id: ' || to_char(p_application_id)||
12538 ', entity_code: ' || p_entity_code||
12539 ', event_class_code: ' || p_event_class_code||
12540 ', country_code: ' || p_country_code||
12541 ', org_id: ' || to_char(p_internal_org_id)||
12542 ', product_id: ' || to_char(p_item_id)||
12543 ', product_org_id: ' || to_char(p_item_org_id));
12544 END IF;
12545
12546 ZX_DEFAULT_AUTOMATION_PKG.redefault_intended_use(p_application_id,
12547 p_entity_code,
12548 p_event_class_code,
12549 p_internal_org_id,
12550 p_country_code,
12551 p_item_id,
12552 p_item_org_id,
12553 x_intended_use,
12554 x_return_status
12555 );
12556
12557 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
12558 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12559 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
12560 ':ZX_DEFAULT_AUTOMATION_PKG.redefault_intended_use returned errors');
12561 END IF;
12562 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
12563 RAISE FND_API.G_EXC_ERROR;
12564 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
12565 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
12566 END IF;
12567 ELSE
12568 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12569 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
12570 ':Intended Use :' || x_intended_use);
12571 END IF;
12572 END IF;
12573
12574 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12575 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
12576 END IF;
12577
12578 EXCEPTION
12579 WHEN FND_API.G_EXC_ERROR THEN
12580 ROLLBACK TO Redefault_Intended_Use_PVT;
12581 x_return_status := FND_API.G_RET_STS_ERROR ;
12582 /*---------------------------------------------------------+
12583 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
12584 | in the message stack. If there is only one message in |
12585 | the stack it retrieves this message |
12586 +---------------------------------------------------------*/
12587 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
12588 p_count => x_msg_count,
12589 p_data => x_msg_data
12590 );
12591 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
12592 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
12593 END IF;
12594
12595 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
12596 ROLLBACK TO Redefault_Intended_Use_PVT;
12597 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
12598 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
12599 FND_MSG_PUB.Add;
12603 | the stack it retrieves this message |
12600 /*---------------------------------------------------------+
12601 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
12602 | in the message stack. If there is only one message in |
12604 +---------------------------------------------------------*/
12605 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
12606 p_count => x_msg_count,
12607 p_data => x_msg_data
12608 );
12609 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
12610 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
12611 END IF;
12612
12613 WHEN OTHERS THEN
12614 ROLLBACK TO Redefault_Intended_Use_PVT;
12615 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
12616 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
12617 FND_MSG_PUB.Add;
12618 /*---------------------------------------------------------+
12619 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
12620 | in the message stack. If there is only one message in |
12621 | the stack it retrieves this message |
12622 +---------------------------------------------------------*/
12623 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
12624 p_count => x_msg_count,
12625 p_data => x_msg_data
12626 );
12627 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
12628 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
12629 END IF;
12630 END redefault_intended_use;
12631
12632 /* ======================================================================*
12633 | PROCEDURE redefault_prod_fisc_class_code: Redefault product fiscal |
12634 | classification |
12635 * ======================================================================*/
12636 PROCEDURE redefault_prod_fisc_class_code(
12637 p_api_version IN NUMBER,
12638 p_init_msg_list IN VARCHAR2,
12639 p_commit IN VARCHAR2,
12640 p_validation_level IN NUMBER,
12641 x_return_status OUT NOCOPY VARCHAR2,
12642 x_msg_count OUT NOCOPY NUMBER ,
12643 x_msg_data OUT NOCOPY VARCHAR2,
12644 p_application_id IN NUMBER,
12645 p_entity_code IN VARCHAR2,
12646 p_event_class_code IN VARCHAR2,
12647 p_internal_org_id IN NUMBER,
12648 p_country_code IN VARCHAR2,
12649 p_item_id IN NUMBER,
12650 p_item_org_id IN NUMBER,
12651 x_prod_fisc_class_code OUT NOCOPY VARCHAR2
12652 )IS
12653 l_api_name CONSTANT VARCHAR2(30) := 'REDEFAULT_PROD_FISC_CLASS_CODE';
12654 l_api_version CONSTANT NUMBER := 1.0;
12655 l_return_status VARCHAR2(1);
12656 l_init_msg_list VARCHAR2(1);
12657
12658 BEGIN
12659 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12660 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
12661 END IF;
12662
12663 /*--------------------------------------------------+
12664 | Standard start of API savepoint |
12665 +--------------------------------------------------*/
12666 SAVEPOINT Redef_Prod_Fisc_Class_Code_PVT;
12667
12668 /*--------------------------------------------------+
12669 | Standard call to check for call compatibility |
12670 +--------------------------------------------------*/
12671 IF NOT FND_API.Compatible_API_Call(l_api_version,
12672 p_api_version,
12673 l_api_name,
12674 G_PKG_NAME
12675 ) THEN
12676 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
12677 END IF;
12678
12679 /*--------------------------------------------------------------+
12680 | Initialize message list if p_init_msg_list is set to TRUE |
12681 +--------------------------------------------------------------*/
12682 IF p_init_msg_list is null THEN
12683 l_init_msg_list := FND_API.G_FALSE;
12684 ELSE
12685 l_init_msg_list := p_init_msg_list;
12686 END IF;
12687
12688 IF FND_API.to_Boolean(l_init_msg_list) THEN
12689 FND_MSG_PUB.initialize;
12690 END IF;
12691
12692 /*-----------------------------------------+
12693 | Initialize return status to SUCCESS |
12694 +-----------------------------------------*/
12695 x_return_status := FND_API.G_RET_STS_SUCCESS;
12696
12697 /*-----------------------------------------+
12698 | Populate Global Variable |
12699 +-----------------------------------------*/
12700 G_PUB_SRVC := l_api_name;
12701 G_DATA_TRANSFER_MODE := 'PLS';
12702 G_EXTERNAL_API_CALL := 'N';
12703
12704 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12705 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
12706 'application_id: ' || to_char(p_application_id)||
12710 ', org_id: ' || to_char(p_internal_org_id)||
12707 ', entity_code: ' || p_entity_code||
12708 ', event_class_code: ' || p_event_class_code||
12709 ', country_code: ' || p_country_code||
12711 ', product_id: ' || to_char(p_item_id)||
12712 ', product_org_id: ' || to_char(p_item_org_id));
12713 END IF;
12714
12715 ZX_DEFAULT_AUTOMATION_PKG.redefault_prod_fisc_class_code(p_application_id,
12716 p_entity_code,
12717 p_event_class_code,
12718 p_internal_org_id,
12719 p_country_code,
12720 p_item_id,
12721 p_item_org_id,
12722 x_prod_fisc_class_code,
12723 x_return_status
12724 );
12725 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
12726 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12727 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
12728 ':ZX_DEFAULT_AUTOMATION_PKG.redefault_prod_fisc_class_code returned errors');
12729 END IF;
12730 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
12731 RAISE FND_API.G_EXC_ERROR;
12732 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
12733 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
12734 END IF;
12735 ELSE
12736 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12737 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
12738 ':Product Fiscal Classification Code :' || x_prod_fisc_class_code);
12739 END IF;
12740 END IF;
12741
12742 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12743 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
12744 END IF;
12745
12746 EXCEPTION
12747 WHEN FND_API.G_EXC_ERROR THEN
12748 ROLLBACK TO Redef_Prod_Fisc_Class_Code_PVT;
12749 x_return_status := FND_API.G_RET_STS_ERROR ;
12750 /*---------------------------------------------------------+
12751 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
12752 | in the message stack. If there is only one message in |
12753 | the stack it retrieves this message |
12754 +---------------------------------------------------------*/
12755 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
12756 p_count => x_msg_count,
12757 p_data => x_msg_data
12758 );
12759
12760 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
12761 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
12762 END IF;
12763
12764 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
12765 ROLLBACK TO Redef_Prod_Fisc_Class_Code_PVT;
12766 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
12767 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
12768 FND_MSG_PUB.Add;
12769 /*---------------------------------------------------------+
12770 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
12771 | in the message stack. If there is only one message in |
12772 | the stack it retrieves this message |
12773 +---------------------------------------------------------*/
12774 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
12775 p_count => x_msg_count,
12776 p_data => x_msg_data
12777 );
12778 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
12779 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
12780 END IF;
12781
12782 WHEN OTHERS THEN
12783 ROLLBACK TO Redef_Prod_Fisc_Class_Code_PVT;
12784 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
12785 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
12786 FND_MSG_PUB.Add;
12787 /*---------------------------------------------------------+
12788 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
12789 | in the message stack. If there is only one message in |
12790 | the stack it retrieves this message |
12791 +---------------------------------------------------------*/
12792 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
12793 p_count => x_msg_count,
12794 p_data => x_msg_data
12795 );
12796 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
12797 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
12798 END IF;
12799 END redefault_prod_fisc_class_code;
12800
12801
12802 /* ======================================================================*
12806 PROCEDURE redefault_assessable_value(
12803 | PROCEDURE redefault_assessable_value: Redefault assessable value |
12804 * ======================================================================*/
12805
12807 p_api_version IN NUMBER,
12808 p_init_msg_list IN VARCHAR2,
12809 p_commit IN VARCHAR2,
12810 p_validation_level IN NUMBER,
12811 x_return_status OUT NOCOPY VARCHAR2,
12812 x_msg_count OUT NOCOPY NUMBER ,
12813 x_msg_data OUT NOCOPY VARCHAR2,
12814 p_application_id IN NUMBER,
12815 p_entity_code IN VARCHAR2,
12816 p_event_class_code IN VARCHAR2,
12817 p_internal_org_id IN NUMBER,
12818 p_trx_id IN NUMBER,
12819 p_trx_line_id IN NUMBER,
12820 p_trx_level_type IN VARCHAR2,
12821 p_item_id IN NUMBER,
12822 p_item_org_id IN NUMBER,
12823 p_line_amt IN NUMBER,
12824 x_assessable_value OUT NOCOPY NUMBER
12825 )IS
12826 l_api_name CONSTANT VARCHAR2(30) := 'REDEFAULT_ASSESSABLE_VALUE';
12827 l_api_version CONSTANT NUMBER := 1.0;
12828 l_return_status VARCHAR2(1);
12829 l_init_msg_list VARCHAR2(1);
12830
12831 BEGIN
12832 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12833 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
12834 END IF;
12835
12836 /*--------------------------------------------------+
12837 | Standard start of API savepoint |
12838 +--------------------------------------------------*/
12839 SAVEPOINT Redefault_Assessable_Value_PVT;
12840
12841 /*--------------------------------------------------+
12842 | Standard call to check for call compatibility |
12843 +--------------------------------------------------*/
12844 IF NOT FND_API.Compatible_API_Call(l_api_version,
12845 p_api_version,
12846 l_api_name,
12847 G_PKG_NAME
12848 ) THEN
12849 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
12850 END IF;
12851
12852 /*--------------------------------------------------------------+
12853 | Initialize message list if p_init_msg_list is set to TRUE |
12854 +--------------------------------------------------------------*/
12855 IF p_init_msg_list is null THEN
12856 l_init_msg_list := FND_API.G_FALSE;
12857 ELSE
12858 l_init_msg_list := p_init_msg_list;
12859 END IF;
12860
12861 IF FND_API.to_Boolean(l_init_msg_list) THEN
12862 FND_MSG_PUB.initialize;
12863 END IF;
12864
12865 /*-----------------------------------------+
12866 | Initialize return status to SUCCESS |
12867 +-----------------------------------------*/
12868 x_return_status := FND_API.G_RET_STS_SUCCESS;
12869
12870 /*-----------------------------------------+
12871 | Populate Global Variable |
12872 +-----------------------------------------*/
12873 G_PUB_SRVC := l_api_name;
12874 G_DATA_TRANSFER_MODE := 'PLS';
12875 G_EXTERNAL_API_CALL := 'N';
12876
12877 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12878 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
12879 'application_id: ' || to_char(p_application_id)||
12880 ', entity_code: ' || p_entity_code||
12881 ', event_class_code: ' || p_event_class_code||
12882 ', org_id: ' || to_char(p_internal_org_id)||
12883 ', product_id: ' || to_char(p_item_id)||
12884 ', product_org_id: ' || to_char(p_item_org_id)||
12885 ', trx_id: ' || to_char(p_trx_id)||
12886 ', trx_line_id: ' || to_char(p_trx_line_id)||
12887 ', trx_level_type: ' || to_char(p_trx_level_type)||
12888 ', line_amount: ' || to_char(p_line_amt));
12889 END IF;
12890
12891 ZX_DEFAULT_AUTOMATION_PKG.redefault_assessable_value(p_application_id,
12892 p_entity_code,
12893 p_event_class_code,
12894 p_internal_org_id,
12895 p_trx_id,
12896 p_trx_line_id,
12897 p_trx_level_type,
12898 p_item_id,
12899 p_item_org_id,
12900 p_line_amt,
12901 x_assessable_value,
12902 x_return_status
12903 );
12904
12905 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
12906 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12907 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
12908 ':ZX_DEFAULT_AUTOMATION_PKG.redefault_assessable_value returned errors');
12909 END IF;
12910 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
12914 END IF;
12911 RAISE FND_API.G_EXC_ERROR;
12912 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
12913 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
12915 ELSE
12916 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12917 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
12918 'Reassessable Value :' || to_char(x_assessable_value));
12919 END IF;
12920 END IF;
12921
12922 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12923 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
12924 END IF;
12925
12926 EXCEPTION
12927 WHEN FND_API.G_EXC_ERROR THEN
12928 ROLLBACK TO Redefault_Assessable_Value_PVT;
12929 x_return_status := FND_API.G_RET_STS_ERROR ;
12930 /*---------------------------------------------------------+
12931 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
12932 | in the message stack. If there is only one message in |
12933 | the stack it retrieves this message |
12934 +---------------------------------------------------------*/
12935 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
12936 p_count => x_msg_count,
12937 p_data => x_msg_data
12938 );
12939 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
12940 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
12941 END IF;
12942
12943 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
12944 ROLLBACK TO Redefault_Assessable_Value_PVT;
12945 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
12946 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
12947 FND_MSG_PUB.Add;
12948 /*---------------------------------------------------------+
12949 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
12950 | in the message stack. If there is only one message in |
12951 | the stack it retrieves this message |
12952 +---------------------------------------------------------*/
12953 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
12954 p_count => x_msg_count,
12955 p_data => x_msg_data
12956 );
12957 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
12958 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
12959 END IF;
12960
12961 WHEN OTHERS THEN
12962 ROLLBACK TO Redefault_Assessable_Value_PVT;
12963 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
12964 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
12965 FND_MSG_PUB.Add;
12966 /*---------------------------------------------------------+
12967 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
12968 | in the message stack. If there is only one message in |
12969 | the stack it retrieves this message |
12970 +---------------------------------------------------------*/
12971 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
12972 p_count => x_msg_count,
12973 p_data => x_msg_data
12974 );
12975 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
12976 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
12977 END IF;
12978 END redefault_assessable_value;
12979
12980 /* ======================================================================*
12981 | PROCEDURE redefault_product_type: Redefault product type |
12982 * ======================================================================*/
12983
12984 PROCEDURE redefault_product_type(
12985 p_api_version IN NUMBER,
12986 p_init_msg_list IN VARCHAR2,
12987 p_commit IN VARCHAR2,
12988 p_validation_level IN NUMBER,
12989 x_return_status OUT NOCOPY VARCHAR2,
12990 x_msg_count OUT NOCOPY NUMBER ,
12991 x_msg_data OUT NOCOPY VARCHAR2,
12992 p_application_id IN NUMBER,
12993 p_entity_code IN VARCHAR2,
12994 p_event_class_code IN VARCHAR2,
12995 p_country_code IN VARCHAR2,
12996 p_item_id IN NUMBER,
12997 p_org_id IN NUMBER,
12998 x_product_type OUT NOCOPY VARCHAR2
12999 )IS
13000 l_api_name CONSTANT VARCHAR2(30) := 'REDEFAULT_ASSESSABLE_VALUE';
13001 l_api_version CONSTANT NUMBER := 1.0;
13002 l_return_status VARCHAR2(1);
13003 l_init_msg_list VARCHAR2(1);
13004
13005 BEGIN
13006 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13007 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
13008 END IF;
13009
13010 /*--------------------------------------------------+
13011 | Standard start of API savepoint |
13012 +--------------------------------------------------*/
13013 SAVEPOINT Redefault_Assessable_Value_PVT;
13014
13015 /*--------------------------------------------------+
13016 | Standard call to check for call compatibility |
13017 +--------------------------------------------------*/
13018 IF NOT FND_API.Compatible_API_Call(l_api_version,
13019 p_api_version,
13020 l_api_name,
13021 G_PKG_NAME
13022 ) THEN
13023 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
13024 END IF;
13025
13026 /*--------------------------------------------------------------+
13027 | Initialize message list if p_init_msg_list is set to TRUE |
13028 +--------------------------------------------------------------*/
13029 IF p_init_msg_list is null THEN
13030 l_init_msg_list := FND_API.G_FALSE;
13031 ELSE
13032 l_init_msg_list := p_init_msg_list;
13033 END IF;
13034
13035 IF FND_API.to_Boolean(l_init_msg_list) THEN
13036 FND_MSG_PUB.initialize;
13037 END IF;
13038
13039 /*-----------------------------------------+
13040 | Initialize return status to SUCCESS |
13041 +-----------------------------------------*/
13042 x_return_status := FND_API.G_RET_STS_SUCCESS;
13043
13044 /*-----------------------------------------+
13045 | Populate Global Variable |
13046 +-----------------------------------------*/
13047 G_PUB_SRVC := l_api_name;
13048 G_DATA_TRANSFER_MODE := 'PLS';
13049 G_EXTERNAL_API_CALL := 'N';
13050
13051
13052 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
13053 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
13054 'application_id: ' || to_char(p_application_id)||
13055 ', entity_code: ' || p_entity_code||
13056 ', event_class_code: ' || p_event_class_code||
13057 ', country_code: ' || p_country_code||
13058 ', org_id: ' || to_char(p_org_id)||
13059 ', product_id: ' || to_char(p_item_id));
13060 END IF;
13061
13062 ZX_TCM_EXT_SERVICES_PUB.get_default_classif_code(p_fiscal_type_code => 'PRODUCT_TYPE',
13063 p_country_code => p_country_code,
13064 p_application_id => p_application_id,
13065 p_entity_code => p_entity_code,
13066 p_event_class_code => p_event_class_code,
13067 p_source_event_class_code => null,
13068 p_item_id => p_item_id,
13069 p_org_id => p_org_id,
13070 p_default_code => x_product_type ,
13071 p_return_status => l_return_status
13072 );
13073
13074 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
13075 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
13076 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
13077 ':ZX_DEFAULT_AUTOMATION_PKG.redefault_assessable_value returned errors');
13078 END IF;
13079 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
13080 RAISE FND_API.G_EXC_ERROR;
13081 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
13082 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
13083 END IF;
13084 ELSE
13085 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
13086 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
13087 'Product Type :' || x_product_type);
13088 END IF;
13089 END IF;
13090
13091 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13092 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
13093 END IF;
13094
13095 EXCEPTION
13096 WHEN FND_API.G_EXC_ERROR THEN
13097 ROLLBACK TO Redefault_Assessable_Value_PVT;
13098 x_return_status := FND_API.G_RET_STS_ERROR ;
13099 /*---------------------------------------------------------+
13100 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
13101 | in the message stack. If there is only one message in |
13102 | the stack it retrieves this message |
13103 +---------------------------------------------------------*/
13104 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
13105 p_count => x_msg_count,
13106 p_data => x_msg_data
13107 );
13108 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
13109 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
13110 END IF;
13111
13112 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
13113 ROLLBACK TO Redefault_Assessable_Value_PVT;
13114 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
13115 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
13116 FND_MSG_PUB.Add;
13120 | the stack it retrieves this message |
13117 /*---------------------------------------------------------+
13118 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
13119 | in the message stack. If there is only one message in |
13121 +---------------------------------------------------------*/
13122 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
13123 p_count => x_msg_count,
13124 p_data => x_msg_data
13125 );
13126 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
13127 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
13128 END IF;
13129
13130 WHEN OTHERS THEN
13131 ROLLBACK TO Redefault_Assessable_Value_PVT;
13132 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
13133 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
13134 FND_MSG_PUB.Add;
13135 /*---------------------------------------------------------+
13136 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
13137 | in the message stack. If there is only one message in |
13138 | the stack it retrieves this message |
13139 +---------------------------------------------------------*/
13140 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
13141 p_count => x_msg_count,
13142 p_data => x_msg_data
13143 );
13144 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
13145 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
13146 END IF;
13147 END redefault_product_type;
13148 /* ======================================================================*
13149 | PROCEDURE redef_tax_classification_code: ReDefault tax classification |
13150 * ======================================================================*/
13151 PROCEDURE redef_tax_classification_code(
13152 p_api_version IN NUMBER,
13153 p_init_msg_list IN VARCHAR2,
13154 p_commit IN VARCHAR2,
13155 p_validation_level IN NUMBER,
13156 x_msg_count OUT NOCOPY NUMBER ,
13157 x_msg_data OUT NOCOPY VARCHAR2,
13158 x_return_status OUT NOCOPY VARCHAR2,
13159 p_redef_tax_cls_code_info_rec IN OUT NOCOPY def_tax_cls_code_info_rec_type
13160 ) IS
13161 l_api_name CONSTANT VARCHAR2(30) := 'REDEF_TAX_CLASSIFICATION_CODE';
13162 l_api_version CONSTANT NUMBER := 1.0;
13163 l_return_status VARCHAR2(1);
13164 l_init_msg_list VARCHAR2(1);
13165 l_error_buffer VARCHAR2(1000);
13166
13167 BEGIN
13168 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13169 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
13170 END IF;
13171
13172 /*--------------------------------------------------+
13173 | Standard start of API savepoint |
13174 +--------------------------------------------------*/
13175 SAVEPOINT Redef_Tax_Class_Code_PVT;
13176
13177 /*--------------------------------------------------+
13178 | Standard call to check for call compatibility |
13179 +--------------------------------------------------*/
13180 IF NOT FND_API.Compatible_API_Call(l_api_version,
13181 p_api_version,
13182 l_api_name,
13183 G_PKG_NAME
13184 ) THEN
13185 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
13186 END IF;
13187
13188 /*--------------------------------------------------------------+
13189 | Initialize message list if p_init_msg_list is set to TRUE |
13190 +--------------------------------------------------------------*/
13191 IF p_init_msg_list is null THEN
13192 l_init_msg_list := FND_API.G_FALSE;
13193 ELSE
13194 l_init_msg_list := p_init_msg_list;
13195 END IF;
13196
13197 IF FND_API.to_Boolean(l_init_msg_list) THEN
13198 FND_MSG_PUB.initialize;
13199 END IF;
13200
13201 /*-----------------------------------------+
13202 | Initialize return status to SUCCESS |
13203 +-----------------------------------------*/
13204 x_return_status := FND_API.G_RET_STS_SUCCESS;
13205
13206 /*-----------------------------------------+
13207 | Populate Global Variable |
13208 +-----------------------------------------*/
13209 G_PUB_SRVC := l_api_name;
13210 G_DATA_TRANSFER_MODE := 'PLS';
13211 G_EXTERNAL_API_CALL := 'N';
13212
13213
13214 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
13215 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
13216 'application_id: ' || to_char(p_redef_tax_cls_code_info_rec.application_id)||
13217 ', entity_code: ' || p_redef_tax_cls_code_info_rec.entity_code||
13218 ', event_class_code: ' || p_redef_tax_cls_code_info_rec.event_class_code||
13219 ', org_id: ' || to_char(p_redef_tax_cls_code_info_rec.internal_organization_id)||
13220 ', product_id: ' || to_char(p_redef_tax_cls_code_info_rec.product_id)||
13224 ', trx_line_id: ' || to_char(p_redef_tax_cls_code_info_rec.trx_line_id)||
13221 ', product_org_id: ' || to_char(p_redef_tax_cls_code_info_rec.product_org_id)||
13222 ', trx_date: ' || to_char(p_redef_tax_cls_code_info_rec.trx_date)||
13223 ', trx_id: ' || to_char(p_redef_tax_cls_code_info_rec.trx_id)||
13225 ', trx_level_type: ' || p_redef_tax_cls_code_info_rec.trx_level_type||
13226 ', trx_date: ' || to_char(p_redef_tax_cls_code_info_rec.trx_date)||
13227 ', ledger_id: ' || to_char(p_redef_tax_cls_code_info_rec.ledger_id)||
13228 ', ship_third_pty_acct_id: ' || to_char(p_redef_tax_cls_code_info_rec.ship_third_pty_acct_id)||
13229 ', ship_third_pty_acct_site_id: ' || to_char(p_redef_tax_cls_code_info_rec.ship_third_pty_acct_site_id)||
13230 ', bill_third_pty_acct_id: ' || to_char(p_redef_tax_cls_code_info_rec.bill_third_pty_acct_id)||
13231 ', bill_third_pty_acct_site_id: ' || to_char(p_redef_tax_cls_code_info_rec.bill_third_pty_acct_site_id)||
13232 ', ship_to_cust_acct_site_use_id: ' || to_char(p_redef_tax_cls_code_info_rec.ship_to_cust_acct_site_use_id)||
13233 ', bill_to_cust_acct_site_use_id: ' || to_char(p_redef_tax_cls_code_info_rec.bill_to_cust_acct_site_use_id)||
13234 ', ship_to_location_id: ' || to_char(p_redef_tax_cls_code_info_rec.ship_to_location_id)||
13235 ', account_ccid: ' || to_char(p_redef_tax_cls_code_info_rec.account_ccid)||
13236 ', account_string: ' || p_redef_tax_cls_code_info_rec.account_string||
13237 ', ref_doc_application_id: ' || to_char(p_redef_tax_cls_code_info_rec.application_id)||
13238 ', ref_doc_entity_code: ' || p_redef_tax_cls_code_info_rec.ref_doc_entity_code||
13239 ', ref_doc_event_class_code: ' || p_redef_tax_cls_code_info_rec.ref_doc_event_class_code||
13240 ', ref_doc_trx_id: ' || to_char(p_redef_tax_cls_code_info_rec.ref_doc_trx_id)||
13241 ', ref_doc_line_id: ' || to_char(p_redef_tax_cls_code_info_rec.ref_doc_line_id)||
13242 ', ref_doc_trx_level_type: ' || p_redef_tax_cls_code_info_rec.ref_doc_trx_level_type||
13243 ', tax_user_override_flag: ' || p_redef_tax_cls_code_info_rec.tax_user_override_flag||
13244 ', overridden_tax_cls_code : ' || p_redef_tax_cls_code_info_rec.overridden_tax_cls_code ||
13245 ', defaulting_attribute10: ' || p_redef_tax_cls_code_info_rec.defaulting_attribute10||
13246 ', defaulting_attribute1: ' || p_redef_tax_cls_code_info_rec.defaulting_attribute1||
13247 ', defaulting_attribute2: ' || p_redef_tax_cls_code_info_rec.defaulting_attribute2||
13248 ', defaulting_attribute3: ' || p_redef_tax_cls_code_info_rec.defaulting_attribute3||
13249 ', defaulting_attribute4: ' || p_redef_tax_cls_code_info_rec.defaulting_attribute4||
13250 ', defaulting_attribute5: ' || p_redef_tax_cls_code_info_rec.defaulting_attribute5||
13251 ', defaulting_attribute6: ' || p_redef_tax_cls_code_info_rec.defaulting_attribute6||
13252 ', defaulting_attribute7: ' || p_redef_tax_cls_code_info_rec.defaulting_attribute7||
13253 ', defaulting_attribute8: ' || p_redef_tax_cls_code_info_rec.defaulting_attribute8||
13254 ', defaulting_attribute9: ' || p_redef_tax_cls_code_info_rec.defaulting_attribute9||
13255 ', defaulting_attribute10: ' || p_redef_tax_cls_code_info_rec.defaulting_attribute10);
13256 END IF;
13257
13258
13259 /*-------------------------------------------------+
13260 | Call TDM API to default the tax classification|
13261 +-------------------------------------------------*/
13262 ZX_TAX_DEFAULT_PKG.get_default_tax_classification (p_definfo => p_redef_tax_cls_code_info_rec,
13263 p_return_status => l_return_status,
13264 p_error_buffer => l_error_buffer
13265 );
13266 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
13267 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
13268 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
13269 ':ZX_TAX_DEFAULT_PKG.get_default_tax_classification returned errors');
13270 END IF;
13271 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
13272 RAISE FND_API.G_EXC_ERROR;
13273 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
13274 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
13275 END IF;
13276 ELSE
13277 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
13278 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
13279 'Tax Classification: ' || p_redef_tax_cls_code_info_rec.x_tax_classification_code
13280 );
13281 END IF;
13282 END IF;
13283
13284 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13285 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
13286 END IF;
13287
13288 EXCEPTION
13289 WHEN FND_API.G_EXC_ERROR THEN
13290 ROLLBACK TO Redef_Tax_Class_Code_PVT;
13291 x_return_status := FND_API.G_RET_STS_ERROR ;
13292 /*---------------------------------------------------------+
13293 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
13294 | in the message stack. If there is only one message in |
13295 | the stack it retrieves this message |
13296 +---------------------------------------------------------*/
13297 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
13298 p_count => x_msg_count,
13299 p_data => x_msg_data
13303 END IF;
13300 );
13301 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
13302 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
13304
13305 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
13306 ROLLBACK TO Redef_Tax_Class_Code_PVT;
13307 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
13308 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
13309 FND_MSG_PUB.Add;
13310 /*---------------------------------------------------------+
13311 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
13312 | in the message stack. If there is only one message in |
13313 | the stack it retrieves this message |
13314 +---------------------------------------------------------*/
13315 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
13316 p_count => x_msg_count,
13317 p_data => x_msg_data
13318 );
13319 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
13320 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
13321 END IF;
13322
13323 WHEN OTHERS THEN
13324 ROLLBACK TO Redef_Tax_Class_Code_PVT;
13325 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
13326 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
13327 FND_MSG_PUB.Add;
13328 /*---------------------------------------------------------+
13329 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
13330 | in the message stack. If there is only one message in |
13331 | the stack it retrieves this message |
13332 +---------------------------------------------------------*/
13333 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
13334 p_count => x_msg_count,
13335 p_data => x_msg_data
13336 );
13337 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
13338 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
13339 END IF;
13340 END redef_tax_classification_code;
13341
13342 /* =========================================================================*
13343 | PROCEDURE purge_tax_repository: Purges the transaction lines and tax data|
13344 | GTT : ZX_PURGE_TRANSACTIONS_GT |
13345 * ========================================================================*/
13346 PROCEDURE purge_tax_repository(
13347 p_api_version IN NUMBER,
13348 p_init_msg_list IN VARCHAR2,
13349 p_commit IN VARCHAR2,
13350 p_validation_level IN NUMBER,
13351 x_msg_count OUT NOCOPY NUMBER ,
13352 x_msg_data OUT NOCOPY VARCHAR2,
13353 x_return_status OUT NOCOPY VARCHAR2
13354 )IS
13355 l_api_name CONSTANT VARCHAR2(30) := 'PURGE_TAX_REPOSITORY';
13356 l_api_version CONSTANT NUMBER := 1.0;
13357 l_init_msg_list VARCHAR2(1);
13358 l_summarization_flag VARCHAR2(1);
13359 l_tax_recovery_flag VARCHAR2(1);
13360 l_tax_reporting_flag VARCHAR2(1);
13361 l_row_count NUMBER;
13362 l_context_info_rec context_info_rec_type;
13363 l_application_id NUMBER;
13364 l_entity_code VARCHAR2(30);
13365 l_event_class_code VARCHAR2(30);
13366
13367 BEGIN
13368 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13369 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
13370 END IF;
13371
13372 /*--------------------------------------------------+
13373 | Standard start of API savepoint |
13374 +--------------------------------------------------*/
13375 SAVEPOINT Purge_Tax_Repository_PVT;
13376
13377 /*--------------------------------------------------+
13378 | Standard call to check for call compatibility |
13379 +--------------------------------------------------*/
13380 IF NOT FND_API.Compatible_API_Call(l_api_version,
13381 p_api_version,
13382 l_api_name,
13383 G_PKG_NAME
13384 ) THEN
13385 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
13386 END IF;
13387
13388 /*--------------------------------------------------------------+
13389 | Initialize message list if p_init_msg_list is set to TRUE |
13390 +--------------------------------------------------------------*/
13391 IF p_init_msg_list is null THEN
13392 l_init_msg_list := FND_API.G_FALSE;
13393 ELSE
13394 l_init_msg_list := p_init_msg_list;
13395 END IF;
13396
13397 IF FND_API.to_Boolean(l_init_msg_list) THEN
13398 FND_MSG_PUB.initialize;
13399 END IF;
13400
13401 /*-----------------------------------------+
13402 | Initialize return status to SUCCESS |
13403 +-----------------------------------------*/
13404 x_return_status := FND_API.G_RET_STS_SUCCESS;
13405
13406 /*-----------------------------------------+
13407 | Populate Global Variable |
13411 G_EXTERNAL_API_CALL := 'N';
13408 +------ -----------------------------------*/
13409 G_PUB_SRVC := l_api_name;
13410 G_DATA_TRANSFER_MODE := 'TAB';
13412
13413 SELECT application_id,
13414 entity_code,
13415 event_class_code
13416 INTO l_application_id,
13417 l_entity_code,
13418 l_event_class_code
13419 FROM ZX_PURGE_TRANSACTIONS_GT
13420 WHERE rownum=1;
13421
13422 IF l_event_class_code = 'SALES_TRANSACTION_TAX_QUOTE' THEN
13423 SELECT summarization_flag,
13424 tax_reporting_flag,
13425 tax_recovery_flag
13426 INTO l_summarization_flag,
13427 l_tax_reporting_flag,
13428 l_tax_recovery_flag
13429 FROM ZX_EVNT_CLS_MAPPINGS
13430 WHERE APPLICATION_ID = 222
13431 AND ENTITY_CODE = 'TRANSACTIONS'
13432 AND EVENT_CLASS_CODE = 'INVOICE';
13433 ELSIF l_event_class_code = 'PURCHASE_TRANSACTION_TAX_QUOTE' THEN
13434 SELECT summarization_flag,
13435 tax_reporting_flag,
13436 tax_recovery_flag
13437 INTO l_summarization_flag,
13438 l_tax_reporting_flag,
13439 l_tax_recovery_flag
13440 FROM ZX_EVNT_CLS_MAPPINGS
13441 WHERE APPLICATION_ID = 200
13442 AND ENTITY_CODE = 'AP_INVOICES'
13443 AND EVENT_CLASS_CODE = 'STANDARD INVOICE';
13444 ELSE
13445 SELECT summarization_flag,
13446 tax_reporting_flag,
13447 tax_recovery_flag
13448 INTO l_summarization_flag,
13449 l_tax_reporting_flag,
13450 l_tax_recovery_flag
13451 FROM ZX_EVNT_CLS_MAPPINGS
13452 WHERE APPLICATION_ID = l_application_id
13453 AND ENTITY_CODE = l_entity_code
13454 AND EVENT_CLASS_CODE = l_event_class_code;
13455 END IF;
13456
13457 --PO does not report taxes so go ahead and delete the tax repository
13458 IF l_tax_reporting_flag = 'N' THEN
13459 DELETE
13460 FROM ZX_LINES tax
13461 WHERE (APPLICATION_ID, ENTITY_CODE,EVENT_CLASS_CODE, TRX_ID)
13462 IN (SELECT /*+ INDEX (ZX_PURGE_TRANSACTIONS_GT ZX_PURGE_TRANSACTIONS_GT_U1)*/
13463 APPLICATION_ID,
13464 ENTITY_CODE,
13465 EVENT_CLASS_CODE,
13466 TRX_ID
13467 FROM ZX_PURGE_TRANSACTIONS_GT purge);
13468
13469 IF SQL%FOUND THEN
13470 l_row_count := SQL%ROWCOUNT;
13471 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
13472 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name ,
13473 'Number of rows deleted from ZX_LINES = '|| to_char(l_row_count));
13474 END IF;
13475 END IF;
13476
13477 IF l_summarization_flag = 'Y' THEN
13478 DELETE
13479 FROM ZX_LINES_SUMMARY summ
13480 WHERE (APPLICATION_ID, ENTITY_CODE,EVENT_CLASS_CODE,TRX_ID)
13481 IN (SELECT /*+ INDEX (ZX_PURGE_TRANSACTIONS_GT ZX_PURGE_TRANSACTIONS_GT_U1)*/
13482 APPLICATION_ID,
13483 ENTITY_CODE,
13484 EVENT_CLASS_CODE,
13485 TRX_ID
13486 FROM ZX_PURGE_TRANSACTIONS_GT purge);
13487
13488 IF SQL%FOUND THEN
13489 l_row_count := SQL%ROWCOUNT;
13490 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
13491 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name ,
13492 'Number of rows deleted from ZX_LINES_SUMMARY = '||to_char(l_row_count));
13493 END IF;
13494 END IF;
13495 END IF; --summarization_flag is Y
13496
13497 IF l_tax_recovery_flag ='Y' THEN
13498 DELETE
13499 FROM ZX_REC_NREC_DIST dist
13500 WHERE (APPLICATION_ID, ENTITY_CODE,EVENT_CLASS_CODE,TRX_ID)
13501 IN (SELECT /*+ INDEX (ZX_PURGE_TRANSACTIONS_GT ZX_PURGE_TRANSACTIONS_GT_U1)*/
13502 APPLICATION_ID,
13503 ENTITY_CODE,
13504 EVENT_CLASS_CODE,
13505 TRX_ID
13506 FROM ZX_PURGE_TRANSACTIONS_GT purge);
13507
13508
13509 IF SQL%FOUND THEN
13510 l_row_count := SQL%ROWCOUNT;
13511 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL ) THEN
13512 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name ,
13513 'Number of rows deleted from ZX_REC_NREC_DIST = '||to_char(l_row_count));
13514 END IF;
13515 END IF;
13516 END IF; --tax recovery is Y
13517
13518 DELETE
13519 FROM ZX_LINES_DET_FACTORS lines
13520 WHERE (APPLICATION_ID, ENTITY_CODE,EVENT_CLASS_CODE, TRX_ID)
13521 IN (SELECT /*+ INDEX (ZX_PURGE_TRANSACTIONS_GT ZX_PURGE_TRANSACTIONS_GT_U1)*/
13522 APPLICATION_ID,
13523 ENTITY_CODE,
13524 EVENT_CLASS_CODE,
13525 TRX_ID
13526 FROM ZX_PURGE_TRANSACTIONS_GT purge);
13527
13528 IF SQL%FOUND THEN
13529 l_row_count := SQL%ROWCOUNT;
13530 IF (G_LEVEL_PROCEDURE >= g_current_runtime_level ) THEN
13531 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name ,
13532 'Number of rows deleted from ZX_LINES_DET_FACTORS = '||to_char(l_row_count));
13533 END IF;
13537
13534 END IF;
13535 --ELSIF tax_reporting_flag = 'Y' --AR/AP cases wherein we need to purge only if tax lines are frozen --TBD on requirement basis
13536 END IF; --tax reporting flag is N
13538
13539 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13540 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
13541 END IF;
13542
13543 EXCEPTION
13544 WHEN FND_API.G_EXC_ERROR THEN
13545 ROLLBACK TO Purge_Tax_Repository_PVT;
13546 x_return_status := FND_API.G_RET_STS_ERROR ;
13547 --Call API to dump into zx_errors_gt
13548 DUMP_MSG;
13549 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
13550 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
13551 END IF;
13552
13553 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
13554 ROLLBACK TO Purge_Tax_Repository_PVT;
13555 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
13556 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
13557 FND_MSG_PUB.Add;
13558 /*---------------------------------------------------------+
13559 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
13560 | in the message stack. If there is only one message in |
13561 | the stack it retrieves this message |
13562 +---------------------------------------------------------*/
13563 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
13564 p_count => x_msg_count,
13565 p_data => x_msg_data
13566 );
13567 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
13568 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
13569 END IF;
13570
13571 WHEN OTHERS THEN
13572 ROLLBACK TO Purge_Tax_Repository_PVT;
13573 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
13574 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
13575 FND_MSG_PUB.Add;
13576 /*---------------------------------------------------------+
13577 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
13578 | in the message stack. If there is only one message in |
13579 | the stack it retrieves this message |
13580 +---------------------------------------------------------*/
13581 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
13582 p_count => x_msg_count,
13583 p_data => x_msg_data
13584 );
13585 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
13586 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
13587 END IF;
13588
13589 END purge_tax_repository;
13590
13591 /* ======================================================================*
13592 | API TO GET LE FOR AP IMPORT TRANSACTIONS |
13593 * ======================================================================*/
13594 FUNCTION get_le_from_tax_registration(
13595 p_api_version IN NUMBER,
13596 p_init_msg_list IN VARCHAR2,
13597 p_commit IN VARCHAR2,
13598 p_validation_level IN NUMBER,
13599 x_return_status OUT NOCOPY VARCHAR2,
13600 x_msg_count OUT NOCOPY NUMBER,
13601 x_msg_data OUT NOCOPY VARCHAR2,
13602 p_registration_num IN ZX_REGISTRATIONS.Registration_Number%type,
13603 p_effective_date IN ZX_REGISTRATIONS.effective_from%type,
13604 p_country IN ZX_PARTY_TAX_PROFILE.Country_code%type
13605 ) RETURN Number IS
13606 l_api_name CONSTANT VARCHAR2(30) := 'GET_LE_FROM_TAX_REGISTRATION';
13607 l_api_version CONSTANT NUMBER := 1.0;
13608 l_init_msg_list VARCHAR2(1);
13609 l_legal_entity_id NUMBER;
13610 l_return_status VARCHAR2(1);
13611
13612 BEGIN
13613 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13614 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
13615 END IF;
13616
13617 /*--------------------------------------------------+
13618 | Standard start of API savepoint |
13619 +--------------------------------------------------*/
13620 SAVEPOINT GET_LE_FROM_TAX_REGISTRATN_PVT;
13621
13622 /*--------------------------------------------------+
13623 | Standard call to check for call compatibility |
13624 +--------------------------------------------------*/
13625 IF NOT FND_API.Compatible_API_Call(l_api_version,
13626 p_api_version,
13627 l_api_name,
13628 G_PKG_NAME
13629 ) THEN
13630 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
13631 END IF;
13632
13633 /*--------------------------------------------------------------+
13634 | Initialize message list if p_init_msg_list is set to TRUE |
13635 +--------------------------------------------------------------*/
13636 IF p_init_msg_list is null THEN
13637 l_init_msg_list := FND_API.G_FALSE;
13638 ELSE
13639 l_init_msg_list := p_init_msg_list;
13640 END IF;
13641
13642 IF FND_API.to_Boolean(l_init_msg_list) THEN
13646 /*-----------------------------------------+
13643 FND_MSG_PUB.initialize;
13644 END IF;
13645
13647 | Initialize return status to SUCCESS |
13648 +-----------------------------------------*/
13649 x_return_status := FND_API.G_RET_STS_SUCCESS;
13650
13651 /*-----------------------------------------+
13652 | Populate Global Variable |
13653 +-----------------------------------------*/
13654 G_PUB_SRVC := l_api_name;
13655 G_DATA_TRANSFER_MODE := 'PLS';
13656 G_EXTERNAL_API_CALL := 'N';
13657
13658
13659 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
13660 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
13661 'Registration Number: ' || to_char(p_registration_num)||
13662 ', Country Code: ' || p_country ||
13663 ', Effective_date: ' || to_char(p_effective_date));
13664 END IF;
13665
13666
13667 /*-------------------------------------------------+
13668 | Call TDM API to default the tax classification|
13669 +-------------------------------------------------*/
13670
13671 l_legal_entity_id := ZX_TCM_EXT_SERVICES_PUB.get_le_from_tax_registration (x_return_status,
13672 p_registration_num,
13673 p_effective_date,
13674 p_country
13675 );
13676 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
13677 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
13678 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
13679 ':ZX_TCM_EXT_SERVICES.get_le_from_tax_registration returned errors');
13680 END IF;
13681 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
13682 RAISE FND_API.G_EXC_ERROR;
13683 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
13684 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
13685 END IF;
13686 ELSE
13687 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
13688 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
13689 'Legal Entity : ' || to_char(l_legal_entity_id)
13690 );
13691 END IF;
13692 RETURN l_legal_entity_id;
13693 END IF;
13694
13695 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13696 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
13697 END IF;
13698 EXCEPTION
13699 WHEN FND_API.G_EXC_ERROR THEN
13700 ROLLBACK TO GET_LE_FROM_TAX_REGISTRATN_PVT;
13701 x_return_status := FND_API.G_RET_STS_ERROR ;
13702 /*---------------------------------------------------------+
13703 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
13704 | in the message stack. If there is only one message in |
13705 | the stack it retrieves this message |
13706 +---------------------------------------------------------*/
13707 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
13708 p_count => x_msg_count,
13709 p_data => x_msg_data
13710 );
13711 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
13712 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
13713 END IF;
13714
13715 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
13716 ROLLBACK TO GET_LE_FROM_TAX_REGISTRATN_PVT;
13717 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
13718 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
13719 FND_MSG_PUB.Add;
13720 /*---------------------------------------------------------+
13721 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
13722 | in the message stack. If there is only one message in |
13723 | the stack it retrieves this message |
13724 +---------------------------------------------------------*/
13725 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
13726 p_count => x_msg_count,
13727 p_data => x_msg_data
13728 );
13729 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
13730 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
13731 END IF;
13732
13733 WHEN OTHERS THEN
13734 ROLLBACK TO GET_LE_FROM_TAX_REGISTRATN_PVT;
13735 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
13736 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
13737 FND_MSG_PUB.Add;
13738 /*---------------------------------------------------------+
13739 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
13740 | in the message stack. If there is only one message in |
13741 | the stack it retrieves this message |
13742 +---------------------------------------------------------*/
13743 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
13744 p_count => x_msg_count,
13745 p_data => x_msg_data
13749 END IF;
13746 );
13747 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
13748 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
13750 END get_le_from_tax_registration;
13751
13752 /* ============================================================================*
13753 | PROCEDURE update_posting_flag : This procedure will update the posting_flag|
13754 | for the tax distribution ids that are passed in from product. |
13755 * ============================================================================*/
13756 PROCEDURE update_posting_flag(
13757 p_api_version IN NUMBER,
13758 p_init_msg_list IN VARCHAR2,
13759 p_commit IN VARCHAR2,
13760 p_validation_level IN NUMBER,
13761 x_return_status OUT NOCOPY VARCHAR2,
13762 x_msg_count OUT NOCOPY NUMBER,
13763 x_msg_data OUT NOCOPY VARCHAR2,
13764 p_tax_dist_id_tbl IN tax_dist_id_tbl_type
13765 )IS
13766 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_POSTING_FLAG';
13767 l_api_version CONSTANT NUMBER := 1.0;
13768 l_return_status VARCHAR2(1);
13769 l_init_msg_list VARCHAR2(1);
13770
13771 BEGIN
13772 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13773 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN','ZX_API_PUB: '||l_api_name||'()+');
13774 END IF;
13775
13776 /*--------------------------------------------------+
13777 | Standard start of API savepoint |
13778 +--------------------------------------------------*/
13779 SAVEPOINT update_posting_flag_PVT;
13780
13781 /*--------------------------------------------------+
13782 | Standard call to check for call compatibility |
13783 +--------------------------------------------------*/
13784 IF NOT FND_API.Compatible_API_Call(l_api_version,
13785 p_api_version,
13786 l_api_name,
13787 G_PKG_NAME
13788 ) THEN
13789 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
13790 END IF;
13791
13792 /*--------------------------------------------------------------+
13793 | Initialize message list if p_init_msg_list is set to TRUE |
13794 +--------------------------------------------------------------*/
13795 IF p_init_msg_list is null THEN
13796 l_init_msg_list := FND_API.G_FALSE;
13797 ELSE
13798 l_init_msg_list := p_init_msg_list;
13799 END IF;
13800
13801 IF FND_API.to_Boolean(l_init_msg_list) THEN
13802 FND_MSG_PUB.initialize;
13803 END IF;
13804
13805 /*-----------------------------------------+
13806 | Initialize return status to SUCCESS |
13807 +-----------------------------------------*/
13808 x_return_status := FND_API.G_RET_STS_SUCCESS;
13809
13810 /*-----------------------------------------+
13811 | Populate Global Variable |
13812 +-----------------------------------------*/
13813 G_PUB_SRVC := l_api_name;
13814 G_DATA_TRANSFER_MODE := 'PLS';
13815 G_EXTERNAL_API_CALL := 'N';
13816
13817 IF ( G_LEVEL_EVENT >= G_CURRENT_RUNTIME_LEVEL) THEN
13818 FND_LOG.STRING(G_LEVEL_EVENT,G_MODULE_NAME||l_api_name,
13819 'Call TRD service to update posting flag'
13820 );
13821 END IF;
13822
13823 ZX_TRD_SERVICES_PUB_PKG.update_posting_flag(p_tax_dist_id_tbl => p_tax_dist_id_tbl,
13824 x_return_status => l_return_status
13825 );
13826
13827 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
13828 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
13829 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||
13830 ':ZX_TRD_SERVICES_PUB_PKG.update_posting_flag returned errors');
13831 END IF;
13832 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
13833 RAISE FND_API.G_EXC_ERROR;
13834 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
13835 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
13836 END IF;
13837 END IF;
13838
13839 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13840 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END','ZX_API_PUB: '||l_api_name||'()-');
13841 END IF;
13842
13843 EXCEPTION
13844 WHEN FND_API.G_EXC_ERROR THEN
13845 ROLLBACK TO update_posting_flag_PVT;
13846 x_return_status := FND_API.G_RET_STS_ERROR ;
13847 /*---------------------------------------------------------+
13848 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
13849 | in the message stack. If there is only one message in |
13850 | the stack it retrieves this message |
13851 +---------------------------------------------------------*/
13852 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
13853 p_count => x_msg_count,
13854 p_data => x_msg_data
13855 );
13856
13857 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
13858 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
13859 END IF;
13860
13864 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
13861 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
13862 ROLLBACK TO update_posting_flag_PVT;
13863 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
13865 FND_MSG_PUB.Add;
13866 /*---------------------------------------------------------+
13867 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
13868 | in the message stack. If there is only one message in |
13869 | the stack it retrieves this message |
13870 +---------------------------------------------------------*/
13871 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
13872 p_count => x_msg_count,
13873 p_data => x_msg_data
13874 );
13875
13876 IF ( G_LEVEL_ERROR >= G_CURRENT_RUNTIME_LEVEL) THEN
13877 FND_LOG.STRING(G_LEVEL_ERROR,G_MODULE_NAME||l_api_name,'');
13878 END IF;
13879
13880 WHEN OTHERS THEN
13881 ROLLBACK TO update_posting_flag_PVT;
13882 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
13883 FND_MESSAGE.SET_NAME ('ZX','ZX_UNEXPECTED_ERROR');
13884 FND_MSG_PUB.Add;
13885 /*---------------------------------------------------------+
13886 | FND_MSG_PUB.Count_And_Get used to get the count of mesg.|
13887 | in the message stack. If there is only one message in |
13888 | the stack it retrieves this message |
13889 +---------------------------------------------------------*/
13890 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
13891 p_count => x_msg_count,
13892 p_data => x_msg_data
13893 );
13894 IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
13895 FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
13896 END IF;
13897
13898 END update_posting_flag;
13899
13900 END ZX_API_PUB;