[Home] [Help]
PACKAGE BODY: APPS.ZX_TDS_TAX_STATUS_DETM_PKG
Source
1 package body ZX_TDS_TAX_STATUS_DETM_PKG as
2 /* $Header: zxditaxstsdtpkgb.pls 120.29.12010000.7 2010/02/12 11:51:37 msakalab ship $ */
3
4
5 PROCEDURE get_def_tax_status_info(
6 p_tax IN ZX_TAXES_B.TAX%TYPE,
7 p_tax_regime_code IN ZX_REGIMES_B.TAX_REGIME_CODE%TYPE,
8 p_tax_determine_date IN ZX_LINES.TAX_DETERMINE_DATE%TYPE,
9 p_status_rec OUT NOCOPY ZX_TDS_UTILITIES_PKG.ZX_STATUS_INFO_REC,
10 p_return_status OUT NOCOPY VARCHAR2,
11 p_error_buffer OUT NOCOPY VARCHAR2);
12
13
14 PROCEDURE update_det_tax_line(
15 i IN BINARY_INTEGER,
16 p_status_result_id IN ZX_LINES.STATUS_RESULT_ID%TYPE,
17 p_reporting_code_id IN ZX_REPORTING_CODES_B.REPORTING_CODE_ID%TYPE,
18 p_status_rec IN ZX_TDS_UTILITIES_PKG.ZX_STATUS_INFO_REC);
19
20 PROCEDURE rule_base_tax_status_detm(
21 p_structure_name IN VARCHAR2,
22 p_structure_index IN BINARY_INTEGER,
23 p_event_class_rec IN ZX_API_PUB.EVENT_CLASS_REC_TYPE,
24 p_status_result_id OUT NOCOPY ZX_LINES.STATUS_RESULT_ID%TYPE,
25 p_tax_id IN ZX_TAXES_B.TAX_ID%TYPE,
26 p_tax_status_code IN OUT NOCOPY ZX_STATUS_B.TAX_STATUS_CODE%TYPE,
27 p_tax_determine_date IN ZX_LINES.TAX_DETERMINE_DATE%TYPE,
28 p_return_status OUT NOCOPY VARCHAR2,
29 p_error_buffer OUT NOCOPY VARCHAR2);
30
31 g_current_runtime_level NUMBER;
32 g_level_statement CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
33 g_level_procedure CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
34 g_level_unexpected CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
35 g_level_error CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
36 -----------------------------------------------------------------------
37 -- PUBLIC PROCEDURE
38 -- get_tax_status
39 --
40 -- DESCRIPTION
41 --
42 -- This procedure is the entry point to Tax status determination process
43 -- It gets tax status information for a given applicable tax
44 --
45
46 PROCEDURE get_tax_status(
47 p_begin_index IN BINARY_INTEGER,
48 p_end_index IN BINARY_INTEGER,
49 p_structure_name IN VARCHAR2,
50 p_structure_index IN BINARY_INTEGER,
51 p_event_class_rec IN ZX_API_PUB.EVENT_CLASS_REC_TYPE,
52 p_return_status OUT NOCOPY VARCHAR2,
53 p_error_buffer OUT NOCOPY VARCHAR2)
54 IS
55
56 l_tax_status_code ZX_STATUS_B.tax_status_code%TYPE;
57 l_tax_rec ZX_TDS_UTILITIES_PKG.ZX_TAX_INFO_CACHE_REC;
58 l_tax_determine_date ZX_LINES.TAX_DETERMINE_DATE%TYPE;
59 l_tax_id ZX_TAXES_B.TAX_ID%TYPE;
60 l_tax_regime_code ZX_REGIMES_B.TAX_REGIME_CODE%TYPE;
61 l_tax ZX_TAXES_B.TAX%TYPE;
62 l_status_result_id ZX_LINES.STATUS_RESULT_ID%TYPE;
63 l_status_rec ZX_TDS_UTILITIES_PKG.ZX_STATUS_INFO_REC;
64 l_reporting_code_id ZX_REPORTING_CODES_B.reporting_code_id%type;
65 l_trx_date ZX_LINES.TRX_DATE%TYPE;
66 BEGIN
67 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
68
69 IF (g_level_procedure >= g_current_runtime_level ) THEN
70
71 FND_LOG.STRING(g_level_procedure,
72 'ZX.PLSQL.ZX_TDS_TAX_STATUS_DETM_PKG.get_tax_status.BEGIN',
73 'ZX_TDS_TAX_STATUS_DETM_PKG: get_tax_status(+)');
74
75
76 END IF;
77
78 -- init return status to FND_API.G_RET_STS_SUCCESS
79 p_return_status := FND_API.G_RET_STS_SUCCESS;
80 p_error_buffer := NULL;
81
82 --
83 -- check if begin_index and end_index have values
84 --
85 IF (p_begin_index IS NULL OR p_end_index IS NULL) THEN
86 p_return_status:= FND_API.G_RET_STS_UNEXP_ERROR;
87
88 IF (g_level_error >= g_current_runtime_level ) THEN
89 FND_LOG.STRING(g_level_error,
90 'ZX.PLSQL.ZX_TDS_TAX_STATUS_DETM_PKG.get_tax_status',
91 'Begin index or End index is null');
92 END IF;
93 RETURN;
94 END IF;
95
96 --
97 -- loop through the detail tax lines structure to get tax status code for
98 -- each line, exit loop and return to calling process if error occurs
99 --
100
101 FOR i IN p_begin_index .. p_end_index LOOP
102 IF (g_level_statement >= g_current_runtime_level ) THEN
103 FND_LOG.STRING(g_level_statement,
104 'ZX.PLSQL.ZX_TDS_TAX_STATUS_DETM_PKG.get_tax_status',
105 'processing detail line index = ' || to_char(i));
106 END IF;
107
108 IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_source = 'REFERENCE' AND
109 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_tax_amt = 0 AND
110 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unrounded_taxable_amt = 0 AND
111 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).manually_entered_flag = 'Y' AND
112 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).freeze_until_overridden_flag ='Y'
113 THEN
114
115 NULL;
116
117 ELSE
118
119 --
120 -- init status info
121 --
122 l_status_result_id := NULL;
123 l_status_rec := NULL;
124 l_tax_status_code := NULL;
125 l_reporting_code_id := NULL;
126
127 l_trx_date := ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_date;
128 l_tax_determine_date := ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_determine_date;
129 l_tax_id := ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_id;
130 l_tax_rec := ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl(l_tax_id);
131 l_tax_regime_code := l_tax_rec.tax_regime_code;
132 l_tax := l_tax_rec.tax;
133
134 IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_status_code IS NULL THEN
135
136 --
137 -- non manual tax line
138 --
139 IF l_tax_rec.Tax_Status_Rule_Flag = 'N' THEN
140 --
141 -- no rule defined, get the default tax status
142 -- code from zx_status
143 --
144 get_def_tax_status_info(l_tax,
145 l_tax_regime_code,
146 l_tax_determine_date,
147 l_status_rec,
148 p_return_status,
149 p_error_buffer);
150 ELSE
151 --
152 -- tax status determination rules apply for this tax
153 --
154 rule_base_tax_status_detm(
155 p_structure_name,
156 p_structure_index,
157 p_event_class_rec,
158 l_status_result_id,
159 l_tax_id,
160 l_tax_status_code,
161 l_tax_determine_date,
162 p_return_status,
163 p_error_buffer);
164
165 IF p_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_TDS_TAX_STATUS_DETM_PKG.get_tax_status',
169 'Incorrect return_status after calling rule_base_tax_status_detm()');
170 FND_LOG.STRING(g_level_error,
171 'ZX.PLSQL.ZX_TDS_TAX_STATUS_DETM_PKG.get_tax_status',
172 'p_return_status : '|| p_return_status);
173 END IF;
174 EXIT;
175 ELSE
176
177 IF l_tax_status_code IS NOT NULL THEN
178
179 -- check valid tax status id and populate tax status cache
180 --
181 ZX_TDS_UTILITIES_PKG.get_tax_status_cache_info(
182 l_tax,
183 l_tax_regime_code,
184 l_tax_status_code,
185 l_tax_determine_date,
186 l_status_rec,
187 p_return_status,
188 p_error_buffer);
189 IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
190 IF (g_level_error >= g_current_runtime_level ) THEN
191 FND_LOG.STRING(g_level_error,
192 'ZX.PLSQL.ZX_TDS_TAX_STATUS_DETM_PKG.get_tax_status',
193 'Incorrect return_status after calling '||
194 'ZX_TDS_UTILITIES_PKG.get_tax_status_cache_info()' );
195 FND_LOG.STRING(g_level_error,
196 'ZX.PLSQL.ZX_TDS_TAX_STATUS_DETM_PKG.get_tax_status',
197 'No valid tax status id for the tax status code ' ||
198 'returned from rule engine. Need to get default tax status.');
199 END IF;
200 -- reset return status
201 --
202 p_return_status := FND_API.G_RET_STS_SUCCESS;
203 END IF;
204 l_reporting_code_id:= ZX_TDS_CALC_SERVICES_PUB_PKG.get_rep_code_id(l_status_result_id,
205 l_trx_date);
206 END IF;
207
208 IF l_tax_status_code IS NULL OR l_status_rec.tax_status_id IS NULL
209 THEN
210 --
211 -- rule based determination returns success
212 -- but no conditions matched, get status code
213 -- from the default
214 --
215 get_def_tax_status_info(l_tax,
216 l_tax_regime_code,
217 l_tax_determine_date,
218 l_status_rec,
219 p_return_status,
220 p_error_buffer);
221 l_reporting_code_id := NULL;
222 END IF; -- l_tax_status_code IS NULL
223 END IF; -- of checking p_return_status after calling rule based determination
224 END IF; -- of checking Tax_Status_Rule_Flag
225 --
226 -- should have the tax status code at this point, update
227 -- detail tax line with tax status info
228 --
229
230 IF l_status_rec.tax_status_code IS NULL THEN
231 IF (g_level_error >= g_current_runtime_level ) THEN
232 FND_LOG.STRING(g_level_error,
233 'ZX.PLSQL.ZX_TDS_TAX_STATUS_DETM_PKG.get_tax_status',
234 'tax status not found for tax: ' || l_tax);
235 END IF;
236
237 FND_MESSAGE.SET_NAME('ZX','ZX_STATUS_NOT_FOUND');
238 FND_MESSAGE.SET_TOKEN('TAX',l_tax);
239 -- FND_MSG_PUB.Add;
240
241 ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_line_id :=
242 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_line_id;
243 ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec.trx_level_type :=
244 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_level_type;
245
246 ZX_API_PUB.add_msg(
247 ZX_TDS_CALC_SERVICES_PUB_PKG.g_msg_context_info_rec);
248 RETURN;
249 END IF;
250
251 IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
252 EXIT;
253 ELSE
254 update_det_tax_line(i,
255 l_status_result_id,
256 l_reporting_code_id,
257 l_status_rec);
258 END IF; -- of checking p_return_status after getting tax status info
259 END IF; -- of checking event_class_rec
260 END IF;
261 END LOOP;
262
263 IF (g_level_procedure >= g_current_runtime_level ) THEN
264
265 FND_LOG.STRING(g_level_procedure,
266 'ZX.PLSQL.ZX_TDS_TAX_STATUS_DETM_PKG.get_tax_status.END',
267 'ZX_TDS_TAX_STATUS_DETM_PKG: get_tax_status(-)'||p_return_status);
268 END IF;
269
270 EXCEPTION
271 WHEN OTHERS THEN
272 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
273 p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
274
275 IF (g_level_unexpected >= g_current_runtime_level ) THEN
276 FND_LOG.STRING(g_level_unexpected,
277 'ZX.PLSQL.ZX_TDS_TAX_STATUS_DETM_PKG.get_tax_status',
278 p_error_buffer);
279 END IF;
280
281 END get_tax_status;
282
283 -----------------------------------------------------------------------
284 -- PRIVATE PROCEDURE
285 -- get_def_tax_status_info
286 --
287 -- DESCRIPTION
288 -- This procedure gets the default tax status code and
289 -- all information related to this status
290 --
291 PROCEDURE get_def_tax_status_info(
292 p_tax IN ZX_TAXES_B.TAX%TYPE,
293 p_tax_regime_code IN ZX_REGIMES_B.TAX_REGIME_CODE%TYPE,
294 p_tax_determine_date IN ZX_LINES.TAX_DETERMINE_DATE%TYPE,
295 p_status_rec OUT NOCOPY ZX_TDS_UTILITIES_PKG.ZX_STATUS_INFO_REC,
296 p_return_status OUT NOCOPY VARCHAR2,
297 p_error_buffer OUT NOCOPY VARCHAR2)
298
299 IS
300 l_index BINARY_INTEGER;
301
302 CURSOR get_def_status_info_csr
303 (c_tax ZX_REGIMES_B.TAX_REGIME_CODE%TYPE,
304 c_tax_regime_code ZX_REGIMES_B.TAX_REGIME_CODE%TYPE,
305 c_tax_determine_date ZX_LINES.TAX_DETERMINE_DATE%TYPE)
306 IS
307 SELECT tax_status_id,
308 tax_status_code,
309 tax,
310 tax_regime_code,
311 effective_from,
312 effective_to,
313 Rule_Based_Rate_Flag,
314 Allow_Rate_Override_Flag,
315 Allow_Exemptions_Flag,
316 Allow_Exceptions_Flag
317 -- Vat_Transaction_Type_Code
318 -- Default_Status_Flag,
319 -- default_flg_effective_from,
320 -- default_flg_effective_to
321 FROM ZX_SCO_STATUS_B_V
322 WHERE Default_Status_Flag = 'Y' AND
323 c_tax_determine_date >= DEFAULT_FLG_EFFECTIVE_FROM AND
324 (c_tax_determine_date <= DEFAULT_FLG_EFFECTIVE_TO OR
325 DEFAULT_FLG_EFFECTIVE_TO IS NULL) AND
326 TAX = c_tax AND
327 TAX_REGIME_CODE = c_tax_regime_code AND
328 c_tax_determine_date >= EFFECTIVE_FROM AND
329 (c_tax_determine_date <= EFFECTIVE_TO OR
330 EFFECTIVE_TO IS NULL)
331 --AND rownum = 1;
332 ORDER BY subscription_level_code;
333
334 BEGIN
335 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
336
337 IF (g_level_procedure >= g_current_runtime_level ) THEN
338 FND_LOG.STRING(g_level_procedure,
339 'ZX.PLSQL.ZX_TDS_TAX_STATUS_DETM_PKG.get_def_tax_status_info.BEGIN',
340 'ZX_TDS_TAX_STATUS_DETM_PKG: get_def_tax_status_info(+)'||
341 'tax_regime_code = ' || p_tax_regime_code||
342 'tax = ' || p_tax);
343
344 END IF;
345
346 p_return_status := FND_API.G_RET_STS_SUCCESS;
347
348 OPEN get_def_status_info_csr(p_tax,
349 p_tax_regime_code,
350 p_tax_determine_date);
351 FETCH get_def_status_info_csr INTO
352 p_status_rec.tax_status_id,
353 p_status_rec.tax_status_code,
354 p_status_rec.tax,
355 p_status_rec.tax_regime_code,
356 p_status_rec.effective_from,
357 p_status_rec.effective_to,
358 p_status_rec.Rule_Based_Rate_Flag,
359 p_status_rec.Allow_Rate_Override_Flag,
360 p_status_rec.Allow_Exemptions_Flag,
361 p_status_rec.Allow_Exceptions_Flag;
362 IF get_def_status_info_csr%NOTFOUND THEN
363 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
364 p_error_buffer := 'No default tax status found';
365
366 IF (g_level_statement >= g_current_runtime_level ) THEN
367 FND_LOG.STRING(g_level_statement,
368 'ZX.PLSQL.ZX_TDS_TAX_STATUS_DETM_PKG.get_def_tax_status_info',
369 p_error_buffer);
370 END IF;
371 END IF;
372 CLOSE get_def_status_info_csr;
373 --
374 -- update the global status cache structure
375 --
376 IF p_return_status = FND_API.G_RET_STS_SUCCESS THEN
377 l_index := ZX_TDS_UTILITIES_PKG.get_tax_status_index(
378 p_status_rec.tax,
379 p_status_rec.tax_regime_code,
380 p_status_rec.tax_status_code);
381 ZX_TDS_UTILITIES_PKG.g_tax_status_info_tbl(l_index) := p_status_rec;
382 END IF;
383
384
385 IF (g_level_procedure >= g_current_runtime_level ) THEN
386 FND_LOG.STRING(g_level_procedure,
387 'ZX.PLSQL.ZX_TDS_TAX_STATUS_DETM_PKG.get_def_tax_status_info.END',
388 'ZX_TDS_TAX_STATUS_DETM_PKG: get_def_tax_status_info(-)'||
389 'tax_status_code = ' ||
390 p_status_rec.tax_status_code);
391 END IF;
392
393 EXCEPTION
394 WHEN OTHERS THEN
395 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
396 p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
397 IF get_def_status_info_csr%ISOPEN THEN
398 CLOSE get_def_status_info_csr;
399 END IF;
400 IF (g_level_unexpected >= g_current_runtime_level ) THEN
401 FND_LOG.STRING(g_level_unexpected,
402 'ZX.PLSQL.ZX_TDS_TAX_STATUS_DETM_PKG.get_def_tax_status_info',
403 p_error_buffer);
404 END IF;
405 END get_def_tax_status_info;
406
407 -----------------------------------------------------------------------
408 -- PRIVATE PROCEDURE
409 -- rule_base_tax_status_detm
410 --
411 -- DESCRIPTION
412 --
413 -- The procedure is used to get derive tax status code based on the rules
414 -- defined by calling Rule based engine
415 --
416
417 PROCEDURE rule_base_tax_status_detm(
418 p_structure_name IN VARCHAR2,
419 p_structure_index IN BINARY_INTEGER,
420 p_event_class_rec IN ZX_API_PUB.EVENT_CLASS_REC_TYPE,
421 p_status_result_id OUT NOCOPY ZX_LINES.STATUS_RESULT_ID%TYPE,
422 p_tax_id IN ZX_TAXES_B.TAX_ID%TYPE,
423 p_tax_status_code IN OUT NOCOPY ZX_STATUS_B.TAX_STATUS_CODE%TYPE,
424 p_tax_determine_date IN ZX_LINES.TAX_DETERMINE_DATE%TYPE,
425 p_return_status OUT NOCOPY VARCHAR2,
426 p_error_buffer OUT NOCOPY VARCHAR2)
427 IS
428 l_service_type_code ZX_RULES_B.SERVICE_TYPE_CODE%TYPE;
429 l_tax_result_rec ZX_PROCESS_RESULTS%ROWTYPE;
430 l_tax_rule_code ZX_RULES_B.TAX_RULE_CODE%TYPE;
431 l_recovery_type_code ZX_RULES_B.RECOVERY_TYPE_CODE%TYPE;
432
433 BEGIN
434
435 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
436
437 IF (g_level_procedure >= g_current_runtime_level ) THEN
438 FND_LOG.STRING(g_level_procedure,
439 'ZX.PLSQL.ZX_TDS_TAX_STATUS_DETM_PKG.rule_base_tax_status_detm.BEGIN',
440 'ZX_TDS_TAX_STATUS_DETM_PKG: rule_base_tax_status_detm(+)');
441 END IF;
442 IF (g_level_statement >= g_current_runtime_level ) THEN
443 FND_LOG.STRING(g_level_statement,
444 'ZX.PLSQL.ZX_TDS_TAX_STATUS_DETM_PKG.rule_base_tax_status_detm',
445 'p_tax_id = ' || to_char(p_tax_id));
446 END IF;
447
448 p_return_status := FND_API.G_RET_STS_SUCCESS;
449
450 l_service_type_code := 'DET_TAX_STATUS';
451
452 ZX_TDS_RULE_BASE_DETM_PVT.rule_base_process(l_service_type_code,
453 p_structure_name,
454 p_structure_index,
455 p_event_class_rec,
456 p_tax_id,
457 p_tax_status_code,
458 p_tax_determine_date,
459 l_tax_rule_code,
460 l_recovery_type_code,
461 l_tax_result_rec,
462 p_return_status,
463 p_error_buffer);
464
465 IF (l_tax_result_rec.alphanumeric_result IS NOT NULL AND
466 p_return_status = FND_API.G_RET_STS_SUCCESS) THEN
467 p_tax_status_code := l_tax_result_rec.alphanumeric_result;
468 p_status_result_id := l_tax_result_rec.result_id;
469 END IF;
470
471 IF (g_level_statement >= g_current_runtime_level ) THEN
472 FND_LOG.STRING(g_level_statement,
473 'ZX.PLSQL.ZX_TDS_TAX_STATUS_DETM_PKG.rule_base_tax_status_detm',
474 'p_return_status = ' || p_return_status);
475 FND_LOG.STRING(g_level_statement,
476 'ZX.PLSQL.ZX_TDS_TAX_STATUS_DETM_PKG.rule_base_tax_status_detm',
477 'p_error_buffer = ' || p_error_buffer);
478 FND_LOG.STRING(g_level_statement,
479 'ZX.PLSQL.ZX_TDS_TAX_STATUS_DETM_PKG.rule_base_tax_status_detm',
480 'p_tax_status_code = ' || p_tax_status_code);
481 FND_LOG.STRING(g_level_statement,
482 'ZX.PLSQL.ZX_TDS_TAX_STATUS_DETM_PKG.rule_base_tax_status_detm',
483 'p_status_result_id = ' ||
484 to_char(p_status_result_id));
485 END IF;
486
487 IF (g_level_procedure >= g_current_runtime_level ) THEN
488 FND_LOG.STRING(g_level_procedure,
489 'ZX.PLSQL.ZX_TDS_TAX_STATUS_DETM_PKG.rule_base_tax_status_detm.END',
490 'ZX_TDS_TAX_STATUS_DETM_PKG: rule_base_tax_status_detm(-)');
491 END IF;
492
493 EXCEPTION
494 WHEN OTHERS THEN
495 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
496 p_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
497
498 IF (g_level_unexpected >= g_current_runtime_level ) THEN
499 FND_LOG.STRING(g_level_unexpected,
500 'ZX.PLSQL.ZX_TDS_TAX_STATUS_DETM_PKG.rule_base_tax_status_detm',
501 p_error_buffer);
502 END IF;
503
504 END rule_base_tax_status_detm;
505
506 -----------------------------------------------------------------------
507 -- PRIVATE PROCEDURE
508 -- update_det_tax_line
509 --
510 -- DESCRIPTION
511 --
512 -- This procedure is used to update the detail tax lines structure
513 -- with tax status information
514 --
515
516 PROCEDURE update_det_tax_line(
517 i IN BINARY_INTEGER,
518 p_status_result_id IN ZX_LINES.STATUS_RESULT_ID%TYPE,
519 p_reporting_code_id IN ZX_REPORTING_CODES_B.REPORTING_CODE_ID%TYPE,
520 p_status_rec IN ZX_TDS_UTILITIES_PKG.ZX_STATUS_INFO_REC)
521 IS
522 BEGIN
523 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
524
525 IF (g_level_procedure >= g_current_runtime_level ) THEN
526 FND_LOG.STRING(g_level_procedure,
527 'ZX.PLSQL.ZX_TDS_TAX_STATUS_DETM_PKG.update_det_tax_line.BEGIN',
528 'ZX_TDS_TAX_STATUS_DETM_PKG: update_det_tax_line(+)');
529 END IF;
530
531 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_status_id := p_status_rec.tax_status_id;
532 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_status_code := p_status_rec.tax_status_code;
533 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).status_result_id := p_status_result_id;
534 ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).legal_message_status := p_reporting_code_id;
535
536 IF (g_level_procedure >= g_current_runtime_level ) THEN
537 FND_LOG.STRING(g_level_procedure,
538 'ZX.PLSQL.ZX_TDS_TAX_STATUS_DETM_PKG.update_det_tax_line.END',
539 'ZX_TDS_TAX_STATUS_DETM_PKG: update_det_tax_line(-)');
540 END IF;
541
542 EXCEPTION
543 WHEN OTHERS THEN
544 IF (g_level_unexpected >= g_current_runtime_level ) THEN
545 FND_LOG.STRING(g_level_unexpected,
546 'ZX.PLSQL.ZX_TDS_TAX_STATUS_DETM_PKG.update_det_tax_line',
547 sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80));
548 END IF;
549
550 END update_det_tax_line;
551
552 END ZX_TDS_TAX_STATUS_DETM_PKG;