DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_TAO_PVT

Source


1 PACKAGE BODY Okl_Tao_Pvt AS
2 /* $Header: OKLSTAOB.pls 120.3 2006/07/13 13:05:17 adagur noship $ */
3 
4     G_EXCEPTION_HALT_VALIDATION 	EXCEPTION;
5     G_ITEM_NOT_FOUND_ERROR		EXCEPTION;
6 
7   ---------------------------------------------------------------------------
8   -- PROCEDURE validate_try_id
9   -- 04/27/2001 Inserted by Robin Edwin for not null validation
10   ---------------------------------------------------------------------------
11     PROCEDURE validate_try_id(
12       x_return_status OUT NOCOPY VARCHAR2,
13       p_taov_rec IN  taov_rec_type
14     ) IS
15 
16       CURSOR okl_taov_tryid_pk_csr (p_id IN NUMBER) IS
17       SELECT  '1'
18       FROM okl_trx_types_b
19       WHERE id = p_id;
20 
21       l_try_id         		VARCHAR2(1);
22       l_row_notfound   		BOOLEAN := TRUE;
23 
24     BEGIN
25     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
26 
27     IF (p_taov_rec.try_id IS NULL) OR (p_taov_rec.try_id = Okc_Api.G_MISS_NUM) THEN
28          Okc_Api.SET_MESSAGE(p_app_name => g_app_name,
29                              p_msg_name => g_required_value,
30                              p_token1   => g_col_name_token,
31                              p_token1_value => 'TRY_ID');
32 
33           x_return_status := Okc_Api.G_RET_STS_ERROR;
34           RAISE G_EXCEPTION_HALT_VALIDATION;
35     END IF;
36 
37     OPEN okl_taov_tryid_pk_csr(p_taov_rec.TRY_ID);
38     FETCH okl_taov_tryid_pk_csr INTO l_try_id;
39     l_row_notfound := okl_taov_tryid_pk_csr%NOTFOUND;
40     CLOSE okl_taov_tryid_pk_csr;
41     IF (l_row_notfound) THEN
42         Okc_Api.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'TRY_ID');
43         RAISE g_item_not_found_error;
44     END IF;
45 
46       EXCEPTION
47        WHEN G_EXCEPTION_HALT_VALIDATION THEN
48           NULL;
49        WHEN g_item_not_found_error THEN
50          x_return_status := Okc_Api.G_RET_STS_ERROR;
51        WHEN OTHERS THEN
52          Okc_Api.SET_MESSAGE(p_app_name => g_app_name,
53                              p_msg_name => g_required_value,
54                              p_token1   => g_sqlcode_token,
55                              p_token1_value => SQLCODE,
56                              p_token2       => g_sqlerrm_token,
57                              p_token2_value => SQLERRM);
58          x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
59     END validate_try_id;
60 
61   ---------------------------------------------------------------------------
62   -- PROCEDURE validate_all_ccid
63   ---------------------------------------------------------------------------
64 
65   PROCEDURE validate_all_ccid(x_return_status OUT NOCOPY VARCHAR2,
66       p_taov_rec IN  taov_rec_type
67     ) IS
68 
69   l_dummy VARCHAR2(1) := OKC_API.G_FALSE;
70 
71   l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
72 
73   BEGIN
74 
75       x_return_Status := OKC_API.G_RET_STS_SUCCESS;
76 
77       IF (p_taov_rec.REV_CCID IS NOT NULL) AND (p_taov_rec.REV_CCID <> OKC_API.G_MISS_NUM) THEN
78           l_dummy := OKL_ACCOUNTING_UTIL.VALIDATE_GL_CCID(p_taov_rec.REV_CCID);
79           IF (l_dummy = OKC_API.G_FALSE) THEN
80              OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'REV_CCID');
81              x_return_status := OKC_API.G_RET_STS_ERROR;
82           END IF;
83       END IF;
84 
85       IF (p_taov_rec.FREIGHT_CCID IS NOT NULL) AND
86          (p_taov_rec.FREIGHT_CCID <> OKC_API.G_MISS_NUM) THEN
87           l_dummy := OKL_ACCOUNTING_UTIL.VALIDATE_GL_CCID(p_taov_rec.FREIGHT_CCID);
88           IF (l_dummy = OKC_API.G_FALSE) THEN
89              OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'FREIGHT_CCID');
90              x_return_status := OKC_API.G_RET_STS_ERROR;
91           END IF;
92       END IF;
93 
94       IF (p_taov_rec.REC_CCID IS NOT NULL) AND (p_taov_rec.REC_CCID <> OKC_API.G_MISS_NUM) THEN
95           l_dummy := OKL_ACCOUNTING_UTIL.VALIDATE_GL_CCID(p_taov_rec.REC_CCID);
96           IF (l_dummy = OKC_API.G_FALSE) THEN
97              OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'REC_CCID');
98              x_return_status := OKC_API.G_RET_STS_ERROR;
99           END IF;
100       END IF;
101 
102       IF (p_taov_rec.CLEARING_CCID IS NOT NULL) AND
103          (p_taov_rec.CLEARING_CCID <> OKC_API.G_MISS_NUM) THEN
104           l_dummy := OKL_ACCOUNTING_UTIL.VALIDATE_GL_CCID(p_taov_rec.CLEARING_CCID);
105           IF (l_dummy = OKC_API.G_FALSE) THEN
106              OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'CLEARING_CCID');
107              x_return_status := OKC_API.G_RET_STS_ERROR;
108           END IF;
109       END IF;
110 
111       IF (p_taov_rec.TAX_CCID IS NOT NULL) AND
112          (p_taov_rec.TAX_CCID <> OKC_API.G_MISS_NUM) THEN
113           l_dummy := OKL_ACCOUNTING_UTIL.VALIDATE_GL_CCID(p_taov_rec.TAX_CCID);
114           IF (l_dummy = OKC_API.G_FALSE) THEN
115              OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'TAX_CCID');
116              x_return_status := OKC_API.G_RET_STS_ERROR;
117           END IF;
118       END IF;
119 
120       IF (p_taov_rec.UNBILLED_CCID IS NOT NULL) AND
121          (p_taov_rec.UNBILLED_CCID <> OKC_API.G_MISS_NUM) THEN
122           l_dummy := OKL_ACCOUNTING_UTIL.VALIDATE_GL_CCID(p_taov_rec.UNBILLED_CCID);
123           IF (l_dummy = OKC_API.G_FALSE) THEN
124              OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'UNBILLED_CCID');
125              x_return_status := OKC_API.G_RET_STS_ERROR;
126           END IF;
127       END IF;
128 
129       IF (p_taov_rec.UNEARNED_CCID IS NOT NULL) AND
130          (p_taov_rec.UNEARNED_CCID <> OKC_API.G_MISS_NUM) THEN
131           l_dummy := OKL_ACCOUNTING_UTIL.VALIDATE_GL_CCID(p_taov_rec.UNEARNED_CCID);
132           IF (l_dummy = OKC_API.G_FALSE) THEN
133              OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'UNEARNED_CCID');
134              x_return_status := OKC_API.G_RET_STS_ERROR;
135           END IF;
136       END IF;
137 
138       IF (x_return_Status = OKC_API.G_RET_STS_ERROR) THEN
139          RAISE G_EXCEPTION_HALT_VALIDATION;
140       END IF;
141 
142   EXCEPTION
143     WHEN G_EXCEPTION_HALT_VALIDATION THEN
144       NULL;
145   END VALIDATE_ALL_CCID;
146 
147 
148   ---------------------------------------------------------------------------
149   -- PROCEDURE validate_post_to_gl_yn
150   ---------------------------------------------------------------------------
151     PROCEDURE validate_post_to_gl_yn(
152       x_return_status OUT NOCOPY VARCHAR2,
153       p_taov_rec IN  taov_rec_type
154     ) IS
155 
156       l_dummy VARCHAR2(1) := OKC_API.G_FALSE;
157       l_app_id NUMBER := 0;
158       l_view_app_id NUMBER := 0;
159 
160 
161     BEGIN
162 
163     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
164 
165     IF (p_taov_rec.post_to_gl_yn IS NOT NULL) OR
166        (p_taov_rec.post_to_gl_yn <> Okc_Api.G_MISS_CHAR) THEN
167         l_dummy := OKL_ACCOUNTING_UTIL.VALIDATE_LOOKUP_CODE
168                      (p_lookup_type => 'YES_NO',
169                       p_lookup_code => p_taov_rec.post_to_gl_yn,
170                       p_app_id      => l_app_id,
171                       p_view_app_id => l_view_app_id);
172 
173         IF (l_dummy = OKC_API.G_FALSE) THEN
174 
175             Okc_Api.SET_MESSAGE(p_app_name => g_app_name,
176                                 p_msg_name => g_invalid_value,
177                                 p_token1   => g_col_name_token,
178                                 p_token1_value => 'POST_TO_GL_YN');
179           x_return_status := Okc_Api.G_RET_STS_ERROR;
180           RAISE G_EXCEPTION_HALT_VALIDATION;
181        END IF;
182     END IF;
183 
184     EXCEPTION
185        WHEN G_EXCEPTION_HALT_VALIDATION THEN
186           NULL;
187        WHEN OTHERS THEN
188          Okc_Api.SET_MESSAGE(p_app_name => g_app_name,
189                              p_msg_name => g_required_value,
190                              p_token1   => g_sqlcode_token,
191                              p_token1_value => SQLCODE,
192                              p_token2       => g_sqlerrm_token,
193                              p_token2_value => SQLERRM);
194          x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
195 
196     END validate_post_to_gl_yn;
197 
198   ---------------------------------------------------------------------------
199   -- PROCEDURE validate_all_ccid
200 
201   ---------------------------------------------------------------------------
202   -- FUNCTION get_seq_id
203   ---------------------------------------------------------------------------
204   FUNCTION get_seq_id RETURN NUMBER IS
205   BEGIN
206     RETURN(Okc_P_Util.raw_to_number(sys_guid()));
207   END get_seq_id;
208 
209   ---------------------------------------------------------------------------
210   -- PROCEDURE qc
211   ---------------------------------------------------------------------------
212   PROCEDURE qc IS
213   BEGIN
214     NULL;
215   END qc;
216 
217   ---------------------------------------------------------------------------
218   -- PROCEDURE change_version
219   ---------------------------------------------------------------------------
220   PROCEDURE change_version IS
221   BEGIN
222     NULL;
223   END change_version;
224 
225   ---------------------------------------------------------------------------
226   -- PROCEDURE api_copy
227   ---------------------------------------------------------------------------
228   PROCEDURE api_copy IS
229   BEGIN
230     NULL;
231   END api_copy;
232 
233   ---------------------------------------------------------------------------
234   -- FUNCTION get_rec for: OKL_TRX_ACCT_OPTS
235   ---------------------------------------------------------------------------
236   FUNCTION get_rec (
237     p_tao_rec                      IN tao_rec_type,
238     x_no_data_found                OUT NOCOPY BOOLEAN
239   ) RETURN tao_rec_type IS
240     CURSOR okl_trx_acct_opts_pk_csr (p_id                 IN NUMBER) IS
241     SELECT
242             ID,
243             TRY_ID,
244             REV_CCID,
245             FREIGHT_CCID,
246             REC_CCID,
247             CLEARING_CCID,
248             TAX_CCID,
249             UNBILLED_CCID,
250             UNEARNED_CCID,
251             OBJECT_VERSION_NUMBER,
252             ORG_ID,
253             ATTRIBUTE_CATEGORY,
254             ATTRIBUTE1,
255             ATTRIBUTE2,
256             ATTRIBUTE3,
257             ATTRIBUTE4,
258             ATTRIBUTE5,
259             ATTRIBUTE6,
260             ATTRIBUTE7,
261             ATTRIBUTE8,
262             ATTRIBUTE9,
263             ATTRIBUTE10,
264             ATTRIBUTE11,
265             ATTRIBUTE12,
266             ATTRIBUTE13,
267             ATTRIBUTE14,
268             ATTRIBUTE15,
269             CREATED_BY,
270             CREATION_DATE,
271             LAST_UPDATED_BY,
272             LAST_UPDATE_DATE,
273             LAST_UPDATE_LOGIN,
274 /* Changes made by Kanti on 06.27.2001. This field is present in table but was missing from here */
275             POST_TO_GL_YN
276 /* Changes End  */
277       FROM Okl_Trx_Acct_Opts
278      WHERE okl_trx_acct_opts.id = p_id;
279     l_okl_trx_acct_opts_pk         okl_trx_acct_opts_pk_csr%ROWTYPE;
280     l_tao_rec                      tao_rec_type;
281   BEGIN
282     x_no_data_found := TRUE;
283     -- Get current database values
284     OPEN okl_trx_acct_opts_pk_csr (p_tao_rec.id);
285     FETCH okl_trx_acct_opts_pk_csr INTO
286               l_tao_rec.ID,
287               l_tao_rec.TRY_ID,
288               l_tao_rec.REV_CCID,
289               l_tao_rec.freight_ccid,
290               l_tao_rec.rec_ccid,
291               l_tao_rec.clearing_ccid,
292               l_tao_rec.tax_ccid,
293               l_tao_rec.unbilled_ccid,
294               l_tao_rec.unearned_ccid,
295               l_tao_rec.OBJECT_VERSION_NUMBER,
296               l_tao_rec.ORG_ID,
297               l_tao_rec.ATTRIBUTE_CATEGORY,
298               l_tao_rec.ATTRIBUTE1,
299               l_tao_rec.ATTRIBUTE2,
300               l_tao_rec.ATTRIBUTE3,
301               l_tao_rec.ATTRIBUTE4,
302               l_tao_rec.ATTRIBUTE5,
303               l_tao_rec.ATTRIBUTE6,
304               l_tao_rec.ATTRIBUTE7,
305               l_tao_rec.ATTRIBUTE8,
306               l_tao_rec.ATTRIBUTE9,
307               l_tao_rec.ATTRIBUTE10,
308               l_tao_rec.ATTRIBUTE11,
309               l_tao_rec.ATTRIBUTE12,
310               l_tao_rec.ATTRIBUTE13,
311               l_tao_rec.ATTRIBUTE14,
312               l_tao_rec.ATTRIBUTE15,
313               l_tao_rec.CREATED_BY,
314               l_tao_rec.CREATION_DATE,
315               l_tao_rec.LAST_UPDATED_BY,
316               l_tao_rec.LAST_UPDATE_DATE,
317               l_tao_rec.LAST_UPDATE_LOGIN,
318 /* Changes made by Kanti on 06.27.2001. This field is present in table but was missing from here */
319               l_tao_rec.POST_TO_GL_YN;
320 /* Changes End */
321     x_no_data_found := okl_trx_acct_opts_pk_csr%NOTFOUND;
322     CLOSE okl_trx_acct_opts_pk_csr;
323     RETURN(l_tao_rec);
324   END get_rec;
325 
326   FUNCTION get_rec (
327     p_tao_rec                      IN tao_rec_type
328   ) RETURN tao_rec_type IS
329     l_row_notfound                 BOOLEAN := TRUE;
330   BEGIN
331     RETURN(get_rec(p_tao_rec, l_row_notfound));
332   END get_rec;
333   ---------------------------------------------------------------------------
334   -- FUNCTION get_rec for: OKL_TRX_ACCT_OPTS_V
335   ---------------------------------------------------------------------------
336   FUNCTION get_rec (
337     p_taov_rec                     IN taov_rec_type,
338     x_no_data_found                OUT NOCOPY BOOLEAN
339   ) RETURN taov_rec_type IS
340     CURSOR okl_taov_pk_csr (p_id                 IN NUMBER) IS
341     SELECT
342             ID,
343             OBJECT_VERSION_NUMBER,
344             TRY_ID,
345              UNEARNED_CCID,
346             REV_CCID,
347             FREIGHT_CCID,
348             REC_CCID,
349             CLEARING_CCID,
350             TAX_CCID,
351             UNBILLED_CCID,
352             ATTRIBUTE_CATEGORY,
353             ATTRIBUTE1,
354             ATTRIBUTE2,
355             ATTRIBUTE3,
356             ATTRIBUTE4,
357             ATTRIBUTE5,
358             ATTRIBUTE6,
359             ATTRIBUTE7,
360             ATTRIBUTE8,
361             ATTRIBUTE9,
362             ATTRIBUTE10,
363             ATTRIBUTE11,
364             ATTRIBUTE12,
365             ATTRIBUTE13,
366             ATTRIBUTE14,
367             ATTRIBUTE15,
368             ORG_ID,
369             CREATED_BY,
370             CREATION_DATE,
371             LAST_UPDATED_BY,
372             LAST_UPDATE_DATE,
373             LAST_UPDATE_LOGIN,
374 /* Changes made by Kanti on 06.27.2001. This field is present in table but was missing from here */
375             POST_TO_GL_YN
376 /* Changes End  */
377       FROM OKL_TRX_ACCT_OPTS
378      WHERE OKL_TRX_ACCT_OPTS.id = p_id;
379     l_okl_taov_pk                  okl_taov_pk_csr%ROWTYPE;
380     l_taov_rec                     taov_rec_type;
381   BEGIN
382     x_no_data_found := TRUE;
383     -- Get current database values
384     OPEN okl_taov_pk_csr (p_taov_rec.id);
385     FETCH okl_taov_pk_csr INTO
386               l_taov_rec.ID,
387               l_taov_rec.OBJECT_VERSION_NUMBER,
388               l_taov_rec.TRY_ID,
389               l_taov_rec.unearned_ccid,
390               l_taov_rec.REV_CCID,
391               l_taov_rec.freight_ccid,
392               l_taov_rec.rec_ccid,
393               l_taov_rec.clearing_ccid,
394               l_taov_rec.tax_ccid,
395               l_taov_rec.unbilled_ccid,
396               l_taov_rec.ATTRIBUTE_CATEGORY,
397               l_taov_rec.ATTRIBUTE1,
398               l_taov_rec.ATTRIBUTE2,
399               l_taov_rec.ATTRIBUTE3,
400               l_taov_rec.ATTRIBUTE4,
401               l_taov_rec.ATTRIBUTE5,
402               l_taov_rec.ATTRIBUTE6,
403               l_taov_rec.ATTRIBUTE7,
404               l_taov_rec.ATTRIBUTE8,
405               l_taov_rec.ATTRIBUTE9,
406               l_taov_rec.ATTRIBUTE10,
407               l_taov_rec.ATTRIBUTE11,
408               l_taov_rec.ATTRIBUTE12,
409               l_taov_rec.ATTRIBUTE13,
410               l_taov_rec.ATTRIBUTE14,
411               l_taov_rec.ATTRIBUTE15,
412               l_taov_rec.ORG_ID,
413               l_taov_rec.CREATED_BY,
414               l_taov_rec.CREATION_DATE,
415               l_taov_rec.LAST_UPDATED_BY,
416               l_taov_rec.LAST_UPDATE_DATE,
417               l_taov_rec.LAST_UPDATE_LOGIN,
418 /* Changes made by Kanti on 06.27.2001. This field is present in table but was missing from here */
419               l_taov_rec.POST_TO_GL_YN;
420 /* Changes End */
421     x_no_data_found := okl_taov_pk_csr%NOTFOUND;
422     CLOSE okl_taov_pk_csr;
423     RETURN(l_taov_rec);
424   END get_rec;
425 
426   FUNCTION get_rec (
427     p_taov_rec                     IN taov_rec_type
428   ) RETURN taov_rec_type IS
429     l_row_notfound                 BOOLEAN := TRUE;
430   BEGIN
431     RETURN(get_rec(p_taov_rec, l_row_notfound));
432   END get_rec;
433 
434   ---------------------------------------------------------
435   -- FUNCTION null_out_defaults for: OKL_TRX_ACCT_OPTS_V --
436   ---------------------------------------------------------
437   FUNCTION null_out_defaults (
438     p_taov_rec	IN taov_rec_type
439   ) RETURN taov_rec_type IS
440     l_taov_rec	taov_rec_type := p_taov_rec;
441   BEGIN
442     IF (l_taov_rec.object_version_number = Okc_Api.G_MISS_NUM) THEN
443       l_taov_rec.object_version_number := NULL;
444     END IF;
445     IF (l_taov_rec.try_id = Okc_Api.G_MISS_NUM) THEN
446       l_taov_rec.try_id := NULL;
447     END IF;
448     IF (l_taov_rec.unearned_ccid = Okc_Api.G_MISS_NUM) THEN
449       l_taov_rec.unearned_ccid := NULL;
450     END IF;
451     IF (l_taov_rec.REV_CCID = Okc_Api.G_MISS_NUM) THEN
452       l_taov_rec.REV_CCID := NULL;
453     END IF;
454     IF (l_taov_rec.freight_ccid = Okc_Api.G_MISS_NUM) THEN
455       l_taov_rec.freight_ccid := NULL;
456     END IF;
457     IF (l_taov_rec.rec_ccid = Okc_Api.G_MISS_NUM) THEN
458       l_taov_rec.rec_ccid := NULL;
459     END IF;
460     IF (l_taov_rec.clearing_ccid = Okc_Api.G_MISS_NUM) THEN
461       l_taov_rec.clearing_ccid := NULL;
462     END IF;
463     IF (l_taov_rec.tax_ccid = Okc_Api.G_MISS_NUM) THEN
464       l_taov_rec.tax_ccid := NULL;
465     END IF;
466     IF (l_taov_rec.unbilled_ccid = Okc_Api.G_MISS_NUM) THEN
467       l_taov_rec.unbilled_ccid := NULL;
468     END IF;
469     IF (l_taov_rec.attribute_category = Okc_Api.G_MISS_CHAR) THEN
470       l_taov_rec.attribute_category := NULL;
471     END IF;
472     IF (l_taov_rec.attribute1 = Okc_Api.G_MISS_CHAR) THEN
473       l_taov_rec.attribute1 := NULL;
474     END IF;
475     IF (l_taov_rec.attribute2 = Okc_Api.G_MISS_CHAR) THEN
476       l_taov_rec.attribute2 := NULL;
477     END IF;
478     IF (l_taov_rec.attribute3 = Okc_Api.G_MISS_CHAR) THEN
479       l_taov_rec.attribute3 := NULL;
480     END IF;
481     IF (l_taov_rec.attribute4 = Okc_Api.G_MISS_CHAR) THEN
482       l_taov_rec.attribute4 := NULL;
483     END IF;
484     IF (l_taov_rec.attribute5 = Okc_Api.G_MISS_CHAR) THEN
485       l_taov_rec.attribute5 := NULL;
486     END IF;
487     IF (l_taov_rec.attribute6 = Okc_Api.G_MISS_CHAR) THEN
488       l_taov_rec.attribute6 := NULL;
489     END IF;
490     IF (l_taov_rec.attribute7 = Okc_Api.G_MISS_CHAR) THEN
491       l_taov_rec.attribute7 := NULL;
492     END IF;
493     IF (l_taov_rec.attribute8 = Okc_Api.G_MISS_CHAR) THEN
494       l_taov_rec.attribute8 := NULL;
495     END IF;
496     IF (l_taov_rec.attribute9 = Okc_Api.G_MISS_CHAR) THEN
497       l_taov_rec.attribute9 := NULL;
498     END IF;
499     IF (l_taov_rec.attribute10 = Okc_Api.G_MISS_CHAR) THEN
500       l_taov_rec.attribute10 := NULL;
501     END IF;
502     IF (l_taov_rec.attribute11 = Okc_Api.G_MISS_CHAR) THEN
503       l_taov_rec.attribute11 := NULL;
504     END IF;
505     IF (l_taov_rec.attribute12 = Okc_Api.G_MISS_CHAR) THEN
506       l_taov_rec.attribute12 := NULL;
507     END IF;
508     IF (l_taov_rec.attribute13 = Okc_Api.G_MISS_CHAR) THEN
509       l_taov_rec.attribute13 := NULL;
510     END IF;
511     IF (l_taov_rec.attribute14 = Okc_Api.G_MISS_CHAR) THEN
512       l_taov_rec.attribute14 := NULL;
513     END IF;
514     IF (l_taov_rec.attribute15 = Okc_Api.G_MISS_CHAR) THEN
515       l_taov_rec.attribute15 := NULL;
516     END IF;
517     IF (l_taov_rec.org_id = Okc_Api.G_MISS_NUM) THEN
518       l_taov_rec.org_id := NULL;
519     END IF;
520     IF (l_taov_rec.created_by = Okc_Api.G_MISS_NUM) THEN
521       l_taov_rec.created_by := NULL;
522     END IF;
523     IF (l_taov_rec.creation_date = Okc_Api.G_MISS_DATE) THEN
524       l_taov_rec.creation_date := NULL;
525     END IF;
526     IF (l_taov_rec.last_updated_by = Okc_Api.G_MISS_NUM) THEN
527       l_taov_rec.last_updated_by := NULL;
528     END IF;
529     IF (l_taov_rec.last_update_date = Okc_Api.G_MISS_DATE) THEN
530       l_taov_rec.last_update_date := NULL;
531     END IF;
532     IF (l_taov_rec.last_update_login = Okc_Api.G_MISS_NUM) THEN
533       l_taov_rec.last_update_login := NULL;
534     END IF;
535     /* changes Made by Kanti on 06.27.2001. This field was missing from TAPI   */
536     IF (l_taov_rec.post_to_gl_yn = Okc_Api.G_MISS_CHAR) THEN
537       l_taov_rec.post_to_gl_yn := NULL;
538     END IF;
539    /* Changes End  */
540     RETURN(l_taov_rec);
541   END null_out_defaults;
542 
543   -- PROCEDURE Validate_Attributes
544   ---------------------------------------------------------------------------
545   -------------------------------------------------
546   -- Validate_Attributes for:OKL_TRX_ACCT_OPTS_V --
547   -------------------------------------------------
548   FUNCTION Validate_Attributes (p_taov_rec IN  taov_rec_type
549   ) RETURN VARCHAR2 IS
550 
551     l_return_status	VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
552     x_return_Status     VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
553 
554   BEGIN
555 
556     validate_try_id(x_return_status => l_return_status, p_taov_rec => p_taov_rec);
557 
558     IF(l_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
559       IF (x_return_status <> Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
560           x_return_status := l_return_status;
561       END IF;
562     END IF;
563 
564     validate_post_to_gl_yn(x_return_Status => l_return_status, p_taov_rec => p_taov_rec);
565 
566     IF(l_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
567       IF (x_return_status <> Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
568           x_return_status := l_return_status;
569       END IF;
570     END IF;
571 
572     validate_all_ccid(x_return_Status => l_return_status, p_taov_rec => p_taov_rec);
573 
574     IF(l_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
575       IF (x_return_status <> Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
576           x_return_status := l_return_status;
577       END IF;
578     END IF;
579 
580     RETURN(x_return_status);
581 
582     EXCEPTION
583       WHEN OTHERS THEN
584         -- store SQL error message on message stack for caller
585         Okc_Api.SET_MESSAGE(p_app_name    => g_app_name,
586                             p_msg_name     => g_unexpected_error,
587                             p_token1       => g_sqlcode_token,
588                             p_token1_value => SQLCODE,
589                             p_token2       => g_sqlerrm_token,
590                             p_token2_value => SQLERRM);
591 
592         x_return_status  := Okc_Api.G_RET_STS_UNEXP_ERROR;
593         RETURN x_return_status;
594 
595   END Validate_Attributes;
596 
597   ---------------------------------------------------------------------------
598   -- PROCEDURE Validate_Record
599   ---------------------------------------------------------------------------
600   ---------------------------------------------
601   -- Validate_Record for:OKL_TRX_ACCT_OPTS_V --
602   ---------------------------------------------
603   FUNCTION Validate_Record (
604     p_taov_rec IN taov_rec_type
605   ) RETURN VARCHAR2 IS
606     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
607   BEGIN
608     RETURN (l_return_status);
609   END Validate_Record;
610 
611   ---------------------------------------------------------------------------
612   -- PROCEDURE Migrate
613   ---------------------------------------------------------------------------
614   PROCEDURE migrate (
615     p_from	IN taov_rec_type,
616     p_to	IN OUT NOCOPY tao_rec_type
617   ) IS
618   BEGIN
619     p_to.id := p_from.id;
620     p_to.try_id := p_from.try_id;
621     p_to.REV_CCID := p_from.REV_CCID;
622     p_to.freight_ccid := p_from.freight_ccid;
623     p_to.rec_ccid := p_from.rec_ccid;
624     p_to.clearing_ccid := p_from.clearing_ccid;
625     p_to.tax_ccid := p_from.tax_ccid;
626     p_to.unbilled_ccid := p_from.unbilled_ccid;
627     p_to.unearned_ccid := p_from.unearned_ccid;
628     p_to.object_version_number := p_from.object_version_number;
629     p_to.org_id := p_from.org_id;
630     p_to.attribute_category := p_from.attribute_category;
631     p_to.attribute1 := p_from.attribute1;
632     p_to.attribute2 := p_from.attribute2;
633     p_to.attribute3 := p_from.attribute3;
634     p_to.attribute4 := p_from.attribute4;
635     p_to.attribute5 := p_from.attribute5;
636     p_to.attribute6 := p_from.attribute6;
637     p_to.attribute7 := p_from.attribute7;
638     p_to.attribute8 := p_from.attribute8;
639     p_to.attribute9 := p_from.attribute9;
640     p_to.attribute10 := p_from.attribute10;
641     p_to.attribute11 := p_from.attribute11;
642     p_to.attribute12 := p_from.attribute12;
643     p_to.attribute13 := p_from.attribute13;
644     p_to.attribute14 := p_from.attribute14;
645     p_to.attribute15 := p_from.attribute15;
646     p_to.created_by := p_from.created_by;
647     p_to.creation_date := p_from.creation_date;
648     p_to.last_updated_by := p_from.last_updated_by;
649     p_to.last_update_date := p_from.last_update_date;
650     p_to.last_update_login := p_from.last_update_login;
651 /* Changes made by kanti on 06.27.2001. This field was missing from TAPI */
652     p_to.post_to_gl_yn     := p_from.post_to_gl_yn;
653 /* Changes End  */
654 
655   END migrate;
656   PROCEDURE migrate (
657     p_from	IN tao_rec_type,
658     p_to	OUT NOCOPY taov_rec_type
659   ) IS
660   BEGIN
661     p_to.id := p_from.id;
662     p_to.try_id := p_from.try_id;
663     p_to.REV_CCID := p_from.REV_CCID;
664     p_to.freight_ccid := p_from.freight_ccid;
665     p_to.rec_ccid := p_from.rec_ccid;
666     p_to.clearing_ccid := p_from.clearing_ccid;
667     p_to.tax_ccid := p_from.tax_ccid;
668     p_to.unbilled_ccid := p_from.unbilled_ccid;
669     p_to.unearned_ccid := p_from.unearned_ccid;
670     p_to.object_version_number := p_from.object_version_number;
671     p_to.org_id := p_from.org_id;
672     p_to.attribute_category := p_from.attribute_category;
673     p_to.attribute1 := p_from.attribute1;
674     p_to.attribute2 := p_from.attribute2;
675     p_to.attribute3 := p_from.attribute3;
676     p_to.attribute4 := p_from.attribute4;
677     p_to.attribute5 := p_from.attribute5;
678     p_to.attribute6 := p_from.attribute6;
679     p_to.attribute7 := p_from.attribute7;
680     p_to.attribute8 := p_from.attribute8;
681     p_to.attribute9 := p_from.attribute9;
682     p_to.attribute10 := p_from.attribute10;
683     p_to.attribute11 := p_from.attribute11;
684     p_to.attribute12 := p_from.attribute12;
685     p_to.attribute13 := p_from.attribute13;
686     p_to.attribute14 := p_from.attribute14;
687     p_to.attribute15 := p_from.attribute15;
688     p_to.created_by := p_from.created_by;
689     p_to.creation_date := p_from.creation_date;
690     p_to.last_updated_by := p_from.last_updated_by;
691     p_to.last_update_date := p_from.last_update_date;
692     p_to.last_update_login := p_from.last_update_login;
693 /* Changes made by kanti on 06.27.2001. This field was missing from TAPI */
694     p_to.post_to_gl_yn     := p_from.post_to_gl_yn;
695 /* Changes End  */
696   END migrate;
697 
698   ---------------------------------------------------------------------------
699   -- PROCEDURE validate_row
700   ---------------------------------------------------------------------------
701   ------------------------------------------
702   -- validate_row for:OKL_TRX_ACCT_OPTS_V --
703   ------------------------------------------
704   PROCEDURE validate_row(
705     p_api_version                  IN NUMBER,
706     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
707     x_return_status                OUT NOCOPY VARCHAR2,
708     x_msg_count                    OUT NOCOPY NUMBER,
709     x_msg_data                     OUT NOCOPY VARCHAR2,
710     p_taov_rec                     IN taov_rec_type) IS
711 
712     l_api_version                 CONSTANT NUMBER := 1;
713     l_api_name                     CONSTANT VARCHAR2(30) := 'V_validate_row';
714     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
715     l_taov_rec                     taov_rec_type := p_taov_rec;
716     l_tao_rec                      tao_rec_type;
717   BEGIN
718     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
719                                               G_PKG_NAME,
720                                               p_init_msg_list,
721                                               l_api_version,
722                                               p_api_version,
723                                               '_PVT',
724                                               x_return_status);
725     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
726       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
727     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
728       RAISE Okc_Api.G_EXCEPTION_ERROR;
729     END IF;
730     --- Validate all non-missing attributes (Item Level Validation)
731     l_return_status := Validate_Attributes(l_taov_rec);
732     --- If any errors happen abort API
733     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
734       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
735     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
736       RAISE Okc_Api.G_EXCEPTION_ERROR;
737     END IF;
738     l_return_status := Validate_Record(l_taov_rec);
739     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
740       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
741     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
742       RAISE Okc_Api.G_EXCEPTION_ERROR;
743     END IF;
744     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
745   EXCEPTION
746     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
747       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
748       (
749         l_api_name,
750         G_PKG_NAME,
751         'OKC_API.G_RET_STS_ERROR',
752         x_msg_count,
753         x_msg_data,
754         '_PVT'
755       );
756     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
757       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
758       (
759         l_api_name,
760         G_PKG_NAME,
761         'OKC_API.G_RET_STS_UNEXP_ERROR',
762         x_msg_count,
763         x_msg_data,
764         '_PVT'
765       );
766     WHEN OTHERS THEN
767       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
768       (
769         l_api_name,
770         G_PKG_NAME,
771         'OTHERS',
772         x_msg_count,
773         x_msg_data,
774         '_PVT'
775       );
776   END validate_row;
777   ------------------------------------------
778   -- PL/SQL TBL validate_row for:TAOV_TBL --
779   ------------------------------------------
780   PROCEDURE validate_row(
781     p_api_version                  IN NUMBER,
782     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
783     x_return_status                OUT NOCOPY VARCHAR2,
784     x_msg_count                    OUT NOCOPY NUMBER,
785     x_msg_data                     OUT NOCOPY VARCHAR2,
786     p_taov_tbl                     IN taov_tbl_type) IS
787 
788     l_api_version                 CONSTANT NUMBER := 1;
789     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
790     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
791     l_overall_status		     VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
792     i                              NUMBER := 0;
793   BEGIN
794     Okc_Api.init_msg_list(p_init_msg_list);
795     -- Make sure PL/SQL table has records in it before passing
796     IF (p_taov_tbl.COUNT > 0) THEN
797       i := p_taov_tbl.FIRST;
798       LOOP
799         validate_row (
800           p_api_version                  => p_api_version,
801           p_init_msg_list                => Okc_Api.G_FALSE,
802           x_return_status                => x_return_status,
803           x_msg_count                    => x_msg_count,
804           x_msg_data                     => x_msg_data,
805           p_taov_rec                     => p_taov_tbl(i));
806 	  IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
807 	     IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
808 		  l_overall_status := x_return_status;
809 	     END IF;
810 	  END IF;
811         EXIT WHEN (i = p_taov_tbl.LAST);
812         i := p_taov_tbl.NEXT(i);
813       END LOOP;
814 	x_return_status := l_overall_status;
815     END IF;
816   EXCEPTION
817     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
818       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
819       (
820         l_api_name,
821         G_PKG_NAME,
822         'OKC_API.G_RET_STS_ERROR',
823         x_msg_count,
824         x_msg_data,
825         '_PVT'
826       );
827     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
828       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
829       (
830         l_api_name,
831         G_PKG_NAME,
832         'OKC_API.G_RET_STS_UNEXP_ERROR',
833         x_msg_count,
834         x_msg_data,
835         '_PVT'
836       );
837     WHEN OTHERS THEN
838       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
839       (
840         l_api_name,
841         G_PKG_NAME,
842         'OTHERS',
843         x_msg_count,
844         x_msg_data,
845         '_PVT'
846       );
847   END validate_row;
848 
849   ---------------------------------------------------------------------------
850   -- PROCEDURE insert_row
851   ---------------------------------------------------------------------------
852   --------------------------------------
853   -- insert_row for:OKL_TRX_ACCT_OPTS --
854   --------------------------------------
855   PROCEDURE insert_row(
856     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
857     x_return_status                OUT NOCOPY VARCHAR2,
858     x_msg_count                    OUT NOCOPY NUMBER,
859     x_msg_data                     OUT NOCOPY VARCHAR2,
860     p_tao_rec                      IN tao_rec_type,
861     x_tao_rec                      OUT NOCOPY tao_rec_type) IS
862 
863     l_api_version                 CONSTANT NUMBER := 1;
864     l_api_name                     CONSTANT VARCHAR2(30) := 'OPTS_insert_row';
865     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
866     l_tao_rec                      tao_rec_type := p_tao_rec;
867     l_def_tao_rec                  tao_rec_type;
868 
869     ------------------------------------------
870     -- Set_Attributes for:OKL_TRX_ACCT_OPTS --
871     ------------------------------------------
872     FUNCTION Set_Attributes (
873       p_tao_rec IN  tao_rec_type,
874       x_tao_rec OUT NOCOPY tao_rec_type
875     ) RETURN VARCHAR2 IS
876       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
877     BEGIN
878       x_tao_rec := p_tao_rec;
879       RETURN(l_return_status);
880     END Set_Attributes;
881   BEGIN
882 
883     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
884                                               p_init_msg_list,
885                                               '_PVT',
886                                               x_return_status);
887     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
888       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
889     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
890       RAISE Okc_Api.G_EXCEPTION_ERROR;
891     END IF;
892     --- Setting item attributes
893     l_return_status := Set_Attributes(
894       p_tao_rec,                         -- IN
895       l_tao_rec);                        -- OUT
896     --- If any errors happen abort API
897     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
898       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
899     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
900       RAISE Okc_Api.G_EXCEPTION_ERROR;
901     END IF;
902     INSERT INTO OKL_TRX_ACCT_OPTS(
903         id,
904         try_id,
905         rev_CCID,
906         freight_CCID,
907         rec_CCID,
908         clearing_CCID,
909         tax_CCID,
910         unbilled_CCID,
911         unearned_CCID,
912         object_version_number,
913         org_id,
914         attribute_category,
915         attribute1,
916         attribute2,
917         attribute3,
918         attribute4,
919         attribute5,
920         attribute6,
921         attribute7,
922         attribute8,
923         attribute9,
924         attribute10,
925         attribute11,
926         attribute12,
927         attribute13,
928         attribute14,
929         attribute15,
930         created_by,
931         creation_date,
932         last_updated_by,
933         last_update_date,
934         last_update_login,
935 /* changes made by Kanti on 06/27/2001. this field was missing from TAPI  */
936         post_to_gl_yn)
937 /* Changes End */
938       VALUES (
939         l_tao_rec.id,
940         l_tao_rec.try_id,
941         l_tao_rec.REV_CCID,
942         l_tao_rec.freight_ccid,
943         l_tao_rec.rec_ccid,
944         l_tao_rec.clearing_ccid,
945         l_tao_rec.tax_ccid,
946         l_tao_rec.unbilled_ccid,
947         l_tao_rec.unearned_ccid,
948         l_tao_rec.object_version_number,
949         l_tao_rec.org_id,
950         l_tao_rec.attribute_category,
951         l_tao_rec.attribute1,
952         l_tao_rec.attribute2,
953         l_tao_rec.attribute3,
954         l_tao_rec.attribute4,
955         l_tao_rec.attribute5,
956         l_tao_rec.attribute6,
957         l_tao_rec.attribute7,
958         l_tao_rec.attribute8,
959         l_tao_rec.attribute9,
960         l_tao_rec.attribute10,
961         l_tao_rec.attribute11,
962         l_tao_rec.attribute12,
963         l_tao_rec.attribute13,
964         l_tao_rec.attribute14,
965         l_tao_rec.attribute15,
966         l_tao_rec.created_by,
967         l_tao_rec.creation_date,
968         l_tao_rec.last_updated_by,
969         l_tao_rec.last_update_date,
970         l_tao_rec.last_update_login,
971 /* changes made by Kanti on 06/27/2001. this field was missing from TAPI  */
972         l_tao_rec.post_to_gl_yn
973 /* Changes End */
974 );
975     -- Set OUT values
976     x_tao_rec := l_tao_rec;
977     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
978   EXCEPTION
979     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
980       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
981       (
982         l_api_name,
983         G_PKG_NAME,
984         'OKC_API.G_RET_STS_ERROR',
985         x_msg_count,
986         x_msg_data,
987         '_PVT'
988       );
989     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
990       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
991       (
992         l_api_name,
993         G_PKG_NAME,
994         'OKC_API.G_RET_STS_UNEXP_ERROR',
995         x_msg_count,
996         x_msg_data,
997         '_PVT'
998       );
999     WHEN OTHERS THEN
1000       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1001       (
1002         l_api_name,
1003         G_PKG_NAME,
1004         'OTHERS',
1005         x_msg_count,
1006         x_msg_data,
1007         '_PVT'
1008       );
1009   END insert_row;
1010   ----------------------------------------
1011   -- insert_row for:OKL_TRX_ACCT_OPTS_V --
1012   ----------------------------------------
1013   PROCEDURE insert_row(
1014     p_api_version                  IN NUMBER,
1015     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1016     x_return_status                OUT NOCOPY VARCHAR2,
1017     x_msg_count                    OUT NOCOPY NUMBER,
1018     x_msg_data                     OUT NOCOPY VARCHAR2,
1019     p_taov_rec                     IN taov_rec_type,
1020     x_taov_rec                     OUT NOCOPY taov_rec_type) IS
1021 
1022     l_api_version                 CONSTANT NUMBER := 1;
1023     l_api_name                     CONSTANT VARCHAR2(30) := 'V_insert_row';
1024     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1025     l_taov_rec                     taov_rec_type;
1026     l_def_taov_rec                 taov_rec_type;
1027     l_tao_rec                      tao_rec_type;
1028     lx_tao_rec                     tao_rec_type;
1029     -------------------------------
1030     -- FUNCTION fill_who_columns --
1031     -------------------------------
1032     FUNCTION fill_who_columns (
1033       p_taov_rec	IN taov_rec_type
1034     ) RETURN taov_rec_type IS
1035       l_taov_rec	taov_rec_type := p_taov_rec;
1036     BEGIN
1037       l_taov_rec.CREATION_DATE := SYSDATE;
1038       l_taov_rec.CREATED_BY := Fnd_Global.USER_ID;
1039       l_taov_rec.LAST_UPDATE_DATE := SYSDATE;
1040       l_taov_rec.LAST_UPDATED_BY := Fnd_Global.USER_ID;
1041       l_taov_rec.LAST_UPDATE_LOGIN := Fnd_Global.LOGIN_ID;
1042       RETURN(l_taov_rec);
1043     END fill_who_columns;
1044     --------------------------------------------
1045     -- Set_Attributes for:OKL_TRX_ACCT_OPTS_V --
1046     --------------------------------------------
1047     FUNCTION Set_Attributes (
1048       p_taov_rec IN  taov_rec_type,
1049       x_taov_rec OUT NOCOPY taov_rec_type
1050     ) RETURN VARCHAR2 IS
1051       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1052     BEGIN
1053       x_taov_rec := p_taov_rec;
1054       x_taov_rec.OBJECT_VERSION_NUMBER := 1;
1055       x_taov_rec.ORG_ID := MO_GLOBAL.GET_CURRENT_ORG_ID();
1056       RETURN(l_return_status);
1057     END Set_Attributes;
1058   BEGIN
1059     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
1060                                               G_PKG_NAME,
1061                                               p_init_msg_list,
1062                                               l_api_version,
1063                                               p_api_version,
1064                                               '_PVT',
1065                                               x_return_status);
1066     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1067       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1068     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1069       RAISE Okc_Api.G_EXCEPTION_ERROR;
1070     END IF;
1071     l_taov_rec := null_out_defaults(p_taov_rec);
1072     -- Set primary key value
1073     l_taov_rec.ID := get_seq_id;
1074     --- Setting item attributes
1075     l_return_status := Set_Attributes(
1076       l_taov_rec,                        -- IN
1077       l_def_taov_rec);                   -- OUT
1078     --- If any errors happen abort API
1079     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1080       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1081     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1082       RAISE Okc_Api.G_EXCEPTION_ERROR;
1083     END IF;
1084     l_def_taov_rec := fill_who_columns(l_def_taov_rec);
1085     --- Validate all non-missing attributes (Item Level Validation)
1086     l_return_status := Validate_Attributes(l_def_taov_rec);
1087     --- If any errors happen abort API
1088     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1089       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1090     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1091       RAISE Okc_Api.G_EXCEPTION_ERROR;
1092     END IF;
1093     l_return_status := Validate_Record(l_def_taov_rec);
1094     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1095       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1096     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1097       RAISE Okc_Api.G_EXCEPTION_ERROR;
1098     END IF;
1099     --------------------------------------
1100     -- Move VIEW record to "Child" records
1101     --------------------------------------
1102     migrate(l_def_taov_rec, l_tao_rec);
1103     --------------------------------------------
1104     -- Call the INSERT_ROW for each child record
1105     --------------------------------------------
1106     insert_row(
1107       p_init_msg_list,
1108       x_return_status,
1109       x_msg_count,
1110       x_msg_data,
1111       l_tao_rec,
1112       lx_tao_rec
1113     );
1114     IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1115       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1116     ELSIF (x_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1117       RAISE Okc_Api.G_EXCEPTION_ERROR;
1118     END IF;
1119     migrate(lx_tao_rec, l_def_taov_rec);
1120     -- Set OUT values
1121     x_taov_rec := l_def_taov_rec;
1122     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1123   EXCEPTION
1124     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1125       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1126       (
1127         l_api_name,
1128         G_PKG_NAME,
1129         'OKC_API.G_RET_STS_ERROR',
1130         x_msg_count,
1131         x_msg_data,
1132         '_PVT'
1133       );
1134     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1135       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1136       (
1137         l_api_name,
1138         G_PKG_NAME,
1139         'OKC_API.G_RET_STS_UNEXP_ERROR',
1140         x_msg_count,
1141         x_msg_data,
1142         '_PVT'
1143       );
1144     WHEN OTHERS THEN
1145       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1146       (
1147         l_api_name,
1148         G_PKG_NAME,
1149         'OTHERS',
1150         x_msg_count,
1151         x_msg_data,
1152         '_PVT'
1153       );
1154   END insert_row;
1155   ----------------------------------------
1156   -- PL/SQL TBL insert_row for:TAOV_TBL --
1157   ----------------------------------------
1158   PROCEDURE insert_row(
1159     p_api_version                  IN NUMBER,
1160     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1161     x_return_status                OUT NOCOPY VARCHAR2,
1162     x_msg_count                    OUT NOCOPY NUMBER,
1163     x_msg_data                     OUT NOCOPY VARCHAR2,
1164     p_taov_tbl                     IN taov_tbl_type,
1165     x_taov_tbl                     OUT NOCOPY taov_tbl_type) IS
1166 
1167     l_api_version                 CONSTANT NUMBER := 1;
1168     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
1169     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1170     l_overall_status		     VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1171     i                              NUMBER := 0;
1172   BEGIN
1173     Okc_Api.init_msg_list(p_init_msg_list);
1174     -- Make sure PL/SQL table has records in it before passing
1175     IF (p_taov_tbl.COUNT > 0) THEN
1176       i := p_taov_tbl.FIRST;
1177       LOOP
1178         insert_row (
1179           p_api_version                  => p_api_version,
1180           p_init_msg_list                => Okc_Api.G_FALSE,
1181           x_return_status                => x_return_status,
1182           x_msg_count                    => x_msg_count,
1183           x_msg_data                     => x_msg_data,
1184           p_taov_rec                     => p_taov_tbl(i),
1185           x_taov_rec                     => x_taov_tbl(i));
1186 	  IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
1187 	     IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
1188 		  l_overall_status := x_return_status;
1189 	     END IF;
1190 	  END IF;
1191         EXIT WHEN (i = p_taov_tbl.LAST);
1192         i := p_taov_tbl.NEXT(i);
1193       END LOOP;
1194 	x_return_status := l_overall_status;
1195     END IF;
1196   EXCEPTION
1197     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1198       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1199       (
1200         l_api_name,
1201         G_PKG_NAME,
1202         'OKC_API.G_RET_STS_ERROR',
1203         x_msg_count,
1204         x_msg_data,
1205         '_PVT'
1206       );
1207     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1208       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1209       (
1210         l_api_name,
1211         G_PKG_NAME,
1212         'OKC_API.G_RET_STS_UNEXP_ERROR',
1213         x_msg_count,
1214         x_msg_data,
1215         '_PVT'
1216       );
1217     WHEN OTHERS THEN
1218       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1219       (
1220         l_api_name,
1221         G_PKG_NAME,
1222         'OTHERS',
1223         x_msg_count,
1224         x_msg_data,
1225         '_PVT'
1226       );
1227   END insert_row;
1228 
1229   ---------------------------------------------------------------------------
1230   -- PROCEDURE lock_row
1231   ---------------------------------------------------------------------------
1232   ------------------------------------
1233   -- lock_row for:OKL_TRX_ACCT_OPTS --
1234   ------------------------------------
1235   PROCEDURE lock_row(
1236     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1237     x_return_status                OUT NOCOPY VARCHAR2,
1238     x_msg_count                    OUT NOCOPY NUMBER,
1239     x_msg_data                     OUT NOCOPY VARCHAR2,
1240     p_tao_rec                      IN tao_rec_type) IS
1241 
1242     E_Resource_Busy               EXCEPTION;
1243     PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
1244     CURSOR lock_csr (p_tao_rec IN tao_rec_type) IS
1245     SELECT OBJECT_VERSION_NUMBER
1246       FROM OKL_TRX_ACCT_OPTS
1247      WHERE ID = p_tao_rec.id
1248        AND OBJECT_VERSION_NUMBER = p_tao_rec.object_version_number
1249     FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
1250 
1251     CURSOR  lchk_csr (p_tao_rec IN tao_rec_type) IS
1252     SELECT OBJECT_VERSION_NUMBER
1253       FROM OKL_TRX_ACCT_OPTS
1254     WHERE ID = p_tao_rec.id;
1255     l_api_version                 CONSTANT NUMBER := 1;
1256     l_api_name                     CONSTANT VARCHAR2(30) := 'OPTS_lock_row';
1257     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1258     l_object_version_number       OKL_TRX_ACCT_OPTS.OBJECT_VERSION_NUMBER%TYPE;
1259     lc_object_version_number      OKL_TRX_ACCT_OPTS.OBJECT_VERSION_NUMBER%TYPE;
1260     l_row_notfound                BOOLEAN := FALSE;
1261     lc_row_notfound               BOOLEAN := FALSE;
1262   BEGIN
1263     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
1264                                               p_init_msg_list,
1265                                               '_PVT',
1266                                               x_return_status);
1267     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1268       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1269     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1270       RAISE Okc_Api.G_EXCEPTION_ERROR;
1271     END IF;
1272     BEGIN
1273       OPEN lock_csr(p_tao_rec);
1274       FETCH lock_csr INTO l_object_version_number;
1275       l_row_notfound := lock_csr%NOTFOUND;
1276       CLOSE lock_csr;
1277     EXCEPTION
1278       WHEN E_Resource_Busy THEN
1279         IF (lock_csr%ISOPEN) THEN
1280           CLOSE lock_csr;
1281         END IF;
1282         Okc_Api.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
1283         RAISE App_Exceptions.RECORD_LOCK_EXCEPTION;
1284     END;
1285 
1286     IF ( l_row_notfound ) THEN
1287       OPEN lchk_csr(p_tao_rec);
1288       FETCH lchk_csr INTO lc_object_version_number;
1289       lc_row_notfound := lchk_csr%NOTFOUND;
1290       CLOSE lchk_csr;
1291     END IF;
1292     IF (lc_row_notfound) THEN
1293       Okc_Api.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
1294       RAISE Okc_Api.G_EXCEPTION_ERROR;
1295     ELSIF lc_object_version_number > p_tao_rec.object_version_number THEN
1296       Okc_Api.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1297       RAISE Okc_Api.G_EXCEPTION_ERROR;
1298     ELSIF lc_object_version_number <> p_tao_rec.object_version_number THEN
1299       Okc_Api.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1300       RAISE Okc_Api.G_EXCEPTION_ERROR;
1301     ELSIF lc_object_version_number = -1 THEN
1302       Okc_Api.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
1303       RAISE Okc_Api.G_EXCEPTION_ERROR;
1304     END IF;
1305     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1306   EXCEPTION
1307     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1308       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1309       (
1310         l_api_name,
1311         G_PKG_NAME,
1312         'OKC_API.G_RET_STS_ERROR',
1313         x_msg_count,
1314         x_msg_data,
1315         '_PVT'
1316       );
1317     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1318       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1319       (
1320         l_api_name,
1321         G_PKG_NAME,
1322         'OKC_API.G_RET_STS_UNEXP_ERROR',
1323         x_msg_count,
1324         x_msg_data,
1325         '_PVT'
1326       );
1327     WHEN OTHERS THEN
1328       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1329       (
1330         l_api_name,
1331         G_PKG_NAME,
1332         'OTHERS',
1333         x_msg_count,
1334         x_msg_data,
1335         '_PVT'
1336       );
1337   END lock_row;
1338   --------------------------------------
1339   -- lock_row for:OKL_TRX_ACCT_OPTS_V --
1340   --------------------------------------
1341   PROCEDURE lock_row(
1342     p_api_version                  IN NUMBER,
1343     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1344     x_return_status                OUT NOCOPY VARCHAR2,
1345     x_msg_count                    OUT NOCOPY NUMBER,
1346     x_msg_data                     OUT NOCOPY VARCHAR2,
1347     p_taov_rec                     IN taov_rec_type) IS
1348 
1349     l_api_version                 CONSTANT NUMBER := 1;
1350     l_api_name                     CONSTANT VARCHAR2(30) := 'V_lock_row';
1351     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1352     l_tao_rec                      tao_rec_type;
1353   BEGIN
1354     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
1355                                               G_PKG_NAME,
1356                                               p_init_msg_list,
1357                                               l_api_version,
1358                                               p_api_version,
1359                                               '_PVT',
1360                                               x_return_status);
1361     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1362       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1363     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1364       RAISE Okc_Api.G_EXCEPTION_ERROR;
1365     END IF;
1366     --------------------------------------
1367     -- Move VIEW record to "Child" records
1368     --------------------------------------
1369     migrate(p_taov_rec, l_tao_rec);
1370     --------------------------------------------
1371     -- Call the LOCK_ROW for each child record
1372     --------------------------------------------
1373     lock_row(
1374       p_init_msg_list,
1375       x_return_status,
1376       x_msg_count,
1377       x_msg_data,
1378       l_tao_rec
1379     );
1380     IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1381       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1382     ELSIF (x_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1383       RAISE Okc_Api.G_EXCEPTION_ERROR;
1384     END IF;
1385     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1386   EXCEPTION
1387     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1388       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1389       (
1390         l_api_name,
1391         G_PKG_NAME,
1392         'OKC_API.G_RET_STS_ERROR',
1393         x_msg_count,
1394         x_msg_data,
1395         '_PVT'
1396       );
1397     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1398       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1399       (
1400         l_api_name,
1401         G_PKG_NAME,
1402         'OKC_API.G_RET_STS_UNEXP_ERROR',
1403         x_msg_count,
1404         x_msg_data,
1405         '_PVT'
1406       );
1407     WHEN OTHERS THEN
1408       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1409       (
1410         l_api_name,
1411         G_PKG_NAME,
1412         'OTHERS',
1413         x_msg_count,
1414         x_msg_data,
1415         '_PVT'
1416       );
1417   END lock_row;
1418   --------------------------------------
1419   -- PL/SQL TBL lock_row for:TAOV_TBL --
1420   --------------------------------------
1421   PROCEDURE lock_row(
1422     p_api_version                  IN NUMBER,
1423     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1424     x_return_status                OUT NOCOPY VARCHAR2,
1425     x_msg_count                    OUT NOCOPY NUMBER,
1426     x_msg_data                     OUT NOCOPY VARCHAR2,
1427     p_taov_tbl                     IN taov_tbl_type) IS
1428 
1429     l_api_version                 CONSTANT NUMBER := 1;
1430     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
1431     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1432     l_overall_status		     VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1433     i                              NUMBER := 0;
1434   BEGIN
1435     Okc_Api.init_msg_list(p_init_msg_list);
1436     -- Make sure PL/SQL table has records in it before passing
1437     IF (p_taov_tbl.COUNT > 0) THEN
1438       i := p_taov_tbl.FIRST;
1439       LOOP
1440         lock_row (
1441           p_api_version                  => p_api_version,
1442           p_init_msg_list                => Okc_Api.G_FALSE,
1443           x_return_status                => x_return_status,
1444           x_msg_count                    => x_msg_count,
1445           x_msg_data                     => x_msg_data,
1446           p_taov_rec                     => p_taov_tbl(i));
1447 	  IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
1448 	     IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
1449 		  l_overall_status := x_return_status;
1450 	     END IF;
1451 	  END IF;
1452         EXIT WHEN (i = p_taov_tbl.LAST);
1453         i := p_taov_tbl.NEXT(i);
1454       END LOOP;
1455 	x_return_status := l_overall_status;
1456     END IF;
1457   EXCEPTION
1458     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1459       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1460       (
1461         l_api_name,
1462         G_PKG_NAME,
1463         'OKC_API.G_RET_STS_ERROR',
1464         x_msg_count,
1465         x_msg_data,
1466         '_PVT'
1467       );
1468     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1469       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1470       (
1471         l_api_name,
1472         G_PKG_NAME,
1473         'OKC_API.G_RET_STS_UNEXP_ERROR',
1474         x_msg_count,
1475         x_msg_data,
1476         '_PVT'
1477       );
1478     WHEN OTHERS THEN
1479       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1480       (
1481         l_api_name,
1482         G_PKG_NAME,
1483         'OTHERS',
1484         x_msg_count,
1485         x_msg_data,
1486         '_PVT'
1487       );
1488   END lock_row;
1489 
1490   ---------------------------------------------------------------------------
1491   -- PROCEDURE update_row
1492   ---------------------------------------------------------------------------
1493   --------------------------------------
1494   -- update_row for:OKL_TRX_ACCT_OPTS --
1495   --------------------------------------
1496   PROCEDURE update_row(
1497     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1498     x_return_status                OUT NOCOPY VARCHAR2,
1499     x_msg_count                    OUT NOCOPY NUMBER,
1500     x_msg_data                     OUT NOCOPY VARCHAR2,
1501     p_tao_rec                      IN tao_rec_type,
1502     x_tao_rec                      OUT NOCOPY tao_rec_type) IS
1503 
1504     l_api_version                 CONSTANT NUMBER := 1;
1505     l_api_name                     CONSTANT VARCHAR2(30) := 'OPTS_update_row';
1506     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1507     l_tao_rec                      tao_rec_type := p_tao_rec;
1508     l_def_tao_rec                  tao_rec_type;
1509     l_row_notfound                 BOOLEAN := TRUE;
1510     ----------------------------------
1511     -- FUNCTION populate_new_record --
1512     ----------------------------------
1513     FUNCTION populate_new_record (
1514       p_tao_rec	IN tao_rec_type,
1515       x_tao_rec	OUT NOCOPY tao_rec_type
1516     ) RETURN VARCHAR2 IS
1517       l_tao_rec                      tao_rec_type;
1518       l_row_notfound                 BOOLEAN := TRUE;
1519       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1520     BEGIN
1521       x_tao_rec := p_tao_rec;
1522       -- Get current database values
1523       l_tao_rec := get_rec(p_tao_rec, l_row_notfound);
1524       IF (l_row_notfound) THEN
1525         l_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1526       END IF;
1527       IF (x_tao_rec.id = Okc_Api.G_MISS_NUM)
1528       THEN
1529         x_tao_rec.id := l_tao_rec.id;
1530       END IF;
1531       IF (x_tao_rec.try_id = Okc_Api.G_MISS_NUM)
1532       THEN
1533         x_tao_rec.try_id := l_tao_rec.try_id;
1534       END IF;
1535       IF (x_tao_rec.REV_CCID = Okc_Api.G_MISS_NUM)
1536       THEN
1537         x_tao_rec.REV_CCID := l_tao_rec.REV_CCID;
1538       END IF;
1539       IF (x_tao_rec.freight_ccid = Okc_Api.G_MISS_NUM)
1540       THEN
1541         x_tao_rec.freight_ccid := l_tao_rec.freight_ccid;
1542       END IF;
1543       IF (x_tao_rec.rec_ccid = Okc_Api.G_MISS_NUM)
1544       THEN
1545         x_tao_rec.rec_ccid := l_tao_rec.rec_ccid;
1546       END IF;
1547       IF (x_tao_rec.clearing_ccid = Okc_Api.G_MISS_NUM)
1548       THEN
1549         x_tao_rec.clearing_ccid := l_tao_rec.clearing_ccid;
1550       END IF;
1551       IF (x_tao_rec.tax_ccid = Okc_Api.G_MISS_NUM)
1552       THEN
1553         x_tao_rec.tax_ccid := l_tao_rec.tax_ccid;
1554       END IF;
1555       IF (x_tao_rec.unbilled_ccid = Okc_Api.G_MISS_NUM)
1556       THEN
1557         x_tao_rec.unbilled_ccid := l_tao_rec.unbilled_ccid;
1558       END IF;
1559       IF (x_tao_rec.unearned_ccid = Okc_Api.G_MISS_NUM)
1560       THEN
1561         x_tao_rec.unearned_ccid := l_tao_rec.unearned_ccid;
1562       END IF;
1563       IF (x_tao_rec.object_version_number = Okc_Api.G_MISS_NUM)
1564       THEN
1565         x_tao_rec.object_version_number := l_tao_rec.object_version_number;
1566       END IF;
1567       IF (x_tao_rec.org_id = Okc_Api.G_MISS_NUM)
1568       THEN
1569         x_tao_rec.org_id := l_tao_rec.org_id;
1570       END IF;
1571       IF (x_tao_rec.attribute_category = Okc_Api.G_MISS_CHAR)
1572       THEN
1573         x_tao_rec.attribute_category := l_tao_rec.attribute_category;
1574       END IF;
1575       IF (x_tao_rec.attribute1 = Okc_Api.G_MISS_CHAR)
1576       THEN
1577         x_tao_rec.attribute1 := l_tao_rec.attribute1;
1578       END IF;
1579       IF (x_tao_rec.attribute2 = Okc_Api.G_MISS_CHAR)
1580       THEN
1581         x_tao_rec.attribute2 := l_tao_rec.attribute2;
1582       END IF;
1583       IF (x_tao_rec.attribute3 = Okc_Api.G_MISS_CHAR)
1584       THEN
1585         x_tao_rec.attribute3 := l_tao_rec.attribute3;
1586       END IF;
1587       IF (x_tao_rec.attribute4 = Okc_Api.G_MISS_CHAR)
1588       THEN
1589         x_tao_rec.attribute4 := l_tao_rec.attribute4;
1590       END IF;
1591       IF (x_tao_rec.attribute5 = Okc_Api.G_MISS_CHAR)
1592       THEN
1593         x_tao_rec.attribute5 := l_tao_rec.attribute5;
1594       END IF;
1595       IF (x_tao_rec.attribute6 = Okc_Api.G_MISS_CHAR)
1596       THEN
1597         x_tao_rec.attribute6 := l_tao_rec.attribute6;
1598       END IF;
1599       IF (x_tao_rec.attribute7 = Okc_Api.G_MISS_CHAR)
1600       THEN
1601         x_tao_rec.attribute7 := l_tao_rec.attribute7;
1602       END IF;
1603       IF (x_tao_rec.attribute8 = Okc_Api.G_MISS_CHAR)
1604       THEN
1605         x_tao_rec.attribute8 := l_tao_rec.attribute8;
1606       END IF;
1607       IF (x_tao_rec.attribute9 = Okc_Api.G_MISS_CHAR)
1608       THEN
1609         x_tao_rec.attribute9 := l_tao_rec.attribute9;
1610       END IF;
1611       IF (x_tao_rec.attribute10 = Okc_Api.G_MISS_CHAR)
1612       THEN
1613         x_tao_rec.attribute10 := l_tao_rec.attribute10;
1614       END IF;
1615       IF (x_tao_rec.attribute11 = Okc_Api.G_MISS_CHAR)
1616       THEN
1617         x_tao_rec.attribute11 := l_tao_rec.attribute11;
1618       END IF;
1619       IF (x_tao_rec.attribute12 = Okc_Api.G_MISS_CHAR)
1620       THEN
1621         x_tao_rec.attribute12 := l_tao_rec.attribute12;
1622       END IF;
1623       IF (x_tao_rec.attribute13 = Okc_Api.G_MISS_CHAR)
1624       THEN
1625         x_tao_rec.attribute13 := l_tao_rec.attribute13;
1626       END IF;
1627       IF (x_tao_rec.attribute14 = Okc_Api.G_MISS_CHAR)
1628       THEN
1629         x_tao_rec.attribute14 := l_tao_rec.attribute14;
1630       END IF;
1631       IF (x_tao_rec.attribute15 = Okc_Api.G_MISS_CHAR)
1632       THEN
1633         x_tao_rec.attribute15 := l_tao_rec.attribute15;
1634       END IF;
1635       IF (x_tao_rec.created_by = Okc_Api.G_MISS_NUM)
1636       THEN
1637         x_tao_rec.created_by := l_tao_rec.created_by;
1638       END IF;
1639       IF (x_tao_rec.creation_date = Okc_Api.G_MISS_DATE)
1640       THEN
1641         x_tao_rec.creation_date := l_tao_rec.creation_date;
1642       END IF;
1643       IF (x_tao_rec.last_updated_by = Okc_Api.G_MISS_NUM)
1644       THEN
1645         x_tao_rec.last_updated_by := l_tao_rec.last_updated_by;
1646       END IF;
1647       IF (x_tao_rec.last_update_date = Okc_Api.G_MISS_DATE)
1648       THEN
1649         x_tao_rec.last_update_date := l_tao_rec.last_update_date;
1650       END IF;
1651       IF (x_tao_rec.last_update_login = Okc_Api.G_MISS_NUM)
1652       THEN
1653         x_tao_rec.last_update_login := l_tao_rec.last_update_login;
1654       END IF;
1655 /* changes made by Kanti on 06/27/2001. this field was missing from TAPI  */
1656       IF (x_tao_rec.post_to_gl_yn = Okc_Api.G_MISS_CHAR)
1657       THEN
1658         x_tao_rec.post_to_gl_yn := l_tao_rec.post_to_gl_yn;
1659       END IF;
1660 /* Changes End  */
1661       RETURN(l_return_status);
1662     END populate_new_record;
1663     ------------------------------------------
1664     -- Set_Attributes for:OKL_TRX_ACCT_OPTS --
1665     ------------------------------------------
1666     FUNCTION Set_Attributes (
1667       p_tao_rec IN  tao_rec_type,
1668       x_tao_rec OUT NOCOPY tao_rec_type
1669     ) RETURN VARCHAR2 IS
1670       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1671     BEGIN
1672       x_tao_rec := p_tao_rec;
1673       RETURN(l_return_status);
1674     END Set_Attributes;
1675   BEGIN
1676     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
1677                                               p_init_msg_list,
1678                                               '_PVT',
1679                                               x_return_status);
1680     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1681       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1682     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1683       RAISE Okc_Api.G_EXCEPTION_ERROR;
1684     END IF;
1685     --- Setting item attributes
1686     l_return_status := Set_Attributes(
1687       p_tao_rec,                         -- IN
1688       l_tao_rec);                        -- OUT
1689     --- If any errors happen abort API
1690     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1691       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1692     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1693       RAISE Okc_Api.G_EXCEPTION_ERROR;
1694     END IF;
1695     l_return_status := populate_new_record(l_tao_rec, l_def_tao_rec);
1696     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1697       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1698     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1699       RAISE Okc_Api.G_EXCEPTION_ERROR;
1700     END IF;
1701     UPDATE  OKL_TRX_ACCT_OPTS
1702     SET TRY_ID = l_def_tao_rec.try_id,
1703         REV_CCID = l_def_tao_rec.REV_CCID,
1704         FREIGHT_CCID = l_def_tao_rec.freight_ccid,
1705         REC_CCID = l_def_tao_rec.rec_ccid,
1706         CLEARING_CCID = l_def_tao_rec.clearing_ccid,
1707         TAX_CCID = l_def_tao_rec.tax_ccid,
1708         UNBILLED_CCID = l_def_tao_rec.unbilled_ccid,
1709         UNEARNED_CCID = l_def_tao_rec.unearned_ccid,
1710         OBJECT_VERSION_NUMBER = l_def_tao_rec.object_version_number,
1711         ORG_ID = l_def_tao_rec.org_id,
1712         ATTRIBUTE_CATEGORY = l_def_tao_rec.attribute_category,
1713         ATTRIBUTE1 = l_def_tao_rec.attribute1,
1714         ATTRIBUTE2 = l_def_tao_rec.attribute2,
1715         ATTRIBUTE3 = l_def_tao_rec.attribute3,
1716         ATTRIBUTE4 = l_def_tao_rec.attribute4,
1717         ATTRIBUTE5 = l_def_tao_rec.attribute5,
1718         ATTRIBUTE6 = l_def_tao_rec.attribute6,
1719         ATTRIBUTE7 = l_def_tao_rec.attribute7,
1720         ATTRIBUTE8 = l_def_tao_rec.attribute8,
1721         ATTRIBUTE9 = l_def_tao_rec.attribute9,
1722         ATTRIBUTE10 = l_def_tao_rec.attribute10,
1723         ATTRIBUTE11 = l_def_tao_rec.attribute11,
1724         ATTRIBUTE12 = l_def_tao_rec.attribute12,
1725         ATTRIBUTE13 = l_def_tao_rec.attribute13,
1726         ATTRIBUTE14 = l_def_tao_rec.attribute14,
1727         ATTRIBUTE15 = l_def_tao_rec.attribute15,
1728         CREATED_BY = l_def_tao_rec.created_by,
1729         CREATION_DATE = l_def_tao_rec.creation_date,
1730         LAST_UPDATED_BY = l_def_tao_rec.last_updated_by,
1731         LAST_UPDATE_DATE = l_def_tao_rec.last_update_date,
1732         LAST_UPDATE_LOGIN = l_def_tao_rec.last_update_login,
1733 /* changes made by Kanti on 06/27/2001. this field was missing from TAPI  */
1734         POST_TO_GL_YN     = l_def_tao_rec.post_to_gl_yn
1735 /* Changes End */
1736     WHERE ID = l_def_tao_rec.id;
1737 
1738     x_tao_rec := l_def_tao_rec;
1739     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1740   EXCEPTION
1741     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1742       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1743       (
1744         l_api_name,
1745         G_PKG_NAME,
1746         'OKC_API.G_RET_STS_ERROR',
1747         x_msg_count,
1748         x_msg_data,
1749         '_PVT'
1750       );
1751     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1752       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1753       (
1754         l_api_name,
1755         G_PKG_NAME,
1756         'OKC_API.G_RET_STS_UNEXP_ERROR',
1757         x_msg_count,
1758         x_msg_data,
1759         '_PVT'
1760       );
1761     WHEN OTHERS THEN
1762       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1763       (
1764         l_api_name,
1765         G_PKG_NAME,
1766         'OTHERS',
1767         x_msg_count,
1768         x_msg_data,
1769         '_PVT'
1770       );
1771   END update_row;
1772   ----------------------------------------
1773   -- update_row for:OKL_TRX_ACCT_OPTS_V --
1774   ----------------------------------------
1775   PROCEDURE update_row(
1776     p_api_version                  IN NUMBER,
1777     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1778     x_return_status                OUT NOCOPY VARCHAR2,
1779     x_msg_count                    OUT NOCOPY NUMBER,
1780     x_msg_data                     OUT NOCOPY VARCHAR2,
1781     p_taov_rec                     IN taov_rec_type,
1782     x_taov_rec                     OUT NOCOPY taov_rec_type) IS
1783 
1784     l_api_version                 CONSTANT NUMBER := 1;
1785     l_api_name                     CONSTANT VARCHAR2(30) := 'V_update_row';
1786     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1787     l_taov_rec                     taov_rec_type := p_taov_rec;
1788     l_def_taov_rec                 taov_rec_type;
1789     l_tao_rec                      tao_rec_type;
1790     lx_tao_rec                     tao_rec_type;
1791     -------------------------------
1792     -- FUNCTION fill_who_columns --
1793     -------------------------------
1794     FUNCTION fill_who_columns (
1795       p_taov_rec	IN taov_rec_type
1796     ) RETURN taov_rec_type IS
1797       l_taov_rec	taov_rec_type := p_taov_rec;
1798     BEGIN
1799       l_taov_rec.LAST_UPDATE_DATE := SYSDATE;
1800       l_taov_rec.LAST_UPDATED_BY := Fnd_Global.USER_ID;
1801       l_taov_rec.LAST_UPDATE_LOGIN := Fnd_Global.LOGIN_ID;
1802       RETURN(l_taov_rec);
1803     END fill_who_columns;
1804     ----------------------------------
1805     -- FUNCTION populate_new_record --
1806     ----------------------------------
1807     FUNCTION populate_new_record (
1808       p_taov_rec	IN taov_rec_type,
1809       x_taov_rec	OUT NOCOPY taov_rec_type
1810     ) RETURN VARCHAR2 IS
1811       l_taov_rec                     taov_rec_type;
1812       l_row_notfound                 BOOLEAN := TRUE;
1813       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1814     BEGIN
1815       x_taov_rec := p_taov_rec;
1816       -- Get current database values
1817       l_taov_rec := get_rec(p_taov_rec, l_row_notfound);
1818       IF (l_row_notfound) THEN
1819         l_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1820       END IF;
1821       IF (x_taov_rec.id = Okc_Api.G_MISS_NUM)
1822       THEN
1823         x_taov_rec.id := l_taov_rec.id;
1824       END IF;
1825       IF (x_taov_rec.object_version_number = Okc_Api.G_MISS_NUM)
1826       THEN
1827         x_taov_rec.object_version_number := l_taov_rec.object_version_number;
1828       END IF;
1829       IF (x_taov_rec.try_id = Okc_Api.G_MISS_NUM)
1830       THEN
1831         x_taov_rec.try_id := l_taov_rec.try_id;
1832       END IF;
1833       IF (x_taov_rec.unearned_ccid = Okc_Api.G_MISS_NUM)
1834       THEN
1835         x_taov_rec.unearned_ccid := l_taov_rec.unearned_ccid;
1836       END IF;
1837       IF (x_taov_rec.REV_CCID = Okc_Api.G_MISS_NUM)
1838       THEN
1839         x_taov_rec.REV_CCID := l_taov_rec.REV_CCID;
1840       END IF;
1841       IF (x_taov_rec.freight_ccid = Okc_Api.G_MISS_NUM)
1842       THEN
1843         x_taov_rec.freight_ccid := l_taov_rec.freight_ccid;
1844       END IF;
1845       IF (x_taov_rec.rec_ccid = Okc_Api.G_MISS_NUM)
1846       THEN
1847         x_taov_rec.rec_ccid := l_taov_rec.rec_ccid;
1848       END IF;
1849       IF (x_taov_rec.clearing_ccid = Okc_Api.G_MISS_NUM)
1850       THEN
1851         x_taov_rec.clearing_ccid := l_taov_rec.clearing_ccid;
1852       END IF;
1853       IF (x_taov_rec.tax_ccid = Okc_Api.G_MISS_NUM)
1854       THEN
1855         x_taov_rec.tax_ccid := l_taov_rec.tax_ccid;
1856       END IF;
1857       IF (x_taov_rec.unbilled_ccid = Okc_Api.G_MISS_NUM)
1858       THEN
1859         x_taov_rec.unbilled_ccid := l_taov_rec.unbilled_ccid;
1860       END IF;
1861       IF (x_taov_rec.attribute_category = Okc_Api.G_MISS_CHAR)
1862       THEN
1863         x_taov_rec.attribute_category := l_taov_rec.attribute_category;
1864       END IF;
1865       IF (x_taov_rec.attribute1 = Okc_Api.G_MISS_CHAR)
1866       THEN
1867         x_taov_rec.attribute1 := l_taov_rec.attribute1;
1868       END IF;
1869       IF (x_taov_rec.attribute2 = Okc_Api.G_MISS_CHAR)
1870       THEN
1871         x_taov_rec.attribute2 := l_taov_rec.attribute2;
1872       END IF;
1873       IF (x_taov_rec.attribute3 = Okc_Api.G_MISS_CHAR)
1874       THEN
1875         x_taov_rec.attribute3 := l_taov_rec.attribute3;
1876       END IF;
1877       IF (x_taov_rec.attribute4 = Okc_Api.G_MISS_CHAR)
1878       THEN
1879         x_taov_rec.attribute4 := l_taov_rec.attribute4;
1880       END IF;
1881       IF (x_taov_rec.attribute5 = Okc_Api.G_MISS_CHAR)
1882       THEN
1883         x_taov_rec.attribute5 := l_taov_rec.attribute5;
1884       END IF;
1885       IF (x_taov_rec.attribute6 = Okc_Api.G_MISS_CHAR)
1886       THEN
1887         x_taov_rec.attribute6 := l_taov_rec.attribute6;
1888       END IF;
1889       IF (x_taov_rec.attribute7 = Okc_Api.G_MISS_CHAR)
1890       THEN
1891         x_taov_rec.attribute7 := l_taov_rec.attribute7;
1892       END IF;
1893       IF (x_taov_rec.attribute8 = Okc_Api.G_MISS_CHAR)
1894       THEN
1895         x_taov_rec.attribute8 := l_taov_rec.attribute8;
1896       END IF;
1897       IF (x_taov_rec.attribute9 = Okc_Api.G_MISS_CHAR)
1898       THEN
1899         x_taov_rec.attribute9 := l_taov_rec.attribute9;
1900       END IF;
1901       IF (x_taov_rec.attribute10 = Okc_Api.G_MISS_CHAR)
1902       THEN
1903         x_taov_rec.attribute10 := l_taov_rec.attribute10;
1904       END IF;
1905       IF (x_taov_rec.attribute11 = Okc_Api.G_MISS_CHAR)
1906       THEN
1907         x_taov_rec.attribute11 := l_taov_rec.attribute11;
1908       END IF;
1909       IF (x_taov_rec.attribute12 = Okc_Api.G_MISS_CHAR)
1910       THEN
1911         x_taov_rec.attribute12 := l_taov_rec.attribute12;
1912       END IF;
1913       IF (x_taov_rec.attribute13 = Okc_Api.G_MISS_CHAR)
1914       THEN
1915         x_taov_rec.attribute13 := l_taov_rec.attribute13;
1916       END IF;
1917       IF (x_taov_rec.attribute14 = Okc_Api.G_MISS_CHAR)
1918       THEN
1919         x_taov_rec.attribute14 := l_taov_rec.attribute14;
1920       END IF;
1921       IF (x_taov_rec.attribute15 = Okc_Api.G_MISS_CHAR)
1922       THEN
1923         x_taov_rec.attribute15 := l_taov_rec.attribute15;
1924       END IF;
1925       IF (x_taov_rec.org_id = Okc_Api.G_MISS_NUM)
1926       THEN
1927         x_taov_rec.org_id := l_taov_rec.org_id;
1928       END IF;
1929       IF (x_taov_rec.created_by = Okc_Api.G_MISS_NUM)
1930       THEN
1931         x_taov_rec.created_by := l_taov_rec.created_by;
1932       END IF;
1933       IF (x_taov_rec.creation_date = Okc_Api.G_MISS_DATE)
1934       THEN
1935         x_taov_rec.creation_date := l_taov_rec.creation_date;
1936       END IF;
1937       IF (x_taov_rec.last_updated_by = Okc_Api.G_MISS_NUM)
1938       THEN
1939         x_taov_rec.last_updated_by := l_taov_rec.last_updated_by;
1940       END IF;
1941       IF (x_taov_rec.last_update_date = Okc_Api.G_MISS_DATE)
1942       THEN
1943         x_taov_rec.last_update_date := l_taov_rec.last_update_date;
1944       END IF;
1945       IF (x_taov_rec.last_update_login = Okc_Api.G_MISS_NUM)
1946       THEN
1947         x_taov_rec.last_update_login := l_taov_rec.last_update_login;
1948       END IF;
1949 /* changes made by Kanti on 06/27/2001. this field was missing from TAPI  */
1950       IF (x_taov_rec.post_to_gl_yn = Okc_Api.G_MISS_CHAR)
1951       THEN
1952         x_taov_rec.post_to_gl_yn := l_taov_rec.post_to_gl_yn;
1953       END IF;
1954 /* Changes end */
1955       RETURN(l_return_status);
1956     END populate_new_record;
1957     --------------------------------------------
1958     -- Set_Attributes for:OKL_TRX_ACCT_OPTS_V --
1959     --------------------------------------------
1960     FUNCTION Set_Attributes (
1961       p_taov_rec IN  taov_rec_type,
1962       x_taov_rec OUT NOCOPY taov_rec_type
1963     ) RETURN VARCHAR2 IS
1964       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1965     BEGIN
1966       x_taov_rec := p_taov_rec;
1967       RETURN(l_return_status);
1968     END Set_Attributes;
1969   BEGIN
1970     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
1971                                               G_PKG_NAME,
1972                                               p_init_msg_list,
1973                                               l_api_version,
1974                                               p_api_version,
1975                                               '_PVT',
1976                                               x_return_status);
1977     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1978       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1979     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1980       RAISE Okc_Api.G_EXCEPTION_ERROR;
1981     END IF;
1982     --- Setting item attributes
1983     l_return_status := Set_Attributes(
1984       p_taov_rec,                        -- IN
1985       l_taov_rec);                       -- OUT
1986     --- If any errors happen abort API
1987     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1988       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1989     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1990       RAISE Okc_Api.G_EXCEPTION_ERROR;
1991     END IF;
1992     l_return_status := populate_new_record(l_taov_rec, l_def_taov_rec);
1993     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1994       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1995     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1996       RAISE Okc_Api.G_EXCEPTION_ERROR;
1997     END IF;
1998     l_def_taov_rec := fill_who_columns(l_def_taov_rec);
1999     --- Validate all non-missing attributes (Item Level Validation)
2000     l_return_status := Validate_Attributes(l_def_taov_rec);
2001     --- If any errors happen abort API
2002     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2003       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2004     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2005       RAISE Okc_Api.G_EXCEPTION_ERROR;
2006     END IF;
2007     l_return_status := Validate_Record(l_def_taov_rec);
2008     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2009       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2010     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2011       RAISE Okc_Api.G_EXCEPTION_ERROR;
2012     END IF;
2013 
2014     --------------------------------------
2015     -- Move VIEW record to "Child" records
2016     --------------------------------------
2017     migrate(l_def_taov_rec, l_tao_rec);
2018     --------------------------------------------
2019     -- Call the UPDATE_ROW for each child record
2020     --------------------------------------------
2021     update_row(
2022       p_init_msg_list,
2023       x_return_status,
2024       x_msg_count,
2025       x_msg_data,
2026       l_tao_rec,
2027       lx_tao_rec
2028     );
2029     IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2030       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2031     ELSIF (x_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2032       RAISE Okc_Api.G_EXCEPTION_ERROR;
2033     END IF;
2034     migrate(lx_tao_rec, l_def_taov_rec);
2035     x_taov_rec := l_def_taov_rec;
2036     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
2037   EXCEPTION
2038     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
2039       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
2040       (
2041         l_api_name,
2042         G_PKG_NAME,
2043         'OKC_API.G_RET_STS_ERROR',
2044         x_msg_count,
2045         x_msg_data,
2046         '_PVT'
2047       );
2048     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2049       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2050       (
2051         l_api_name,
2052         G_PKG_NAME,
2053         'OKC_API.G_RET_STS_UNEXP_ERROR',
2054         x_msg_count,
2055         x_msg_data,
2056         '_PVT'
2057       );
2058     WHEN OTHERS THEN
2059       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2060       (
2061         l_api_name,
2062         G_PKG_NAME,
2063         'OTHERS',
2064         x_msg_count,
2065         x_msg_data,
2066         '_PVT'
2067       );
2068   END update_row;
2069   ----------------------------------------
2070   -- PL/SQL TBL update_row for:TAOV_TBL --
2071   ----------------------------------------
2072   PROCEDURE update_row(
2073     p_api_version                  IN NUMBER,
2074     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
2075     x_return_status                OUT NOCOPY VARCHAR2,
2076     x_msg_count                    OUT NOCOPY NUMBER,
2077     x_msg_data                     OUT NOCOPY VARCHAR2,
2078     p_taov_tbl                     IN taov_tbl_type,
2079     x_taov_tbl                     OUT NOCOPY taov_tbl_type) IS
2080 
2081     l_api_version                 CONSTANT NUMBER := 1;
2082     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
2083     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2084     l_overall_status		     VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2085     i                              NUMBER := 0;
2086   BEGIN
2087     Okc_Api.init_msg_list(p_init_msg_list);
2088     -- Make sure PL/SQL table has records in it before passing
2089     IF (p_taov_tbl.COUNT > 0) THEN
2090       i := p_taov_tbl.FIRST;
2091       LOOP
2092         update_row (
2093           p_api_version                  => p_api_version,
2094           p_init_msg_list                => Okc_Api.G_FALSE,
2095           x_return_status                => x_return_status,
2096           x_msg_count                    => x_msg_count,
2097           x_msg_data                     => x_msg_data,
2098           p_taov_rec                     => p_taov_tbl(i),
2099           x_taov_rec                     => x_taov_tbl(i));
2100 	  IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
2101 	     IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
2102 		  l_overall_status := x_return_status;
2103 	     END IF;
2104 	  END IF;
2105         EXIT WHEN (i = p_taov_tbl.LAST);
2106         i := p_taov_tbl.NEXT(i);
2107       END LOOP;
2108 	x_return_status := l_overall_status;
2109     END IF;
2110   EXCEPTION
2111     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
2112       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
2113       (
2114         l_api_name,
2115         G_PKG_NAME,
2116         'OKC_API.G_RET_STS_ERROR',
2117         x_msg_count,
2118         x_msg_data,
2119         '_PVT'
2120       );
2121     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2122       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2123       (
2124         l_api_name,
2125         G_PKG_NAME,
2126         'OKC_API.G_RET_STS_UNEXP_ERROR',
2127         x_msg_count,
2128         x_msg_data,
2129         '_PVT'
2130       );
2131     WHEN OTHERS THEN
2132       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2133       (
2134         l_api_name,
2135         G_PKG_NAME,
2136         'OTHERS',
2137         x_msg_count,
2138         x_msg_data,
2139         '_PVT'
2140       );
2141   END update_row;
2142 
2143   ---------------------------------------------------------------------------
2144   -- PROCEDURE delete_row
2145   ---------------------------------------------------------------------------
2146   --------------------------------------
2147   -- delete_row for:OKL_TRX_ACCT_OPTS --
2148   --------------------------------------
2149   PROCEDURE delete_row(
2150     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
2151     x_return_status                OUT NOCOPY VARCHAR2,
2152     x_msg_count                    OUT NOCOPY NUMBER,
2153     x_msg_data                     OUT NOCOPY VARCHAR2,
2154     p_tao_rec                      IN tao_rec_type) IS
2155 
2156     l_api_version                 CONSTANT NUMBER := 1;
2157     l_api_name                     CONSTANT VARCHAR2(30) := 'OPTS_delete_row';
2158     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2159     l_tao_rec                      tao_rec_type:= p_tao_rec;
2160     l_row_notfound                 BOOLEAN := TRUE;
2161   BEGIN
2162     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
2163                                               p_init_msg_list,
2164                                               '_PVT',
2165                                               x_return_status);
2166     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2167       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2168     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2169       RAISE Okc_Api.G_EXCEPTION_ERROR;
2170     END IF;
2171     DELETE FROM OKL_TRX_ACCT_OPTS
2172      WHERE ID = l_tao_rec.id;
2173 
2174     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
2175   EXCEPTION
2176     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
2177       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
2178       (
2179         l_api_name,
2180         G_PKG_NAME,
2181         'OKC_API.G_RET_STS_ERROR',
2182         x_msg_count,
2183         x_msg_data,
2184         '_PVT'
2185       );
2186     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2187       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2188       (
2189         l_api_name,
2190         G_PKG_NAME,
2191         'OKC_API.G_RET_STS_UNEXP_ERROR',
2192         x_msg_count,
2193         x_msg_data,
2194         '_PVT'
2195       );
2196     WHEN OTHERS THEN
2197       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2198       (
2199         l_api_name,
2200         G_PKG_NAME,
2201         'OTHERS',
2202         x_msg_count,
2203         x_msg_data,
2204         '_PVT'
2205       );
2206   END delete_row;
2207   ----------------------------------------
2208   -- delete_row for:OKL_TRX_ACCT_OPTS_V --
2209   ----------------------------------------
2210   PROCEDURE delete_row(
2211     p_api_version                  IN NUMBER,
2212     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
2213     x_return_status                OUT NOCOPY VARCHAR2,
2214     x_msg_count                    OUT NOCOPY NUMBER,
2215     x_msg_data                     OUT NOCOPY VARCHAR2,
2216     p_taov_rec                     IN taov_rec_type) IS
2217 
2218     l_api_version                 CONSTANT NUMBER := 1;
2219     l_api_name                     CONSTANT VARCHAR2(30) := 'V_delete_row';
2220     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2221     l_taov_rec                     taov_rec_type := p_taov_rec;
2222     l_tao_rec                      tao_rec_type;
2223   BEGIN
2224     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
2225                                               G_PKG_NAME,
2226                                               p_init_msg_list,
2227                                               l_api_version,
2228                                               p_api_version,
2229                                               '_PVT',
2230                                               x_return_status);
2231     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2232       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2233     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2234       RAISE Okc_Api.G_EXCEPTION_ERROR;
2235     END IF;
2236     --------------------------------------
2237     -- Move VIEW record to "Child" records
2238     --------------------------------------
2239     migrate(l_taov_rec, l_tao_rec);
2240     --------------------------------------------
2241     -- Call the DELETE_ROW for each child record
2242     --------------------------------------------
2243     delete_row(
2244       p_init_msg_list,
2245       x_return_status,
2246       x_msg_count,
2247       x_msg_data,
2248       l_tao_rec
2249     );
2250     IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2251       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2252     ELSIF (x_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2253       RAISE Okc_Api.G_EXCEPTION_ERROR;
2254     END IF;
2255     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
2256   EXCEPTION
2257     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
2258       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
2259       (
2260         l_api_name,
2261         G_PKG_NAME,
2262         'OKC_API.G_RET_STS_ERROR',
2263         x_msg_count,
2264         x_msg_data,
2265         '_PVT'
2266       );
2267     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2268       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2269       (
2270         l_api_name,
2271         G_PKG_NAME,
2272         'OKC_API.G_RET_STS_UNEXP_ERROR',
2273         x_msg_count,
2274         x_msg_data,
2275         '_PVT'
2276       );
2277     WHEN OTHERS THEN
2278       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2279       (
2280         l_api_name,
2281         G_PKG_NAME,
2282         'OTHERS',
2283         x_msg_count,
2284         x_msg_data,
2285         '_PVT'
2286       );
2287   END delete_row;
2288   ----------------------------------------
2289   -- PL/SQL TBL delete_row for:TAOV_TBL --
2290   ----------------------------------------
2291   PROCEDURE delete_row(
2292     p_api_version                  IN NUMBER,
2293     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
2294     x_return_status                OUT NOCOPY VARCHAR2,
2295     x_msg_count                    OUT NOCOPY NUMBER,
2296     x_msg_data                     OUT NOCOPY VARCHAR2,
2297     p_taov_tbl                     IN taov_tbl_type) IS
2298 
2299     l_api_version                 CONSTANT NUMBER := 1;
2300     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
2301     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2302     l_overall_status		     VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2303     i                              NUMBER := 0;
2304   BEGIN
2305     Okc_Api.init_msg_list(p_init_msg_list);
2306     -- Make sure PL/SQL table has records in it before passing
2307     IF (p_taov_tbl.COUNT > 0) THEN
2308       i := p_taov_tbl.FIRST;
2309       LOOP
2310         delete_row (
2311           p_api_version                  => p_api_version,
2312           p_init_msg_list                => Okc_Api.G_FALSE,
2313           x_return_status                => x_return_status,
2314           x_msg_count                    => x_msg_count,
2315           x_msg_data                     => x_msg_data,
2316           p_taov_rec                     => p_taov_tbl(i));
2317 	  IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
2318 	     IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
2319 		  l_overall_status := x_return_status;
2320 	     END IF;
2321 	  END IF;
2322         EXIT WHEN (i = p_taov_tbl.LAST);
2323         i := p_taov_tbl.NEXT(i);
2324       END LOOP;
2325 	x_return_status := l_overall_status;
2326     END IF;
2327   EXCEPTION
2328     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
2329       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
2330       (
2331         l_api_name,
2332         G_PKG_NAME,
2333         'OKC_API.G_RET_STS_ERROR',
2334         x_msg_count,
2335         x_msg_data,
2336         '_PVT'
2337       );
2338     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2339       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2340       (
2341         l_api_name,
2342         G_PKG_NAME,
2343         'OKC_API.G_RET_STS_UNEXP_ERROR',
2344         x_msg_count,
2345         x_msg_data,
2346         '_PVT'
2347       );
2348     WHEN OTHERS THEN
2349       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2350       (
2351         l_api_name,
2352         G_PKG_NAME,
2353         'OTHERS',
2354         x_msg_count,
2355         x_msg_data,
2356         '_PVT'
2357       );
2358   END delete_row;
2359 END Okl_Tao_Pvt;