[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;