DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_TTD_PVT

Source


1 PACKAGE BODY OKL_TTD_PVT AS
2 /* $Header: OKLSTTDB.pls 120.3 2007/01/15 11:16:46 dcshanmu noship $ */
3   ---------------------------------------------------------------------------
4   -- PROCEDURE load_error_tbl
5   ---------------------------------------------------------------------------
6   PROCEDURE load_error_tbl (
7     px_error_rec                   IN OUT NOCOPY OKL_API.ERROR_REC_TYPE,
8     px_error_tbl                   IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
9 
10     j                              INTEGER := NVL(px_error_tbl.LAST, 0) + 1;
11     last_msg_idx                   INTEGER := FND_MSG_PUB.COUNT_MSG;
12     l_msg_idx                      INTEGER := FND_MSG_PUB.G_NEXT;
13   BEGIN
14     -- FND_MSG_PUB has a small error in it.  If we call FND_MSG_PUB.COUNT_AND_GET before
15     -- we call FND_MSG_PUB.GET, the variable FND_MSG_PUB uses to control the index of the
16     -- message stack gets set to 1.  This makes sense until we call FND_MSG_PUB.GET which
17     -- automatically increments the index by 1, (making it 2), however, when the GET function
18     -- attempts to pull message 2, we get a NO_DATA_FOUND exception because there isn't any
19     -- message 2.  To circumvent this problem, check the amount of messages and compensate.
20     -- Again, this error only occurs when 1 message is on the stack because COUNT_AND_GET
21     -- will only update the index variable when 1 and only 1 message is on the stack.
22     IF (last_msg_idx = 1) THEN
23       l_msg_idx := FND_MSG_PUB.G_FIRST;
24     END IF;
25     LOOP
26       fnd_msg_pub.get(
27             p_msg_index     => l_msg_idx,
28             p_encoded       => fnd_api.g_false,
29             p_data          => px_error_rec.msg_data,
30             p_msg_index_out => px_error_rec.msg_count);
31       px_error_tbl(j) := px_error_rec;
32       j := j + 1;
33     EXIT WHEN (px_error_rec.msg_count = last_msg_idx);
34     END LOOP;
35   END load_error_tbl;
36   ---------------------------------------------------------------------------
37   -- FUNCTION find_highest_exception
38   ---------------------------------------------------------------------------
39   -- Finds the highest exception (G_RET_STS_UNEXP_ERROR)
40   -- in a OKL_API.ERROR_TBL_TYPE, and returns it.
41   FUNCTION find_highest_exception(
42     p_error_tbl                    IN OKL_API.ERROR_TBL_TYPE
43   ) RETURN VARCHAR2 IS
44     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
45     i                              INTEGER := 1;
46   BEGIN
47     IF (p_error_tbl.COUNT > 0) THEN
48       i := p_error_tbl.FIRST;
49       LOOP
50         IF (p_error_tbl(i).error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
51           IF (l_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR) THEN
52             l_return_status := p_error_tbl(i).error_type;
53           END IF;
54         END IF;
55         EXIT WHEN (i = p_error_tbl.LAST);
56         i := p_error_tbl.NEXT(i);
57       END LOOP;
58     END IF;
59     RETURN(l_return_status);
60   END find_highest_exception;
61   ---------------------------------------------------------------------------
62   -- FUNCTION get_seq_id
63   ---------------------------------------------------------------------------
64   FUNCTION get_seq_id RETURN NUMBER IS
65   BEGIN
66     RETURN(okc_p_util.raw_to_number(sys_guid()));
67   END get_seq_id;
68 
69   ---------------------------------------------------------------------------
70   -- PROCEDURE qc
71   ---------------------------------------------------------------------------
72   PROCEDURE qc IS
73   BEGIN
74     null;
75   END qc;
76 
77   ---------------------------------------------------------------------------
78   -- PROCEDURE change_version
79   ---------------------------------------------------------------------------
80   PROCEDURE change_version IS
81   BEGIN
82     null;
83   END change_version;
84 
85   ---------------------------------------------------------------------------
86   -- PROCEDURE api_copy
87   ---------------------------------------------------------------------------
88   PROCEDURE api_copy IS
89   BEGIN
90     null;
91   END api_copy;
92 
93   ---------------------------------------------------------------------------
94   -- FUNCTION get_rec for: OKL_TAX_TRX_DETAILS_V
95   ---------------------------------------------------------------------------
96   FUNCTION get_rec (
97     p_ttdv_rec    IN ttdv_rec_type,
98     x_no_data_found                OUT NOCOPY BOOLEAN
99   ) RETURN ttdv_rec_type IS
100     CURSOR okl_ttdv_pk_csr (p_id IN NUMBER) IS
101     SELECT
102             ID,
103             TXS_ID,
104             TAX_DETERMINE_DATE,
105             TAX_RATE_ID,
106             TAX_RATE_CODE,
107             TAXABLE_AMT,
108             TAX_EXEMPTION_ID,
109             TAX_RATE,
110             TAX_AMT,
111             BILLED_YN,
112             TAX_CALL_TYPE_CODE,
113             PROGRAM_ID,
114             REQUEST_ID,
115             PROGRAM_APPLICATION_ID,
116             PROGRAM_UPDATE_DATE,
117             ATTRIBUTE_CATEGORY,
118             ATTRIBUTE1,
119             ATTRIBUTE2,
120             ATTRIBUTE3,
121             ATTRIBUTE4,
122             ATTRIBUTE5,
123             ATTRIBUTE6,
124             ATTRIBUTE7,
125             ATTRIBUTE8,
126             ATTRIBUTE9,
127             ATTRIBUTE10,
128             ATTRIBUTE11,
129             ATTRIBUTE12,
130             ATTRIBUTE13,
131             ATTRIBUTE14,
132             ATTRIBUTE15,
133             CREATED_BY,
134             CREATION_DATE,
135             LAST_UPDATED_BY,
136             LAST_UPDATE_DATE,
137             LAST_UPDATE_LOGIN,
138             OBJECT_VERSION_NUMBER,
139 	    -- Modified by dcshanmu for eBTax - modification starts
140 	    TAX_DATE,
141 	    LINE_AMT,
142 	    INTERNAL_ORGANIZATION_ID,
143 	    APPLICATION_ID,
144 	    ENTITY_CODE,
145 	    EVENT_CLASS_CODE,
146 	    EVENT_TYPE_CODE,
147 	    TRX_ID,
148 	    TRX_LINE_ID,
149 	    TRX_LEVEL_TYPE,
150 	    TRX_LINE_NUMBER,
151 	    TAX_LINE_NUMBER,
152 	    TAX_REGIME_ID,
153 	    TAX_REGIME_CODE,
154 	    TAX_ID,
155 	    TAX,
156 	    TAX_STATUS_ID,
157 	    TAX_STATUS_CODE,
158 	    TAX_APPORTIONMENT_LINE_NUMBER,
159 	    LEGAL_ENTITY_ID,
160 	    TRX_NUMBER,
161 	    TRX_DATE,
162 	    TAX_JURISDICTION_ID,
163 	    TAX_JURISDICTION_CODE,
164 	    TAX_TYPE_CODE,
165 	    TAX_CURRENCY_CODE,
166 	    TAXABLE_AMT_TAX_CURR,
167 	    TRX_CURRENCY_CODE,
168 	    MINIMUM_ACCOUNTABLE_UNIT,
169 	    PRECISION,
170 	    CURRENCY_CONVERSION_TYPE,
171 	    CURRENCY_CONVERSION_RATE,
172 	    CURRENCY_CONVERSION_DATE
173 	    -- Modified by dcshanmu for eBTax - modification end
174       FROM Okl_Tax_Trx_Details
175      WHERE okl_tax_trx_details.id = p_id;
176     l_okl_ttdv_pk                  okl_ttdv_pk_csr%ROWTYPE;
177     l_ttdv_rec    ttdv_rec_type;
178   BEGIN
179     x_no_data_found := TRUE;
180     -- Get current database values
181     OPEN okl_ttdv_pk_csr (p_ttdv_rec.id);
182     FETCH okl_ttdv_pk_csr INTO
183               l_ttdv_rec.id,
184               l_ttdv_rec.txs_id,
185               l_ttdv_rec.tax_determine_date,
186               l_ttdv_rec.tax_rate_id,
187               l_ttdv_rec.tax_rate_code,
188               l_ttdv_rec.taxable_amt,
189               l_ttdv_rec.tax_exemption_id,
190               l_ttdv_rec.tax_rate,
191               l_ttdv_rec.tax_amt,
192               l_ttdv_rec.billed_yn,
193               l_ttdv_rec.tax_call_type_code,
194               l_ttdv_rec.program_id,
195               l_ttdv_rec.request_id,
196               l_ttdv_rec.program_application_id,
197               l_ttdv_rec.program_update_date,
198               l_ttdv_rec.attribute_category,
199               l_ttdv_rec.attribute1,
200               l_ttdv_rec.attribute2,
201               l_ttdv_rec.attribute3,
202               l_ttdv_rec.attribute4,
203               l_ttdv_rec.attribute5,
204               l_ttdv_rec.attribute6,
205               l_ttdv_rec.attribute7,
206               l_ttdv_rec.attribute8,
207               l_ttdv_rec.attribute9,
208               l_ttdv_rec.attribute10,
209               l_ttdv_rec.attribute11,
210               l_ttdv_rec.attribute12,
211               l_ttdv_rec.attribute13,
212               l_ttdv_rec.attribute14,
213               l_ttdv_rec.attribute15,
214               l_ttdv_rec.created_by,
215               l_ttdv_rec.creation_date,
216               l_ttdv_rec.last_updated_by,
217               l_ttdv_rec.last_update_date,
218               l_ttdv_rec.last_update_login,
219               l_ttdv_rec.object_version_number,
220 	      -- Modified by dcshanmu for eBTax - modification starts
221               l_ttdv_rec.tax_date,
222               l_ttdv_rec.line_amt,
223               l_ttdv_rec.internal_organization_id,
224               l_ttdv_rec.application_id,
225               l_ttdv_rec.entity_code,
226               l_ttdv_rec.event_class_code,
227               l_ttdv_rec.event_type_code,
228               l_ttdv_rec.trx_id,
229               l_ttdv_rec.trx_line_id,
230               l_ttdv_rec.trx_level_type,
231               l_ttdv_rec.trx_line_number,
232               l_ttdv_rec.tax_line_number,
233               l_ttdv_rec.tax_regime_id,
234               l_ttdv_rec.tax_regime_code,
235               l_ttdv_rec.tax_id,
236               l_ttdv_rec.tax,
237               l_ttdv_rec.tax_status_id,
238               l_ttdv_rec.tax_status_code,
239               l_ttdv_rec.tax_apportionment_line_number,
240               l_ttdv_rec.legal_entity_id,
241               l_ttdv_rec.trx_number,
242               l_ttdv_rec.trx_date,
243               l_ttdv_rec.tax_jurisdiction_id,
244               l_ttdv_rec.tax_jurisdiction_code,
245               l_ttdv_rec.tax_type_code,
246               l_ttdv_rec.tax_currency_code,
247               l_ttdv_rec.taxable_amt_tax_curr,
248               l_ttdv_rec.trx_currency_code,
249               l_ttdv_rec.minimum_accountable_unit,
250               l_ttdv_rec.precision,
251               l_ttdv_rec.currency_conversion_type,
252               l_ttdv_rec.currency_conversion_rate,
253               l_ttdv_rec.currency_conversion_date;
254 	      -- Modified by dcshanmu for eBTax - modification end
255     x_no_data_found := okl_ttdv_pk_csr%NOTFOUND;
256     CLOSE okl_ttdv_pk_csr;
257     RETURN(l_ttdv_rec);
258   END get_rec;
259 
260   ------------------------------------------------------------------
261   -- This version of get_rec sets error messages if no data found --
262   ------------------------------------------------------------------
263   FUNCTION get_rec (
264     p_ttdv_rec    IN ttdv_rec_type,
265     x_return_status                OUT NOCOPY VARCHAR2
266   ) RETURN ttdv_rec_type IS
267     l_ttdv_rec    ttdv_rec_type;
268     l_row_notfound                 BOOLEAN := TRUE;
269   BEGIN
270     x_return_status := OKL_API.G_RET_STS_SUCCESS;
271     l_ttdv_rec := get_rec(p_ttdv_rec, l_row_notfound);
272     IF (l_row_notfound) THEN
273       OKL_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'ID');
274       x_return_status := OKL_API.G_RET_STS_ERROR;
275     END IF;
276     RETURN(l_ttdv_rec);
277   END get_rec;
278   -----------------------------------------------------------
279   -- So we don't have to pass an "l_row_notfound" variable --
280   -----------------------------------------------------------
281   FUNCTION get_rec (
282     p_ttdv_rec    IN ttdv_rec_type
283   ) RETURN ttdv_rec_type IS
284     l_row_not_found                BOOLEAN := TRUE;
285   BEGIN
286     RETURN(get_rec(p_ttdv_rec, l_row_not_found));
287   END get_rec;
288   ---------------------------------------------------------------------------
289   -- FUNCTION get_rec for: OKL_TAX_TRX_DETAILS
290   ---------------------------------------------------------------------------
291   FUNCTION get_rec (
292     p_ttd_rec                      IN ttd_rec_type,
293     x_no_data_found                OUT NOCOPY BOOLEAN
294   ) RETURN ttd_rec_type IS
295     CURSOR okl_ttd_pk_csr (p_id IN NUMBER) IS
296     SELECT
297             ID,
298             TXS_ID,
299             TAX_DETERMINE_DATE,
300             TAX_RATE_ID,
301             TAX_RATE_CODE,
302             TAXABLE_AMT,
303             TAX_EXEMPTION_ID,
304             TAX_RATE,
305             TAX_AMT,
306             BILLED_YN,
307             TAX_CALL_TYPE_CODE,
308             PROGRAM_ID,
309             REQUEST_ID,
310             PROGRAM_APPLICATION_ID,
311             PROGRAM_UPDATE_DATE,
312             ATTRIBUTE_CATEGORY,
313             ATTRIBUTE1,
314             ATTRIBUTE2,
315             ATTRIBUTE3,
316             ATTRIBUTE4,
317             ATTRIBUTE5,
318             ATTRIBUTE6,
319             ATTRIBUTE7,
320             ATTRIBUTE8,
321             ATTRIBUTE9,
322             ATTRIBUTE10,
323             ATTRIBUTE11,
324             ATTRIBUTE12,
325             ATTRIBUTE13,
326             ATTRIBUTE14,
327             ATTRIBUTE15,
328             CREATED_BY,
329             CREATION_DATE,
330             LAST_UPDATED_BY,
331             LAST_UPDATE_DATE,
332             LAST_UPDATE_LOGIN,
333             OBJECT_VERSION_NUMBER,
334 	    -- Modified by dcshanmu for eBTax - modification starts
335 	    TAX_DATE,
336             LINE_AMT,
337             INTERNAL_ORGANIZATION_ID,
338             APPLICATION_ID,
339             ENTITY_CODE,
340             EVENT_CLASS_CODE,
341             EVENT_TYPE_CODE,
342             TRX_ID,
343             TRX_LINE_ID,
344             TRX_LEVEL_TYPE,
345             TRX_LINE_NUMBER,
346             TAX_LINE_NUMBER,
347             TAX_REGIME_ID,
348             TAX_REGIME_CODE,
349             TAX_ID,
350             TAX,
351             TAX_STATUS_ID,
352             TAX_STATUS_CODE,
353             TAX_APPORTIONMENT_LINE_NUMBER,
354             LEGAL_ENTITY_ID,
355             TRX_NUMBER,
356             TRX_DATE,
357             TAX_JURISDICTION_ID,
358             TAX_JURISDICTION_CODE,
359             TAX_TYPE_CODE,
360             TAX_CURRENCY_CODE,
361             TAXABLE_AMT_TAX_CURR,
362             TRX_CURRENCY_CODE,
363             MINIMUM_ACCOUNTABLE_UNIT,
364             PRECISION,
365             CURRENCY_CONVERSION_TYPE,
366             CURRENCY_CONVERSION_RATE,
367             CURRENCY_CONVERSION_DATE
368 	    -- Modified by dcshanmu for eBTax - modification end
369 
370       FROM Okl_Tax_Trx_Details
371      WHERE okl_tax_trx_details.id = p_id;
372     l_okl_ttd_pk                   okl_ttd_pk_csr%ROWTYPE;
373     l_ttd_rec                      ttd_rec_type;
374   BEGIN
375     x_no_data_found := TRUE;
376     -- Get current database values
377     OPEN okl_ttd_pk_csr (p_ttd_rec.id);
378     FETCH okl_ttd_pk_csr INTO
379               l_ttd_rec.id,
383               l_ttd_rec.tax_rate_code,
380               l_ttd_rec.txs_id,
381               l_ttd_rec.tax_determine_date,
382               l_ttd_rec.tax_rate_id,
384               l_ttd_rec.taxable_amt,
385               l_ttd_rec.tax_exemption_id,
386               l_ttd_rec.tax_rate,
387               l_ttd_rec.tax_amt,
388               l_ttd_rec.billed_yn,
389               l_ttd_rec.tax_call_type_code,
390               l_ttd_rec.program_id,
391               l_ttd_rec.request_id,
392               l_ttd_rec.program_application_id,
393               l_ttd_rec.program_update_date,
394               l_ttd_rec.attribute_category,
395               l_ttd_rec.attribute1,
396               l_ttd_rec.attribute2,
397               l_ttd_rec.attribute3,
398               l_ttd_rec.attribute4,
399               l_ttd_rec.attribute5,
400               l_ttd_rec.attribute6,
401               l_ttd_rec.attribute7,
402               l_ttd_rec.attribute8,
403               l_ttd_rec.attribute9,
404               l_ttd_rec.attribute10,
405               l_ttd_rec.attribute11,
406               l_ttd_rec.attribute12,
407               l_ttd_rec.attribute13,
408               l_ttd_rec.attribute14,
409               l_ttd_rec.attribute15,
410               l_ttd_rec.created_by,
411               l_ttd_rec.creation_date,
412               l_ttd_rec.last_updated_by,
413               l_ttd_rec.last_update_date,
414               l_ttd_rec.last_update_login,
415               l_ttd_rec.object_version_number,
416 	      -- Modified by dcshanmu for eBTax - modification starts
417               l_ttd_rec.tax_date,
418               l_ttd_rec.line_amt,
419               l_ttd_rec.internal_organization_id,
420               l_ttd_rec.application_id,
421               l_ttd_rec.entity_code,
422               l_ttd_rec.event_class_code,
423               l_ttd_rec.event_type_code,
424               l_ttd_rec.trx_id,
425               l_ttd_rec.trx_line_id,
426               l_ttd_rec.trx_level_type,
427               l_ttd_rec.trx_line_number,
428               l_ttd_rec.tax_line_number,
429               l_ttd_rec.tax_regime_id,
430               l_ttd_rec.tax_regime_code,
431               l_ttd_rec.tax_id,
432               l_ttd_rec.tax,
433               l_ttd_rec.tax_status_id,
434               l_ttd_rec.tax_status_code,
435               l_ttd_rec.tax_apportionment_line_number,
436               l_ttd_rec.legal_entity_id,
437               l_ttd_rec.trx_number,
438               l_ttd_rec.trx_date,
439               l_ttd_rec.tax_jurisdiction_id,
440               l_ttd_rec.tax_jurisdiction_code,
441               l_ttd_rec.tax_type_code,
442               l_ttd_rec.tax_currency_code,
443               l_ttd_rec.taxable_amt_tax_curr,
444               l_ttd_rec.trx_currency_code,
445               l_ttd_rec.minimum_accountable_unit,
446               l_ttd_rec.precision,
447               l_ttd_rec.currency_conversion_type,
448               l_ttd_rec.currency_conversion_rate,
449               l_ttd_rec.currency_conversion_date;
450 	      -- Modified by dcshanmu for eBTax - modification end
451     x_no_data_found := okl_ttd_pk_csr%NOTFOUND;
452     CLOSE okl_ttd_pk_csr;
453     RETURN(l_ttd_rec);
454   END get_rec;
455 
456   ------------------------------------------------------------------
457   -- This version of get_rec sets error messages if no data found --
458   ------------------------------------------------------------------
459   FUNCTION get_rec (
460     p_ttd_rec                      IN ttd_rec_type,
461     x_return_status                OUT NOCOPY VARCHAR2
462   ) RETURN ttd_rec_type IS
463     l_ttd_rec                      ttd_rec_type;
464     l_row_notfound                 BOOLEAN := TRUE;
465   BEGIN
466     x_return_status := OKL_API.G_RET_STS_SUCCESS;
467     l_ttd_rec := get_rec(p_ttd_rec, l_row_notfound);
468     IF (l_row_notfound) THEN
469       OKL_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'ID');
470       x_return_status := OKL_API.G_RET_STS_ERROR;
471     END IF;
472     RETURN(l_ttd_rec);
473   END get_rec;
474   -----------------------------------------------------------
475   -- So we don't have to pass an "l_row_notfound" variable --
476   -----------------------------------------------------------
477   FUNCTION get_rec (
478     p_ttd_rec                      IN ttd_rec_type
479   ) RETURN ttd_rec_type IS
480     l_row_not_found                BOOLEAN := TRUE;
481   BEGIN
482     RETURN(get_rec(p_ttd_rec, l_row_not_found));
483   END get_rec;
484   ---------------------------------------------------------------------------
485   -- FUNCTION null_out_defaults for: OKL_TAX_TRX_DETAILS_V
486   ---------------------------------------------------------------------------
487   FUNCTION null_out_defaults (
488     p_ttdv_rec   IN ttdv_rec_type
489   ) RETURN ttdv_rec_type IS
490     l_ttdv_rec    ttdv_rec_type := p_ttdv_rec;
491   BEGIN
492     IF (l_ttdv_rec.id = OKL_API.G_MISS_NUM ) THEN
493       l_ttdv_rec.id := NULL;
494     END IF;
495     IF (l_ttdv_rec.txs_id = OKL_API.G_MISS_NUM ) THEN
496       l_ttdv_rec.txs_id := NULL;
497     END IF;
498     IF (l_ttdv_rec.tax_determine_date = OKL_API.G_MISS_DATE ) THEN
499       l_ttdv_rec.tax_determine_date := NULL;
500     END IF;
501     IF (l_ttdv_rec.tax_rate_id = OKL_API.G_MISS_NUM ) THEN
502       l_ttdv_rec.tax_rate_id := NULL;
503     END IF;
504     IF (l_ttdv_rec.tax_rate_code = OKL_API.G_MISS_CHAR ) THEN
505       l_ttdv_rec.tax_rate_code := NULL;
506     END IF;
507     IF (l_ttdv_rec.taxable_amt = OKL_API.G_MISS_NUM ) THEN
508       l_ttdv_rec.taxable_amt := NULL;
509     END IF;
510     IF (l_ttdv_rec.tax_exemption_id = OKL_API.G_MISS_NUM ) THEN
511       l_ttdv_rec.tax_exemption_id := NULL;
512     END IF;
516     IF (l_ttdv_rec.tax_amt = OKL_API.G_MISS_NUM ) THEN
513     IF (l_ttdv_rec.tax_rate = OKL_API.G_MISS_NUM ) THEN
514       l_ttdv_rec.tax_rate := NULL;
515     END IF;
517       l_ttdv_rec.tax_amt := NULL;
518     END IF;
519     IF (l_ttdv_rec.billed_yn = OKL_API.G_MISS_CHAR ) THEN
520       l_ttdv_rec.billed_yn := NULL;
521     END IF;
522     IF (l_ttdv_rec.tax_call_type_code = OKL_API.G_MISS_CHAR ) THEN
523       l_ttdv_rec.tax_call_type_code := NULL;
524     END IF;
525     IF (l_ttdv_rec.program_id = OKL_API.G_MISS_NUM ) THEN
526       l_ttdv_rec.program_id := NULL;
527     END IF;
528     IF (l_ttdv_rec.request_id = OKL_API.G_MISS_NUM ) THEN
529       l_ttdv_rec.request_id := NULL;
530     END IF;
531     IF (l_ttdv_rec.program_application_id = OKL_API.G_MISS_NUM ) THEN
532       l_ttdv_rec.program_application_id := NULL;
533     END IF;
534     IF (l_ttdv_rec.program_update_date = OKL_API.G_MISS_DATE ) THEN
535       l_ttdv_rec.program_update_date := NULL;
536     END IF;
537     IF (l_ttdv_rec.attribute_category = OKL_API.G_MISS_CHAR ) THEN
538       l_ttdv_rec.attribute_category := NULL;
539     END IF;
540     IF (l_ttdv_rec.attribute1 = OKL_API.G_MISS_CHAR ) THEN
541       l_ttdv_rec.attribute1 := NULL;
542     END IF;
543     IF (l_ttdv_rec.attribute2 = OKL_API.G_MISS_CHAR ) THEN
544       l_ttdv_rec.attribute2 := NULL;
545     END IF;
546     IF (l_ttdv_rec.attribute3 = OKL_API.G_MISS_CHAR ) THEN
547       l_ttdv_rec.attribute3 := NULL;
548     END IF;
549     IF (l_ttdv_rec.attribute4 = OKL_API.G_MISS_CHAR ) THEN
550       l_ttdv_rec.attribute4 := NULL;
551     END IF;
552     IF (l_ttdv_rec.attribute5 = OKL_API.G_MISS_CHAR ) THEN
553       l_ttdv_rec.attribute5 := NULL;
554     END IF;
555     IF (l_ttdv_rec.attribute6 = OKL_API.G_MISS_CHAR ) THEN
556       l_ttdv_rec.attribute6 := NULL;
557     END IF;
558     IF (l_ttdv_rec.attribute7 = OKL_API.G_MISS_CHAR ) THEN
559       l_ttdv_rec.attribute7 := NULL;
560     END IF;
561     IF (l_ttdv_rec.attribute8 = OKL_API.G_MISS_CHAR ) THEN
562       l_ttdv_rec.attribute8 := NULL;
563     END IF;
564     IF (l_ttdv_rec.attribute9 = OKL_API.G_MISS_CHAR ) THEN
565       l_ttdv_rec.attribute9 := NULL;
566     END IF;
567     IF (l_ttdv_rec.attribute10 = OKL_API.G_MISS_CHAR ) THEN
568       l_ttdv_rec.attribute10 := NULL;
569     END IF;
570     IF (l_ttdv_rec.attribute11 = OKL_API.G_MISS_CHAR ) THEN
571       l_ttdv_rec.attribute11 := NULL;
572     END IF;
573     IF (l_ttdv_rec.attribute12 = OKL_API.G_MISS_CHAR ) THEN
574       l_ttdv_rec.attribute12 := NULL;
575     END IF;
576     IF (l_ttdv_rec.attribute13 = OKL_API.G_MISS_CHAR ) THEN
577       l_ttdv_rec.attribute13 := NULL;
578     END IF;
579     IF (l_ttdv_rec.attribute14 = OKL_API.G_MISS_CHAR ) THEN
580       l_ttdv_rec.attribute14 := NULL;
581     END IF;
582     IF (l_ttdv_rec.attribute15 = OKL_API.G_MISS_CHAR ) THEN
583       l_ttdv_rec.attribute15 := NULL;
584     END IF;
585     IF (l_ttdv_rec.created_by = OKL_API.G_MISS_NUM ) THEN
586       l_ttdv_rec.created_by := NULL;
587     END IF;
588     IF (l_ttdv_rec.creation_date = OKL_API.G_MISS_DATE ) THEN
589       l_ttdv_rec.creation_date := NULL;
590     END IF;
591     IF (l_ttdv_rec.last_updated_by = OKL_API.G_MISS_NUM ) THEN
592       l_ttdv_rec.last_updated_by := NULL;
593     END IF;
594     IF (l_ttdv_rec.last_update_date = OKL_API.G_MISS_DATE ) THEN
595       l_ttdv_rec.last_update_date := NULL;
596     END IF;
597     IF (l_ttdv_rec.last_update_login = OKL_API.G_MISS_NUM ) THEN
598       l_ttdv_rec.last_update_login := NULL;
599     END IF;
600     IF (l_ttdv_rec.object_version_number = OKL_API.G_MISS_NUM ) THEN
601       l_ttdv_rec.object_version_number := NULL;
602     END IF;
603 
604     -- Modified by dcshanmu for eBTax - modification starts
605     -- Added default null out for newly added columns in the table
606 
607     IF (l_ttdv_rec.tax_date = OKL_API.G_MISS_DATE ) THEN
608       l_ttdv_rec.tax_date := NULL;
609     END IF;
610     IF (l_ttdv_rec.line_amt = OKL_API.G_MISS_NUM ) THEN
611       l_ttdv_rec.line_amt := NULL;
612     END IF;
613     IF (l_ttdv_rec.internal_organization_id = OKL_API.G_MISS_NUM ) THEN
614       l_ttdv_rec.internal_organization_id := NULL;
615     END IF;
616     IF (l_ttdv_rec.application_id = OKL_API.G_MISS_NUM ) THEN
617       l_ttdv_rec.application_id := NULL;
618     END IF;
619     IF (l_ttdv_rec.entity_code = OKL_API.G_MISS_CHAR ) THEN
620       l_ttdv_rec.entity_code := NULL;
621     END IF;
622     IF (l_ttdv_rec.event_class_code = OKL_API.G_MISS_CHAR ) THEN
623       l_ttdv_rec.event_class_code := NULL;
624     END IF;
625     IF (l_ttdv_rec.event_type_code = OKL_API.G_MISS_CHAR ) THEN
626       l_ttdv_rec.event_type_code := NULL;
627     END IF;
628     IF (l_ttdv_rec.trx_id = OKL_API.G_MISS_NUM ) THEN
629       l_ttdv_rec.trx_id := NULL;
630     END IF;
631     IF (l_ttdv_rec.trx_line_id = OKL_API.G_MISS_NUM ) THEN
632       l_ttdv_rec.trx_line_id := NULL;
633     END IF;
634     IF (l_ttdv_rec.trx_level_type = OKL_API.G_MISS_CHAR ) THEN
635       l_ttdv_rec.trx_level_type := NULL;
636     END IF;
637     IF (l_ttdv_rec.trx_line_number = OKL_API.G_MISS_NUM ) THEN
638       l_ttdv_rec.trx_line_number := NULL;
639     END IF;
640     IF (l_ttdv_rec.tax_line_number = OKL_API.G_MISS_NUM ) THEN
641       l_ttdv_rec.tax_line_number := NULL;
642     END IF;
643     IF (l_ttdv_rec.tax_regime_id = OKL_API.G_MISS_NUM ) THEN
644       l_ttdv_rec.tax_regime_id := NULL;
645     END IF;
646     IF (l_ttdv_rec.tax_regime_code = OKL_API.G_MISS_CHAR ) THEN
647       l_ttdv_rec.tax_regime_code := NULL;
648     END IF;
649     IF (l_ttdv_rec.tax_id = OKL_API.G_MISS_NUM ) THEN
650       l_ttdv_rec.tax_id := NULL;
651     END IF;
655     IF (l_ttdv_rec.tax_status_id = OKL_API.G_MISS_NUM ) THEN
652     IF (l_ttdv_rec.tax = OKL_API.G_MISS_CHAR ) THEN
653       l_ttdv_rec.tax := NULL;
654     END IF;
656       l_ttdv_rec.tax_status_id := NULL;
657     END IF;
658     IF (l_ttdv_rec.tax_status_code = OKL_API.G_MISS_CHAR ) THEN
659       l_ttdv_rec.tax_status_code := NULL;
660     END IF;
661     IF (l_ttdv_rec.tax_apportionment_line_number = OKL_API.G_MISS_NUM ) THEN
662       l_ttdv_rec.tax_apportionment_line_number := NULL;
663     END IF;
664     IF (l_ttdv_rec.legal_entity_id = OKL_API.G_MISS_NUM ) THEN
665       l_ttdv_rec.legal_entity_id := NULL;
666     END IF;
667     IF (l_ttdv_rec.trx_number = OKL_API.G_MISS_CHAR ) THEN
668       l_ttdv_rec.trx_number := NULL;
669     END IF;
670     IF (l_ttdv_rec.trx_date = OKL_API.G_MISS_DATE ) THEN
671       l_ttdv_rec.trx_date := NULL;
672     END IF;
673     IF (l_ttdv_rec.tax_jurisdiction_id = OKL_API.G_MISS_NUM ) THEN
674       l_ttdv_rec.tax_jurisdiction_id := NULL;
675     END IF;
676     IF (l_ttdv_rec.tax_jurisdiction_code = OKL_API.G_MISS_CHAR ) THEN
677       l_ttdv_rec.tax_jurisdiction_code := NULL;
678     END IF;
679     IF (l_ttdv_rec.tax_type_code = OKL_API.G_MISS_CHAR ) THEN
680       l_ttdv_rec.tax_type_code := NULL;
681     END IF;
682     IF (l_ttdv_rec.tax_currency_code = OKL_API.G_MISS_CHAR ) THEN
683       l_ttdv_rec.tax_currency_code := NULL;
684     END IF;
685     IF (l_ttdv_rec.taxable_amt_tax_curr = OKL_API.G_MISS_NUM ) THEN
686       l_ttdv_rec.taxable_amt_tax_curr := NULL;
687     END IF;
688     IF (l_ttdv_rec.trx_currency_code = OKL_API.G_MISS_CHAR ) THEN
689       l_ttdv_rec.trx_currency_code := NULL;
690     END IF;
691     IF (l_ttdv_rec.minimum_accountable_unit = OKL_API.G_MISS_NUM ) THEN
692       l_ttdv_rec.minimum_accountable_unit := NULL;
693     END IF;
694     IF (l_ttdv_rec.precision = OKL_API.G_MISS_NUM ) THEN
695       l_ttdv_rec.precision := NULL;
696     END IF;
697     IF (l_ttdv_rec.currency_conversion_type = OKL_API.G_MISS_CHAR ) THEN
698       l_ttdv_rec.currency_conversion_type := NULL;
699     END IF;
700     IF (l_ttdv_rec.currency_conversion_rate = OKL_API.G_MISS_NUM ) THEN
701       l_ttdv_rec.currency_conversion_rate := NULL;
702     END IF;
703     IF (l_ttdv_rec.currency_conversion_date = OKL_API.G_MISS_DATE ) THEN
704       l_ttdv_rec.currency_conversion_date := NULL;
705     END IF;
706     -- Modified by dcshanmu for eBTax - modification end
707 
708     RETURN(l_ttdv_rec);
709   END null_out_defaults;
710   ---------------------------------
711   -- Validate_Attributes for: ID --
712   ---------------------------------
713   PROCEDURE validate_id(
714     x_return_status                OUT NOCOPY VARCHAR2,
715     p_ttdv_rec                     IN ttdv_rec_type) IS
716     l_return_status     VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
717   BEGIN
718 
719     IF (p_ttdv_rec.id = OKL_API.G_MISS_NUM OR p_ttdv_rec.id IS NULL)
720     THEN
721       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'id');
722       l_return_status := OKL_API.G_RET_STS_ERROR;
723 
724     END IF;
725     x_return_status := l_return_status;
726   EXCEPTION
727 
728     WHEN OTHERS THEN
729       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
730                           ,p_msg_name     => G_UNEXPECTED_ERROR
731                           ,p_token1       => G_SQLCODE_TOKEN
732                           ,p_token1_value => SQLCODE
733                           ,p_token2       => G_SQLERRM_TOKEN
734                           ,p_token2_value => SQLERRM);
735       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
736   END validate_id;
737   -------------------------------------
738   -- Validate_Attributes for: TXS_ID --
739   -------------------------------------
740   PROCEDURE validate_txs_id(
741     x_return_status                OUT NOCOPY VARCHAR2,
742     p_ttdv_rec                     IN ttdv_rec_type) IS
743     l_return_status     VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
744 
745     l_dummy_var         VARCHAR2(1) := '?' ;
746 
747     CURSOR okl_ttdv_txs_id_fk_csr (p_id IN NUMBER) IS
748       SELECT 'x'
749         FROM Okl_tax_sources
750        WHERE id   = p_id;
751   BEGIN
752 
753     IF (p_ttdv_rec.txs_id = OKL_API.G_MISS_NUM OR p_ttdv_rec.txs_id IS NULL)
754     THEN
755       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'txs_id');
756       l_return_status := OKL_API.G_RET_STS_ERROR;
757     ELSE
758 	  OPEN   okl_ttdv_txs_id_fk_csr(p_ttdv_rec.txs_id) ;
759       FETCH  okl_ttdv_txs_id_fk_csr into l_dummy_var ;
760       CLOSE  okl_ttdv_txs_id_fk_csr ;
761       -- still set to default means data was not found
762       IF ( l_dummy_var = '?' ) THEN
763            OKC_API.set_message(g_app_name,
764                         g_no_parent_record,
765                         g_col_name_token,
766                         'txs_id',
767                         g_child_table_token ,
768                         'OKL_TAX_TRX_DETAILS',
769                         g_parent_table_token ,
770                         'OKL_TAX_SOURCES');
771            l_return_status := OKC_API.G_RET_STS_ERROR;
772 
773       END IF;
774     END IF;
775     x_return_status := l_return_status;
776   EXCEPTION
777 
778     WHEN OTHERS THEN
779       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
780                           ,p_msg_name     => G_UNEXPECTED_ERROR
781                           ,p_token1       => G_SQLCODE_TOKEN
782                           ,p_token1_value => SQLCODE
783                           ,p_token2       => G_SQLERRM_TOKEN
784                           ,p_token2_value => SQLERRM);
785       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
786   END validate_txs_id;
790   PROCEDURE validate_tax_call_type_code(
787   -------------------------------------------------
788   -- Validate_Attributes for: TAX_CALL_TYPE_CODE --
789   -------------------------------------------------
791     x_return_status                OUT NOCOPY VARCHAR2,
792     p_ttdv_rec                     IN ttdv_rec_type) IS
793     l_return_status     VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
794 
795     l_dummy_var         VARCHAR2(1) := '?' ;
796 
797     CURSOR okl_ttdv_tctc_fk_csr (p_lookup_code IN VARCHAR2, p_lookup_type IN VARCHAR2) IS
798       SELECT 'x'
799       FROM Fnd_Lookup_Values
800       WHERE fnd_lookup_values.lookup_code = p_lookup_code
801       AND   fnd_lookup_values.lookup_type = p_lookup_type;
802   BEGIN
803 
804     IF (p_ttdv_rec.tax_call_type_code <> OKL_API.G_MISS_CHAR AND  p_ttdv_rec.tax_call_type_code IS NOT NULL)
805     THEN
806       --OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'tax_call_type_code');
807       --l_return_status := OKL_API.G_RET_STS_ERROR;
808         OPEN   okl_ttdv_tctc_fk_csr(p_ttdv_rec.tax_call_type_code, 'OKL_TAX_CALL_TYPE')  ;
809         FETCH  okl_ttdv_tctc_fk_csr into l_dummy_var ;
810         CLOSE  okl_ttdv_tctc_fk_csr ;
811         -- still set to default means data was not found
812         IF ( l_dummy_var = '?' ) THEN
813 
814            OKC_API.set_message(g_app_name,
815                         g_no_parent_record,
816                         g_col_name_token,
817                         'tax_call_type_code',
818                         g_child_table_token ,
819                         'OKL_TAX_TRX_DETAILS',
820                         g_parent_table_token ,
821                         'FND_LOOKUP_VALUES');
822             l_return_status := OKC_API.G_RET_STS_ERROR;
823 
824         END IF;
825 
826     END IF;
827     x_return_status := l_return_status;
828   EXCEPTION
829 
830     WHEN OTHERS THEN
831       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
832                           ,p_msg_name     => G_UNEXPECTED_ERROR
833                           ,p_token1       => G_SQLCODE_TOKEN
834                           ,p_token1_value => SQLCODE
835                           ,p_token2       => G_SQLERRM_TOKEN
836                           ,p_token2_value => SQLERRM);
837       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
838   END validate_tax_call_type_code;
839 
840   -- Modified by dcshanmu for eBTax - modification starts
841   -- added validation methods for newly added columns
842   -------------------------------------------------
843   -- Validate_Attributes for: TAX_RATE_ID --
844   -------------------------------------------------
845   PROCEDURE validate_tax_rate_id(
846     x_return_status                OUT NOCOPY VARCHAR2,
847     p_ttdv_rec                     IN ttdv_rec_type) IS
848     l_return_status     VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
849 
850     l_dummy_var         VARCHAR2(1) := '?' ;
851 
852     CURSOR okl_ttdv_tri_fk_csr (p_id IN NUMBER) IS
853       SELECT 'x'
854       FROM zx_rates_b
855       WHERE zx_rates_b.tax_rate_id = p_id;
856   BEGIN
857 
858     IF (p_ttdv_rec.tax_rate_id <> OKL_API.G_MISS_NUM AND  p_ttdv_rec.tax_rate_id IS NOT NULL)
859     THEN
860       --OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'tax_call_type_code');
861       --l_return_status := OKL_API.G_RET_STS_ERROR;
862         OPEN   okl_ttdv_tri_fk_csr(p_ttdv_rec.tax_rate_id)  ;
863         FETCH  okl_ttdv_tri_fk_csr into l_dummy_var ;
864         CLOSE  okl_ttdv_tri_fk_csr ;
865         -- still set to default means data was not found
866         IF ( l_dummy_var = '?' ) THEN
867 
868            OKC_API.set_message(g_app_name,
869                         g_no_parent_record,
870                         g_col_name_token,
871                         'tax_rate_id',
872                         g_child_table_token ,
873                         'OKL_TAX_TRX_DETAILS',
874                         g_parent_table_token ,
875                         'ZX_RATES_B');
876             l_return_status := OKC_API.G_RET_STS_ERROR;
877 
878         END IF;
879 
880     END IF;
881     x_return_status := l_return_status;
882   EXCEPTION
883 
884     WHEN OTHERS THEN
885       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
886                           ,p_msg_name     => G_UNEXPECTED_ERROR
887                           ,p_token1       => G_SQLCODE_TOKEN
888                           ,p_token1_value => SQLCODE
889                           ,p_token2       => G_SQLERRM_TOKEN
890                           ,p_token2_value => SQLERRM);
891       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
892   END validate_tax_rate_id;
893   -------------------------------------------------
894   -- Validate_Attributes for: TAX_RATE_CODE --
895   -------------------------------------------------
896   PROCEDURE validate_tax_rate_code(
897     x_return_status                OUT NOCOPY VARCHAR2,
898     p_ttdv_rec                     IN ttdv_rec_type) IS
899     l_return_status     VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
900 
901     l_dummy_var         VARCHAR2(1) := '?' ;
902 
903     CURSOR okl_ttdv_trc_fk_csr (p_code IN VARCHAR2) IS
904       SELECT 'x'
905       FROM zx_rates_b
906       WHERE zx_rates_b.tax_rate_code = p_code;
907   BEGIN
908 
909     IF (p_ttdv_rec.tax_rate_code <> OKL_API.G_MISS_CHAR AND  p_ttdv_rec.tax_rate_code IS NOT NULL)
910     THEN
911       --OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'tax_call_type_code');
912       --l_return_status := OKL_API.G_RET_STS_ERROR;
913         OPEN   okl_ttdv_trc_fk_csr(p_ttdv_rec.tax_rate_code)  ;
914         FETCH  okl_ttdv_trc_fk_csr into l_dummy_var ;
915         CLOSE  okl_ttdv_trc_fk_csr ;
916         -- still set to default means data was not found
920                         g_no_parent_record,
917         IF ( l_dummy_var = '?' ) THEN
918 
919            OKC_API.set_message(g_app_name,
921                         g_col_name_token,
922                         'tax_rate_code',
923                         g_child_table_token ,
924                         'OKL_TAX_TRX_DETAILS',
925                         g_parent_table_token ,
926                         'ZX_RATES_B');
927             l_return_status := OKC_API.G_RET_STS_ERROR;
928 
929         END IF;
930 
931     END IF;
932     x_return_status := l_return_status;
933   EXCEPTION
934 
935     WHEN OTHERS THEN
936       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
937                           ,p_msg_name     => G_UNEXPECTED_ERROR
938                           ,p_token1       => G_SQLCODE_TOKEN
939                           ,p_token1_value => SQLCODE
940                           ,p_token2       => G_SQLERRM_TOKEN
941                           ,p_token2_value => SQLERRM);
942       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
943   END validate_tax_rate_code;
944   -------------------------------------------------
945   -- Validate_Attributes for: TAX_EXEMPTION_ID --
946   -------------------------------------------------
947   PROCEDURE validate_tax_exemption_id(
948     x_return_status                OUT NOCOPY VARCHAR2,
949     p_ttdv_rec                     IN ttdv_rec_type) IS
950     l_return_status     VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
951 
952     l_dummy_var         VARCHAR2(1) := '?' ;
953 
954     CURSOR okl_ttdv_tei_fk_csr (p_id IN NUMBER) IS
955       SELECT 'x'
956       FROM zx_exemptions
957       WHERE zx_exemptions.tax_exemption_id = p_id;
958   BEGIN
959 
960     IF (p_ttdv_rec.tax_exemption_id <> OKL_API.G_MISS_NUM AND  p_ttdv_rec.tax_exemption_id IS NOT NULL)
961     THEN
962       --OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'tax_call_type_code');
963       --l_return_status := OKL_API.G_RET_STS_ERROR;
964         OPEN   okl_ttdv_tei_fk_csr(p_ttdv_rec.tax_exemption_id)  ;
965         FETCH  okl_ttdv_tei_fk_csr into l_dummy_var ;
966         CLOSE  okl_ttdv_tei_fk_csr ;
967         -- still set to default means data was not found
968         IF ( l_dummy_var = '?' ) THEN
969 
970            OKC_API.set_message(g_app_name,
971                         g_no_parent_record,
972                         g_col_name_token,
973                         'tax_exemption_id',
974                         g_child_table_token ,
975                         'OKL_TAX_TRX_DETAILS',
976                         g_parent_table_token ,
977                         'ZX_EXEMPTIONS');
978             l_return_status := OKC_API.G_RET_STS_ERROR;
979 
980         END IF;
981 
982     END IF;
983     x_return_status := l_return_status;
984   EXCEPTION
985 
986     WHEN OTHERS THEN
987       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
988                           ,p_msg_name     => G_UNEXPECTED_ERROR
989                           ,p_token1       => G_SQLCODE_TOKEN
990                           ,p_token1_value => SQLCODE
991                           ,p_token2       => G_SQLERRM_TOKEN
992                           ,p_token2_value => SQLERRM);
993       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
994   END validate_tax_exemption_id;
995   -------------------------------------------------
996   -- Validate_Attributes for: INTERNAL_ORGANIZATION_ID --
997   -------------------------------------------------
998   PROCEDURE validate_int_org_id(
999     x_return_status                OUT NOCOPY VARCHAR2,
1000     p_ttdv_rec                     IN ttdv_rec_type) IS
1001     l_return_status     VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1002 
1003     l_dummy_var         VARCHAR2(1) := '?' ;
1004 
1005     CURSOR okl_ttdv_ioi_fk_csr (p_id IN NUMBER) IS
1006       SELECT 'x'
1007       FROM hr_all_organization_units
1008       WHERE hr_all_organization_units.organization_id = p_id;
1009   BEGIN
1010 
1011     IF (p_ttdv_rec.internal_organization_id <> OKL_API.G_MISS_NUM AND  p_ttdv_rec.internal_organization_id IS NOT NULL)
1012     THEN
1013       --OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'tax_call_type_code');
1014       --l_return_status := OKL_API.G_RET_STS_ERROR;
1015         OPEN   okl_ttdv_ioi_fk_csr(p_ttdv_rec.internal_organization_id)  ;
1016         FETCH  okl_ttdv_ioi_fk_csr into l_dummy_var ;
1017         CLOSE  okl_ttdv_ioi_fk_csr ;
1018         -- still set to default means data was not found
1019         IF ( l_dummy_var = '?' ) THEN
1020 
1021            OKC_API.set_message(g_app_name,
1022                         g_no_parent_record,
1023                         g_col_name_token,
1024                         'internal_organization_id',
1025                         g_child_table_token ,
1026                         'OKL_TAX_TRX_DETAILS',
1027                         g_parent_table_token ,
1028                         'HR_ALL_ORGANIZATION_UNITS');
1029             l_return_status := OKC_API.G_RET_STS_ERROR;
1030 
1031         END IF;
1032     ELSIF (p_ttdv_rec.internal_organization_id = OKL_API.G_MISS_NUM OR  p_ttdv_rec.internal_organization_id IS NULL)
1033     THEN
1034 	OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'internal_organization_id');
1035         l_return_status := OKL_API.G_RET_STS_ERROR;
1036 
1037     END IF;
1038     x_return_status := l_return_status;
1039   EXCEPTION
1040 
1041     WHEN OTHERS THEN
1042       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
1043                           ,p_msg_name     => G_UNEXPECTED_ERROR
1044                           ,p_token1       => G_SQLCODE_TOKEN
1045                           ,p_token1_value => SQLCODE
1046                           ,p_token2       => G_SQLERRM_TOKEN
1047                           ,p_token2_value => SQLERRM);
1051   -- Validate_Attributes for: APPLICATION_ID --
1048       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1049   END validate_int_org_id;
1050   -------------------------------------------------
1052   -------------------------------------------------
1053   PROCEDURE validate_application_id(
1054     x_return_status                OUT NOCOPY VARCHAR2,
1055     p_ttdv_rec                     IN ttdv_rec_type) IS
1056     l_return_status     VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1057 
1058     l_dummy_var         VARCHAR2(1) := '?' ;
1059 
1060     CURSOR okl_ttdv_app_id_fk_csr (p_id IN NUMBER) IS
1061       SELECT 'x'
1062       FROM fnd_application
1063       WHERE fnd_application.application_id = p_id;
1064   BEGIN
1065 
1066     IF (p_ttdv_rec.application_id <> OKL_API.G_MISS_NUM AND  p_ttdv_rec.application_id IS NOT NULL)
1067     THEN
1068       --OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'tax_call_type_code');
1069       --l_return_status := OKL_API.G_RET_STS_ERROR;
1070         OPEN   okl_ttdv_app_id_fk_csr(p_ttdv_rec.application_id)  ;
1071         FETCH  okl_ttdv_app_id_fk_csr into l_dummy_var ;
1072         CLOSE  okl_ttdv_app_id_fk_csr ;
1073         -- still set to default means data was not found
1074         IF ( l_dummy_var = '?' ) THEN
1075 
1076            OKC_API.set_message(g_app_name,
1077                         g_no_parent_record,
1078                         g_col_name_token,
1079                         'application_id',
1080                         g_child_table_token ,
1081                         'OKL_TAX_TRX_DETAILS',
1082                         g_parent_table_token ,
1083                         'FND_APPLICATION');
1084             l_return_status := OKC_API.G_RET_STS_ERROR;
1085 
1086         END IF;
1087     ELSIF (p_ttdv_rec.application_id = OKL_API.G_MISS_NUM OR  p_ttdv_rec.application_id IS NULL)
1088     THEN
1089 	OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'application_id');
1090         l_return_status := OKL_API.G_RET_STS_ERROR;
1091 
1092     END IF;
1093     x_return_status := l_return_status;
1094   EXCEPTION
1095 
1096     WHEN OTHERS THEN
1097       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
1098                           ,p_msg_name     => G_UNEXPECTED_ERROR
1099                           ,p_token1       => G_SQLCODE_TOKEN
1100                           ,p_token1_value => SQLCODE
1101                           ,p_token2       => G_SQLERRM_TOKEN
1102                           ,p_token2_value => SQLERRM);
1103       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1104   END validate_application_id;
1105   -------------------------------------------------
1106   -- Validate_Attributes for: ENTITY_CODE --
1107   -------------------------------------------------
1108   PROCEDURE validate_entity_code(
1109     x_return_status                OUT NOCOPY VARCHAR2,
1110     p_ttdv_rec                     IN ttdv_rec_type) IS
1111     l_return_status     VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1112   BEGIN
1113 
1114 	IF (p_ttdv_rec.entity_code = OKL_API.G_MISS_CHAR OR  p_ttdv_rec.entity_code IS NULL)
1115 	    THEN
1116 		OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'entity_code');
1117 		l_return_status := OKL_API.G_RET_STS_ERROR;
1118 	END IF;
1119     x_return_status := l_return_status;
1120   EXCEPTION
1121 
1122     WHEN OTHERS THEN
1123       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
1124                           ,p_msg_name     => G_UNEXPECTED_ERROR
1125                           ,p_token1       => G_SQLCODE_TOKEN
1126                           ,p_token1_value => SQLCODE
1127                           ,p_token2       => G_SQLERRM_TOKEN
1128                           ,p_token2_value => SQLERRM);
1129       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1130   END validate_entity_code;
1131   -------------------------------------------------
1132   -- Validate_Attributes for: EVENT_CLASS_CODE --
1133   -------------------------------------------------
1134   PROCEDURE validate_event_class_code(
1135     x_return_status                OUT NOCOPY VARCHAR2,
1136     p_ttdv_rec                     IN ttdv_rec_type) IS
1137     l_return_status     VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1138   BEGIN
1139 
1140 	IF (p_ttdv_rec.event_class_code = OKL_API.G_MISS_CHAR OR  p_ttdv_rec.event_class_code IS NULL)
1141 	    THEN
1142 		OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'event_class_code');
1143 		l_return_status := OKL_API.G_RET_STS_ERROR;
1144 	END IF;
1145     x_return_status := l_return_status;
1146   EXCEPTION
1147 
1148     WHEN OTHERS THEN
1149       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
1150                           ,p_msg_name     => G_UNEXPECTED_ERROR
1151                           ,p_token1       => G_SQLCODE_TOKEN
1152                           ,p_token1_value => SQLCODE
1153                           ,p_token2       => G_SQLERRM_TOKEN
1154                           ,p_token2_value => SQLERRM);
1155       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1156   END validate_event_class_code;
1157   -------------------------------------------------
1158   -- Validate_Attributes for: EVENT_TYPE_CODE --
1159   -------------------------------------------------
1160   PROCEDURE validate_event_type_code(
1161     x_return_status                OUT NOCOPY VARCHAR2,
1162     p_ttdv_rec                     IN ttdv_rec_type) IS
1163     l_return_status     VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1164   BEGIN
1165 
1166 	IF (p_ttdv_rec.event_type_code = OKL_API.G_MISS_CHAR OR  p_ttdv_rec.event_type_code IS NULL)
1167 	    THEN
1168 		OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'event_type_code');
1169 		l_return_status := OKL_API.G_RET_STS_ERROR;
1170 	END IF;
1171     x_return_status := l_return_status;
1172   EXCEPTION
1173 
1174     WHEN OTHERS THEN
1178                           ,p_token1_value => SQLCODE
1175       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
1176                           ,p_msg_name     => G_UNEXPECTED_ERROR
1177                           ,p_token1       => G_SQLCODE_TOKEN
1179                           ,p_token2       => G_SQLERRM_TOKEN
1180                           ,p_token2_value => SQLERRM);
1181       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1182   END validate_event_type_code;
1183   -------------------------------------------------
1184   -- Validate_Attributes for: TRX_ID --
1185   -------------------------------------------------
1186   PROCEDURE validate_trx_id(
1187     x_return_status                OUT NOCOPY VARCHAR2,
1188     p_ttdv_rec                     IN ttdv_rec_type) IS
1189     l_return_status     VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1190   BEGIN
1191 
1192 	IF (p_ttdv_rec.trx_id = OKL_API.G_MISS_NUM OR  p_ttdv_rec.trx_id IS NULL)
1193 	    THEN
1194 		OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'trx_id');
1195 		l_return_status := OKL_API.G_RET_STS_ERROR;
1196 	END IF;
1197     x_return_status := l_return_status;
1198   EXCEPTION
1199 
1200     WHEN OTHERS THEN
1201       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
1202                           ,p_msg_name     => G_UNEXPECTED_ERROR
1203                           ,p_token1       => G_SQLCODE_TOKEN
1204                           ,p_token1_value => SQLCODE
1205                           ,p_token2       => G_SQLERRM_TOKEN
1206                           ,p_token2_value => SQLERRM);
1207       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1208   END validate_trx_id;
1209   -------------------------------------------------
1210   -- Validate_Attributes for: TRX_LINE_ID --
1211   -------------------------------------------------
1212   PROCEDURE validate_trx_line_id(
1213     x_return_status                OUT NOCOPY VARCHAR2,
1214     p_ttdv_rec                     IN ttdv_rec_type) IS
1215     l_return_status     VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1216   BEGIN
1217 
1218 	IF (p_ttdv_rec.trx_line_id = OKL_API.G_MISS_NUM OR  p_ttdv_rec.trx_line_id IS NULL)
1219 	    THEN
1220 		OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'trx_line_id');
1221 		l_return_status := OKL_API.G_RET_STS_ERROR;
1222 	END IF;
1223     x_return_status := l_return_status;
1224   EXCEPTION
1225 
1226     WHEN OTHERS THEN
1227       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
1228                           ,p_msg_name     => G_UNEXPECTED_ERROR
1229                           ,p_token1       => G_SQLCODE_TOKEN
1230                           ,p_token1_value => SQLCODE
1231                           ,p_token2       => G_SQLERRM_TOKEN
1232                           ,p_token2_value => SQLERRM);
1233       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1234   END validate_trx_line_id;
1235   -------------------------------------------------
1236   -- Validate_Attributes for: TRX_LEVEL_TYPE --
1237   -------------------------------------------------
1238   PROCEDURE validate_trx_level_type(
1239     x_return_status                OUT NOCOPY VARCHAR2,
1240     p_ttdv_rec                     IN ttdv_rec_type) IS
1241     l_return_status     VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1242   BEGIN
1243 
1244 	IF (p_ttdv_rec.trx_level_type = OKL_API.G_MISS_CHAR OR  p_ttdv_rec.trx_level_type IS NULL)
1245 	    THEN
1246 		OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'trx_level_type');
1247 		l_return_status := OKL_API.G_RET_STS_ERROR;
1248 	END IF;
1249     x_return_status := l_return_status;
1250   EXCEPTION
1251 
1252     WHEN OTHERS THEN
1253       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
1254                           ,p_msg_name     => G_UNEXPECTED_ERROR
1255                           ,p_token1       => G_SQLCODE_TOKEN
1256                           ,p_token1_value => SQLCODE
1257                           ,p_token2       => G_SQLERRM_TOKEN
1258                           ,p_token2_value => SQLERRM);
1259       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1260   END validate_trx_level_type;
1261   -------------------------------------------------
1262   -- Validate_Attributes for: TAX_LINE_NUMBER --
1263   -------------------------------------------------
1264   PROCEDURE validate_tax_line_number(
1265     x_return_status                OUT NOCOPY VARCHAR2,
1266     p_ttdv_rec                     IN ttdv_rec_type) IS
1267     l_return_status     VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1268   BEGIN
1269 
1270 	IF (p_ttdv_rec.tax_line_number = OKL_API.G_MISS_NUM OR  p_ttdv_rec.tax_line_number IS NULL)
1271 	    THEN
1272 		OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'tax_line_number');
1273 		l_return_status := OKL_API.G_RET_STS_ERROR;
1274 	END IF;
1275     x_return_status := l_return_status;
1276   EXCEPTION
1277 
1278     WHEN OTHERS THEN
1279       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
1280                           ,p_msg_name     => G_UNEXPECTED_ERROR
1281                           ,p_token1       => G_SQLCODE_TOKEN
1282                           ,p_token1_value => SQLCODE
1283                           ,p_token2       => G_SQLERRM_TOKEN
1284                           ,p_token2_value => SQLERRM);
1285       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1286   END validate_tax_line_number;
1287   -------------------------------------------------
1288   -- Validate_Attributes for: TAX_REGIME_ID --
1289   -------------------------------------------------
1290   PROCEDURE validate_tax_regime_id(
1291     x_return_status                OUT NOCOPY VARCHAR2,
1292     p_ttdv_rec                     IN ttdv_rec_type) IS
1293     l_return_status     VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1294 
1295     l_dummy_var         VARCHAR2(1) := '?' ;
1296 
1297     CURSOR okl_ttdv_tx_reg_id_fk_csr (p_id IN NUMBER) IS
1298       SELECT 'x'
1299       FROM zx_regimes_b
1303     IF (p_ttdv_rec.tax_regime_id <> OKL_API.G_MISS_NUM AND  p_ttdv_rec.tax_regime_id IS NOT NULL)
1300       WHERE zx_regimes_b.tax_regime_id = p_id;
1301   BEGIN
1302 
1304     THEN
1305         OPEN   okl_ttdv_tx_reg_id_fk_csr(p_ttdv_rec.tax_regime_id)  ;
1306         FETCH  okl_ttdv_tx_reg_id_fk_csr into l_dummy_var ;
1307         CLOSE  okl_ttdv_tx_reg_id_fk_csr ;
1308         -- still set to default means data was not found
1309         IF ( l_dummy_var = '?' ) THEN
1310 
1311            OKC_API.set_message(g_app_name,
1312                         g_no_parent_record,
1313                         g_col_name_token,
1314                         'tax_regime_id',
1315                         g_child_table_token ,
1316                         'OKL_TAX_TRX_DETAILS',
1317                         g_parent_table_token ,
1318                         'ZX_REGIMES_B');
1319             l_return_status := OKC_API.G_RET_STS_ERROR;
1320 
1321         END IF;
1322     END IF;
1323     x_return_status := l_return_status;
1324   EXCEPTION
1325 
1326     WHEN OTHERS THEN
1327       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
1328                           ,p_msg_name     => G_UNEXPECTED_ERROR
1329                           ,p_token1       => G_SQLCODE_TOKEN
1330                           ,p_token1_value => SQLCODE
1331                           ,p_token2       => G_SQLERRM_TOKEN
1332                           ,p_token2_value => SQLERRM);
1333       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1334   END validate_tax_regime_id;
1335   -------------------------------------------------
1336   -- Validate_Attributes for: TAX_REGIME_CODE --
1337   -------------------------------------------------
1338   PROCEDURE validate_tax_regime_code(
1339     x_return_status                OUT NOCOPY VARCHAR2,
1340     p_ttdv_rec                     IN ttdv_rec_type) IS
1341     l_return_status     VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1342 
1343     l_dummy_var         VARCHAR2(1) := '?' ;
1344 
1345     CURSOR okl_ttdv_tx_reg_cd_fk_csr (p_code IN VARCHAR2) IS
1346       SELECT 'x'
1347       FROM zx_regimes_b
1348       WHERE zx_regimes_b.tax_regime_code = p_code;
1349   BEGIN
1350 
1351     IF (p_ttdv_rec.tax_regime_code <> OKL_API.G_MISS_CHAR AND  p_ttdv_rec.tax_regime_code IS NOT NULL)
1352     THEN
1353         OPEN   okl_ttdv_tx_reg_cd_fk_csr(p_ttdv_rec.tax_regime_code)  ;
1354         FETCH  okl_ttdv_tx_reg_cd_fk_csr into l_dummy_var ;
1355         CLOSE  okl_ttdv_tx_reg_cd_fk_csr ;
1356         -- still set to default means data was not found
1357         IF ( l_dummy_var = '?' ) THEN
1358 
1359            OKC_API.set_message(g_app_name,
1360                         g_no_parent_record,
1361                         g_col_name_token,
1362                         'tax_regime_code',
1363                         g_child_table_token ,
1364                         'OKL_TAX_TRX_DETAILS',
1365                         g_parent_table_token ,
1366                         'ZX_REGIMES_B');
1367             l_return_status := OKC_API.G_RET_STS_ERROR;
1368 
1369         END IF;
1370     END IF;
1371     x_return_status := l_return_status;
1372   EXCEPTION
1373 
1374     WHEN OTHERS THEN
1375       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
1376                           ,p_msg_name     => G_UNEXPECTED_ERROR
1377                           ,p_token1       => G_SQLCODE_TOKEN
1378                           ,p_token1_value => SQLCODE
1379                           ,p_token2       => G_SQLERRM_TOKEN
1380                           ,p_token2_value => SQLERRM);
1381       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1382   END validate_tax_regime_code;
1383   -------------------------------------------------
1384   -- Validate_Attributes for: TAX_ID --
1385   -------------------------------------------------
1386   PROCEDURE validate_tax_id(
1387     x_return_status                OUT NOCOPY VARCHAR2,
1388     p_ttdv_rec                     IN ttdv_rec_type) IS
1389     l_return_status     VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1390 
1391     l_dummy_var         VARCHAR2(1) := '?' ;
1392 
1393     CURSOR okl_ttdv_tx_id_fk_csr (p_id IN NUMBER) IS
1394       SELECT 'x'
1395       FROM zx_taxes_b
1396       WHERE zx_taxes_b.tax_id = p_id;
1397   BEGIN
1398 
1399     IF (p_ttdv_rec.tax_id <> OKL_API.G_MISS_NUM AND  p_ttdv_rec.tax_id IS NOT NULL)
1400     THEN
1401         OPEN   okl_ttdv_tx_id_fk_csr(p_ttdv_rec.tax_id)  ;
1402         FETCH  okl_ttdv_tx_id_fk_csr into l_dummy_var ;
1403         CLOSE  okl_ttdv_tx_id_fk_csr ;
1404         -- still set to default means data was not found
1405         IF ( l_dummy_var = '?' ) THEN
1406 
1407            OKC_API.set_message(g_app_name,
1408                         g_no_parent_record,
1409                         g_col_name_token,
1410                         'tax_id',
1411                         g_child_table_token ,
1412                         'OKL_TAX_TRX_DETAILS',
1413                         g_parent_table_token ,
1414                         'ZX_TAXES_B');
1415             l_return_status := OKC_API.G_RET_STS_ERROR;
1416 
1417         END IF;
1418     END IF;
1419     x_return_status := l_return_status;
1420   EXCEPTION
1421 
1422     WHEN OTHERS THEN
1423       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
1424                           ,p_msg_name     => G_UNEXPECTED_ERROR
1425                           ,p_token1       => G_SQLCODE_TOKEN
1426                           ,p_token1_value => SQLCODE
1427                           ,p_token2       => G_SQLERRM_TOKEN
1428                           ,p_token2_value => SQLERRM);
1429       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1430   END validate_tax_id;
1431   -------------------------------------------------
1432   -- Validate_Attributes for: TAX_STATUS_ID --
1433   -------------------------------------------------
1437     l_return_status     VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1434   PROCEDURE validate_tax_status_id(
1435     x_return_status                OUT NOCOPY VARCHAR2,
1436     p_ttdv_rec                     IN ttdv_rec_type) IS
1438 
1439     l_dummy_var         VARCHAR2(1) := '?' ;
1440 
1441     CURSOR okl_ttdv_tx_st_id_fk_csr (p_id IN NUMBER) IS
1442       SELECT 'x'
1443       FROM zx_status_b
1444       WHERE zx_status_b.tax_status_id = p_id;
1445   BEGIN
1446 
1447     IF (p_ttdv_rec.tax_status_id <> OKL_API.G_MISS_NUM AND  p_ttdv_rec.tax_status_id IS NOT NULL)
1448     THEN
1449         OPEN   okl_ttdv_tx_st_id_fk_csr(p_ttdv_rec.tax_status_id)  ;
1450         FETCH  okl_ttdv_tx_st_id_fk_csr into l_dummy_var ;
1451         CLOSE  okl_ttdv_tx_st_id_fk_csr ;
1452         -- still set to default means data was not found
1453         IF ( l_dummy_var = '?' ) THEN
1454 
1455            OKC_API.set_message(g_app_name,
1456                         g_no_parent_record,
1457                         g_col_name_token,
1458                         'tax_status_id',
1459                         g_child_table_token ,
1460                         'OKL_TAX_TRX_DETAILS',
1461                         g_parent_table_token ,
1462                         'ZX_STATUS_B');
1463             l_return_status := OKC_API.G_RET_STS_ERROR;
1464 
1465         END IF;
1466     END IF;
1467     x_return_status := l_return_status;
1468   EXCEPTION
1469 
1470     WHEN OTHERS THEN
1471       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
1472                           ,p_msg_name     => G_UNEXPECTED_ERROR
1473                           ,p_token1       => G_SQLCODE_TOKEN
1474                           ,p_token1_value => SQLCODE
1475                           ,p_token2       => G_SQLERRM_TOKEN
1476                           ,p_token2_value => SQLERRM);
1477       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1478   END validate_tax_status_id;
1479   -------------------------------------------------
1480   -- Validate_Attributes for: TAX_JURISDICTION_ID --
1481   -------------------------------------------------
1482   PROCEDURE validate_tax_juris_id(
1483     x_return_status                OUT NOCOPY VARCHAR2,
1484     p_ttdv_rec                     IN ttdv_rec_type) IS
1485     l_return_status     VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1486 
1487     l_dummy_var         VARCHAR2(1) := '?' ;
1488 
1489     CURSOR okl_ttdv_tx_jur_id_fk_csr (p_id IN NUMBER) IS
1490       SELECT 'x'
1491       FROM zx_jurisdictions_b
1492       WHERE zx_jurisdictions_b.tax_jurisdiction_id = p_id;
1493   BEGIN
1494 
1495     IF (p_ttdv_rec.tax_jurisdiction_id <> OKL_API.G_MISS_NUM AND  p_ttdv_rec.tax_jurisdiction_id IS NOT NULL)
1496     THEN
1497         OPEN   okl_ttdv_tx_jur_id_fk_csr(p_ttdv_rec.tax_jurisdiction_id)  ;
1498         FETCH  okl_ttdv_tx_jur_id_fk_csr into l_dummy_var ;
1499         CLOSE  okl_ttdv_tx_jur_id_fk_csr ;
1500         -- still set to default means data was not found
1501         IF ( l_dummy_var = '?' ) THEN
1502 
1503            OKC_API.set_message(g_app_name,
1504                         g_no_parent_record,
1505                         g_col_name_token,
1506                         'tax_jurisdiction_id',
1507                         g_child_table_token ,
1508                         'OKL_TAX_TRX_DETAILS',
1509                         g_parent_table_token ,
1510                         'ZX_JURISDICTIONS_B');
1511             l_return_status := OKC_API.G_RET_STS_ERROR;
1512 
1513         END IF;
1514     END IF;
1515     x_return_status := l_return_status;
1516   EXCEPTION
1517 
1518     WHEN OTHERS THEN
1519       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
1520                           ,p_msg_name     => G_UNEXPECTED_ERROR
1521                           ,p_token1       => G_SQLCODE_TOKEN
1522                           ,p_token1_value => SQLCODE
1523                           ,p_token2       => G_SQLERRM_TOKEN
1524                           ,p_token2_value => SQLERRM);
1525       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1526   END validate_tax_juris_id;
1527   -------------------------------------------------
1528   -- Validate_Attributes for: TAX_CURRENCY_CODE --
1529   -------------------------------------------------
1530   PROCEDURE validate_tax_curr_code(
1531     x_return_status                OUT NOCOPY VARCHAR2,
1532     p_ttdv_rec                     IN ttdv_rec_type) IS
1533     l_return_status     VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1534 
1535     l_dummy_var         VARCHAR2(1) := '?' ;
1536 
1537     CURSOR okl_ttdv_tx_cur_cd_fk_csr (p_code IN VARCHAR2) IS
1538       SELECT 'x'
1539       FROM fnd_currencies
1540       WHERE fnd_currencies.currency_code = p_code;
1541   BEGIN
1542 
1543     IF (p_ttdv_rec.tax_currency_code <> OKL_API.G_MISS_CHAR AND  p_ttdv_rec.tax_currency_code IS NOT NULL)
1544     THEN
1545         OPEN   okl_ttdv_tx_cur_cd_fk_csr(p_ttdv_rec.tax_currency_code)  ;
1546         FETCH  okl_ttdv_tx_cur_cd_fk_csr into l_dummy_var ;
1547         CLOSE  okl_ttdv_tx_cur_cd_fk_csr ;
1548         -- still set to default means data was not found
1549         IF ( l_dummy_var = '?' ) THEN
1550 
1551            OKC_API.set_message(g_app_name,
1552                         g_no_parent_record,
1553                         g_col_name_token,
1554                         'tax_currency_code',
1555                         g_child_table_token ,
1556                         'OKL_TAX_TRX_DETAILS',
1557                         g_parent_table_token ,
1558                         'FND_CURRENCIES');
1559             l_return_status := OKC_API.G_RET_STS_ERROR;
1560 
1561         END IF;
1562     END IF;
1563     x_return_status := l_return_status;
1564   EXCEPTION
1565 
1566     WHEN OTHERS THEN
1567       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
1571                           ,p_token2       => G_SQLERRM_TOKEN
1568                           ,p_msg_name     => G_UNEXPECTED_ERROR
1569                           ,p_token1       => G_SQLCODE_TOKEN
1570                           ,p_token1_value => SQLCODE
1572                           ,p_token2_value => SQLERRM);
1573       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1574   END validate_tax_curr_code;
1575   -------------------------------------------------
1576   -- Validate_Attributes for: TRX_CURRENCY_CODE --
1577   -------------------------------------------------
1578   PROCEDURE validate_trx_curr_code(
1579     x_return_status                OUT NOCOPY VARCHAR2,
1580     p_ttdv_rec                     IN ttdv_rec_type) IS
1581     l_return_status     VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1582 
1583     l_dummy_var         VARCHAR2(1) := '?' ;
1584 
1585     CURSOR okl_ttdv_trx_cur_cd_fk_csr (p_code IN VARCHAR2) IS
1586       SELECT 'x'
1587       FROM fnd_currencies
1588       WHERE fnd_currencies.currency_code = p_code;
1589   BEGIN
1590 
1591     IF (p_ttdv_rec.trx_currency_code <> OKL_API.G_MISS_CHAR AND  p_ttdv_rec.trx_currency_code IS NOT NULL)
1592     THEN
1593         OPEN   okl_ttdv_trx_cur_cd_fk_csr(p_ttdv_rec.trx_currency_code)  ;
1594         FETCH  okl_ttdv_trx_cur_cd_fk_csr into l_dummy_var ;
1595         CLOSE  okl_ttdv_trx_cur_cd_fk_csr ;
1596         -- still set to default means data was not found
1597         IF ( l_dummy_var = '?' ) THEN
1598 
1599            OKC_API.set_message(g_app_name,
1600                         g_no_parent_record,
1601                         g_col_name_token,
1602                         'trx_currency_code',
1603                         g_child_table_token ,
1604                         'OKL_TAX_TRX_DETAILS',
1605                         g_parent_table_token ,
1606                         'FND_CURRENCIES');
1607             l_return_status := OKC_API.G_RET_STS_ERROR;
1608 
1609         END IF;
1610     END IF;
1611     x_return_status := l_return_status;
1612   EXCEPTION
1613 
1614     WHEN OTHERS THEN
1615       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
1616                           ,p_msg_name     => G_UNEXPECTED_ERROR
1617                           ,p_token1       => G_SQLCODE_TOKEN
1618                           ,p_token1_value => SQLCODE
1619                           ,p_token2       => G_SQLERRM_TOKEN
1620                           ,p_token2_value => SQLERRM);
1621       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1622   END validate_trx_curr_code;
1623 
1624   -- Modified by dcshanmu for eBTax - modification end
1625 
1626   ---------------------------------------------------------------------------
1627   -- FUNCTION Validate_Attributes
1628   ---------------------------------------------------------------------------
1629   ---------------------------------------------------
1630   -- Validate_Attributes for:OKL_TAX_TRX_DETAILS_V --
1631   ---------------------------------------------------
1632   FUNCTION Validate_Attributes (
1633     p_ttdv_rec    IN ttdv_rec_type
1634   ) RETURN VARCHAR2 IS
1635     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1636     x_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1637   BEGIN
1638     -----------------------------
1639     -- Column Level Validation --
1640     -----------------------------
1641     -- ***
1642     -- id
1643     -- ***
1644     validate_id(l_return_status, p_ttdv_rec);
1645     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1646       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1647           x_return_status := l_return_status;
1648           RAISE G_EXCEPTION_HALT_VALIDATION;
1649       ELSE
1650           x_return_status := l_return_status;
1651       END IF;
1652     END IF;
1653 
1654     -- Modified by dcshanmu for eBTax - modification starts
1655     -- calling validation methods for newly added columns in table
1656     -- ***
1657     -- txs_id
1658     -- ***
1659     validate_txs_id(l_return_status, p_ttdv_rec);
1660     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1661       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1662           x_return_status := l_return_status;
1663           RAISE G_EXCEPTION_HALT_VALIDATION;
1664       ELSE
1665           x_return_status := l_return_status;
1666       END IF;
1667     END IF;
1668 
1669     -- ***
1670     -- tax_call_type_code
1671     -- ***
1672     validate_tax_call_type_code(l_return_status, p_ttdv_rec);
1673     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1674       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1675           x_return_status := l_return_status;
1676           RAISE G_EXCEPTION_HALT_VALIDATION;
1677       ELSE
1678           x_return_status := l_return_status;
1679       END IF;
1680     END IF;
1681 
1682     -- ***
1683     -- tax_rate_id
1684     -- ***
1685     validate_tax_rate_id(l_return_status, p_ttdv_rec);
1686     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1687       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1688           x_return_status := l_return_status;
1689           RAISE G_EXCEPTION_HALT_VALIDATION;
1690       ELSE
1691           x_return_status := l_return_status;
1692       END IF;
1693     END IF;
1694 
1695     -- ***
1696     -- tax_rate_code
1697     -- ***
1698     validate_tax_rate_code(l_return_status, p_ttdv_rec);
1699     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1700       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1701           x_return_status := l_return_status;
1702           RAISE G_EXCEPTION_HALT_VALIDATION;
1703       ELSE
1704           x_return_status := l_return_status;
1705       END IF;
1706     END IF;
1707 
1708     -- ***
1712     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1709     -- tax_exemption_id
1710     -- ***
1711     validate_tax_exemption_id(l_return_status, p_ttdv_rec);
1713       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1714           x_return_status := l_return_status;
1715           RAISE G_EXCEPTION_HALT_VALIDATION;
1716       ELSE
1717           x_return_status := l_return_status;
1718       END IF;
1719     END IF;
1720 
1721     -- ***
1722     -- internal_organization_id
1723     -- ***
1724     validate_int_org_id(l_return_status, p_ttdv_rec);
1725     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1726       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1727           x_return_status := l_return_status;
1728           RAISE G_EXCEPTION_HALT_VALIDATION;
1729       ELSE
1730           x_return_status := l_return_status;
1731       END IF;
1732     END IF;
1733 
1734     -- ***
1735     -- application_id
1736     -- ***
1737     validate_application_id(l_return_status, p_ttdv_rec);
1738     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1739       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1740           x_return_status := l_return_status;
1741           RAISE G_EXCEPTION_HALT_VALIDATION;
1742       ELSE
1743           x_return_status := l_return_status;
1744       END IF;
1745     END IF;
1746 
1747     -- ***
1748     -- entity_code
1749     -- ***
1750     validate_entity_code(l_return_status, p_ttdv_rec);
1751     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1752       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1753           x_return_status := l_return_status;
1754           RAISE G_EXCEPTION_HALT_VALIDATION;
1755       ELSE
1756           x_return_status := l_return_status;
1757       END IF;
1758     END IF;
1759 
1760     -- ***
1761     -- event_class_code
1762     -- ***
1763     validate_event_class_code(l_return_status, p_ttdv_rec);
1764     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1765       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1766           x_return_status := l_return_status;
1767           RAISE G_EXCEPTION_HALT_VALIDATION;
1768       ELSE
1769           x_return_status := l_return_status;
1770       END IF;
1771     END IF;
1772 
1773     -- ***
1774     -- event_type_code
1775     -- ***
1776     validate_event_type_code(l_return_status, p_ttdv_rec);
1777     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1778       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1779           x_return_status := l_return_status;
1780           RAISE G_EXCEPTION_HALT_VALIDATION;
1781       ELSE
1782           x_return_status := l_return_status;
1783       END IF;
1784     END IF;
1785 
1786     -- ***
1787     -- trx_id
1788     -- ***
1789     validate_trx_id(l_return_status, p_ttdv_rec);
1790     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1791       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1792           x_return_status := l_return_status;
1793           RAISE G_EXCEPTION_HALT_VALIDATION;
1794       ELSE
1795           x_return_status := l_return_status;
1796       END IF;
1797     END IF;
1798 
1799     -- ***
1800     -- trx_line_id
1801     -- ***
1802     validate_trx_line_id(l_return_status, p_ttdv_rec);
1803     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1804       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1805           x_return_status := l_return_status;
1806           RAISE G_EXCEPTION_HALT_VALIDATION;
1807       ELSE
1808           x_return_status := l_return_status;
1809       END IF;
1810     END IF;
1811 
1812     -- ***
1813     -- trx_level_type
1814     -- ***
1815     validate_trx_level_type(l_return_status, p_ttdv_rec);
1816     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1817       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1818           x_return_status := l_return_status;
1819           RAISE G_EXCEPTION_HALT_VALIDATION;
1820       ELSE
1821           x_return_status := l_return_status;
1822       END IF;
1823     END IF;
1824 
1825     -- ***
1826     -- tax_line_number
1827     -- ***
1828     validate_tax_line_number(l_return_status, p_ttdv_rec);
1829     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1830       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1831           x_return_status := l_return_status;
1832           RAISE G_EXCEPTION_HALT_VALIDATION;
1833       ELSE
1834           x_return_status := l_return_status;
1835       END IF;
1836     END IF;
1837 
1838     -- ***
1839     -- tax_regime_id
1840     -- ***
1841     validate_tax_regime_id(l_return_status, p_ttdv_rec);
1842     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1843       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1844           x_return_status := l_return_status;
1845           RAISE G_EXCEPTION_HALT_VALIDATION;
1846       ELSE
1847           x_return_status := l_return_status;
1848       END IF;
1849     END IF;
1850 
1851     -- ***
1852     -- tax_regime_code
1853     -- ***
1854     validate_tax_regime_code(l_return_status, p_ttdv_rec);
1855     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1856       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1857           x_return_status := l_return_status;
1858           RAISE G_EXCEPTION_HALT_VALIDATION;
1859       ELSE
1860           x_return_status := l_return_status;
1861       END IF;
1862     END IF;
1863 
1864     -- ***
1865     -- tax_id
1866     -- ***
1867     validate_tax_id(l_return_status, p_ttdv_rec);
1871           RAISE G_EXCEPTION_HALT_VALIDATION;
1868     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1869       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1870           x_return_status := l_return_status;
1872       ELSE
1873           x_return_status := l_return_status;
1874       END IF;
1875     END IF;
1876 
1877     -- ***
1878     -- tax_status_id
1879     -- ***
1880     validate_tax_status_id(l_return_status, p_ttdv_rec);
1881     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1882       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1883           x_return_status := l_return_status;
1884           RAISE G_EXCEPTION_HALT_VALIDATION;
1885       ELSE
1886           x_return_status := l_return_status;
1887       END IF;
1888     END IF;
1889 
1890     -- ***
1891     -- tax_juris_id
1892     -- ***
1893     validate_tax_juris_id(l_return_status, p_ttdv_rec);
1894     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1895       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1896           x_return_status := l_return_status;
1897           RAISE G_EXCEPTION_HALT_VALIDATION;
1898       ELSE
1899           x_return_status := l_return_status;
1900       END IF;
1901     END IF;
1902 
1903     -- ***
1904     -- tax_currency_code
1905     -- ***
1906     validate_tax_curr_code(l_return_status, p_ttdv_rec);
1907     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1908       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1909           x_return_status := l_return_status;
1910           RAISE G_EXCEPTION_HALT_VALIDATION;
1911       ELSE
1912           x_return_status := l_return_status;
1913       END IF;
1914     END IF;
1915 
1916     -- ***
1917     -- trx_currency_code
1918     -- ***
1919     validate_trx_curr_code(l_return_status, p_ttdv_rec);
1920     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1921       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1922           x_return_status := l_return_status;
1923           RAISE G_EXCEPTION_HALT_VALIDATION;
1924       ELSE
1925           x_return_status := l_return_status;
1926       END IF;
1927     END IF;
1928     -- Modified by dcshanmu for eBTax - modification end
1929 
1930     RETURN(x_return_status);
1931   EXCEPTION
1932     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1933       RETURN(x_return_status);
1934     WHEN OTHERS THEN
1935       OKL_API.SET_MESSAGE( p_app_name     => G_APP_NAME
1936                           ,p_msg_name     => G_UNEXPECTED_ERROR
1937                           ,p_token1       => G_SQLCODE_TOKEN
1938                           ,p_token1_value => SQLCODE
1939                           ,p_token2       => G_SQLERRM_TOKEN
1940                           ,p_token2_value => SQLERRM);
1941       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1942       RETURN(x_return_status);
1943   END Validate_Attributes;
1944   ---------------------------------------------------------------------------
1945   -- PROCEDURE Validate_Record
1946   ---------------------------------------------------------------------------
1947   /*-----------------------------------------------
1948   -- Validate Record for:OKL_TAX_TRX_DETAILS_V --
1949   -----------------------------------------------
1950   FUNCTION Validate_Record (
1951     p_ttdv_rec IN ttdv_rec_type,
1952     p_db_okl_tax_trx_details_v_rec IN ttdv_rec_type
1953   ) RETURN VARCHAR2 IS
1954     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1955     ------------------------------------
1956     -- FUNCTION validate_foreign_keys --
1957     ------------------------------------
1958     FUNCTION validate_foreign_keys (
1959       p_ttdv_rec IN ttdv_rec_type,
1960       p_db_okl_tax_trx_details_v_rec IN ttdv_rec_type
1961     ) RETURN VARCHAR2 IS
1962       item_not_found_error           EXCEPTION;
1963 
1964       CURSOR okl_ttdv_tax_call_t1 (p_lookup_code IN VARCHAR2) IS
1965       SELECT 'x'
1966         FROM Fnd_Lookups
1967        WHERE fnd_lookups.lookup_code = p_lookup_code;
1968       l_okl_ttdv_tax_call_type_code  okl_ttdv_tax_call_t1%ROWTYPE;
1969 
1970       CURSOR okl_ttdv_txs_id_csr (p_id IN NUMBER) IS
1971       SELECT 'x'
1972         FROM Okl_Tax_Sources
1973        WHERE okl_tax_sources.id   = p_id;
1974       l_okl_ttdv_txs_id              okl_ttdv_txs_id_csr%ROWTYPE;
1975 
1976     CURSOR okl_ttdv_tri_fk_csr (p_id IN NUMBER) IS
1977       SELECT 'x'
1978       FROM zx_rates_b
1979       WHERE zx_rates_b.tax_rate_id = p_id;
1980      l_okl_ttdv_tri			okl_ttdv_tri_fk_csr%ROWTYPE;
1981 
1982     CURSOR okl_ttdv_trc_fk_csr (p_code IN VARCHAR2) IS
1983       SELECT 'x'
1984       FROM zx_rates_b
1985       WHERE zx_rates_b.tax_rate_code = p_code;
1986      l_okl_ttdv_trc			okl_ttdv_trc_fk_csr%ROWTYPE;
1987 
1988     CURSOR okl_ttdv_tei_fk_csr (p_id IN NUMBER) IS
1989       SELECT 'x'
1990       FROM zx_exemptions
1991       WHERE zx_exemptions.tax_exemption_id = p_id;
1992      l_okl_ttdv_tei			okl_ttdv_tei_fk_csr%ROWTYPE;
1993 
1994     CURSOR okl_ttdv_ioi_fk_csr (p_id IN NUMBER) IS
1995       SELECT 'x'
1996       FROM hr_all_organization_units
1997       WHERE hr_all_organization_units.organization_id = p_id;
1998      l_okl_ttdv_ioi			okl_ttdv_ioi_fk_csr%ROWTYPE;
1999 
2000     CURSOR okl_ttdv_app_id_fk_csr (p_id IN NUMBER) IS
2001       SELECT 'x'
2002       FROM fnd_application
2003       WHERE fnd_application.application_id = p_id;
2004      l_okl_ttdv_app_id		okl_ttdv_app_id_fk_csr%ROWTYPE;
2005 
2006     CURSOR okl_ttdv_tx_reg_id_fk_csr (p_id IN NUMBER) IS
2007       SELECT 'x'
2008       FROM zx_regimes_b
2009       WHERE zx_regimes_b.tax_regime_id = p_id;
2010      l_okl_ttdv_tx_reg_id	okl_ttdv_tx_reg_id_fk_csr%ROWTYPE;
2011 
2015       WHERE zx_regimes_b.tax_regime_code = p_code;
2012     CURSOR okl_ttdv_tx_reg_cd_fk_csr (p_code IN VARCHAR2) IS
2013       SELECT 'x'
2014       FROM zx_regimes_b
2016      l_okl_ttdv_tx_reg_cd	okl_ttdv_tx_reg_cd_fk_csr%ROWTYPE;
2017 
2018     CURSOR okl_ttdv_tx_id_fk_csr (p_id IN NUMBER) IS
2019       SELECT 'x'
2020       FROM zx_taxes_b
2021       WHERE zx_taxes_b.tax_id = p_id;
2022      l_okl_ttdv_tx_id		okl_ttdv_tx_id_fk_csr%ROWTYPE;
2023 
2024     CURSOR okl_ttdv_tx_st_id_fk_csr (p_id IN NUMBER) IS
2025       SELECT 'x'
2026       FROM zx_status_b
2027       WHERE zx_status_b.tax_status_id = p_id;
2028      l_okl_ttdv_tx_st_id		okl_ttdv_tx_st_id_fk_csr%ROWTYPE;
2029 
2030     CURSOR okl_ttdv_tx_jur_id_fk_csr (p_id IN NUMBER) IS
2031       SELECT 'x'
2032       FROM zx_jurisdictions_b
2033       WHERE zx_jurisdictions_b.tax_jurisdiction_id = p_id;
2034      l_okl_ttdv_tx_jur_id	okl_ttdv_tx_jur_id_fk_csr%ROWTYPE;
2035 
2036     CURSOR okl_ttdv_tx_cur_cd_fk_csr (p_code IN VARCHAR2) IS
2037       SELECT 'x'
2038       FROM fnd_currencies
2039       WHERE fnd_currencies.currency_code = p_code;
2040      l_okl_ttdv_tx_cur_cd	okl_ttdv_tx_cur_cd_fk_csr%ROWTYPE;
2041 
2042     CURSOR okl_ttdv_trx_cur_cd_fk_csr (p_code IN VARCHAR2) IS
2043       SELECT 'x'
2044       FROM fnd_currencies
2045       WHERE fnd_currencies.currency_code = p_code;
2046      l_okl_ttdv_trx_cur_cd_fk_csr	okl_ttdv_trx_cur_cd_fk_csr%ROWTYPE;
2047 
2048 
2049       l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2050       l_row_notfound                 BOOLEAN := TRUE;
2051     BEGIN
2052 
2053       IF ((p_ttdv_rec.TXS_ID IS NOT NULL)
2054        AND
2055           (p_ttdv_rec.TXS_ID <> p_db_okl_tax_trx_details_v_rec.TXS_ID))
2056       THEN
2057         OPEN okl_ttdv_txs_id_csr (p_ttdv_rec.TXS_ID);
2058         FETCH okl_ttdv_txs_id_csr INTO l_okl_ttdv_txs_id;
2059         l_row_notfound := okl_ttdv_txs_id_csr%NOTFOUND;
2060         CLOSE okl_ttdv_txs_id_csr;
2061         IF (l_row_notfound) THEN
2062           OKL_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'TXS_ID');
2063           RAISE item_not_found_error;
2064         END IF;
2065       END IF;
2066 
2067       IF ((p_ttdv_rec.TAX_CALL_TYPE_CODE IS NOT NULL)
2068        AND
2069           (p_ttdv_rec.TAX_CALL_TYPE_CODE <> p_db_okl_tax_trx_details_v_rec.TAX_CALL_TYPE_CODE))
2070       THEN
2071         OPEN okl_ttdv_tax_call_t1 (p_ttdv_rec.TAX_CALL_TYPE_CODE);
2072         FETCH okl_ttdv_tax_call_t1 INTO l_okl_ttdv_tax_call_type_code;
2073         l_row_notfound := okl_ttdv_tax_call_t1%NOTFOUND;
2074         CLOSE okl_ttdv_tax_call_t1;
2075         IF (l_row_notfound) THEN
2076           OKL_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'TAX_CALL_TYPE_CODE');
2077           RAISE item_not_found_error;
2078         END IF;
2079       END IF;
2080 
2081       IF ((p_ttdv_rec.TAX_RATE_ID IS NOT NULL)
2082        AND
2083           (p_ttdv_rec.TAX_RATE_ID <> p_db_okl_tax_trx_details_v_rec.TAX_RATE_ID))
2084       THEN
2085         OPEN okl_ttdv_tri_fk_csr (p_ttdv_rec.TAX_RATE_ID);
2086         FETCH okl_ttdv_tri_fk_csr INTO l_okl_ttdv_tri;
2087         l_row_notfound := okl_ttdv_tri_fk_csr%NOTFOUND;
2088         CLOSE okl_ttdv_tri_fk_csr;
2089         IF (l_row_notfound) THEN
2090           OKL_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'TAX_RATE_ID');
2091           RAISE item_not_found_error;
2092         END IF;
2093       END IF;
2094 
2095       IF ((p_ttdv_rec.TAX_RATE_CODE IS NOT NULL)
2096        AND
2097           (p_ttdv_rec.TAX_RATE_CODE <> p_db_okl_tax_trx_details_v_rec.TAX_RATE_CODE))
2098       THEN
2099         OPEN okl_ttdv_trc_fk_csr (p_ttdv_rec.TAX_RATE_CODE);
2100         FETCH okl_ttdv_trc_fk_csr INTO l_okl_ttdv_trc;
2101         l_row_notfound := okl_ttdv_trc_fk_csr%NOTFOUND;
2102         CLOSE okl_ttdv_trc_fk_csr;
2103         IF (l_row_notfound) THEN
2104           OKL_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'TAX_RATE_CODE');
2105           RAISE item_not_found_error;
2106         END IF;
2107       END IF;
2108 
2109       IF ((p_ttdv_rec.TAX_EXEMPTION_ID IS NOT NULL)
2110        AND
2111           (p_ttdv_rec.TAX_EXEMPTION_ID <> p_db_okl_tax_trx_details_v_rec.TAX_EXEMPTION_ID))
2112       THEN
2113         OPEN okl_ttdv_tei_fk_csr (p_ttdv_rec.TAX_EXEMPTION_ID);
2114         FETCH okl_ttdv_tei_fk_csr INTO l_okl_ttdv_tei;
2115         l_row_notfound := okl_ttdv_tei_fk_csr%NOTFOUND;
2116         CLOSE okl_ttdv_tei_fk_csr;
2117         IF (l_row_notfound) THEN
2118           OKL_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'TAX_EXEMPTION_ID');
2119           RAISE item_not_found_error;
2120         END IF;
2121       END IF;
2122 
2123       IF ((p_ttdv_rec.INTERNAL_ORGANIZATION_ID IS NOT NULL)
2124        AND
2125           (p_ttdv_rec.INTERNAL_ORGANIZATION_ID <> p_db_okl_tax_trx_details_v_rec.INTERNAL_ORGANIZATION_ID))
2126       THEN
2127         OPEN okl_ttdv_ioi_fk_csr (p_ttdv_rec.INTERNAL_ORGANIZATION_ID);
2128         FETCH okl_ttdv_ioi_fk_csr INTO l_okl_ttdv_ioi;
2129         l_row_notfound := okl_ttdv_ioi_fk_csr%NOTFOUND;
2130         CLOSE okl_ttdv_ioi_fk_csr;
2131         IF (l_row_notfound) THEN
2132           OKL_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'INTERNAL_ORGANIZATION_ID');
2133           RAISE item_not_found_error;
2134         END IF;
2135       END IF;
2136 
2137       IF ((p_ttdv_rec.APPLICATION_ID IS NOT NULL)
2138        AND
2139           (p_ttdv_rec.APPLICATION_ID <> p_db_okl_tax_trx_details_v_rec.APPLICATION_ID))
2140       THEN
2141         OPEN okl_ttdv_app_id_fk_csr (p_ttdv_rec.APPLICATION_ID);
2142         FETCH okl_ttdv_app_id_fk_csr INTO l_okl_ttdv_app_id;
2143         l_row_notfound := okl_ttdv_app_id_fk_csr%NOTFOUND;
2144         CLOSE okl_ttdv_app_id_fk_csr;
2145         IF (l_row_notfound) THEN
2149       END IF;
2146           OKL_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'APPLICATION_ID');
2147           RAISE item_not_found_error;
2148         END IF;
2150 
2151       IF ((p_ttdv_rec.TAX_REGIME_ID IS NOT NULL)
2152        AND
2153           (p_ttdv_rec.TAX_REGIME_ID <> p_db_okl_tax_trx_details_v_rec.TAX_REGIME_ID))
2154       THEN
2155         OPEN okl_ttdv_tx_reg_id_fk_csr (p_ttdv_rec.TAX_REGIME_ID);
2156         FETCH okl_ttdv_tx_reg_id_fk_csr INTO l_okl_ttdv_tx_reg_id;
2157         l_row_notfound := okl_ttdv_tx_reg_id_fk_csr%NOTFOUND;
2158         CLOSE okl_ttdv_tx_reg_id_fk_csr;
2159         IF (l_row_notfound) THEN
2160           OKL_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'TAX_REGIME_ID');
2161           RAISE item_not_found_error;
2162         END IF;
2163       END IF;
2164 
2165       IF ((p_ttdv_rec.TAX_REGIME_CODE IS NOT NULL)
2166        AND
2167           (p_ttdv_rec.TAX_REGIME_CODE <> p_db_okl_tax_trx_details_v_rec.TAX_REGIME_CODE))
2168       THEN
2169         OPEN okl_ttdv_tx_reg_cd_fk_csr (p_ttdv_rec.TAX_REGIME_CODE);
2170         FETCH okl_ttdv_tx_reg_cd_fk_csr INTO l_okl_ttdv_tx_reg_cd;
2171         l_row_notfound := okl_ttdv_tx_reg_cd_fk_csr%NOTFOUND;
2172         CLOSE okl_ttdv_tx_reg_cd_fk_csr;
2173         IF (l_row_notfound) THEN
2174           OKL_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'TAX_REGIME_CODE');
2175           RAISE item_not_found_error;
2176         END IF;
2177       END IF;
2178 
2179       IF ((p_ttdv_rec.TAX_ID IS NOT NULL)
2180        AND
2181           (p_ttdv_rec.TAX_ID <> p_db_okl_tax_trx_details_v_rec.TAX_ID))
2182       THEN
2183         OPEN okl_ttdv_tx_id_fk_csr (p_ttdv_rec.TAX_ID);
2184         FETCH okl_ttdv_tx_id_fk_csr INTO l_okl_ttdv_tx_id;
2185         l_row_notfound := okl_ttdv_tx_id_fk_csr%NOTFOUND;
2186         CLOSE okl_ttdv_tx_id_fk_csr;
2187         IF (l_row_notfound) THEN
2188           OKL_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'TAX_ID');
2189           RAISE item_not_found_error;
2190         END IF;
2191       END IF;
2192 
2193       IF ((p_ttdv_rec.TAX_STATUS_ID IS NOT NULL)
2194        AND
2195           (p_ttdv_rec.TAX_STATUS_ID <> p_db_okl_tax_trx_details_v_rec.TAX_STATUS_ID))
2196       THEN
2197         OPEN okl_ttdv_tx_st_id_fk_csr (p_ttdv_rec.TAX_STATUS_ID);
2198         FETCH okl_ttdv_tx_st_id_fk_csr INTO l_okl_ttdv_tx_st_id;
2199         l_row_notfound := okl_ttdv_tx_st_id_fk_csr%NOTFOUND;
2200         CLOSE okl_ttdv_tx_st_id_fk_csr;
2201         IF (l_row_notfound) THEN
2202           OKL_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'TAX_STATUS_ID');
2203           RAISE item_not_found_error;
2204         END IF;
2205       END IF;
2206 
2207       IF ((p_ttdv_rec.TAX_JURISDICTION_ID IS NOT NULL)
2208        AND
2209           (p_ttdv_rec.TAX_JURISDICTION_ID <> p_db_okl_tax_trx_details_v_rec.TAX_JURISDICTION_ID))
2210       THEN
2211         OPEN okl_ttdv_tx_jur_id_fk_csr (p_ttdv_rec.TAX_JURISDICTION_ID);
2212         FETCH okl_ttdv_tx_jur_id_fk_csr INTO l_okl_ttdv_tx_jur_id;
2213         l_row_notfound := okl_ttdv_tx_jur_id_fk_csr%NOTFOUND;
2214         CLOSE okl_ttdv_tx_jur_id_fk_csr;
2215         IF (l_row_notfound) THEN
2216           OKL_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'TAX_JURISDICTION_ID');
2217           RAISE item_not_found_error;
2218         END IF;
2219       END IF;
2220 
2221       IF ((p_ttdv_rec.TAX_CURRENCY_CODE IS NOT NULL)
2222        AND
2223           (p_ttdv_rec.TAX_CURRENCY_CODE <> p_db_okl_tax_trx_details_v_rec.TAX_CURRENCY_CODE))
2224       THEN
2225         OPEN okl_ttdv_tx_cur_cd_fk_csr (p_ttdv_rec.TAX_CURRENCY_CODE);
2226         FETCH okl_ttdv_tx_cur_cd_fk_csr INTO l_okl_ttdv_tx_cur_cd;
2227         l_row_notfound := okl_ttdv_tx_cur_cd_fk_csr%NOTFOUND;
2228         CLOSE okl_ttdv_tx_cur_cd_fk_csr;
2229         IF (l_row_notfound) THEN
2230           OKL_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'TAX_CURRENCY_CODE');
2231           RAISE item_not_found_error;
2232         END IF;
2233       END IF;
2234 
2235       IF ((p_ttdv_rec.TRX_CURRENCY_CODE IS NOT NULL)
2236        AND
2237           (p_ttdv_rec.TRX_CURRENCY_CODE <> p_db_okl_tax_trx_details_v_rec.TRX_CURRENCY_CODE))
2238       THEN
2239         OPEN okl_ttdv_trx_cur_cd_fk_csr (p_ttdv_rec.TRX_CURRENCY_CODE);
2240         FETCH okl_ttdv_trx_cur_cd_fk_csr INTO l_okl_ttdv_trx_cur_cd;
2241         l_row_notfound := okl_ttdv_trx_cur_cd_fk_csr%NOTFOUND;
2242         CLOSE okl_ttdv_trx_cur_cd_fk_csr;
2243         IF (l_row_notfound) THEN
2244           OKL_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'TRX_CURRENCY_CODE');
2245           RAISE item_not_found_error;
2246         END IF;
2247       END IF;
2248 
2249       RETURN (l_return_status);
2250     EXCEPTION
2251       WHEN item_not_found_error THEN
2252         l_return_status := OKL_API.G_RET_STS_ERROR;
2253         RETURN (l_return_status);
2254     END validate_foreign_keys;
2255   BEGIN
2256     l_return_status := validate_foreign_keys(p_ttdv_rec, p_db_okl_tax_trx_details_v_rec);
2257     RETURN (l_return_status);
2258   END Validate_Record;
2259   FUNCTION Validate_Record (
2260     p_ttdv_rec IN ttdv_rec_type
2261   ) RETURN VARCHAR2 IS
2262     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2263     l_db_okl_tax_trx_details_v_rec ttdv_rec_type := get_rec(p_ttdv_rec);
2264   BEGIN
2265     l_return_status := Validate_Record(p_ttdv_rec => p_ttdv_rec,
2266                                        p_db_okl_tax_trx_details_v_rec => l_db_okl_tax_trx_details_v_rec);
2267     RETURN (l_return_status);
2268   END Validate_Record;
2269 */
2270   ---------------------------------------------------------------------------
2271   -- PROCEDURE Migrate
2272   ---------------------------------------------------------------------------
2273   PROCEDURE migrate (
2277   BEGIN
2274     p_from IN ttdv_rec_type,
2275     p_to   IN OUT NOCOPY ttd_rec_type
2276   ) IS
2278     p_to.id := p_from.id;
2279     p_to.txs_id := p_from.txs_id;
2280     p_to.tax_determine_date := p_from.tax_determine_date;
2281     p_to.tax_rate_id := p_from.tax_rate_id;
2282     p_to.tax_rate_code := p_from.tax_rate_code;
2283     p_to.taxable_amt := p_from.taxable_amt;
2284     p_to.tax_exemption_id := p_from.tax_exemption_id;
2285     p_to.tax_rate := p_from.tax_rate;
2286     p_to.tax_amt := p_from.tax_amt;
2287     p_to.billed_yn := p_from.billed_yn;
2288     p_to.tax_call_type_code := p_from.tax_call_type_code;
2289     p_to.program_id := p_from.program_id;
2290     p_to.request_id := p_from.request_id;
2291     p_to.program_application_id := p_from.program_application_id;
2292     p_to.program_update_date := p_from.program_update_date;
2293     p_to.attribute_category := p_from.attribute_category;
2294     p_to.attribute1 := p_from.attribute1;
2295     p_to.attribute2 := p_from.attribute2;
2296     p_to.attribute3 := p_from.attribute3;
2297     p_to.attribute4 := p_from.attribute4;
2298     p_to.attribute5 := p_from.attribute5;
2299     p_to.attribute6 := p_from.attribute6;
2300     p_to.attribute7 := p_from.attribute7;
2301     p_to.attribute8 := p_from.attribute8;
2302     p_to.attribute9 := p_from.attribute9;
2303     p_to.attribute10 := p_from.attribute10;
2304     p_to.attribute11 := p_from.attribute11;
2305     p_to.attribute12 := p_from.attribute12;
2306     p_to.attribute13 := p_from.attribute13;
2307     p_to.attribute14 := p_from.attribute14;
2308     p_to.attribute15 := p_from.attribute15;
2309     p_to.created_by := p_from.created_by;
2310     p_to.creation_date := p_from.creation_date;
2311     p_to.last_updated_by := p_from.last_updated_by;
2312     p_to.last_update_date := p_from.last_update_date;
2313     p_to.last_update_login := p_from.last_update_login;
2314     p_to.object_version_number := p_from.object_version_number;
2315     -- Modified by dcshanmu for eBTax - modification starts
2316     p_to.tax_date := p_from.tax_date;
2317     p_to.line_amt := p_from.line_amt;
2318     p_to.internal_organization_id := p_from.internal_organization_id;
2319     p_to.application_id := p_from.application_id;
2320     p_to.entity_code := p_from.entity_code;
2321     p_to.event_class_code := p_from.event_class_code;
2322     p_to.event_type_code := p_from.event_type_code;
2323     p_to.trx_id := p_from.trx_id;
2324     p_to.trx_line_id := p_from.trx_line_id;
2325     p_to.trx_level_type := p_from.trx_level_type;
2326     p_to.trx_line_number := p_from.trx_line_number;
2327     p_to.tax_line_number := p_from.tax_line_number;
2328     p_to.tax_regime_id := p_from.tax_regime_id;
2329     p_to.tax_regime_code := p_from.tax_regime_code;
2330     p_to.tax_id := p_from.tax_id;
2331     p_to.tax := p_from.tax;
2332     p_to.tax_status_id := p_from.tax_status_id;
2333     p_to.tax_status_code := p_from.tax_status_code;
2334     p_to.tax_apportionment_line_number := p_from.tax_apportionment_line_number;
2335     p_to.legal_entity_id := p_from.legal_entity_id;
2336     p_to.trx_number := p_from.trx_number;
2337     p_to.trx_date := p_from.trx_date;
2338     p_to.tax_jurisdiction_id := p_from.tax_jurisdiction_id;
2339     p_to.tax_jurisdiction_code := p_from.tax_jurisdiction_code;
2340     p_to.tax_type_code := p_from.tax_type_code;
2341     p_to.tax_currency_code := p_from.tax_currency_code;
2342     p_to.taxable_amt_tax_curr := p_from.taxable_amt_tax_curr;
2343     p_to.trx_currency_code := p_from.trx_currency_code;
2344     p_to.minimum_accountable_unit := p_from.minimum_accountable_unit;
2345     p_to.precision := p_from.precision;
2346     p_to.currency_conversion_type := p_from.currency_conversion_type;
2347     p_to.currency_conversion_rate := p_from.currency_conversion_rate;
2348     p_to.currency_conversion_date := p_from.currency_conversion_date;
2349     -- Modified by dcshanmu for eBTax - modification end
2350 
2351   END migrate;
2352   PROCEDURE migrate (
2353     p_from IN ttd_rec_type,
2354     p_to   IN OUT NOCOPY ttdv_rec_type
2355   ) IS
2356   BEGIN
2357     p_to.id := p_from.id;
2358     p_to.txs_id := p_from.txs_id;
2359     p_to.tax_determine_date := p_from.tax_determine_date;
2360     p_to.tax_rate_id := p_from.tax_rate_id;
2361     p_to.tax_rate_code := p_from.tax_rate_code;
2362     p_to.taxable_amt := p_from.taxable_amt;
2363     p_to.tax_exemption_id := p_from.tax_exemption_id;
2364     p_to.tax_rate := p_from.tax_rate;
2365     p_to.tax_amt := p_from.tax_amt;
2366     p_to.billed_yn := p_from.billed_yn;
2367     p_to.tax_call_type_code := p_from.tax_call_type_code;
2368     p_to.program_id := p_from.program_id;
2369     p_to.request_id := p_from.request_id;
2370     p_to.program_application_id := p_from.program_application_id;
2371     p_to.program_update_date := p_from.program_update_date;
2372     p_to.attribute_category := p_from.attribute_category;
2373     p_to.attribute1 := p_from.attribute1;
2374     p_to.attribute2 := p_from.attribute2;
2375     p_to.attribute3 := p_from.attribute3;
2376     p_to.attribute4 := p_from.attribute4;
2377     p_to.attribute5 := p_from.attribute5;
2378     p_to.attribute6 := p_from.attribute6;
2379     p_to.attribute7 := p_from.attribute7;
2380     p_to.attribute8 := p_from.attribute8;
2381     p_to.attribute9 := p_from.attribute9;
2382     p_to.attribute10 := p_from.attribute10;
2383     p_to.attribute11 := p_from.attribute11;
2384     p_to.attribute12 := p_from.attribute12;
2385     p_to.attribute13 := p_from.attribute13;
2386     p_to.attribute14 := p_from.attribute14;
2387     p_to.attribute15 := p_from.attribute15;
2388     p_to.created_by := p_from.created_by;
2389     p_to.creation_date := p_from.creation_date;
2390     p_to.last_updated_by := p_from.last_updated_by;
2391     p_to.last_update_date := p_from.last_update_date;
2392     p_to.last_update_login := p_from.last_update_login;
2393     p_to.object_version_number := p_from.object_version_number;
2397     p_to.internal_organization_id := p_from.internal_organization_id;
2394     -- Modified by dcshanmu for eBTax - modification starts
2395     p_to.tax_date := p_from.tax_date;
2396     p_to.line_amt := p_from.line_amt;
2398     p_to.application_id := p_from.application_id;
2399     p_to.entity_code := p_from.entity_code;
2400     p_to.event_class_code := p_from.event_class_code;
2401     p_to.event_type_code := p_from.event_type_code;
2402     p_to.trx_id := p_from.trx_id;
2403     p_to.trx_line_id := p_from.trx_line_id;
2404     p_to.trx_level_type := p_from.trx_level_type;
2405     p_to.trx_line_number := p_from.trx_line_number;
2406     p_to.tax_line_number := p_from.tax_line_number;
2407     p_to.tax_regime_id := p_from.tax_regime_id;
2408     p_to.tax_regime_code := p_from.tax_regime_code;
2409     p_to.tax_id := p_from.tax_id;
2410     p_to.tax := p_from.tax;
2411     p_to.tax_status_id := p_from.tax_status_id;
2412     p_to.tax_status_code := p_from.tax_status_code;
2413     p_to.tax_apportionment_line_number := p_from.tax_apportionment_line_number;
2414     p_to.legal_entity_id := p_from.legal_entity_id;
2415     p_to.trx_number := p_from.trx_number;
2416     p_to.trx_date := p_from.trx_date;
2417     p_to.tax_jurisdiction_id := p_from.tax_jurisdiction_id;
2418     p_to.tax_jurisdiction_code := p_from.tax_jurisdiction_code;
2419     p_to.tax_type_code := p_from.tax_type_code;
2420     p_to.tax_currency_code := p_from.tax_currency_code;
2421     p_to.taxable_amt_tax_curr := p_from.taxable_amt_tax_curr;
2422     p_to.trx_currency_code := p_from.trx_currency_code;
2423     p_to.minimum_accountable_unit := p_from.minimum_accountable_unit;
2424     p_to.precision := p_from.precision;
2425     p_to.currency_conversion_type := p_from.currency_conversion_type;
2426     p_to.currency_conversion_rate := p_from.currency_conversion_rate;
2427     p_to.currency_conversion_date := p_from.currency_conversion_date;
2428     -- Modified by dcshanmu for eBTax - modification end
2429 
2430   END migrate;
2431   ---------------------------------------------------------------------------
2432   -- PROCEDURE validate_row
2433   ---------------------------------------------------------------------------
2434   --------------------------------------------
2435   -- validate_row for:OKL_TAX_TRX_DETAILS_V --
2436   --------------------------------------------
2437   PROCEDURE validate_row(
2438     p_api_version                  IN NUMBER,
2439     p_init_msg_list                IN VARCHAR2,
2440     x_return_status                OUT NOCOPY VARCHAR2,
2441     x_msg_count                    OUT NOCOPY NUMBER,
2442     x_msg_data                     OUT NOCOPY VARCHAR2,
2443     p_ttdv_rec    IN ttdv_rec_type) IS
2444 
2445     l_api_version                  CONSTANT NUMBER := 1;
2446     l_api_name                     CONSTANT VARCHAR2(30) := 'V_validate_row';
2447     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2448     l_ttdv_rec    ttdv_rec_type := p_ttdv_rec;
2449     l_ttd_rec                      ttd_rec_type;
2450     l_ttd_rec                      ttd_rec_type;
2451   BEGIN
2452     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
2453                                               G_PKG_NAME,
2454                                               p_init_msg_list,
2455                                               l_api_version,
2456                                               p_api_version,
2457                                               '_PVT',
2458                                               x_return_status);
2459     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2460       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2461     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2462       RAISE OKL_API.G_EXCEPTION_ERROR;
2463     END IF;
2464     --- Validate all non-missing attributes (Item Level Validation)
2465     l_return_status := Validate_Attributes(l_ttdv_rec);
2466     --- If any errors happen abort API
2467     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2468       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2469     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2470       RAISE OKL_API.G_EXCEPTION_ERROR;
2471     END IF;
2472 
2473     /*l_return_status := Validate_Record(l_ttdv_rec);
2474     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2475       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2476     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2477       RAISE OKL_API.G_EXCEPTION_ERROR;
2478     END IF;
2479     */
2480 
2481     x_return_status := l_return_status;
2482   EXCEPTION
2483     WHEN OKL_API.G_EXCEPTION_ERROR THEN
2484       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2485       (
2486         l_api_name,
2487         G_PKG_NAME,
2488         'OKL_API.G_RET_STS_ERROR',
2489         x_msg_count,
2490         x_msg_data,
2491         '_PVT'
2492       );
2493     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2494       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2495       (
2496         l_api_name,
2497         G_PKG_NAME,
2498         'OKL_API.G_RET_STS_UNEXP_ERROR',
2499         x_msg_count,
2500         x_msg_data,
2501         '_PVT'
2502       );
2503     WHEN OTHERS THEN
2504       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2505       (
2506         l_api_name,
2507         G_PKG_NAME,
2508         'OTHERS',
2509         x_msg_count,
2510         x_msg_data,
2511         '_PVT'
2512       );
2513   END validate_row;
2514   -------------------------------------------------------
2515   -- PL/SQL TBL validate_row for:OKL_TAX_TRX_DETAILS_V --
2516   -------------------------------------------------------
2517   PROCEDURE validate_row(
2518     p_api_version                  IN NUMBER,
2519     p_init_msg_list                IN VARCHAR2,
2520     x_return_status                OUT NOCOPY VARCHAR2,
2521     x_msg_count                    OUT NOCOPY NUMBER,
2525 
2522     x_msg_data                     OUT NOCOPY VARCHAR2,
2523     p_ttdv_tbl    				   IN ttdv_tbl_type,
2524     px_error_tbl                   IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
2526     l_api_version                  CONSTANT NUMBER := 1;
2527     l_api_name                     CONSTANT VARCHAR2(30) := 'V_error_tbl_validate_row';
2528     i                              NUMBER := 0;
2529   BEGIN
2530     OKL_API.init_msg_list(p_init_msg_list);
2531     -- Make sure PL/SQL table has records in it before passing
2532     IF (p_ttdv_tbl.COUNT > 0) THEN
2533       i := p_ttdv_tbl.FIRST;
2534       LOOP
2535         DECLARE
2536           l_error_rec         OKL_API.ERROR_REC_TYPE;
2537         BEGIN
2538           l_error_rec.api_name := l_api_name;
2539           l_error_rec.api_package := G_PKG_NAME;
2540           l_error_rec.idx := i;
2541           validate_row (
2542             p_api_version                  => p_api_version,
2543             p_init_msg_list                => OKL_API.G_FALSE,
2544             x_return_status                => l_error_rec.error_type,
2545             x_msg_count                    => l_error_rec.msg_count,
2546             x_msg_data                     => l_error_rec.msg_data,
2547             p_ttdv_rec    => p_ttdv_tbl(i));
2548           IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
2549             l_error_rec.sqlcode := SQLCODE;
2550             load_error_tbl(l_error_rec, px_error_tbl);
2551           ELSE
2552             x_msg_count := l_error_rec.msg_count;
2553             x_msg_data := l_error_rec.msg_data;
2554           END IF;
2555         EXCEPTION
2556           WHEN OKL_API.G_EXCEPTION_ERROR THEN
2557             l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
2558             l_error_rec.sqlcode := SQLCODE;
2559             load_error_tbl(l_error_rec, px_error_tbl);
2560           WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2561             l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
2562             l_error_rec.sqlcode := SQLCODE;
2563             load_error_tbl(l_error_rec, px_error_tbl);
2564           WHEN OTHERS THEN
2565             l_error_rec.error_type := 'OTHERS';
2566             l_error_rec.sqlcode := SQLCODE;
2567             load_error_tbl(l_error_rec, px_error_tbl);
2568         END;
2569         EXIT WHEN (i = p_ttdv_tbl.LAST);
2570         i := p_ttdv_tbl.NEXT(i);
2571       END LOOP;
2572     END IF;
2573     -- Loop through the error_tbl to find the error with the highest severity
2574     -- and return it.
2575     x_return_status := find_highest_exception(px_error_tbl);
2576     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2577   EXCEPTION
2578     WHEN OKL_API.G_EXCEPTION_ERROR THEN
2579       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2580       (
2581         l_api_name,
2582         G_PKG_NAME,
2583         'OKL_API.G_RET_STS_ERROR',
2584         x_msg_count,
2585         x_msg_data,
2586         '_PVT'
2587       );
2588     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2589       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2590       (
2591         l_api_name,
2592         G_PKG_NAME,
2593         'OKL_API.G_RET_STS_UNEXP_ERROR',
2594         x_msg_count,
2595         x_msg_data,
2596         '_PVT'
2597       );
2598     WHEN OTHERS THEN
2599       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2600       (
2601         l_api_name,
2602         G_PKG_NAME,
2603         'OTHERS',
2604         x_msg_count,
2605         x_msg_data,
2606         '_PVT'
2607       );
2608   END validate_row;
2609 
2610   -------------------------------------------------------
2611   -- PL/SQL TBL validate_row for:OKL_TAX_TRX_DETAILS_V --
2612   -------------------------------------------------------
2613   PROCEDURE validate_row(
2614     p_api_version                  IN NUMBER,
2615     p_init_msg_list                IN VARCHAR2,
2616     x_return_status                OUT NOCOPY VARCHAR2,
2617     x_msg_count                    OUT NOCOPY NUMBER,
2618     x_msg_data                     OUT NOCOPY VARCHAR2,
2619     p_ttdv_tbl    IN ttdv_tbl_type) IS
2620 
2621     l_api_version                  CONSTANT NUMBER := 1;
2622     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
2623     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2624     l_error_tbl                    OKL_API.ERROR_TBL_TYPE;
2625   BEGIN
2626     OKL_API.init_msg_list(p_init_msg_list);
2627     -- Make sure PL/SQL table has records in it before passing
2628     IF (p_ttdv_tbl.COUNT > 0) THEN
2629       validate_row (
2630         p_api_version                  => p_api_version,
2631         p_init_msg_list                => OKL_API.G_FALSE,
2632         x_return_status                => x_return_status,
2633         x_msg_count                    => x_msg_count,
2634         x_msg_data                     => x_msg_data,
2635         p_ttdv_tbl    => p_ttdv_tbl,
2636         px_error_tbl                   => l_error_tbl);
2637     END IF;
2638     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2639   EXCEPTION
2640     WHEN OKL_API.G_EXCEPTION_ERROR THEN
2641       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2642       (
2643         l_api_name,
2644         G_PKG_NAME,
2645         'OKL_API.G_RET_STS_ERROR',
2646         x_msg_count,
2647         x_msg_data,
2648         '_PVT'
2649       );
2650     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2651       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2652       (
2653         l_api_name,
2654         G_PKG_NAME,
2655         'OKL_API.G_RET_STS_UNEXP_ERROR',
2656         x_msg_count,
2657         x_msg_data,
2658         '_PVT'
2659       );
2660     WHEN OTHERS THEN
2661       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2662       (
2663         l_api_name,
2667         x_msg_data,
2664         G_PKG_NAME,
2665         'OTHERS',
2666         x_msg_count,
2668         '_PVT'
2669       );
2670   END validate_row;
2671 
2672   ---------------------------------------------------------------------------
2673   -- PROCEDURE insert_row
2674   ---------------------------------------------------------------------------
2675   ----------------------------------------
2676   -- insert_row for:OKL_TAX_TRX_DETAILS --
2677   ----------------------------------------
2678   PROCEDURE insert_row(
2679     p_init_msg_list                IN VARCHAR2,
2680     x_return_status                OUT NOCOPY VARCHAR2,
2681     x_msg_count                    OUT NOCOPY NUMBER,
2682     x_msg_data                     OUT NOCOPY VARCHAR2,
2683     p_ttd_rec                      IN ttd_rec_type,
2684     x_ttd_rec                      OUT NOCOPY ttd_rec_type) IS
2685 
2686     l_api_version                  CONSTANT NUMBER := 1;
2687     l_api_name                     CONSTANT VARCHAR2(30) := 'B_insert_row';
2688     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2689     l_ttd_rec                      ttd_rec_type := p_ttd_rec;
2690     l_def_ttd_rec                  ttd_rec_type;
2691     --------------------------------------------
2692     -- Set_Attributes for:OKL_TAX_TRX_DETAILS --
2693     --------------------------------------------
2694     FUNCTION Set_Attributes (
2695       p_ttd_rec IN ttd_rec_type,
2696       x_ttd_rec OUT NOCOPY ttd_rec_type
2697     ) RETURN VARCHAR2 IS
2698       l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2699     BEGIN
2700       x_ttd_rec := p_ttd_rec;
2701       RETURN(l_return_status);
2702     END Set_Attributes;
2703   BEGIN
2704     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
2705                                               p_init_msg_list,
2706                                               '_PVT',
2707                                               x_return_status);
2708     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2709       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2710     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2711       RAISE OKL_API.G_EXCEPTION_ERROR;
2712     END IF;
2713     --- Setting item atributes
2714     l_return_status := Set_Attributes(
2715       p_ttd_rec,                         -- IN
2716       l_ttd_rec);                        -- OUT
2717     --- If any errors happen abort API
2718     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2719       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2720     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2721       RAISE OKL_API.G_EXCEPTION_ERROR;
2722     END IF;
2723     INSERT INTO OKL_TAX_TRX_DETAILS(
2724       id,
2725       txs_id,
2726       tax_determine_date,
2727       tax_rate_id,
2728       tax_rate_code,
2729       taxable_amt,
2730       tax_exemption_id,
2731       tax_rate,
2732       tax_amt,
2733       billed_yn,
2734       tax_call_type_code,
2735       program_id,
2736       request_id,
2737       program_application_id,
2738       program_update_date,
2739       attribute_category,
2740       attribute1,
2741       attribute2,
2742       attribute3,
2743       attribute4,
2744       attribute5,
2745       attribute6,
2746       attribute7,
2747       attribute8,
2748       attribute9,
2749       attribute10,
2750       attribute11,
2751       attribute12,
2752       attribute13,
2753       attribute14,
2754       attribute15,
2755       created_by,
2756       creation_date,
2757       last_updated_by,
2758       last_update_date,
2759       last_update_login,
2760       object_version_number,
2761       -- Modified by dcshanmu for eBTax - modification starts
2762       tax_date,
2763       line_amt,
2764       internal_organization_id,
2765       application_id,
2766       entity_code,
2767       event_class_code,
2768       event_type_code,
2769       trx_id,
2770       trx_line_id,
2771       trx_level_type,
2772       trx_line_number,
2773       tax_line_number,
2774       tax_regime_id,
2775       tax_regime_code,
2776       tax_id,
2777       tax,
2778       tax_status_id,
2779       tax_status_code,
2780       tax_apportionment_line_number,
2781       legal_entity_id,
2782       trx_number,
2783       trx_date,
2784       tax_jurisdiction_id,
2785       tax_jurisdiction_code,
2786       tax_type_code,
2787       tax_currency_code,
2788       taxable_amt_tax_curr,
2789       trx_currency_code,
2790       minimum_accountable_unit,
2791       precision,
2792       currency_conversion_type,
2793       currency_conversion_rate,
2794       currency_conversion_date)
2795       -- Modified by dcshanmu for eBTax - modification end
2796     VALUES (
2797       l_ttd_rec.id,
2798       l_ttd_rec.txs_id,
2799       l_ttd_rec.tax_determine_date,
2800       l_ttd_rec.tax_rate_id,
2801       l_ttd_rec.tax_rate_code,
2802       l_ttd_rec.taxable_amt,
2803       l_ttd_rec.tax_exemption_id,
2804       l_ttd_rec.tax_rate,
2805       l_ttd_rec.tax_amt,
2806       l_ttd_rec.billed_yn,
2807       l_ttd_rec.tax_call_type_code,
2808       l_ttd_rec.program_id,
2809       l_ttd_rec.request_id,
2810       l_ttd_rec.program_application_id,
2811       l_ttd_rec.program_update_date,
2812       l_ttd_rec.attribute_category,
2813       l_ttd_rec.attribute1,
2814       l_ttd_rec.attribute2,
2815       l_ttd_rec.attribute3,
2816       l_ttd_rec.attribute4,
2817       l_ttd_rec.attribute5,
2818       l_ttd_rec.attribute6,
2819       l_ttd_rec.attribute7,
2820       l_ttd_rec.attribute8,
2821       l_ttd_rec.attribute9,
2822       l_ttd_rec.attribute10,
2826       l_ttd_rec.attribute14,
2823       l_ttd_rec.attribute11,
2824       l_ttd_rec.attribute12,
2825       l_ttd_rec.attribute13,
2827       l_ttd_rec.attribute15,
2828       l_ttd_rec.created_by,
2829       l_ttd_rec.creation_date,
2830       l_ttd_rec.last_updated_by,
2831       l_ttd_rec.last_update_date,
2832       l_ttd_rec.last_update_login,
2833       l_ttd_rec.object_version_number,
2834       -- Modified by dcshanmu for eBTax - modification starts
2835       l_ttd_rec.tax_date,
2836       l_ttd_rec.line_amt,
2837       l_ttd_rec.internal_organization_id,
2838       l_ttd_rec.application_id,
2839       l_ttd_rec.entity_code,
2840       l_ttd_rec.event_class_code,
2841       l_ttd_rec.event_type_code,
2842       l_ttd_rec.trx_id,
2843       l_ttd_rec.trx_line_id,
2844       l_ttd_rec.trx_level_type,
2845       l_ttd_rec.trx_line_number,
2846       l_ttd_rec.tax_line_number,
2847       l_ttd_rec.tax_regime_id,
2848       l_ttd_rec.tax_regime_code,
2849       l_ttd_rec.tax_id,
2850       l_ttd_rec.tax,
2851       l_ttd_rec.tax_status_id,
2852       l_ttd_rec.tax_status_code,
2853       l_ttd_rec.tax_apportionment_line_number,
2854       l_ttd_rec.legal_entity_id,
2855       l_ttd_rec.trx_number,
2856       l_ttd_rec.trx_date,
2857       l_ttd_rec.tax_jurisdiction_id,
2858       l_ttd_rec.tax_jurisdiction_code,
2859       l_ttd_rec.tax_type_code,
2860       l_ttd_rec.tax_currency_code,
2861       l_ttd_rec.taxable_amt_tax_curr,
2862       l_ttd_rec.trx_currency_code,
2863       l_ttd_rec.minimum_accountable_unit,
2864       l_ttd_rec.precision,
2865       l_ttd_rec.currency_conversion_type,
2866       l_ttd_rec.currency_conversion_rate,
2867       l_ttd_rec.currency_conversion_date);
2868       -- Modified by dcshanmu for eBTax - modification end
2869     -- Set OUT values
2870     x_ttd_rec := l_ttd_rec;
2871     x_return_status := l_return_status;
2872     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2873   EXCEPTION
2874     WHEN OKL_API.G_EXCEPTION_ERROR THEN
2875       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2876       (
2877         l_api_name,
2878         G_PKG_NAME,
2879         'OKL_API.G_RET_STS_ERROR',
2880         x_msg_count,
2881         x_msg_data,
2882         '_PVT'
2883       );
2884     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2885       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2886       (
2887         l_api_name,
2888         G_PKG_NAME,
2889         'OKL_API.G_RET_STS_UNEXP_ERROR',
2890         x_msg_count,
2891         x_msg_data,
2892         '_PVT'
2893       );
2894     WHEN OTHERS THEN
2895       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2896       (
2897         l_api_name,
2898         G_PKG_NAME,
2899         'OTHERS',
2900         x_msg_count,
2901         x_msg_data,
2902         '_PVT'
2903       );
2904   END insert_row;
2905   -------------------------------------------
2906   -- insert_row for :OKL_TAX_TRX_DETAILS_V --
2907   -------------------------------------------
2908   PROCEDURE insert_row(
2909     p_api_version                  IN NUMBER,
2910     p_init_msg_list                IN VARCHAR2,
2911     x_return_status                OUT NOCOPY VARCHAR2,
2912     x_msg_count                    OUT NOCOPY NUMBER,
2913     x_msg_data                     OUT NOCOPY VARCHAR2,
2914     p_ttdv_rec    				   IN ttdv_rec_type,
2915     x_ttdv_rec    				   OUT NOCOPY ttdv_rec_type) IS
2916 
2917     l_api_version                  CONSTANT NUMBER := 1;
2918     l_api_name                     CONSTANT VARCHAR2(30) := 'V_insert_row';
2919     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2920     l_ttdv_rec    ttdv_rec_type := p_ttdv_rec;
2921     LDefOklTaxTrxDetailsVRec       ttdv_rec_type;
2922     l_ttd_rec                      ttd_rec_type;
2923     lx_ttd_rec                     ttd_rec_type;
2924     -------------------------------
2925     -- FUNCTION fill_who_columns --
2926     -------------------------------
2927     FUNCTION fill_who_columns (
2928       p_ttdv_rec IN ttdv_rec_type
2929     ) RETURN ttdv_rec_type IS
2930       l_ttdv_rec ttdv_rec_type := p_ttdv_rec;
2931     BEGIN
2932       l_ttdv_rec.CREATION_DATE := SYSDATE;
2933       l_ttdv_rec.CREATED_BY := FND_GLOBAL.USER_ID;
2934       l_ttdv_rec.LAST_UPDATE_DATE := l_ttdv_rec.CREATION_DATE;
2935       l_ttdv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
2936       l_ttdv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
2937       RETURN(l_ttdv_rec);
2938     END fill_who_columns;
2939     ----------------------------------------------
2940     -- Set_Attributes for:OKL_TAX_TRX_DETAILS_V --
2941     ----------------------------------------------
2942     FUNCTION Set_Attributes (
2943       p_ttdv_rec IN ttdv_rec_type,
2944       x_ttdv_rec OUT NOCOPY ttdv_rec_type
2945     ) RETURN VARCHAR2 IS
2946       l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2947     BEGIN
2948       x_ttdv_rec := p_ttdv_rec;
2949       x_ttdv_rec.OBJECT_VERSION_NUMBER := 1;
2950       RETURN(l_return_status);
2951     END Set_Attributes;
2952   BEGIN
2953     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
2954                                               G_PKG_NAME,
2955                                               p_init_msg_list,
2956                                               l_api_version,
2957                                               p_api_version,
2958                                               '_PVT',
2959                                               x_return_status);
2960     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2961       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2962     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2963       RAISE OKL_API.G_EXCEPTION_ERROR;
2964     END IF;
2965     l_ttdv_rec := null_out_defaults(p_ttdv_rec);
2969     l_return_Status := Set_Attributes(
2966     -- Set primary key value
2967     l_ttdv_rec.ID := get_seq_id;
2968     -- Setting item attributes
2970       l_ttdv_rec,       -- IN
2971       LDefOklTaxTrxDetailsVRec);         -- OUT
2972     --- If any errors happen abort API
2973     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2974       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2975     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2976       RAISE OKL_API.G_EXCEPTION_ERROR;
2977     END IF;
2978     LDefOklTaxTrxDetailsVRec := fill_who_columns(LDefOklTaxTrxDetailsVRec);
2979     --- Validate all non-missing attributes (Item Level Validation)
2980     l_return_status := Validate_Attributes(LDefOklTaxTrxDetailsVRec);
2981     --- If any errors happen abort API
2982     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2983       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2984     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2985       RAISE OKL_API.G_EXCEPTION_ERROR;
2986     END IF;
2987     /*
2988     l_return_status := Validate_Record(LDefOklTaxTrxDetailsVRec);
2989     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2990       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2991     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2992       RAISE OKL_API.G_EXCEPTION_ERROR;
2993     END IF;
2994     */
2995     -----------------------------------------
2996     -- Move VIEW record to "Child" records --
2997     -----------------------------------------
2998     migrate(LDefOklTaxTrxDetailsVRec, l_ttd_rec);
2999     -----------------------------------------------
3000     -- Call the INSERT_ROW for each child record --
3001     -----------------------------------------------
3002     insert_row(
3003       p_init_msg_list,
3004       l_return_status,
3005       x_msg_count,
3006       x_msg_data,
3007       l_ttd_rec,
3008       lx_ttd_rec
3009     );
3010     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3011       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3012     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3013       RAISE OKL_API.G_EXCEPTION_ERROR;
3014     END IF;
3015     migrate(lx_ttd_rec, LDefOklTaxTrxDetailsVRec);
3016     -- Set OUT values
3017     x_ttdv_rec := LDefOklTaxTrxDetailsVRec;
3018     x_return_status := l_return_status;
3019     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3020   EXCEPTION
3021     WHEN OKL_API.G_EXCEPTION_ERROR THEN
3022       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3023       (
3024         l_api_name,
3025         G_PKG_NAME,
3026         'OKL_API.G_RET_STS_ERROR',
3027         x_msg_count,
3028         x_msg_data,
3029         '_PVT'
3030       );
3031     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3032       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3033       (
3034         l_api_name,
3035         G_PKG_NAME,
3036         'OKL_API.G_RET_STS_UNEXP_ERROR',
3037         x_msg_count,
3038         x_msg_data,
3039         '_PVT'
3040       );
3041     WHEN OTHERS THEN
3042       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3043       (
3044         l_api_name,
3045         G_PKG_NAME,
3046         'OTHERS',
3047         x_msg_count,
3048         x_msg_data,
3049         '_PVT'
3050       );
3051   END insert_row;
3052   ---------------------------------------------------------
3053   -- PL/SQL TBL insert_row for:OKL_TAX_TRX_DETAILS_V_TBL --
3054   ---------------------------------------------------------
3055   PROCEDURE insert_row(
3056     p_api_version                  IN NUMBER,
3057     p_init_msg_list                IN VARCHAR2,
3058     x_return_status                OUT NOCOPY VARCHAR2,
3059     x_msg_count                    OUT NOCOPY NUMBER,
3060     x_msg_data                     OUT NOCOPY VARCHAR2,
3061     p_ttdv_tbl    				   IN ttdv_tbl_type,
3062     x_ttdv_tbl                     OUT NOCOPY ttdv_tbl_type,
3063     px_error_tbl                   IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
3064 
3065     l_api_version                  CONSTANT NUMBER := 1;
3066     l_api_name                     CONSTANT VARCHAR2(30) := 'V_error_tbl_insert_row';
3067     i                              NUMBER := 0;
3068   BEGIN
3069     OKL_API.init_msg_list(p_init_msg_list);
3070     -- Make sure PL/SQL table has records in it before passing
3071     IF (p_ttdv_tbl.COUNT > 0) THEN
3072       i := p_ttdv_tbl.FIRST;
3073       LOOP
3074         DECLARE
3075           l_error_rec         OKL_API.ERROR_REC_TYPE;
3076         BEGIN
3077           l_error_rec.api_name := l_api_name;
3078           l_error_rec.api_package := G_PKG_NAME;
3079           l_error_rec.idx := i;
3080           insert_row (
3081             p_api_version                  => p_api_version,
3082             p_init_msg_list                => OKL_API.G_FALSE,
3083             x_return_status                => l_error_rec.error_type,
3084             x_msg_count                    => l_error_rec.msg_count,
3085             x_msg_data                     => l_error_rec.msg_data,
3086             p_ttdv_rec    => p_ttdv_tbl(i),
3087             x_ttdv_rec    => x_ttdv_tbl(i));
3088           IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
3089             l_error_rec.sqlcode := SQLCODE;
3090             load_error_tbl(l_error_rec, px_error_tbl);
3091           ELSE
3092             x_msg_count := l_error_rec.msg_count;
3093             x_msg_data := l_error_rec.msg_data;
3094           END IF;
3095         EXCEPTION
3096           WHEN OKL_API.G_EXCEPTION_ERROR THEN
3097             l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
3098             l_error_rec.sqlcode := SQLCODE;
3099             load_error_tbl(l_error_rec, px_error_tbl);
3100           WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3101             l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
3105             l_error_rec.error_type := 'OTHERS';
3102             l_error_rec.sqlcode := SQLCODE;
3103             load_error_tbl(l_error_rec, px_error_tbl);
3104           WHEN OTHERS THEN
3106             l_error_rec.sqlcode := SQLCODE;
3107             load_error_tbl(l_error_rec, px_error_tbl);
3108         END;
3109         EXIT WHEN (i = p_ttdv_tbl.LAST);
3110         i := p_ttdv_tbl.NEXT(i);
3111       END LOOP;
3112     END IF;
3113     -- Loop through the error_tbl to find the error with the highest severity
3114     -- and return it.
3115     x_return_status := find_highest_exception(px_error_tbl);
3116     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3117   EXCEPTION
3118     WHEN OKL_API.G_EXCEPTION_ERROR THEN
3119       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3120       (
3121         l_api_name,
3122         G_PKG_NAME,
3123         'OKL_API.G_RET_STS_ERROR',
3124         x_msg_count,
3125         x_msg_data,
3126         '_PVT'
3127       );
3128     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3129       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3130       (
3131         l_api_name,
3132         G_PKG_NAME,
3133         'OKL_API.G_RET_STS_UNEXP_ERROR',
3134         x_msg_count,
3135         x_msg_data,
3136         '_PVT'
3137       );
3138     WHEN OTHERS THEN
3139       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3140       (
3141         l_api_name,
3142         G_PKG_NAME,
3143         'OTHERS',
3144         x_msg_count,
3145         x_msg_data,
3146         '_PVT'
3147       );
3148   END insert_row;
3149 
3150   ---------------------------------------------------------
3151   -- PL/SQL TBL insert_row for:OKL_TAX_TRX_DETAILS_V_TBL --
3152   ---------------------------------------------------------
3153   -- This procedure is the same as the one above except it does not have a "px_error_tbl" argument.
3154   -- This procedure was create for backward compatibility and simply is a wrapper for the one above.
3155   PROCEDURE insert_row(
3156     p_api_version                  IN NUMBER,
3157     p_init_msg_list                IN VARCHAR2,
3158     x_return_status                OUT NOCOPY VARCHAR2,
3159     x_msg_count                    OUT NOCOPY NUMBER,
3160     x_msg_data                     OUT NOCOPY VARCHAR2,
3161     p_ttdv_tbl    IN ttdv_tbl_type,
3162     x_ttdv_tbl    OUT NOCOPY ttdv_tbl_type) IS
3163 
3164     l_api_version                  CONSTANT NUMBER := 1;
3165     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
3166     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3167     l_error_tbl                    OKL_API.ERROR_TBL_TYPE;
3168   BEGIN
3169     OKL_API.init_msg_list(p_init_msg_list);
3170     -- Make sure PL/SQL table has records in it before passing
3171     IF (p_ttdv_tbl.COUNT > 0) THEN
3172       insert_row (
3173         p_api_version                  => p_api_version,
3174         p_init_msg_list                => OKL_API.G_FALSE,
3175         x_return_status                => x_return_status,
3176         x_msg_count                    => x_msg_count,
3177         x_msg_data                     => x_msg_data,
3178         p_ttdv_tbl    => p_ttdv_tbl,
3179         x_ttdv_tbl    => x_ttdv_tbl,
3180         px_error_tbl                   => l_error_tbl);
3181     END IF;
3182     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3183   EXCEPTION
3184     WHEN OKL_API.G_EXCEPTION_ERROR THEN
3185       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3186       (
3187         l_api_name,
3188         G_PKG_NAME,
3189         'OKL_API.G_RET_STS_ERROR',
3190         x_msg_count,
3191         x_msg_data,
3192         '_PVT'
3193       );
3194     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3195       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3196       (
3197         l_api_name,
3198         G_PKG_NAME,
3199         'OKL_API.G_RET_STS_UNEXP_ERROR',
3200         x_msg_count,
3201         x_msg_data,
3202         '_PVT'
3203       );
3204     WHEN OTHERS THEN
3205       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3206       (
3207         l_api_name,
3208         G_PKG_NAME,
3209         'OTHERS',
3210         x_msg_count,
3211         x_msg_data,
3212         '_PVT'
3213       );
3214   END insert_row;
3215 
3216   ---------------------------------------------------------------------------
3217   -- PROCEDURE lock_row
3218   ---------------------------------------------------------------------------
3219   --------------------------------------
3220   -- lock_row for:OKL_TAX_TRX_DETAILS --
3221   --------------------------------------
3222   PROCEDURE lock_row(
3223     p_init_msg_list                IN VARCHAR2,
3224     x_return_status                OUT NOCOPY VARCHAR2,
3225     x_msg_count                    OUT NOCOPY NUMBER,
3226     x_msg_data                     OUT NOCOPY VARCHAR2,
3227     p_ttd_rec                      IN ttd_rec_type) IS
3228 
3229     E_Resource_Busy                EXCEPTION;
3230     PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
3231     CURSOR lock_csr (p_ttd_rec IN ttd_rec_type) IS
3232     SELECT OBJECT_VERSION_NUMBER
3233       FROM OKL_TAX_TRX_DETAILS
3234      WHERE ID = p_ttd_rec.id
3235        AND OBJECT_VERSION_NUMBER = p_ttd_rec.object_version_number
3236     FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
3237 
3238     CURSOR lchk_csr (p_ttd_rec IN ttd_rec_type) IS
3239     SELECT OBJECT_VERSION_NUMBER
3240       FROM OKL_TAX_TRX_DETAILS
3241      WHERE ID = p_ttd_rec.id;
3242     l_api_version                  CONSTANT NUMBER := 1;
3243     l_api_name                     CONSTANT VARCHAR2(30) := 'B_lock_row';
3244     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3245     l_object_version_number        OKL_TAX_TRX_DETAILS.OBJECT_VERSION_NUMBER%TYPE;
3249   BEGIN
3246     lc_object_version_number       OKL_TAX_TRX_DETAILS.OBJECT_VERSION_NUMBER%TYPE;
3247     l_row_notfound                 BOOLEAN := FALSE;
3248     lc_row_notfound                BOOLEAN := FALSE;
3250     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
3251                                               p_init_msg_list,
3252                                               '_PVT',
3253                                               x_return_status);
3254     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3255       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3256     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3257       RAISE OKL_API.G_EXCEPTION_ERROR;
3258     END IF;
3259     BEGIN
3260       OPEN lock_csr(p_ttd_rec);
3261       FETCH lock_csr INTO l_object_version_number;
3262       l_row_notfound := lock_csr%NOTFOUND;
3263       CLOSE lock_csr;
3264     EXCEPTION
3265       WHEN E_Resource_Busy THEN
3266         IF (lock_csr%ISOPEN) THEN
3267           CLOSE lock_csr;
3268         END IF;
3269         OKL_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
3270         RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
3271     END;
3272 
3273     IF ( l_row_notfound ) THEN
3274       OPEN lchk_csr(p_ttd_rec);
3275       FETCH lchk_csr INTO lc_object_version_number;
3276       lc_row_notfound := lchk_csr%NOTFOUND;
3277       CLOSE lchk_csr;
3278     END IF;
3279     IF (lc_row_notfound) THEN
3280       OKL_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
3281       RAISE OKL_API.G_EXCEPTION_ERROR;
3282     ELSIF lc_object_version_number > p_ttd_rec.object_version_number THEN
3283       OKL_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
3284       RAISE OKL_API.G_EXCEPTION_ERROR;
3285     ELSIF lc_object_version_number <> p_ttd_rec.object_version_number THEN
3286       OKL_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
3287       RAISE OKL_API.G_EXCEPTION_ERROR;
3288     ELSIF lc_object_version_number = -1 THEN
3289       OKL_API.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
3290       RAISE OKL_API.G_EXCEPTION_ERROR;
3291     END IF;
3292     x_return_status := l_return_status;
3293     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3294   EXCEPTION
3295     WHEN OKL_API.G_EXCEPTION_ERROR THEN
3296       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3297       (
3298         l_api_name,
3299         G_PKG_NAME,
3300         'OKL_API.G_RET_STS_ERROR',
3301         x_msg_count,
3302         x_msg_data,
3303         '_PVT'
3304       );
3305     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3306       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3307       (
3308         l_api_name,
3309         G_PKG_NAME,
3310         'OKL_API.G_RET_STS_UNEXP_ERROR',
3311         x_msg_count,
3312         x_msg_data,
3313         '_PVT'
3314       );
3315     WHEN OTHERS THEN
3316       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3317       (
3318         l_api_name,
3319         G_PKG_NAME,
3320         'OTHERS',
3321         x_msg_count,
3322         x_msg_data,
3323         '_PVT'
3324       );
3325   END lock_row;
3326   -----------------------------------------
3327   -- lock_row for: OKL_TAX_TRX_DETAILS_V --
3328   -----------------------------------------
3329   PROCEDURE lock_row(
3330     p_api_version                  IN NUMBER,
3331     p_init_msg_list                IN VARCHAR2,
3332     x_return_status                OUT NOCOPY VARCHAR2,
3333     x_msg_count                    OUT NOCOPY NUMBER,
3334     x_msg_data                     OUT NOCOPY VARCHAR2,
3335     p_ttdv_rec    IN ttdv_rec_type) IS
3336 
3337     l_api_version                  CONSTANT NUMBER := 1;
3338     l_api_name                     CONSTANT VARCHAR2(30) := 'V_lock_row';
3339     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3340     l_ttd_rec                      ttd_rec_type;
3341   BEGIN
3342     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
3343                                               G_PKG_NAME,
3344                                               p_init_msg_list,
3345                                               l_api_version,
3346                                               p_api_version,
3347                                               '_PVT',
3348                                               x_return_status);
3349     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3350       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3351     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3352       RAISE OKL_API.G_EXCEPTION_ERROR;
3353     END IF;
3354     -----------------------------------------
3355     -- Move VIEW record to "Child" records --
3356     -----------------------------------------
3357     migrate(p_ttdv_rec, l_ttd_rec);
3358     ---------------------------------------------
3359     -- Call the LOCK_ROW for each child record --
3360     ---------------------------------------------
3361     lock_row(
3362       p_init_msg_list,
3363       l_return_status,
3364       x_msg_count,
3365       x_msg_data,
3366       l_ttd_rec
3367     );
3368     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3369       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3370     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3371       RAISE OKL_API.G_EXCEPTION_ERROR;
3372     END IF;
3373     x_return_status := l_return_status;
3374     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3375   EXCEPTION
3376     WHEN OKL_API.G_EXCEPTION_ERROR THEN
3377       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3378       (
3379         l_api_name,
3380         G_PKG_NAME,
3381         'OKL_API.G_RET_STS_ERROR',
3382         x_msg_count,
3383         x_msg_data,
3384         '_PVT'
3385       );
3386     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3390         G_PKG_NAME,
3387       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3388       (
3389         l_api_name,
3391         'OKL_API.G_RET_STS_UNEXP_ERROR',
3392         x_msg_count,
3393         x_msg_data,
3394         '_PVT'
3395       );
3396     WHEN OTHERS THEN
3397       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3398       (
3399         l_api_name,
3400         G_PKG_NAME,
3401         'OTHERS',
3402         x_msg_count,
3403         x_msg_data,
3404         '_PVT'
3405       );
3406   END lock_row;
3407   -------------------------------------------------------
3408   -- PL/SQL TBL lock_row for:OKL_TAX_TRX_DETAILS_V_TBL --
3409   -------------------------------------------------------
3410   PROCEDURE lock_row(
3411     p_api_version                  IN NUMBER,
3412     p_init_msg_list                IN VARCHAR2,
3413     x_return_status                OUT NOCOPY VARCHAR2,
3414     x_msg_count                    OUT NOCOPY NUMBER,
3415     x_msg_data                     OUT NOCOPY VARCHAR2,
3416     p_ttdv_tbl    IN ttdv_tbl_type,
3417     px_error_tbl                   IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
3418 
3419     l_api_version                  CONSTANT NUMBER := 1;
3420     l_api_name                     CONSTANT VARCHAR2(30) := 'V_error_tbl_lock_row';
3421     i                              NUMBER := 0;
3422   BEGIN
3423     OKL_API.init_msg_list(p_init_msg_list);
3424     -- Make sure PL/SQL table has recrods in it before passing
3425     IF (p_ttdv_tbl.COUNT > 0) THEN
3426       i := p_ttdv_tbl.FIRST;
3427       LOOP
3428         DECLARE
3429           l_error_rec         OKL_API.ERROR_REC_TYPE;
3430         BEGIN
3431           l_error_rec.api_name := l_api_name;
3432           l_error_rec.api_package := G_PKG_NAME;
3433           l_error_rec.idx := i;
3434           lock_row(
3435             p_api_version                  => p_api_version,
3436             p_init_msg_list                => OKL_API.G_FALSE,
3437             x_return_status                => l_error_rec.error_type,
3438             x_msg_count                    => l_error_rec.msg_count,
3439             x_msg_data                     => l_error_rec.msg_data,
3440             p_ttdv_rec    => p_ttdv_tbl(i));
3441           IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
3442             l_error_rec.sqlcode := SQLCODE;
3443             load_error_tbl(l_error_rec, px_error_tbl);
3444           ELSE
3445             x_msg_count := l_error_rec.msg_count;
3446             x_msg_data := l_error_rec.msg_data;
3447           END IF;
3448         EXCEPTION
3449           WHEN OKL_API.G_EXCEPTION_ERROR THEN
3450             l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
3451             l_error_rec.sqlcode := SQLCODE;
3452             load_error_tbl(l_error_rec, px_error_tbl);
3453           WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3454             l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
3455             l_error_rec.sqlcode := SQLCODE;
3456             load_error_tbl(l_error_rec, px_error_tbl);
3457           WHEN OTHERS THEN
3458             l_error_rec.error_type := 'OTHERS';
3459             l_error_rec.sqlcode := SQLCODE;
3460             load_error_tbl(l_error_rec, px_error_tbl);
3461         END;
3462         EXIT WHEN (i = p_ttdv_tbl.LAST);
3463         i := p_ttdv_tbl.NEXT(i);
3464       END LOOP;
3465     END IF;
3466     -- Loop through the error_tbl to find the error with the highest severity
3467     -- and return it.
3468     x_return_status := find_highest_exception(px_error_tbl);
3469     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3470   EXCEPTION
3471     WHEN OKL_API.G_EXCEPTION_ERROR THEN
3472       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3473       (
3474         l_api_name,
3475         G_PKG_NAME,
3476         'OKL_API.G_RET_STS_ERROR',
3477         x_msg_count,
3478         x_msg_data,
3479         '_PVT'
3480       );
3481     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3482       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3483       (
3484         l_api_name,
3485         G_PKG_NAME,
3486         'OKL_API.G_RET_STS_UNEXP_ERROR',
3487         x_msg_count,
3488         x_msg_data,
3489         '_PVT'
3490       );
3491     WHEN OTHERS THEN
3492       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3493       (
3494         l_api_name,
3495         G_PKG_NAME,
3496         'OTHERS',
3497         x_msg_count,
3498         x_msg_data,
3499         '_PVT'
3500       );
3501   END lock_row;
3502   -------------------------------------------------------
3503   -- PL/SQL TBL lock_row for:OKL_TAX_TRX_DETAILS_V_TBL --
3504   -------------------------------------------------------
3505   PROCEDURE lock_row(
3506     p_api_version                  IN NUMBER,
3507     p_init_msg_list                IN VARCHAR2,
3508     x_return_status                OUT NOCOPY VARCHAR2,
3509     x_msg_count                    OUT NOCOPY NUMBER,
3510     x_msg_data                     OUT NOCOPY VARCHAR2,
3511     p_ttdv_tbl    IN ttdv_tbl_type) IS
3512 
3513     l_api_version                  CONSTANT NUMBER := 1;
3514     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
3515     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3516     l_error_tbl                    OKL_API.ERROR_TBL_TYPE;
3517   BEGIN
3518     OKL_API.init_msg_list(p_init_msg_list);
3519     -- Make sure PL/SQL table has recrods in it before passing
3520     IF (p_ttdv_tbl.COUNT > 0) THEN
3521       lock_row(
3522         p_api_version                  => p_api_version,
3523         p_init_msg_list                => OKL_API.G_FALSE,
3524         x_return_status                => x_return_status,
3525         x_msg_count                    => x_msg_count,
3526         x_msg_data                     => x_msg_data,
3530     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3527         p_ttdv_tbl    => p_ttdv_tbl,
3528         px_error_tbl                   => l_error_tbl);
3529     END IF;
3531   EXCEPTION
3532     WHEN OKL_API.G_EXCEPTION_ERROR THEN
3533       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3534       (
3535         l_api_name,
3536         G_PKG_NAME,
3537         'OKL_API.G_RET_STS_ERROR',
3538         x_msg_count,
3539         x_msg_data,
3540         '_PVT'
3541       );
3542     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3543       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3544       (
3545         l_api_name,
3546         G_PKG_NAME,
3547         'OKL_API.G_RET_STS_UNEXP_ERROR',
3548         x_msg_count,
3549         x_msg_data,
3550         '_PVT'
3551       );
3552     WHEN OTHERS THEN
3553       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3554       (
3555         l_api_name,
3556         G_PKG_NAME,
3557         'OTHERS',
3558         x_msg_count,
3559         x_msg_data,
3560         '_PVT'
3561       );
3562   END lock_row;
3563   ---------------------------------------------------------------------------
3564   -- PROCEDURE update_row
3565   ---------------------------------------------------------------------------
3566   ----------------------------------------
3567   -- update_row for:OKL_TAX_TRX_DETAILS --
3568   ----------------------------------------
3569   PROCEDURE update_row(
3570     p_init_msg_list                IN VARCHAR2,
3571     x_return_status                OUT NOCOPY VARCHAR2,
3572     x_msg_count                    OUT NOCOPY NUMBER,
3573     x_msg_data                     OUT NOCOPY VARCHAR2,
3574     p_ttd_rec                      IN ttd_rec_type,
3575     x_ttd_rec                      OUT NOCOPY ttd_rec_type) IS
3576 
3577     l_api_version                  CONSTANT NUMBER := 1;
3578     l_api_name                     CONSTANT VARCHAR2(30) := 'B_update_row';
3579     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3580     l_ttd_rec                      ttd_rec_type := p_ttd_rec;
3581     l_def_ttd_rec                  ttd_rec_type;
3582     l_row_notfound                 BOOLEAN := TRUE;
3583     ----------------------------------
3584     -- FUNCTION populate_new_record --
3585     ----------------------------------
3586     FUNCTION populate_new_record (
3587       p_ttd_rec IN ttd_rec_type,
3588       x_ttd_rec OUT NOCOPY ttd_rec_type
3589     ) RETURN VARCHAR2 IS
3590       l_ttd_rec                      ttd_rec_type;
3591       l_row_notfound                 BOOLEAN := TRUE;
3592       l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3593     BEGIN
3594       x_ttd_rec := p_ttd_rec;
3595       -- Get current database values
3596       l_ttd_rec := get_rec(p_ttd_rec, l_return_status);
3597       IF (l_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
3598         IF (x_ttd_rec.id = OKL_API.G_MISS_NUM)
3599         THEN
3600           x_ttd_rec.id := l_ttd_rec.id;
3601         END IF;
3602         IF (x_ttd_rec.txs_id = OKL_API.G_MISS_NUM)
3603         THEN
3604           x_ttd_rec.txs_id := l_ttd_rec.txs_id;
3605         END IF;
3606         IF (x_ttd_rec.tax_determine_date = OKL_API.G_MISS_DATE)
3607         THEN
3608           x_ttd_rec.tax_determine_date := l_ttd_rec.tax_determine_date;
3609         END IF;
3610         IF (x_ttd_rec.tax_rate_id = OKL_API.G_MISS_NUM)
3611         THEN
3612           x_ttd_rec.tax_rate_id := l_ttd_rec.tax_rate_id;
3613         END IF;
3614         IF (x_ttd_rec.tax_rate_code = OKL_API.G_MISS_CHAR)
3615         THEN
3616           x_ttd_rec.tax_rate_code := l_ttd_rec.tax_rate_code;
3617         END IF;
3618         IF (x_ttd_rec.taxable_amt = OKL_API.G_MISS_NUM)
3619         THEN
3620           x_ttd_rec.taxable_amt := l_ttd_rec.taxable_amt;
3621         END IF;
3622         IF (x_ttd_rec.tax_exemption_id = OKL_API.G_MISS_NUM)
3623         THEN
3624           x_ttd_rec.tax_exemption_id := l_ttd_rec.tax_exemption_id;
3625         END IF;
3626         IF (x_ttd_rec.tax_rate = OKL_API.G_MISS_NUM)
3627         THEN
3628           x_ttd_rec.tax_rate := l_ttd_rec.tax_rate;
3629         END IF;
3630         IF (x_ttd_rec.tax_amt = OKL_API.G_MISS_NUM)
3631         THEN
3632           x_ttd_rec.tax_amt := l_ttd_rec.tax_amt;
3633         END IF;
3634         IF (x_ttd_rec.billed_yn = OKL_API.G_MISS_CHAR)
3635         THEN
3636           x_ttd_rec.billed_yn := l_ttd_rec.billed_yn;
3637         END IF;
3638         IF (x_ttd_rec.tax_call_type_code = OKL_API.G_MISS_CHAR)
3639         THEN
3640           x_ttd_rec.tax_call_type_code := l_ttd_rec.tax_call_type_code;
3641         END IF;
3642         IF (x_ttd_rec.program_id = OKL_API.G_MISS_NUM)
3643         THEN
3644           x_ttd_rec.program_id := l_ttd_rec.program_id;
3645         END IF;
3646         IF (x_ttd_rec.request_id = OKL_API.G_MISS_NUM)
3647         THEN
3648           x_ttd_rec.request_id := l_ttd_rec.request_id;
3649         END IF;
3650         IF (x_ttd_rec.program_application_id = OKL_API.G_MISS_NUM)
3651         THEN
3652           x_ttd_rec.program_application_id := l_ttd_rec.program_application_id;
3653         END IF;
3654         IF (x_ttd_rec.program_update_date = OKL_API.G_MISS_DATE)
3655         THEN
3656           x_ttd_rec.program_update_date := l_ttd_rec.program_update_date;
3657         END IF;
3658         IF (x_ttd_rec.attribute_category = OKL_API.G_MISS_CHAR)
3659         THEN
3660           x_ttd_rec.attribute_category := l_ttd_rec.attribute_category;
3661         END IF;
3662         IF (x_ttd_rec.attribute1 = OKL_API.G_MISS_CHAR)
3663         THEN
3664           x_ttd_rec.attribute1 := l_ttd_rec.attribute1;
3665         END IF;
3666         IF (x_ttd_rec.attribute2 = OKL_API.G_MISS_CHAR)
3667         THEN
3671         THEN
3668           x_ttd_rec.attribute2 := l_ttd_rec.attribute2;
3669         END IF;
3670         IF (x_ttd_rec.attribute3 = OKL_API.G_MISS_CHAR)
3672           x_ttd_rec.attribute3 := l_ttd_rec.attribute3;
3673         END IF;
3674         IF (x_ttd_rec.attribute4 = OKL_API.G_MISS_CHAR)
3675         THEN
3676           x_ttd_rec.attribute4 := l_ttd_rec.attribute4;
3677         END IF;
3678         IF (x_ttd_rec.attribute5 = OKL_API.G_MISS_CHAR)
3679         THEN
3680           x_ttd_rec.attribute5 := l_ttd_rec.attribute5;
3681         END IF;
3682         IF (x_ttd_rec.attribute6 = OKL_API.G_MISS_CHAR)
3683         THEN
3684           x_ttd_rec.attribute6 := l_ttd_rec.attribute6;
3685         END IF;
3686         IF (x_ttd_rec.attribute7 = OKL_API.G_MISS_CHAR)
3687         THEN
3688           x_ttd_rec.attribute7 := l_ttd_rec.attribute7;
3689         END IF;
3690         IF (x_ttd_rec.attribute8 = OKL_API.G_MISS_CHAR)
3691         THEN
3692           x_ttd_rec.attribute8 := l_ttd_rec.attribute8;
3693         END IF;
3694         IF (x_ttd_rec.attribute9 = OKL_API.G_MISS_CHAR)
3695         THEN
3696           x_ttd_rec.attribute9 := l_ttd_rec.attribute9;
3697         END IF;
3698         IF (x_ttd_rec.attribute10 = OKL_API.G_MISS_CHAR)
3699         THEN
3700           x_ttd_rec.attribute10 := l_ttd_rec.attribute10;
3701         END IF;
3702         IF (x_ttd_rec.attribute11 = OKL_API.G_MISS_CHAR)
3703         THEN
3704           x_ttd_rec.attribute11 := l_ttd_rec.attribute11;
3705         END IF;
3706         IF (x_ttd_rec.attribute12 = OKL_API.G_MISS_CHAR)
3707         THEN
3708           x_ttd_rec.attribute12 := l_ttd_rec.attribute12;
3709         END IF;
3710         IF (x_ttd_rec.attribute13 = OKL_API.G_MISS_CHAR)
3711         THEN
3712           x_ttd_rec.attribute13 := l_ttd_rec.attribute13;
3713         END IF;
3714         IF (x_ttd_rec.attribute14 = OKL_API.G_MISS_CHAR)
3715         THEN
3716           x_ttd_rec.attribute14 := l_ttd_rec.attribute14;
3717         END IF;
3718         IF (x_ttd_rec.attribute15 = OKL_API.G_MISS_CHAR)
3719         THEN
3720           x_ttd_rec.attribute15 := l_ttd_rec.attribute15;
3721         END IF;
3722         IF (x_ttd_rec.created_by = OKL_API.G_MISS_NUM)
3723         THEN
3724           x_ttd_rec.created_by := l_ttd_rec.created_by;
3725         END IF;
3726         IF (x_ttd_rec.creation_date = OKL_API.G_MISS_DATE)
3727         THEN
3728           x_ttd_rec.creation_date := l_ttd_rec.creation_date;
3729         END IF;
3730         IF (x_ttd_rec.last_updated_by = OKL_API.G_MISS_NUM)
3731         THEN
3732           x_ttd_rec.last_updated_by := l_ttd_rec.last_updated_by;
3733         END IF;
3734         IF (x_ttd_rec.last_update_date = OKL_API.G_MISS_DATE)
3735         THEN
3736           x_ttd_rec.last_update_date := l_ttd_rec.last_update_date;
3737         END IF;
3738         IF (x_ttd_rec.last_update_login = OKL_API.G_MISS_NUM)
3739         THEN
3740           x_ttd_rec.last_update_login := l_ttd_rec.last_update_login;
3741         END IF;
3742         IF (x_ttd_rec.object_version_number = OKL_API.G_MISS_NUM)
3743         THEN
3744           x_ttd_rec.object_version_number := l_ttd_rec.object_version_number;
3745         END IF;
3746 
3747 	-- Modified by dcshanmu for eBTax - modification starts
3748 	-- migrating values for the newly added columns in table
3749 
3750 	IF (x_ttd_rec.tax_date = OKL_API.G_MISS_DATE)
3751         THEN
3752           x_ttd_rec.tax_date := l_ttd_rec.tax_date;
3753         END IF;
3754 	IF (x_ttd_rec.line_amt = OKL_API.G_MISS_NUM)
3755         THEN
3756           x_ttd_rec.line_amt := l_ttd_rec.line_amt;
3757         END IF;
3758 	IF (x_ttd_rec.internal_organization_id = OKL_API.G_MISS_NUM)
3759         THEN
3760           x_ttd_rec.internal_organization_id := l_ttd_rec.internal_organization_id;
3761         END IF;
3762 	IF (x_ttd_rec.application_id = OKL_API.G_MISS_NUM)
3763         THEN
3764           x_ttd_rec.application_id := l_ttd_rec.application_id;
3765         END IF;
3766 	IF (x_ttd_rec.entity_code = OKL_API.G_MISS_CHAR)
3767         THEN
3768           x_ttd_rec.entity_code := l_ttd_rec.entity_code;
3769         END IF;
3770 	IF (x_ttd_rec.event_class_code = OKL_API.G_MISS_CHAR)
3771         THEN
3772           x_ttd_rec.event_class_code := l_ttd_rec.event_class_code;
3773         END IF;
3774 	IF (x_ttd_rec.event_type_code = OKL_API.G_MISS_CHAR)
3775         THEN
3776           x_ttd_rec.event_type_code := l_ttd_rec.event_type_code;
3777         END IF;
3778 	IF (x_ttd_rec.trx_id = OKL_API.G_MISS_NUM)
3779         THEN
3780           x_ttd_rec.trx_id := l_ttd_rec.trx_id;
3781         END IF;
3782 	IF (x_ttd_rec.trx_line_id = OKL_API.G_MISS_NUM)
3783         THEN
3784           x_ttd_rec.trx_line_id := l_ttd_rec.trx_line_id;
3785         END IF;
3786 	IF (x_ttd_rec.trx_level_type = OKL_API.G_MISS_CHAR)
3787         THEN
3788           x_ttd_rec.trx_level_type := l_ttd_rec.trx_level_type;
3789         END IF;
3790 	IF (x_ttd_rec.trx_line_number = OKL_API.G_MISS_NUM)
3791         THEN
3792           x_ttd_rec.trx_line_number := l_ttd_rec.trx_line_number;
3793         END IF;
3794 	IF (x_ttd_rec.tax_line_number = OKL_API.G_MISS_NUM)
3795         THEN
3796           x_ttd_rec.tax_line_number := l_ttd_rec.tax_line_number;
3797         END IF;
3798 	IF (x_ttd_rec.tax_regime_id = OKL_API.G_MISS_NUM)
3799         THEN
3800           x_ttd_rec.tax_regime_id := l_ttd_rec.tax_regime_id;
3801         END IF;
3802 	IF (x_ttd_rec.tax_regime_code = OKL_API.G_MISS_CHAR)
3803         THEN
3804           x_ttd_rec.tax_regime_code := l_ttd_rec.tax_regime_code;
3805         END IF;
3806 	IF (x_ttd_rec.tax_id = OKL_API.G_MISS_NUM)
3807         THEN
3808           x_ttd_rec.tax_id := l_ttd_rec.tax_id;
3809         END IF;
3810 	IF (x_ttd_rec.tax = OKL_API.G_MISS_CHAR)
3814 	IF (x_ttd_rec.tax_status_id = OKL_API.G_MISS_NUM)
3811         THEN
3812           x_ttd_rec.tax := l_ttd_rec.tax;
3813         END IF;
3815         THEN
3816           x_ttd_rec.tax_status_id := l_ttd_rec.tax_status_id;
3817         END IF;
3818 	IF (x_ttd_rec.tax_status_code = OKL_API.G_MISS_CHAR)
3819         THEN
3820           x_ttd_rec.tax_status_code := l_ttd_rec.tax_status_code;
3821         END IF;
3822 	IF (x_ttd_rec.tax_apportionment_line_number = OKL_API.G_MISS_NUM)
3823         THEN
3824           x_ttd_rec.tax_apportionment_line_number := l_ttd_rec.tax_apportionment_line_number;
3825         END IF;
3826 	IF (x_ttd_rec.legal_entity_id = OKL_API.G_MISS_NUM)
3827         THEN
3828           x_ttd_rec.legal_entity_id := l_ttd_rec.legal_entity_id;
3829         END IF;
3830 	IF (x_ttd_rec.trx_number = OKL_API.G_MISS_CHAR)
3831         THEN
3832           x_ttd_rec.trx_number := l_ttd_rec.trx_number;
3833         END IF;
3834 	IF (x_ttd_rec.trx_date = OKL_API.G_MISS_DATE)
3835         THEN
3836           x_ttd_rec.trx_date := l_ttd_rec.trx_date;
3837         END IF;
3838 	IF (x_ttd_rec.tax_jurisdiction_id = OKL_API.G_MISS_NUM)
3839         THEN
3840           x_ttd_rec.tax_jurisdiction_id := l_ttd_rec.tax_jurisdiction_id;
3841         END IF;
3842 	IF (x_ttd_rec.tax_jurisdiction_code = OKL_API.G_MISS_CHAR)
3843         THEN
3844           x_ttd_rec.tax_jurisdiction_code := l_ttd_rec.tax_jurisdiction_code;
3845         END IF;
3846 	IF (x_ttd_rec.tax_type_code = OKL_API.G_MISS_CHAR)
3847         THEN
3848           x_ttd_rec.tax_type_code := l_ttd_rec.tax_type_code;
3849         END IF;
3850 	IF (x_ttd_rec.tax_currency_code = OKL_API.G_MISS_CHAR)
3851         THEN
3852           x_ttd_rec.tax_currency_code := l_ttd_rec.tax_currency_code;
3853         END IF;
3854 	IF (x_ttd_rec.taxable_amt_tax_curr = OKL_API.G_MISS_NUM)
3855         THEN
3856           x_ttd_rec.taxable_amt_tax_curr := l_ttd_rec.taxable_amt_tax_curr;
3857         END IF;
3858 	IF (x_ttd_rec.trx_currency_code = OKL_API.G_MISS_CHAR)
3859         THEN
3860           x_ttd_rec.trx_currency_code := l_ttd_rec.trx_currency_code;
3861         END IF;
3862 	IF (x_ttd_rec.minimum_accountable_unit = OKL_API.G_MISS_NUM)
3863         THEN
3864           x_ttd_rec.minimum_accountable_unit := l_ttd_rec.minimum_accountable_unit;
3865         END IF;
3866 	IF (x_ttd_rec.precision = OKL_API.G_MISS_NUM)
3867         THEN
3868           x_ttd_rec.precision := l_ttd_rec.precision;
3869         END IF;
3870 	IF (x_ttd_rec.currency_conversion_type = OKL_API.G_MISS_CHAR)
3871         THEN
3872           x_ttd_rec.currency_conversion_type := l_ttd_rec.currency_conversion_type;
3873         END IF;
3874 	IF (x_ttd_rec.currency_conversion_rate = OKL_API.G_MISS_NUM)
3875         THEN
3876           x_ttd_rec.currency_conversion_rate := l_ttd_rec.currency_conversion_rate;
3877         END IF;
3878 	IF (x_ttd_rec.currency_conversion_date = OKL_API.G_MISS_DATE)
3879         THEN
3880           x_ttd_rec.currency_conversion_date := l_ttd_rec.currency_conversion_date;
3881         END IF;
3882 	-- Modified by dcshanmu for eBTax - modification end
3883 
3884       END IF;
3885       RETURN(l_return_status);
3886     END populate_new_record;
3887     --------------------------------------------
3888     -- Set_Attributes for:OKL_TAX_TRX_DETAILS --
3889     --------------------------------------------
3890     FUNCTION Set_Attributes (
3891       p_ttd_rec IN ttd_rec_type,
3892       x_ttd_rec OUT NOCOPY ttd_rec_type
3893     ) RETURN VARCHAR2 IS
3894       l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3895     BEGIN
3896       x_ttd_rec := p_ttd_rec;
3897       x_ttd_rec.OBJECT_VERSION_NUMBER := p_ttd_rec.OBJECT_VERSION_NUMBER + 1;
3898       RETURN(l_return_status);
3899     END Set_Attributes;
3900   BEGIN
3901     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
3902                                               p_init_msg_list,
3903                                               '_PVT',
3904                                               x_return_status);
3905     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3906       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3907     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3908       RAISE OKL_API.G_EXCEPTION_ERROR;
3909     END IF;
3910     --- Setting item attributes
3911     l_return_status := Set_Attributes(
3912       p_ttd_rec,                         -- IN
3913       l_ttd_rec);                        -- OUT
3914     --- If any errors happen abort API
3915     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3916       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3917     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3918       RAISE OKL_API.G_EXCEPTION_ERROR;
3919     END IF;
3920     l_return_status := populate_new_record(l_ttd_rec, l_def_ttd_rec);
3921     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3922       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3923     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3924       RAISE OKL_API.G_EXCEPTION_ERROR;
3925     END IF;
3926     UPDATE OKL_TAX_TRX_DETAILS
3927     SET TXS_ID = l_def_ttd_rec.txs_id,
3928         TAX_DETERMINE_DATE = l_def_ttd_rec.tax_determine_date,
3929         TAX_RATE_ID = l_def_ttd_rec.tax_rate_id,
3930         TAX_RATE_CODE = l_def_ttd_rec.tax_rate_code,
3931         TAXABLE_AMT = l_def_ttd_rec.taxable_amt,
3932         TAX_EXEMPTION_ID = l_def_ttd_rec.tax_exemption_id,
3933         TAX_RATE = l_def_ttd_rec.tax_rate,
3934         TAX_AMT = l_def_ttd_rec.tax_amt,
3935         BILLED_YN = l_def_ttd_rec.billed_yn,
3936         TAX_CALL_TYPE_CODE = l_def_ttd_rec.tax_call_type_code,
3937         PROGRAM_ID = l_def_ttd_rec.program_id,
3938         REQUEST_ID = l_def_ttd_rec.request_id,
3939         PROGRAM_APPLICATION_ID = l_def_ttd_rec.program_application_id,
3943         ATTRIBUTE2 = l_def_ttd_rec.attribute2,
3940         PROGRAM_UPDATE_DATE = l_def_ttd_rec.program_update_date,
3941         ATTRIBUTE_CATEGORY = l_def_ttd_rec.attribute_category,
3942         ATTRIBUTE1 = l_def_ttd_rec.attribute1,
3944         ATTRIBUTE3 = l_def_ttd_rec.attribute3,
3945         ATTRIBUTE4 = l_def_ttd_rec.attribute4,
3946         ATTRIBUTE5 = l_def_ttd_rec.attribute5,
3947         ATTRIBUTE6 = l_def_ttd_rec.attribute6,
3948         ATTRIBUTE7 = l_def_ttd_rec.attribute7,
3949         ATTRIBUTE8 = l_def_ttd_rec.attribute8,
3950         ATTRIBUTE9 = l_def_ttd_rec.attribute9,
3951         ATTRIBUTE10 = l_def_ttd_rec.attribute10,
3952         ATTRIBUTE11 = l_def_ttd_rec.attribute11,
3953         ATTRIBUTE12 = l_def_ttd_rec.attribute12,
3954         ATTRIBUTE13 = l_def_ttd_rec.attribute13,
3955         ATTRIBUTE14 = l_def_ttd_rec.attribute14,
3956         ATTRIBUTE15 = l_def_ttd_rec.attribute15,
3957         CREATED_BY = l_def_ttd_rec.created_by,
3958         CREATION_DATE = l_def_ttd_rec.creation_date,
3959         LAST_UPDATED_BY = l_def_ttd_rec.last_updated_by,
3960         LAST_UPDATE_DATE = l_def_ttd_rec.last_update_date,
3961         LAST_UPDATE_LOGIN = l_def_ttd_rec.last_update_login,
3962         OBJECT_VERSION_NUMBER = l_def_ttd_rec.object_version_number,
3963 	-- Modified by dcshanmu for eBTax - modification starts
3964         TAX_DATE = l_def_ttd_rec.tax_date,
3965         LINE_AMT = l_def_ttd_rec.line_amt,
3966         INTERNAL_ORGANIZATION_ID = l_def_ttd_rec.internal_organization_id,
3967         APPLICATION_ID = l_def_ttd_rec.application_id,
3968         ENTITY_CODE = l_def_ttd_rec.entity_code,
3969         EVENT_CLASS_CODE = l_def_ttd_rec.event_class_code,
3970         EVENT_TYPE_CODE = l_def_ttd_rec.event_type_code,
3971         TRX_ID = l_def_ttd_rec.trx_id,
3972         TRX_LINE_ID = l_def_ttd_rec.trx_line_id,
3973         TRX_LEVEL_TYPE = l_def_ttd_rec.trx_level_type,
3974         TRX_LINE_NUMBER = l_def_ttd_rec.trx_line_number,
3975         TAX_LINE_NUMBER = l_def_ttd_rec.tax_line_number,
3976         TAX_REGIME_ID = l_def_ttd_rec.tax_regime_id,
3977         TAX_REGIME_CODE = l_def_ttd_rec.tax_regime_code,
3978         TAX_ID = l_def_ttd_rec.tax_id,
3979         TAX = l_def_ttd_rec.tax,
3980         TAX_STATUS_ID = l_def_ttd_rec.tax_status_id,
3981         TAX_STATUS_CODE = l_def_ttd_rec.tax_status_code,
3982         TAX_APPORTIONMENT_LINE_NUMBER = l_def_ttd_rec.tax_apportionment_line_number,
3983         LEGAL_ENTITY_ID = l_def_ttd_rec.legal_entity_id,
3984         TRX_NUMBER = l_def_ttd_rec.trx_number,
3985         TRX_DATE = l_def_ttd_rec.trx_date,
3986         TAX_JURISDICTION_ID = l_def_ttd_rec.tax_jurisdiction_id,
3987         TAX_JURISDICTION_CODE = l_def_ttd_rec.tax_jurisdiction_code,
3988         TAX_TYPE_CODE = l_def_ttd_rec.tax_type_code,
3989         TAX_CURRENCY_CODE = l_def_ttd_rec.tax_currency_code,
3990         TAXABLE_AMT_TAX_CURR = l_def_ttd_rec.taxable_amt_tax_curr,
3991         TRX_CURRENCY_CODE = l_def_ttd_rec.trx_currency_code,
3992         MINIMUM_ACCOUNTABLE_UNIT = l_def_ttd_rec.minimum_accountable_unit,
3993         PRECISION = l_def_ttd_rec.precision,
3994         CURRENCY_CONVERSION_TYPE = l_def_ttd_rec.currency_conversion_type,
3995         CURRENCY_CONVERSION_RATE = l_def_ttd_rec.currency_conversion_rate,
3996         CURRENCY_CONVERSION_DATE = l_def_ttd_rec.currency_conversion_date
3997 	-- Modified by dcshanmu for eBTax - modification end
3998 
3999     WHERE ID = l_def_ttd_rec.id;
4000 
4001     x_ttd_rec := l_ttd_rec;
4002     x_return_status := l_return_status;
4003     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4004   EXCEPTION
4005     WHEN OKL_API.G_EXCEPTION_ERROR THEN
4006       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4007       (
4008         l_api_name,
4009         G_PKG_NAME,
4010         'OKL_API.G_RET_STS_ERROR',
4011         x_msg_count,
4012         x_msg_data,
4013         '_PVT'
4014       );
4015     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4016       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4017       (
4018         l_api_name,
4019         G_PKG_NAME,
4020         'OKL_API.G_RET_STS_UNEXP_ERROR',
4021         x_msg_count,
4022         x_msg_data,
4023         '_PVT'
4024       );
4025     WHEN OTHERS THEN
4026       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4027       (
4028         l_api_name,
4029         G_PKG_NAME,
4030         'OTHERS',
4031         x_msg_count,
4032         x_msg_data,
4033         '_PVT'
4034       );
4035   END update_row;
4036   ------------------------------------------
4037   -- update_row for:OKL_TAX_TRX_DETAILS_V --
4038   ------------------------------------------
4039   PROCEDURE update_row(
4040     p_api_version                  IN NUMBER,
4041     p_init_msg_list                IN VARCHAR2,
4042     x_return_status                OUT NOCOPY VARCHAR2,
4043     x_msg_count                    OUT NOCOPY NUMBER,
4044     x_msg_data                     OUT NOCOPY VARCHAR2,
4045     p_ttdv_rec    				   IN ttdv_rec_type,
4046     x_ttdv_rec    					OUT NOCOPY ttdv_rec_type) IS
4047 
4048     l_api_version                  CONSTANT NUMBER := 1;
4049     l_api_name                     CONSTANT VARCHAR2(30) := 'V_update_row';
4050     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4051     l_ttdv_rec    				   ttdv_rec_type := p_ttdv_rec;
4052     LDefOklTaxTrxDetailsVRec       ttdv_rec_type;
4053     l_db_ttdv_rec 				   ttdv_rec_type;
4054     l_ttd_rec                      ttd_rec_type;
4055     lx_ttd_rec                     ttd_rec_type;
4056     -------------------------------
4057     -- FUNCTION fill_who_columns --
4058     -------------------------------
4059     FUNCTION fill_who_columns (
4060       p_ttdv_rec IN ttdv_rec_type
4061     ) RETURN ttdv_rec_type IS
4062       l_ttdv_rec ttdv_rec_type := p_ttdv_rec;
4063     BEGIN
4064       l_ttdv_rec.LAST_UPDATE_DATE := SYSDATE;
4065       l_ttdv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
4069     ----------------------------------
4066       l_ttdv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
4067       RETURN(l_ttdv_rec);
4068     END fill_who_columns;
4070     -- FUNCTION populate_new_record --
4071     ----------------------------------
4072     FUNCTION populate_new_record (
4073       p_ttdv_rec IN ttdv_rec_type,
4074       x_ttdv_rec OUT NOCOPY ttdv_rec_type
4075     ) RETURN VARCHAR2 IS
4076       l_row_notfound                 BOOLEAN := TRUE;
4077       l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4078     BEGIN
4079       x_ttdv_rec := p_ttdv_rec;
4080       -- Get current database values
4081       -- NOTE: Never assign the OBJECT_VERSION_NUMBER.  Force the user to pass it
4082       --       so it may be verified through LOCK_ROW.
4083       l_db_ttdv_rec := get_rec(p_ttdv_rec, l_return_status);
4084       IF (l_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
4085         IF (x_ttdv_rec.id = OKL_API.G_MISS_NUM)
4086         THEN
4087           x_ttdv_rec.id := l_db_ttdv_rec.id;
4088         END IF;
4089         IF (x_ttdv_rec.txs_id = OKL_API.G_MISS_NUM)
4090         THEN
4091           x_ttdv_rec.txs_id := l_db_ttdv_rec.txs_id;
4092         END IF;
4093 
4094         --SECHAWLA : Added code to set Object Version No. because of the locking issue
4095         IF (x_ttdv_rec.object_version_number = OKL_API.G_MISS_NUM)
4096         THEN
4097           x_ttdv_rec.object_version_number := l_db_ttdv_rec.object_version_number;
4098         END IF;
4099 
4100 
4101         IF (x_ttdv_rec.tax_determine_date = OKL_API.G_MISS_DATE)
4102         THEN
4103           x_ttdv_rec.tax_determine_date := l_db_ttdv_rec.tax_determine_date;
4104         END IF;
4105         IF (x_ttdv_rec.tax_rate_id = OKL_API.G_MISS_NUM)
4106         THEN
4107           x_ttdv_rec.tax_rate_id := l_db_ttdv_rec.tax_rate_id;
4108         END IF;
4109         IF (x_ttdv_rec.tax_rate_code = OKL_API.G_MISS_CHAR)
4110         THEN
4111           x_ttdv_rec.tax_rate_code := l_db_ttdv_rec.tax_rate_code;
4112         END IF;
4113         IF (x_ttdv_rec.taxable_amt = OKL_API.G_MISS_NUM)
4114         THEN
4115           x_ttdv_rec.taxable_amt := l_db_ttdv_rec.taxable_amt;
4116         END IF;
4117         IF (x_ttdv_rec.tax_exemption_id = OKL_API.G_MISS_NUM)
4118         THEN
4119           x_ttdv_rec.tax_exemption_id := l_db_ttdv_rec.tax_exemption_id;
4120         END IF;
4121         IF (x_ttdv_rec.tax_rate = OKL_API.G_MISS_NUM)
4122         THEN
4123           x_ttdv_rec.tax_rate := l_db_ttdv_rec.tax_rate;
4124         END IF;
4125         IF (x_ttdv_rec.tax_amt = OKL_API.G_MISS_NUM)
4126         THEN
4127           x_ttdv_rec.tax_amt := l_db_ttdv_rec.tax_amt;
4128         END IF;
4129         IF (x_ttdv_rec.billed_yn = OKL_API.G_MISS_CHAR)
4130         THEN
4131           x_ttdv_rec.billed_yn := l_db_ttdv_rec.billed_yn;
4132         END IF;
4133         IF (x_ttdv_rec.tax_call_type_code = OKL_API.G_MISS_CHAR)
4134         THEN
4135           x_ttdv_rec.tax_call_type_code := l_db_ttdv_rec.tax_call_type_code;
4136         END IF;
4137         IF (x_ttdv_rec.program_id = OKL_API.G_MISS_NUM)
4138         THEN
4139           x_ttdv_rec.program_id := l_db_ttdv_rec.program_id;
4140         END IF;
4141         IF (x_ttdv_rec.request_id = OKL_API.G_MISS_NUM)
4142         THEN
4143           x_ttdv_rec.request_id := l_db_ttdv_rec.request_id;
4144         END IF;
4145         IF (x_ttdv_rec.program_application_id = OKL_API.G_MISS_NUM)
4146         THEN
4147           x_ttdv_rec.program_application_id := l_db_ttdv_rec.program_application_id;
4148         END IF;
4149         IF (x_ttdv_rec.program_update_date = OKL_API.G_MISS_DATE)
4150         THEN
4151           x_ttdv_rec.program_update_date := l_db_ttdv_rec.program_update_date;
4152         END IF;
4153         IF (x_ttdv_rec.attribute_category = OKL_API.G_MISS_CHAR)
4154         THEN
4155           x_ttdv_rec.attribute_category := l_db_ttdv_rec.attribute_category;
4156         END IF;
4157         IF (x_ttdv_rec.attribute1 = OKL_API.G_MISS_CHAR)
4158         THEN
4159           x_ttdv_rec.attribute1 := l_db_ttdv_rec.attribute1;
4160         END IF;
4161         IF (x_ttdv_rec.attribute2 = OKL_API.G_MISS_CHAR)
4162         THEN
4163           x_ttdv_rec.attribute2 := l_db_ttdv_rec.attribute2;
4164         END IF;
4165         IF (x_ttdv_rec.attribute3 = OKL_API.G_MISS_CHAR)
4166         THEN
4167           x_ttdv_rec.attribute3 := l_db_ttdv_rec.attribute3;
4168         END IF;
4169         IF (x_ttdv_rec.attribute4 = OKL_API.G_MISS_CHAR)
4170         THEN
4171           x_ttdv_rec.attribute4 := l_db_ttdv_rec.attribute4;
4172         END IF;
4173         IF (x_ttdv_rec.attribute5 = OKL_API.G_MISS_CHAR)
4174         THEN
4175           x_ttdv_rec.attribute5 := l_db_ttdv_rec.attribute5;
4176         END IF;
4177         IF (x_ttdv_rec.attribute6 = OKL_API.G_MISS_CHAR)
4178         THEN
4179           x_ttdv_rec.attribute6 := l_db_ttdv_rec.attribute6;
4180         END IF;
4181         IF (x_ttdv_rec.attribute7 = OKL_API.G_MISS_CHAR)
4182         THEN
4183           x_ttdv_rec.attribute7 := l_db_ttdv_rec.attribute7;
4184         END IF;
4185         IF (x_ttdv_rec.attribute8 = OKL_API.G_MISS_CHAR)
4186         THEN
4187           x_ttdv_rec.attribute8 := l_db_ttdv_rec.attribute8;
4188         END IF;
4189         IF (x_ttdv_rec.attribute9 = OKL_API.G_MISS_CHAR)
4190         THEN
4191           x_ttdv_rec.attribute9 := l_db_ttdv_rec.attribute9;
4192         END IF;
4193         IF (x_ttdv_rec.attribute10 = OKL_API.G_MISS_CHAR)
4194         THEN
4195           x_ttdv_rec.attribute10 := l_db_ttdv_rec.attribute10;
4196         END IF;
4197         IF (x_ttdv_rec.attribute11 = OKL_API.G_MISS_CHAR)
4198         THEN
4199           x_ttdv_rec.attribute11 := l_db_ttdv_rec.attribute11;
4200         END IF;
4201         IF (x_ttdv_rec.attribute12 = OKL_API.G_MISS_CHAR)
4205         IF (x_ttdv_rec.attribute13 = OKL_API.G_MISS_CHAR)
4202         THEN
4203           x_ttdv_rec.attribute12 := l_db_ttdv_rec.attribute12;
4204         END IF;
4206         THEN
4207           x_ttdv_rec.attribute13 := l_db_ttdv_rec.attribute13;
4208         END IF;
4209         IF (x_ttdv_rec.attribute14 = OKL_API.G_MISS_CHAR)
4210         THEN
4211           x_ttdv_rec.attribute14 := l_db_ttdv_rec.attribute14;
4212         END IF;
4213         IF (x_ttdv_rec.attribute15 = OKL_API.G_MISS_CHAR)
4214         THEN
4215           x_ttdv_rec.attribute15 := l_db_ttdv_rec.attribute15;
4216         END IF;
4217         IF (x_ttdv_rec.created_by = OKL_API.G_MISS_NUM)
4218         THEN
4219           x_ttdv_rec.created_by := l_db_ttdv_rec.created_by;
4220         END IF;
4221         IF (x_ttdv_rec.creation_date = OKL_API.G_MISS_DATE)
4222         THEN
4223           x_ttdv_rec.creation_date := l_db_ttdv_rec.creation_date;
4224         END IF;
4225         IF (x_ttdv_rec.last_updated_by = OKL_API.G_MISS_NUM)
4226         THEN
4227           x_ttdv_rec.last_updated_by := l_db_ttdv_rec.last_updated_by;
4228         END IF;
4229         IF (x_ttdv_rec.last_update_date = OKL_API.G_MISS_DATE)
4230         THEN
4231           x_ttdv_rec.last_update_date := l_db_ttdv_rec.last_update_date;
4232         END IF;
4233         IF (x_ttdv_rec.last_update_login = OKL_API.G_MISS_NUM)
4234         THEN
4235           x_ttdv_rec.last_update_login := l_db_ttdv_rec.last_update_login;
4236         END IF;
4237 
4238 	-- Modified by dcshanmu for eBTax - modification starts
4239         IF (x_ttdv_rec.tax_date = OKL_API.G_MISS_DATE)
4240         THEN
4241           x_ttdv_rec.tax_date := l_ttdv_rec.tax_date;
4242         END IF;
4243         IF (x_ttdv_rec.line_amt = OKL_API.G_MISS_NUM)
4244         THEN
4245           x_ttdv_rec.line_amt := l_ttdv_rec.line_amt;
4246         END IF;
4247         IF (x_ttdv_rec.internal_organization_id = OKL_API.G_MISS_NUM)
4248         THEN
4249           x_ttdv_rec.internal_organization_id := l_ttdv_rec.internal_organization_id;
4250         END IF;
4251         IF (x_ttdv_rec.application_id = OKL_API.G_MISS_NUM)
4252         THEN
4253           x_ttdv_rec.application_id := l_ttdv_rec.application_id;
4254         END IF;
4255         IF (x_ttdv_rec.entity_code = OKL_API.G_MISS_CHAR)
4256         THEN
4257           x_ttdv_rec.entity_code := l_ttdv_rec.entity_code;
4258         END IF;
4259         IF (x_ttdv_rec.event_class_code = OKL_API.G_MISS_CHAR)
4260         THEN
4261           x_ttdv_rec.event_class_code := l_ttdv_rec.event_class_code;
4262         END IF;
4263         IF (x_ttdv_rec.event_type_code = OKL_API.G_MISS_CHAR)
4264         THEN
4265           x_ttdv_rec.event_type_code := l_ttdv_rec.event_type_code;
4266         END IF;
4267         IF (x_ttdv_rec.trx_id = OKL_API.G_MISS_NUM)
4268         THEN
4269           x_ttdv_rec.trx_id := l_ttdv_rec.trx_id;
4270         END IF;
4271         IF (x_ttdv_rec.trx_line_id = OKL_API.G_MISS_NUM)
4272         THEN
4273           x_ttdv_rec.trx_line_id := l_ttdv_rec.trx_line_id;
4274         END IF;
4275         IF (x_ttdv_rec.trx_level_type = OKL_API.G_MISS_CHAR)
4276         THEN
4277           x_ttdv_rec.trx_level_type := l_ttdv_rec.trx_level_type;
4278         END IF;
4279         IF (x_ttdv_rec.trx_line_number = OKL_API.G_MISS_NUM)
4280         THEN
4281           x_ttdv_rec.trx_line_number := l_ttdv_rec.trx_line_number;
4282         END IF;
4283         IF (x_ttdv_rec.tax_line_number = OKL_API.G_MISS_NUM)
4284         THEN
4285           x_ttdv_rec.tax_line_number := l_ttdv_rec.tax_line_number;
4286         END IF;
4287         IF (x_ttdv_rec.tax_regime_id = OKL_API.G_MISS_NUM)
4288         THEN
4289           x_ttdv_rec.tax_regime_id := l_ttdv_rec.tax_regime_id;
4290         END IF;
4291         IF (x_ttdv_rec.tax_regime_code = OKL_API.G_MISS_CHAR)
4292         THEN
4293           x_ttdv_rec.tax_regime_code := l_ttdv_rec.tax_regime_code;
4294         END IF;
4295         IF (x_ttdv_rec.tax_id = OKL_API.G_MISS_NUM)
4296         THEN
4297           x_ttdv_rec.tax_id := l_ttdv_rec.tax_id;
4298         END IF;
4299         IF (x_ttdv_rec.tax = OKL_API.G_MISS_CHAR)
4300         THEN
4301           x_ttdv_rec.tax := l_ttdv_rec.tax;
4302         END IF;
4303         IF (x_ttdv_rec.tax_status_id = OKL_API.G_MISS_NUM)
4304         THEN
4305           x_ttdv_rec.tax_status_id := l_ttdv_rec.tax_status_id;
4306         END IF;
4307         IF (x_ttdv_rec.tax_status_code = OKL_API.G_MISS_CHAR)
4308         THEN
4309           x_ttdv_rec.tax_status_code := l_ttdv_rec.tax_status_code;
4310         END IF;
4311         IF (x_ttdv_rec.tax_apportionment_line_number = OKL_API.G_MISS_NUM)
4312         THEN
4313           x_ttdv_rec.tax_apportionment_line_number := l_ttdv_rec.tax_apportionment_line_number;
4314         END IF;
4315         IF (x_ttdv_rec.legal_entity_id = OKL_API.G_MISS_NUM)
4316         THEN
4317           x_ttdv_rec.legal_entity_id := l_ttdv_rec.legal_entity_id;
4318         END IF;
4319         IF (x_ttdv_rec.trx_number = OKL_API.G_MISS_CHAR)
4320         THEN
4321           x_ttdv_rec.trx_number := l_ttdv_rec.trx_number;
4322         END IF;
4323         IF (x_ttdv_rec.trx_date = OKL_API.G_MISS_DATE)
4324         THEN
4325           x_ttdv_rec.trx_date := l_ttdv_rec.trx_date;
4326         END IF;
4327         IF (x_ttdv_rec.tax_jurisdiction_id = OKL_API.G_MISS_NUM)
4328         THEN
4329           x_ttdv_rec.tax_jurisdiction_id := l_ttdv_rec.tax_jurisdiction_id;
4330         END IF;
4331         IF (x_ttdv_rec.tax_jurisdiction_code = OKL_API.G_MISS_CHAR)
4332         THEN
4333           x_ttdv_rec.tax_jurisdiction_code := l_ttdv_rec.tax_jurisdiction_code;
4334         END IF;
4335         IF (x_ttdv_rec.tax_type_code = OKL_API.G_MISS_CHAR)
4336         THEN
4337           x_ttdv_rec.tax_type_code := l_ttdv_rec.tax_type_code;
4341           x_ttdv_rec.tax_currency_code := l_ttdv_rec.tax_currency_code;
4338         END IF;
4339         IF (x_ttdv_rec.tax_currency_code = OKL_API.G_MISS_CHAR)
4340         THEN
4342         END IF;
4343         IF (x_ttdv_rec.taxable_amt_tax_curr = OKL_API.G_MISS_NUM)
4344         THEN
4345           x_ttdv_rec.taxable_amt_tax_curr := l_ttdv_rec.taxable_amt_tax_curr;
4346         END IF;
4347         IF (x_ttdv_rec.trx_currency_code = OKL_API.G_MISS_CHAR)
4348         THEN
4349           x_ttdv_rec.trx_currency_code := l_ttdv_rec.trx_currency_code;
4350         END IF;
4351         IF (x_ttdv_rec.minimum_accountable_unit = OKL_API.G_MISS_NUM)
4352         THEN
4353           x_ttdv_rec.minimum_accountable_unit := l_ttdv_rec.minimum_accountable_unit;
4354         END IF;
4355         IF (x_ttdv_rec.precision = OKL_API.G_MISS_NUM)
4356         THEN
4357           x_ttdv_rec.precision := l_ttdv_rec.precision;
4358         END IF;
4359         IF (x_ttdv_rec.currency_conversion_type = OKL_API.G_MISS_CHAR)
4360         THEN
4361           x_ttdv_rec.currency_conversion_type := l_ttdv_rec.currency_conversion_type;
4362         END IF;
4363         IF (x_ttdv_rec.currency_conversion_rate = OKL_API.G_MISS_NUM)
4364         THEN
4365           x_ttdv_rec.currency_conversion_rate := l_ttdv_rec.currency_conversion_rate;
4366         END IF;
4367         IF (x_ttdv_rec.currency_conversion_date = OKL_API.G_MISS_DATE)
4368         THEN
4369           x_ttdv_rec.currency_conversion_date := l_ttdv_rec.currency_conversion_date;
4370         END IF;
4371 	-- Modified by dcshanmu for eBTax - modification end
4372 
4373       END IF;
4374       RETURN(l_return_status);
4375     END populate_new_record;
4376     ----------------------------------------------
4377     -- Set_Attributes for:OKL_TAX_TRX_DETAILS_V --
4378     ----------------------------------------------
4379     FUNCTION Set_Attributes (
4380       p_ttdv_rec IN ttdv_rec_type,
4381       x_ttdv_rec OUT NOCOPY ttdv_rec_type
4382     ) RETURN VARCHAR2 IS
4383       l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4384     BEGIN
4385       x_ttdv_rec := p_ttdv_rec;
4386       RETURN(l_return_status);
4387     END Set_Attributes;
4388   BEGIN
4389     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
4390                                               G_PKG_NAME,
4391                                               p_init_msg_list,
4392                                               l_api_version,
4393                                               p_api_version,
4394                                               '_PVT',
4395                                               x_return_status);
4396     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4397       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4398     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4399       RAISE OKL_API.G_EXCEPTION_ERROR;
4400     END IF;
4401     --- Setting item attributes
4402     l_return_status := Set_Attributes(
4403       p_ttdv_rec,       -- IN
4404       x_ttdv_rec);      -- OUT
4405     --- If any errors happen abort API
4406     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4407       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4408     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4409       RAISE OKL_API.G_EXCEPTION_ERROR;
4410     END IF;
4411     l_return_status := populate_new_record(l_ttdv_rec, LDefOklTaxTrxDetailsVRec);
4412     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4413       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4414     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4415       RAISE OKL_API.G_EXCEPTION_ERROR;
4416     END IF;
4417     LDefOklTaxTrxDetailsVRec := fill_who_columns(LDefOklTaxTrxDetailsVRec);
4418     --- Validate all non-missing attributes (Item Level Validation)
4419     l_return_status := Validate_Attributes(LDefOklTaxTrxDetailsVRec);
4420     --- If any errors happen abort API
4421     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4422       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4423     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4424       RAISE OKL_API.G_EXCEPTION_ERROR;
4425     END IF;
4426     /*
4427     l_return_status := Validate_Record(LDefOklTaxTrxDetailsVRec, l_db_ttdv_rec);
4428     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4429       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4430     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4431       RAISE OKL_API.G_EXCEPTION_ERROR;
4432     END IF;
4433 */
4434 
4435     -- Lock the Record
4436     lock_row(
4437       p_api_version                  => p_api_version,
4438       p_init_msg_list                => p_init_msg_list,
4439       x_return_status                => l_return_status,
4440       x_msg_count                    => x_msg_count,
4441       x_msg_data                     => x_msg_data,
4442       p_ttdv_rec    				 => LDefOklTaxTrxDetailsVRec); --p_ttdv_rec); -- SECHAWLA Changed to pass l_def_tbov_rec becoz of locking issue
4443     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4444       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4445     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4446       RAISE OKL_API.G_EXCEPTION_ERROR;
4447     END IF;
4448 
4449     -----------------------------------------
4450     -- Move VIEW record to "Child" records --
4451     -----------------------------------------
4452     migrate(LDefOklTaxTrxDetailsVRec, l_ttd_rec);
4453     -----------------------------------------------
4454     -- Call the UPDATE_ROW for each child record --
4455     -----------------------------------------------
4456     update_row(
4457       p_init_msg_list,
4458       l_return_status,
4459       x_msg_count,
4460       x_msg_data,
4461       l_ttd_rec,
4462       lx_ttd_rec
4463     );
4464     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4468     END IF;
4465       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4466     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4467       RAISE OKL_API.G_EXCEPTION_ERROR;
4469     migrate(lx_ttd_rec, LDefOklTaxTrxDetailsVRec);
4470     x_ttdv_rec := LDefOklTaxTrxDetailsVRec;
4471     x_return_status := l_return_status;
4472     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4473   EXCEPTION
4474     WHEN OKL_API.G_EXCEPTION_ERROR THEN
4475       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4476       (
4477         l_api_name,
4478         G_PKG_NAME,
4479         'OKL_API.G_RET_STS_ERROR',
4480         x_msg_count,
4481         x_msg_data,
4482         '_PVT'
4483       );
4484     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4485       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4486       (
4487         l_api_name,
4488         G_PKG_NAME,
4489         'OKL_API.G_RET_STS_UNEXP_ERROR',
4490         x_msg_count,
4491         x_msg_data,
4492         '_PVT'
4493       );
4494     WHEN OTHERS THEN
4495       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4496       (
4497         l_api_name,
4498         G_PKG_NAME,
4499         'OTHERS',
4500         x_msg_count,
4501         x_msg_data,
4502         '_PVT'
4503       );
4504   END update_row;
4505   ---------------------------------------------------------
4506   -- PL/SQL TBL update_row for:okl_tax_trx_details_v_tbl --
4507   ---------------------------------------------------------
4508   PROCEDURE update_row(
4509     p_api_version                  IN NUMBER,
4510     p_init_msg_list                IN VARCHAR2,
4511     x_return_status                OUT NOCOPY VARCHAR2,
4512     x_msg_count                    OUT NOCOPY NUMBER,
4513     x_msg_data                     OUT NOCOPY VARCHAR2,
4514     p_ttdv_tbl    				   IN ttdv_tbl_type,
4515     x_ttdv_tbl    				   OUT NOCOPY ttdv_tbl_type,
4516     px_error_tbl                   IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
4517 
4518     l_api_version                  CONSTANT NUMBER := 1;
4519     l_api_name                     CONSTANT VARCHAR2(30) := 'V_error_tbl_update_row';
4520     i                              NUMBER := 0;
4521   BEGIN
4522     OKL_API.init_msg_list(p_init_msg_list);
4523     -- Make sure PL/SQL table has records in it before passing
4524     IF (p_ttdv_tbl.COUNT > 0) THEN
4525       i := p_ttdv_tbl.FIRST;
4526       LOOP
4527         DECLARE
4528           l_error_rec         OKL_API.ERROR_REC_TYPE;
4529         BEGIN
4530           l_error_rec.api_name := l_api_name;
4531           l_error_rec.api_package := G_PKG_NAME;
4532           l_error_rec.idx := i;
4533           update_row (
4534             p_api_version                  => p_api_version,
4535             p_init_msg_list                => OKL_API.G_FALSE,
4536             x_return_status                => l_error_rec.error_type,
4537             x_msg_count                    => l_error_rec.msg_count,
4538             x_msg_data                     => l_error_rec.msg_data,
4539             p_ttdv_rec    => p_ttdv_tbl(i),
4540             x_ttdv_rec    => x_ttdv_tbl(i));
4541           IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
4542             l_error_rec.sqlcode := SQLCODE;
4543             load_error_tbl(l_error_rec, px_error_tbl);
4544           ELSE
4545             x_msg_count := l_error_rec.msg_count;
4546             x_msg_data := l_error_rec.msg_data;
4547           END IF;
4548         EXCEPTION
4549           WHEN OKL_API.G_EXCEPTION_ERROR THEN
4550             l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
4551             l_error_rec.sqlcode := SQLCODE;
4552             load_error_tbl(l_error_rec, px_error_tbl);
4553           WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4554             l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
4555             l_error_rec.sqlcode := SQLCODE;
4556             load_error_tbl(l_error_rec, px_error_tbl);
4557           WHEN OTHERS THEN
4558             l_error_rec.error_type := 'OTHERS';
4559             l_error_rec.sqlcode := SQLCODE;
4560             load_error_tbl(l_error_rec, px_error_tbl);
4561         END;
4562         EXIT WHEN (i = p_ttdv_tbl.LAST);
4563         i := p_ttdv_tbl.NEXT(i);
4564       END LOOP;
4565     END IF;
4566     -- Loop through the error_tbl to find the error with the highest severity
4567     -- and return it.
4568     x_return_status := find_highest_exception(px_error_tbl);
4569     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4570   EXCEPTION
4571     WHEN OKL_API.G_EXCEPTION_ERROR THEN
4572       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4573       (
4574         l_api_name,
4575         G_PKG_NAME,
4576         'OKL_API.G_RET_STS_ERROR',
4577         x_msg_count,
4578         x_msg_data,
4579         '_PVT'
4580       );
4581     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4582       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4583       (
4584         l_api_name,
4585         G_PKG_NAME,
4586         'OKL_API.G_RET_STS_UNEXP_ERROR',
4587         x_msg_count,
4588         x_msg_data,
4589         '_PVT'
4590       );
4591     WHEN OTHERS THEN
4592       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4593       (
4594         l_api_name,
4595         G_PKG_NAME,
4596         'OTHERS',
4597         x_msg_count,
4598         x_msg_data,
4599         '_PVT'
4600       );
4601   END update_row;
4602 
4603   ---------------------------------------------------------
4604   -- PL/SQL TBL update_row for:OKL_TAX_TRX_DETAILS_V_TBL --
4605   ---------------------------------------------------------
4606   -- This procedure is the same as the one above except it does not have a "px_error_tbl" argument.
4607   -- This procedure was create for backward compatibility and simply is a wrapper for the one above.
4608   PROCEDURE update_row(
4612     x_msg_count                    OUT NOCOPY NUMBER,
4609     p_api_version                  IN NUMBER,
4610     p_init_msg_list                IN VARCHAR2,
4611     x_return_status                OUT NOCOPY VARCHAR2,
4613     x_msg_data                     OUT NOCOPY VARCHAR2,
4614     p_ttdv_tbl    				   IN ttdv_tbl_type,
4615     x_ttdv_tbl    				   OUT NOCOPY ttdv_tbl_type) IS
4616 
4617     l_api_version                  CONSTANT NUMBER := 1;
4618     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
4619     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4620     l_error_tbl                    OKL_API.ERROR_TBL_TYPE;
4621   BEGIN
4622     OKL_API.init_msg_list(p_init_msg_list);
4623     -- Make sure PL/SQL table has records in it before passing
4624     IF (p_ttdv_tbl.COUNT > 0) THEN
4625       update_row (
4626         p_api_version                  => p_api_version,
4627         p_init_msg_list                => OKL_API.G_FALSE,
4628         x_return_status                => x_return_status,
4629         x_msg_count                    => x_msg_count,
4630         x_msg_data                     => x_msg_data,
4631         p_ttdv_tbl    => p_ttdv_tbl,
4632         x_ttdv_tbl    => x_ttdv_tbl,
4633         px_error_tbl                   => l_error_tbl);
4634     END IF;
4635     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4636   EXCEPTION
4637     WHEN OKL_API.G_EXCEPTION_ERROR THEN
4638       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4639       (
4640         l_api_name,
4641         G_PKG_NAME,
4642         'OKL_API.G_RET_STS_ERROR',
4643         x_msg_count,
4644         x_msg_data,
4645         '_PVT'
4646       );
4647     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4648       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4649       (
4650         l_api_name,
4651         G_PKG_NAME,
4652         'OKL_API.G_RET_STS_UNEXP_ERROR',
4653         x_msg_count,
4654         x_msg_data,
4655         '_PVT'
4656       );
4657     WHEN OTHERS THEN
4658       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4659       (
4660         l_api_name,
4661         G_PKG_NAME,
4662         'OTHERS',
4663         x_msg_count,
4664         x_msg_data,
4665         '_PVT'
4666       );
4667   END update_row;
4668 
4669   ---------------------------------------------------------------------------
4670   -- PROCEDURE delete_row
4671   ---------------------------------------------------------------------------
4672   ----------------------------------------
4673   -- delete_row for:OKL_TAX_TRX_DETAILS --
4674   ----------------------------------------
4675   PROCEDURE delete_row(
4676     p_init_msg_list                IN VARCHAR2,
4677     x_return_status                OUT NOCOPY VARCHAR2,
4678     x_msg_count                    OUT NOCOPY NUMBER,
4679     x_msg_data                     OUT NOCOPY VARCHAR2,
4680     p_ttd_rec                      IN ttd_rec_type) IS
4681 
4682     l_api_version                  CONSTANT NUMBER := 1;
4683     l_api_name                     CONSTANT VARCHAR2(30) := 'B_delete_row';
4684     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4685     l_ttd_rec                      ttd_rec_type := p_ttd_rec;
4686     l_row_notfound                 BOOLEAN := TRUE;
4687   BEGIN
4688     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
4689                                               p_init_msg_list,
4690                                               '_PVT',
4691                                               x_return_status);
4692     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4693       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4694     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4695       RAISE OKL_API.G_EXCEPTION_ERROR;
4696     END IF;
4697 
4698     DELETE FROM OKL_TAX_TRX_DETAILS
4699      WHERE ID = p_ttd_rec.id;
4700 
4701     x_return_status := l_return_status;
4702     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4703   EXCEPTION
4704     WHEN OKL_API.G_EXCEPTION_ERROR THEN
4705       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4706       (
4707         l_api_name,
4708         G_PKG_NAME,
4709         'OKL_API.G_RET_STS_ERROR',
4710         x_msg_count,
4711         x_msg_data,
4712         '_PVT'
4713       );
4714     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4715       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4716       (
4717         l_api_name,
4718         G_PKG_NAME,
4719         'OKL_API.G_RET_STS_UNEXP_ERROR',
4720         x_msg_count,
4721         x_msg_data,
4722         '_PVT'
4723       );
4724     WHEN OTHERS THEN
4725       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4726       (
4727         l_api_name,
4728         G_PKG_NAME,
4729         'OTHERS',
4730         x_msg_count,
4731         x_msg_data,
4732         '_PVT'
4733       );
4734   END delete_row;
4735   ------------------------------------------
4736   -- delete_row for:OKL_TAX_TRX_DETAILS_V --
4737   ------------------------------------------
4738   PROCEDURE delete_row(
4739     p_api_version                  IN NUMBER,
4740     p_init_msg_list                IN VARCHAR2,
4741     x_return_status                OUT NOCOPY VARCHAR2,
4742     x_msg_count                    OUT NOCOPY NUMBER,
4743     x_msg_data                     OUT NOCOPY VARCHAR2,
4744     p_ttdv_rec    IN ttdv_rec_type) IS
4745 
4746     l_api_version                  CONSTANT NUMBER := 1;
4747     l_api_name                     CONSTANT VARCHAR2(30) := 'V_delete_row';
4748     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4749     l_ttdv_rec    ttdv_rec_type := p_ttdv_rec;
4750     l_ttd_rec                      ttd_rec_type;
4751   BEGIN
4752     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
4756                                               p_api_version,
4753                                               G_PKG_NAME,
4754                                               p_init_msg_list,
4755                                               l_api_version,
4757                                               '_PVT',
4758                                               x_return_status);
4759     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4760       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4761     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4762       RAISE OKL_API.G_EXCEPTION_ERROR;
4763     END IF;
4764     -----------------------------------------
4765     -- Move VIEW record to "Child" records --
4766     -----------------------------------------
4767     migrate(l_ttdv_rec, l_ttd_rec);
4768     -----------------------------------------------
4769     -- Call the DELETE_ROW for each child record --
4770     -----------------------------------------------
4771     delete_row(
4772       p_init_msg_list,
4773       l_return_status,
4774       x_msg_count,
4775       x_msg_data,
4776       l_ttd_rec
4777     );
4778     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4779       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4780     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4781       RAISE OKL_API.G_EXCEPTION_ERROR;
4782     END IF;
4783     x_return_status := l_return_status;
4784     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4785   EXCEPTION
4786     WHEN OKL_API.G_EXCEPTION_ERROR THEN
4787       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4788       (
4789         l_api_name,
4790         G_PKG_NAME,
4791         'OKL_API.G_RET_STS_ERROR',
4792         x_msg_count,
4793         x_msg_data,
4794         '_PVT'
4795       );
4796     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4797       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4798       (
4799         l_api_name,
4800         G_PKG_NAME,
4801         'OKL_API.G_RET_STS_UNEXP_ERROR',
4802         x_msg_count,
4803         x_msg_data,
4804         '_PVT'
4805       );
4806     WHEN OTHERS THEN
4807       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4808       (
4809         l_api_name,
4810         G_PKG_NAME,
4811         'OTHERS',
4812         x_msg_count,
4813         x_msg_data,
4814         '_PVT'
4815       );
4816   END delete_row;
4817   -----------------------------------------------------
4818   -- PL/SQL TBL delete_row for:OKL_TAX_TRX_DETAILS_V --
4819   -----------------------------------------------------
4820   PROCEDURE delete_row(
4821     p_api_version                  IN NUMBER,
4822     p_init_msg_list                IN VARCHAR2,
4823     x_return_status                OUT NOCOPY VARCHAR2,
4824     x_msg_count                    OUT NOCOPY NUMBER,
4825     x_msg_data                     OUT NOCOPY VARCHAR2,
4826     p_ttdv_tbl    IN ttdv_tbl_type,
4827     px_error_tbl                   IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
4828 
4829     l_api_version                  CONSTANT NUMBER := 1;
4830     l_api_name                     CONSTANT VARCHAR2(30) := 'V_error_tbl_delete_row';
4831     i                              NUMBER := 0;
4832   BEGIN
4833     OKL_API.init_msg_list(p_init_msg_list);
4834     -- Make sure PL/SQL table has records in it before passing
4835     IF (p_ttdv_tbl.COUNT > 0) THEN
4836       i := p_ttdv_tbl.FIRST;
4837       LOOP
4838         DECLARE
4839           l_error_rec         OKL_API.ERROR_REC_TYPE;
4840         BEGIN
4841           l_error_rec.api_name := l_api_name;
4842           l_error_rec.api_package := G_PKG_NAME;
4843           l_error_rec.idx := i;
4844           delete_row (
4845             p_api_version                  => p_api_version,
4846             p_init_msg_list                => OKL_API.G_FALSE,
4847             x_return_status                => l_error_rec.error_type,
4848             x_msg_count                    => l_error_rec.msg_count,
4849             x_msg_data                     => l_error_rec.msg_data,
4850             p_ttdv_rec    => p_ttdv_tbl(i));
4851           IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
4852             l_error_rec.sqlcode := SQLCODE;
4853             load_error_tbl(l_error_rec, px_error_tbl);
4854           ELSE
4855             x_msg_count := l_error_rec.msg_count;
4856             x_msg_data := l_error_rec.msg_data;
4857           END IF;
4858         EXCEPTION
4859           WHEN OKL_API.G_EXCEPTION_ERROR THEN
4860             l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
4861             l_error_rec.sqlcode := SQLCODE;
4862             load_error_tbl(l_error_rec, px_error_tbl);
4863           WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4864             l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
4865             l_error_rec.sqlcode := SQLCODE;
4866             load_error_tbl(l_error_rec, px_error_tbl);
4867           WHEN OTHERS THEN
4868             l_error_rec.error_type := 'OTHERS';
4869             l_error_rec.sqlcode := SQLCODE;
4870             load_error_tbl(l_error_rec, px_error_tbl);
4871         END;
4872         EXIT WHEN (i = p_ttdv_tbl.LAST);
4873         i := p_ttdv_tbl.NEXT(i);
4874       END LOOP;
4875     END IF;
4876     -- Loop through the error_tbl to find the error with the highest severity
4877     -- and return it.
4878     x_return_status := find_highest_exception(px_error_tbl);
4879     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4880   EXCEPTION
4881     WHEN OKL_API.G_EXCEPTION_ERROR THEN
4882       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4883       (
4884         l_api_name,
4885         G_PKG_NAME,
4886         'OKL_API.G_RET_STS_ERROR',
4887         x_msg_count,
4888         x_msg_data,
4889         '_PVT'
4890       );
4891     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4895         G_PKG_NAME,
4892       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4893       (
4894         l_api_name,
4896         'OKL_API.G_RET_STS_UNEXP_ERROR',
4897         x_msg_count,
4898         x_msg_data,
4899         '_PVT'
4900       );
4901     WHEN OTHERS THEN
4902       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4903       (
4904         l_api_name,
4905         G_PKG_NAME,
4906         'OTHERS',
4907         x_msg_count,
4908         x_msg_data,
4909         '_PVT'
4910       );
4911   END delete_row;
4912 
4913   -----------------------------------------------------
4914   -- PL/SQL TBL delete_row for:OKL_TAX_TRX_DETAILS_V --
4915   -----------------------------------------------------
4916   PROCEDURE delete_row(
4917     p_api_version                  IN NUMBER,
4918     p_init_msg_list                IN VARCHAR2,
4919     x_return_status                OUT NOCOPY VARCHAR2,
4920     x_msg_count                    OUT NOCOPY NUMBER,
4921     x_msg_data                     OUT NOCOPY VARCHAR2,
4922     p_ttdv_tbl    				   IN ttdv_tbl_type) IS
4923 
4924     l_api_version                  CONSTANT NUMBER := 1;
4925     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
4926     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4927     l_error_tbl                    OKL_API.ERROR_TBL_TYPE;
4928   BEGIN
4929     OKL_API.init_msg_list(p_init_msg_list);
4930     -- Make sure PL/SQL table has records in it before passing
4931     IF (p_ttdv_tbl.COUNT > 0) THEN
4932       delete_row (
4933         p_api_version                  => p_api_version,
4934         p_init_msg_list                => OKL_API.G_FALSE,
4935         x_return_status                => x_return_status,
4936         x_msg_count                    => x_msg_count,
4937         x_msg_data                     => x_msg_data,
4938         p_ttdv_tbl    => p_ttdv_tbl,
4939         px_error_tbl                   => l_error_tbl);
4940     END IF;
4941     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4942   EXCEPTION
4943     WHEN OKL_API.G_EXCEPTION_ERROR THEN
4944       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4945       (
4946         l_api_name,
4947         G_PKG_NAME,
4948         'OKL_API.G_RET_STS_ERROR',
4949         x_msg_count,
4950         x_msg_data,
4951         '_PVT'
4952       );
4953     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4954       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4955       (
4956         l_api_name,
4957         G_PKG_NAME,
4958         'OKL_API.G_RET_STS_UNEXP_ERROR',
4959         x_msg_count,
4960         x_msg_data,
4961         '_PVT'
4962       );
4963     WHEN OTHERS THEN
4964       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4965       (
4966         l_api_name,
4967         G_PKG_NAME,
4968         'OTHERS',
4969         x_msg_count,
4970         x_msg_data,
4971         '_PVT'
4972       );
4973   END delete_row;
4974 
4975 END OKL_TTD_PVT;