DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_TAX_PVT

Source


1 PACKAGE BODY OKL_TAX_PVT AS
2 /* $Header: OKLSTAXB.pls 120.4 2006/09/21 12:44:54 ssdeshpa noship $ */
3 
4 -- Handcoded this
5   G_TAX_LINE_TYPE            CONSTANT VARCHAR2(200)  := 'OKL_TAX_LINE_TYPE';
6   G_NO_MATCHING_RECORD       CONSTANT VARCHAR2(200)  := 'OKL_LLA_NO_MATCHING_RECORD';
7 -- end Handcoding
8 
9 
10   ---------------------------------------------------------------------------
11   -- PROCEDURE load_error_tbl
12   ---------------------------------------------------------------------------
13   PROCEDURE load_error_tbl (
14     px_error_rec                   IN OUT NOCOPY OKC_API.ERROR_REC_TYPE,
15     px_error_tbl                   IN OUT NOCOPY OKC_API.ERROR_TBL_TYPE) IS
16 
17     j                              INTEGER := NVL(px_error_tbl.LAST, 0) + 1;
18     last_msg_idx                   INTEGER := FND_MSG_PUB.COUNT_MSG;
19     l_msg_idx                      INTEGER := FND_MSG_PUB.G_NEXT;
20   BEGIN
21     -- FND_MSG_PUB has a small error in it.  If we call FND_MSG_PUB.COUNT_AND_GET before
25     -- attempts to pull message 2, we get a NO_DATA_FOUND exception because there isn't any
22     -- we call FND_MSG_PUB.GET, the variable FND_MSG_PUB uses to control the index of the
23     -- message stack gets set to 1.  This makes sense until we call FND_MSG_PUB.GET which
24     -- automatically increments the index by 1, (making it 2), however, when the GET function
26     -- message 2.  To circumvent this problem, check the amount of messages and compensate.
27     -- Again, this error only occurs when 1 message is on the stack because COUNT_AND_GET
28     -- will only update the index variable when 1 and only 1 message is on the stack.
29     IF (last_msg_idx = 1) THEN
30       l_msg_idx := FND_MSG_PUB.G_FIRST;
31     END IF;
32     LOOP
33       fnd_msg_pub.get(
34             p_msg_index     => l_msg_idx,
35             p_encoded       => fnd_api.g_false,
36             p_data          => px_error_rec.msg_data,
37             p_msg_index_out => px_error_rec.msg_count);
38       px_error_tbl(j) := px_error_rec;
39       j := j + 1;
40     EXIT WHEN (px_error_rec.msg_count = last_msg_idx);
41     END LOOP;
42   END load_error_tbl;
43   ---------------------------------------------------------------------------
44   -- FUNCTION find_highest_exception
45   ---------------------------------------------------------------------------
46   -- Finds the highest exception (G_RET_STS_UNEXP_ERROR)
47   -- in a OKC_API.ERROR_TBL_TYPE, and returns it.
48   FUNCTION find_highest_exception(
49     p_error_tbl                    IN OKC_API.ERROR_TBL_TYPE
50   ) RETURN VARCHAR2 IS
51     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
52     i                              INTEGER := 1;
53   BEGIN
54     IF (p_error_tbl.COUNT > 0) THEN
55       i := p_error_tbl.FIRST;
56       LOOP
57         IF (p_error_tbl(i).error_type <> OKC_API.G_RET_STS_SUCCESS) THEN
58           IF (l_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
59             l_return_status := p_error_tbl(i).error_type;
60           END IF;
61         END IF;
62         EXIT WHEN (i = p_error_tbl.LAST);
63         i := p_error_tbl.NEXT(i);
64       END LOOP;
65     END IF;
66     RETURN(l_return_status);
67   END find_highest_exception;
68   ---------------------------------------------------------------------------
69   -- FUNCTION get_seq_id
70   ---------------------------------------------------------------------------
71   FUNCTION get_seq_id RETURN NUMBER IS
72   BEGIN
73     RETURN(okc_p_util.raw_to_number(sys_guid()));
74   END get_seq_id;
75 
76   ---------------------------------------------------------------------------
77   -- PROCEDURE qc
78   ---------------------------------------------------------------------------
79   PROCEDURE qc IS
80   BEGIN
81     null;
82   END qc;
83 
84   ---------------------------------------------------------------------------
85   -- PROCEDURE change_version
86   ---------------------------------------------------------------------------
87   PROCEDURE change_version IS
88   BEGIN
89     null;
90   END change_version;
91 
92   ---------------------------------------------------------------------------
93   -- PROCEDURE api_copy
94   ---------------------------------------------------------------------------
95   PROCEDURE api_copy IS
96   BEGIN
97     null;
98   END api_copy;
99 
100   ---------------------------------------------------------------------------
101   -- FUNCTION get_rec for: OKL_TAX_LINES_V
102   ---------------------------------------------------------------------------
103   FUNCTION get_rec (
104     p_OKL_TAX_LINES_rec          IN OKL_TAX_LINES_rec_type,
105     x_no_data_found                OUT NOCOPY BOOLEAN
106   ) RETURN OKL_TAX_LINES_rec_type IS
107     CURSOR okl_taxv_pk_csr (p_id IN NUMBER) IS
108     SELECT
109             ID,
110             KHR_ID,
111             KLE_ID,
112             ASSET_ID,
113             ASSET_NUMBER,
114             TAX_LINE_TYPE,
115             SEL_ID,
116             TAX_DUE_DATE,
117             TAX_TYPE,
118             TAX_RATE_CODE_ID,
119             TAX_RATE_CODE,
120             TAXABLE_AMOUNT,
121             TAX_EXEMPTION_ID,
122             MANUALLY_ENTERED_FLAG,
123             OVERRIDDEN_FLAG,
124             CALCULATED_TAX_AMOUNT,
125             TAX_RATE,
126             TAX_AMOUNT,
127             SALES_TAX_ID,
128             SOURCE_TRX_ID,
129             ORG_ID,
130             HISTORY_YN,
131             ACTUAL_YN,
132             SOURCE_NAME,
133             TRQ_ID,
134             PROGRAM_ID,
135             REQUEST_ID,
136             PROGRAM_APPLICATION_ID,
137             PROGRAM_UPDATE_DATE,
138             ATTRIBUTE_CATEGORY,
139             ATTRIBUTE1,
140             ATTRIBUTE2,
141             ATTRIBUTE3,
142             ATTRIBUTE4,
143             ATTRIBUTE5,
144             ATTRIBUTE6,
145             ATTRIBUTE7,
146             ATTRIBUTE8,
147             ATTRIBUTE9,
148             ATTRIBUTE10,
149             ATTRIBUTE11,
150             ATTRIBUTE12,
151             ATTRIBUTE13,
152             ATTRIBUTE14,
153             ATTRIBUTE15,
154             CREATED_BY,
155             CREATION_DATE,
156             LAST_UPDATED_BY,
157             LAST_UPDATE_DATE,
158             LAST_UPDATE_LOGIN
159       FROM OKL_TAX_LINES
160      WHERE OKL_TAX_LINES.id   = p_id;
161     l_okl_taxv_pk                  okl_taxv_pk_csr%ROWTYPE;
162     l_OKL_TAX_LINES_rec          OKL_TAX_LINES_rec_type;
163   BEGIN
164     x_no_data_found := TRUE;
165     -- Get current database values
166     OPEN okl_taxv_pk_csr (p_OKL_TAX_LINES_rec.id);
167     FETCH okl_taxv_pk_csr INTO
168               l_OKL_TAX_LINES_rec.id,
169               l_OKL_TAX_LINES_rec.khr_id,
170               l_OKL_TAX_LINES_rec.kle_id,
171               l_OKL_TAX_LINES_rec.asset_id,
172               l_OKL_TAX_LINES_rec.asset_number,
173               l_OKL_TAX_LINES_rec.tax_line_type,
174               l_OKL_TAX_LINES_rec.sel_id,
175               l_OKL_TAX_LINES_rec.tax_due_date,
176               l_OKL_TAX_LINES_rec.tax_type,
177               l_OKL_TAX_LINES_rec.tax_rate_code_id,
178               l_OKL_TAX_LINES_rec.tax_rate_code,
179               l_OKL_TAX_LINES_rec.taxable_amount,
180               l_OKL_TAX_LINES_rec.tax_exemption_id,
181               l_OKL_TAX_LINES_rec.manually_entered_flag,
182               l_OKL_TAX_LINES_rec.overridden_flag,
183               l_OKL_TAX_LINES_rec.calculated_tax_amount,
184               l_OKL_TAX_LINES_rec.tax_rate,
185               l_OKL_TAX_LINES_rec.tax_amount,
186               l_OKL_TAX_LINES_rec.sales_tax_id,
187               l_OKL_TAX_LINES_rec.source_trx_id,
188               l_OKL_TAX_LINES_rec.org_id,
189               l_OKL_TAX_LINES_rec.history_yn,
190               l_OKL_TAX_LINES_rec.actual_yn,
191               l_OKL_TAX_LINES_rec.source_name,
192               l_OKL_TAX_LINES_rec.trq_id,
193               l_OKL_TAX_LINES_rec.program_id,
194               l_OKL_TAX_LINES_rec.request_id,
195               l_OKL_TAX_LINES_rec.program_application_id,
196               l_OKL_TAX_LINES_rec.program_update_date,
197               l_OKL_TAX_LINES_rec.attribute_category,
198               l_OKL_TAX_LINES_rec.attribute1,
199               l_OKL_TAX_LINES_rec.attribute2,
200               l_OKL_TAX_LINES_rec.attribute3,
201               l_OKL_TAX_LINES_rec.attribute4,
202               l_OKL_TAX_LINES_rec.attribute5,
203               l_OKL_TAX_LINES_rec.attribute6,
204               l_OKL_TAX_LINES_rec.attribute7,
205               l_OKL_TAX_LINES_rec.attribute8,
206               l_OKL_TAX_LINES_rec.attribute9,
207               l_OKL_TAX_LINES_rec.attribute10,
208               l_OKL_TAX_LINES_rec.attribute11,
209               l_OKL_TAX_LINES_rec.attribute12,
210               l_OKL_TAX_LINES_rec.attribute13,
211               l_OKL_TAX_LINES_rec.attribute14,
212               l_OKL_TAX_LINES_rec.attribute15,
213               l_OKL_TAX_LINES_rec.created_by,
214               l_OKL_TAX_LINES_rec.creation_date,
215               l_OKL_TAX_LINES_rec.last_updated_by,
216               l_OKL_TAX_LINES_rec.last_update_date,
217               l_OKL_TAX_LINES_rec.last_update_login;
218     x_no_data_found := okl_taxv_pk_csr%NOTFOUND;
219     CLOSE okl_taxv_pk_csr;
220     RETURN(l_OKL_TAX_LINES_rec);
221   END get_rec;
222 
223   ------------------------------------------------------------------
224   -- This version of get_rec sets error messages if no data found --
225   ------------------------------------------------------------------
226   FUNCTION get_rec (
227     p_OKL_TAX_LINES_rec          IN OKL_TAX_LINES_rec_type,
228     x_return_status                OUT NOCOPY VARCHAR2
229   ) RETURN OKL_TAX_LINES_rec_type IS
230     l_OKL_TAX_LINES_rec          OKL_TAX_LINES_rec_type;
231     l_row_notfound                 BOOLEAN := TRUE;
232   BEGIN
233     x_return_status := OKC_API.G_RET_STS_SUCCESS;
234     l_OKL_TAX_LINES_rec := get_rec(p_OKL_TAX_LINES_rec, l_row_notfound);
235     IF (l_row_notfound) THEN
236       OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'ID');
237       x_return_status := OKC_API.G_RET_STS_ERROR;
238     END IF;
239     RETURN(l_OKL_TAX_LINES_rec);
240   END get_rec;
241   -----------------------------------------------------------
242   -- So we don't have to pass an "l_row_notfound" variable --
243   -----------------------------------------------------------
244   FUNCTION get_rec (
245     p_OKL_TAX_LINES_rec          IN OKL_TAX_LINES_rec_type
246   ) RETURN OKL_TAX_LINES_rec_type IS
247     l_row_not_found                BOOLEAN := TRUE;
248   BEGIN
249     RETURN(get_rec(p_OKL_TAX_LINES_rec, l_row_not_found));
250   END get_rec;
251   ---------------------------------------------------------------------------
252   -- FUNCTION get_rec for: OKL_TAX_LINES
253   ---------------------------------------------------------------------------
254   FUNCTION get_rec (
255     p_tax_rec                      IN tax_rec_type,
256     x_no_data_found                OUT NOCOPY BOOLEAN
257   ) RETURN tax_rec_type IS
258     CURSOR okl_tax_pk_csr (p_id IN NUMBER) IS
259     SELECT
260             ID,
261             KHR_ID,
262             KLE_ID,
263             ASSET_ID,
264             ASSET_NUMBER,
265             TAX_LINE_TYPE,
266             SEL_ID,
267             TAX_DUE_DATE,
268             TAX_TYPE,
269             TAX_RATE_CODE_ID,
270             TAX_RATE_CODE,
271             TAXABLE_AMOUNT,
272             TAX_EXEMPTION_ID,
273             MANUALLY_ENTERED_FLAG,
274             OVERRIDDEN_FLAG,
275             CALCULATED_TAX_AMOUNT,
276             TAX_RATE,
277             TAX_AMOUNT,
278             SALES_TAX_ID,
279             SOURCE_TRX_ID,
280             ORG_ID,
281             HISTORY_YN,
282             ACTUAL_YN,
283             SOURCE_NAME,
284             TRQ_ID,
285             PROGRAM_ID,
286             REQUEST_ID,
287             PROGRAM_APPLICATION_ID,
288             PROGRAM_UPDATE_DATE,
289             ATTRIBUTE_CATEGORY,
290             ATTRIBUTE1,
291             ATTRIBUTE2,
292             ATTRIBUTE3,
293             ATTRIBUTE4,
294             ATTRIBUTE5,
295             ATTRIBUTE6,
296             ATTRIBUTE7,
297             ATTRIBUTE8,
298             ATTRIBUTE9,
299             ATTRIBUTE10,
300             ATTRIBUTE11,
301             ATTRIBUTE12,
302             ATTRIBUTE13,
303             ATTRIBUTE14,
304             ATTRIBUTE15,
305             CREATED_BY,
306             CREATION_DATE,
307             LAST_UPDATED_BY,
308             LAST_UPDATE_DATE,
309             LAST_UPDATE_LOGIN
310       FROM Okl_Tax_Lines
311      WHERE okl_tax_lines.id     = p_id;
312     l_okl_tax_pk                   okl_tax_pk_csr%ROWTYPE;
313     l_tax_rec                      tax_rec_type;
314   BEGIN
315     x_no_data_found := TRUE;
316     -- Get current database values
317     OPEN okl_tax_pk_csr (p_tax_rec.id);
318     FETCH okl_tax_pk_csr INTO
319               l_tax_rec.id,
320               l_tax_rec.khr_id,
321               l_tax_rec.kle_id,
322               l_tax_rec.asset_id,
323               l_tax_rec.asset_number,
324               l_tax_rec.tax_line_type,
325               l_tax_rec.sel_id,
326               l_tax_rec.tax_due_date,
327               l_tax_rec.tax_type,
328               l_tax_rec.tax_rate_code_id,
329               l_tax_rec.tax_rate_code,
330               l_tax_rec.taxable_amount,
331               l_tax_rec.tax_exemption_id,
332               l_tax_rec.manually_entered_flag,
333               l_tax_rec.overridden_flag,
334               l_tax_rec.calculated_tax_amount,
335               l_tax_rec.tax_rate,
336               l_tax_rec.tax_amount,
337               l_tax_rec.sales_tax_id,
338               l_tax_rec.source_trx_id,
339               l_tax_rec.org_id,
340               l_tax_rec.history_yn,
341               l_tax_rec.actual_yn,
342               l_tax_rec.source_name,
343               l_tax_rec.trq_id,
344               l_tax_rec.program_id,
345               l_tax_rec.request_id,
346               l_tax_rec.program_application_id,
347               l_tax_rec.program_update_date,
348               l_tax_rec.attribute_category,
349               l_tax_rec.attribute1,
350               l_tax_rec.attribute2,
351               l_tax_rec.attribute3,
352               l_tax_rec.attribute4,
353               l_tax_rec.attribute5,
354               l_tax_rec.attribute6,
355               l_tax_rec.attribute7,
356               l_tax_rec.attribute8,
357               l_tax_rec.attribute9,
358               l_tax_rec.attribute10,
359               l_tax_rec.attribute11,
360               l_tax_rec.attribute12,
361               l_tax_rec.attribute13,
362               l_tax_rec.attribute14,
363               l_tax_rec.attribute15,
364               l_tax_rec.created_by,
365               l_tax_rec.creation_date,
366               l_tax_rec.last_updated_by,
367               l_tax_rec.last_update_date,
368               l_tax_rec.last_update_login;
369     x_no_data_found := okl_tax_pk_csr%NOTFOUND;
370     CLOSE okl_tax_pk_csr;
371     RETURN(l_tax_rec);
372   END get_rec;
373 
374   ------------------------------------------------------------------
375   -- This version of get_rec sets error messages if no data found --
376   ------------------------------------------------------------------
377   FUNCTION get_rec (
378     p_tax_rec                      IN tax_rec_type,
379     x_return_status                OUT NOCOPY VARCHAR2
380   ) RETURN tax_rec_type IS
381     l_tax_rec                      tax_rec_type;
382     l_row_notfound                 BOOLEAN := TRUE;
383   BEGIN
384     x_return_status := OKC_API.G_RET_STS_SUCCESS;
385     l_tax_rec := get_rec(p_tax_rec, l_row_notfound);
386     IF (l_row_notfound) THEN
387       OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'ID');
388       x_return_status := OKC_API.G_RET_STS_ERROR;
389     END IF;
390     RETURN(l_tax_rec);
391   END get_rec;
392   -----------------------------------------------------------
393   -- So we don't have to pass an "l_row_notfound" variable --
394   -----------------------------------------------------------
395   FUNCTION get_rec (
396     p_tax_rec                      IN tax_rec_type
397   ) RETURN tax_rec_type IS
398     l_row_not_found                BOOLEAN := TRUE;
399   BEGIN
400     RETURN(get_rec(p_tax_rec, l_row_not_found));
401   END get_rec;
402   ---------------------------------------------------------------------------
403   -- FUNCTION null_out_defaults for: OKL_TAX_LINES_V
404   ---------------------------------------------------------------------------
405   FUNCTION null_out_defaults (
406     p_OKL_TAX_LINES_rec   IN OKL_TAX_LINES_rec_type
407   ) RETURN OKL_TAX_LINES_rec_type IS
408     l_OKL_TAX_LINES_rec          OKL_TAX_LINES_rec_type := p_OKL_TAX_LINES_rec;
409   BEGIN
410     IF (l_OKL_TAX_LINES_rec.id = OKC_API.G_MISS_NUM ) THEN
411       l_OKL_TAX_LINES_rec.id := NULL;
412     END IF;
413     IF (l_OKL_TAX_LINES_rec.khr_id = OKC_API.G_MISS_NUM ) THEN
414       l_OKL_TAX_LINES_rec.khr_id := NULL;
415     END IF;
416     IF (l_OKL_TAX_LINES_rec.kle_id = OKC_API.G_MISS_NUM ) THEN
417       l_OKL_TAX_LINES_rec.kle_id := NULL;
418     END IF;
419     IF (l_OKL_TAX_LINES_rec.asset_id = OKC_API.G_MISS_NUM ) THEN
420       l_OKL_TAX_LINES_rec.asset_id := NULL;
421     END IF;
422     IF (l_OKL_TAX_LINES_rec.asset_number = OKC_API.G_MISS_CHAR ) THEN
423       l_OKL_TAX_LINES_rec.asset_number := NULL;
424     END IF;
425     IF (l_OKL_TAX_LINES_rec.tax_line_type = OKC_API.G_MISS_CHAR ) THEN
426       l_OKL_TAX_LINES_rec.tax_line_type := NULL;
427     END IF;
428     IF (l_OKL_TAX_LINES_rec.sel_id = OKC_API.G_MISS_NUM ) THEN
429       l_OKL_TAX_LINES_rec.sel_id := NULL;
430     END IF;
431     IF (l_OKL_TAX_LINES_rec.tax_due_date = OKC_API.G_MISS_DATE ) THEN
432       l_OKL_TAX_LINES_rec.tax_due_date := NULL;
433     END IF;
434     IF (l_OKL_TAX_LINES_rec.tax_type = OKC_API.G_MISS_NUM ) THEN
435       l_OKL_TAX_LINES_rec.tax_type := NULL;
436     END IF;
437     IF (l_OKL_TAX_LINES_rec.tax_rate_code_id = OKC_API.G_MISS_NUM ) THEN
438       l_OKL_TAX_LINES_rec.tax_rate_code_id := NULL;
439     END IF;
440     IF (l_OKL_TAX_LINES_rec.tax_rate_code = OKC_API.G_MISS_CHAR ) THEN
441       l_OKL_TAX_LINES_rec.tax_rate_code := NULL;
442     END IF;
443     IF (l_OKL_TAX_LINES_rec.taxable_amount = OKC_API.G_MISS_NUM ) THEN
444       l_OKL_TAX_LINES_rec.taxable_amount := NULL;
445     END IF;
446     IF (l_OKL_TAX_LINES_rec.tax_exemption_id = OKC_API.G_MISS_NUM ) THEN
447       l_OKL_TAX_LINES_rec.tax_exemption_id := NULL;
448     END IF;
449     IF (l_OKL_TAX_LINES_rec.manually_entered_flag = OKC_API.G_MISS_CHAR ) THEN
450       l_OKL_TAX_LINES_rec.manually_entered_flag := NULL;
451     END IF;
455     IF (l_OKL_TAX_LINES_rec.calculated_tax_amount = OKC_API.G_MISS_NUM ) THEN
452     IF (l_OKL_TAX_LINES_rec.overridden_flag = OKC_API.G_MISS_CHAR ) THEN
453       l_OKL_TAX_LINES_rec.overridden_flag := NULL;
454     END IF;
456       l_OKL_TAX_LINES_rec.calculated_tax_amount := NULL;
457     END IF;
458     IF (l_OKL_TAX_LINES_rec.tax_rate = OKC_API.G_MISS_NUM ) THEN
459       l_OKL_TAX_LINES_rec.tax_rate := NULL;
460     END IF;
461     IF (l_OKL_TAX_LINES_rec.tax_amount = OKC_API.G_MISS_NUM ) THEN
462       l_OKL_TAX_LINES_rec.tax_amount := NULL;
463     END IF;
464     IF (l_OKL_TAX_LINES_rec.sales_tax_id = OKC_API.G_MISS_NUM ) THEN
465       l_OKL_TAX_LINES_rec.sales_tax_id := NULL;
466     END IF;
467     IF (l_OKL_TAX_LINES_rec.source_trx_id = OKC_API.G_MISS_NUM ) THEN
468       l_OKL_TAX_LINES_rec.source_trx_id := NULL;
469     END IF;
470     IF (l_OKL_TAX_LINES_rec.org_id = OKC_API.G_MISS_NUM ) THEN
471       l_OKL_TAX_LINES_rec.org_id := NULL;
472     END IF;
473     IF (l_OKL_TAX_LINES_rec.history_yn = OKC_API.G_MISS_CHAR ) THEN
474       l_OKL_TAX_LINES_rec.history_yn := NULL;
475     END IF;
476     IF (l_OKL_TAX_LINES_rec.actual_yn = OKC_API.G_MISS_CHAR ) THEN
477       l_OKL_TAX_LINES_rec.actual_yn := NULL;
478     END IF;
479     IF (l_OKL_TAX_LINES_rec.source_name = OKC_API.G_MISS_CHAR ) THEN
480       l_OKL_TAX_LINES_rec.source_name := NULL;
481     END IF;
482     IF (l_OKL_TAX_LINES_rec.trq_id = OKC_API.G_MISS_NUM ) THEN
483       l_OKL_TAX_LINES_rec.trq_id := NULL;
484     END IF;
485     IF (l_OKL_TAX_LINES_rec.program_id = OKC_API.G_MISS_NUM ) THEN
486       l_OKL_TAX_LINES_rec.program_id := NULL;
487     END IF;
488     IF (l_OKL_TAX_LINES_rec.request_id = OKC_API.G_MISS_NUM ) THEN
489       l_OKL_TAX_LINES_rec.request_id := NULL;
490     END IF;
491     IF (l_OKL_TAX_LINES_rec.program_application_id = OKC_API.G_MISS_NUM ) THEN
492       l_OKL_TAX_LINES_rec.program_application_id := NULL;
493     END IF;
494     IF (l_OKL_TAX_LINES_rec.program_update_date = OKC_API.G_MISS_DATE ) THEN
495       l_OKL_TAX_LINES_rec.program_update_date := NULL;
496     END IF;
497     IF (l_OKL_TAX_LINES_rec.attribute_category = OKC_API.G_MISS_CHAR ) THEN
498       l_OKL_TAX_LINES_rec.attribute_category := NULL;
499     END IF;
500     IF (l_OKL_TAX_LINES_rec.attribute1 = OKC_API.G_MISS_CHAR ) THEN
501       l_OKL_TAX_LINES_rec.attribute1 := NULL;
502     END IF;
503     IF (l_OKL_TAX_LINES_rec.attribute2 = OKC_API.G_MISS_CHAR ) THEN
504       l_OKL_TAX_LINES_rec.attribute2 := NULL;
505     END IF;
506     IF (l_OKL_TAX_LINES_rec.attribute3 = OKC_API.G_MISS_CHAR ) THEN
507       l_OKL_TAX_LINES_rec.attribute3 := NULL;
508     END IF;
509     IF (l_OKL_TAX_LINES_rec.attribute4 = OKC_API.G_MISS_CHAR ) THEN
510       l_OKL_TAX_LINES_rec.attribute4 := NULL;
511     END IF;
512     IF (l_OKL_TAX_LINES_rec.attribute5 = OKC_API.G_MISS_CHAR ) THEN
513       l_OKL_TAX_LINES_rec.attribute5 := NULL;
514     END IF;
515     IF (l_OKL_TAX_LINES_rec.attribute6 = OKC_API.G_MISS_CHAR ) THEN
516       l_OKL_TAX_LINES_rec.attribute6 := NULL;
517     END IF;
518     IF (l_OKL_TAX_LINES_rec.attribute7 = OKC_API.G_MISS_CHAR ) THEN
519       l_OKL_TAX_LINES_rec.attribute7 := NULL;
520     END IF;
521     IF (l_OKL_TAX_LINES_rec.attribute8 = OKC_API.G_MISS_CHAR ) THEN
522       l_OKL_TAX_LINES_rec.attribute8 := NULL;
523     END IF;
524     IF (l_OKL_TAX_LINES_rec.attribute9 = OKC_API.G_MISS_CHAR ) THEN
525       l_OKL_TAX_LINES_rec.attribute9 := NULL;
526     END IF;
527     IF (l_OKL_TAX_LINES_rec.attribute10 = OKC_API.G_MISS_CHAR ) THEN
528       l_OKL_TAX_LINES_rec.attribute10 := NULL;
529     END IF;
530     IF (l_OKL_TAX_LINES_rec.attribute11 = OKC_API.G_MISS_CHAR ) THEN
531       l_OKL_TAX_LINES_rec.attribute11 := NULL;
532     END IF;
533     IF (l_OKL_TAX_LINES_rec.attribute12 = OKC_API.G_MISS_CHAR ) THEN
534       l_OKL_TAX_LINES_rec.attribute12 := NULL;
535     END IF;
536     IF (l_OKL_TAX_LINES_rec.attribute13 = OKC_API.G_MISS_CHAR ) THEN
537       l_OKL_TAX_LINES_rec.attribute13 := NULL;
538     END IF;
539     IF (l_OKL_TAX_LINES_rec.attribute14 = OKC_API.G_MISS_CHAR ) THEN
540       l_OKL_TAX_LINES_rec.attribute14 := NULL;
541     END IF;
542     IF (l_OKL_TAX_LINES_rec.attribute15 = OKC_API.G_MISS_CHAR ) THEN
543       l_OKL_TAX_LINES_rec.attribute15 := NULL;
544     END IF;
545     IF (l_OKL_TAX_LINES_rec.created_by = OKC_API.G_MISS_NUM ) THEN
546       l_OKL_TAX_LINES_rec.created_by := NULL;
547     END IF;
548     IF (l_OKL_TAX_LINES_rec.creation_date = OKC_API.G_MISS_DATE ) THEN
549       l_OKL_TAX_LINES_rec.creation_date := NULL;
550     END IF;
551     IF (l_OKL_TAX_LINES_rec.last_updated_by = OKC_API.G_MISS_NUM ) THEN
552       l_OKL_TAX_LINES_rec.last_updated_by := NULL;
553     END IF;
554     IF (l_OKL_TAX_LINES_rec.last_update_date = OKC_API.G_MISS_DATE ) THEN
555       l_OKL_TAX_LINES_rec.last_update_date := NULL;
556     END IF;
557     IF (l_OKL_TAX_LINES_rec.last_update_login = OKC_API.G_MISS_NUM ) THEN
558       l_OKL_TAX_LINES_rec.last_update_login := NULL;
559     END IF;
560     RETURN(l_OKL_TAX_LINES_rec);
561   END null_out_defaults;
562   ---------------------------------
563   -- Validate_Attributes for: ID --
564   ---------------------------------
565   PROCEDURE validate_id(
566     x_return_status                OUT NOCOPY VARCHAR2,
567     p_id                           IN NUMBER) IS
568   BEGIN
569     x_return_status := OKC_API.G_RET_STS_SUCCESS;
570     IF (p_id = OKC_API.G_MISS_NUM OR
571         p_id IS NULL)
572     THEN
573       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'id');
574       x_return_status := OKC_API.G_RET_STS_ERROR;
575       RAISE G_EXCEPTION_HALT_VALIDATION;
576     END IF;
577   EXCEPTION
578     WHEN G_EXCEPTION_HALT_VALIDATION THEN
579       null;
580     WHEN OTHERS THEN
584                           ,p_token1_value => SQLCODE
581       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
582                           ,p_msg_name     => G_UNEXPECTED_ERROR
583                           ,p_token1       => G_SQLCODE_TOKEN
585                           ,p_token2       => G_SQLERRM_TOKEN
586                           ,p_token2_value => SQLERRM);
587       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
588   END validate_id;
589   -------------------------------------
590   -- Validate_Attributes for: KHR_ID --
591   -------------------------------------
592   PROCEDURE validate_khr_id(
593     x_return_status                OUT NOCOPY VARCHAR2,
594     p_khr_id                       IN NUMBER) IS
595   BEGIN
596     x_return_status := OKC_API.G_RET_STS_SUCCESS;
597     IF (p_khr_id = OKC_API.G_MISS_NUM OR
598         p_khr_id IS NULL)
599     THEN
600       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'khr_id');
601       x_return_status := OKC_API.G_RET_STS_ERROR;
602       RAISE G_EXCEPTION_HALT_VALIDATION;
603     END IF;
604   EXCEPTION
605     WHEN G_EXCEPTION_HALT_VALIDATION THEN
606       null;
607     WHEN OTHERS THEN
608       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
609                           ,p_msg_name     => G_UNEXPECTED_ERROR
610                           ,p_token1       => G_SQLCODE_TOKEN
611                           ,p_token1_value => SQLCODE
612                           ,p_token2       => G_SQLERRM_TOKEN
613                           ,p_token2_value => SQLERRM);
614       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
615   END validate_khr_id;
616   --------------------------------------------
617   -- Validate_Attributes for: TAX_LINE_TYPE --
618   --------------------------------------------
619   PROCEDURE validate_tax_line_type(
620     x_return_status                OUT NOCOPY VARCHAR2,
621     p_tax_line_type                IN VARCHAR2) IS
622     l_return_status	VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
623   BEGIN
624     x_return_status := OKC_API.G_RET_STS_SUCCESS;
625     IF (p_tax_line_type = OKC_API.G_MISS_CHAR OR
626         p_tax_line_type IS NULL)
627     THEN
628       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'tax_line_type');
629       x_return_status := OKC_API.G_RET_STS_ERROR;
630       RAISE G_EXCEPTION_HALT_VALIDATION;
631     END IF;
632 
633     --Hand coded this.
634     -- Enforce Foreign Key
635     l_return_status := OKL_UTIL.check_lookup_code(G_TAX_LINE_TYPE,
636                                                   p_tax_line_type);
637     IF l_return_status <> x_return_status THEN
638        -- Notify Error
639       OKL_API.set_message(G_APP_NAME, G_NO_MATCHING_RECORD, G_COL_NAME_TOKEN, 'tax_line_type');
640       x_return_status := OKC_API.G_RET_STS_ERROR;
641       RAISE G_EXCEPTION_HALT_VALIDATION;
642     END IF;
643 
644   EXCEPTION
645     WHEN G_EXCEPTION_HALT_VALIDATION THEN
646       null;
647     WHEN OTHERS THEN
648       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
649                           ,p_msg_name     => G_UNEXPECTED_ERROR
650                           ,p_token1       => G_SQLCODE_TOKEN
651                           ,p_token1_value => SQLCODE
652                           ,p_token2       => G_SQLERRM_TOKEN
653                           ,p_token2_value => SQLERRM);
654       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
655   END validate_tax_line_type;
656   ---------------------------------------------------------------------------
657   -- FUNCTION Validate_Attributes
658   ---------------------------------------------------------------------------
659   ---------------------------------------------
660   -- Validate_Attributes for:OKL_TAX_LINES_V --
661   ---------------------------------------------
662   FUNCTION Validate_Attributes (
663     p_OKL_TAX_LINES_rec          IN OKL_TAX_LINES_rec_type
664   ) RETURN VARCHAR2 IS
665     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
666     x_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
667   BEGIN
668     -----------------------------
669     -- Column Level Validation --
670     -----------------------------
671     -- ***
672     -- id
673     -- ***
674     validate_id(x_return_status, p_OKL_TAX_LINES_rec.id);
675     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
676       l_return_status := x_return_status;
677       RAISE G_EXCEPTION_HALT_VALIDATION;
678     END IF;
679 
680     -- ***
681     -- khr_id
682     -- ***
683     validate_khr_id(x_return_status, p_OKL_TAX_LINES_rec.khr_id);
684     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
685       l_return_status := x_return_status;
686       RAISE G_EXCEPTION_HALT_VALIDATION;
687     END IF;
688 
689     -- ***
690     -- tax_line_type
691     -- ***
692     validate_tax_line_type(x_return_status, p_OKL_TAX_LINES_rec.tax_line_type);
693     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
694       l_return_status := x_return_status;
695       RAISE G_EXCEPTION_HALT_VALIDATION;
696     END IF;
697 
698     RETURN(l_return_status);
699   EXCEPTION
700     WHEN G_EXCEPTION_HALT_VALIDATION THEN
701       RETURN(l_return_status);
702     WHEN OTHERS THEN
703       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
704                           ,p_msg_name     => G_UNEXPECTED_ERROR
705                           ,p_token1       => G_SQLCODE_TOKEN
706                           ,p_token1_value => SQLCODE
707                           ,p_token2       => G_SQLERRM_TOKEN
708                           ,p_token2_value => SQLERRM);
709       l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
710       RETURN(l_return_status);
711   END Validate_Attributes;
712   ---------------------------------------------------------------------------
713   -- PROCEDURE Validate_Record
714   ---------------------------------------------------------------------------
715   -----------------------------------------
716   -- Validate Record for:OKL_TAX_LINES_V --
717   -----------------------------------------
718   FUNCTION Validate_Record (
719     p_OKL_TAX_LINES_rec IN OKL_TAX_LINES_rec_type,
720     p_db_OKL_TAX_LINES_rec IN OKL_TAX_LINES_rec_type
721   ) RETURN VARCHAR2 IS
722     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
723     ------------------------------------
724     -- FUNCTION validate_foreign_keys --
725     ------------------------------------
726     FUNCTION validate_foreign_keys (
727       p_OKL_TAX_LINES_rec IN OKL_TAX_LINES_rec_type,
728       p_db_OKL_TAX_LINES_rec IN OKL_TAX_LINES_rec_type
729     ) RETURN VARCHAR2 IS
730       item_not_found_error           EXCEPTION;
731       --Fixed Bug#5484903
732       CURSOR okl_taxv_fnd_fk_csr (p_lookup_code IN VARCHAR2) IS
733       SELECT 'x'
734         FROM Fnd_Lookups
735        WHERE fnd_lookups.lookup_type='OKL_TAX_LINE_TYPE'
736        AND fnd_lookups.lookup_code = p_lookup_code;
737       l_okl_taxv_fnd_fk              okl_taxv_fnd_fk_csr%ROWTYPE;
738 
739       CURSOR okl_taxv_trqv_fk_csr (p_id IN NUMBER) IS
740       SELECT 'x'
741         FROM OKL_TRX_REQUESTS
742        WHERE  OKL_TRX_REQUESTS.id = p_id;
743        l_okl_taxv_trqv_fk             okl_taxv_trqv_fk_csr%ROWTYPE;
744 
745       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
746       l_row_notfound                 BOOLEAN := TRUE;
747     BEGIN
748         IF ((p_OKL_TAX_LINES_rec.TAX_LINE_TYPE IS NOT NULL)
749           AND
750           (p_OKL_TAX_LINES_rec.TAX_LINE_TYPE <> p_db_OKL_TAX_LINES_rec.TAX_LINE_TYPE))
751         THEN
752         OPEN okl_taxv_trqv_fk_csr (p_OKL_TAX_LINES_rec.TRQ_ID);
753         FETCH okl_taxv_trqv_fk_csr INTO l_okl_taxv_trqv_fk;
754         l_row_notfound := okl_taxv_trqv_fk_csr%NOTFOUND;
755         CLOSE okl_taxv_trqv_fk_csr;
756         IF (l_row_notfound) THEN
757           RAISE item_not_found_error;
758         END IF;
759       END IF;
760       IF ((p_OKL_TAX_LINES_rec.TAX_LINE_TYPE IS NOT NULL)
761        AND
762           (p_OKL_TAX_LINES_rec.TAX_LINE_TYPE <> p_db_OKL_TAX_LINES_rec.TAX_LINE_TYPE))
763       THEN
764         OPEN okl_taxv_fnd_fk_csr (p_OKL_TAX_LINES_rec.TAX_LINE_TYPE);
765         FETCH okl_taxv_fnd_fk_csr INTO l_okl_taxv_fnd_fk;
766         l_row_notfound := okl_taxv_fnd_fk_csr%NOTFOUND;
767         CLOSE okl_taxv_fnd_fk_csr;
768         IF (l_row_notfound) THEN
769           OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'TAX_LINE_TYPE');
770           RAISE item_not_found_error;
771         END IF;
772       END IF;
773       RETURN (l_return_status);
774     EXCEPTION
775       WHEN item_not_found_error THEN
776         l_return_status := OKC_API.G_RET_STS_ERROR;
777         RETURN (l_return_status);
778     END validate_foreign_keys;
779   BEGIN
780     l_return_status := validate_foreign_keys(p_OKL_TAX_LINES_rec, p_db_OKL_TAX_LINES_rec);
781     RETURN (l_return_status);
782   END Validate_Record;
783   FUNCTION Validate_Record (
784     p_OKL_TAX_LINES_rec IN OKL_TAX_LINES_rec_type
785   ) RETURN VARCHAR2 IS
786     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
787     l_db_OKL_TAX_LINES_rec       OKL_TAX_LINES_rec_type := get_rec(p_OKL_TAX_LINES_rec);
788   BEGIN
789     l_return_status := Validate_Record(p_OKL_TAX_LINES_rec => p_OKL_TAX_LINES_rec,
790                                        p_db_OKL_TAX_LINES_rec => l_db_OKL_TAX_LINES_rec);
791     RETURN (l_return_status);
792   END Validate_Record;
793 
794   ---------------------------------------------------------------------------
795   -- PROCEDURE Migrate
796   ---------------------------------------------------------------------------
800   ) IS
797   PROCEDURE migrate (
798     p_from IN OKL_TAX_LINES_rec_type,
799     p_to   IN OUT NOCOPY tax_rec_type
801   BEGIN
802     p_to.id := p_from.id;
803     p_to.khr_id := p_from.khr_id;
804     p_to.kle_id := p_from.kle_id;
805     p_to.asset_id := p_from.asset_id;
806     p_to.asset_number := p_from.asset_number;
807     p_to.tax_line_type := p_from.tax_line_type;
808     p_to.sel_id := p_from.sel_id;
809     p_to.tax_due_date := p_from.tax_due_date;
810     p_to.tax_type := p_from.tax_type;
811     p_to.tax_rate_code_id := p_from.tax_rate_code_id;
812     p_to.tax_rate_code := p_from.tax_rate_code;
813     p_to.taxable_amount := p_from.taxable_amount;
814     p_to.tax_exemption_id := p_from.tax_exemption_id;
815     p_to.manually_entered_flag := p_from.manually_entered_flag;
816     p_to.overridden_flag := p_from.overridden_flag;
817     p_to.calculated_tax_amount := p_from.calculated_tax_amount;
818     p_to.tax_rate := p_from.tax_rate;
819     p_to.tax_amount := p_from.tax_amount;
820     p_to.sales_tax_id := p_from.sales_tax_id;
821     p_to.source_trx_id := p_from.source_trx_id;
822     p_to.org_id := p_from.org_id;
823     p_to.history_yn := p_from.history_yn;
824     p_to.actual_yn := p_from.actual_yn;
825     p_to.source_name := p_from.source_name;
826     p_to.trq_id := p_from.trq_id;
827     p_to.program_id := p_from.program_id;
828     p_to.request_id := p_from.request_id;
829     p_to.program_application_id := p_from.program_application_id;
830     p_to.program_update_date := p_from.program_update_date;
831     p_to.attribute_category := p_from.attribute_category;
832     p_to.attribute1 := p_from.attribute1;
833     p_to.attribute2 := p_from.attribute2;
834     p_to.attribute3 := p_from.attribute3;
835     p_to.attribute4 := p_from.attribute4;
836     p_to.attribute5 := p_from.attribute5;
837     p_to.attribute6 := p_from.attribute6;
838     p_to.attribute7 := p_from.attribute7;
839     p_to.attribute8 := p_from.attribute8;
840     p_to.attribute9 := p_from.attribute9;
841     p_to.attribute10 := p_from.attribute10;
842     p_to.attribute11 := p_from.attribute11;
843     p_to.attribute12 := p_from.attribute12;
844     p_to.attribute13 := p_from.attribute13;
845     p_to.attribute14 := p_from.attribute14;
846     p_to.attribute15 := p_from.attribute15;
847     p_to.created_by := p_from.created_by;
848     p_to.creation_date := p_from.creation_date;
849     p_to.last_updated_by := p_from.last_updated_by;
850     p_to.last_update_date := p_from.last_update_date;
851     p_to.last_update_login := p_from.last_update_login;
852   END migrate;
853   PROCEDURE migrate (
854     p_from IN tax_rec_type,
855     p_to   IN OUT NOCOPY OKL_TAX_LINES_rec_type
856   ) IS
857   BEGIN
858     p_to.id := p_from.id;
859     p_to.khr_id := p_from.khr_id;
860     p_to.kle_id := p_from.kle_id;
861     p_to.asset_id := p_from.asset_id;
862     p_to.asset_number := p_from.asset_number;
863     p_to.tax_line_type := p_from.tax_line_type;
864     p_to.sel_id := p_from.sel_id;
865     p_to.tax_due_date := p_from.tax_due_date;
866     p_to.tax_type := p_from.tax_type;
867     p_to.tax_rate_code_id := p_from.tax_rate_code_id;
868     p_to.tax_rate_code := p_from.tax_rate_code;
869     p_to.taxable_amount := p_from.taxable_amount;
870     p_to.tax_exemption_id := p_from.tax_exemption_id;
871     p_to.manually_entered_flag := p_from.manually_entered_flag;
872     p_to.overridden_flag := p_from.overridden_flag;
873     p_to.calculated_tax_amount := p_from.calculated_tax_amount;
874     p_to.tax_rate := p_from.tax_rate;
875     p_to.tax_amount := p_from.tax_amount;
876     p_to.sales_tax_id := p_from.sales_tax_id;
877     p_to.source_trx_id := p_from.source_trx_id;
878     p_to.org_id := p_from.org_id;
879     p_to.history_yn := p_from.history_yn;
880     p_to.actual_yn := p_from.actual_yn;
881     p_to.source_name := p_from.source_name;
882     p_to.trq_id := p_from.trq_id;
883     p_to.program_id := p_from.program_id;
884     p_to.request_id := p_from.request_id;
885     p_to.program_application_id := p_from.program_application_id;
886     p_to.program_update_date := p_from.program_update_date;
887     p_to.attribute_category := p_from.attribute_category;
888     p_to.attribute1 := p_from.attribute1;
889     p_to.attribute2 := p_from.attribute2;
890     p_to.attribute3 := p_from.attribute3;
891     p_to.attribute4 := p_from.attribute4;
892     p_to.attribute5 := p_from.attribute5;
893     p_to.attribute6 := p_from.attribute6;
894     p_to.attribute7 := p_from.attribute7;
895     p_to.attribute8 := p_from.attribute8;
896     p_to.attribute9 := p_from.attribute9;
897     p_to.attribute10 := p_from.attribute10;
898     p_to.attribute11 := p_from.attribute11;
899     p_to.attribute12 := p_from.attribute12;
900     p_to.attribute13 := p_from.attribute13;
901     p_to.attribute14 := p_from.attribute14;
902     p_to.attribute15 := p_from.attribute15;
903     p_to.created_by := p_from.created_by;
904     p_to.creation_date := p_from.creation_date;
905     p_to.last_updated_by := p_from.last_updated_by;
906     p_to.last_update_date := p_from.last_update_date;
907     p_to.last_update_login := p_from.last_update_login;
908   END migrate;
909   ---------------------------------------------------------------------------
910   -- PROCEDURE validate_row
911   ---------------------------------------------------------------------------
912   --------------------------------------
913   -- validate_row for:OKL_TAX_LINES_V --
914   --------------------------------------
915   PROCEDURE validate_row(
916     p_api_version                  IN NUMBER,
917     p_init_msg_list                IN VARCHAR2,
918     x_return_status                OUT NOCOPY VARCHAR2,
919     x_msg_count                    OUT NOCOPY NUMBER,
920     x_msg_data                     OUT NOCOPY VARCHAR2,
921     p_OKL_TAX_LINES_rec          IN OKL_TAX_LINES_rec_type) IS
922 
923     l_api_version                  CONSTANT NUMBER := 1;
924     l_api_name                     CONSTANT VARCHAR2(30) := 'V_validate_row';
925     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
926     l_OKL_TAX_LINES_rec          OKL_TAX_LINES_rec_type := p_OKL_TAX_LINES_rec;
927     l_tax_rec                      tax_rec_type;
928     l_tax_rec                      tax_rec_type;
929   BEGIN
930     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
931                                               G_PKG_NAME,
932                                               p_init_msg_list,
933                                               l_api_version,
934                                               p_api_version,
935                                               '_PVT',
936                                               x_return_status);
937     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
938       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
939     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
940       RAISE OKC_API.G_EXCEPTION_ERROR;
941     END IF;
942     --- Validate all non-missing attributes (Item Level Validation)
943     l_return_status := Validate_Attributes(l_OKL_TAX_LINES_rec);
944     --- If any errors happen abort API
945     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
946       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
947     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
948       RAISE OKC_API.G_EXCEPTION_ERROR;
949     END IF;
950     l_return_status := Validate_Record(l_OKL_TAX_LINES_rec);
951     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
952       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
953     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
954       RAISE OKC_API.G_EXCEPTION_ERROR;
955     END IF;
956     x_return_status := l_return_status;
957   EXCEPTION
958     WHEN OKC_API.G_EXCEPTION_ERROR THEN
959       x_return_status := OKC_API.HANDLE_EXCEPTIONS
960       (
961         l_api_name,
962         G_PKG_NAME,
963         'OKC_API.G_RET_STS_ERROR',
964         x_msg_count,
965         x_msg_data,
966         '_PVT'
967       );
968     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
969       x_return_status := OKC_API.HANDLE_EXCEPTIONS
970       (
971         l_api_name,
972         G_PKG_NAME,
973         'OKC_API.G_RET_STS_UNEXP_ERROR',
974         x_msg_count,
975         x_msg_data,
976         '_PVT'
977       );
978     WHEN OTHERS THEN
979       x_return_status := OKC_API.HANDLE_EXCEPTIONS
980       (
981         l_api_name,
982         G_PKG_NAME,
983         'OTHERS',
984         x_msg_count,
985         x_msg_data,
986         '_PVT'
987       );
988   END validate_row;
989   -------------------------------------------------
990   -- PL/SQL TBL validate_row for:OKL_TAX_LINES_V --
991   -------------------------------------------------
992   PROCEDURE validate_row(
993     p_api_version                  IN NUMBER,
994     p_init_msg_list                IN VARCHAR2,
995     x_return_status                OUT NOCOPY VARCHAR2,
996     x_msg_count                    OUT NOCOPY NUMBER,
997     x_msg_data                     OUT NOCOPY VARCHAR2,
998     p_OKL_TAX_LINES_tbl          IN OKL_TAX_LINES_tbl_type,
999     px_error_tbl                   IN OUT NOCOPY OKC_API.ERROR_TBL_TYPE) IS
1000 
1001     l_api_version                  CONSTANT NUMBER := 1;
1002     l_api_name                     CONSTANT VARCHAR2(30) := 'V_error_tbl_validate_row';
1003     i                              NUMBER := 0;
1004   BEGIN
1005     OKC_API.init_msg_list(p_init_msg_list);
1006     -- Make sure PL/SQL table has records in it before passing
1007     IF (p_OKL_TAX_LINES_tbl.COUNT > 0) THEN
1008       i := p_OKL_TAX_LINES_tbl.FIRST;
1009       LOOP
1010         DECLARE
1011           l_error_rec         OKC_API.ERROR_REC_TYPE;
1012         BEGIN
1013           l_error_rec.api_name := l_api_name;
1014           l_error_rec.api_package := G_PKG_NAME;
1015           l_error_rec.idx := i;
1016           validate_row (
1017             p_api_version                  => p_api_version,
1018             p_init_msg_list                => OKC_API.G_FALSE,
1019             x_return_status                => l_error_rec.error_type,
1020             x_msg_count                    => l_error_rec.msg_count,
1021             x_msg_data                     => l_error_rec.msg_data,
1022             p_OKL_TAX_LINES_rec          => p_OKL_TAX_LINES_tbl(i));
1023           IF (l_error_rec.error_type <> OKC_API.G_RET_STS_SUCCESS) THEN
1024             l_error_rec.sqlcode := SQLCODE;
1025             load_error_tbl(l_error_rec, px_error_tbl);
1026           ELSE
1027             x_msg_count := l_error_rec.msg_count;
1028             x_msg_data := l_error_rec.msg_data;
1029           END IF;
1030         EXCEPTION
1031           WHEN OKC_API.G_EXCEPTION_ERROR THEN
1032             l_error_rec.error_type := OKC_API.G_RET_STS_ERROR;
1033             l_error_rec.sqlcode := SQLCODE;
1034             load_error_tbl(l_error_rec, px_error_tbl);
1035           WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1036             l_error_rec.error_type := OKC_API.G_RET_STS_UNEXP_ERROR;
1037             l_error_rec.sqlcode := SQLCODE;
1038             load_error_tbl(l_error_rec, px_error_tbl);
1039           WHEN OTHERS THEN
1040             l_error_rec.error_type := 'OTHERS';
1041             l_error_rec.sqlcode := SQLCODE;
1042             load_error_tbl(l_error_rec, px_error_tbl);
1043         END;
1044         EXIT WHEN (i = p_OKL_TAX_LINES_tbl.LAST);
1045         i := p_OKL_TAX_LINES_tbl.NEXT(i);
1046       END LOOP;
1047     END IF;
1048     -- Loop through the error_tbl to find the error with the highest severity
1049     -- and return it.
1050     x_return_status := find_highest_exception(px_error_tbl);
1051     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1052   EXCEPTION
1053     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1054       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1055       (
1056         l_api_name,
1057         G_PKG_NAME,
1058         'OKC_API.G_RET_STS_ERROR',
1059         x_msg_count,
1060         x_msg_data,
1061         '_PVT'
1062       );
1063     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1064       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1065       (
1066         l_api_name,
1067         G_PKG_NAME,
1068         'OKC_API.G_RET_STS_UNEXP_ERROR',
1069         x_msg_count,
1070         x_msg_data,
1071         '_PVT'
1072       );
1073     WHEN OTHERS THEN
1074       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1075       (
1076         l_api_name,
1077         G_PKG_NAME,
1078         'OTHERS',
1079         x_msg_count,
1080         x_msg_data,
1081         '_PVT'
1082       );
1083   END validate_row;
1084 
1085   -------------------------------------------------
1086   -- PL/SQL TBL validate_row for:OKL_TAX_LINES_V --
1087   -------------------------------------------------
1088   PROCEDURE validate_row(
1089     p_api_version                  IN NUMBER,
1090     p_init_msg_list                IN VARCHAR2,
1091     x_return_status                OUT NOCOPY VARCHAR2,
1092     x_msg_count                    OUT NOCOPY NUMBER,
1093     x_msg_data                     OUT NOCOPY VARCHAR2,
1094     p_OKL_TAX_LINES_tbl          IN OKL_TAX_LINES_tbl_type) IS
1095 
1096     l_api_version                  CONSTANT NUMBER := 1;
1097     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
1098     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1099     l_error_tbl                    OKC_API.ERROR_TBL_TYPE;
1100   BEGIN
1101     OKC_API.init_msg_list(p_init_msg_list);
1102     -- Make sure PL/SQL table has records in it before passing
1103     IF (p_OKL_TAX_LINES_tbl.COUNT > 0) THEN
1104       validate_row (
1105         p_api_version                  => p_api_version,
1106         p_init_msg_list                => OKC_API.G_FALSE,
1107         x_return_status                => x_return_status,
1108         x_msg_count                    => x_msg_count,
1109         x_msg_data                     => x_msg_data,
1110         p_OKL_TAX_LINES_tbl          => p_OKL_TAX_LINES_tbl,
1111         px_error_tbl                   => l_error_tbl);
1112     END IF;
1113     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1114   EXCEPTION
1115     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1116       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1117       (
1118         l_api_name,
1119         G_PKG_NAME,
1120         'OKC_API.G_RET_STS_ERROR',
1121         x_msg_count,
1122         x_msg_data,
1123         '_PVT'
1124       );
1125     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1126       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1127       (
1128         l_api_name,
1129         G_PKG_NAME,
1130         'OKC_API.G_RET_STS_UNEXP_ERROR',
1131         x_msg_count,
1132         x_msg_data,
1133         '_PVT'
1134       );
1135     WHEN OTHERS THEN
1136       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1137       (
1138         l_api_name,
1139         G_PKG_NAME,
1140         'OTHERS',
1141         x_msg_count,
1142         x_msg_data,
1143         '_PVT'
1144       );
1145   END validate_row;
1146 
1147   ---------------------------------------------------------------------------
1148   -- PROCEDURE insert_row
1149   ---------------------------------------------------------------------------
1150   ----------------------------------
1151   -- insert_row for:OKL_TAX_LINES --
1152   ----------------------------------
1153   PROCEDURE insert_row(
1154     p_init_msg_list                IN VARCHAR2,
1155     x_return_status                OUT NOCOPY VARCHAR2,
1156     x_msg_count                    OUT NOCOPY NUMBER,
1157     x_msg_data                     OUT NOCOPY VARCHAR2,
1158     p_tax_rec                      IN tax_rec_type,
1159     x_tax_rec                      OUT NOCOPY tax_rec_type) IS
1160 
1161     l_api_version                  CONSTANT NUMBER := 1;
1162     l_api_name                     CONSTANT VARCHAR2(30) := 'B_insert_row';
1163     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1164     l_tax_rec                      tax_rec_type := p_tax_rec;
1165     l_def_tax_rec                  tax_rec_type;
1166     --------------------------------------
1167     -- Set_Attributes for:OKL_TAX_LINES --
1168     --------------------------------------
1169     FUNCTION Set_Attributes (
1170       p_tax_rec IN tax_rec_type,
1171       x_tax_rec OUT NOCOPY tax_rec_type
1172     ) RETURN VARCHAR2 IS
1173       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1174     BEGIN
1175       x_tax_rec := p_tax_rec;
1176       RETURN(l_return_status);
1177     END Set_Attributes;
1178   BEGIN
1179     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1180                                               p_init_msg_list,
1181                                               '_PVT',
1182                                               x_return_status);
1183     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1184       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1185     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1186       RAISE OKC_API.G_EXCEPTION_ERROR;
1187     END IF;
1188     --- Setting item atributes
1189     l_return_status := Set_Attributes(
1190       p_tax_rec,                         -- IN
1191       l_tax_rec);                        -- OUT
1192     --- If any errors happen abort API
1193     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1194       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1195     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1196       RAISE OKC_API.G_EXCEPTION_ERROR;
1197     END IF;
1198     INSERT INTO OKL_TAX_LINES(
1199       id,
1200       khr_id,
1201       kle_id,
1202       asset_id,
1203       asset_number,
1204       tax_line_type,
1205       sel_id,
1206       tax_due_date,
1207       tax_type,
1208       tax_rate_code_id,
1209       tax_rate_code,
1210       taxable_amount,
1211       tax_exemption_id,
1212       manually_entered_flag,
1213       overridden_flag,
1214       calculated_tax_amount,
1215       tax_rate,
1216       tax_amount,
1217       sales_tax_id,
1218       source_trx_id,
1219       org_id,
1220       history_yn,
1221       actual_yn,
1222       source_name,
1223       trq_id,
1224       program_id,
1225       request_id,
1226       program_application_id,
1227       program_update_date,
1228       attribute_category,
1229       attribute1,
1230       attribute2,
1231       attribute3,
1232       attribute4,
1233       attribute5,
1234       attribute6,
1235       attribute7,
1236       attribute8,
1237       attribute9,
1238       attribute10,
1239       attribute11,
1240       attribute12,
1241       attribute13,
1242       attribute14,
1243       attribute15,
1244       created_by,
1245       creation_date,
1246       last_updated_by,
1247       last_update_date,
1248       last_update_login)
1249     VALUES (
1250       l_tax_rec.id,
1251       l_tax_rec.khr_id,
1252       l_tax_rec.kle_id,
1253       l_tax_rec.asset_id,
1254       l_tax_rec.asset_number,
1255       l_tax_rec.tax_line_type,
1256       l_tax_rec.sel_id,
1257       l_tax_rec.tax_due_date,
1258       l_tax_rec.tax_type,
1259       l_tax_rec.tax_rate_code_id,
1260       l_tax_rec.tax_rate_code,
1261       l_tax_rec.taxable_amount,
1262       l_tax_rec.tax_exemption_id,
1263       l_tax_rec.manually_entered_flag,
1264       l_tax_rec.overridden_flag,
1265       l_tax_rec.calculated_tax_amount,
1266       l_tax_rec.tax_rate,
1267       l_tax_rec.tax_amount,
1268       l_tax_rec.sales_tax_id,
1269       l_tax_rec.source_trx_id,
1270       l_tax_rec.org_id,
1271       l_tax_rec.history_yn,
1272       l_tax_rec.actual_yn,
1273       l_tax_rec.source_name,
1274       l_tax_rec.trq_id,
1275       l_tax_rec.program_id,
1276       l_tax_rec.request_id,
1277       l_tax_rec.program_application_id,
1278       l_tax_rec.program_update_date,
1279       l_tax_rec.attribute_category,
1280       l_tax_rec.attribute1,
1281       l_tax_rec.attribute2,
1282       l_tax_rec.attribute3,
1283       l_tax_rec.attribute4,
1284       l_tax_rec.attribute5,
1285       l_tax_rec.attribute6,
1286       l_tax_rec.attribute7,
1287       l_tax_rec.attribute8,
1288       l_tax_rec.attribute9,
1289       l_tax_rec.attribute10,
1290       l_tax_rec.attribute11,
1291       l_tax_rec.attribute12,
1292       l_tax_rec.attribute13,
1293       l_tax_rec.attribute14,
1294       l_tax_rec.attribute15,
1295       l_tax_rec.created_by,
1296       l_tax_rec.creation_date,
1297       l_tax_rec.last_updated_by,
1298       l_tax_rec.last_update_date,
1299       l_tax_rec.last_update_login);
1300     -- Set OUT values
1301     x_tax_rec := l_tax_rec;
1302     x_return_status := l_return_status;
1303     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1304   EXCEPTION
1305     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1306       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1307       (
1308         l_api_name,
1309         G_PKG_NAME,
1310         'OKC_API.G_RET_STS_ERROR',
1311         x_msg_count,
1312         x_msg_data,
1313         '_PVT'
1314       );
1315     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1316       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1317       (
1318         l_api_name,
1319         G_PKG_NAME,
1320         'OKC_API.G_RET_STS_UNEXP_ERROR',
1321         x_msg_count,
1322         x_msg_data,
1323         '_PVT'
1324       );
1325     WHEN OTHERS THEN
1326       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1327       (
1328         l_api_name,
1329         G_PKG_NAME,
1330         'OTHERS',
1331         x_msg_count,
1332         x_msg_data,
1333         '_PVT'
1334       );
1335   END insert_row;
1336   -------------------------------------
1337   -- insert_row for :OKL_TAX_LINES_V --
1338   -------------------------------------
1339   PROCEDURE insert_row(
1340     p_api_version                  IN NUMBER,
1341     p_init_msg_list                IN VARCHAR2,
1342     x_return_status                OUT NOCOPY VARCHAR2,
1343     x_msg_count                    OUT NOCOPY NUMBER,
1344     x_msg_data                     OUT NOCOPY VARCHAR2,
1345     p_OKL_TAX_LINES_rec          IN OKL_TAX_LINES_rec_type,
1346     x_OKL_TAX_LINES_rec          OUT NOCOPY OKL_TAX_LINES_rec_type) IS
1347 
1348     l_api_version                  CONSTANT NUMBER := 1;
1349     l_api_name                     CONSTANT VARCHAR2(30) := 'V_insert_row';
1350     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1351     l_OKL_TAX_LINES_rec          OKL_TAX_LINES_rec_type := p_OKL_TAX_LINES_rec;
1352     l_def_OKL_TAX_LINES_rec      OKL_TAX_LINES_rec_type;
1353     l_tax_rec                      tax_rec_type;
1354     lx_tax_rec                     tax_rec_type;
1355     -------------------------------
1356     -- FUNCTION fill_who_columns --
1357     -------------------------------
1358     FUNCTION fill_who_columns (
1359       p_OKL_TAX_LINES_rec IN OKL_TAX_LINES_rec_type
1360     ) RETURN OKL_TAX_LINES_rec_type IS
1361       l_OKL_TAX_LINES_rec OKL_TAX_LINES_rec_type := p_OKL_TAX_LINES_rec;
1362     BEGIN
1363       l_OKL_TAX_LINES_rec.CREATION_DATE := SYSDATE;
1364       l_OKL_TAX_LINES_rec.CREATED_BY := FND_GLOBAL.USER_ID;
1365       l_OKL_TAX_LINES_rec.LAST_UPDATE_DATE := l_OKL_TAX_LINES_rec.CREATION_DATE;
1366       l_OKL_TAX_LINES_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
1367       l_OKL_TAX_LINES_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
1368       RETURN(l_OKL_TAX_LINES_rec);
1369     END fill_who_columns;
1370     ----------------------------------------
1371     -- Set_Attributes for:OKL_TAX_LINES_V --
1372     ----------------------------------------
1373     FUNCTION Set_Attributes (
1374       p_OKL_TAX_LINES_rec IN OKL_TAX_LINES_rec_type,
1375       x_OKL_TAX_LINES_rec OUT NOCOPY OKL_TAX_LINES_rec_type
1376     ) RETURN VARCHAR2 IS
1377       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1378     BEGIN
1379       x_OKL_TAX_LINES_rec := p_OKL_TAX_LINES_rec;
1380       RETURN(l_return_status);
1381     END Set_Attributes;
1382   BEGIN
1383     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1384                                               G_PKG_NAME,
1385                                               p_init_msg_list,
1386                                               l_api_version,
1387                                               p_api_version,
1388                                               '_PVT',
1389                                               x_return_status);
1390     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1391       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1392     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1393       RAISE OKC_API.G_EXCEPTION_ERROR;
1394     END IF;
1395     l_OKL_TAX_LINES_rec := null_out_defaults(p_OKL_TAX_LINES_rec);
1396     -- Set primary key value
1397     l_OKL_TAX_LINES_rec.ID := get_seq_id;
1398     -- Setting item attributes
1399     l_return_Status := Set_Attributes(
1400       l_OKL_TAX_LINES_rec,             -- IN
1401       l_def_OKL_TAX_LINES_rec);        -- OUT
1402     --- If any errors happen abort API
1403     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1404       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1405     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1406       RAISE OKC_API.G_EXCEPTION_ERROR;
1407     END IF;
1408     l_def_OKL_TAX_LINES_rec := fill_who_columns(l_def_OKL_TAX_LINES_rec);
1409     --- Validate all non-missing attributes (Item Level Validation)
1410     l_return_status := Validate_Attributes(l_def_OKL_TAX_LINES_rec);
1411     --- If any errors happen abort API
1412     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1413       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1414     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1415       RAISE OKC_API.G_EXCEPTION_ERROR;
1416     END IF;
1417     l_return_status := Validate_Record(l_def_OKL_TAX_LINES_rec);
1418     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1419       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1420     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1421       RAISE OKC_API.G_EXCEPTION_ERROR;
1422     END IF;
1423     -----------------------------------------
1424     -- Move VIEW record to "Child" records --
1425     -----------------------------------------
1426     migrate(l_def_OKL_TAX_LINES_rec, l_tax_rec);
1427     -----------------------------------------------
1428     -- Call the INSERT_ROW for each child record --
1429     -----------------------------------------------
1430     insert_row(
1431       p_init_msg_list,
1432       l_return_status,
1433       x_msg_count,
1434       x_msg_data,
1435       l_tax_rec,
1436       lx_tax_rec
1437     );
1438     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1439       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1440     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1441       RAISE OKC_API.G_EXCEPTION_ERROR;
1442     END IF;
1443     migrate(lx_tax_rec, l_def_OKL_TAX_LINES_rec);
1444     -- Set OUT values
1445     x_OKL_TAX_LINES_rec := l_def_OKL_TAX_LINES_rec;
1446     x_return_status := l_return_status;
1447     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1448   EXCEPTION
1449     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1450       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1451       (
1452         l_api_name,
1453         G_PKG_NAME,
1454         'OKC_API.G_RET_STS_ERROR',
1455         x_msg_count,
1456         x_msg_data,
1457         '_PVT'
1458       );
1459     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1460       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1461       (
1462         l_api_name,
1463         G_PKG_NAME,
1464         'OKC_API.G_RET_STS_UNEXP_ERROR',
1465         x_msg_count,
1466         x_msg_data,
1467         '_PVT'
1468       );
1469     WHEN OTHERS THEN
1470       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1471       (
1472         l_api_name,
1473         G_PKG_NAME,
1474         'OTHERS',
1475         x_msg_count,
1476         x_msg_data,
1477         '_PVT'
1478       );
1479   END insert_row;
1480   ---------------------------------------------------
1481   -- PL/SQL TBL insert_row for:OKL_TAX_LINES_V_TBL --
1482   ---------------------------------------------------
1483   PROCEDURE insert_row(
1484     p_api_version                  IN NUMBER,
1485     p_init_msg_list                IN VARCHAR2,
1486     x_return_status                OUT NOCOPY VARCHAR2,
1487     x_msg_count                    OUT NOCOPY NUMBER,
1488     x_msg_data                     OUT NOCOPY VARCHAR2,
1489     p_OKL_TAX_LINES_tbl          IN OKL_TAX_LINES_tbl_type,
1490     x_OKL_TAX_LINES_tbl          OUT NOCOPY OKL_TAX_LINES_tbl_type,
1491     px_error_tbl                   IN OUT NOCOPY OKC_API.ERROR_TBL_TYPE) IS
1492 
1493     l_api_version                  CONSTANT NUMBER := 1;
1494     l_api_name                     CONSTANT VARCHAR2(30) := 'V_error_tbl_insert_row';
1495     i                              NUMBER := 0;
1496   BEGIN
1497     OKC_API.init_msg_list(p_init_msg_list);
1498     -- Make sure PL/SQL table has records in it before passing
1499     IF (p_OKL_TAX_LINES_tbl.COUNT > 0) THEN
1500       i := p_OKL_TAX_LINES_tbl.FIRST;
1501       LOOP
1502         DECLARE
1503           l_error_rec         OKC_API.ERROR_REC_TYPE;
1504         BEGIN
1505           l_error_rec.api_name := l_api_name;
1506           l_error_rec.api_package := G_PKG_NAME;
1507           l_error_rec.idx := i;
1508           insert_row (
1509             p_api_version                  => p_api_version,
1510             p_init_msg_list                => OKC_API.G_FALSE,
1511             x_return_status                => l_error_rec.error_type,
1512             x_msg_count                    => l_error_rec.msg_count,
1513             x_msg_data                     => l_error_rec.msg_data,
1514             p_OKL_TAX_LINES_rec          => p_OKL_TAX_LINES_tbl(i),
1515             x_OKL_TAX_LINES_rec          => x_OKL_TAX_LINES_tbl(i));
1516           IF (l_error_rec.error_type <> OKC_API.G_RET_STS_SUCCESS) THEN
1517             l_error_rec.sqlcode := SQLCODE;
1518             load_error_tbl(l_error_rec, px_error_tbl);
1519           ELSE
1520             x_msg_count := l_error_rec.msg_count;
1521             x_msg_data := l_error_rec.msg_data;
1522           END IF;
1523         EXCEPTION
1524           WHEN OKC_API.G_EXCEPTION_ERROR THEN
1525             l_error_rec.error_type := OKC_API.G_RET_STS_ERROR;
1526             l_error_rec.sqlcode := SQLCODE;
1527             load_error_tbl(l_error_rec, px_error_tbl);
1528           WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1529             l_error_rec.error_type := OKC_API.G_RET_STS_UNEXP_ERROR;
1530             l_error_rec.sqlcode := SQLCODE;
1531             load_error_tbl(l_error_rec, px_error_tbl);
1532           WHEN OTHERS THEN
1533             l_error_rec.error_type := 'OTHERS';
1534             l_error_rec.sqlcode := SQLCODE;
1535             load_error_tbl(l_error_rec, px_error_tbl);
1536         END;
1537         EXIT WHEN (i = p_OKL_TAX_LINES_tbl.LAST);
1538         i := p_OKL_TAX_LINES_tbl.NEXT(i);
1539       END LOOP;
1540     END IF;
1541     -- Loop through the error_tbl to find the error with the highest severity
1542     -- and return it.
1543     x_return_status := find_highest_exception(px_error_tbl);
1544     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1545   EXCEPTION
1546     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1547       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1548       (
1549         l_api_name,
1550         G_PKG_NAME,
1551         'OKC_API.G_RET_STS_ERROR',
1552         x_msg_count,
1553         x_msg_data,
1554         '_PVT'
1555       );
1556     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1557       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1558       (
1559         l_api_name,
1560         G_PKG_NAME,
1561         'OKC_API.G_RET_STS_UNEXP_ERROR',
1562         x_msg_count,
1563         x_msg_data,
1564         '_PVT'
1565       );
1566     WHEN OTHERS THEN
1567       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1568       (
1569         l_api_name,
1570         G_PKG_NAME,
1571         'OTHERS',
1572         x_msg_count,
1573         x_msg_data,
1574         '_PVT'
1575       );
1576   END insert_row;
1577 
1578   ---------------------------------------------------
1579   -- PL/SQL TBL insert_row for:OKL_TAX_LINES_V_TBL --
1580   ---------------------------------------------------
1581   -- This procedure is the same as the one above except it does not have a "px_error_tbl" argument.
1582   -- This procedure was create for backward compatibility and simply is a wrapper for the one above.
1583   PROCEDURE insert_row(
1584     p_api_version                  IN NUMBER,
1585     p_init_msg_list                IN VARCHAR2,
1586     x_return_status                OUT NOCOPY VARCHAR2,
1590     x_OKL_TAX_LINES_tbl          OUT NOCOPY OKL_TAX_LINES_tbl_type) IS
1587     x_msg_count                    OUT NOCOPY NUMBER,
1588     x_msg_data                     OUT NOCOPY VARCHAR2,
1589     p_OKL_TAX_LINES_tbl          IN OKL_TAX_LINES_tbl_type,
1591 
1592     l_api_version                  CONSTANT NUMBER := 1;
1593     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
1594     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1595     l_error_tbl                    OKC_API.ERROR_TBL_TYPE;
1596   BEGIN
1597     OKC_API.init_msg_list(p_init_msg_list);
1598     -- Make sure PL/SQL table has records in it before passing
1599     IF (p_OKL_TAX_LINES_tbl.COUNT > 0) THEN
1600       insert_row (
1601         p_api_version                  => p_api_version,
1602         p_init_msg_list                => OKC_API.G_FALSE,
1603         x_return_status                => x_return_status,
1604         x_msg_count                    => x_msg_count,
1605         x_msg_data                     => x_msg_data,
1606         p_OKL_TAX_LINES_tbl          => p_OKL_TAX_LINES_tbl,
1607         x_OKL_TAX_LINES_tbl          => x_OKL_TAX_LINES_tbl,
1608         px_error_tbl                   => l_error_tbl);
1609     END IF;
1610     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1611   EXCEPTION
1612     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1613       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1614       (
1615         l_api_name,
1616         G_PKG_NAME,
1617         'OKC_API.G_RET_STS_ERROR',
1618         x_msg_count,
1619         x_msg_data,
1620         '_PVT'
1621       );
1622     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1623       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1624       (
1625         l_api_name,
1626         G_PKG_NAME,
1627         'OKC_API.G_RET_STS_UNEXP_ERROR',
1628         x_msg_count,
1629         x_msg_data,
1630         '_PVT'
1631       );
1632     WHEN OTHERS THEN
1633       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1634       (
1635         l_api_name,
1636         G_PKG_NAME,
1637         'OTHERS',
1638         x_msg_count,
1639         x_msg_data,
1640         '_PVT'
1641       );
1642   END insert_row;
1643 
1644   ---------------------------------------------------------------------------
1645   -- PROCEDURE lock_row
1646   ---------------------------------------------------------------------------
1647   --------------------------------
1648   -- lock_row for:OKL_TAX_LINES --
1649   --------------------------------
1650   PROCEDURE lock_row(
1651     p_init_msg_list                IN VARCHAR2,
1652     x_return_status                OUT NOCOPY VARCHAR2,
1653     x_msg_count                    OUT NOCOPY NUMBER,
1654     x_msg_data                     OUT NOCOPY VARCHAR2,
1655     p_tax_rec                      IN tax_rec_type) IS
1656 
1657     E_Resource_Busy                EXCEPTION;
1658     PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
1659     CURSOR lock_csr (p_tax_rec IN tax_rec_type) IS
1660     SELECT *
1661       FROM OKL_TAX_LINES
1662      WHERE ID = p_tax_rec.id
1663     FOR UPDATE NOWAIT;
1664 
1665     l_api_version                  CONSTANT NUMBER := 1;
1666     l_api_name                     CONSTANT VARCHAR2(30) := 'B_lock_row';
1667     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1668     l_lock_var                     lock_csr%ROWTYPE;
1669     l_row_notfound                 BOOLEAN := FALSE;
1670     lc_row_notfound                BOOLEAN := FALSE;
1671   BEGIN
1672     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1673                                               p_init_msg_list,
1674                                               '_PVT',
1675                                               x_return_status);
1676     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1677       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1678     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1679       RAISE OKC_API.G_EXCEPTION_ERROR;
1680     END IF;
1681     BEGIN
1682       OPEN lock_csr(p_tax_rec);
1683       FETCH lock_csr INTO l_lock_var;
1684       l_row_notfound := lock_csr%NOTFOUND;
1685       CLOSE lock_csr;
1686     EXCEPTION
1687       WHEN E_Resource_Busy THEN
1688         IF (lock_csr%ISOPEN) THEN
1689           CLOSE lock_csr;
1690         END IF;
1691         OKC_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
1692         RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
1693     END;
1694 
1695     IF ( l_row_notfound ) THEN
1696       OKC_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
1697       RAISE OKC_API.G_EXCEPTION_ERROR;
1698     ELSE
1699       IF (l_lock_var.id <> p_tax_rec.id) THEN
1700         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1701         RAISE OKC_API.G_EXCEPTION_ERROR;
1702       END IF;
1703       IF (l_lock_var.khr_id <> p_tax_rec.khr_id) THEN
1704         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1705         RAISE OKC_API.G_EXCEPTION_ERROR;
1706       END IF;
1707       IF (l_lock_var.kle_id <> p_tax_rec.kle_id) THEN
1708         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1709         RAISE OKC_API.G_EXCEPTION_ERROR;
1710       END IF;
1711       IF (l_lock_var.asset_id <> p_tax_rec.asset_id) THEN
1712         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1713         RAISE OKC_API.G_EXCEPTION_ERROR;
1714       END IF;
1715       IF (l_lock_var.asset_number <> p_tax_rec.asset_number) THEN
1716         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1717         RAISE OKC_API.G_EXCEPTION_ERROR;
1718       END IF;
1719       IF (l_lock_var.tax_line_type <> p_tax_rec.tax_line_type) THEN
1720         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1721         RAISE OKC_API.G_EXCEPTION_ERROR;
1722       END IF;
1723       IF (l_lock_var.sel_id <> p_tax_rec.sel_id) THEN
1724         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1725         RAISE OKC_API.G_EXCEPTION_ERROR;
1726       END IF;
1727       IF (l_lock_var.tax_due_date <> p_tax_rec.tax_due_date) THEN
1728         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1729         RAISE OKC_API.G_EXCEPTION_ERROR;
1730       END IF;
1731       IF (l_lock_var.tax_type <> p_tax_rec.tax_type) THEN
1732         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1733         RAISE OKC_API.G_EXCEPTION_ERROR;
1734       END IF;
1735       IF (l_lock_var.tax_rate_code_id <> p_tax_rec.tax_rate_code_id) THEN
1736         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1737         RAISE OKC_API.G_EXCEPTION_ERROR;
1738       END IF;
1739       IF (l_lock_var.tax_rate_code <> p_tax_rec.tax_rate_code) THEN
1740         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1741         RAISE OKC_API.G_EXCEPTION_ERROR;
1742       END IF;
1743       IF (l_lock_var.taxable_amount <> p_tax_rec.taxable_amount) THEN
1744         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1745         RAISE OKC_API.G_EXCEPTION_ERROR;
1746       END IF;
1747       IF (l_lock_var.tax_exemption_id <> p_tax_rec.tax_exemption_id) THEN
1748         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1749         RAISE OKC_API.G_EXCEPTION_ERROR;
1750       END IF;
1751       IF (l_lock_var.manually_entered_flag <> p_tax_rec.manually_entered_flag) THEN
1752         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1753         RAISE OKC_API.G_EXCEPTION_ERROR;
1754       END IF;
1755       IF (l_lock_var.overridden_flag <> p_tax_rec.overridden_flag) THEN
1756         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1757         RAISE OKC_API.G_EXCEPTION_ERROR;
1758       END IF;
1759       IF (l_lock_var.calculated_tax_amount <> p_tax_rec.calculated_tax_amount) THEN
1760         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1761         RAISE OKC_API.G_EXCEPTION_ERROR;
1762       END IF;
1763       IF (l_lock_var.tax_rate <> p_tax_rec.tax_rate) THEN
1764         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1765         RAISE OKC_API.G_EXCEPTION_ERROR;
1766       END IF;
1767       IF (l_lock_var.tax_amount <> p_tax_rec.tax_amount) THEN
1768         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1769         RAISE OKC_API.G_EXCEPTION_ERROR;
1770       END IF;
1771       IF (l_lock_var.sales_tax_id <> p_tax_rec.sales_tax_id) THEN
1772         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1773         RAISE OKC_API.G_EXCEPTION_ERROR;
1774       END IF;
1775       IF (l_lock_var.source_trx_id <> p_tax_rec.source_trx_id) THEN
1776         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1777         RAISE OKC_API.G_EXCEPTION_ERROR;
1778       END IF;
1779       IF (l_lock_var.org_id <> p_tax_rec.org_id) THEN
1780         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1781         RAISE OKC_API.G_EXCEPTION_ERROR;
1782       END IF;
1783       IF (l_lock_var.history_yn <> p_tax_rec.history_yn) THEN
1784         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1785         RAISE OKC_API.G_EXCEPTION_ERROR;
1786       END IF;
1787       IF (l_lock_var.actual_yn <> p_tax_rec.actual_yn) THEN
1788         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1789         RAISE OKC_API.G_EXCEPTION_ERROR;
1790       END IF;
1791       IF (l_lock_var.source_name <> p_tax_rec.source_name) THEN
1792         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1793         RAISE OKC_API.G_EXCEPTION_ERROR;
1794       END IF;
1795       IF (l_lock_var.trq_id <> p_tax_rec.trq_id) THEN
1796         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1797         RAISE OKC_API.G_EXCEPTION_ERROR;
1798       END IF;
1799       IF (l_lock_var.program_id <> p_tax_rec.program_id) THEN
1800         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1801         RAISE OKC_API.G_EXCEPTION_ERROR;
1802       END IF;
1803       IF (l_lock_var.request_id <> p_tax_rec.request_id) THEN
1804         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1805         RAISE OKC_API.G_EXCEPTION_ERROR;
1806       END IF;
1807       IF (l_lock_var.program_application_id <> p_tax_rec.program_application_id) THEN
1808         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1809         RAISE OKC_API.G_EXCEPTION_ERROR;
1810       END IF;
1811       IF (l_lock_var.program_update_date <> p_tax_rec.program_update_date) THEN
1812         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1813         RAISE OKC_API.G_EXCEPTION_ERROR;
1814       END IF;
1815       IF (l_lock_var.attribute_category <> p_tax_rec.attribute_category) THEN
1816         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1817         RAISE OKC_API.G_EXCEPTION_ERROR;
1818       END IF;
1819       IF (l_lock_var.attribute1 <> p_tax_rec.attribute1) THEN
1820         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1821         RAISE OKC_API.G_EXCEPTION_ERROR;
1822       END IF;
1823       IF (l_lock_var.attribute2 <> p_tax_rec.attribute2) THEN
1824         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1825         RAISE OKC_API.G_EXCEPTION_ERROR;
1826       END IF;
1827       IF (l_lock_var.attribute3 <> p_tax_rec.attribute3) THEN
1828         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1829         RAISE OKC_API.G_EXCEPTION_ERROR;
1830       END IF;
1831       IF (l_lock_var.attribute4 <> p_tax_rec.attribute4) THEN
1832         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1833         RAISE OKC_API.G_EXCEPTION_ERROR;
1834       END IF;
1835       IF (l_lock_var.attribute5 <> p_tax_rec.attribute5) THEN
1836         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1837         RAISE OKC_API.G_EXCEPTION_ERROR;
1838       END IF;
1839       IF (l_lock_var.attribute6 <> p_tax_rec.attribute6) THEN
1840         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1841         RAISE OKC_API.G_EXCEPTION_ERROR;
1842       END IF;
1843       IF (l_lock_var.attribute7 <> p_tax_rec.attribute7) THEN
1844         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1845         RAISE OKC_API.G_EXCEPTION_ERROR;
1846       END IF;
1847       IF (l_lock_var.attribute8 <> p_tax_rec.attribute8) THEN
1848         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1849         RAISE OKC_API.G_EXCEPTION_ERROR;
1850       END IF;
1851       IF (l_lock_var.attribute9 <> p_tax_rec.attribute9) THEN
1852         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1853         RAISE OKC_API.G_EXCEPTION_ERROR;
1854       END IF;
1855       IF (l_lock_var.attribute10 <> p_tax_rec.attribute10) THEN
1856         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1857         RAISE OKC_API.G_EXCEPTION_ERROR;
1858       END IF;
1859       IF (l_lock_var.attribute11 <> p_tax_rec.attribute11) THEN
1860         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1861         RAISE OKC_API.G_EXCEPTION_ERROR;
1862       END IF;
1863       IF (l_lock_var.attribute12 <> p_tax_rec.attribute12) THEN
1864         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1865         RAISE OKC_API.G_EXCEPTION_ERROR;
1866       END IF;
1867       IF (l_lock_var.attribute13 <> p_tax_rec.attribute13) THEN
1868         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1869         RAISE OKC_API.G_EXCEPTION_ERROR;
1870       END IF;
1871       IF (l_lock_var.attribute14 <> p_tax_rec.attribute14) THEN
1872         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1873         RAISE OKC_API.G_EXCEPTION_ERROR;
1874       END IF;
1875       IF (l_lock_var.attribute15 <> p_tax_rec.attribute15) THEN
1876         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1877         RAISE OKC_API.G_EXCEPTION_ERROR;
1878       END IF;
1879       IF (l_lock_var.created_by <> p_tax_rec.created_by) THEN
1880         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1881         RAISE OKC_API.G_EXCEPTION_ERROR;
1882       END IF;
1883       IF (l_lock_var.creation_date <> p_tax_rec.creation_date) THEN
1884         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1885         RAISE OKC_API.G_EXCEPTION_ERROR;
1886       END IF;
1887       IF (l_lock_var.last_updated_by <> p_tax_rec.last_updated_by) THEN
1888         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1889         RAISE OKC_API.G_EXCEPTION_ERROR;
1890       END IF;
1891       IF (l_lock_var.last_update_date <> p_tax_rec.last_update_date) THEN
1892         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1893         RAISE OKC_API.G_EXCEPTION_ERROR;
1894       END IF;
1895       IF (l_lock_var.last_update_login <> p_tax_rec.last_update_login) THEN
1896         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1897         RAISE OKC_API.G_EXCEPTION_ERROR;
1898       END IF;
1899     END IF;
1900     x_return_status := l_return_status;
1901     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1902   EXCEPTION
1903     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1904       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1905       (
1906         l_api_name,
1907         G_PKG_NAME,
1908         'OKC_API.G_RET_STS_ERROR',
1909         x_msg_count,
1910         x_msg_data,
1911         '_PVT'
1912       );
1913     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1914       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1915       (
1916         l_api_name,
1917         G_PKG_NAME,
1918         'OKC_API.G_RET_STS_UNEXP_ERROR',
1919         x_msg_count,
1920         x_msg_data,
1921         '_PVT'
1922       );
1923     WHEN OTHERS THEN
1924       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1925       (
1926         l_api_name,
1927         G_PKG_NAME,
1928         'OTHERS',
1929         x_msg_count,
1930         x_msg_data,
1931         '_PVT'
1932       );
1933   END lock_row;
1934   -----------------------------------
1935   -- lock_row for: OKL_TAX_LINES_V --
1936   -----------------------------------
1937   PROCEDURE lock_row(
1938     p_api_version                  IN NUMBER,
1939     p_init_msg_list                IN VARCHAR2,
1940     x_return_status                OUT NOCOPY VARCHAR2,
1941     x_msg_count                    OUT NOCOPY NUMBER,
1942     x_msg_data                     OUT NOCOPY VARCHAR2,
1943     p_OKL_TAX_LINES_rec          IN OKL_TAX_LINES_rec_type) IS
1944 
1945     l_api_version                  CONSTANT NUMBER := 1;
1946     l_api_name                     CONSTANT VARCHAR2(30) := 'V_lock_row';
1947     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1948     l_tax_rec                      tax_rec_type;
1949   BEGIN
1950     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1951                                               G_PKG_NAME,
1952                                               p_init_msg_list,
1953                                               l_api_version,
1954                                               p_api_version,
1955                                               '_PVT',
1956                                               x_return_status);
1957     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1958       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1959     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1960       RAISE OKC_API.G_EXCEPTION_ERROR;
1961     END IF;
1962     -----------------------------------------
1963     -- Move VIEW record to "Child" records --
1964     -----------------------------------------
1965     migrate(p_OKL_TAX_LINES_rec, l_tax_rec);
1966     ---------------------------------------------
1967     -- Call the LOCK_ROW for each child record --
1968     ---------------------------------------------
1969     lock_row(
1970       p_init_msg_list,
1971       l_return_status,
1972       x_msg_count,
1973       x_msg_data,
1974       l_tax_rec
1975     );
1976     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1977       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1978     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1979       RAISE OKC_API.G_EXCEPTION_ERROR;
1980     END IF;
1981     x_return_status := l_return_status;
1982     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1983   EXCEPTION
1984     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1985       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1986       (
1987         l_api_name,
1988         G_PKG_NAME,
1989         'OKC_API.G_RET_STS_ERROR',
1990         x_msg_count,
1991         x_msg_data,
1992         '_PVT'
1993       );
1994     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1995       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1996       (
1997         l_api_name,
1998         G_PKG_NAME,
1999         'OKC_API.G_RET_STS_UNEXP_ERROR',
2000         x_msg_count,
2001         x_msg_data,
2002         '_PVT'
2003       );
2004     WHEN OTHERS THEN
2005       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2006       (
2007         l_api_name,
2008         G_PKG_NAME,
2009         'OTHERS',
2010         x_msg_count,
2011         x_msg_data,
2012         '_PVT'
2013       );
2014   END lock_row;
2015   -------------------------------------------------
2016   -- PL/SQL TBL lock_row for:OKL_TAX_LINES_V_TBL --
2017   -------------------------------------------------
2018   PROCEDURE lock_row(
2019     p_api_version                  IN NUMBER,
2020     p_init_msg_list                IN VARCHAR2,
2021     x_return_status                OUT NOCOPY VARCHAR2,
2022     x_msg_count                    OUT NOCOPY NUMBER,
2023     x_msg_data                     OUT NOCOPY VARCHAR2,
2024     p_OKL_TAX_LINES_tbl          IN OKL_TAX_LINES_tbl_type,
2025     px_error_tbl                   IN OUT NOCOPY OKC_API.ERROR_TBL_TYPE) IS
2026 
2027     l_api_version                  CONSTANT NUMBER := 1;
2028     l_api_name                     CONSTANT VARCHAR2(30) := 'V_error_tbl_lock_row';
2029     i                              NUMBER := 0;
2030   BEGIN
2031     OKC_API.init_msg_list(p_init_msg_list);
2032     -- Make sure PL/SQL table has recrods in it before passing
2033     IF (p_OKL_TAX_LINES_tbl.COUNT > 0) THEN
2034       i := p_OKL_TAX_LINES_tbl.FIRST;
2035       LOOP
2036         DECLARE
2037           l_error_rec         OKC_API.ERROR_REC_TYPE;
2038         BEGIN
2039           l_error_rec.api_name := l_api_name;
2040           l_error_rec.api_package := G_PKG_NAME;
2041           l_error_rec.idx := i;
2042           lock_row(
2043             p_api_version                  => p_api_version,
2044             p_init_msg_list                => OKC_API.G_FALSE,
2045             x_return_status                => l_error_rec.error_type,
2049           IF (l_error_rec.error_type <> OKC_API.G_RET_STS_SUCCESS) THEN
2046             x_msg_count                    => l_error_rec.msg_count,
2047             x_msg_data                     => l_error_rec.msg_data,
2048             p_OKL_TAX_LINES_rec          => p_OKL_TAX_LINES_tbl(i));
2050             l_error_rec.sqlcode := SQLCODE;
2051             load_error_tbl(l_error_rec, px_error_tbl);
2052           ELSE
2053             x_msg_count := l_error_rec.msg_count;
2054             x_msg_data := l_error_rec.msg_data;
2055           END IF;
2056         EXCEPTION
2057           WHEN OKC_API.G_EXCEPTION_ERROR THEN
2058             l_error_rec.error_type := OKC_API.G_RET_STS_ERROR;
2059             l_error_rec.sqlcode := SQLCODE;
2060             load_error_tbl(l_error_rec, px_error_tbl);
2061           WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2062             l_error_rec.error_type := OKC_API.G_RET_STS_UNEXP_ERROR;
2063             l_error_rec.sqlcode := SQLCODE;
2064             load_error_tbl(l_error_rec, px_error_tbl);
2065           WHEN OTHERS THEN
2066             l_error_rec.error_type := 'OTHERS';
2067             l_error_rec.sqlcode := SQLCODE;
2068             load_error_tbl(l_error_rec, px_error_tbl);
2069         END;
2070         EXIT WHEN (i = p_OKL_TAX_LINES_tbl.LAST);
2071         i := p_OKL_TAX_LINES_tbl.NEXT(i);
2072       END LOOP;
2073     END IF;
2074     -- Loop through the error_tbl to find the error with the highest severity
2075     -- and return it.
2076     x_return_status := find_highest_exception(px_error_tbl);
2077     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2078   EXCEPTION
2079     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2080       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2081       (
2082         l_api_name,
2083         G_PKG_NAME,
2084         'OKC_API.G_RET_STS_ERROR',
2085         x_msg_count,
2086         x_msg_data,
2087         '_PVT'
2088       );
2089     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2090       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2091       (
2092         l_api_name,
2093         G_PKG_NAME,
2094         'OKC_API.G_RET_STS_UNEXP_ERROR',
2095         x_msg_count,
2096         x_msg_data,
2097         '_PVT'
2098       );
2099     WHEN OTHERS THEN
2100       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2101       (
2102         l_api_name,
2103         G_PKG_NAME,
2104         'OTHERS',
2105         x_msg_count,
2106         x_msg_data,
2107         '_PVT'
2108       );
2109   END lock_row;
2110   -------------------------------------------------
2111   -- PL/SQL TBL lock_row for:OKL_TAX_LINES_V_TBL --
2112   -------------------------------------------------
2113   PROCEDURE lock_row(
2114     p_api_version                  IN NUMBER,
2115     p_init_msg_list                IN VARCHAR2,
2116     x_return_status                OUT NOCOPY VARCHAR2,
2117     x_msg_count                    OUT NOCOPY NUMBER,
2118     x_msg_data                     OUT NOCOPY VARCHAR2,
2119     p_OKL_TAX_LINES_tbl          IN OKL_TAX_LINES_tbl_type) IS
2120 
2121     l_api_version                  CONSTANT NUMBER := 1;
2122     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
2123     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2124     l_error_tbl                    OKC_API.ERROR_TBL_TYPE;
2125   BEGIN
2126     OKC_API.init_msg_list(p_init_msg_list);
2127     -- Make sure PL/SQL table has recrods in it before passing
2128     IF (p_OKL_TAX_LINES_tbl.COUNT > 0) THEN
2129       lock_row(
2130         p_api_version                  => p_api_version,
2131         p_init_msg_list                => OKC_API.G_FALSE,
2132         x_return_status                => x_return_status,
2133         x_msg_count                    => x_msg_count,
2134         x_msg_data                     => x_msg_data,
2135         p_OKL_TAX_LINES_tbl          => p_OKL_TAX_LINES_tbl,
2136         px_error_tbl                   => l_error_tbl);
2137     END IF;
2138     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2139   EXCEPTION
2140     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2141       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2142       (
2143         l_api_name,
2144         G_PKG_NAME,
2145         'OKC_API.G_RET_STS_ERROR',
2146         x_msg_count,
2147         x_msg_data,
2148         '_PVT'
2149       );
2150     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2151       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2152       (
2153         l_api_name,
2154         G_PKG_NAME,
2155         'OKC_API.G_RET_STS_UNEXP_ERROR',
2156         x_msg_count,
2157         x_msg_data,
2158         '_PVT'
2159       );
2160     WHEN OTHERS THEN
2161       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2162       (
2163         l_api_name,
2164         G_PKG_NAME,
2165         'OTHERS',
2166         x_msg_count,
2167         x_msg_data,
2168         '_PVT'
2169       );
2170   END lock_row;
2171   ---------------------------------------------------------------------------
2172   -- PROCEDURE update_row
2173   ---------------------------------------------------------------------------
2174   ----------------------------------
2175   -- update_row for:OKL_TAX_LINES --
2176   ----------------------------------
2177   PROCEDURE update_row(
2178     p_init_msg_list                IN VARCHAR2,
2179     x_return_status                OUT NOCOPY VARCHAR2,
2180     x_msg_count                    OUT NOCOPY NUMBER,
2181     x_msg_data                     OUT NOCOPY VARCHAR2,
2182     p_tax_rec                      IN tax_rec_type,
2183     x_tax_rec                      OUT NOCOPY tax_rec_type) IS
2184 
2185     l_api_version                  CONSTANT NUMBER := 1;
2186     l_api_name                     CONSTANT VARCHAR2(30) := 'B_update_row';
2187     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2188     l_tax_rec                      tax_rec_type := p_tax_rec;
2189     l_def_tax_rec                  tax_rec_type;
2190     l_row_notfound                 BOOLEAN := TRUE;
2191     ----------------------------------
2192     -- FUNCTION populate_new_record --
2193     ----------------------------------
2194     FUNCTION populate_new_record (
2195       p_tax_rec IN tax_rec_type,
2196       x_tax_rec OUT NOCOPY tax_rec_type
2197     ) RETURN VARCHAR2 IS
2198       l_tax_rec                      tax_rec_type;
2199       l_row_notfound                 BOOLEAN := TRUE;
2200       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2201     BEGIN
2202       x_tax_rec := p_tax_rec;
2203       -- Get current database values
2204       l_tax_rec := get_rec(p_tax_rec, l_return_status);
2205       IF (l_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
2206         IF (x_tax_rec.id = OKC_API.G_MISS_NUM)
2207         THEN
2208           x_tax_rec.id := l_tax_rec.id;
2209         END IF;
2210         IF (x_tax_rec.khr_id = OKC_API.G_MISS_NUM)
2211         THEN
2212           x_tax_rec.khr_id := l_tax_rec.khr_id;
2213         END IF;
2214         IF (x_tax_rec.kle_id = OKC_API.G_MISS_NUM)
2215         THEN
2216           x_tax_rec.kle_id := l_tax_rec.kle_id;
2217         END IF;
2218         IF (x_tax_rec.asset_id = OKC_API.G_MISS_NUM)
2219         THEN
2220           x_tax_rec.asset_id := l_tax_rec.asset_id;
2221         END IF;
2222         IF (x_tax_rec.asset_number = OKC_API.G_MISS_CHAR)
2223         THEN
2224           x_tax_rec.asset_number := l_tax_rec.asset_number;
2225         END IF;
2226         IF (x_tax_rec.tax_line_type = OKC_API.G_MISS_CHAR)
2227         THEN
2228           x_tax_rec.tax_line_type := l_tax_rec.tax_line_type;
2229         END IF;
2230         IF (x_tax_rec.sel_id = OKC_API.G_MISS_NUM)
2231         THEN
2232           x_tax_rec.sel_id := l_tax_rec.sel_id;
2233         END IF;
2234         IF (x_tax_rec.tax_due_date = OKC_API.G_MISS_DATE)
2235         THEN
2236           x_tax_rec.tax_due_date := l_tax_rec.tax_due_date;
2237         END IF;
2238         IF (x_tax_rec.tax_type = OKC_API.G_MISS_NUM)
2239         THEN
2240           x_tax_rec.tax_type := l_tax_rec.tax_type;
2241         END IF;
2242         IF (x_tax_rec.tax_rate_code_id = OKC_API.G_MISS_NUM)
2243         THEN
2244           x_tax_rec.tax_rate_code_id := l_tax_rec.tax_rate_code_id;
2245         END IF;
2246         IF (x_tax_rec.tax_rate_code = OKC_API.G_MISS_CHAR)
2247         THEN
2248           x_tax_rec.tax_rate_code := l_tax_rec.tax_rate_code;
2249         END IF;
2250         IF (x_tax_rec.taxable_amount = OKC_API.G_MISS_NUM)
2251         THEN
2252           x_tax_rec.taxable_amount := l_tax_rec.taxable_amount;
2253         END IF;
2254         IF (x_tax_rec.tax_exemption_id = OKC_API.G_MISS_NUM)
2255         THEN
2256           x_tax_rec.tax_exemption_id := l_tax_rec.tax_exemption_id;
2257         END IF;
2258         IF (x_tax_rec.manually_entered_flag = OKC_API.G_MISS_CHAR)
2259         THEN
2260           x_tax_rec.manually_entered_flag := l_tax_rec.manually_entered_flag;
2261         END IF;
2262         IF (x_tax_rec.overridden_flag = OKC_API.G_MISS_CHAR)
2263         THEN
2264           x_tax_rec.overridden_flag := l_tax_rec.overridden_flag;
2265         END IF;
2266         IF (x_tax_rec.calculated_tax_amount = OKC_API.G_MISS_NUM)
2267         THEN
2268           x_tax_rec.calculated_tax_amount := l_tax_rec.calculated_tax_amount;
2269         END IF;
2270         IF (x_tax_rec.tax_rate = OKC_API.G_MISS_NUM)
2271         THEN
2272           x_tax_rec.tax_rate := l_tax_rec.tax_rate;
2273         END IF;
2274         IF (x_tax_rec.tax_amount = OKC_API.G_MISS_NUM)
2275         THEN
2276           x_tax_rec.tax_amount := l_tax_rec.tax_amount;
2277         END IF;
2278         IF (x_tax_rec.sales_tax_id = OKC_API.G_MISS_NUM)
2279         THEN
2280           x_tax_rec.sales_tax_id := l_tax_rec.sales_tax_id;
2281         END IF;
2282         IF (x_tax_rec.source_trx_id = OKC_API.G_MISS_NUM)
2283         THEN
2284           x_tax_rec.source_trx_id := l_tax_rec.source_trx_id;
2285         END IF;
2286         IF (x_tax_rec.org_id = OKC_API.G_MISS_NUM)
2287         THEN
2288           x_tax_rec.org_id := l_tax_rec.org_id;
2289         END IF;
2290         IF (x_tax_rec.history_yn = OKC_API.G_MISS_CHAR)
2291         THEN
2292           x_tax_rec.history_yn := l_tax_rec.history_yn;
2293         END IF;
2294         IF (x_tax_rec.actual_yn = OKC_API.G_MISS_CHAR)
2295         THEN
2296           x_tax_rec.actual_yn := l_tax_rec.actual_yn;
2297         END IF;
2298         IF (x_tax_rec.source_name = OKC_API.G_MISS_CHAR)
2299         THEN
2300           x_tax_rec.source_name := l_tax_rec.source_name;
2301         END IF;
2302         IF (x_tax_rec.trq_id = OKC_API.G_MISS_NUM)
2303         THEN
2304           x_tax_rec.trq_id := l_tax_rec.trq_id;
2305         END IF;
2306         IF (x_tax_rec.program_id = OKC_API.G_MISS_NUM)
2307         THEN
2308           x_tax_rec.program_id := l_tax_rec.program_id;
2309         END IF;
2310         IF (x_tax_rec.request_id = OKC_API.G_MISS_NUM)
2311         THEN
2312           x_tax_rec.request_id := l_tax_rec.request_id;
2313         END IF;
2314         IF (x_tax_rec.program_application_id = OKC_API.G_MISS_NUM)
2315         THEN
2316           x_tax_rec.program_application_id := l_tax_rec.program_application_id;
2317         END IF;
2318         IF (x_tax_rec.program_update_date = OKC_API.G_MISS_DATE)
2319         THEN
2320           x_tax_rec.program_update_date := l_tax_rec.program_update_date;
2321         END IF;
2322         IF (x_tax_rec.attribute_category = OKC_API.G_MISS_CHAR)
2323         THEN
2324           x_tax_rec.attribute_category := l_tax_rec.attribute_category;
2325         END IF;
2326         IF (x_tax_rec.attribute1 = OKC_API.G_MISS_CHAR)
2327         THEN
2328           x_tax_rec.attribute1 := l_tax_rec.attribute1;
2329         END IF;
2330         IF (x_tax_rec.attribute2 = OKC_API.G_MISS_CHAR)
2331         THEN
2332           x_tax_rec.attribute2 := l_tax_rec.attribute2;
2333         END IF;
2334         IF (x_tax_rec.attribute3 = OKC_API.G_MISS_CHAR)
2335         THEN
2336           x_tax_rec.attribute3 := l_tax_rec.attribute3;
2337         END IF;
2338         IF (x_tax_rec.attribute4 = OKC_API.G_MISS_CHAR)
2339         THEN
2340           x_tax_rec.attribute4 := l_tax_rec.attribute4;
2341         END IF;
2342         IF (x_tax_rec.attribute5 = OKC_API.G_MISS_CHAR)
2343         THEN
2344           x_tax_rec.attribute5 := l_tax_rec.attribute5;
2345         END IF;
2346         IF (x_tax_rec.attribute6 = OKC_API.G_MISS_CHAR)
2347         THEN
2348           x_tax_rec.attribute6 := l_tax_rec.attribute6;
2349         END IF;
2350         IF (x_tax_rec.attribute7 = OKC_API.G_MISS_CHAR)
2351         THEN
2352           x_tax_rec.attribute7 := l_tax_rec.attribute7;
2353         END IF;
2354         IF (x_tax_rec.attribute8 = OKC_API.G_MISS_CHAR)
2355         THEN
2356           x_tax_rec.attribute8 := l_tax_rec.attribute8;
2357         END IF;
2358         IF (x_tax_rec.attribute9 = OKC_API.G_MISS_CHAR)
2359         THEN
2360           x_tax_rec.attribute9 := l_tax_rec.attribute9;
2361         END IF;
2362         IF (x_tax_rec.attribute10 = OKC_API.G_MISS_CHAR)
2363         THEN
2364           x_tax_rec.attribute10 := l_tax_rec.attribute10;
2365         END IF;
2366         IF (x_tax_rec.attribute11 = OKC_API.G_MISS_CHAR)
2367         THEN
2368           x_tax_rec.attribute11 := l_tax_rec.attribute11;
2369         END IF;
2370         IF (x_tax_rec.attribute12 = OKC_API.G_MISS_CHAR)
2371         THEN
2372           x_tax_rec.attribute12 := l_tax_rec.attribute12;
2373         END IF;
2374         IF (x_tax_rec.attribute13 = OKC_API.G_MISS_CHAR)
2375         THEN
2376           x_tax_rec.attribute13 := l_tax_rec.attribute13;
2377         END IF;
2378         IF (x_tax_rec.attribute14 = OKC_API.G_MISS_CHAR)
2379         THEN
2380           x_tax_rec.attribute14 := l_tax_rec.attribute14;
2381         END IF;
2382         IF (x_tax_rec.attribute15 = OKC_API.G_MISS_CHAR)
2383         THEN
2384           x_tax_rec.attribute15 := l_tax_rec.attribute15;
2385         END IF;
2386         IF (x_tax_rec.created_by = OKC_API.G_MISS_NUM)
2387         THEN
2388           x_tax_rec.created_by := l_tax_rec.created_by;
2389         END IF;
2390         IF (x_tax_rec.creation_date = OKC_API.G_MISS_DATE)
2391         THEN
2392           x_tax_rec.creation_date := l_tax_rec.creation_date;
2393         END IF;
2394         IF (x_tax_rec.last_updated_by = OKC_API.G_MISS_NUM)
2395         THEN
2396           x_tax_rec.last_updated_by := l_tax_rec.last_updated_by;
2397         END IF;
2398         IF (x_tax_rec.last_update_date = OKC_API.G_MISS_DATE)
2399         THEN
2400           x_tax_rec.last_update_date := l_tax_rec.last_update_date;
2401         END IF;
2402         IF (x_tax_rec.last_update_login = OKC_API.G_MISS_NUM)
2403         THEN
2404           x_tax_rec.last_update_login := l_tax_rec.last_update_login;
2405         END IF;
2406       END IF;
2407       RETURN(l_return_status);
2408     END populate_new_record;
2409     --------------------------------------
2410     -- Set_Attributes for:OKL_TAX_LINES --
2411     --------------------------------------
2412     FUNCTION Set_Attributes (
2413       p_tax_rec IN tax_rec_type,
2414       x_tax_rec OUT NOCOPY tax_rec_type
2415     ) RETURN VARCHAR2 IS
2419       RETURN(l_return_status);
2416       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2417     BEGIN
2418       x_tax_rec := p_tax_rec;
2420     END Set_Attributes;
2421   BEGIN
2422     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2423                                               p_init_msg_list,
2424                                               '_PVT',
2425                                               x_return_status);
2426     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2427       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2428     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2429       RAISE OKC_API.G_EXCEPTION_ERROR;
2430     END IF;
2431     --- Setting item attributes
2432     l_return_status := Set_Attributes(
2433       p_tax_rec,                         -- IN
2434       l_tax_rec);                        -- OUT
2435     --- If any errors happen abort API
2436     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2437       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2438     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2439       RAISE OKC_API.G_EXCEPTION_ERROR;
2440     END IF;
2441     l_return_status := populate_new_record(l_tax_rec, l_def_tax_rec);
2442     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2443       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2444     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2445       RAISE OKC_API.G_EXCEPTION_ERROR;
2446     END IF;
2447     UPDATE OKL_TAX_LINES
2448     SET KHR_ID = l_def_tax_rec.khr_id,
2449         KLE_ID = l_def_tax_rec.kle_id,
2450         ASSET_ID = l_def_tax_rec.asset_id,
2451         ASSET_NUMBER = l_def_tax_rec.asset_number,
2452         TAX_LINE_TYPE = l_def_tax_rec.tax_line_type,
2453         SEL_ID = l_def_tax_rec.sel_id,
2454         TAX_DUE_DATE = l_def_tax_rec.tax_due_date,
2455         TAX_TYPE = l_def_tax_rec.tax_type,
2456         TAX_RATE_CODE_ID = l_def_tax_rec.tax_rate_code_id,
2457         TAX_RATE_CODE = l_def_tax_rec.tax_rate_code,
2458         TAXABLE_AMOUNT = l_def_tax_rec.taxable_amount,
2459         TAX_EXEMPTION_ID = l_def_tax_rec.tax_exemption_id,
2460         MANUALLY_ENTERED_FLAG = l_def_tax_rec.manually_entered_flag,
2461         OVERRIDDEN_FLAG = l_def_tax_rec.overridden_flag,
2462         CALCULATED_TAX_AMOUNT = l_def_tax_rec.calculated_tax_amount,
2463         TAX_RATE = l_def_tax_rec.tax_rate,
2464         TAX_AMOUNT = l_def_tax_rec.tax_amount,
2465         SALES_TAX_ID = l_def_tax_rec.sales_tax_id,
2466         SOURCE_TRX_ID = l_def_tax_rec.source_trx_id,
2467         ORG_ID = l_def_tax_rec.org_id,
2468         HISTORY_YN = l_def_tax_rec.history_yn,
2469         ACTUAL_YN = l_def_tax_rec.actual_yn,
2470         SOURCE_NAME = l_def_tax_rec.source_name,
2471         TRQ_ID = l_def_tax_rec.trq_id,
2472         PROGRAM_ID = l_def_tax_rec.program_id,
2473         REQUEST_ID = l_def_tax_rec.request_id,
2474         PROGRAM_APPLICATION_ID = l_def_tax_rec.program_application_id,
2475         PROGRAM_UPDATE_DATE = l_def_tax_rec.program_update_date,
2476         ATTRIBUTE_CATEGORY = l_def_tax_rec.attribute_category,
2477         ATTRIBUTE1 = l_def_tax_rec.attribute1,
2478         ATTRIBUTE2 = l_def_tax_rec.attribute2,
2479         ATTRIBUTE3 = l_def_tax_rec.attribute3,
2480         ATTRIBUTE4 = l_def_tax_rec.attribute4,
2481         ATTRIBUTE5 = l_def_tax_rec.attribute5,
2482         ATTRIBUTE6 = l_def_tax_rec.attribute6,
2483         ATTRIBUTE7 = l_def_tax_rec.attribute7,
2484         ATTRIBUTE8 = l_def_tax_rec.attribute8,
2485         ATTRIBUTE9 = l_def_tax_rec.attribute9,
2486         ATTRIBUTE10 = l_def_tax_rec.attribute10,
2487         ATTRIBUTE11 = l_def_tax_rec.attribute11,
2488         ATTRIBUTE12 = l_def_tax_rec.attribute12,
2489         ATTRIBUTE13 = l_def_tax_rec.attribute13,
2490         ATTRIBUTE14 = l_def_tax_rec.attribute14,
2491         ATTRIBUTE15 = l_def_tax_rec.attribute15,
2492         CREATED_BY = l_def_tax_rec.created_by,
2493         CREATION_DATE = l_def_tax_rec.creation_date,
2494         LAST_UPDATED_BY = l_def_tax_rec.last_updated_by,
2495         LAST_UPDATE_DATE = l_def_tax_rec.last_update_date,
2496         LAST_UPDATE_LOGIN = l_def_tax_rec.last_update_login
2497     WHERE ID = l_def_tax_rec.id;
2498 
2499     x_tax_rec := l_tax_rec;
2500     x_return_status := l_return_status;
2501     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2502   EXCEPTION
2503     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2504       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2505       (
2506         l_api_name,
2507         G_PKG_NAME,
2508         'OKC_API.G_RET_STS_ERROR',
2509         x_msg_count,
2510         x_msg_data,
2511         '_PVT'
2512       );
2513     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2514       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2515       (
2516         l_api_name,
2517         G_PKG_NAME,
2518         'OKC_API.G_RET_STS_UNEXP_ERROR',
2519         x_msg_count,
2520         x_msg_data,
2521         '_PVT'
2522       );
2523     WHEN OTHERS THEN
2524       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2525       (
2526         l_api_name,
2527         G_PKG_NAME,
2528         'OTHERS',
2529         x_msg_count,
2530         x_msg_data,
2531         '_PVT'
2532       );
2533   END update_row;
2534   ------------------------------------
2535   -- update_row for:OKL_TAX_LINES_V --
2536   ------------------------------------
2537   PROCEDURE update_row(
2538     p_api_version                  IN NUMBER,
2539     p_init_msg_list                IN VARCHAR2,
2540     x_return_status                OUT NOCOPY VARCHAR2,
2541     x_msg_count                    OUT NOCOPY NUMBER,
2542     x_msg_data                     OUT NOCOPY VARCHAR2,
2543     p_OKL_TAX_LINES_rec          IN OKL_TAX_LINES_rec_type,
2547     l_api_name                     CONSTANT VARCHAR2(30) := 'V_update_row';
2544     x_OKL_TAX_LINES_rec          OUT NOCOPY OKL_TAX_LINES_rec_type) IS
2545 
2546     l_api_version                  CONSTANT NUMBER := 1;
2548     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2549     l_OKL_TAX_LINES_rec          OKL_TAX_LINES_rec_type := p_OKL_TAX_LINES_rec;
2550     l_def_OKL_TAX_LINES_rec      OKL_TAX_LINES_rec_type;
2551     l_db_OKL_TAX_LINES_rec       OKL_TAX_LINES_rec_type;
2552     l_tax_rec                      tax_rec_type;
2553     lx_tax_rec                     tax_rec_type;
2554     -------------------------------
2555     -- FUNCTION fill_who_columns --
2556     -------------------------------
2557     FUNCTION fill_who_columns (
2558       p_OKL_TAX_LINES_rec IN OKL_TAX_LINES_rec_type
2559     ) RETURN OKL_TAX_LINES_rec_type IS
2560       l_OKL_TAX_LINES_rec OKL_TAX_LINES_rec_type := p_OKL_TAX_LINES_rec;
2561     BEGIN
2562       l_OKL_TAX_LINES_rec.LAST_UPDATE_DATE := SYSDATE;
2563       l_OKL_TAX_LINES_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
2564       l_OKL_TAX_LINES_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
2565       RETURN(l_OKL_TAX_LINES_rec);
2566     END fill_who_columns;
2567     ----------------------------------
2568     -- FUNCTION populate_new_record --
2569     ----------------------------------
2570     FUNCTION populate_new_record (
2571       p_OKL_TAX_LINES_rec IN OKL_TAX_LINES_rec_type,
2572       x_OKL_TAX_LINES_rec OUT NOCOPY OKL_TAX_LINES_rec_type
2573     ) RETURN VARCHAR2 IS
2574       l_row_notfound                 BOOLEAN := TRUE;
2575       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2576     BEGIN
2577       x_OKL_TAX_LINES_rec := p_OKL_TAX_LINES_rec;
2578       -- Get current database values
2579       -- NOTE: Never assign the OBJECT_VERSION_NUMBER.  Force the user to pass it
2580       --       so it may be verified through LOCK_ROW.
2581       l_db_OKL_TAX_LINES_rec := get_rec(p_OKL_TAX_LINES_rec, l_return_status);
2582       IF (l_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
2583         IF (x_OKL_TAX_LINES_rec.id = OKC_API.G_MISS_NUM)
2584         THEN
2585           x_OKL_TAX_LINES_rec.id := l_db_OKL_TAX_LINES_rec.id;
2586         END IF;
2587         IF (x_OKL_TAX_LINES_rec.khr_id = OKC_API.G_MISS_NUM)
2588         THEN
2589           x_OKL_TAX_LINES_rec.khr_id := l_db_OKL_TAX_LINES_rec.khr_id;
2590         END IF;
2591         IF (x_OKL_TAX_LINES_rec.kle_id = OKC_API.G_MISS_NUM)
2592         THEN
2593           x_OKL_TAX_LINES_rec.kle_id := l_db_OKL_TAX_LINES_rec.kle_id;
2594         END IF;
2595         IF (x_OKL_TAX_LINES_rec.asset_id = OKC_API.G_MISS_NUM)
2596         THEN
2597           x_OKL_TAX_LINES_rec.asset_id := l_db_OKL_TAX_LINES_rec.asset_id;
2598         END IF;
2599         IF (x_OKL_TAX_LINES_rec.asset_number = OKC_API.G_MISS_CHAR)
2600         THEN
2601           x_OKL_TAX_LINES_rec.asset_number := l_db_OKL_TAX_LINES_rec.asset_number;
2602         END IF;
2603         IF (x_OKL_TAX_LINES_rec.tax_line_type = OKC_API.G_MISS_CHAR)
2604         THEN
2605           x_OKL_TAX_LINES_rec.tax_line_type := l_db_OKL_TAX_LINES_rec.tax_line_type;
2606         END IF;
2607         IF (x_OKL_TAX_LINES_rec.sel_id = OKC_API.G_MISS_NUM)
2608         THEN
2609           x_OKL_TAX_LINES_rec.sel_id := l_db_OKL_TAX_LINES_rec.sel_id;
2610         END IF;
2611         IF (x_OKL_TAX_LINES_rec.tax_due_date = OKC_API.G_MISS_DATE)
2612         THEN
2613           x_OKL_TAX_LINES_rec.tax_due_date := l_db_OKL_TAX_LINES_rec.tax_due_date;
2614         END IF;
2615         IF (x_OKL_TAX_LINES_rec.tax_type = OKC_API.G_MISS_NUM)
2616         THEN
2617           x_OKL_TAX_LINES_rec.tax_type := l_db_OKL_TAX_LINES_rec.tax_type;
2618         END IF;
2619         IF (x_OKL_TAX_LINES_rec.tax_rate_code_id = OKC_API.G_MISS_NUM)
2620         THEN
2621           x_OKL_TAX_LINES_rec.tax_rate_code_id := l_db_OKL_TAX_LINES_rec.tax_rate_code_id;
2622         END IF;
2623         IF (x_OKL_TAX_LINES_rec.tax_rate_code = OKC_API.G_MISS_CHAR)
2624         THEN
2625           x_OKL_TAX_LINES_rec.tax_rate_code := l_db_OKL_TAX_LINES_rec.tax_rate_code;
2626         END IF;
2627         IF (x_OKL_TAX_LINES_rec.taxable_amount = OKC_API.G_MISS_NUM)
2628         THEN
2629           x_OKL_TAX_LINES_rec.taxable_amount := l_db_OKL_TAX_LINES_rec.taxable_amount;
2630         END IF;
2631         IF (x_OKL_TAX_LINES_rec.tax_exemption_id = OKC_API.G_MISS_NUM)
2632         THEN
2633           x_OKL_TAX_LINES_rec.tax_exemption_id := l_db_OKL_TAX_LINES_rec.tax_exemption_id;
2634         END IF;
2635         IF (x_OKL_TAX_LINES_rec.manually_entered_flag = OKC_API.G_MISS_CHAR)
2636         THEN
2637           x_OKL_TAX_LINES_rec.manually_entered_flag := l_db_OKL_TAX_LINES_rec.manually_entered_flag;
2638         END IF;
2639         IF (x_OKL_TAX_LINES_rec.overridden_flag = OKC_API.G_MISS_CHAR)
2640         THEN
2641           x_OKL_TAX_LINES_rec.overridden_flag := l_db_OKL_TAX_LINES_rec.overridden_flag;
2642         END IF;
2643         IF (x_OKL_TAX_LINES_rec.calculated_tax_amount = OKC_API.G_MISS_NUM)
2644         THEN
2645           x_OKL_TAX_LINES_rec.calculated_tax_amount := l_db_OKL_TAX_LINES_rec.calculated_tax_amount;
2646         END IF;
2647         IF (x_OKL_TAX_LINES_rec.tax_rate = OKC_API.G_MISS_NUM)
2648         THEN
2649           x_OKL_TAX_LINES_rec.tax_rate := l_db_OKL_TAX_LINES_rec.tax_rate;
2650         END IF;
2651         IF (x_OKL_TAX_LINES_rec.tax_amount = OKC_API.G_MISS_NUM)
2652         THEN
2653           x_OKL_TAX_LINES_rec.tax_amount := l_db_OKL_TAX_LINES_rec.tax_amount;
2654         END IF;
2655         IF (x_OKL_TAX_LINES_rec.sales_tax_id = OKC_API.G_MISS_NUM)
2656         THEN
2657           x_OKL_TAX_LINES_rec.sales_tax_id := l_db_OKL_TAX_LINES_rec.sales_tax_id;
2658         END IF;
2659         IF (x_OKL_TAX_LINES_rec.source_trx_id = OKC_API.G_MISS_NUM)
2660         THEN
2664         THEN
2661           x_OKL_TAX_LINES_rec.source_trx_id := l_db_OKL_TAX_LINES_rec.source_trx_id;
2662         END IF;
2663         IF (x_OKL_TAX_LINES_rec.org_id = OKC_API.G_MISS_NUM)
2665           x_OKL_TAX_LINES_rec.org_id := l_db_OKL_TAX_LINES_rec.org_id;
2666         END IF;
2667         IF (x_OKL_TAX_LINES_rec.history_yn = OKC_API.G_MISS_CHAR)
2668         THEN
2669           x_OKL_TAX_LINES_rec.history_yn := l_db_OKL_TAX_LINES_rec.history_yn;
2670         END IF;
2671         IF (x_OKL_TAX_LINES_rec.actual_yn = OKC_API.G_MISS_CHAR)
2672         THEN
2673           x_OKL_TAX_LINES_rec.actual_yn := l_db_OKL_TAX_LINES_rec.actual_yn;
2674         END IF;
2675         IF (x_OKL_TAX_LINES_rec.source_name = OKC_API.G_MISS_CHAR)
2676         THEN
2677           x_OKL_TAX_LINES_rec.source_name := l_db_OKL_TAX_LINES_rec.source_name;
2678         END IF;
2679         IF (x_OKL_TAX_LINES_rec.trq_id = OKC_API.G_MISS_NUM)
2680         THEN
2681           x_OKL_TAX_LINES_rec.trq_id := l_db_OKL_TAX_LINES_rec.trq_id;
2682         END IF;
2683         IF (x_OKL_TAX_LINES_rec.program_id = OKC_API.G_MISS_NUM)
2684         THEN
2685           x_OKL_TAX_LINES_rec.program_id := l_db_OKL_TAX_LINES_rec.program_id;
2686         END IF;
2687         IF (x_OKL_TAX_LINES_rec.request_id = OKC_API.G_MISS_NUM)
2688         THEN
2689           x_OKL_TAX_LINES_rec.request_id := l_db_OKL_TAX_LINES_rec.request_id;
2690         END IF;
2691         IF (x_OKL_TAX_LINES_rec.program_application_id = OKC_API.G_MISS_NUM)
2692         THEN
2693           x_OKL_TAX_LINES_rec.program_application_id := l_db_OKL_TAX_LINES_rec.program_application_id;
2694         END IF;
2695         IF (x_OKL_TAX_LINES_rec.program_update_date = OKC_API.G_MISS_DATE)
2696         THEN
2697           x_OKL_TAX_LINES_rec.program_update_date := l_db_OKL_TAX_LINES_rec.program_update_date;
2698         END IF;
2699         IF (x_OKL_TAX_LINES_rec.attribute_category = OKC_API.G_MISS_CHAR)
2700         THEN
2701           x_OKL_TAX_LINES_rec.attribute_category := l_db_OKL_TAX_LINES_rec.attribute_category;
2702         END IF;
2703         IF (x_OKL_TAX_LINES_rec.attribute1 = OKC_API.G_MISS_CHAR)
2704         THEN
2705           x_OKL_TAX_LINES_rec.attribute1 := l_db_OKL_TAX_LINES_rec.attribute1;
2706         END IF;
2707         IF (x_OKL_TAX_LINES_rec.attribute2 = OKC_API.G_MISS_CHAR)
2708         THEN
2709           x_OKL_TAX_LINES_rec.attribute2 := l_db_OKL_TAX_LINES_rec.attribute2;
2710         END IF;
2711         IF (x_OKL_TAX_LINES_rec.attribute3 = OKC_API.G_MISS_CHAR)
2712         THEN
2713           x_OKL_TAX_LINES_rec.attribute3 := l_db_OKL_TAX_LINES_rec.attribute3;
2714         END IF;
2715         IF (x_OKL_TAX_LINES_rec.attribute4 = OKC_API.G_MISS_CHAR)
2716         THEN
2717           x_OKL_TAX_LINES_rec.attribute4 := l_db_OKL_TAX_LINES_rec.attribute4;
2718         END IF;
2719         IF (x_OKL_TAX_LINES_rec.attribute5 = OKC_API.G_MISS_CHAR)
2720         THEN
2721           x_OKL_TAX_LINES_rec.attribute5 := l_db_OKL_TAX_LINES_rec.attribute5;
2722         END IF;
2723         IF (x_OKL_TAX_LINES_rec.attribute6 = OKC_API.G_MISS_CHAR)
2724         THEN
2725           x_OKL_TAX_LINES_rec.attribute6 := l_db_OKL_TAX_LINES_rec.attribute6;
2726         END IF;
2727         IF (x_OKL_TAX_LINES_rec.attribute7 = OKC_API.G_MISS_CHAR)
2728         THEN
2729           x_OKL_TAX_LINES_rec.attribute7 := l_db_OKL_TAX_LINES_rec.attribute7;
2730         END IF;
2731         IF (x_OKL_TAX_LINES_rec.attribute8 = OKC_API.G_MISS_CHAR)
2732         THEN
2733           x_OKL_TAX_LINES_rec.attribute8 := l_db_OKL_TAX_LINES_rec.attribute8;
2734         END IF;
2735         IF (x_OKL_TAX_LINES_rec.attribute9 = OKC_API.G_MISS_CHAR)
2736         THEN
2737           x_OKL_TAX_LINES_rec.attribute9 := l_db_OKL_TAX_LINES_rec.attribute9;
2738         END IF;
2739         IF (x_OKL_TAX_LINES_rec.attribute10 = OKC_API.G_MISS_CHAR)
2740         THEN
2741           x_OKL_TAX_LINES_rec.attribute10 := l_db_OKL_TAX_LINES_rec.attribute10;
2742         END IF;
2743         IF (x_OKL_TAX_LINES_rec.attribute11 = OKC_API.G_MISS_CHAR)
2744         THEN
2745           x_OKL_TAX_LINES_rec.attribute11 := l_db_OKL_TAX_LINES_rec.attribute11;
2746         END IF;
2747         IF (x_OKL_TAX_LINES_rec.attribute12 = OKC_API.G_MISS_CHAR)
2748         THEN
2749           x_OKL_TAX_LINES_rec.attribute12 := l_db_OKL_TAX_LINES_rec.attribute12;
2750         END IF;
2751         IF (x_OKL_TAX_LINES_rec.attribute13 = OKC_API.G_MISS_CHAR)
2752         THEN
2753           x_OKL_TAX_LINES_rec.attribute13 := l_db_OKL_TAX_LINES_rec.attribute13;
2754         END IF;
2755         IF (x_OKL_TAX_LINES_rec.attribute14 = OKC_API.G_MISS_CHAR)
2756         THEN
2757           x_OKL_TAX_LINES_rec.attribute14 := l_db_OKL_TAX_LINES_rec.attribute14;
2758         END IF;
2759         IF (x_OKL_TAX_LINES_rec.attribute15 = OKC_API.G_MISS_CHAR)
2760         THEN
2761           x_OKL_TAX_LINES_rec.attribute15 := l_db_OKL_TAX_LINES_rec.attribute15;
2762         END IF;
2763         IF (x_OKL_TAX_LINES_rec.created_by = OKC_API.G_MISS_NUM)
2764         THEN
2765           x_OKL_TAX_LINES_rec.created_by := l_db_OKL_TAX_LINES_rec.created_by;
2766         END IF;
2767         IF (x_OKL_TAX_LINES_rec.creation_date = OKC_API.G_MISS_DATE)
2768         THEN
2769           x_OKL_TAX_LINES_rec.creation_date := l_db_OKL_TAX_LINES_rec.creation_date;
2770         END IF;
2771         IF (x_OKL_TAX_LINES_rec.last_updated_by = OKC_API.G_MISS_NUM)
2772         THEN
2773           x_OKL_TAX_LINES_rec.last_updated_by := l_db_OKL_TAX_LINES_rec.last_updated_by;
2774         END IF;
2775         IF (x_OKL_TAX_LINES_rec.last_update_date = OKC_API.G_MISS_DATE)
2776         THEN
2777           x_OKL_TAX_LINES_rec.last_update_date := l_db_OKL_TAX_LINES_rec.last_update_date;
2778         END IF;
2779         IF (x_OKL_TAX_LINES_rec.last_update_login = OKC_API.G_MISS_NUM)
2780         THEN
2784       RETURN(l_return_status);
2781           x_OKL_TAX_LINES_rec.last_update_login := l_db_OKL_TAX_LINES_rec.last_update_login;
2782         END IF;
2783       END IF;
2785     END populate_new_record;
2786     ----------------------------------------
2787     -- Set_Attributes for:OKL_TAX_LINES_V --
2788     ----------------------------------------
2789     FUNCTION Set_Attributes (
2790       p_OKL_TAX_LINES_rec IN OKL_TAX_LINES_rec_type,
2791       x_OKL_TAX_LINES_rec OUT NOCOPY OKL_TAX_LINES_rec_type
2792     ) RETURN VARCHAR2 IS
2793       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2794     BEGIN
2795       x_OKL_TAX_LINES_rec := p_OKL_TAX_LINES_rec;
2796       RETURN(l_return_status);
2797     END Set_Attributes;
2798   BEGIN
2799     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2800                                               G_PKG_NAME,
2801                                               p_init_msg_list,
2802                                               l_api_version,
2803                                               p_api_version,
2804                                               '_PVT',
2805                                               x_return_status);
2806     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2807       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2808     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2809       RAISE OKC_API.G_EXCEPTION_ERROR;
2810     END IF;
2811     --- Setting item attributes
2812     l_return_status := Set_Attributes(
2813       p_OKL_TAX_LINES_rec,             -- IN
2814       x_OKL_TAX_LINES_rec);            -- OUT
2815     --- If any errors happen abort API
2816     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2817       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2818     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2819       RAISE OKC_API.G_EXCEPTION_ERROR;
2820     END IF;
2821     l_return_status := populate_new_record(l_OKL_TAX_LINES_rec, l_def_OKL_TAX_LINES_rec);
2822     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2823       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2824     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2825       RAISE OKC_API.G_EXCEPTION_ERROR;
2826     END IF;
2827     l_def_OKL_TAX_LINES_rec := fill_who_columns(l_def_OKL_TAX_LINES_rec);
2828     --- Validate all non-missing attributes (Item Level Validation)
2829     l_return_status := Validate_Attributes(l_def_OKL_TAX_LINES_rec);
2830     --- If any errors happen abort API
2831     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2832       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2833     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2834       RAISE OKC_API.G_EXCEPTION_ERROR;
2835     END IF;
2836     l_return_status := Validate_Record(l_def_OKL_TAX_LINES_rec, l_db_OKL_TAX_LINES_rec);
2837     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2838       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2839     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2840       RAISE OKC_API.G_EXCEPTION_ERROR;
2841     END IF;
2842 
2843     -- Lock the Record
2844     lock_row(
2845       p_api_version                  => p_api_version,
2846       p_init_msg_list                => p_init_msg_list,
2847       x_return_status                => l_return_status,
2848       x_msg_count                    => x_msg_count,
2849       x_msg_data                     => x_msg_data,
2850       p_OKL_TAX_LINES_rec          => p_OKL_TAX_LINES_rec);
2851     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2852       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2853     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2854       RAISE OKC_API.G_EXCEPTION_ERROR;
2855     END IF;
2856 
2857     -----------------------------------------
2858     -- Move VIEW record to "Child" records --
2859     -----------------------------------------
2860     migrate(l_def_OKL_TAX_LINES_rec, l_tax_rec);
2861     -----------------------------------------------
2862     -- Call the UPDATE_ROW for each child record --
2863     -----------------------------------------------
2864     update_row(
2865       p_init_msg_list,
2866       l_return_status,
2867       x_msg_count,
2868       x_msg_data,
2869       l_tax_rec,
2870       lx_tax_rec
2871     );
2872     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2873       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2874     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2875       RAISE OKC_API.G_EXCEPTION_ERROR;
2876     END IF;
2877     migrate(lx_tax_rec, l_def_OKL_TAX_LINES_rec);
2878     x_OKL_TAX_LINES_rec := l_def_OKL_TAX_LINES_rec;
2879     x_return_status := l_return_status;
2880     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2881   EXCEPTION
2882     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2883       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2884       (
2885         l_api_name,
2886         G_PKG_NAME,
2887         'OKC_API.G_RET_STS_ERROR',
2888         x_msg_count,
2889         x_msg_data,
2890         '_PVT'
2891       );
2892     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2893       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2894       (
2895         l_api_name,
2896         G_PKG_NAME,
2897         'OKC_API.G_RET_STS_UNEXP_ERROR',
2898         x_msg_count,
2899         x_msg_data,
2900         '_PVT'
2901       );
2902     WHEN OTHERS THEN
2903       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2904       (
2905         l_api_name,
2906         G_PKG_NAME,
2907         'OTHERS',
2908         x_msg_count,
2909         x_msg_data,
2910         '_PVT'
2911       );
2912   END update_row;
2913   ---------------------------------------------------
2914   -- PL/SQL TBL update_row for:okl_tax_lines_v_tbl --
2918     p_init_msg_list                IN VARCHAR2,
2915   ---------------------------------------------------
2916   PROCEDURE update_row(
2917     p_api_version                  IN NUMBER,
2919     x_return_status                OUT NOCOPY VARCHAR2,
2920     x_msg_count                    OUT NOCOPY NUMBER,
2921     x_msg_data                     OUT NOCOPY VARCHAR2,
2922     p_OKL_TAX_LINES_tbl          IN OKL_TAX_LINES_tbl_type,
2923     x_OKL_TAX_LINES_tbl          OUT NOCOPY OKL_TAX_LINES_tbl_type,
2924     px_error_tbl                   IN OUT NOCOPY OKC_API.ERROR_TBL_TYPE) IS
2925 
2926     l_api_version                  CONSTANT NUMBER := 1;
2927     l_api_name                     CONSTANT VARCHAR2(30) := 'V_error_tbl_update_row';
2928     i                              NUMBER := 0;
2929   BEGIN
2930     OKC_API.init_msg_list(p_init_msg_list);
2931     -- Make sure PL/SQL table has records in it before passing
2932     IF (p_OKL_TAX_LINES_tbl.COUNT > 0) THEN
2933       i := p_OKL_TAX_LINES_tbl.FIRST;
2934       LOOP
2935         DECLARE
2936           l_error_rec         OKC_API.ERROR_REC_TYPE;
2937         BEGIN
2938           l_error_rec.api_name := l_api_name;
2939           l_error_rec.api_package := G_PKG_NAME;
2940           l_error_rec.idx := i;
2941           update_row (
2942             p_api_version                  => p_api_version,
2943             p_init_msg_list                => OKC_API.G_FALSE,
2944             x_return_status                => l_error_rec.error_type,
2945             x_msg_count                    => l_error_rec.msg_count,
2946             x_msg_data                     => l_error_rec.msg_data,
2947             p_OKL_TAX_LINES_rec          => p_OKL_TAX_LINES_tbl(i),
2948             x_OKL_TAX_LINES_rec          => x_OKL_TAX_LINES_tbl(i));
2949           IF (l_error_rec.error_type <> OKC_API.G_RET_STS_SUCCESS) THEN
2950             l_error_rec.sqlcode := SQLCODE;
2951             load_error_tbl(l_error_rec, px_error_tbl);
2952           ELSE
2953             x_msg_count := l_error_rec.msg_count;
2954             x_msg_data := l_error_rec.msg_data;
2955           END IF;
2956         EXCEPTION
2957           WHEN OKC_API.G_EXCEPTION_ERROR THEN
2958             l_error_rec.error_type := OKC_API.G_RET_STS_ERROR;
2959             l_error_rec.sqlcode := SQLCODE;
2960             load_error_tbl(l_error_rec, px_error_tbl);
2961           WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2962             l_error_rec.error_type := OKC_API.G_RET_STS_UNEXP_ERROR;
2963             l_error_rec.sqlcode := SQLCODE;
2964             load_error_tbl(l_error_rec, px_error_tbl);
2965           WHEN OTHERS THEN
2966             l_error_rec.error_type := 'OTHERS';
2967             l_error_rec.sqlcode := SQLCODE;
2968             load_error_tbl(l_error_rec, px_error_tbl);
2969         END;
2970         EXIT WHEN (i = p_OKL_TAX_LINES_tbl.LAST);
2971         i := p_OKL_TAX_LINES_tbl.NEXT(i);
2972       END LOOP;
2973     END IF;
2974     -- Loop through the error_tbl to find the error with the highest severity
2975     -- and return it.
2976     x_return_status := find_highest_exception(px_error_tbl);
2977     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2978   EXCEPTION
2979     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2980       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2981       (
2982         l_api_name,
2983         G_PKG_NAME,
2984         'OKC_API.G_RET_STS_ERROR',
2985         x_msg_count,
2986         x_msg_data,
2987         '_PVT'
2988       );
2989     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2990       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2991       (
2992         l_api_name,
2993         G_PKG_NAME,
2994         'OKC_API.G_RET_STS_UNEXP_ERROR',
2995         x_msg_count,
2996         x_msg_data,
2997         '_PVT'
2998       );
2999     WHEN OTHERS THEN
3000       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3001       (
3002         l_api_name,
3003         G_PKG_NAME,
3004         'OTHERS',
3005         x_msg_count,
3006         x_msg_data,
3007         '_PVT'
3008       );
3009   END update_row;
3010 
3011   ---------------------------------------------------
3012   -- PL/SQL TBL update_row for:OKL_TAX_LINES_V_TBL --
3013   ---------------------------------------------------
3014   -- This procedure is the same as the one above except it does not have a "px_error_tbl" argument.
3015   -- This procedure was create for backward compatibility and simply is a wrapper for the one above.
3016   PROCEDURE update_row(
3017     p_api_version                  IN NUMBER,
3018     p_init_msg_list                IN VARCHAR2,
3019     x_return_status                OUT NOCOPY VARCHAR2,
3020     x_msg_count                    OUT NOCOPY NUMBER,
3021     x_msg_data                     OUT NOCOPY VARCHAR2,
3022     p_OKL_TAX_LINES_tbl          IN OKL_TAX_LINES_tbl_type,
3023     x_OKL_TAX_LINES_tbl          OUT NOCOPY OKL_TAX_LINES_tbl_type) IS
3024 
3025     l_api_version                  CONSTANT NUMBER := 1;
3026     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
3027     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3028     l_error_tbl                    OKC_API.ERROR_TBL_TYPE;
3029   BEGIN
3030     OKC_API.init_msg_list(p_init_msg_list);
3031     -- Make sure PL/SQL table has records in it before passing
3032     IF (p_OKL_TAX_LINES_tbl.COUNT > 0) THEN
3033       update_row (
3034         p_api_version                  => p_api_version,
3035         p_init_msg_list                => OKC_API.G_FALSE,
3036         x_return_status                => x_return_status,
3037         x_msg_count                    => x_msg_count,
3038         x_msg_data                     => x_msg_data,
3039         p_OKL_TAX_LINES_tbl          => p_OKL_TAX_LINES_tbl,
3040         x_OKL_TAX_LINES_tbl          => x_OKL_TAX_LINES_tbl,
3044   EXCEPTION
3041         px_error_tbl                   => l_error_tbl);
3042     END IF;
3043     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3045     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3046       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3047       (
3048         l_api_name,
3049         G_PKG_NAME,
3050         'OKC_API.G_RET_STS_ERROR',
3051         x_msg_count,
3052         x_msg_data,
3053         '_PVT'
3054       );
3055     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3056       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3057       (
3058         l_api_name,
3059         G_PKG_NAME,
3060         'OKC_API.G_RET_STS_UNEXP_ERROR',
3061         x_msg_count,
3062         x_msg_data,
3063         '_PVT'
3064       );
3065     WHEN OTHERS THEN
3066       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3067       (
3068         l_api_name,
3069         G_PKG_NAME,
3070         'OTHERS',
3071         x_msg_count,
3072         x_msg_data,
3073         '_PVT'
3074       );
3075   END update_row;
3076 
3077   ---------------------------------------------------------------------------
3078   -- PROCEDURE delete_row
3079   ---------------------------------------------------------------------------
3080   ----------------------------------
3081   -- delete_row for:OKL_TAX_LINES --
3082   ----------------------------------
3083   PROCEDURE delete_row(
3084     p_init_msg_list                IN VARCHAR2,
3085     x_return_status                OUT NOCOPY VARCHAR2,
3086     x_msg_count                    OUT NOCOPY NUMBER,
3087     x_msg_data                     OUT NOCOPY VARCHAR2,
3088     p_tax_rec                      IN tax_rec_type) IS
3089 
3090     l_api_version                  CONSTANT NUMBER := 1;
3091     l_api_name                     CONSTANT VARCHAR2(30) := 'B_delete_row';
3092     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3093     l_tax_rec                      tax_rec_type := p_tax_rec;
3094     l_row_notfound                 BOOLEAN := TRUE;
3095   BEGIN
3096     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3097                                               p_init_msg_list,
3098                                               '_PVT',
3099                                               x_return_status);
3100     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3101       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3102     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3103       RAISE OKC_API.G_EXCEPTION_ERROR;
3104     END IF;
3105 
3106     DELETE FROM OKL_TAX_LINES
3107      WHERE ID = p_tax_rec.id;
3108 
3109     x_return_status := l_return_status;
3110     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3111   EXCEPTION
3112     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3113       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3114       (
3115         l_api_name,
3116         G_PKG_NAME,
3117         'OKC_API.G_RET_STS_ERROR',
3118         x_msg_count,
3119         x_msg_data,
3120         '_PVT'
3121       );
3122     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3123       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3124       (
3125         l_api_name,
3126         G_PKG_NAME,
3127         'OKC_API.G_RET_STS_UNEXP_ERROR',
3128         x_msg_count,
3129         x_msg_data,
3130         '_PVT'
3131       );
3132     WHEN OTHERS THEN
3133       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3134       (
3135         l_api_name,
3136         G_PKG_NAME,
3137         'OTHERS',
3138         x_msg_count,
3139         x_msg_data,
3140         '_PVT'
3141       );
3142   END delete_row;
3143   ------------------------------------
3144   -- delete_row for:OKL_TAX_LINES_V --
3145   ------------------------------------
3146   PROCEDURE delete_row(
3147     p_api_version                  IN NUMBER,
3148     p_init_msg_list                IN VARCHAR2,
3149     x_return_status                OUT NOCOPY VARCHAR2,
3150     x_msg_count                    OUT NOCOPY NUMBER,
3151     x_msg_data                     OUT NOCOPY VARCHAR2,
3152     p_OKL_TAX_LINES_rec          IN OKL_TAX_LINES_rec_type) IS
3153 
3154     l_api_version                  CONSTANT NUMBER := 1;
3155     l_api_name                     CONSTANT VARCHAR2(30) := 'V_delete_row';
3156     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3157     l_OKL_TAX_LINES_rec          OKL_TAX_LINES_rec_type := p_OKL_TAX_LINES_rec;
3158     l_tax_rec                      tax_rec_type;
3159   BEGIN
3160     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3161                                               G_PKG_NAME,
3162                                               p_init_msg_list,
3163                                               l_api_version,
3164                                               p_api_version,
3165                                               '_PVT',
3166                                               x_return_status);
3167     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3168       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3169     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3170       RAISE OKC_API.G_EXCEPTION_ERROR;
3171     END IF;
3172     -----------------------------------------
3173     -- Move VIEW record to "Child" records --
3174     -----------------------------------------
3175     migrate(l_OKL_TAX_LINES_rec, l_tax_rec);
3176     -----------------------------------------------
3177     -- Call the DELETE_ROW for each child record --
3178     -----------------------------------------------
3179     delete_row(
3180       p_init_msg_list,
3181       l_return_status,
3182       x_msg_count,
3183       x_msg_data,
3184       l_tax_rec
3188     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3185     );
3186     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3187       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3189       RAISE OKC_API.G_EXCEPTION_ERROR;
3190     END IF;
3191     x_return_status := l_return_status;
3192     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3193   EXCEPTION
3194     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3195       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3196       (
3197         l_api_name,
3198         G_PKG_NAME,
3199         'OKC_API.G_RET_STS_ERROR',
3200         x_msg_count,
3201         x_msg_data,
3202         '_PVT'
3203       );
3204     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3205       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3206       (
3207         l_api_name,
3208         G_PKG_NAME,
3209         'OKC_API.G_RET_STS_UNEXP_ERROR',
3210         x_msg_count,
3211         x_msg_data,
3212         '_PVT'
3213       );
3214     WHEN OTHERS THEN
3215       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3216       (
3217         l_api_name,
3218         G_PKG_NAME,
3219         'OTHERS',
3220         x_msg_count,
3221         x_msg_data,
3222         '_PVT'
3223       );
3224   END delete_row;
3225   -----------------------------------------------
3226   -- PL/SQL TBL delete_row for:OKL_TAX_LINES_V --
3227   -----------------------------------------------
3228   PROCEDURE delete_row(
3229     p_api_version                  IN NUMBER,
3230     p_init_msg_list                IN VARCHAR2,
3231     x_return_status                OUT NOCOPY VARCHAR2,
3232     x_msg_count                    OUT NOCOPY NUMBER,
3233     x_msg_data                     OUT NOCOPY VARCHAR2,
3234     p_OKL_TAX_LINES_tbl          IN OKL_TAX_LINES_tbl_type,
3235     px_error_tbl                   IN OUT NOCOPY OKC_API.ERROR_TBL_TYPE) IS
3236 
3237     l_api_version                  CONSTANT NUMBER := 1;
3238     l_api_name                     CONSTANT VARCHAR2(30) := 'V_error_tbl_delete_row';
3239     i                              NUMBER := 0;
3240   BEGIN
3241     OKC_API.init_msg_list(p_init_msg_list);
3242     -- Make sure PL/SQL table has records in it before passing
3243     IF (p_OKL_TAX_LINES_tbl.COUNT > 0) THEN
3244       i := p_OKL_TAX_LINES_tbl.FIRST;
3245       LOOP
3246         DECLARE
3247           l_error_rec         OKC_API.ERROR_REC_TYPE;
3248         BEGIN
3249           l_error_rec.api_name := l_api_name;
3250           l_error_rec.api_package := G_PKG_NAME;
3251           l_error_rec.idx := i;
3252           delete_row (
3253             p_api_version                  => p_api_version,
3254             p_init_msg_list                => OKC_API.G_FALSE,
3255             x_return_status                => l_error_rec.error_type,
3256             x_msg_count                    => l_error_rec.msg_count,
3257             x_msg_data                     => l_error_rec.msg_data,
3258             p_OKL_TAX_LINES_rec          => p_OKL_TAX_LINES_tbl(i));
3259           IF (l_error_rec.error_type <> OKC_API.G_RET_STS_SUCCESS) THEN
3260             l_error_rec.sqlcode := SQLCODE;
3261             load_error_tbl(l_error_rec, px_error_tbl);
3262           ELSE
3263             x_msg_count := l_error_rec.msg_count;
3264             x_msg_data := l_error_rec.msg_data;
3265           END IF;
3266         EXCEPTION
3267           WHEN OKC_API.G_EXCEPTION_ERROR THEN
3268             l_error_rec.error_type := OKC_API.G_RET_STS_ERROR;
3269             l_error_rec.sqlcode := SQLCODE;
3270             load_error_tbl(l_error_rec, px_error_tbl);
3271           WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3272             l_error_rec.error_type := OKC_API.G_RET_STS_UNEXP_ERROR;
3273             l_error_rec.sqlcode := SQLCODE;
3274             load_error_tbl(l_error_rec, px_error_tbl);
3275           WHEN OTHERS THEN
3276             l_error_rec.error_type := 'OTHERS';
3277             l_error_rec.sqlcode := SQLCODE;
3278             load_error_tbl(l_error_rec, px_error_tbl);
3279         END;
3280         EXIT WHEN (i = p_OKL_TAX_LINES_tbl.LAST);
3281         i := p_OKL_TAX_LINES_tbl.NEXT(i);
3282       END LOOP;
3283     END IF;
3284     -- Loop through the error_tbl to find the error with the highest severity
3285     -- and return it.
3286     x_return_status := find_highest_exception(px_error_tbl);
3287     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3288   EXCEPTION
3289     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3290       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3291       (
3292         l_api_name,
3293         G_PKG_NAME,
3294         'OKC_API.G_RET_STS_ERROR',
3295         x_msg_count,
3296         x_msg_data,
3297         '_PVT'
3298       );
3299     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3300       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3301       (
3302         l_api_name,
3303         G_PKG_NAME,
3304         'OKC_API.G_RET_STS_UNEXP_ERROR',
3305         x_msg_count,
3306         x_msg_data,
3307         '_PVT'
3308       );
3309     WHEN OTHERS THEN
3310       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3311       (
3312         l_api_name,
3313         G_PKG_NAME,
3314         'OTHERS',
3315         x_msg_count,
3316         x_msg_data,
3317         '_PVT'
3318       );
3319   END delete_row;
3320 
3321   -----------------------------------------------
3322   -- PL/SQL TBL delete_row for:OKL_TAX_LINES_V --
3323   -----------------------------------------------
3324   PROCEDURE delete_row(
3325     p_api_version                  IN NUMBER,
3326     p_init_msg_list                IN VARCHAR2,
3327     x_return_status                OUT NOCOPY VARCHAR2,
3328     x_msg_count                    OUT NOCOPY NUMBER,
3329     x_msg_data                     OUT NOCOPY VARCHAR2,
3330     p_OKL_TAX_LINES_tbl          IN OKL_TAX_LINES_tbl_type) IS
3331 
3332     l_api_version                  CONSTANT NUMBER := 1;
3333     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
3334     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3335     l_error_tbl                    OKC_API.ERROR_TBL_TYPE;
3336   BEGIN
3337     OKC_API.init_msg_list(p_init_msg_list);
3338     -- Make sure PL/SQL table has records in it before passing
3339     IF (p_OKL_TAX_LINES_tbl.COUNT > 0) THEN
3340       delete_row (
3341         p_api_version                  => p_api_version,
3342         p_init_msg_list                => OKC_API.G_FALSE,
3343         x_return_status                => x_return_status,
3344         x_msg_count                    => x_msg_count,
3345         x_msg_data                     => x_msg_data,
3346         p_OKL_TAX_LINES_tbl          => p_OKL_TAX_LINES_tbl,
3347         px_error_tbl                   => l_error_tbl);
3348     END IF;
3349     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3350   EXCEPTION
3351     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3352       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3353       (
3354         l_api_name,
3355         G_PKG_NAME,
3356         'OKC_API.G_RET_STS_ERROR',
3357         x_msg_count,
3358         x_msg_data,
3359         '_PVT'
3360       );
3361     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3362       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3363       (
3364         l_api_name,
3365         G_PKG_NAME,
3366         'OKC_API.G_RET_STS_UNEXP_ERROR',
3367         x_msg_count,
3368         x_msg_data,
3369         '_PVT'
3370       );
3371     WHEN OTHERS THEN
3372       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3373       (
3374         l_api_name,
3375         G_PKG_NAME,
3376         'OTHERS',
3377         x_msg_count,
3378         x_msg_data,
3379         '_PVT'
3380       );
3381   END delete_row;
3382 
3383 END OKL_TAX_PVT;