DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_TXS_PVT

Source


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