[Home] [Help]
PACKAGE BODY: APPS.ZX_TRL_PUB_PKG
Source
1 PACKAGE BODY ZX_TRL_PUB_PKG AS
2 /* $Header: zxrwlnrepsrvpubb.pls 120.40 2006/09/22 22:56:08 nipatel ship $ */
3
4 g_current_runtime_level NUMBER;
5 g_level_statement CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
6 g_level_procedure CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
7 g_level_event CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
8 g_level_unexpected CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
9 g_level_error CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
10
11 /* ===========================================================================*
12 | PROCEDURE Manage_TaxLines: It will Create, update, delete and cancel tax |
13 | lines and summary tax lines in the tax |
14 | repository |
15 * ===========================================================================*/
16
17 PROCEDURE Manage_TaxLines
18 (x_return_status OUT NOCOPY VARCHAR2,
19 p_event_class_rec IN ZX_API_PUB.EVENT_CLASS_REC_TYPE) IS
20
21 l_error_buffer VARCHAR2(100);
22 l_msg_context_info_rec ZX_API_PUB.CONTEXT_INFO_REC_TYPE;
23
24 BEGIN
25 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
26
27 IF (g_level_procedure >= g_current_runtime_level ) THEN
28 FND_LOG.STRING(g_level_procedure,
29 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines.BEGIN',
30 'ZX_TRL_PUB_PKG: Manage_TaxLines (+)');
31 END IF;
32
33 -- Initialize API return status to success
34 x_return_status := FND_API.G_RET_STS_SUCCESS;
35
36 --
37 -- bug#4893261- populate message structure
38 --
39 l_msg_context_info_rec.application_id :=
40 p_event_class_rec.application_id;
41 l_msg_context_info_rec.entity_code :=
42 p_event_class_rec.entity_code;
43 l_msg_context_info_rec.event_class_code :=
44 p_event_class_rec.event_class_code;
45 l_msg_context_info_rec.trx_id :=
46 p_event_class_rec.trx_id;
47 l_msg_context_info_rec.trx_line_id := NULL;
48 l_msg_context_info_rec.trx_level_type := NULL;
49 l_msg_context_info_rec.summary_tax_line_number := NULL;
50 l_msg_context_info_rec.tax_line_id := NULL;
51 l_msg_context_info_rec.trx_line_dist_id := NULL;
52
53
54 -- p_event_class_rec.TAX_EVENT_TYPE_CODE can be null if there is a transaction with only
55 -- header and no lines (e.g. where all tax lines for the document need to be deleted) or
56 -- when a transaction in the batch has errors and so the transaction was not selected in
57 -- c_lines loop of service types pkg. Hence we should not raise error if the
58 -- p_event_class_rec.TAX_EVENT_TYPE_CODE IS NULL.
59 /*
60 IF p_event_class_rec.TAX_EVENT_TYPE_CODE IS NULL THEN
61 x_return_status := FND_API.G_RET_STS_ERROR;
62 FND_MESSAGE.SET_NAME('ZX','ZX_TRL_NULL_VALUES');
63 ZX_API_PUB.add_msg(l_msg_context_info_rec);
64 RETURN;
65 END IF;
66 */
67
68 -- bug fix 5417887:
69 -- g_update_event_process_flag being Y means it is either a single update
70 -- document or a update batch process.
71 --
72 -- during the summary tax line creation, still make use of the
73 -- following flags in the p_event_class_rec:
74 -- summarization_flag, retain_summ_tax_line_id_flag
75 -- the ASSUMPTION here is:
76 -- NO CROSS EVENT_CLASS_CODE DOCUMENTS EXISTS IN THE BATCH!!!
77 -- When situation changes in the future, need to revisit the code and make
78 -- necessary changes.
79
80 IF ZX_GLOBAL_STRUCTURES_PKG.g_update_event_process_flag = 'Y' THEN
81
82 /*
83 * no longer needed for UPDATE case
84 *
85 * ZX_TRL_MANAGE_TAX_PKG.Update_Synchronize_Taxlines
86 * (x_return_status => x_return_status);
87 *
88 */
89
90 ZX_TRL_MANAGE_TAX_PKG.Delete_Detail_Lines
91 (x_return_status => x_return_status ,
92 p_event_class_rec => p_event_class_rec);
93
94 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
95 IF (g_level_error >= g_current_runtime_level ) THEN
96 FND_LOG.STRING(g_level_error,
97 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
98 'Incorrect return_status after calling ' ||
99 'ZX_TRL_MANAGE_TAX_PKG.Delete_Detail_Lines()');
100 FND_LOG.STRING(g_level_error,
101 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
102 'RETURN_STATUS = ' || x_return_status);
103 FND_LOG.STRING(g_level_error,
104 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines.END',
105 'ZX_TRL_PUB_PKG.Manage_TaxLines(-)');
106 END IF;
107 RETURN;
108 END IF;
109
110 -- for summarization_flag <>'Y', only recreate the detail tax lines
111 IF p_event_class_rec.summarization_flag <> 'Y' THEN
112
113 ZX_TRL_MANAGE_TAX_PKG.Create_Detail_Lines (
114 p_event_class_rec => p_event_class_rec,
115 x_return_status => x_return_status);
116
117 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
118 IF (g_level_error >= g_current_runtime_level ) THEN
119 FND_LOG.STRING(g_level_error,
120 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
121 'Incorrect return_status after calling ' ||
122 'ZX_TRL_MANAGE_TAX_PKG.Create_Detail_Lines()');
123 FND_LOG.STRING(g_level_error,
124 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
125 'RETURN_STATUS = ' || x_return_status);
126 FND_LOG.STRING(g_level_error,
127 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines.END',
128 'ZX_TRL_PUB_PKG.Manage_TaxLines(-)');
129 END IF;
130 RETURN;
131 END IF;
132
133 ELSE --p_event_class_rec.summarization_flag = 'Y'
134
135 -- Preserve old summary_tax_line_id in g_detail_tax_lines_gt (for UPDATE
136 -- case) if the same summarization criteria exist in zx_lines_summary
137 --
138 IF p_event_class_rec.retain_summ_tax_line_id_flag = 'Y' THEN
139
140 ZX_TRL_MANAGE_TAX_PKG.update_exist_summary_line_id (
141 p_event_class_rec => p_event_class_rec,
142 x_return_status => x_return_status);
143
144 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
145 IF (g_level_error >= g_current_runtime_level ) THEN
146 FND_LOG.STRING(g_level_error,
147 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
148 'Incorrect return_status after calling ' ||
149 'ZX_TRL_MANAGE_TAX_PKG.update_exist_summary_line_id()');
150 FND_LOG.STRING(g_level_error,
151 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
152 'RETURN_STATUS = ' || x_return_status);
153 FND_LOG.STRING(g_level_error,
154 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines.END',
155 'ZX_TRL_PUB_PKG.Manage_TaxLines(-)');
156 END IF;
157 RETURN;
158 END IF;
159 END IF;
160
161 ZX_TRL_MANAGE_TAX_PKG.Delete_Summary_Lines
162 (x_return_status => x_return_status,
163 p_event_class_rec => p_event_class_rec);
164
165 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
166 IF (g_level_error >= g_current_runtime_level ) THEN
167 FND_LOG.STRING(g_level_error,
168 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
169 'Incorrect return_status after calling ' ||
170 'ZX_TRL_MANAGE_TAX_PKG.Delete_Summary_Lines()');
171 FND_LOG.STRING(g_level_error,
172 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
173 'RETURN_STATUS = ' || x_return_status);
174 FND_LOG.STRING(g_level_error,
175 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines.END',
176 'ZX_TRL_PUB_PKG.Manage_TaxLines(-)');
177 END IF;
178 RETURN;
179 END IF;
180
181 -- recreate the summary tax lines and detail tax lines
182
183 IF p_event_class_rec.retain_summ_tax_line_id_flag = 'N' THEN
184
185 -- for update tax event, AP will pass in all the trx lines,
186 -- that is, all the tax lines will be in the zx_detail_tax_lines_gt.
187 -- so if not retain summary_tax_line_id, it is treated same as
188 -- created case.
189
190 ZX_TRL_MANAGE_TAX_PKG.create_summary_lines_crt_evnt (
191 p_event_class_rec => p_event_class_rec,
192 x_return_status => x_return_status );
193
194 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
195 IF (g_level_error >= g_current_runtime_level ) THEN
196 FND_LOG.STRING(g_level_error,
197 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
198 'Incorrect return_status after calling ' ||
199 'ZX_TRL_MANAGE_TAX_PKG.create_summary_lines_crt_evnt()');
200 FND_LOG.STRING(g_level_error,
201 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
202 'RETURN_STATUS = ' || x_return_status);
203 FND_LOG.STRING(g_level_error,
204 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines.END',
205 'ZX_TRL_PUB_PKG.Manage_TaxLines(-)');
206 END IF;
207 RETURN;
208 END IF;
209
210
211 ZX_TRL_MANAGE_TAX_PKG.Create_Detail_Lines (
212 p_event_class_rec => p_event_class_rec,
213 x_return_status => x_return_status);
214
215 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
216 IF (g_level_error >= g_current_runtime_level ) THEN
217 FND_LOG.STRING(g_level_error,
218 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
219 'Incorrect return_status after calling ' ||
220 'ZX_TRL_MANAGE_TAX_PKG.Create_Detail_Lines()');
221 FND_LOG.STRING(g_level_error,
222 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
223 'RETURN_STATUS = ' || x_return_status);
224 FND_LOG.STRING(g_level_error,
225 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines.END',
226 'ZX_TRL_PUB_PKG.Manage_TaxLines(-)');
227 END IF;
228 RETURN;
229 END IF;
230
231 ELSE
232 -- For retain_summary_tax_line_id ='Y'
233
234 ZX_TRL_MANAGE_TAX_PKG.Create_Detail_Lines (
235 p_event_class_rec => p_event_class_rec,
236 x_return_status => x_return_status);
237
238 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
239 IF (g_level_error >= g_current_runtime_level ) THEN
240 FND_LOG.STRING(g_level_error,
241 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
242 'Incorrect return_status after calling ' ||
243 'ZX_TRL_MANAGE_TAX_PKG.Create_Detail_Lines()');
244 FND_LOG.STRING(g_level_error,
245 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
246 'RETURN_STATUS = ' || x_return_status);
247 FND_LOG.STRING(g_level_error,
248 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines.END',
249 'ZX_TRL_PUB_PKG.Manage_TaxLines(-)');
250 END IF;
251 RETURN;
252 END IF;
253
254 ZX_TRL_MANAGE_TAX_PKG.create_summary_lines_upd_evnt (
255 p_event_class_rec => p_event_class_rec,
256 x_return_status => x_return_status );
257
258 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
259 IF (g_level_error >= g_current_runtime_level ) THEN
260 FND_LOG.STRING(g_level_error,
261 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
262 'Incorrect return_status after calling ' ||
263 'ZX_TRL_MANAGE_TAX_PKG.create_summary_lines_crt_evnt()');
264 FND_LOG.STRING(g_level_error,
265 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
266 'RETURN_STATUS = ' || x_return_status);
267 FND_LOG.STRING(g_level_error,
268 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines.END',
269 'ZX_TRL_PUB_PKG.Manage_TaxLines(-)');
270 END IF;
271 RETURN;
272 END IF;
273
274 END IF; -- p_event_class_rec.retain_summ_tax_line_id_flag = 'N'
275
276 END IF; -- p_event_class_rec.summarization_flag <> 'Y'
277
278
279 ZX_TRL_MANAGE_TAX_PKG.Delete_Loose_Tax_Distributions
280 (x_return_status => x_return_status,
281 p_event_class_rec => p_event_class_rec);
282
283 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
284 IF (g_level_error >= g_current_runtime_level ) THEN
285 FND_LOG.STRING(g_level_error,
286 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
287 'Incorrect return_status after calling ' ||
288 'ZX_TRL_MANAGE_TAX_PKG.Delete_Loose_Tax_Distributions()');
289 FND_LOG.STRING(g_level_error,
290 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
291 'RETURN_STATUS = ' || x_return_status);
292 FND_LOG.STRING(g_level_error,
293 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines.END',
294 'ZX_TRL_PUB_PKG.Manage_TaxLines(-)');
295 END IF;
296 RETURN;
297 END IF;
298
299 ELSIF (p_event_class_rec.TAX_EVENT_TYPE_CODE = 'CREATE') THEN
303 -- for create tax event, summary tax line created based on
300
301 IF p_event_class_rec.summarization_flag = 'Y' THEN
302
304 -- zx_detail_tax_lines_gt, dump detail tax lines from gt to zx_lines
305 -- called after summary lines created for performance consideration.
306 --
307 ZX_TRL_MANAGE_TAX_PKG.create_summary_lines_crt_evnt (
308 p_event_class_rec => p_event_class_rec,
309 x_return_status => x_return_status );
310
311 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
312 IF (g_level_error >= g_current_runtime_level ) THEN
313 FND_LOG.STRING(g_level_error,
314 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
315 'Incorrect return_status after calling ' ||
316 'ZX_TRL_MANAGE_TAX_PKG.create_summary_lines_crt_evnt()');
317 FND_LOG.STRING(g_level_error,
318 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
319 'RETURN_STATUS = ' || x_return_status);
320 FND_LOG.STRING(g_level_error,
321 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines.END',
322 'ZX_TRL_PUB_PKG.Manage_TaxLines(-)');
323 END IF;
324 RETURN;
325 END IF;
326
327 END IF;
328
329 -- Dump detail tax lines from gt to zx_lines
330 ZX_TRL_MANAGE_TAX_PKG.Create_Detail_Lines (
331 p_event_class_rec => p_event_class_rec,
332 x_return_status => x_return_status);
333
334 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
335 IF (g_level_error >= g_current_runtime_level ) THEN
336 FND_LOG.STRING(g_level_error,
337 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
338 'Incorrect return_status after calling ' ||
339 'ZX_TRL_MANAGE_TAX_PKG.Create_Detail_Lines()');
340 FND_LOG.STRING(g_level_error,
341 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
342 'RETURN_STATUS = ' || x_return_status);
343 FND_LOG.STRING(g_level_error,
344 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines.END',
345 'ZX_TRL_PUB_PKG.Manage_TaxLines(-)');
346 END IF;
347 RETURN;
348 END IF;
349
350 -- bug fix 5417887
351 --ELSIF (p_event_class_rec.tax_event_type_code ='UPDATE' OR
352 -- p_event_class_rec.tax_event_type_code ='OVERRIDE_TAX' ) THEN
353 ELSIF p_event_class_rec.tax_event_type_code ='OVERRIDE_TAX' THEN
354
355 /*
356 * no longer needed for UPDATE case
357 *
358 * ZX_TRL_MANAGE_TAX_PKG.Update_Synchronize_Taxlines
359 * (x_return_status => x_return_status);
360 *
361 */
362
363 ZX_TRL_MANAGE_TAX_PKG.Delete_Detail_Lines
364 (x_return_status => x_return_status ,
365 p_event_class_rec => p_event_class_rec);
366
367 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
368 IF (g_level_error >= g_current_runtime_level ) THEN
369 FND_LOG.STRING(g_level_error,
370 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
371 'Incorrect return_status after calling ' ||
372 'ZX_TRL_MANAGE_TAX_PKG.Delete_Detail_Lines()');
373 FND_LOG.STRING(g_level_error,
374 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
375 'RETURN_STATUS = ' || x_return_status);
376 FND_LOG.STRING(g_level_error,
377 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines.END',
378 'ZX_TRL_PUB_PKG.Manage_TaxLines(-)');
379 END IF;
380 RETURN;
381 END IF;
382
383 -- for summarization_flag <>'Y', only recreate the detail tax lines
384 IF p_event_class_rec.summarization_flag <> 'Y' THEN
385
386 ZX_TRL_MANAGE_TAX_PKG.Create_Detail_Lines (
387 p_event_class_rec => p_event_class_rec,
388 x_return_status => x_return_status);
389
390 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
391 IF (g_level_error >= g_current_runtime_level ) THEN
392 FND_LOG.STRING(g_level_error,
393 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
394 'Incorrect return_status after calling ' ||
395 'ZX_TRL_MANAGE_TAX_PKG.Create_Detail_Lines()');
396 FND_LOG.STRING(g_level_error,
397 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
398 'RETURN_STATUS = ' || x_return_status);
399 FND_LOG.STRING(g_level_error,
400 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines.END',
401 'ZX_TRL_PUB_PKG.Manage_TaxLines(-)');
402 END IF;
403 RETURN;
404 END IF;
405
406 ELSE --p_event_class_rec.summarization_flag = 'Y'
407
408 -- Preserve old summary_tax_line_id in g_detail_tax_lines_gt (for UPDATE
409 -- case) if the same summarization criteria exist in zx_lines_summary
410 --
411 IF p_event_class_rec.retain_summ_tax_line_id_flag = 'Y' THEN
412
413 ZX_TRL_MANAGE_TAX_PKG.update_exist_summary_line_id (
414 p_event_class_rec => p_event_class_rec,
415 x_return_status => x_return_status);
416
417 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
418 IF (g_level_error >= g_current_runtime_level ) THEN
419 FND_LOG.STRING(g_level_error,
420 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
421 'Incorrect return_status after calling ' ||
422 'ZX_TRL_MANAGE_TAX_PKG.update_exist_summary_line_id()');
423 FND_LOG.STRING(g_level_error,
427 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines.END',
424 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
425 'RETURN_STATUS = ' || x_return_status);
426 FND_LOG.STRING(g_level_error,
428 'ZX_TRL_PUB_PKG.Manage_TaxLines(-)');
429 END IF;
430 RETURN;
431 END IF;
432 END IF;
433
434 ZX_TRL_MANAGE_TAX_PKG.Delete_Summary_Lines
435 (x_return_status => x_return_status,
436 p_event_class_rec => p_event_class_rec);
437
438 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
439 IF (g_level_error >= g_current_runtime_level ) THEN
440 FND_LOG.STRING(g_level_error,
441 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
442 'Incorrect return_status after calling ' ||
443 'ZX_TRL_MANAGE_TAX_PKG.Delete_Summary_Lines()');
444 FND_LOG.STRING(g_level_error,
445 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
446 'RETURN_STATUS = ' || x_return_status);
447 FND_LOG.STRING(g_level_error,
448 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines.END',
449 'ZX_TRL_PUB_PKG.Manage_TaxLines(-)');
450 END IF;
451 RETURN;
452 END IF;
453
454 /* -- commented out for bug fix 5417887
455 -- recreate the summary tax lines and detail tax lines
456
457 IF p_event_class_rec.tax_event_type_code = 'UPDATE'
458 AND p_event_class_rec.retain_summ_tax_line_id_flag = 'N'
459 THEN
460 -- for update tax event, AP will pass in all the trx lines,
461 -- that is, all the tax lines will be in the zx_detail_tax_lines_gt.
462 -- so if not retain summary_tax_line_id, it is treated same as
463 -- created case.
464
465 ZX_TRL_MANAGE_TAX_PKG.create_summary_lines_crt_evnt (
466 p_event_class_rec => p_event_class_rec,
467 x_return_status => x_return_status );
468
469 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
470 IF (g_level_error >= g_current_runtime_level ) THEN
471 FND_LOG.STRING(g_level_error,
472 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
473 'Incorrect return_status after calling ' ||
474 'ZX_TRL_MANAGE_TAX_PKG.create_summary_lines_crt_evnt()');
475 FND_LOG.STRING(g_level_error,
476 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
477 'RETURN_STATUS = ' || x_return_status);
478 FND_LOG.STRING(g_level_error,
479 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines.END',
480 'ZX_TRL_PUB_PKG.Manage_TaxLines(-)');
481 END IF;
482 RETURN;
483 END IF;
484
485
486 ZX_TRL_MANAGE_TAX_PKG.Create_Detail_Lines (
487 p_event_class_rec => p_event_class_rec,
488 x_return_status => x_return_status);
489
490 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
491 IF (g_level_error >= g_current_runtime_level ) THEN
492 FND_LOG.STRING(g_level_error,
493 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
494 'Incorrect return_status after calling ' ||
495 'ZX_TRL_MANAGE_TAX_PKG.Create_Detail_Lines()');
496 FND_LOG.STRING(g_level_error,
497 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
498 'RETURN_STATUS = ' || x_return_status);
499 FND_LOG.STRING(g_level_error,
500 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines.END',
501 'ZX_TRL_PUB_PKG.Manage_TaxLines(-)');
502 END IF;
503 RETURN;
504 END IF;
505
506 ELSE
507 -- For tax_event_type of UPDATE and retain_summary_tax_line_id ='Y'
508 -- or tax_event_type of OVERRIDE_TAX
509
510 -- commented out for bug fix 5417887 end */
511
512 ZX_TRL_MANAGE_TAX_PKG.Create_Detail_Lines (
513 p_event_class_rec => p_event_class_rec,
514 x_return_status => x_return_status);
515
516 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
517 IF (g_level_error >= g_current_runtime_level ) THEN
518 FND_LOG.STRING(g_level_error,
519 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
520 'Incorrect return_status after calling ' ||
521 'ZX_TRL_MANAGE_TAX_PKG.Create_Detail_Lines()');
522 FND_LOG.STRING(g_level_error,
523 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
524 'RETURN_STATUS = ' || x_return_status);
525 FND_LOG.STRING(g_level_error,
526 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines.END',
527 'ZX_TRL_PUB_PKG.Manage_TaxLines(-)');
528 END IF;
529 RETURN;
530 END IF;
531
532 ZX_TRL_MANAGE_TAX_PKG.create_summary_lines_upd_evnt (
533 p_event_class_rec => p_event_class_rec,
534 x_return_status => x_return_status );
535
536 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
537 IF (g_level_error >= g_current_runtime_level ) THEN
538 FND_LOG.STRING(g_level_error,
539 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
540 'Incorrect return_status after calling ' ||
541 'ZX_TRL_MANAGE_TAX_PKG.create_summary_lines_crt_evnt()');
542 FND_LOG.STRING(g_level_error,
543 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
547 'ZX_TRL_PUB_PKG.Manage_TaxLines(-)');
544 'RETURN_STATUS = ' || x_return_status);
545 FND_LOG.STRING(g_level_error,
546 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines.END',
548 END IF;
549 RETURN;
550 END IF;
551
552 -- bug fix 5417887
553 -- END IF; -- p_event_class_rec.tax_event_type_code = 'UPDATE'
554
555 END IF; -- p_event_class_rec.summarization_flag <> 'Y'
556
557
558 ZX_TRL_MANAGE_TAX_PKG.Delete_Loose_Tax_Distributions
559 (x_return_status => x_return_status,
560 p_event_class_rec => p_event_class_rec);
561
562 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
563 IF (g_level_error >= g_current_runtime_level ) THEN
564 FND_LOG.STRING(g_level_error,
565 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
566 'Incorrect return_status after calling ' ||
567 'ZX_TRL_MANAGE_TAX_PKG.Delete_Loose_Tax_Distributions()');
568 FND_LOG.STRING(g_level_error,
569 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
570 'RETURN_STATUS = ' || x_return_status);
571 FND_LOG.STRING(g_level_error,
572 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines.END',
573 'ZX_TRL_PUB_PKG.Manage_TaxLines(-)');
574 END IF;
575 RETURN;
576 END IF;
577
578 END IF; -- tax_event_type_code
579
580 IF (g_level_procedure >= g_current_runtime_level ) THEN
581
582 FND_LOG.STRING(g_level_procedure,
583 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines.END',
584 'ZX_TRL_PUB_PKG: Manage_TaxLines (-)'||x_return_status);
585 END IF;
586
587 EXCEPTION
588 WHEN OTHERS THEN
589 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
590 l_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
591
592 IF (g_level_unexpected >= g_current_runtime_level ) THEN
593 FND_LOG.STRING(g_level_unexpected,
594 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxLines',
595 l_error_buffer);
596 END IF;
597
598 END Manage_TaxLines;
599
600
601 /*============================================================================*
602 | PROCEDURE Document_Level_Changes: It will Delete / Cancel / Purge tax lines |
603 | from the tax repository |
604 *============================================================================*/
605
606 PROCEDURE Document_Level_Changes
607 (x_return_status OUT NOCOPY VARCHAR2,
608 p_event_class_rec IN ZX_API_PUB.EVENT_CLASS_REC_TYPE,
609 p_tax_hold_released_code IN ZX_API_PUB.VALIDATION_STATUS_TBL_TYPE) IS
610
611 l_return_status VARCHAR2(1);
612
613 --TRANSACTION TABLE HAS A NUMBER OF TRANSACTIONS TO BE PROCESSED. BASED ON THE EVENTS ,
614 --APPROPRIATE PROCEDURES WOULD BE CALLED. ZX_LINES TABLE MUST HAVE
615 --TRANSACTION LINES FOR THE GIVEN TRANSACTION FOR FURTHER PROCESSING.
616 l_error_buffer VARCHAR2(100);
617
618 BEGIN
619 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
620
621 IF (g_level_procedure >= g_current_runtime_level ) THEN
622 FND_LOG.STRING(g_level_procedure,
623 'ZX.PLSQL.ZX_TRL_PUB_PKG.Document_Level_Changes.BEGIN',
624 'ZX_TRL_PUB_PKG: Document_Level_Changes (+)');
625 END IF;
626
627 -- Initialize API return status to success
628 x_return_status := FND_API.G_RET_STS_SUCCESS;
629
630 IF (p_event_class_rec.TAX_EVENT_TYPE_CODE = 'DELETE') THEN
631
632 ZX_TRL_MANAGE_TAX_PKG.DELETE_TRANSACTION
633 (x_return_status => l_return_status ,
634 p_event_class_rec => p_event_class_rec);
635
636 ELSIF (p_event_class_rec.TAX_EVENT_TYPE_CODE = 'PURGE') THEN
637
638 ZX_TRL_MANAGE_TAX_PKG.PURGE_TRANSACTION
639 (x_return_status => l_return_status,
640 p_event_class_rec => p_event_class_rec);
641
642 ELSIF (p_event_class_rec.TAX_EVENT_TYPE_CODE = 'CANCEL') THEN
643
644 ZX_TRL_MANAGE_TAX_PKG.CANCEL_TRANSACTION
645 (x_return_status => l_return_status,
646 p_event_class_rec => p_event_class_rec);
647
648 -- begin bug fix 3339364
649 ELSIF (p_event_class_rec.TAX_EVENT_TYPE_CODE = 'RELEASE_TAX_HOLD') THEN
650
651 ZX_TRL_MANAGE_TAX_PKG.RELEASE_DOCUMENT_TAX_HOLD
652 (x_return_status => l_return_status,
653 p_event_class_rec => p_event_class_rec,
654 p_tax_hold_released_code => p_tax_hold_released_code
655 );
656
657 -- end bug fix 3339364
658 END IF;
659
660 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
661 RAISE FND_API.G_EXC_ERROR;
662 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
663 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
664 END IF;
665
666 IF (g_level_procedure >= g_current_runtime_level ) THEN
667 FND_LOG.STRING(g_level_procedure,
668 'ZX.PLSQL.ZX_TRL_PUB_PKG.Document_Level_Changes.END',
669 'ZX_TRL_PUB_PKG: Document_Level_Changes (-)'||x_return_status);
670 END IF;
671
672 EXCEPTION
673 WHEN FND_API.G_EXC_ERROR THEN
674 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
675 IF (g_level_unexpected >= g_current_runtime_level ) THEN
676 FND_LOG.STRING(g_level_unexpected,
677 'ZX.PLSQL.ZX_TRL_PUB_PKG.Document_Level_Changes',
678 'Return Status = ' || x_return_status);
679 END IF;
680
681 WHEN OTHERS THEN
682 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
683 l_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
684
685 IF (g_level_unexpected >= g_current_runtime_level ) THEN
686 FND_LOG.STRING(g_level_unexpected,
687 'ZX.PLSQL.ZX_TRL_PUB_PKG.Document_Level_Changes',
688 l_error_buffer);
689 END IF;
690
691 END Document_Level_Changes;
692
693 /* ===========================================================================*
694 | PROCEDURE Synchronize_TaxLines : updates transaction information in the tax|
695 | repository |
696 * ===========================================================================*/
697
698 PROCEDURE Synchronize_TaxLines
699 (x_return_status OUT NOCOPY VARCHAR2) IS
700
701 l_return_status VARCHAR2(1);
702 l_error_buffer VARCHAR2(100);
703
704 BEGIN
705 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
706
707 IF (g_level_procedure >= g_current_runtime_level ) THEN
708 FND_LOG.STRING(g_level_procedure,
709 'ZX.PLSQL.ZX_TRL_PUB_PKG.Synchronize_TaxLines.BEGIN',
710 'ZX_TRL_PUB_PKG: Synchronize_TaxLines (+)');
711 END IF;
712
713 -- Initialize API return status to success
714 x_return_status := FND_API.G_RET_STS_SUCCESS;
715
716 /****** no longer needed ***********
717 *ZX_TRL_MANAGE_TAX_PKG.Update_Transaction_Info
718 * (x_return_status => l_return_status);
719 *
720 *************************************/
721
722
723 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
724 RAISE FND_API.G_EXC_ERROR;
725 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
726 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
727 END IF;
728
729 IF (g_level_procedure >= g_current_runtime_level ) THEN
730 FND_LOG.STRING(g_level_procedure,
731 'ZX.PLSQL.ZX_TRL_PUB_PKG.Synchronize_TaxLines.END',
732 'ZX_TRL_PUB_PKG: Synchronize_TaxLines (-)'||x_return_status);
733 END IF;
734
735 EXCEPTION
736 WHEN FND_API.G_EXC_ERROR THEN
737 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
738 IF (g_level_unexpected >= g_current_runtime_level ) THEN
739 FND_LOG.STRING(g_level_unexpected,
740 'ZX.PLSQL.ZX_TRL_PUB_PKG.Synchronize_TaxLines',
741 'Return Status = ' || x_return_status);
742 END IF;
743
744 WHEN OTHERS THEN
745 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
746 l_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
747
748 IF (g_level_unexpected >= g_current_runtime_level ) THEN
749 FND_LOG.STRING(g_level_unexpected,
750 'ZX.PLSQL.ZX_TRL_PUB_PKG.Synchronize_TaxLines',
751 l_error_buffer);
752 END IF;
753
754 END Synchronize_TaxLines;
755
756 /* ===========================================================================*
757 | PROCEDURE Mark_Tax_Lines_Delete : Marks the tax lines as delete. |
758 * ===========================================================================*/
759
760 PROCEDURE Mark_Tax_Lines_Delete
761 (x_return_status OUT NOCOPY VARCHAR2,
762 p_transaction_line_rec IN ZX_API_PUB.TRANSACTION_LINE_REC_TYPE) IS
763
764 l_return_status VARCHAR2(1);
765 l_error_buffer VARCHAR2(100);
766
767 BEGIN
768 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
769
770 IF (g_level_procedure >= g_current_runtime_level ) THEN
771 FND_LOG.STRING(g_level_procedure,
772 'ZX.PLSQL.ZX_TRL_PUB_PKG.Mark_Tax_Lines_Delete.BEGIN',
773 'ZX_TRL_PUB_PKG: Mark_Tax_Lines_Delete (+)');
774 END IF;
775
776 -- Initialize API return status to success
777 x_return_status := FND_API.G_RET_STS_SUCCESS;
778
779 ZX_TRL_MANAGE_TAX_PKG.Mark_Detail_Tax_Lines_Delete
780 (x_return_status => l_return_status ,
781 p_transaction_line_rec => p_transaction_line_rec);
782
783
784 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
785 RAISE FND_API.G_EXC_ERROR;
786 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
787 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
788 END IF;
789
790 IF (g_level_procedure >= g_current_runtime_level ) THEN
791 FND_LOG.STRING(g_level_procedure,
792 'ZX.PLSQL.ZX_TRL_PUB_PKG.Mark_Tax_Lines_Delete.END',
793 'ZX_TRL_PUB_PKG.Mark_Tax_Lines_Delete (-)'||x_return_status);
794 END IF;
795
796 EXCEPTION
797 WHEN FND_API.G_EXC_ERROR THEN
798 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
799 IF (g_level_unexpected >= g_current_runtime_level ) THEN
800 FND_LOG.STRING(g_level_unexpected,
801 'ZX.PLSQL.ZX_TRL_PUB_PKG.Mark_Tax_Lines_Delete',
802 'Return Status = ' || x_return_status);
803 END IF;
804
805 WHEN OTHERS THEN
806 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
807 l_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
808
809 IF (g_level_unexpected >= g_current_runtime_level ) THEN
810 FND_LOG.STRING(g_level_unexpected,
811 'ZX.PLSQL.ZX_TRL_PUB_PKG.Mark_Tax_Lines_Delete',
812 l_error_buffer);
813 END IF;
814
815 END Mark_Tax_Lines_Delete;
816
817 /*============================================================================*
818 | PROCEDURE Manage_TaxDistributions: It will create, update, delete tax |
819 | distributions lines and update tax lines|
820 | and summary tax lines in the |
821 | tax repository. |
822 |============================================================================*/
823
824 PROCEDURE Manage_TaxDistributions
825 (x_return_status OUT NOCOPY VARCHAR2,
826 p_event_class_rec IN ZX_API_PUB.EVENT_CLASS_REC_TYPE) IS
827
828 l_return_status VARCHAR2(1);
829 l_error_buffer VARCHAR2(100);
830 l_msg_context_info_rec ZX_API_PUB.CONTEXT_INFO_REC_TYPE
831 ;
832
833
834 BEGIN
835 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
836
837 IF (g_level_procedure >= g_current_runtime_level ) THEN
838 FND_LOG.STRING(g_level_procedure,
839 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxDistributions.BEGIN',
840 'ZX_TRL_PUB_PKG: Manage_TaxDistributions (+)');
841 END IF;
842
843 -- Initialize API return status to success
844 x_return_status := FND_API.G_RET_STS_SUCCESS;
845
846 --
847 -- bug#4893261- populate message structure
848 --
849 l_msg_context_info_rec.application_id :=
850 p_event_class_rec.application_id;
851 l_msg_context_info_rec.entity_code :=
852 p_event_class_rec.entity_code;
853 l_msg_context_info_rec.event_class_code :=
854 p_event_class_rec.event_class_code;
855 l_msg_context_info_rec.trx_id := NULL;
856 -- p_event_class_rec.trx_id;
857 l_msg_context_info_rec.trx_line_id := NULL;
858 l_msg_context_info_rec.trx_level_type := NULL;
859 l_msg_context_info_rec.summary_tax_line_number := NULL;
860 l_msg_context_info_rec.tax_line_id := NULL;
861 l_msg_context_info_rec.trx_line_dist_id := NULL;
862
863
864 IF (p_event_class_rec.tax_event_type_code <> 'OVERRIDE_TAX_DISTRIBUTIONS') THEN
865 -- bugfix 5551973
866 -- this part handles the tax event type of DISTRIBUTE and RE-DISTRIBUTE
867 -- If separate logic is required for any other events, it should be handled separetely.
868
869 -- the call to ZX_TRL_MANAGE_TAX_PKG.Delete_dist_Marked_For_Delete is needed
870 -- only for re-distribute event. make this call conditional later on
871 ZX_TRL_MANAGE_TAX_PKG.Delete_dist_Marked_For_Delete
872 (x_return_status => l_return_status ,
873 p_event_class_rec => p_event_class_rec);
874
875
876 IF (l_return_status= FND_API.G_RET_STS_SUCCESS) THEN
877 ZX_TRL_MANAGE_TAX_PKG.Create_Tax_Distributions
878 (x_return_status => l_return_status);
879
880 END IF;
881
882 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
883 FND_MESSAGE.SET_NAME('ZX','ZX_TRL_RECORD_ALREADY_EXISTS');
884 ZX_API_PUB.add_msg(l_msg_context_info_rec);
885 END IF;
886
887 IF (l_return_status= FND_API.G_RET_STS_SUCCESS) THEN
888 ZX_TRL_MANAGE_TAX_PKG.Update_Taxline_Rec_Nrec_amt
889 (x_return_status => l_return_status ,
890 p_event_class_rec => p_event_class_rec);
891
892 END IF;
893
894 ELSIF p_event_class_rec.tax_event_type_code = 'OVERRIDE_TAX_DISTRIBUTIONS' THEN
895
896 -- confirm that tax_event_type_code = 'OVERRIDE_TAX_DISTRIBUTIONS'
897 -- will not be there in the bulk call to determine recovery. Otherwise these API
898 -- calls need a change for bulk processing of override deistributions
899
900 ZX_TRL_MANAGE_TAX_PKG.delete_tax_distributions(
901 x_return_status => l_return_status,
902 p_event_class_rec => p_event_class_rec);
903
904 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
905 ZX_TRL_MANAGE_TAX_PKG.Create_Tax_Distributions
906 (x_return_status => l_return_status);
907
908 END IF;
909
910 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
911 ZX_TRL_MANAGE_TAX_PKG.update_taxline_rec_nrec_amt(
912 x_return_status => l_return_status,
913 p_event_class_rec => p_event_class_rec);
914
915 END IF;
916 END IF;
917
918 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
919 RAISE FND_API.G_EXC_ERROR;
920 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
921 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
922 END IF;
923
924 IF (g_level_procedure >= g_current_runtime_level ) THEN
925 FND_LOG.STRING(g_level_procedure,
926 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxDistributions.END',
927 'ZX_TRL_PUB_PKG: Manage_TaxDistributions (-)'||x_return_status);
928 END IF;
929
930 EXCEPTION
931 WHEN FND_API.G_EXC_ERROR THEN
932 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
933 IF (g_level_unexpected >= g_current_runtime_level ) THEN
934 FND_LOG.STRING(g_level_unexpected,
938
935 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxDistributions',
936 'Return Status = ' || x_return_status);
937 END IF;
939 WHEN OTHERS THEN
940 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
941 l_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
942
943 IF (g_level_unexpected >= g_current_runtime_level ) THEN
944 FND_LOG.STRING(g_level_unexpected,
945 'ZX.PLSQL.ZX_TRL_PUB_PKG.Manage_TaxDistributions',
946 l_error_buffer);
947 END IF;
948 END Manage_TaxDistributions;
949
950 /*=====================================================================================*
951 | PROCEDURE Freeze_TaxDistributions: This recording service is used to freeze tax |
952 | distributions whenever user freezes transaction |
953 | distribution lines |
954 |=====================================================================================*/
955
956 PROCEDURE Freeze_TaxDistributions
957 (x_return_status OUT NOCOPY VARCHAR2,
958 p_event_class_rec IN ZX_API_PUB.EVENT_CLASS_REC_TYPE) IS
959
960 l_error_buffer VARCHAR2(100);
961
962 BEGIN
963 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
964
965 IF (g_level_procedure >= g_current_runtime_level ) THEN
966 FND_LOG.STRING(g_level_procedure,
967 'ZX.PLSQL.ZX_TRL_PUB_PKG.Freeze_TaxDistributions.BEGIN',
968 'ZX_TRL_PUB_PKG: Freeze_TaxDistributions (+)');
969 END IF;
970
971 ZX_TRL_MANAGE_TAX_PKG.Update_Freeze_Flag
972 (x_return_status => x_return_status,
973 p_event_class_rec => p_event_class_rec);
974
975
976 IF (g_level_procedure >= g_current_runtime_level ) THEN
977 FND_LOG.STRING(g_level_procedure,
978 'ZX.PLSQL.ZX_TRL_PUB_PKG.Freeze_TaxDistributions.END',
979 'ZX_TRL_PUB_PKG: Freeze_TaxDistributions (-)'||x_return_status);
980 END IF;
981
982 EXCEPTION
983 WHEN FND_API.G_EXC_ERROR THEN
984 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
985 IF (g_level_unexpected >= g_current_runtime_level ) THEN
986 FND_LOG.STRING(g_level_unexpected,
987 'ZX.PLSQL.ZX_TRL_PUB_PKG.Freeze_TaxDistributions',
988 'Return Status = ' || x_return_status);
989 END IF;
990
991 WHEN OTHERS THEN
992 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
993 l_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
994
995 IF (g_level_unexpected >= g_current_runtime_level ) THEN
996 FND_LOG.STRING(g_level_unexpected,
997 'ZX.PLSQL.ZX_TRL_PUB_PKG.Freeze_TaxDistributions',
998 l_error_buffer);
999 END IF;
1000 END Freeze_TaxDistributions;
1001
1002 /*============================================================================*
1003 | PROCEDURE Update_Taxlines: This recording service is used to update tax |
1004 | lines (ZX_LINES) with changed status for given |
1005 | transaction line distributions. |
1006 |============================================================================*/
1007 PROCEDURE Update_Taxlines
1008 (x_return_status OUT NOCOPY VARCHAR2,
1009 p_event_class_rec IN ZX_API_PUB.EVENT_CLASS_REC_TYPE) IS
1010
1011 l_error_buffer VARCHAR2(100);
1012
1013 BEGIN
1014 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1015
1016 IF (g_level_procedure >= g_current_runtime_level ) THEN
1017 FND_LOG.STRING(g_level_procedure,
1018 'ZX.PLSQL.ZX_TRL_PUB_PKG.Update_Taxlines.BEGIN',
1019 'ZX_TRL_PUB_PKG: Update_Taxlines (+)');
1020 END IF;
1021
1022 ZX_TRL_MANAGE_TAX_PKG.Update_Item_Dist_Changed_Flag
1023 (x_return_status => x_return_status,
1024 p_event_class_rec => p_event_class_rec);
1025
1026 IF (g_level_procedure >= g_current_runtime_level ) THEN
1027 FND_LOG.STRING(g_level_procedure,
1028 'ZX.PLSQL.ZX_TRL_PUB_PKG.Update_Taxlines.END',
1029 'ZX_TRL_PUB_PKG: Update_Taxlines (-)'||x_return_status);
1030 END IF;
1031
1032 EXCEPTION
1033 WHEN FND_API.G_EXC_ERROR THEN
1034 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1035 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1036 FND_LOG.STRING(g_level_unexpected,
1037 'ZX.PLSQL.ZX_TRL_PUB_PKG.Update_Taxlines',
1038 'Return Status = ' || x_return_status);
1039 END IF;
1040
1041 WHEN OTHERS THEN
1042 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1043 l_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1044
1045 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1046 FND_LOG.STRING(g_level_unexpected,
1047 'ZX.PLSQL.ZX_TRL_PUB_PKG.Update_Taxlines',
1048 l_error_buffer);
1049 END IF;
1050 END Update_Taxlines;
1051
1052 PROCEDURE Discard_Tax_Only_Lines
1053 (x_return_status OUT NOCOPY VARCHAR2,
1054 p_event_class_rec IN ZX_API_PUB.EVENT_CLASS_REC_TYPE) IS
1055
1056 l_error_buffer VARCHAR2(100);
1057
1058 BEGIN
1059 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1060
1061 IF (g_level_procedure >= g_current_runtime_level ) THEN
1062 FND_LOG.STRING(g_level_procedure,
1063 'ZX.PLSQL.ZX_TRL_PUB_PKG.Discard_Tax_Only_Lines.BEGIN',
1067 ZX_TRL_MANAGE_TAX_PKG.Discard_Tax_Only_Lines (x_return_status, p_event_class_rec);
1064 'ZX_TRL_PUB_PKG: Discard_Tax_Only_Lines (+)');
1065 END IF;
1066
1068
1069 IF (g_level_procedure >= g_current_runtime_level ) THEN
1070 FND_LOG.STRING(g_level_procedure,
1071 'ZX.PLSQL.ZX_TRL_PUB_PKG.Discard_Tax_Only_Lines.END',
1072 'ZX_TRL_PUB_PKG: Discard_Tax_Only_Lines (-)'||x_return_status);
1073 END IF;
1074
1075 EXCEPTION
1076 WHEN FND_API.G_EXC_ERROR THEN
1077 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1078 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1079 FND_LOG.STRING(g_level_unexpected,
1080 'ZX.PLSQL.ZX_TRL_PUB_PKG.Discard_Tax_Only_Lines',
1081 'Return Status = ' || x_return_status);
1082 END IF;
1083
1084 WHEN OTHERS THEN
1085 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1086 l_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1087
1088 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1089 FND_LOG.STRING(g_level_unexpected,
1090 'ZX.PLSQL.ZX_TRL_PUB_PKG.Discard_Tax_Only_Lines',
1091 l_error_buffer);
1092 END IF;
1093
1094 END Discard_Tax_Only_Lines;
1095
1096 PROCEDURE Update_GL_Date
1097 (p_gl_date IN DATE,
1098 x_return_status OUT NOCOPY VARCHAR2) IS
1099
1100 l_error_buffer VARCHAR2(100);
1101
1102 BEGIN
1103 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1104
1105 IF (g_level_procedure >= g_current_runtime_level ) THEN
1106 FND_LOG.STRING(g_level_procedure,
1107 'ZX.PLSQL.ZX_TRL_PUB_PKG.Update_GL_Date.BEGIN',
1108 'ZX_TRL_PUB_PKG: Update_GL_Date (+)');
1109 END IF;
1110
1111 ZX_TRL_MANAGE_TAX_PKG.Update_GL_Date (p_gl_date, x_return_status);
1112
1113
1114 IF (g_level_procedure >= g_current_runtime_level ) THEN
1115 FND_LOG.STRING(g_level_procedure,
1116 'ZX.PLSQL.ZX_TRL_PUB_PKG.Update_GL_Date.END',
1117 'ZX_TRL_PUB_PKG: Update_GL_Date (-)'||x_return_status);
1118 END IF;
1119
1120 EXCEPTION
1121 WHEN FND_API.G_EXC_ERROR THEN
1122 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1123 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1124 FND_LOG.STRING(g_level_unexpected,
1125 'ZX.PLSQL.ZX_TRL_PUB_PKG.Update_GL_Date',
1126 'Return Status = ' || x_return_status);
1127 END IF;
1128
1129 WHEN OTHERS THEN
1130 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1131 l_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1132
1133 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1134 FND_LOG.STRING(g_level_unexpected,
1135 'ZX.PLSQL.ZX_TRL_PUB_PKG.Update_GL_Date',
1136 l_error_buffer);
1137 END IF;
1138
1139 END Update_GL_Date;
1140
1141 PROCEDURE Update_Exchange_Rate
1142 (p_event_class_rec IN ZX_API_PUB.EVENT_CLASS_REC_TYPE,
1143 x_return_status OUT NOCOPY VARCHAR2) IS
1144
1145 l_error_buffer VARCHAR2(100);
1146
1147 BEGIN
1148 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1149
1150 IF (g_level_procedure >= g_current_runtime_level ) THEN
1151 FND_LOG.STRING(g_level_procedure,
1152 'ZX.PLSQL.ZX_TRL_PUB_PKG.Update_Exchange_Rate.BEGIN',
1153 'ZX_TRL_PUB_PKG: Update_Exchange_Rate (+)');
1154 END IF;
1155
1156 ZX_TRL_MANAGE_TAX_PKG.Update_Exchange_Rate (p_event_class_rec,
1157 x_return_status);
1158
1159
1160 IF (g_level_procedure >= g_current_runtime_level ) THEN
1161 FND_LOG.STRING(g_level_procedure,
1162 'ZX.PLSQL.ZX_TRL_PUB_PKG.Update_Exchange_Rate.END',
1163 'ZX_TRL_PUB_PKG: Update_Exchange_Rate (-)'||x_return_status);
1164 END IF;
1165
1166 EXCEPTION
1167 WHEN FND_API.G_EXC_ERROR THEN
1168 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1169 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1170 FND_LOG.STRING(g_level_unexpected,
1171 'ZX.PLSQL.ZX_TRL_PUB_PKG.Update_Exchange_Rate',
1172 'Return Status = ' || x_return_status);
1173 END IF;
1174
1175 WHEN OTHERS THEN
1176 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1177 l_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1178
1179 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1180 FND_LOG.STRING(g_level_unexpected,
1181 'ZX.PLSQL.ZX_TRL_PUB_PKG.Update_Exchange_Rate',
1182 l_error_buffer);
1183 END IF;
1184
1185 END Update_Exchange_Rate;
1186
1187 ------------------------------------------------------------------------------
1188 -- PUBLIC PROCEDURE
1189 -- delete_tax_lines_and_dists
1190 --
1191 -- DESCRIPTION
1192 -- Delete all the detail tax lines and distributions of the passed-in
1193 -- transaction line from zx_lines and zx_rec_nrec_dist.
1194 ------------------------------------------------------------------------------
1195
1196 PROCEDURE delete_tax_lines_and_dists
1197 (
1198 p_application_id IN NUMBER,
1199 p_entity_code IN VARCHAR2,
1200 p_event_class_code IN VARCHAR2,
1201 p_trx_id IN NUMBER,
1202 p_trx_line_id IN NUMBER,
1203 p_trx_level_type IN VARCHAR2,
1207 CURSOR c_get_summary_flags IS
1204 x_return_status OUT NOCOPY VARCHAR2
1205 ) IS
1206
1208 SELECT summarization_flag,
1209 retain_summ_tax_line_id_flag
1210 FROM zx_evnt_cls_mappings
1211 WHERE event_class_code = p_event_class_code
1212 AND application_id = p_application_id
1213 AND entity_code = p_entity_code;
1214
1215 l_summarization_flag VARCHAR2(1);
1216 l_retain_summ_tax_line_id_flag VARCHAR2(1);
1217
1218 l_error_buffer VARCHAR2(100);
1219
1220 BEGIN
1221 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1222
1223 IF (g_level_procedure >= g_current_runtime_level ) THEN
1224 FND_LOG.STRING(g_level_procedure,
1225 'ZX.PLSQL.ZX_TRL_PUB_PKG.delete_tax_lines_and_dists.BEGIN',
1226 'ZX_TRL_PUB_PKG: delete_tax_lines_and_dists (+)');
1227 END IF;
1228 x_return_status := FND_API.G_RET_STS_SUCCESS;
1229
1230 -- delete the distributions
1231 DELETE FROM zx_rec_nrec_dist
1232 WHERE application_id = p_application_id
1233 AND entity_code = p_entity_code
1234 AND event_class_code = p_event_class_code
1235 AND trx_id = p_trx_id
1236 AND trx_line_id = p_trx_line_id
1237 AND trx_level_type = p_trx_level_type;
1238
1239 OPEN c_get_summary_flags;
1240 FETCH c_get_summary_flags into l_summarization_flag, l_retain_summ_tax_line_id_flag;
1241 CLOSE c_get_summary_flags;
1242
1243 -- delete the tax detail lines
1244 DELETE FROM zx_lines
1245 WHERE application_id = p_application_id
1246 AND entity_code = p_entity_code
1247 AND event_class_code = p_event_class_code
1248 AND trx_id = p_trx_id
1249 AND trx_line_id = p_trx_line_id
1250 AND trx_level_type = p_trx_level_type;
1251
1252 IF l_summarization_flag = 'Y' THEN
1253
1254 -- for current phase, just delete all the summary tax lines
1255 -- for this transaction and recreate
1256
1257 -- delete the summary tax lines for the transaction
1258 DELETE FROM zx_lines_summary
1259 WHERE application_id = p_application_id
1260 AND entity_code = p_entity_code
1261 AND event_class_code = p_event_class_code
1262 AND trx_id = p_trx_id;
1263
1264 ZX_TRL_MANAGE_TAX_PKG.create_summary_lines_del_evnt(
1265 p_application_id => p_application_id,
1266 p_entity_code => p_entity_code,
1267 p_event_class_code => p_event_class_code,
1268 p_trx_id => p_trx_id,
1269 p_trx_line_id => p_trx_line_id,
1270 p_trx_level_type => p_trx_level_type,
1271 p_retain_summ_tax_line_id_flag
1272 => l_retain_summ_tax_line_id_flag,
1273 x_return_status => x_return_status
1274 );
1275 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1276 IF (g_level_error >= g_current_runtime_level ) THEN
1277 FND_LOG.STRING(g_level_error,
1278 'ZX.PLSQL.ZX_TRL_PUB_PKG.delete_tax_lines_and_dists',
1279 'MRC Lines: Incorrect return_status after calling ' ||
1280 'ZX_TRL_MANAGE_TAX_PKG.create_summary_from_zx_liness()');
1281 FND_LOG.STRING(g_level_error,
1282 'ZX.PLSQL.ZX_TRL_PUB_PKG.delete_tax_lines_and_dists',
1283 'RETURN_STATUS = ' || x_return_status);
1284 FND_LOG.STRING(g_level_error,
1285 'ZX.PLSQL.ZX_TRL_PUB_PKG.delete_tax_lines_and_dists.END',
1286 'ZX_TRL_PUB_PKG.delete_tax_lines_and_dists(-)');
1287 END IF;
1288 RETURN;
1289 END IF;
1290
1291 END IF;
1292
1293 IF (g_level_procedure >= g_current_runtime_level ) THEN
1294 FND_LOG.STRING(g_level_procedure,
1295 'ZX.PLSQL.ZX_TRL_PUB_PKG.delete_tax_lines_and_dists.END',
1296 'ZX_TRL_PUB_PKG: delete_tax_lines_and_dists (-)'||x_return_status);
1297 END IF;
1298
1299 EXCEPTION
1300 WHEN FND_API.G_EXC_ERROR THEN
1301 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1302 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1303 FND_LOG.STRING(g_level_unexpected,
1304 'ZX.PLSQL.ZX_TRL_PUB_PKG.delete_tax_lines_and_dists',
1305 'Return Status = ' || x_return_status);
1306 END IF;
1307
1308 WHEN OTHERS THEN
1309 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1310 l_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1311
1312 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1313 FND_LOG.STRING(g_level_unexpected,
1314 'ZX.PLSQL.ZX_TRL_PUB_PKG.delete_tax_lines_and_dists',
1315 l_error_buffer);
1316 END IF;
1317
1318 END delete_tax_lines_and_dists;
1319
1320 ------------------------------------------------------------------------------
1321 -- PUBLIC PROCEDURE
1322 -- delete_tax_dists
1323 --
1324 -- DESCRIPTION
1325 -- Delete all the detail tax distributions of the passed-in transaction
1326 -- line from zx_rec_nrec_dist.
1327 ------------------------------------------------------------------------------
1328
1329 PROCEDURE delete_tax_dists
1330 (
1331 p_application_id IN NUMBER,
1332 p_entity_code IN VARCHAR2,
1333 p_event_class_code IN VARCHAR2,
1334 p_trx_id IN NUMBER,
1335 p_trx_line_id IN NUMBER,
1336 p_trx_level_type IN VARCHAR2,
1337 x_return_status OUT NOCOPY VARCHAR2
1338 ) IS
1339
1340 l_error_buffer VARCHAR2(100);
1341
1342 BEGIN
1343 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1344
1345 IF (g_level_procedure >= g_current_runtime_level ) THEN
1346 FND_LOG.STRING(g_level_procedure,
1347 'ZX.PLSQL.ZX_TRL_PUB_PKG.delete_tax_dists.BEGIN',
1348 'ZX_TRL_PUB_PKG: delete_tax_dists (+)');
1349 END IF;
1350 x_return_status := FND_API.G_RET_STS_SUCCESS;
1351
1352 DELETE FROM zx_rec_nrec_dist
1353 WHERE application_id = p_application_id
1354 AND entity_code = p_entity_code
1355 AND event_class_code = p_event_class_code
1356 AND trx_id = p_trx_id
1357 AND trx_line_id = p_trx_line_id
1358 AND trx_level_type = p_trx_level_type;
1359
1360 IF SQL%ROWCOUNT > 0 THEN
1361 UPDATE zx_lines
1362 SET process_for_recovery_flag = 'Y', -- DECODE(L.Reporting_Only_Flag, 'N', 'Y', 'N')
1363 rec_tax_amt = NULL,
1364 rec_tax_amt_tax_curr = NULL,
1365 rec_tax_amt_funcl_curr = NULL,
1366 nrec_tax_amt = NULL,
1367 nrec_tax_amt_tax_curr = NULL,
1368 nrec_tax_amt_funcl_curr = NULL
1369 WHERE application_id = p_application_id
1370 AND entity_code = p_entity_code
1371 AND event_class_code = p_event_class_code
1372 AND trx_id = p_trx_id
1373 AND trx_line_id = p_trx_line_id
1374 AND trx_level_type = p_trx_level_type;
1375 END IF;
1376
1377 IF (g_level_procedure >= g_current_runtime_level ) THEN
1378 FND_LOG.STRING(g_level_procedure,
1379 'ZX.PLSQL.ZX_TRL_PUB_PKG.delete_tax_dists.END',
1380 'ZX_TRL_PUB_PKG: delete_tax_dists (-)'||x_return_status);
1381 END IF;
1382
1383 EXCEPTION
1384 WHEN FND_API.G_EXC_ERROR THEN
1385 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1386 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1387 FND_LOG.STRING(g_level_unexpected,
1388 'ZX.PLSQL.ZX_TRL_PUB_PKG.delete_tax_dists',
1389 'Return Status = ' || x_return_status);
1390 END IF;
1391
1392 WHEN OTHERS THEN
1393 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1394 l_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1395
1396 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1397 FND_LOG.STRING(g_level_unexpected,
1398 'ZX.PLSQL.ZX_TRL_PUB_PKG.delete_tax_dists',
1399 l_error_buffer);
1400 END IF;
1401
1402 END delete_tax_dists;
1403
1404 -- Package constructor
1405 --
1406 -------------------------------------------------------------------------------
1407
1408 END ZX_TRL_PUB_PKG;