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