[Home] [Help]
PACKAGE BODY: APPS.OKL_LRL_PVT
Source
1 PACKAGE BODY okl_lrl_pvt AS
2 /* $Header: OKLSLRLB.pls 120.1 2005/08/25 05:18:02 asawanka noship $ */
3
4 --------------------------------------------------------------------------------
5 --PACKAGE CONSTANTS
6 --------------------------------------------------------------------------------
7
8 g_ret_sts_success CONSTANT varchar2(1) := okl_api.g_ret_sts_success;
9 g_ret_sts_unexp_error CONSTANT varchar2(1) := okl_api.g_ret_sts_unexp_error;
10 g_ret_sts_error CONSTANT varchar2(1) := okl_api.g_ret_sts_error;
11 g_db_error CONSTANT varchar2(12) := 'OKL_DB_ERROR';
12 g_prog_name_token CONSTANT varchar2(9) := 'PROG_NAME';
13 g_miss_char CONSTANT varchar2(1) := okl_api.g_miss_char;
14 g_miss_num CONSTANT number := okl_api.g_miss_num;
15 g_miss_date CONSTANT date := okl_api.g_miss_date;
16 g_no_parent_record CONSTANT varchar2(200) := 'OKC_NO_PARENT_RECORD';
17 g_unexpected_error CONSTANT varchar2(200) := 'OKC_CONTRACTS_UNEXPECTED_ERROR';
18 g_sqlerrm_token CONSTANT varchar2(200) := 'SQLerrm';
19 g_sqlcode_token CONSTANT varchar2(200) := 'SQLcode';
20 g_exception_halt_validation EXCEPTION;
21
22 PROCEDURE api_copy IS
23
24 BEGIN
25 NULL;
26 END api_copy;
27
28 PROCEDURE change_version IS
29
30 BEGIN
31 NULL;
32 END change_version;
33
34 -------------------------------------
35 -- Function Name : validate_id
36 -------------------------------------
37
38 FUNCTION validate_id(p_id IN number) RETURN varchar2 IS
39 l_api_name CONSTANT varchar2(61) := g_pkg_name || '.' || 'validate_id';
40
41 BEGIN
42
43
44 -- data is required
45
46 IF (p_id IS NULL) OR (p_id = okl_api.g_miss_num) THEN
47 okl_api.set_message(p_app_name => g_app_name
48 ,p_msg_name => g_required_value
49 ,p_token1 => g_col_name_token
50 ,p_token1_value => 'id');
51 RAISE okl_api.g_exception_error;
52 END IF;
53 RETURN g_ret_sts_success;
54 EXCEPTION
55 WHEN okl_api.g_exception_error THEN
56 RETURN g_ret_sts_error;
57 WHEN okl_api.g_exception_unexpected_error THEN
58 RETURN g_ret_sts_unexp_error;
59 WHEN OTHERS THEN
60 okl_api.set_message(p_app_name => g_app_name
61 ,p_msg_name => g_db_error
62 ,p_token1 => g_prog_name_token
63 ,p_token1_value => l_api_name
64 ,p_token2 => 'SQLCODE'
65 ,p_token2_value => sqlcode
66 ,p_token3 => 'SQLERRM'
67 ,p_token3_value => sqlerrm);
68 RETURN g_ret_sts_unexp_error;
69 END validate_id;
70
71 --------------------------------------------
72 -- lock_row for:OKL_FE_RATE_SET_LEVELS_V --
73 --------------------------------------------
74
75 PROCEDURE lock_row(p_init_msg_list IN varchar2
76 ,x_return_status OUT NOCOPY varchar2
77 ,x_msg_count OUT NOCOPY number
78 ,x_msg_data OUT NOCOPY varchar2
79 ,p_lrlv_rec IN okl_lrlv_rec) IS
80 e_resource_busy EXCEPTION;
81
82 PRAGMA exception_init(e_resource_busy, - 00054);
83
84 CURSOR lock_csr(p_lrlv_rec IN okl_lrlv_rec) IS
85 SELECT object_version_number
86 FROM okl_fe_rate_set_levels
87 WHERE rate_set_level_id = p_lrlv_rec.rate_set_level_id
88 AND object_version_number = p_lrlv_rec.object_version_number
89 FOR UPDATE OF object_version_number NOWAIT;
90
91 CURSOR lchk_csr(p_lrlv_rec IN okl_lrlv_rec) IS
92 SELECT object_version_number
93 FROM okl_fe_rate_set_levels
94 WHERE rate_set_level_id = p_lrlv_rec.rate_set_level_id;
95 l_api_version CONSTANT number := 1;
96 l_api_name CONSTANT varchar2(30) := 'V_lock_row';
97 l_return_status varchar2(1) := okl_api.g_ret_sts_success;
98 l_object_version_number okl_fe_rate_set_levels.object_version_number%TYPE;
99 lc_object_version_number okl_fe_rate_set_levels.object_version_number%TYPE;
100 l_row_notfound boolean := false;
101 lc_row_notfound boolean := false;
102
103 BEGIN
104 l_return_status := okl_api.start_activity(l_api_name
105 ,p_init_msg_list
106 ,'_PVT'
107 ,x_return_status);
108
109 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
110 RAISE okl_api.g_exception_unexpected_error;
111 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
112 RAISE okl_api.g_exception_error;
113 END IF;
114
115 BEGIN
116 OPEN lock_csr(p_lrlv_rec);
117 FETCH lock_csr INTO l_object_version_number ;
118 l_row_notfound := lock_csr%NOTFOUND;
119 CLOSE lock_csr;
120 EXCEPTION
121 WHEN e_resource_busy THEN
122
123 IF (lock_csr%ISOPEN) THEN
124 CLOSE lock_csr;
125 END IF;
126 okl_api.set_message(g_fnd_app, g_form_unable_to_reserve_rec);
127 RAISE app_exceptions.record_lock_exception;
128 END;
129
130 IF (l_row_notfound) THEN
131 OPEN lchk_csr(p_lrlv_rec);
132 FETCH lchk_csr INTO lc_object_version_number ;
133 lc_row_notfound := lchk_csr%NOTFOUND;
134 CLOSE lchk_csr;
135 END IF;
136
137 IF (lc_row_notfound) THEN
138 okl_api.set_message(g_fnd_app, g_form_record_deleted);
139 RAISE okl_api.g_exception_error;
140 ELSIF lc_object_version_number > p_lrlv_rec.object_version_number THEN
141 okl_api.set_message(g_fnd_app, g_form_record_changed);
142 RAISE okl_api.g_exception_error;
143 ELSIF lc_object_version_number <> p_lrlv_rec.object_version_number THEN
144 okl_api.set_message(g_fnd_app, g_form_record_changed);
145 RAISE okl_api.g_exception_error;
146 ELSIF lc_object_version_number = - 1 THEN
147 okl_api.set_message(g_app_name, g_record_logically_deleted);
148 RAISE okl_api.g_exception_error;
149 END IF;
150 okl_api.end_activity(x_msg_count, x_msg_data);
151 EXCEPTION
152 WHEN g_exception_halt_validation THEN
153 x_return_status := okl_api.handle_exceptions(l_api_name
154 ,g_pkg_name
155 ,'OKL_API.G_RET_STS_ERROR'
156 ,x_msg_count
157 ,x_msg_data
158 ,'_PVT');
159 WHEN okl_api.g_exception_error THEN
160 x_return_status := okl_api.handle_exceptions(l_api_name
161 ,g_pkg_name
162 ,'OKL_API.G_RET_STS_ERROR'
163 ,x_msg_count
164 ,x_msg_data
165 ,'_PVT');
166 WHEN okl_api.g_exception_unexpected_error THEN
167 x_return_status := okl_api.handle_exceptions(l_api_name
168 ,g_pkg_name
169 ,'OKL_API.G_RET_STS_UNEXP_ERROR'
170 ,x_msg_count
171 ,x_msg_data
172 ,'_PVT');
173 WHEN OTHERS THEN
174 x_return_status := okl_api.handle_exceptions(l_api_name
175 ,g_pkg_name
176 ,'OTHERS'
177 ,x_msg_count
178 ,x_msg_data
179 ,'_PVT');
180 END lock_row;
181
182 --------------------------------------------------
183 -- PL/SQL TBL lock_row for: OKL_ITM_RSD_HDR --
184 --------------------------------------------------
185
186 PROCEDURE lock_row(p_api_version IN number
187 ,p_init_msg_list IN varchar2
188 ,x_return_status OUT NOCOPY varchar2
189 ,x_msg_count OUT NOCOPY number
190 ,x_msg_data OUT NOCOPY varchar2
191 ,p_lrlv_tbl IN okl_lrlv_tbl) IS
192 l_api_version CONSTANT number := 1;
193 l_api_name CONSTANT varchar2(30) := 'tbl_lock_row';
194 l_return_status varchar2(1) := okl_api.g_ret_sts_success;
195
196 -- Begin Post-Generation Change
197 -- overall error status
198
199 l_overall_status varchar2(1) := okl_api.g_ret_sts_success;
200
201 -- End Post-Generation Change
202
203 i number := 0;
204
205 BEGIN
206 okl_api.init_msg_list(p_init_msg_list);
207
208 -- Make sure PL/SQL table has records in it before passing
209
210 IF (p_lrlv_tbl.COUNT > 0) THEN
211 i := p_lrlv_tbl.FIRST;
212
213 LOOP
214 lock_row(p_init_msg_list => okl_api.g_false
215 ,x_return_status => x_return_status
216 ,x_msg_count => x_msg_count
217 ,x_msg_data => x_msg_data
218 ,p_lrlv_rec => p_lrlv_tbl(i));
219
220 -- Begin Post-Generation Change
221 -- store the highest degree of error
222
223 IF x_return_status <> okl_api.g_ret_sts_success THEN
224 IF l_overall_status <> okl_api.g_ret_sts_unexp_error THEN
225 l_overall_status := x_return_status;
226 END IF;
227 END IF;
228
229 -- End Post-Generation Change
230
231 EXIT WHEN(i = p_lrlv_tbl.LAST);
232 i := p_lrlv_tbl.next(i);
233 END LOOP;
234
235 -- Begin Post-Generation Change
236 -- return overall status
237
238 x_return_status := l_overall_status;
239
240 -- End Post-Generation Change
241
242 END IF;
243
244 EXCEPTION
245 WHEN g_exception_halt_validation THEN
246 x_return_status := okl_api.handle_exceptions(l_api_name
247 ,g_pkg_name
248 ,'OKL_API.G_RET_STS_ERROR'
249 ,x_msg_count
250 ,x_msg_data
251 ,'_PVT');
252 WHEN okl_api.g_exception_error THEN
253 x_return_status := okl_api.handle_exceptions(l_api_name
254 ,g_pkg_name
255 ,'OKL_API.G_RET_STS_ERROR'
256 ,x_msg_count
257 ,x_msg_data
258 ,'_PVT');
259 WHEN okl_api.g_exception_unexpected_error THEN
260 x_return_status := okl_api.handle_exceptions(l_api_name
261 ,g_pkg_name
262 ,'OKL_API.G_RET_STS_UNEXP_ERROR'
263 ,x_msg_count
264 ,x_msg_data
265 ,'_PVT');
266 WHEN OTHERS THEN
267 x_return_status := okl_api.handle_exceptions(l_api_name
268 ,g_pkg_name
269 ,'OTHERS'
270 ,x_msg_count
271 ,x_msg_data
272 ,'_PVT');
273 END lock_row;
274
275 --------------------------------------------------
276 -- Function Name : validate_object_version_number
277 --------------------------------------------------
278
279 FUNCTION validate_object_version_number(p_object_version_number IN number) RETURN varchar2 IS
280 l_api_name CONSTANT varchar2(61) := g_pkg_name || '.' || 'validate_object_version_number';
281
282 BEGIN
283
284 IF (p_object_version_number IS NULL) OR (p_object_version_number = g_miss_num) THEN
285 okl_api.set_message(p_app_name => g_app_name
286 ,p_msg_name => g_required_value
287 ,p_token1 => g_col_name_token
288 ,p_token1_value => 'object_version_number');
289 RAISE okl_api.g_exception_error;
290 END IF;
291 RETURN g_ret_sts_success;
292 EXCEPTION
293 WHEN okl_api.g_exception_error THEN
294 RETURN g_ret_sts_error;
295 WHEN okl_api.g_exception_unexpected_error THEN
296 RETURN g_ret_sts_unexp_error;
297 WHEN OTHERS THEN
298 okl_api.set_message(p_app_name => g_app_name
299 ,p_msg_name => g_db_error
300 ,p_token1 => g_prog_name_token
301 ,p_token1_value => l_api_name
302 ,p_token2 => g_sqlcode_token
303 ,p_token2_value => sqlcode
304 ,p_token3 => g_sqlerrm_token
305 ,p_token3_value => sqlerrm);
306 RETURN g_ret_sts_unexp_error;
307 END validate_object_version_number;
308
309 -------------------------------------------
310 -- Function validate_RESIDUAL_PERCENT
311 -------------------------------------------
312
313 FUNCTION validate_residual_percent(p_residual_percent IN number) RETURN varchar2 IS
314 l_api_name CONSTANT varchar2(61) := g_pkg_name || '.' || 'validate_RESIDUAL_PERCENT';
315
316 BEGIN
317
318 IF (p_residual_percent IS NULL) OR (p_residual_percent = g_miss_num) THEN
319 okl_api.set_message(p_app_name => g_app_name
320 ,p_msg_name => g_required_value
321 ,p_token1 => g_col_name_token
322 ,p_token1_value => 'RESIDUAL_PERCENT');
323 RAISE okl_api.g_exception_error;
324 END IF;
325 RETURN g_ret_sts_success;
326 EXCEPTION
327 WHEN okl_api.g_exception_error THEN
328 RETURN g_ret_sts_error;
329 WHEN okl_api.g_exception_unexpected_error THEN
330 RETURN g_ret_sts_unexp_error;
331 WHEN OTHERS THEN
332 okl_api.set_message(p_app_name => g_app_name
333 ,p_msg_name => g_db_error
334 ,p_token1 => g_prog_name_token
335 ,p_token1_value => l_api_name
336 ,p_token2 => 'SQLCODE'
337 ,p_token2_value => sqlcode
338 ,p_token3 => 'SQLERRM'
339 ,p_token3_value => sqlerrm);
340 RETURN g_ret_sts_unexp_error;
341 END validate_residual_percent;
342
343 --------------------------------------------
344 -- Function Name : validate_RATE_SET_ID
345 --------------------------------------------
346
347 FUNCTION validate_rate_set_id(p_rate_set_id IN number) RETURN varchar2 IS
348 l_dummy_var varchar2(1) := '?';
349 l_api_name CONSTANT varchar2(61) := g_pkg_name || '.' || 'validate_RATE_SET_ID';
350
351 -- select the ID of the parent record from the parent table
352
353 CURSOR l_lrs_hdr_csr IS
354 SELECT 'x'
355 FROM okl_ls_rt_fctr_sets_b
356 WHERE id = p_rate_set_id;
357
358 BEGIN
359
360
361 -- data is required
362
363 IF (p_rate_set_id IS NULL) OR (p_rate_set_id = okl_api.g_miss_num) THEN
364 okl_api.set_message(p_app_name => g_app_name
365 ,p_msg_name => g_required_value
366 ,p_token1 => g_col_name_token
367 ,p_token1_value => 'RATE_SET_ID');
368 RAISE okl_api.g_exception_error;
369 END IF;
370
371 -- enforce foreign key
372
373 OPEN l_lrs_hdr_csr;
374 FETCH l_lrs_hdr_csr INTO l_dummy_var ;
375 CLOSE l_lrs_hdr_csr;
376
377 -- if l_dummy_var is still set to default, data was not found
378
379 IF (l_dummy_var = '?') THEN
380 okl_api.set_message(p_app_name => g_app_name
381 ,p_msg_name => g_no_parent_record
382 ,p_token1 => g_col_name_token
383 ,p_token1_value => 'RATE_SET_ID'
384 ,p_token2 => g_child_table_token
385 ,p_token2_value => 'OKL_FE_RATE_SET_LEVELS'
386 ,p_token3 => g_parent_table_token
387 ,p_token3_value => 'OKL_LS_RT_FCTR_SETS_B');
388 RAISE okl_api.g_exception_error;
389 END IF;
390 RETURN g_ret_sts_success;
391 EXCEPTION
392 WHEN okl_api.g_exception_error THEN
393
394 -- verify that cursor was closed
395
396 IF l_lrs_hdr_csr%ISOPEN THEN
397 CLOSE l_lrs_hdr_csr;
398 END IF;
399 RETURN g_ret_sts_error;
400 WHEN okl_api.g_exception_unexpected_error THEN
401
402 -- verify that cursor was closed
403
404 IF l_lrs_hdr_csr%ISOPEN THEN
405 CLOSE l_lrs_hdr_csr;
406 END IF;
407 RETURN g_ret_sts_unexp_error;
408 WHEN OTHERS THEN
409
410 -- verify that cursor was closed
411
412 IF l_lrs_hdr_csr%ISOPEN THEN
413 CLOSE l_lrs_hdr_csr;
414 END IF;
415 okl_api.set_message(p_app_name => g_app_name
416 ,p_msg_name => g_db_error
417 ,p_token1 => g_prog_name_token
418 ,p_token1_value => l_api_name
419 ,p_token2 => 'SQLCODE'
420 ,p_token2_value => sqlcode
421 ,p_token3 => 'SQLERRM'
422 ,p_token3_value => sqlerrm);
423 RETURN g_ret_sts_unexp_error;
424 END validate_rate_set_id;
425
426 --------------------------------------------
427 -- Function Name : validate_RATE_SET_VERSION_ID
428 --------------------------------------------
429
430 FUNCTION validate_rate_set_version_id(p_rate_set_version_id IN number) RETURN varchar2 IS
431 l_dummy_var varchar2(1) := '?';
432 l_api_name CONSTANT varchar2(61) := g_pkg_name || '.' || 'validate_RATE_SET_VERSION_ID';
433
434 -- select the ID of the parent record from the parent table
435
436 CURSOR l_lrs_ver_csr IS
437 SELECT 'x'
438 FROM okl_fe_rate_set_versions
439 WHERE rate_set_version_id = p_rate_set_version_id;
440
441 BEGIN
442
443
444 -- data is required
445
446 IF (p_rate_set_version_id IS NULL) OR (p_rate_set_version_id = okl_api.g_miss_num) THEN
447 okl_api.set_message(p_app_name => g_app_name
448 ,p_msg_name => g_required_value
449 ,p_token1 => g_col_name_token
450 ,p_token1_value => 'RATE_SET_VERSION_ID');
451 RAISE okl_api.g_exception_error;
452 END IF;
453
454 -- enforce foreign key
455
456 OPEN l_lrs_ver_csr;
457 FETCH l_lrs_ver_csr INTO l_dummy_var ;
458 CLOSE l_lrs_ver_csr;
459
460 -- if l_dummy_var is still set to default, data was not found
461
462 IF (l_dummy_var = '?') THEN
463 okl_api.set_message(p_app_name => g_app_name
464 ,p_msg_name => g_no_parent_record
465 ,p_token1 => g_col_name_token
466 ,p_token1_value => 'RATE_SET_VERSION_ID'
467 ,p_token2 => g_child_table_token
468 ,p_token2_value => 'OKL_FE_RATE_SET_LEVELS'
469 ,p_token3 => g_parent_table_token
470 ,p_token3_value => 'OKL_LS_RT_FCTR_VERS');
471 RAISE okl_api.g_exception_error;
472 END IF;
473 RETURN g_ret_sts_success;
474 EXCEPTION
475 WHEN okl_api.g_exception_error THEN
476
477 -- verify that cursor was closed
478
479 IF l_lrs_ver_csr%ISOPEN THEN
480 CLOSE l_lrs_ver_csr;
481 END IF;
482 RETURN g_ret_sts_error;
483 WHEN okl_api.g_exception_unexpected_error THEN
484
485 -- verify that cursor was closed
486
487 IF l_lrs_ver_csr%ISOPEN THEN
488 CLOSE l_lrs_ver_csr;
489 END IF;
490 RETURN g_ret_sts_unexp_error;
491 WHEN OTHERS THEN
492
493 -- verify that cursor was closed
494
495 IF l_lrs_ver_csr%ISOPEN THEN
496 CLOSE l_lrs_ver_csr;
497 END IF;
498 okl_api.set_message(p_app_name => g_app_name
499 ,p_msg_name => g_db_error
500 ,p_token1 => g_prog_name_token
501 ,p_token1_value => l_api_name
502 ,p_token2 => 'SQLCODE'
503 ,p_token2_value => sqlcode
504 ,p_token3 => 'SQLERRM'
505 ,p_token3_value => sqlerrm);
506 RETURN g_ret_sts_unexp_error;
507 END validate_rate_set_version_id;
508
509 --------------------------------------------
510 -- Function Name : validate_RATE_SET_FACTOR_ID
511 --------------------------------------------
512
513 FUNCTION validate_rate_set_factor_id(p_rate_set_factor_id IN number) RETURN varchar2 IS
514 l_dummy_var varchar2(1) := '?';
515 l_api_name CONSTANT varchar2(61) := g_pkg_name || '.' || 'validate_RATE_SET_FACTOR_ID';
516
517 -- select the ID of the parent record from the parent table
518
519 CURSOR l_lrf_csr IS
520 SELECT 'x'
521 FROM okl_ls_rt_fctr_ents
522 WHERE id = p_rate_set_factor_id;
523
524 BEGIN
525
526
527 -- data is required
528
529 IF p_rate_set_factor_id IS NOT NULL THEN
530
531 -- enforce foreign key
532
533 OPEN l_lrf_csr;
534 FETCH l_lrf_csr INTO l_dummy_var ;
535 CLOSE l_lrf_csr;
536
537 -- if l_dummy_var is still set to default, data was not found
538
539 IF (l_dummy_var = '?') THEN
540 okl_api.set_message(p_app_name => g_app_name
541 ,p_msg_name => g_no_parent_record
542 ,p_token1 => g_col_name_token
543 ,p_token1_value => 'RATE_SET_FACTOR_ID'
544 ,p_token2 => g_child_table_token
545 ,p_token2_value => 'OKL_FE_RATE_SET_LEVELS'
546 ,p_token3 => g_parent_table_token
547 ,p_token3_value => 'OKL_LS_RT_FCTR_ENTS');
548 RAISE okl_api.g_exception_error;
549 END IF;
550 END IF;
551 RETURN g_ret_sts_success;
552 EXCEPTION
553 WHEN okl_api.g_exception_error THEN
554
555 -- verify that cursor was closed
556
557 IF l_lrf_csr%ISOPEN THEN
558 CLOSE l_lrf_csr;
559 END IF;
560 RETURN g_ret_sts_error;
561 WHEN okl_api.g_exception_unexpected_error THEN
562
563 -- verify that cursor was closed
564
565 IF l_lrf_csr%ISOPEN THEN
566 CLOSE l_lrf_csr;
567 END IF;
568 RETURN g_ret_sts_unexp_error;
569 WHEN OTHERS THEN
570
571 -- verify that cursor was closed
572
573 IF l_lrf_csr%ISOPEN THEN
574 CLOSE l_lrf_csr;
575 END IF;
576 okl_api.set_message(p_app_name => g_app_name
577 ,p_msg_name => g_db_error
578 ,p_token1 => g_prog_name_token
579 ,p_token1_value => l_api_name
580 ,p_token2 => 'SQLCODE'
581 ,p_token2_value => sqlcode
582 ,p_token3 => 'SQLERRM'
583 ,p_token3_value => sqlerrm);
584 RETURN g_ret_sts_unexp_error;
585 END validate_rate_set_factor_id;
586
587 ---------------------------------------------------
588 -- Function Name : validate_rate
589 ---------------------------------------------------
590
591 FUNCTION validate_periods(p_periods IN number) RETURN varchar2 IS
592 l_api_name CONSTANT varchar2(61) := g_pkg_name || '.' || 'validate_periods';
593
594 BEGIN
595
596
597 -- data is required
598
599 IF (p_periods IS NULL) OR (p_periods = okl_api.g_miss_num) THEN
600 okl_api.set_message(p_app_name => g_app_name
601 ,p_msg_name => g_required_value
602 ,p_token1 => g_col_name_token
603 ,p_token1_value => 'periods');
604 RAISE okl_api.g_exception_error;
605 END IF;
606
607 IF p_periods <= 0 THEN
608 okl_api.set_message(p_app_name => g_app_name
609 ,p_msg_name => g_invalid_value
610 ,p_token1 => g_col_name_token
611 ,p_token1_value => 'Periods');
612 RAISE okl_api.g_exception_error;
613 END IF;
614
615 IF (trunc(p_periods) <> p_periods) THEN
616 okl_api.set_message(p_app_name => g_app_name
617 ,p_msg_name => g_invalid_value
618 ,p_token1 => g_col_name_token
619 ,p_token1_value => 'Periods');
620 RAISE okl_api.g_exception_error;
621 END IF;
622 RETURN g_ret_sts_success;
623 EXCEPTION
624 WHEN okl_api.g_exception_error THEN
625 RETURN g_ret_sts_error;
626 WHEN okl_api.g_exception_unexpected_error THEN
627 RETURN g_ret_sts_unexp_error;
628 WHEN OTHERS THEN
629 okl_api.set_message(p_app_name => g_app_name
630 ,p_msg_name => g_db_error
631 ,p_token1 => g_prog_name_token
632 ,p_token1_value => l_api_name
633 ,p_token2 => 'SQLCODE'
634 ,p_token2_value => sqlcode
635 ,p_token3 => 'SQLERRM'
636 ,p_token3_value => sqlerrm);
637 RETURN g_ret_sts_unexp_error;
638 END validate_periods;
639
640 ---------------------------------------------------
641 -- Function Name : validate_lease_rate_factor
642 ---------------------------------------------------
643
644 FUNCTION validate_lease_rate_factor (p_lease_rate_factor IN number) RETURN varchar2 IS
645 l_api_name CONSTANT varchar2(61) := g_pkg_name || '.' || 'validate_lease_rate_factor';
646
647 BEGIN
648
649
650 -- data is required
651
652 IF (p_lease_rate_factor IS NULL) OR (p_lease_rate_factor = okl_api.g_miss_num) THEN
653 okl_api.set_message(p_app_name => g_app_name
654 ,p_msg_name => g_required_value
655 ,p_token1 => g_col_name_token
656 ,p_token1_value => 'lease_rate_factor');
657 RAISE okl_api.g_exception_error;
658 END IF;
659
660 RETURN g_ret_sts_success;
661 EXCEPTION
662 WHEN okl_api.g_exception_error THEN
663 RETURN g_ret_sts_error;
664 WHEN okl_api.g_exception_unexpected_error THEN
665 RETURN g_ret_sts_unexp_error;
666 WHEN OTHERS THEN
667 okl_api.set_message(p_app_name => g_app_name
668 ,p_msg_name => g_db_error
669 ,p_token1 => g_prog_name_token
670 ,p_token1_value => l_api_name
671 ,p_token2 => 'SQLCODE'
672 ,p_token2_value => sqlcode
673 ,p_token3 => 'SQLERRM'
674 ,p_token3_value => sqlerrm);
675 RETURN g_ret_sts_unexp_error;
676 END validate_lease_rate_factor;
677
678 --------------------------------------------------------------------------------
679 -- Procedure get_rec for OKL_FE_RATE_SET_LEVELS_V
680 --------------------------------------------------------------------------------
681
682 FUNCTION get_rec(p_lrlv_rec IN okl_lrlv_rec
683 ,x_no_data_found OUT NOCOPY boolean) RETURN okl_lrlv_rec IS
684
685 CURSOR lrlv_pk_csr(p_id IN number) IS
686 SELECT rate_set_level_id
687 ,object_version_number
688 ,residual_percent
689 ,rate_set_id
690 ,rate_set_version_id
691 ,rate_set_factor_id
692 ,sequence_number
693 ,periods
694 ,lease_rate_factor
695 ,created_by
696 ,creation_date
697 ,last_updated_by
698 ,last_update_date
699 ,last_update_login
700 ,attribute_category
701 ,attribute1
702 ,attribute2
703 ,attribute3
704 ,attribute4
705 ,attribute5
706 ,attribute6
707 ,attribute7
708 ,attribute8
709 ,attribute9
710 ,attribute10
711 ,attribute11
712 ,attribute12
713 ,attribute13
714 ,attribute14
715 ,attribute15
716 FROM okl_fe_rate_set_levels_v
717 WHERE okl_fe_rate_set_levels_v.rate_set_level_id = p_id;
718 l_lrlv_pk lrlv_pk_csr%ROWTYPE;
719 l_lrlv_rec okl_lrlv_rec;
720
721 BEGIN
722 x_no_data_found := true;
723
724 --Get current data base values
725
726 OPEN lrlv_pk_csr(p_lrlv_rec.rate_set_level_id);
727 FETCH lrlv_pk_csr INTO l_lrlv_rec.rate_set_level_id
728 ,l_lrlv_rec.object_version_number
729 ,l_lrlv_rec.residual_percent
730 ,l_lrlv_rec.rate_set_id
731 ,l_lrlv_rec.rate_set_version_id
732 ,l_lrlv_rec.rate_set_factor_id
733 ,l_lrlv_rec.sequence_number
734 ,l_lrlv_rec.periods
735 ,l_lrlv_rec.lease_rate_factor
736 ,l_lrlv_rec.created_by
737 ,l_lrlv_rec.creation_date
738 ,l_lrlv_rec.last_updated_by
739 ,l_lrlv_rec.last_update_date
740 ,l_lrlv_rec.last_update_login
741 ,l_lrlv_rec.attribute_category
742 ,l_lrlv_rec.attribute1
743 ,l_lrlv_rec.attribute2
744 ,l_lrlv_rec.attribute3
745 ,l_lrlv_rec.attribute4
746 ,l_lrlv_rec.attribute5
747 ,l_lrlv_rec.attribute6
748 ,l_lrlv_rec.attribute7
749 ,l_lrlv_rec.attribute8
750 ,l_lrlv_rec.attribute9
751 ,l_lrlv_rec.attribute10
752 ,l_lrlv_rec.attribute11
753 ,l_lrlv_rec.attribute12
754 ,l_lrlv_rec.attribute13
755 ,l_lrlv_rec.attribute14
756 ,l_lrlv_rec.attribute15 ;
757 x_no_data_found := lrlv_pk_csr%NOTFOUND;
758 CLOSE lrlv_pk_csr;
759 RETURN(l_lrlv_rec);
760 END get_rec;
761
762 FUNCTION get_rec(p_lrlv_rec IN okl_lrlv_rec) RETURN okl_lrlv_rec IS
763 l_row_notfound boolean := true;
764
765 BEGIN
766 RETURN(get_rec(p_lrlv_rec, l_row_notfound));
767 END get_rec;
768
769 FUNCTION null_out_defaults(p_lrlv_rec IN okl_lrlv_rec) RETURN okl_lrlv_rec IS
770 l_lrlv_rec okl_lrlv_rec := p_lrlv_rec;
771
772 BEGIN
773
774 IF (l_lrlv_rec.rate_set_level_id = okl_api.g_miss_num) THEN
775 l_lrlv_rec.rate_set_level_id := NULL;
776 END IF;
777
778 IF (l_lrlv_rec.object_version_number = okl_api.g_miss_num) THEN
779 l_lrlv_rec.object_version_number := NULL;
780 END IF;
781
782 IF (l_lrlv_rec.residual_percent = okl_api.g_miss_num) THEN
783 l_lrlv_rec.residual_percent := NULL;
784 END IF;
785
786 IF (l_lrlv_rec.rate_set_id = okl_api.g_miss_num) THEN
787 l_lrlv_rec.rate_set_id := NULL;
788 END IF;
789
790 IF (l_lrlv_rec.rate_set_version_id = okl_api.g_miss_num) THEN
791 l_lrlv_rec.rate_set_version_id := NULL;
792 END IF;
793
794 IF (l_lrlv_rec.rate_set_factor_id = okl_api.g_miss_num) THEN
795 l_lrlv_rec.rate_set_factor_id := NULL;
796 END IF;
797
798 IF (l_lrlv_rec.sequence_number = okl_api.g_miss_num) THEN
799 l_lrlv_rec.sequence_number := NULL;
800 END IF;
801
802 IF (l_lrlv_rec.periods = okl_api.g_miss_num) THEN
803 l_lrlv_rec.periods := NULL;
804 END IF;
805
806 IF (l_lrlv_rec.lease_rate_factor = okl_api.g_miss_num) THEN
807 l_lrlv_rec.lease_rate_factor := NULL;
808 END IF;
809
810 IF (l_lrlv_rec.created_by = okl_api.g_miss_num) THEN
811 l_lrlv_rec.created_by := NULL;
812 END IF;
813
814 IF (l_lrlv_rec.creation_date = okl_api.g_miss_date) THEN
815 l_lrlv_rec.creation_date := NULL;
816 END IF;
817
818 IF (l_lrlv_rec.last_updated_by = okl_api.g_miss_num) THEN
819 l_lrlv_rec.last_updated_by := NULL;
820 END IF;
821
822 IF (l_lrlv_rec.last_update_date = okl_api.g_miss_date) THEN
823 l_lrlv_rec.last_update_date := NULL;
824 END IF;
825
826 IF (l_lrlv_rec.last_update_login = okl_api.g_miss_num) THEN
827 l_lrlv_rec.last_update_login := NULL;
828 END IF;
829
830 IF (l_lrlv_rec.attribute_category = okl_api.g_miss_char) THEN
831 l_lrlv_rec.attribute_category := NULL;
832 END IF;
833
834 IF (l_lrlv_rec.attribute1 = okl_api.g_miss_char) THEN
835 l_lrlv_rec.attribute1 := NULL;
836 END IF;
837
838 IF (l_lrlv_rec.attribute2 = okl_api.g_miss_char) THEN
839 l_lrlv_rec.attribute2 := NULL;
840 END IF;
841
842 IF (l_lrlv_rec.attribute3 = okl_api.g_miss_char) THEN
843 l_lrlv_rec.attribute3 := NULL;
844 END IF;
845
846 IF (l_lrlv_rec.attribute4 = okl_api.g_miss_char) THEN
847 l_lrlv_rec.attribute4 := NULL;
848 END IF;
849
850 IF (l_lrlv_rec.attribute5 = okl_api.g_miss_char) THEN
851 l_lrlv_rec.attribute5 := NULL;
852 END IF;
853
854 IF (l_lrlv_rec.attribute6 = okl_api.g_miss_char) THEN
855 l_lrlv_rec.attribute6 := NULL;
856 END IF;
857
858 IF (l_lrlv_rec.attribute7 = okl_api.g_miss_char) THEN
859 l_lrlv_rec.attribute7 := NULL;
860 END IF;
861
862 IF (l_lrlv_rec.attribute8 = okl_api.g_miss_char) THEN
863 l_lrlv_rec.attribute8 := NULL;
864 END IF;
865
866 IF (l_lrlv_rec.attribute9 = okl_api.g_miss_char) THEN
867 l_lrlv_rec.attribute9 := NULL;
868 END IF;
869
870 IF (l_lrlv_rec.attribute10 = okl_api.g_miss_char) THEN
871 l_lrlv_rec.attribute10 := NULL;
872 END IF;
873
874 IF (l_lrlv_rec.attribute11 = okl_api.g_miss_char) THEN
875 l_lrlv_rec.attribute11 := NULL;
876 END IF;
877
878 IF (l_lrlv_rec.attribute12 = okl_api.g_miss_char) THEN
879 l_lrlv_rec.attribute12 := NULL;
880 END IF;
881
882 IF (l_lrlv_rec.attribute13 = okl_api.g_miss_char) THEN
883 l_lrlv_rec.attribute13 := NULL;
884 END IF;
885
886 IF (l_lrlv_rec.attribute14 = okl_api.g_miss_char) THEN
887 l_lrlv_rec.attribute14 := NULL;
888 END IF;
889
890 IF (l_lrlv_rec.attribute15 = okl_api.g_miss_char) THEN
891 l_lrlv_rec.attribute15 := NULL;
892 END IF;
893 RETURN(l_lrlv_rec);
894 END null_out_defaults;
895
896 FUNCTION get_seq_id RETURN number IS
897
898 BEGIN
899 RETURN(okc_p_util.raw_to_number(sys_guid()));
900 END get_seq_id;
901
902 FUNCTION validate_attributes(p_lrlv_rec IN okl_lrlv_rec) RETURN varchar2 IS
903 l_return_status varchar2(1) := okl_api.g_ret_sts_success;
904 x_return_status varchar2(1) := okl_api.g_ret_sts_success;
905 l_api_name CONSTANT varchar2(61) := g_pkg_name || '.' || 'validate_attributes';
906
907 BEGIN
908
909 -- call each column-level validation
910
911
912 l_return_status := validate_id(p_lrlv_rec.rate_set_level_id);
913
914 IF (l_return_status = g_ret_sts_unexp_error) THEN
915 RAISE okl_api.g_exception_unexpected_error;
916 ELSIF (l_return_status = g_ret_sts_error) THEN
917 RAISE okl_api.g_exception_error;
918 END IF;
919 l_return_status := validate_object_version_number(p_lrlv_rec.object_version_number);
920
921 IF (l_return_status = g_ret_sts_unexp_error) THEN
922 RAISE okl_api.g_exception_unexpected_error;
923 ELSIF (l_return_status = g_ret_sts_error) THEN
924 RAISE okl_api.g_exception_error;
925 END IF; /* l_return_status := validate_RESIDUAL_PERCENT(p_lrlv_rec.RESIDUAL_PERCENT);
926
927 IF (l_return_status = G_RET_STS_UNEXP_ERROR) THEN
928 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
929 ELSIF (l_return_status = G_RET_STS_ERROR) THEN
930 RAISE OKL_API.G_EXCEPTION_ERROR;
931 END IF;*/
932 l_return_status := validate_rate_set_factor_id(p_lrlv_rec.rate_set_factor_id);
933
934 IF (l_return_status = g_ret_sts_unexp_error) THEN
935 RAISE okl_api.g_exception_unexpected_error;
936 ELSIF (l_return_status = g_ret_sts_error) THEN
937 RAISE okl_api.g_exception_error;
938 END IF;
939 l_return_status := validate_rate_set_id(p_lrlv_rec.rate_set_id);
940
941 IF (l_return_status = g_ret_sts_unexp_error) THEN
942 RAISE okl_api.g_exception_unexpected_error;
943 ELSIF (l_return_status = g_ret_sts_error) THEN
944 RAISE okl_api.g_exception_error;
945 END IF;
946 l_return_status := validate_rate_set_version_id(p_lrlv_rec.rate_set_version_id);
947
948 IF (l_return_status = g_ret_sts_unexp_error) THEN
949 RAISE okl_api.g_exception_unexpected_error;
950 ELSIF (l_return_status = g_ret_sts_error) THEN
951 RAISE okl_api.g_exception_error;
952 END IF;
953 l_return_status := validate_periods(p_lrlv_rec.periods);
954
955 IF (l_return_status = g_ret_sts_unexp_error) THEN
956 RAISE okl_api.g_exception_unexpected_error;
957 ELSIF (l_return_status = g_ret_sts_error) THEN
958 RAISE okl_api.g_exception_error;
959 END IF;
960 l_return_status := validate_lease_rate_factor (p_lrlv_rec.lease_rate_factor);
961
962 IF (l_return_status = g_ret_sts_unexp_error) THEN
963 RAISE okl_api.g_exception_unexpected_error;
964 ELSIF (l_return_status = g_ret_sts_error) THEN
965 RAISE okl_api.g_exception_error;
966 END IF;
967 RETURN(x_return_status);
968 EXCEPTION
969 WHEN okl_api.g_exception_error THEN
970 RETURN g_ret_sts_error;
971 WHEN okl_api.g_exception_unexpected_error THEN
972 RETURN g_ret_sts_unexp_error;
973 WHEN OTHERS THEN
974 okl_api.set_message(p_app_name => g_app_name
975 ,p_msg_name => g_db_error
976 ,p_token1 => g_prog_name_token
977 ,p_token1_value => l_api_name
978 ,p_token2 => 'SQLCODE'
979 ,p_token2_value => sqlcode
980 ,p_token3 => 'SQLERRM'
981 ,p_token3_value => sqlerrm);
982 RETURN g_ret_sts_unexp_error;
983 END validate_attributes;
984
985 FUNCTION validate_record(p_lrlv_rec IN okl_lrlv_rec) RETURN varchar2 IS
986 l_return_status varchar2(1) := okl_api.g_ret_sts_success;
987 x_return_status varchar2(1) := okl_api.g_ret_sts_success;
988
989 BEGIN
990 RETURN(x_return_status);
991 END validate_record;
992
993 --------------------------------------------------------------------------------
994 -- Procedure insert_row
995 --------------------------------------------------------------------------------
996
997 PROCEDURE insert_row(p_api_version IN number
998 ,p_init_msg_list IN varchar2 DEFAULT okl_api.g_false
999 ,x_return_status OUT NOCOPY varchar2
1000 ,x_msg_count OUT NOCOPY number
1001 ,x_msg_data OUT NOCOPY varchar2
1002 ,p_lrlv_rec IN okl_lrlv_rec
1003 ,x_lrlv_rec OUT NOCOPY okl_lrlv_rec) IS
1004 l_api_version CONSTANT number := 1;
1005 l_api_name CONSTANT varchar2(30) := 'insert_row';
1006 l_return_status varchar2(1) := okl_api.g_ret_sts_success;
1007 l_lrlv_rec okl_lrlv_rec := p_lrlv_rec;
1008 l_def_lrlv_rec okl_lrlv_rec;
1009
1010 FUNCTION fill_who_columns(p_lrlv_rec IN okl_lrlv_rec) RETURN okl_lrlv_rec IS
1011 l_lrlv_rec okl_lrlv_rec := p_lrlv_rec;
1012
1013 BEGIN
1014 l_lrlv_rec.creation_date := sysdate;
1015 l_lrlv_rec.created_by := fnd_global.user_id;
1016 l_lrlv_rec.last_update_date := sysdate;
1017 l_lrlv_rec.last_updated_by := fnd_global.user_id;
1018 l_lrlv_rec.last_update_login := fnd_global.login_id;
1019 RETURN(l_lrlv_rec);
1020 END fill_who_columns;
1021
1022 FUNCTION set_attributes(p_lrlv_rec IN okl_lrlv_rec
1023 ,x_lrlv_rec OUT NOCOPY okl_lrlv_rec) RETURN varchar2 IS
1024 l_return_status varchar2(1) := okl_api.g_ret_sts_success;
1025
1026 BEGIN
1027 x_lrlv_rec := p_lrlv_rec;
1028
1029 -- Set Primary key value
1030
1031 x_lrlv_rec.rate_set_level_id := get_seq_id;
1032 x_lrlv_rec.object_version_number := 1;
1033 RETURN(l_return_status);
1034 END set_attributes;
1035
1036 BEGIN
1037 l_return_status := okl_api.start_activity(l_api_name
1038 ,g_pkg_name
1039 ,p_init_msg_list
1040 ,l_api_version
1041 ,p_api_version
1042 ,'_PVT'
1043 ,x_return_status);
1044
1045 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
1046 RAISE okl_api.g_exception_unexpected_error;
1047 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
1048 RAISE okl_api.g_exception_error;
1049 END IF;
1050
1051 --null out defaults
1052
1053 l_lrlv_rec := null_out_defaults(p_lrlv_rec);
1054
1055 --Setting Item Attributes
1056
1057 l_return_status := set_attributes(l_lrlv_rec, l_def_lrlv_rec);
1058
1059 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
1060 RAISE okl_api.g_exception_unexpected_error;
1061 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
1062 RAISE okl_api.g_exception_error;
1063 END IF;
1064
1065 --fill who columns
1066
1067 l_def_lrlv_rec := fill_who_columns(l_def_lrlv_rec);
1068
1069 --validate attributes
1070
1071
1072 l_return_status := validate_attributes(l_def_lrlv_rec);
1073
1074 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
1075 RAISE okl_api.g_exception_unexpected_error;
1076 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
1077 RAISE okl_api.g_exception_error;
1078 END IF;
1079
1080 --validate record
1081
1082
1083 l_return_status := validate_record(l_def_lrlv_rec);
1084
1085 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
1086 RAISE okl_api.g_exception_unexpected_error;
1087 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
1088 RAISE okl_api.g_exception_error;
1089 END IF;
1090
1091 --insert into table
1092
1093 INSERT INTO okl_fe_rate_set_levels
1094 (rate_set_level_id
1095 ,object_version_number
1096 ,residual_percent
1097 ,rate_set_id
1098 ,rate_set_version_id
1099 ,rate_set_factor_id
1100 ,sequence_number
1101 ,periods
1102 ,lease_rate_factor
1103 ,created_by
1104 ,creation_date
1105 ,last_updated_by
1106 ,last_update_date
1107 ,last_update_login
1108 ,attribute_category
1109 ,attribute1
1110 ,attribute2
1111 ,attribute3
1112 ,attribute4
1113 ,attribute5
1114 ,attribute6
1115 ,attribute7
1116 ,attribute8
1117 ,attribute9
1118 ,attribute10
1119 ,attribute11
1120 ,attribute12
1121 ,attribute13
1122 ,attribute14
1123 ,attribute15)
1124 VALUES (l_def_lrlv_rec.rate_set_level_id
1125 ,l_def_lrlv_rec.object_version_number
1126 ,l_def_lrlv_rec.residual_percent
1127 ,l_def_lrlv_rec.rate_set_id
1128 ,l_def_lrlv_rec.rate_set_version_id
1129 ,l_def_lrlv_rec.rate_set_factor_id
1130 ,l_def_lrlv_rec.sequence_number
1131 ,l_def_lrlv_rec.periods
1132 ,l_def_lrlv_rec.lease_rate_factor
1133 ,l_def_lrlv_rec.created_by
1134 ,l_def_lrlv_rec.creation_date
1135 ,l_def_lrlv_rec.last_updated_by
1136 ,l_def_lrlv_rec.last_update_date
1137 ,l_def_lrlv_rec.last_update_login
1138 ,l_def_lrlv_rec.attribute_category
1139 ,l_def_lrlv_rec.attribute1
1140 ,l_def_lrlv_rec.attribute2
1141 ,l_def_lrlv_rec.attribute3
1142 ,l_def_lrlv_rec.attribute4
1143 ,l_def_lrlv_rec.attribute5
1144 ,l_def_lrlv_rec.attribute6
1145 ,l_def_lrlv_rec.attribute7
1146 ,l_def_lrlv_rec.attribute8
1147 ,l_def_lrlv_rec.attribute9
1148 ,l_def_lrlv_rec.attribute10
1149 ,l_def_lrlv_rec.attribute11
1150 ,l_def_lrlv_rec.attribute12
1151 ,l_def_lrlv_rec.attribute13
1152 ,l_def_lrlv_rec.attribute14
1153 ,l_def_lrlv_rec.attribute15);
1154
1155 --Set OUT Values
1156
1157 x_lrlv_rec := l_def_lrlv_rec;
1158 x_return_status := l_return_status;
1159 okl_api.end_activity(x_msg_count, x_msg_data);
1160 EXCEPTION
1161 WHEN g_exception_halt_validation THEN
1162
1163 -- No action necessary. Validation can continue to next attribute/column
1164
1165 NULL;
1166 WHEN okl_api.g_exception_error THEN
1167 x_return_status := okl_api.handle_exceptions(l_api_name
1168 ,g_pkg_name
1169 ,'OKL_API.G_RET_STS_ERROR'
1170 ,x_msg_count
1171 ,x_msg_data
1172 ,'_PVT');
1173 WHEN okl_api.g_exception_unexpected_error THEN
1174 x_return_status := okl_api.handle_exceptions(l_api_name
1175 ,g_pkg_name
1176 ,'OKL_API.G_RET_STS_UNEXP_ERROR'
1177 ,x_msg_count
1178 ,x_msg_data
1179 ,'_PVT');
1180 WHEN OTHERS THEN
1181 x_return_status := okl_api.handle_exceptions(l_api_name
1182 ,g_pkg_name
1183 ,'OTHERS'
1184 ,x_msg_count
1185 ,x_msg_data
1186 ,'_PVT');
1187 END insert_row;
1188
1189 --------------------------------------------------------------------------------
1190 -- Procedure insert_row_tbl
1191 --------------------------------------------------------------------------------
1192
1193 PROCEDURE insert_row(p_api_version IN number
1194 ,p_init_msg_list IN varchar2 DEFAULT okl_api.g_false
1195 ,x_return_status OUT NOCOPY varchar2
1196 ,x_msg_count OUT NOCOPY number
1197 ,x_msg_data OUT NOCOPY varchar2
1198 ,p_lrlv_tbl IN okl_lrlv_tbl
1199 ,x_lrlv_tbl OUT NOCOPY okl_lrlv_tbl) IS
1200 l_api_version CONSTANT number := 1;
1201 l_api_name CONSTANT varchar2(30) := 'tbl_insert_row';
1202 l_return_status varchar2(1) := okl_api.g_ret_sts_success;
1203 i number := 0;
1204 l_overall_status varchar2(1) := okl_api.g_ret_sts_success;
1205
1206 BEGIN
1207 okl_api.init_msg_list(p_init_msg_list);
1208
1209 -- Make sure PL/SQL table has records in it before passing
1210
1211 IF (p_lrlv_tbl.COUNT > 0) THEN
1212 i := p_lrlv_tbl.FIRST;
1213
1214 LOOP
1215 insert_row(p_api_version => p_api_version
1216 ,p_init_msg_list => okl_api.g_false
1217 ,x_return_status => x_return_status
1218 ,x_msg_count => x_msg_count
1219 ,x_msg_data => x_msg_data
1220 ,p_lrlv_rec => p_lrlv_tbl(i)
1221 ,x_lrlv_rec => x_lrlv_tbl(i));
1222 IF x_return_status <> okl_api.g_ret_sts_success THEN
1223 IF l_overall_status <> okl_api.g_ret_sts_unexp_error THEN
1224 l_overall_status := x_return_status;
1225 END IF;
1226 END IF;
1227 EXIT WHEN(i = p_lrlv_tbl.LAST);
1228 i := p_lrlv_tbl.next(i);
1229 END LOOP;
1230 x_return_status := l_overall_status;
1231 END IF;
1232
1233 EXCEPTION
1234 WHEN g_exception_halt_validation THEN
1235
1236 -- No action necessary. Validation can continue to next attribute/column
1237
1238 NULL;
1239 WHEN okl_api.g_exception_error THEN
1240 x_return_status := okl_api.handle_exceptions(l_api_name
1241 ,g_pkg_name
1242 ,'OKL_API.G_RET_STS_ERROR'
1243 ,x_msg_count
1244 ,x_msg_data
1245 ,'_PVT');
1246 WHEN okl_api.g_exception_unexpected_error THEN
1247 x_return_status := okl_api.handle_exceptions(l_api_name
1248 ,g_pkg_name
1249 ,'OKL_API.G_RET_STS_UNEXP_ERROR'
1250 ,x_msg_count
1251 ,x_msg_data
1252 ,'_PVT');
1253 WHEN OTHERS THEN
1254 x_return_status := okl_api.handle_exceptions(l_api_name
1255 ,g_pkg_name
1256 ,'OTHERS'
1257 ,x_msg_count
1258 ,x_msg_data
1259 ,'_PVT');
1260 END insert_row;
1261
1262 --------------------------------------------------------------------------------
1263 -- Procedure update_row
1264 --------------------------------------------------------------------------------
1265
1266 PROCEDURE update_row(p_api_version IN number
1267 ,p_init_msg_list IN varchar2 DEFAULT okl_api.g_false
1268 ,x_return_status OUT NOCOPY varchar2
1269 ,x_msg_count OUT NOCOPY number
1270 ,x_msg_data OUT NOCOPY varchar2
1271 ,p_lrlv_rec IN okl_lrlv_rec
1272 ,x_lrlv_rec OUT NOCOPY okl_lrlv_rec) IS
1273 l_api_version CONSTANT number := 1;
1274 l_api_name CONSTANT varchar2(30) := 'update_row';
1275 l_return_status varchar2(1) := okl_api.g_ret_sts_success;
1276 l_lrlv_rec okl_lrlv_rec := p_lrlv_rec;
1277 l_def_lrlv_rec okl_lrlv_rec;
1278 l_row_notfound boolean := true;
1279
1280 FUNCTION fill_who_columns(p_lrlv_rec IN okl_lrlv_rec) RETURN okl_lrlv_rec IS
1281 l_lrlv_rec okl_lrlv_rec := p_lrlv_rec;
1282
1283 BEGIN
1284 l_lrlv_rec.last_update_date := sysdate;
1285 l_lrlv_rec.last_updated_by := fnd_global.user_id;
1286 l_lrlv_rec.last_update_login := fnd_global.login_id;
1287 RETURN(l_lrlv_rec);
1288 END fill_who_columns;
1289
1290 FUNCTION populate_new_record(p_lrlv_rec IN okl_lrlv_rec
1291 ,x_lrlv_rec OUT NOCOPY okl_lrlv_rec) RETURN varchar2 IS
1292 l_lrlv_rec okl_lrlv_rec;
1293 l_row_notfound boolean := true;
1294 l_return_status varchar2(1) := okl_api.g_ret_sts_success;
1295
1296 BEGIN
1297 x_lrlv_rec := p_lrlv_rec;
1298
1299 --Get current database values
1300
1301 l_lrlv_rec := get_rec(p_lrlv_rec, l_row_notfound);
1302
1303 IF (l_row_notfound) THEN
1304 l_return_status := okl_api.g_ret_sts_unexp_error;
1305 END IF;
1306
1307 IF (x_lrlv_rec.rate_set_level_id IS NULL) THEN
1308 x_lrlv_rec.rate_set_level_id := l_lrlv_rec.rate_set_level_id;
1309 END IF;
1310
1311 IF (x_lrlv_rec.residual_percent IS NULL) THEN
1312 x_lrlv_rec.residual_percent := l_lrlv_rec.residual_percent;
1313 END IF;
1314
1315 IF (x_lrlv_rec.rate_set_id IS NULL) THEN
1316 x_lrlv_rec.rate_set_id := l_lrlv_rec.rate_set_id;
1317 END IF;
1318
1319 IF (x_lrlv_rec.rate_set_version_id IS NULL) THEN
1320 x_lrlv_rec.rate_set_version_id := l_lrlv_rec.rate_set_version_id;
1321 END IF;
1322
1323 IF (x_lrlv_rec.rate_set_factor_id IS NULL) THEN
1324 x_lrlv_rec.rate_set_factor_id := l_lrlv_rec.rate_set_factor_id;
1325 END IF;
1326
1327 IF (x_lrlv_rec.sequence_number IS NULL) THEN
1328 x_lrlv_rec.sequence_number := l_lrlv_rec.sequence_number;
1329 END IF;
1330
1331 IF (x_lrlv_rec.periods IS NULL) THEN
1332 x_lrlv_rec.periods := l_lrlv_rec.periods;
1333 END IF;
1334
1335 IF (x_lrlv_rec.lease_rate_factor IS NULL) THEN
1336 x_lrlv_rec.lease_rate_factor := l_lrlv_rec.lease_rate_factor;
1337 END IF;
1338
1339 IF (x_lrlv_rec.created_by IS NULL) THEN
1340 x_lrlv_rec.created_by := l_lrlv_rec.created_by;
1341 END IF;
1342
1343 IF (x_lrlv_rec.creation_date IS NULL) THEN
1344 x_lrlv_rec.creation_date := l_lrlv_rec.creation_date;
1345 END IF;
1346
1347 IF (x_lrlv_rec.attribute_category IS NULL) THEN
1348 x_lrlv_rec.attribute_category := l_lrlv_rec.attribute_category;
1349 END IF;
1350
1351 IF (x_lrlv_rec.attribute1 IS NULL) THEN
1352 x_lrlv_rec.attribute1 := l_lrlv_rec.attribute1;
1353 END IF;
1354
1355 IF (x_lrlv_rec.attribute2 IS NULL) THEN
1356 x_lrlv_rec.attribute2 := l_lrlv_rec.attribute2;
1357 END IF;
1358
1359 IF (x_lrlv_rec.attribute3 IS NULL) THEN
1360 x_lrlv_rec.attribute3 := l_lrlv_rec.attribute3;
1361 END IF;
1362
1363 IF (x_lrlv_rec.attribute4 IS NULL) THEN
1364 x_lrlv_rec.attribute4 := l_lrlv_rec.attribute4;
1365 END IF;
1366
1367 IF (x_lrlv_rec.attribute5 IS NULL) THEN
1368 x_lrlv_rec.attribute5 := l_lrlv_rec.attribute5;
1369 END IF;
1370
1371 IF (x_lrlv_rec.attribute6 IS NULL) THEN
1372 x_lrlv_rec.attribute6 := l_lrlv_rec.attribute6;
1373 END IF;
1374
1375 IF (x_lrlv_rec.attribute7 IS NULL) THEN
1376 x_lrlv_rec.attribute7 := l_lrlv_rec.attribute7;
1377 END IF;
1378
1379 IF (x_lrlv_rec.attribute8 IS NULL) THEN
1380 x_lrlv_rec.attribute8 := l_lrlv_rec.attribute8;
1381 END IF;
1382
1383 IF (x_lrlv_rec.attribute9 IS NULL) THEN
1384 x_lrlv_rec.attribute9 := l_lrlv_rec.attribute9;
1385 END IF;
1386
1387 IF (x_lrlv_rec.attribute10 IS NULL) THEN
1388 x_lrlv_rec.attribute10 := l_lrlv_rec.attribute10;
1389 END IF;
1390
1391 IF (x_lrlv_rec.attribute11 IS NULL) THEN
1392 x_lrlv_rec.attribute11 := l_lrlv_rec.attribute11;
1393 END IF;
1394
1395 IF (x_lrlv_rec.attribute12 IS NULL) THEN
1396 x_lrlv_rec.attribute12 := l_lrlv_rec.attribute12;
1397 END IF;
1398
1399 IF (x_lrlv_rec.attribute13 IS NULL) THEN
1400 x_lrlv_rec.attribute13 := l_lrlv_rec.attribute13;
1401 END IF;
1402
1403 IF (x_lrlv_rec.attribute14 IS NULL) THEN
1404 x_lrlv_rec.attribute14 := l_lrlv_rec.attribute14;
1405 END IF;
1406
1407 IF (x_lrlv_rec.attribute15 IS NULL) THEN
1408 x_lrlv_rec.attribute15 := l_lrlv_rec.attribute15;
1409 END IF;
1410 RETURN(l_return_status);
1411 END populate_new_record;
1412
1413 FUNCTION set_attributes(p_lrlv_rec IN okl_lrlv_rec
1414 ,x_lrlv_rec OUT NOCOPY okl_lrlv_rec) RETURN varchar2 IS
1415 l_return_status varchar2(1) := okl_api.g_ret_sts_success;
1416
1417 BEGIN
1418 x_lrlv_rec := p_lrlv_rec;
1419 RETURN(l_return_status);
1420 END set_attributes;
1421
1422 BEGIN
1423 l_return_status := okl_api.start_activity(l_api_name
1424 ,g_pkg_name
1425 ,p_init_msg_list
1426 ,l_api_version
1427 ,p_api_version
1428 ,'_PVT'
1429 ,x_return_status);
1430
1431 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
1432 RAISE okl_api.g_exception_unexpected_error;
1433 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
1434 RAISE okl_api.g_exception_error;
1435 END IF;
1436
1437 --Setting Item Attributes
1438
1439 l_return_status := set_attributes(p_lrlv_rec, l_lrlv_rec);
1440
1441 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
1442 RAISE okl_api.g_exception_unexpected_error;
1443 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
1444 RAISE okl_api.g_exception_error;
1445 END IF;
1446
1447 --populate new record
1448
1449 l_return_status := populate_new_record(l_lrlv_rec, l_def_lrlv_rec);
1450
1451 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
1452 RAISE okl_api.g_exception_unexpected_error;
1453 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
1454 RAISE okl_api.g_exception_error;
1455 END IF;
1456
1457 --null out g miss values
1458
1459 l_def_lrlv_rec := null_out_defaults(l_def_lrlv_rec);
1460
1461 --fill who columns
1462
1463 l_def_lrlv_rec := fill_who_columns(l_def_lrlv_rec);
1464
1465 --validate attributes
1466
1467 l_return_status := validate_attributes(l_def_lrlv_rec);
1468
1469 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
1470 RAISE okl_api.g_exception_unexpected_error;
1471 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
1472 RAISE okl_api.g_exception_error;
1473 END IF;
1474
1475
1476 --validate record
1477
1478 l_return_status := validate_record(l_def_lrlv_rec);
1479
1480 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
1481 RAISE okl_api.g_exception_unexpected_error;
1482 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
1483 RAISE okl_api.g_exception_error;
1484 END IF;
1485
1486 --lock the row
1487
1488 lock_row(p_init_msg_list => okl_api.g_false
1489 ,x_return_status => l_return_status
1490 ,x_msg_count => x_msg_count
1491 ,x_msg_data => x_msg_data
1492 ,p_lrlv_rec => l_def_lrlv_rec);
1493
1494 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
1495 RAISE okl_api.g_exception_unexpected_error;
1496 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
1497 RAISE okl_api.g_exception_error;
1498 END IF;
1499 --update the record
1500
1501 UPDATE okl_fe_rate_set_levels
1502 SET rate_set_level_id = l_def_lrlv_rec.rate_set_level_id
1503 ,object_version_number = l_def_lrlv_rec.object_version_number
1504 ,residual_percent = l_def_lrlv_rec.residual_percent
1505 ,rate_set_id = l_def_lrlv_rec.rate_set_id
1506 ,rate_set_version_id = l_def_lrlv_rec.rate_set_version_id
1507 ,rate_set_factor_id = l_def_lrlv_rec.rate_set_factor_id
1508 ,sequence_number = l_def_lrlv_rec.sequence_number
1509 ,periods = l_def_lrlv_rec.periods
1510 ,lease_rate_factor = l_def_lrlv_rec.lease_rate_factor
1511 ,created_by = l_def_lrlv_rec.created_by
1512 ,creation_date = l_def_lrlv_rec.creation_date
1513 ,last_updated_by = l_def_lrlv_rec.last_updated_by
1514 ,last_update_date = l_def_lrlv_rec.last_update_date
1515 ,last_update_login = l_def_lrlv_rec.last_update_login
1516 ,attribute_category = l_def_lrlv_rec.attribute_category
1517 ,attribute1 = l_def_lrlv_rec.attribute1
1518 ,attribute2 = l_def_lrlv_rec.attribute2
1519 ,attribute3 = l_def_lrlv_rec.attribute3
1520 ,attribute4 = l_def_lrlv_rec.attribute4
1521 ,attribute5 = l_def_lrlv_rec.attribute5
1522 ,attribute6 = l_def_lrlv_rec.attribute6
1523 ,attribute7 = l_def_lrlv_rec.attribute7
1524 ,attribute8 = l_def_lrlv_rec.attribute8
1525 ,attribute9 = l_def_lrlv_rec.attribute9
1526 ,attribute10 = l_def_lrlv_rec.attribute10
1527 ,attribute11 = l_def_lrlv_rec.attribute11
1528 ,attribute12 = l_def_lrlv_rec.attribute12
1529 ,attribute13 = l_def_lrlv_rec.attribute13
1530 ,attribute14 = l_def_lrlv_rec.attribute14
1531 ,attribute15 = l_def_lrlv_rec.attribute15
1532 WHERE rate_set_level_id = l_def_lrlv_rec.rate_set_level_id;
1533
1534 --Set OUT Values
1535
1536 x_lrlv_rec := l_def_lrlv_rec;
1537 x_return_status := l_return_status;
1538 okl_api.end_activity(x_msg_count, x_msg_data);
1539 EXCEPTION
1540 WHEN g_exception_halt_validation THEN
1541
1542 -- No action necessary. Validation can continue to next attribute/column
1543
1544 NULL;
1545 WHEN okl_api.g_exception_error THEN
1546 x_return_status := okl_api.handle_exceptions(l_api_name
1547 ,g_pkg_name
1548 ,'OKL_API.G_RET_STS_ERROR'
1549 ,x_msg_count
1550 ,x_msg_data
1551 ,'_PVT');
1552 WHEN okl_api.g_exception_unexpected_error THEN
1553 x_return_status := okl_api.handle_exceptions(l_api_name
1554 ,g_pkg_name
1555 ,'OKL_API.G_RET_STS_UNEXP_ERROR'
1556 ,x_msg_count
1557 ,x_msg_data
1558 ,'_PVT');
1559 WHEN OTHERS THEN
1560 x_return_status := okl_api.handle_exceptions(l_api_name
1561 ,g_pkg_name
1562 ,'OTHERS'
1563 ,x_msg_count
1564 ,x_msg_data
1565 ,'_PVT');
1566 END update_row;
1567
1568 --------------------------------------------------------------------------------
1569 -- Procedure insert_row_tbl
1570 --------------------------------------------------------------------------------
1571
1572 PROCEDURE update_row(p_api_version IN number
1573 ,p_init_msg_list IN varchar2 DEFAULT okl_api.g_false
1574 ,x_return_status OUT NOCOPY varchar2
1575 ,x_msg_count OUT NOCOPY number
1576 ,x_msg_data OUT NOCOPY varchar2
1577 ,p_lrlv_tbl IN okl_lrlv_tbl
1578 ,x_lrlv_tbl OUT NOCOPY okl_lrlv_tbl) IS
1579 l_api_version CONSTANT number := 1;
1580 l_api_name CONSTANT varchar2(30) := 'v_update_row';
1581 l_return_status varchar2(1) := okl_api.g_ret_sts_success;
1582 i number := 0;
1583 l_overall_status varchar2(1) := okl_api.g_ret_sts_success;
1584
1585 BEGIN
1586 okl_api.init_msg_list(p_init_msg_list);
1587
1588 -- Make sure PL/SQL table has records in it before passing
1589
1590 IF (p_lrlv_tbl.COUNT > 0) THEN
1591 i := p_lrlv_tbl.FIRST;
1592
1593 LOOP
1594 update_row(p_api_version => p_api_version
1595 ,p_init_msg_list => okl_api.g_false
1596 ,x_return_status => x_return_status
1597 ,x_msg_count => x_msg_count
1598 ,x_msg_data => x_msg_data
1599 ,p_lrlv_rec => p_lrlv_tbl(i)
1600 ,x_lrlv_rec => x_lrlv_tbl(i));
1601 IF x_return_status <> okl_api.g_ret_sts_success THEN
1602 IF l_overall_status <> okl_api.g_ret_sts_unexp_error THEN
1603 l_overall_status := x_return_status;
1604 END IF;
1605 END IF;
1606 EXIT WHEN(i = p_lrlv_tbl.LAST);
1607 i := p_lrlv_tbl.next(i);
1608 END LOOP;
1609 x_return_status := l_overall_status;
1610 END IF;
1611
1612 EXCEPTION
1613 WHEN g_exception_halt_validation THEN
1614
1615 -- No action necessary. Validation can continue to next attribute/column
1616
1617 NULL;
1618 WHEN okl_api.g_exception_error THEN
1619 x_return_status := okl_api.handle_exceptions(l_api_name
1620 ,g_pkg_name
1621 ,'OKL_API.G_RET_STS_ERROR'
1622 ,x_msg_count
1623 ,x_msg_data
1624 ,'_PVT');
1625 WHEN okl_api.g_exception_unexpected_error THEN
1626 x_return_status := okl_api.handle_exceptions(l_api_name
1627 ,g_pkg_name
1628 ,'OKL_API.G_RET_STS_UNEXP_ERROR'
1629 ,x_msg_count
1630 ,x_msg_data
1631 ,'_PVT');
1632 WHEN OTHERS THEN
1633 x_return_status := okl_api.handle_exceptions(l_api_name
1634 ,g_pkg_name
1635 ,'OTHERS'
1636 ,x_msg_count
1637 ,x_msg_data
1638 ,'_PVT');
1639 END update_row;
1640
1641 --------------------------------------------------------------------------------
1642 -- Procedure delete_row
1643 --------------------------------------------------------------------------------
1644
1645 PROCEDURE delete_row(p_api_version IN number
1646 ,p_init_msg_list IN varchar2 DEFAULT okl_api.g_false
1647 ,x_return_status OUT NOCOPY varchar2
1648 ,x_msg_count OUT NOCOPY number
1649 ,x_msg_data OUT NOCOPY varchar2
1650 ,p_lrlv_rec IN okl_lrlv_rec) IS
1651 l_api_version CONSTANT number := 1;
1652 l_api_name CONSTANT varchar2(30) := 'rec_delete_row';
1653 l_return_status varchar2(1) := okl_api.g_ret_sts_success;
1654 l_lrlv_rec okl_lrlv_rec := p_lrlv_rec;
1655 l_row_notfound boolean := true;
1656
1657 BEGIN
1658 l_return_status := okl_api.start_activity(l_api_name
1659 ,g_pkg_name
1660 ,p_init_msg_list
1661 ,l_api_version
1662 ,p_api_version
1663 ,'_PVT'
1664 ,x_return_status);
1665
1666 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
1667 RAISE okl_api.g_exception_unexpected_error;
1668 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
1669 RAISE okl_api.g_exception_error;
1670 END IF;
1671
1672 DELETE FROM okl_fe_rate_set_levels
1673 WHERE rate_set_level_id = l_lrlv_rec.rate_set_level_id;
1674 x_return_status := l_return_status;
1675 okl_api.end_activity(x_msg_count, x_msg_data);
1676 EXCEPTION
1677 WHEN g_exception_halt_validation THEN
1678
1679 -- No action necessary. Validation can continue to next attribute/column
1680
1681 NULL;
1682 WHEN okl_api.g_exception_error THEN
1683 x_return_status := okl_api.handle_exceptions(l_api_name
1684 ,g_pkg_name
1685 ,'OKL_API.G_RET_STS_ERROR'
1686 ,x_msg_count
1687 ,x_msg_data
1688 ,'_PVT');
1689 WHEN okl_api.g_exception_unexpected_error THEN
1690 x_return_status := okl_api.handle_exceptions(l_api_name
1691 ,g_pkg_name
1692 ,'OKL_API.G_RET_STS_UNEXP_ERROR'
1693 ,x_msg_count
1694 ,x_msg_data
1695 ,'_PVT');
1696 WHEN OTHERS THEN
1697 x_return_status := okl_api.handle_exceptions(l_api_name
1698 ,g_pkg_name
1699 ,'OTHERS'
1700 ,x_msg_count
1701 ,x_msg_data
1702 ,'_PVT');
1703 END delete_row;
1704
1705 --------------------------------------------------------------------------------
1706 -- Procedure delete_row_tbl
1707 --------------------------------------------------------------------------------
1708
1709 PROCEDURE delete_row(p_api_version IN number
1710 ,p_init_msg_list IN varchar2 DEFAULT okl_api.g_false
1711 ,x_return_status OUT NOCOPY varchar2
1712 ,x_msg_count OUT NOCOPY number
1713 ,x_msg_data OUT NOCOPY varchar2
1714 ,p_lrlv_tbl IN okl_lrlv_tbl) IS
1715 l_api_version CONSTANT number := 1;
1716 l_api_name CONSTANT varchar2(30) := 'tbl_delete_row';
1717 l_return_status varchar2(1) := okl_api.g_ret_sts_success;
1718 i number := 0;
1719 l_overall_status varchar2(1) := okl_api.g_ret_sts_success;
1720
1721 BEGIN
1722 okl_api.init_msg_list(p_init_msg_list);
1723
1724 -- Make sure PL/SQL table has records in it before passing
1725
1726 IF (p_lrlv_tbl.COUNT > 0) THEN
1727 i := p_lrlv_tbl.FIRST;
1728
1729 LOOP
1730 delete_row(p_api_version => p_api_version
1731 ,p_init_msg_list => okl_api.g_false
1732 ,x_return_status => x_return_status
1733 ,x_msg_count => x_msg_count
1734 ,x_msg_data => x_msg_data
1735 ,p_lrlv_rec => p_lrlv_tbl(i));
1736 IF x_return_status <> okl_api.g_ret_sts_success THEN
1737 IF l_overall_status <> okl_api.g_ret_sts_unexp_error THEN
1738 l_overall_status := x_return_status;
1739 END IF;
1740 END IF;
1741 EXIT WHEN(i = p_lrlv_tbl.LAST);
1742 i := p_lrlv_tbl.next(i);
1743 END LOOP;
1744 x_return_status := l_overall_status;
1745 END IF;
1746
1747 EXCEPTION
1748 WHEN g_exception_halt_validation THEN
1749
1750 -- No action necessary. Validation can continue to next attribute/column
1751
1752 NULL;
1753 WHEN okl_api.g_exception_error THEN
1754 x_return_status := okl_api.handle_exceptions(l_api_name
1755 ,g_pkg_name
1756 ,'OKL_API.G_RET_STS_ERROR'
1757 ,x_msg_count
1758 ,x_msg_data
1759 ,'_PVT');
1760 WHEN okl_api.g_exception_unexpected_error THEN
1761 x_return_status := okl_api.handle_exceptions(l_api_name
1762 ,g_pkg_name
1763 ,'OKL_API.G_RET_STS_UNEXP_ERROR'
1764 ,x_msg_count
1765 ,x_msg_data
1766 ,'_PVT');
1767 WHEN OTHERS THEN
1768 x_return_status := okl_api.handle_exceptions(l_api_name
1769 ,g_pkg_name
1770 ,'OTHERS'
1771 ,x_msg_count
1772 ,x_msg_data
1773 ,'_PVT');
1774 END delete_row;
1775
1776 END okl_lrl_pvt;