[Home] [Help]
PACKAGE BODY: APPS.OKL_TRQ_PVT
Source
1 PACKAGE BODY OKL_TRQ_PVT AS
2 /* $Header: OKLSTRQB.pls 120.7 2007/03/14 12:25:35 dkagrawa noship $ */
3
4 --Hand coded
5 G_STATUS_LOOKUP_TYPE CONSTANT VARCHAR2(200) := 'OKL_REQUEST_STATUS';
6 G_NO_MATCHING_RECORD CONSTANT VARCHAR2(200) := 'OKL_LLA_NO_MATCHING_RECORD';
7 G_APPLY_TO_CODE_LOOKUP_TYPE CONSTANT VARCHAR2(200) := 'UNKNOWN';
8 G_ADJ_FREQ_CODE_LOOKUP_TYPE CONSTANT VARCHAR2(200) := 'OKL_ADJ_FREQUENCY';
9 G_VAR_METHOD_CODE_LOOKUP_TYPE CONSTANT VARCHAR2(200) := 'OKL_VARIABLE_METHOD';
10 G_INT_METHOD_CODE_LOOKUP_TYPE CONSTANT VARCHAR2(200) := 'OKL_VAR_INTCALC';
11 G_CALC_METHOD_CODE_LOOKUP_TYPE CONSTANT VARCHAR2(200) := 'OKL_CALC_METHOD';
12 G_PAY_FREQ_CODE_LOOKUP_TYPE CONSTANT VARCHAR2(200) := 'UNKNOWN';
13
14
15
16
17
18 --End Hand coding
19
20 ---------------------------------------------------------------------------
21 -- PROCEDURE load_error_tbl
22 ---------------------------------------------------------------------------
23 PROCEDURE load_error_tbl (
24 px_error_rec IN OUT NOCOPY OKL_API.ERROR_REC_TYPE,
25 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
26
27 j INTEGER := NVL(px_error_tbl.LAST, 0) + 1;
28 last_msg_idx INTEGER := FND_MSG_PUB.COUNT_MSG;
29 l_msg_idx INTEGER := FND_MSG_PUB.G_NEXT;
30 BEGIN
31 -- FND_MSG_PUB has a small error in it. If we call FND_MSG_PUB.COUNT_AND_GET before
32 -- we call FND_MSG_PUB.GET, the variable FND_MSG_PUB uses to control the index of the
33 -- message stack gets set to 1. This makes sense until we call FND_MSG_PUB.GET which
34 -- automatically increments the index by 1, (making it 2), however, when the GET function
35 -- attempts to pull message 2, we get a NO_DATA_FOUND exception because there isn't any
36 -- message 2. To circumvent this problem, check the amount of messages and compensate.
37 -- Again, this error only occurs when 1 message is on the stack because COUNT_AND_GET
38 -- will only update the index variable when 1 and only 1 message is on the stack.
39 IF (last_msg_idx = 1) THEN
40 l_msg_idx := FND_MSG_PUB.G_FIRST;
41 END IF;
42 LOOP
43 fnd_msg_pub.get(
44 p_msg_index => l_msg_idx,
45 p_encoded => fnd_api.g_false,
46 p_data => px_error_rec.msg_data,
47 p_msg_index_out => px_error_rec.msg_count);
48 px_error_tbl(j) := px_error_rec;
49 j := j + 1;
50 EXIT WHEN (px_error_rec.msg_count = last_msg_idx);
51 END LOOP;
52 END load_error_tbl;
53 ---------------------------------------------------------------------------
54 -- FUNCTION find_highest_exception
55 ---------------------------------------------------------------------------
56 -- Finds the highest exception (G_RET_STS_UNEXP_ERROR)
57 -- in a OKL_API.ERROR_TBL_TYPE, and returns it.
58 FUNCTION find_highest_exception(
59 p_error_tbl IN OKL_API.ERROR_TBL_TYPE
60 ) RETURN VARCHAR2 IS
61 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
62 i INTEGER := 1;
63 BEGIN
64 IF (p_error_tbl.COUNT > 0) THEN
65 i := p_error_tbl.FIRST;
66 LOOP
67 IF (p_error_tbl(i).error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
68 IF (l_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR) THEN
69 l_return_status := p_error_tbl(i).error_type;
70 END IF;
71 END IF;
72 EXIT WHEN (i = p_error_tbl.LAST);
73 i := p_error_tbl.NEXT(i);
74 END LOOP;
75 END IF;
76 RETURN(l_return_status);
77 END find_highest_exception;
78 ---------------------------------------------------------------------------
79 -- FUNCTION get_seq_id
80 ---------------------------------------------------------------------------
81 FUNCTION get_seq_id RETURN NUMBER IS
82 BEGIN
83 RETURN(okc_p_util.raw_to_number(sys_guid()));
84 END get_seq_id;
85
86 ---------------------------------------------------------------------------
87 -- PROCEDURE qc
88 ---------------------------------------------------------------------------
89 PROCEDURE qc IS
90 BEGIN
91 null;
92 END qc;
93
94 ---------------------------------------------------------------------------
95 -- PROCEDURE change_version
96 ---------------------------------------------------------------------------
97 PROCEDURE change_version IS
98 BEGIN
99 null;
100 END change_version;
101
102 ---------------------------------------------------------------------------
103 -- PROCEDURE api_copy
104 ---------------------------------------------------------------------------
105 PROCEDURE api_copy IS
106 BEGIN
107 null;
108 END api_copy;
109
110 ---------------------------------------------------------------------------
111 -- FUNCTION get_rec for: OKL_TRX_REQUESTS_V
112 ---------------------------------------------------------------------------
113 FUNCTION get_rec (
114 p_trqv_rec IN trqv_rec_type,
115 x_no_data_found OUT NOCOPY BOOLEAN
116 ) RETURN trqv_rec_type IS
117 CURSOR okl_trqv_pk_csr (p_id IN NUMBER) IS
118 SELECT
119 ID,
120 OBJECT1_ID1,
121 OBJECT1_ID2,
122 JTOT_OBJECT1_CODE,
123 DNZ_KHR_ID,
124 REQUEST_TYPE_CODE,
125 APPLY_TO_CODE,
126 START_DATE,
127 END_DATE,
128 TERM_DURATION,
129 AMOUNT,
130 CURRENCY_CODE,
131 SUBSIDY_YN,
132 CASH_APPLIED_YN,
133 OBJECT_VERSION_NUMBER,
134 ATTRIBUTE_CATEGORY,
135 ATTRIBUTE1,
136 ATTRIBUTE2,
137 ATTRIBUTE3,
138 ATTRIBUTE4,
139 ATTRIBUTE5,
140 ATTRIBUTE6,
141 ATTRIBUTE7,
142 ATTRIBUTE8,
143 ATTRIBUTE9,
144 ATTRIBUTE10,
145 ATTRIBUTE11,
146 ATTRIBUTE12,
147 ATTRIBUTE13,
148 ATTRIBUTE14,
149 ATTRIBUTE15,
150 ORG_ID,
151 REQUEST_ID,
152 PROGRAM_APPLICATION_ID,
153 PROGRAM_ID,
154 PROGRAM_UPDATE_DATE,
155 CREATED_BY,
156 CREATION_DATE,
157 LAST_UPDATED_BY,
158 LAST_UPDATE_DATE,
159 LAST_UPDATE_LOGIN,
160 MINIMUM_RATE,
161 MAXIMUM_RATE,
162 TOLERANCE,
163 ADJUSTMENT_FREQUENCY_CODE,
164 BASE_RATE,
165 INDEX_NAME,
166 VARIABLE_METHOD_CODE,
167 ADDER,
168 DAYS_IN_YEAR,
169 DAYS_IN_MONTH,
170 INTEREST_METHOD_CODE,
171 INTEREST_START_DATE,
172 METHOD_OF_CALCULATION_CODE,
173 REQUEST_NUMBER,
174 DATE_OF_CONVERSION,
175 VARIABLE_RATE_YN,
176 REQUEST_STATUS_CODE,
177 YIELD,
178 RESIDUAL,
179 COMMENTS,
180 PAYMENT_FREQUENCY_CODE,
181 RESTRUCTURE_DATE,
182 PAST_DUE_YN,
183 REQUEST_REASON_CODE,
184 PARENT_KHR_ID,
185 YIELD_TYPE,
186 PAYMENT_AMOUNT,
187 PAYMENT_DATE,
188 PAYDOWN_TYPE,
189 CURRENCY_CONVERSION_TYPE,
190 CURRENCY_CONVERSION_RATE,
191 CURRENCY_CONVERSION_DATE,
192 LSM_ID,
193 RECEIPT_ID,
194 TCN_ID,
195 TRY_ID,
196 CUR_PRINCIPAL_BALANCE, --BUG#5083582
197 CUR_ACCUM_INTEREST, --BUG#5083582
198 LEGAL_ENTITY_ID
199 FROM OKL_TRX_REQUESTS
200 WHERE OKL_TRX_REQUESTS.id = p_id;
201 l_okl_trqv_pk okl_trqv_pk_csr%ROWTYPE;
202 l_trqv_rec trqv_rec_type;
203 BEGIN
204 x_no_data_found := TRUE;
205 -- Get current database values
206 OPEN okl_trqv_pk_csr (p_trqv_rec.id);
207 FETCH okl_trqv_pk_csr INTO
208 l_trqv_rec.id,
209 l_trqv_rec.object1_id1,
210 l_trqv_rec.object1_id2,
211 l_trqv_rec.jtot_object1_code,
212 l_trqv_rec.dnz_khr_id,
213 l_trqv_rec.request_type_code,
214 l_trqv_rec.apply_to_code,
215 l_trqv_rec.start_date,
216 l_trqv_rec.end_date,
217 l_trqv_rec.term_duration,
218 l_trqv_rec.AMOUNT,
219 l_trqv_rec.currency_code,
220 l_trqv_rec.subsidy_yn,
221 l_trqv_rec.cash_applied_yn,
222 l_trqv_rec.object_version_number,
223 l_trqv_rec.attribute_category,
224 l_trqv_rec.attribute1,
225 l_trqv_rec.attribute2,
226 l_trqv_rec.attribute3,
227 l_trqv_rec.attribute4,
228 l_trqv_rec.attribute5,
229 l_trqv_rec.attribute6,
230 l_trqv_rec.attribute7,
231 l_trqv_rec.attribute8,
232 l_trqv_rec.attribute9,
233 l_trqv_rec.attribute10,
234 l_trqv_rec.attribute11,
235 l_trqv_rec.attribute12,
236 l_trqv_rec.attribute13,
237 l_trqv_rec.attribute14,
238 l_trqv_rec.attribute15,
239 l_trqv_rec.org_id,
240 l_trqv_rec.request_id,
241 l_trqv_rec.program_application_id,
242 l_trqv_rec.program_id,
243 l_trqv_rec.program_update_date,
244 l_trqv_rec.created_by,
245 l_trqv_rec.creation_date,
246 l_trqv_rec.last_updated_by,
247 l_trqv_rec.last_update_date,
248 l_trqv_rec.last_update_login,
249 l_trqv_rec.minimum_rate,
250 l_trqv_rec.maximum_rate,
251 l_trqv_rec.tolerance,
252 l_trqv_rec.adjustment_frequency_code,
253 l_trqv_rec.base_rate,
254 l_trqv_rec.index_name,
255 l_trqv_rec.variable_method_code,
256 l_trqv_rec.adder,
257 l_trqv_rec.days_in_year,
258 l_trqv_rec.days_in_month,
259 l_trqv_rec.interest_method_code,
260 l_trqv_rec.interest_start_date,
261 l_trqv_rec.method_of_calculation_code,
262 l_trqv_rec.request_number,
263 l_trqv_rec.date_of_conversion,
264 l_trqv_rec.variable_rate_yn,
265 l_trqv_rec.request_status_code,
266 l_trqv_rec.yield,
267 l_trqv_rec.residual,
268 l_trqv_rec.comments,
269 l_trqv_rec.payment_frequency_code,
270 l_trqv_rec.restructure_date,
271 l_trqv_rec.past_due_yn,
272 l_trqv_rec.request_reason_code,
273 l_trqv_rec.parent_khr_id,
274 l_trqv_rec.yield_type,
275 l_trqv_rec.payment_amount,
276 l_trqv_rec.payment_date,
277 l_trqv_rec.paydown_type,
278 l_trqv_rec.currency_conversion_type,
279 l_trqv_rec.currency_conversion_rate,
280 l_trqv_rec.currency_conversion_date,
281 l_trqv_rec.lsm_id,
282 l_trqv_rec.receipt_id,
283 l_trqv_rec.tcn_id,
284 l_trqv_rec.try_id,
285 l_trqv_rec.CUR_PRINCIPAL_BALANCE, ----BUG#5083582
286 l_trqv_rec.CUR_ACCUM_INTEREST, --BUG#5083582
287 l_trqv_rec.legal_entity_id;
288 x_no_data_found := okl_trqv_pk_csr%NOTFOUND;
289 CLOSE okl_trqv_pk_csr;
290 RETURN(l_trqv_rec);
291 END get_rec;
292
293 ------------------------------------------------------------------
294 -- This version of get_rec sets error messages if no data found --
295 ------------------------------------------------------------------
296 FUNCTION get_rec (
297 p_trqv_rec IN trqv_rec_type,
298 x_return_status OUT NOCOPY VARCHAR2
299 ) RETURN trqv_rec_type IS
300 l_trqv_rec trqv_rec_type;
301 l_row_notfound BOOLEAN := TRUE;
302 BEGIN
303 x_return_status := OKL_API.G_RET_STS_SUCCESS;
304 l_trqv_rec := get_rec(p_trqv_rec, l_row_notfound);
305 IF (l_row_notfound) THEN
306 OKL_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'ID');
307 x_return_status := OKL_API.G_RET_STS_ERROR;
308 END IF;
309 RETURN(l_trqv_rec);
310 END get_rec;
311 -----------------------------------------------------------
312 -- So we don't have to pass an "l_row_notfound" variable --
313 -----------------------------------------------------------
314 FUNCTION get_rec (
315 p_trqv_rec IN trqv_rec_type
316 ) RETURN trqv_rec_type IS
317 l_row_not_found BOOLEAN := TRUE;
318 BEGIN
319 RETURN(get_rec(p_trqv_rec, l_row_not_found));
320 END get_rec;
321 ---------------------------------------------------------------------------
322 -- FUNCTION get_rec for: OKL_TRX_REQUESTS
323 ---------------------------------------------------------------------------
324 FUNCTION get_rec (
325 p_trq_rec IN trq_rec_type,
326 x_no_data_found OUT NOCOPY BOOLEAN
327 ) RETURN trq_rec_type IS
328 CURSOR okl_trq_pk_csr (p_id IN NUMBER) IS
329 SELECT
330 ID,
331 OBJECT1_ID1,
332 OBJECT1_ID2,
333 JTOT_OBJECT1_CODE,
334 DNZ_KHR_ID,
335 REQUEST_TYPE_CODE,
336 APPLY_TO_CODE,
337 START_DATE,
338 END_DATE,
339 TERM_DURATION,
340 AMOUNT,
341 CURRENCY_CODE,
342 SUBSIDY_YN,
343 CASH_APPLIED_YN,
344 OBJECT_VERSION_NUMBER,
345 ATTRIBUTE_CATEGORY,
346 ATTRIBUTE1,
347 ATTRIBUTE2,
348 ATTRIBUTE3,
349 ATTRIBUTE4,
350 ATTRIBUTE5,
351 ATTRIBUTE6,
352 ATTRIBUTE7,
353 ATTRIBUTE8,
354 ATTRIBUTE9,
355 ATTRIBUTE10,
356 ATTRIBUTE11,
357 ATTRIBUTE12,
358 ATTRIBUTE13,
359 ATTRIBUTE14,
360 ATTRIBUTE15,
361 ORG_ID,
362 REQUEST_ID,
363 PROGRAM_APPLICATION_ID,
364 PROGRAM_ID,
365 PROGRAM_UPDATE_DATE,
366 CREATED_BY,
367 CREATION_DATE,
368 LAST_UPDATED_BY,
369 LAST_UPDATE_DATE,
370 LAST_UPDATE_LOGIN,
371 MINIMUM_RATE,
372 MAXIMUM_RATE,
373 TOLERANCE,
374 ADJUSTMENT_FREQUENCY_CODE,
375 BASE_RATE,
376 INDEX_NAME,
377 VARIABLE_METHOD_CODE,
378 ADDER,
379 DAYS_IN_YEAR,
380 DAYS_IN_MONTH,
381 INTEREST_METHOD_CODE,
382 INTEREST_START_DATE,
383 METHOD_OF_CALCULATION_CODE,
384 REQUEST_NUMBER,
385 DATE_OF_CONVERSION,
386 VARIABLE_RATE_YN,
387 REQUEST_STATUS_CODE,
388 YIELD,
389 RESIDUAL,
390 COMMENTS,
391 PAYMENT_FREQUENCY_CODE,
392 RESTRUCTURE_DATE,
393 PAST_DUE_YN,
394 REQUEST_REASON_CODE,
395 PARENT_KHR_ID,
396 YIELD_TYPE,
397 PAYMENT_AMOUNT,
398 PAYMENT_DATE,
399 PAYDOWN_TYPE,
400 CURRENCY_CONVERSION_TYPE,
401 CURRENCY_CONVERSION_RATE,
402 CURRENCY_CONVERSION_DATE,
403 LSM_ID,
404 RECEIPT_ID,
405 TCN_ID,
406 TRY_ID,
407 LEGAL_ENTITY_ID
408 FROM Okl_Trx_Requests
409 WHERE okl_trx_requests.id = p_id;
410 l_okl_trq_pk okl_trq_pk_csr%ROWTYPE;
411 l_trq_rec trq_rec_type;
412 BEGIN
413 x_no_data_found := TRUE;
414 -- Get current database values
415 OPEN okl_trq_pk_csr (p_trq_rec.id);
416 FETCH okl_trq_pk_csr INTO
417 l_trq_rec.id,
418 l_trq_rec.object1_id1,
419 l_trq_rec.object1_id2,
420 l_trq_rec.jtot_object1_code,
421 l_trq_rec.dnz_khr_id,
422 l_trq_rec.request_type_code,
423 l_trq_rec.apply_to_code,
424 l_trq_rec.start_date,
425 l_trq_rec.end_date,
426 l_trq_rec.term_duration,
427 l_trq_rec.AMOUNT,
428 l_trq_rec.currency_code,
429 l_trq_rec.subsidy_yn,
430 l_trq_rec.cash_applied_yn,
431 l_trq_rec.object_version_number,
432 l_trq_rec.attribute_category,
433 l_trq_rec.attribute1,
434 l_trq_rec.attribute2,
435 l_trq_rec.attribute3,
436 l_trq_rec.attribute4,
437 l_trq_rec.attribute5,
438 l_trq_rec.attribute6,
439 l_trq_rec.attribute7,
440 l_trq_rec.attribute8,
441 l_trq_rec.attribute9,
442 l_trq_rec.attribute10,
443 l_trq_rec.attribute11,
444 l_trq_rec.attribute12,
445 l_trq_rec.attribute13,
446 l_trq_rec.attribute14,
447 l_trq_rec.attribute15,
448 l_trq_rec.org_id,
449 l_trq_rec.request_id,
450 l_trq_rec.program_application_id,
451 l_trq_rec.program_id,
452 l_trq_rec.program_update_date,
453 l_trq_rec.created_by,
454 l_trq_rec.creation_date,
455 l_trq_rec.last_updated_by,
456 l_trq_rec.last_update_date,
457 l_trq_rec.last_update_login,
458 l_trq_rec.minimum_rate,
459 l_trq_rec.maximum_rate,
460 l_trq_rec.tolerance,
461 l_trq_rec.adjustment_frequency_code,
462 l_trq_rec.base_rate,
463 l_trq_rec.index_name,
464 l_trq_rec.variable_method_code,
465 l_trq_rec.adder,
466 l_trq_rec.days_in_year,
467 l_trq_rec.days_in_month,
468 l_trq_rec.interest_method_code,
469 l_trq_rec.interest_start_date,
470 l_trq_rec.method_of_calculation_code,
471 l_trq_rec.request_number,
472 l_trq_rec.date_of_conversion,
473 l_trq_rec.variable_rate_yn,
474 l_trq_rec.request_status_code,
475 l_trq_rec.yield,
476 l_trq_rec.residual,
477 l_trq_rec.comments,
478 l_trq_rec.payment_frequency_code,
479 l_trq_rec.restructure_date,
480 l_trq_rec.past_due_yn,
481 l_trq_rec.request_reason_code,
482 l_trq_rec.parent_khr_id,
483 l_trq_rec.yield_type,
484 l_trq_rec.payment_amount,
485 l_trq_rec.payment_date,
486 l_trq_rec.paydown_type,
487 l_trq_rec.currency_conversion_type,
488 l_trq_rec.currency_conversion_rate,
489 l_trq_rec.currency_conversion_date,
490 l_trq_rec.lsm_id,
491 l_trq_rec.receipt_id,
492 l_trq_rec.tcn_id,
493 l_trq_rec.try_id,
494 l_trq_rec.legal_entity_id;
495 x_no_data_found := okl_trq_pk_csr%NOTFOUND;
496 CLOSE okl_trq_pk_csr;
497 RETURN(l_trq_rec);
498 END get_rec;
499
500 ------------------------------------------------------------------
501 -- This version of get_rec sets error messages if no data found --
502 ------------------------------------------------------------------
503 FUNCTION get_rec (
504 p_trq_rec IN trq_rec_type,
505 x_return_status OUT NOCOPY VARCHAR2
506 ) RETURN trq_rec_type IS
507 l_trq_rec trq_rec_type;
508 l_row_notfound BOOLEAN := TRUE;
509 BEGIN
510 x_return_status := OKL_API.G_RET_STS_SUCCESS;
511 l_trq_rec := get_rec(p_trq_rec, l_row_notfound);
512 IF (l_row_notfound) THEN
513 OKL_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'ID');
514 x_return_status := OKL_API.G_RET_STS_ERROR;
515 END IF;
516 RETURN(l_trq_rec);
517 END get_rec;
518 -----------------------------------------------------------
519 -- So we don't have to pass an "l_row_notfound" variable --
520 -----------------------------------------------------------
521 FUNCTION get_rec (
522 p_trq_rec IN trq_rec_type
523 ) RETURN trq_rec_type IS
524 l_row_not_found BOOLEAN := TRUE;
525 BEGIN
526 RETURN(get_rec(p_trq_rec, l_row_not_found));
527 END get_rec;
528 ---------------------------------------------------------------------------
529 -- FUNCTION null_out_defaults for: OKL_TRX_REQUESTS_V
530 ---------------------------------------------------------------------------
531 FUNCTION null_out_defaults (
532 p_trqv_rec IN trqv_rec_type
533 ) RETURN trqv_rec_type IS
534 l_trqv_rec trqv_rec_type := p_trqv_rec;
535 BEGIN
536 IF (l_trqv_rec.id = OKL_API.G_MISS_NUM ) THEN
537 l_trqv_rec.id := NULL;
538 END IF;
539 IF (l_trqv_rec.object1_id1 = OKL_API.G_MISS_CHAR ) THEN
540 l_trqv_rec.object1_id1 := NULL;
541 END IF;
542 IF (l_trqv_rec.object1_id2 = OKL_API.G_MISS_CHAR ) THEN
543 l_trqv_rec.object1_id2 := NULL;
544 END IF;
545 IF (l_trqv_rec.jtot_object1_code = OKL_API.G_MISS_CHAR ) THEN
546 l_trqv_rec.jtot_object1_code := NULL;
547 END IF;
548 IF (l_trqv_rec.dnz_khr_id = OKL_API.G_MISS_NUM ) THEN
549 l_trqv_rec.dnz_khr_id := NULL;
550 END IF;
551 IF (l_trqv_rec.request_type_code = OKL_API.G_MISS_CHAR ) THEN
552 l_trqv_rec.request_type_code := NULL;
553 END IF;
554 IF (l_trqv_rec.apply_to_code = OKL_API.G_MISS_CHAR ) THEN
555 l_trqv_rec.apply_to_code := NULL;
556 END IF;
557 IF (l_trqv_rec.start_date = OKL_API.G_MISS_DATE ) THEN
558 l_trqv_rec.start_date := NULL;
559 END IF;
560 IF (l_trqv_rec.end_date = OKL_API.G_MISS_DATE ) THEN
561 l_trqv_rec.end_date := NULL;
562 END IF;
563 IF (l_trqv_rec.term_duration = OKL_API.G_MISS_NUM ) THEN
564 l_trqv_rec.term_duration := NULL;
565 END IF;
566 IF (l_trqv_rec.AMOUNT = OKL_API.G_MISS_NUM ) THEN
567 l_trqv_rec.AMOUNT := NULL;
568 END IF;
569 IF (l_trqv_rec.currency_code = OKL_API.G_MISS_CHAR ) THEN
570 l_trqv_rec.currency_code := NULL;
571 END IF;
572 IF (l_trqv_rec.subsidy_yn = OKL_API.G_MISS_CHAR ) THEN
573 l_trqv_rec.subsidy_yn := NULL;
574 END IF;
575 IF (l_trqv_rec.cash_applied_yn = OKL_API.G_MISS_CHAR ) THEN
576 l_trqv_rec.cash_applied_yn := NULL;
577 END IF;
578 IF (l_trqv_rec.object_version_number = OKL_API.G_MISS_NUM ) THEN
579 l_trqv_rec.object_version_number := NULL;
580 END IF;
581 IF (l_trqv_rec.attribute_category = OKL_API.G_MISS_CHAR ) THEN
582 l_trqv_rec.attribute_category := NULL;
583 END IF;
584 IF (l_trqv_rec.attribute1 = OKL_API.G_MISS_CHAR ) THEN
585 l_trqv_rec.attribute1 := NULL;
586 END IF;
587 IF (l_trqv_rec.attribute2 = OKL_API.G_MISS_CHAR ) THEN
588 l_trqv_rec.attribute2 := NULL;
589 END IF;
590 IF (l_trqv_rec.attribute3 = OKL_API.G_MISS_CHAR ) THEN
591 l_trqv_rec.attribute3 := NULL;
592 END IF;
593 IF (l_trqv_rec.attribute4 = OKL_API.G_MISS_CHAR ) THEN
594 l_trqv_rec.attribute4 := NULL;
595 END IF;
596 IF (l_trqv_rec.attribute5 = OKL_API.G_MISS_CHAR ) THEN
597 l_trqv_rec.attribute5 := NULL;
598 END IF;
599 IF (l_trqv_rec.attribute6 = OKL_API.G_MISS_CHAR ) THEN
600 l_trqv_rec.attribute6 := NULL;
601 END IF;
602 IF (l_trqv_rec.attribute7 = OKL_API.G_MISS_CHAR ) THEN
603 l_trqv_rec.attribute7 := NULL;
604 END IF;
605 IF (l_trqv_rec.attribute8 = OKL_API.G_MISS_CHAR ) THEN
606 l_trqv_rec.attribute8 := NULL;
607 END IF;
608 IF (l_trqv_rec.attribute9 = OKL_API.G_MISS_CHAR ) THEN
609 l_trqv_rec.attribute9 := NULL;
610 END IF;
611 IF (l_trqv_rec.attribute10 = OKL_API.G_MISS_CHAR ) THEN
612 l_trqv_rec.attribute10 := NULL;
613 END IF;
614 IF (l_trqv_rec.attribute11 = OKL_API.G_MISS_CHAR ) THEN
615 l_trqv_rec.attribute11 := NULL;
616 END IF;
617 IF (l_trqv_rec.attribute12 = OKL_API.G_MISS_CHAR ) THEN
618 l_trqv_rec.attribute12 := NULL;
619 END IF;
620 IF (l_trqv_rec.attribute13 = OKL_API.G_MISS_CHAR ) THEN
621 l_trqv_rec.attribute13 := NULL;
622 END IF;
623 IF (l_trqv_rec.attribute14 = OKL_API.G_MISS_CHAR ) THEN
624 l_trqv_rec.attribute14 := NULL;
625 END IF;
626 IF (l_trqv_rec.attribute15 = OKL_API.G_MISS_CHAR ) THEN
627 l_trqv_rec.attribute15 := NULL;
628 END IF;
629 IF (l_trqv_rec.org_id = OKL_API.G_MISS_NUM ) THEN
630 l_trqv_rec.org_id := NULL;
631 END IF;
632 IF (l_trqv_rec.request_id = OKL_API.G_MISS_NUM ) THEN
633 l_trqv_rec.request_id := NULL;
634 END IF;
635 IF (l_trqv_rec.program_application_id = OKL_API.G_MISS_NUM ) THEN
636 l_trqv_rec.program_application_id := NULL;
637 END IF;
638 IF (l_trqv_rec.program_id = OKL_API.G_MISS_NUM ) THEN
639 l_trqv_rec.program_id := NULL;
640 END IF;
641 IF (l_trqv_rec.program_update_date = OKL_API.G_MISS_DATE ) THEN
642 l_trqv_rec.program_update_date := NULL;
643 END IF;
644 IF (l_trqv_rec.created_by = OKL_API.G_MISS_NUM ) THEN
645 l_trqv_rec.created_by := NULL;
646 END IF;
647 IF (l_trqv_rec.creation_date = OKL_API.G_MISS_DATE ) THEN
648 l_trqv_rec.creation_date := NULL;
649 END IF;
650 IF (l_trqv_rec.last_updated_by = OKL_API.G_MISS_NUM ) THEN
651 l_trqv_rec.last_updated_by := NULL;
652 END IF;
653 IF (l_trqv_rec.last_update_date = OKL_API.G_MISS_DATE ) THEN
654 l_trqv_rec.last_update_date := NULL;
655 END IF;
656 IF (l_trqv_rec.last_update_login = OKL_API.G_MISS_NUM ) THEN
657 l_trqv_rec.last_update_login := NULL;
658 END IF;
659 IF (l_trqv_rec.minimum_rate = OKL_API.G_MISS_NUM ) THEN
660 l_trqv_rec.minimum_rate := NULL;
661 END IF;
662 IF (l_trqv_rec.maximum_rate = OKL_API.G_MISS_NUM ) THEN
663 l_trqv_rec.maximum_rate := NULL;
664 END IF;
665 IF (l_trqv_rec.tolerance = OKL_API.G_MISS_NUM ) THEN
666 l_trqv_rec.tolerance := NULL;
667 END IF;
668 IF (l_trqv_rec.adjustment_frequency_code = OKL_API.G_MISS_CHAR ) THEN
669 l_trqv_rec.adjustment_frequency_code := NULL;
670 END IF;
671 IF (l_trqv_rec.base_rate = OKL_API.G_MISS_NUM ) THEN
672 l_trqv_rec.base_rate := NULL;
673 END IF;
674 IF (l_trqv_rec.index_name = OKL_API.G_MISS_CHAR ) THEN
675 l_trqv_rec.index_name := NULL;
676 END IF;
677 IF (l_trqv_rec.variable_method_code = OKL_API.G_MISS_CHAR ) THEN
678 l_trqv_rec.variable_method_code := NULL;
679 END IF;
680 IF (l_trqv_rec.adder = OKL_API.G_MISS_NUM ) THEN
681 l_trqv_rec.adder := NULL;
682 END IF;
683 IF (l_trqv_rec.days_in_year = OKL_API.G_MISS_CHAR ) THEN
684 l_trqv_rec.days_in_year := NULL;
685 END IF;
686 IF (l_trqv_rec.days_in_month = OKL_API.G_MISS_CHAR ) THEN
687 l_trqv_rec.days_in_month := NULL;
688 END IF;
689 IF (l_trqv_rec.interest_method_code = OKL_API.G_MISS_CHAR ) THEN
690 l_trqv_rec.interest_method_code := NULL;
691 END IF;
692 IF (l_trqv_rec.interest_start_date = OKL_API.G_MISS_DATE ) THEN
693 l_trqv_rec.interest_start_date := NULL;
694 END IF;
695 IF (l_trqv_rec.method_of_calculation_code = OKL_API.G_MISS_CHAR ) THEN
696 l_trqv_rec.method_of_calculation_code := NULL;
697 END IF;
698 IF (l_trqv_rec.request_number = OKL_API.G_MISS_CHAR ) THEN
699 l_trqv_rec.request_number := NULL;
700 END IF;
701 IF (l_trqv_rec.date_of_conversion = OKL_API.G_MISS_DATE ) THEN
702 l_trqv_rec.date_of_conversion := NULL;
703 END IF;
704 IF (l_trqv_rec.variable_rate_yn = OKL_API.G_MISS_CHAR ) THEN
705 l_trqv_rec.variable_rate_yn := NULL;
706 END IF;
707 IF (l_trqv_rec.request_status_code = OKL_API.G_MISS_CHAR ) THEN
708 l_trqv_rec.request_status_code := NULL;
709 END IF;
710 IF (l_trqv_rec.yield = OKL_API.G_MISS_NUM ) THEN
711 l_trqv_rec.yield := NULL;
712 END IF;
713 IF (l_trqv_rec.residual = OKL_API.G_MISS_NUM ) THEN
714 l_trqv_rec.residual := NULL;
715 END IF;
716 IF (l_trqv_rec.comments = OKL_API.G_MISS_CHAR ) THEN
717 l_trqv_rec.comments := NULL;
718 END IF;
719 IF (l_trqv_rec.payment_frequency_code = OKL_API.G_MISS_CHAR ) THEN
720 l_trqv_rec.payment_frequency_code := NULL;
721 END IF;
722 IF (l_trqv_rec.restructure_date = OKL_API.G_MISS_DATE ) THEN
723 l_trqv_rec.restructure_date := NULL;
724 END IF;
725 IF (l_trqv_rec.past_due_yn = OKL_API.G_MISS_CHAR ) THEN
726 l_trqv_rec.past_due_yn := NULL;
727 END IF;
728 IF (l_trqv_rec.request_reason_code = OKL_API.G_MISS_CHAR ) THEN
729 l_trqv_rec.request_reason_code := NULL;
730 END IF;
731 IF (l_trqv_rec.parent_khr_id = OKL_API.G_MISS_NUM ) THEN
732 l_trqv_rec.parent_khr_id := NULL;
733 END IF;
734 IF (l_trqv_rec.yield_type = OKL_API.G_MISS_CHAR ) THEN
735 l_trqv_rec.yield_type := NULL;
736 END IF;
737 IF (l_trqv_rec.payment_amount = OKL_API.G_MISS_NUM ) THEN
738 l_trqv_rec.payment_amount := NULL;
739 END IF;
740 IF (l_trqv_rec.payment_date = OKL_API.G_MISS_DATE ) THEN
741 l_trqv_rec.payment_date := NULL;
742 END IF;
743 IF (l_trqv_rec.paydown_type = OKL_API.G_MISS_CHAR ) THEN
744 l_trqv_rec.paydown_type := NULL;
745 END IF;
746 IF (l_trqv_rec.currency_conversion_type = OKL_API.G_MISS_CHAR ) THEN
747 l_trqv_rec.currency_conversion_type := NULL;
748 END IF;
749 IF (l_trqv_rec.currency_conversion_rate = OKL_API.G_MISS_NUM ) THEN
750 l_trqv_rec.currency_conversion_rate := NULL;
751 END IF;
752 IF (l_trqv_rec.currency_conversion_date = OKL_API.G_MISS_DATE ) THEN
753 l_trqv_rec.currency_conversion_date := NULL;
754 END IF;
755 IF (l_trqv_rec.lsm_id = OKL_API.G_MISS_NUM ) THEN
756 l_trqv_rec.lsm_id := NULL;
757 END IF;
758 IF (l_trqv_rec.receipt_id = OKL_API.G_MISS_NUM ) THEN
759 l_trqv_rec.receipt_id := NULL;
760 END IF;
761 IF (l_trqv_rec.tcn_id = OKL_API.G_MISS_NUM ) THEN
762 l_trqv_rec.tcn_id := NULL;
763 END IF;
764 IF (l_trqv_rec.try_id = OKL_API.G_MISS_NUM ) THEN
765 l_trqv_rec.try_id := NULL;
766 END IF;
767 --BEGIN-VARANGAN-BUG#5083582
768 IF (l_trqv_rec.CUR_PRINCIPAL_BALANCE = OKL_API.G_MISS_NUM ) THEN
769 l_trqv_rec.CUR_PRINCIPAL_BALANCE := NULL;
770 END IF;
771
772 IF (l_trqv_rec.CUR_ACCUM_INTEREST = OKL_API.G_MISS_NUM ) THEN
773 l_trqv_rec.CUR_ACCUM_INTEREST := NULL;
774 END IF;
775
776 --END-VARANGAN-BUG#5083582
777 IF (l_trqv_rec.legal_entity_id = OKL_API.G_MISS_NUM ) THEN
778 l_trqv_rec.legal_entity_id := NULL;
779 END IF;
780
781 RETURN(l_trqv_rec);
782 END null_out_defaults;
783 ---------------------------------
784 -- Validate_Attributes for: ID --
785 ---------------------------------
786 --Hand coded
787 PROCEDURE validate_id(
788 x_return_status OUT NOCOPY VARCHAR2,
789 p_trqv_rec IN trqv_rec_type) IS
790
791 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
792
793 BEGIN
794
795 IF (p_trqv_rec.id = OKL_API.G_MISS_NUM OR
796 p_trqv_rec.id IS NULL)
797 THEN
798 OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'id');
799 l_return_status := OKL_API.G_RET_STS_ERROR;
800
801 END IF;
802 x_return_status := l_return_status;
803 EXCEPTION
804 WHEN OTHERS THEN
805 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
806 ,p_msg_name => G_UNEXPECTED_ERROR
807 ,p_token1 => G_SQLCODE_TOKEN
808 ,p_token1_value => SQLCODE
809 ,p_token2 => G_SQLERRM_TOKEN
810 ,p_token2_value => SQLERRM);
811 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
812 END validate_id;
813
814
815 ---------------------------------
816 -- Validate_Attributes for: LEGAL_ENTITY_ID --
817 ---------------------------------
818 --Hand coded
819 PROCEDURE validate_legal_entity_id(
820 x_return_status OUT NOCOPY VARCHAR2,
821 p_trqv_rec IN trqv_rec_type) IS
822
823 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
824 l_exists NUMBER(1);
825 BEGIN
826
827 IF (p_trqv_rec.legal_entity_id = OKL_API.G_MISS_NUM OR
828 p_trqv_rec.legal_entity_id IS NULL)
829 THEN
830 OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'LEGAL_ENTITY_ID');
831 l_return_status := OKL_API.G_RET_STS_ERROR;
832 ELSE
833 l_exists := OKL_LEGAL_ENTITY_UTIL.check_le_id_exists(p_trqv_rec.legal_entity_id);
834 IF (l_exists <> 1) THEN
835 OKL_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'LEGAL_ENTITY_ID');
836 l_return_status := OKL_API.G_RET_STS_ERROR;
837 END IF;
838 END IF;
839 x_return_status := l_return_status;
840 EXCEPTION
841 WHEN OTHERS THEN
842 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
843 ,p_msg_name => G_UNEXPECTED_ERROR
844 ,p_token1 => G_SQLCODE_TOKEN
845 ,p_token1_value => SQLCODE
846 ,p_token2 => G_SQLERRM_TOKEN
847 ,p_token2_value => SQLERRM);
848 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
849 END validate_legal_entity_id;
850
851 ---------------------------------
852 -- Validate_Attributes for: ORG_ID --
853 ---------------------------------
854 --Hand coded
855 PROCEDURE validate_org_id(
856 x_return_status OUT NOCOPY VARCHAR2,
857 p_trqv_rec IN trqv_rec_type) IS
858
859 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
860 l_exists NUMBER(1);
861 BEGIN
862
863 IF (p_trqv_rec.org_id = OKL_API.G_MISS_NUM OR
864 p_trqv_rec.org_id IS NULL)
865 THEN
866 OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'ORG_ID');
867 l_return_status := OKL_API.G_RET_STS_ERROR;
868 END IF;
869 x_return_status := l_return_status;
870 EXCEPTION
871 WHEN OTHERS THEN
872 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
873 ,p_msg_name => G_UNEXPECTED_ERROR
874 ,p_token1 => G_SQLCODE_TOKEN
875 ,p_token1_value => SQLCODE
876 ,p_token2 => G_SQLERRM_TOKEN
877 ,p_token2_value => SQLERRM);
878 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
879 END validate_org_id;
880
881 ------------------------------------------------
882 -- Validate_Attributes for: REQUEST_TYPE_CODE --
883 ------------------------------------------------
884 PROCEDURE validate_request_type_code(
885 x_return_status OUT NOCOPY VARCHAR2,
886 p_trqv_rec IN trqv_rec_type) IS
887
888 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
889
890 BEGIN
891
892 IF (p_trqv_rec.request_type_code = OKL_API.G_MISS_CHAR OR
893 p_trqv_rec.request_type_code IS NULL)
894 THEN
895 OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'request_type_code');
896 l_return_status := OKL_API.G_RET_STS_ERROR;
897
898 END IF;
899 x_return_status := l_return_status;
900
901 EXCEPTION
902 WHEN OTHERS THEN
903 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
904 ,p_msg_name => G_UNEXPECTED_ERROR
905 ,p_token1 => G_SQLCODE_TOKEN
906 ,p_token1_value => SQLCODE
907 ,p_token2 => G_SQLERRM_TOKEN
908 ,p_token2_value => SQLERRM);
909 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
910 END validate_request_type_code;
911 ----------------------------------------------------
912 -- Validate_Attributes for: OBJECT_VERSION_NUMBER --
913 ----------------------------------------------------
914 PROCEDURE validate_object_version_number(
915 x_return_status OUT NOCOPY VARCHAR2,
916 p_trqv_rec IN trqv_rec_type) IS
917 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
918
919 BEGIN
920
921 IF (p_trqv_rec.object_version_number = OKL_API.G_MISS_NUM OR
922 p_trqv_rec.object_version_number IS NULL)
923 THEN
924 OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'object_version_number');
925 l_return_status := OKL_API.G_RET_STS_ERROR;
926
927 END IF;
928 x_return_status := l_return_status;
929
930 EXCEPTION
931 WHEN OTHERS THEN
932 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
933 ,p_msg_name => G_UNEXPECTED_ERROR
934 ,p_token1 => G_SQLCODE_TOKEN
935 ,p_token1_value => SQLCODE
936 ,p_token2 => G_SQLERRM_TOKEN
937 ,p_token2_value => SQLERRM);
938 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
939 END validate_object_version_number;
940
941 --------------------------------------------------
942 -- Validate_Attributes for: REQUEST_STATUS_CODE --
943 --------------------------------------------------
944 PROCEDURE validate_request_status_code(
945 x_return_status OUT NOCOPY VARCHAR2,
946 p_trqv_rec IN trqv_rec_type) IS
947 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
948 BEGIN
949
950 -- initialize return status
951 x_return_status := OKL_API.G_RET_STS_SUCCESS;
952
953 IF (p_trqv_rec.request_status_code = OKL_API.G_MISS_CHAR OR
954 p_trqv_rec.request_status_code IS NULL)
955 THEN
956 OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'request_status_code');
957 l_return_status := OKL_API.G_RET_STS_ERROR;
958
959 END IF;
960 --Hand coded this.
961 -- Enforce Foreign Key
962 l_return_status := OKL_UTIL.check_lookup_code(G_STATUS_LOOKUP_TYPE,
963 p_trqv_rec.request_status_code);
964 IF l_return_status <> x_return_status THEN
965 -- Notify Error
966 OKL_API.set_message(G_APP_NAME, G_NO_MATCHING_RECORD, G_COL_NAME_TOKEN, 'request_status_code');
967 END IF;
968
969 x_return_status := l_return_status;
970
971 EXCEPTION
972 WHEN OTHERS THEN
973 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
974 ,p_msg_name => G_UNEXPECTED_ERROR
975 ,p_token1 => G_SQLCODE_TOKEN
976 ,p_token1_value => SQLCODE
977 ,p_token2 => G_SQLERRM_TOKEN
978 ,p_token2_value => SQLERRM);
979 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
980 END validate_request_status_code;
981 --------------------------------------------
982 -- Validate_Attributes for: APPLY_TO_CODE --
983 --------------------------------------------
984 PROCEDURE validate_apply_to_code(
985 x_return_status OUT NOCOPY VARCHAR2,
986 p_trqv_rec IN trqv_rec_type) IS
987 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
988 BEGIN
989 x_return_status := OKL_API.G_RET_STS_SUCCESS;
990 --Hand coded this.
991 IF (p_trqv_rec.apply_to_code <> OKL_API.G_MISS_CHAR OR
992 p_trqv_rec.apply_to_code IS NOT NULL) THEN
993
994 -- Enforce Foreign Key
995 l_return_status := OKL_UTIL.check_lookup_code(G_APPLY_TO_CODE_LOOKUP_TYPE,
996 p_trqv_rec.apply_to_code);
997 IF l_return_status <> x_return_status THEN
998 -- Notify Error
999 OKL_API.set_message(G_APP_NAME, G_NO_MATCHING_RECORD, G_COL_NAME_TOKEN, 'apply_to_code');
1000 END IF;
1001 END IF;
1002
1003 x_return_status := l_return_status;
1004
1005 EXCEPTION
1006 WHEN OTHERS THEN
1007 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1008 ,p_msg_name => G_UNEXPECTED_ERROR
1009 ,p_token1 => G_SQLCODE_TOKEN
1010 ,p_token1_value => SQLCODE
1011 ,p_token2 => G_SQLERRM_TOKEN
1012 ,p_token2_value => SQLERRM);
1013 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1014 END validate_apply_to_code;
1015 --------------------------------------------------------
1016 -- Validate_Attributes for: ADJUSTMENT_FREQUENCY_CODE --
1017 --------------------------------------------------------
1018 PROCEDURE validate_adjustment1(
1019 x_return_status OUT NOCOPY VARCHAR2,
1020 p_trqv_rec IN trqv_rec_type) IS
1021 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1022 BEGIN
1023 x_return_status := OKL_API.G_RET_STS_SUCCESS;
1024 --Hand coded this.
1025 IF (p_trqv_rec.adjustment_frequency_code <> OKL_API.G_MISS_CHAR OR
1026 p_trqv_rec.adjustment_frequency_code IS NOT NULL) THEN
1027
1028 -- Enforce Foreign Key
1029 l_return_status := OKL_UTIL.check_lookup_code(G_ADJ_FREQ_CODE_LOOKUP_TYPE,
1030 p_trqv_rec.adjustment_frequency_code);
1031 IF l_return_status <> x_return_status THEN
1032 -- Notify Error
1033 OKL_API.set_message(G_APP_NAME, G_NO_MATCHING_RECORD, G_COL_NAME_TOKEN, 'adjustment_frequency_code');
1034 END IF;
1035 END IF;
1036
1037 x_return_status := l_return_status;
1038
1039 EXCEPTION
1040 WHEN OTHERS THEN
1041 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1042 ,p_msg_name => G_UNEXPECTED_ERROR
1043 ,p_token1 => G_SQLCODE_TOKEN
1044 ,p_token1_value => SQLCODE
1045 ,p_token2 => G_SQLERRM_TOKEN
1046 ,p_token2_value => SQLERRM);
1047 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1048 END validate_adjustment1;
1049 ---------------------------------------------------
1050 -- Validate_Attributes for: VARIABLE_METHOD_CODE --
1051 ---------------------------------------------------
1052 PROCEDURE validate_variable_method_code(
1053 x_return_status OUT NOCOPY VARCHAR2,
1054 p_trqv_rec IN trqv_rec_type) IS
1055 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1056 BEGIN
1057 x_return_status := OKL_API.G_RET_STS_SUCCESS;
1058 --Hand coded this.
1059 IF (p_trqv_rec.variable_method_code <> OKL_API.G_MISS_CHAR OR
1060 p_trqv_rec.variable_method_code IS NOT NULL) THEN
1061
1062 -- Enforce Foreign Key
1063 l_return_status := OKL_UTIL.check_lookup_code(G_VAR_METHOD_CODE_LOOKUP_TYPE,
1064 p_trqv_rec.variable_method_code);
1065 IF l_return_status <> x_return_status THEN
1066 -- Notify Error
1067 OKL_API.set_message(G_APP_NAME, G_NO_MATCHING_RECORD, G_COL_NAME_TOKEN, 'variable_method_code');
1068 END IF;
1069 END IF;
1070
1071 x_return_status := l_return_status;
1072
1073 EXCEPTION
1074 WHEN OTHERS THEN
1075 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1076 ,p_msg_name => G_UNEXPECTED_ERROR
1077 ,p_token1 => G_SQLCODE_TOKEN
1078 ,p_token1_value => SQLCODE
1079 ,p_token2 => G_SQLERRM_TOKEN
1080 ,p_token2_value => SQLERRM);
1081 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1082 END validate_variable_method_code;
1083 ---------------------------------------------------
1084 -- Validate_Attributes for: INTEREST_METHOD_CODE --
1085 ---------------------------------------------------
1086 PROCEDURE validate_interest_method_code(
1087 x_return_status OUT NOCOPY VARCHAR2,
1088 p_trqv_rec IN trqv_rec_type) IS
1089 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1090 BEGIN
1091 x_return_status := OKL_API.G_RET_STS_SUCCESS;
1092 --Hand coded this.
1093 IF (p_trqv_rec.interest_method_code <> OKL_API.G_MISS_CHAR OR
1094 p_trqv_rec.interest_method_code IS NOT NULL) THEN
1095
1096 -- Enforce Foreign Key
1097 l_return_status := OKL_UTIL.check_lookup_code(G_INT_METHOD_CODE_LOOKUP_TYPE,
1098 p_trqv_rec.interest_method_code);
1099 IF l_return_status <> x_return_status THEN
1100 -- Notify Error
1101 OKL_API.set_message(G_APP_NAME, G_NO_MATCHING_RECORD, G_COL_NAME_TOKEN, 'interest_method_code');
1102 END IF;
1103 END IF;
1104
1105 x_return_status := l_return_status;
1106
1107 EXCEPTION
1108 WHEN OTHERS THEN
1109 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1110 ,p_msg_name => G_UNEXPECTED_ERROR
1111 ,p_token1 => G_SQLCODE_TOKEN
1112 ,p_token1_value => SQLCODE
1113 ,p_token2 => G_SQLERRM_TOKEN
1114 ,p_token2_value => SQLERRM);
1115 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1116 END validate_interest_method_code;
1117 ---------------------------------------------------------
1118 -- Validate_Attributes for: METHOD_OF_CALCULATION_CODE --
1119 ---------------------------------------------------------
1120 PROCEDURE validate_method_of_3(
1121 x_return_status OUT NOCOPY VARCHAR2,
1122 p_trqv_rec IN trqv_rec_type) IS
1123 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1124 BEGIN
1125 x_return_status := OKL_API.G_RET_STS_SUCCESS;
1126 --Hand coded this.
1127 /*
1128 IF (p_trqv_rec.method_of_calculation_code <> OKL_API.G_MISS_CHAR OR
1129 p_trqv_rec.method_of_calculation_code IS NOT NULL) THEN
1130
1131 -- Enforce Foreign Key
1132 l_return_status := OKL_UTIL.check_lookup_code(G_CALC_METHOD_CODE_LOOKUP_TYPE,
1133 p_trqv_rec.method_of_calculation_code);
1134 IF l_return_status <> x_return_status THEN
1135 -- Notify Error
1136 OKL_API.set_message(G_APP_NAME, G_NO_MATCHING_RECORD, G_COL_NAME_TOKEN, 'method_of_calculation_code');
1137 END IF;
1138 END IF;
1139
1140 x_return_status := l_return_status;
1141 */
1142
1143 EXCEPTION
1144 WHEN OTHERS THEN
1145 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1146 ,p_msg_name => G_UNEXPECTED_ERROR
1147 ,p_token1 => G_SQLCODE_TOKEN
1148 ,p_token1_value => SQLCODE
1149 ,p_token2 => G_SQLERRM_TOKEN
1150 ,p_token2_value => SQLERRM);
1151 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1152 END validate_method_of_3;
1153 -----------------------------------------------------
1154 -- Validate_Attributes for: PAYMENT_FREQUENCY_CODE --
1155 -----------------------------------------------------
1156 PROCEDURE validate_payment_fr5(
1157 x_return_status OUT NOCOPY VARCHAR2,
1158 p_trqv_rec IN trqv_rec_type) IS
1159 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1160 BEGIN
1161 x_return_status := OKL_API.G_RET_STS_SUCCESS;
1162 --Hand coded this.
1163 IF (p_trqv_rec.payment_frequency_code <> OKL_API.G_MISS_CHAR OR
1164 p_trqv_rec.payment_frequency_code IS NOT NULL) THEN
1165
1166 -- Enforce Foreign Key
1167 l_return_status := OKL_UTIL.check_lookup_code(G_PAY_FREQ_CODE_LOOKUP_TYPE,
1168 p_trqv_rec.payment_frequency_code);
1169 IF l_return_status <> x_return_status THEN
1170 -- Notify Error
1171 OKL_API.set_message(G_APP_NAME, G_NO_MATCHING_RECORD, G_COL_NAME_TOKEN, 'payment_frequency_code');
1172 END IF;
1173 END IF;
1174
1175 x_return_status := l_return_status;
1176
1177 EXCEPTION
1178 WHEN OTHERS THEN
1179 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1180 ,p_msg_name => G_UNEXPECTED_ERROR
1181 ,p_token1 => G_SQLCODE_TOKEN
1182 ,p_token1_value => SQLCODE
1183 ,p_token2 => G_SQLERRM_TOKEN
1184 ,p_token2_value => SQLERRM);
1185 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1186 END validate_payment_fr5;
1187
1188
1189 -----------------------------------------------------
1190 -- Validate_Attributes for: Currency Code --
1191 -----------------------------------------------------
1192
1193
1194 PROCEDURE validate_currency_code(
1195 x_return_status OUT NOCOPY VARCHAR2,
1196 p_trqv_rec IN trqv_rec_type) IS
1197 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1198 l_valid VARCHAR2(1);
1199 BEGIN
1200 -- initialize return status
1201 x_return_status := OKL_API.G_RET_STS_SUCCESS;
1202 IF (p_trqv_rec.currency_code <> OKL_API.G_MISS_CHAR AND
1203 p_trqv_rec.currency_code IS NOT NULL) THEN
1204 -- check from currency values using the generic okl_util.validate_currency_code
1205 l_valid := OKL_ACCOUNTING_UTIL.validate_currency_code(p_trqv_rec.currency_code);
1206 IF l_valid <> OKL_API.G_TRUE THEN
1207 l_return_status := OKL_API.G_RET_STS_ERROR;
1208 END IF;
1209
1210 END IF;
1211 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1212 -- halt further validation of this column
1213 RAISE G_EXCEPTION_HALT_VALIDATION;
1214 END IF;
1215 EXCEPTION
1216 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1217 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
1218 p_msg_name => g_invalid_value,
1219 p_token1 => g_col_name_token,
1220 p_token1_value => 'currency_code');
1221 x_return_status := OKC_API.G_RET_STS_ERROR;
1222 WHEN OTHERS THEN
1223 -- store SQL error message on message stack for caller
1224 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
1225 p_msg_name => g_unexpected_error,
1226 p_token1 => g_sqlcode_token,
1227 p_token1_value => sqlcode,
1228 p_token2 => g_sqlerrm_token,
1229 p_token2_value => sqlerrm);
1230 -- notify caller of an UNEXPECTED error
1231 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1232 END validate_currency_code;
1233 ------------------------------------------------------------------------
1234 -- PROCEDURE validate_currency_con_type
1235 ------------------------------------------------------------------------
1236 PROCEDURE validate_currency_con_type(
1237 x_return_status OUT NOCOPY VARCHAR2,
1238 p_trqv_rec IN trqv_rec_type) IS
1239 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1240 l_Valid VARCHAR2(1);
1241 BEGIN
1242 -- initialize return status
1243 x_return_status := OKL_API.G_RET_STS_SUCCESS;
1244 IF (p_trqv_rec.currency_conversion_type <> OKL_API.G_MISS_CHAR AND
1245 p_trqv_rec.currency_conversion_type IS NOT NULL) THEN
1246 -- check from currency values using the generic okl_util.validate_currency_con_type
1247 l_valid := OKL_ACCOUNTING_UTIL.validate_currency_con_type(p_trqv_rec.currency_conversion_type);
1248 IF l_valid <> OKL_API.G_TRUE THEN
1249 l_return_status := OKL_API.G_RET_STS_ERROR;
1250 END IF;
1251 END IF;
1252 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1253 -- halt further validation of this column
1254 RAISE G_EXCEPTION_HALT_VALIDATION;
1255 END IF;
1256 EXCEPTION
1257 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1258 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
1259 p_msg_name => g_invalid_value,
1260 p_token1 => g_col_name_token,
1261 p_token1_value => 'currency_conversion_type');
1262 x_return_status := OKC_API.G_RET_STS_ERROR;
1263 WHEN OTHERS THEN
1264 -- store SQL error message on message stack for caller
1265 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
1266 p_msg_name => g_unexpected_error,
1267 p_token1 => g_sqlcode_token,
1268 p_token1_value => sqlcode,
1269 p_token2 => g_sqlerrm_token,
1270 p_token2_value => sqlerrm);
1271 -- notify caller of an UNEXPECTED error
1272 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1273 END validate_currency_con_type;
1274
1275 ------------------------------------------------------------------------
1276 -- PROCEDURE validate_currency_record
1277 ------------------------------------------------------------------------
1278 PROCEDURE validate_currency_record(
1279 x_return_status OUT NOCOPY VARCHAR2,
1280 p_trqv_rec IN trqv_rec_type) IS
1281
1282 l_count NUMBER := 0;
1283 CURSOR l_check_id_csr(p_id OKL_TRX_REQUESTS.ID%TYPE) IS
1284 SELECT count(*)
1285 FROM OKL_TRX_REQUESTS
1286 WHERE id = p_id;
1287 BEGIN
1288 x_return_status := OKC_API.G_RET_STS_SUCCESS;
1289 -- data is required
1290 OPEN l_check_id_csr(p_id => p_trqv_rec.id);
1291 FETCH l_check_id_csr INTO l_count;
1292 CLOSE l_check_id_csr;
1293 -- In the insert mode, if any one of conversion_type, conversion_rate
1294 -- and conversion date are not null then all are mandory
1295 IF l_count = 0 THEN
1296 IF (p_trqv_rec.currency_conversion_type <> OKC_API.G_MISS_CHAR OR
1297 p_trqv_rec.currency_conversion_type IS NOT NULL) OR
1298 (p_trqv_rec.currency_conversion_rate <> OKC_API.G_MISS_NUM OR
1299 p_trqv_rec.currency_conversion_rate IS NOT NULL) OR
1300 (p_trqv_rec.currency_conversion_date <> OKC_API.G_MISS_DATE OR
1301 p_trqv_rec.currency_conversion_date IS NOT NULL) THEN
1302 RAISE G_EXCEPTION_HALT_VALIDATION;
1303 END IF;
1304 -- In the update mode, if all conversion_type, conversion_rate
1305 -- and conversion date are not null or null we are ok.
1306 -- Else we are not ok
1307 ELSE
1308 IF (p_trqv_rec.currency_conversion_type <> OKC_API.G_MISS_CHAR OR
1309 p_trqv_rec.currency_conversion_type IS NOT NULL) AND
1310 (p_trqv_rec.currency_conversion_rate <> OKC_API.G_MISS_NUM OR
1311 p_trqv_rec.currency_conversion_rate IS NOT NULL) AND
1312 (p_trqv_rec.currency_conversion_date <> OKC_API.G_MISS_DATE OR
1313 p_trqv_rec.currency_conversion_date IS NOT NULL) THEN
1314 x_return_status := OKC_API.G_RET_STS_SUCCESS;
1315 ELSIF (p_trqv_rec.currency_conversion_type = OKC_API.G_MISS_CHAR OR
1316 p_trqv_rec.currency_conversion_type IS NULL) AND
1317 (p_trqv_rec.currency_conversion_rate = OKC_API.G_MISS_NUM OR
1318 p_trqv_rec.currency_conversion_rate IS NULL) AND
1319 (p_trqv_rec.currency_conversion_date = OKC_API.G_MISS_DATE OR
1320 p_trqv_rec.currency_conversion_date IS NULL) THEN
1321 x_return_status := OKC_API.G_RET_STS_SUCCESS;
1322 ELSE
1323 RAISE G_EXCEPTION_HALT_VALIDATION;
1324 END IF;
1325 END IF;
1326 EXCEPTION
1327 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1328 OKC_API.set_message(p_app_name => G_APP_NAME,
1329 p_msg_name => G_REQUIRED_VALUE,
1330 p_token1 => G_COL_NAME_TOKEN,
1331 p_token1_value => 'currency_conversion_type,currency_conversion_rate and currency_conversion_date');
1332 x_return_status := OKC_API.G_RET_STS_ERROR;
1333 WHEN OTHERS THEN
1334 -- store SQL error message on message stack for caller
1335 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
1336 p_msg_name => g_unexpected_error,
1337 p_token1 => g_sqlcode_token,
1338 p_token1_value => sqlcode,
1339 p_token2 => g_sqlerrm_token,
1340 p_token2_value => sqlerrm);
1341 -- notify caller of an UNEXPECTED error
1342 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1343 END validate_currency_record;
1344
1345
1346 ---------------------------------------------------------------------------
1347 -- FUNCTION Validate_Attributes
1348 ---------------------------------------------------------------------------
1349 ------------------------------------------------
1350 -- Validate_Attributes for:OKL_TRX_REQUESTS_V --
1351 ------------------------------------------------
1352 FUNCTION Validate_Attributes (
1353 p_trqv_rec IN trqv_rec_type
1354 ) RETURN VARCHAR2 IS
1355 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1356 x_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1357 BEGIN
1358 -----------------------------
1359 -- Column Level Validation --
1360 -----------------------------
1361 -- ***
1362 -- id
1363 -- ***
1364 validate_id(l_return_status, p_trqv_rec);
1365 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1366 x_return_status := l_return_status;
1367 RAISE G_EXCEPTION_HALT_VALIDATION;
1368 END IF;
1369
1370 -- ***
1371 -- legal_entity_id
1372 -- ***
1373 validate_legal_entity_id(l_return_status, p_trqv_rec);
1374 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1375 x_return_status := l_return_status;
1376 RAISE G_EXCEPTION_HALT_VALIDATION;
1377 END IF;
1378
1379 -- ***
1380 -- org_id
1381 -- ***
1382 validate_org_id(l_return_status, p_trqv_rec);
1383 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1384 x_return_status := l_return_status;
1385 RAISE G_EXCEPTION_HALT_VALIDATION;
1386 END IF;
1387
1388 -- ***
1389 -- request_type_code
1390 -- ***
1391 validate_request_type_code(l_return_status, p_trqv_rec);
1392 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1393 x_return_status := l_return_status;
1394 RAISE G_EXCEPTION_HALT_VALIDATION;
1395 END IF;
1396
1397 -- ***
1398 -- object_version_number
1399 -- ***
1400 validate_object_version_number(l_return_status, p_trqv_rec);
1401 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1402 x_return_status := l_return_status;
1403 RAISE G_EXCEPTION_HALT_VALIDATION;
1404 END IF;
1405
1406 -- ***
1407 -- request_status_code
1408 -- ***
1409 validate_request_status_code(l_return_status, p_trqv_rec);
1410 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1411 x_return_status := l_return_status;
1412 RAISE G_EXCEPTION_HALT_VALIDATION;
1413 END IF;
1414
1415 -- ***
1416 -- apply_to_code
1417 -- ***
1418 validate_apply_to_code(l_return_status, p_trqv_rec);
1419 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1420 x_return_status := l_return_status;
1421 RAISE G_EXCEPTION_HALT_VALIDATION;
1422 END IF;
1423
1424
1425
1426 -- ***
1427 -- adjustment_frequency_code
1428 -- ***
1429 validate_adjustment1(l_return_status, p_trqv_rec);
1430 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1431 x_return_status := l_return_status;
1432 RAISE G_EXCEPTION_HALT_VALIDATION;
1433 END IF;
1434
1435
1436 -- ***
1437 -- variable_method_code
1438 -- ***
1439 validate_variable_method_code(l_return_status, p_trqv_rec);
1440 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1441 x_return_status := l_return_status;
1442 RAISE G_EXCEPTION_HALT_VALIDATION;
1443 END IF;
1444
1445
1446 -- ***
1447 -- interest_method_code
1448 -- ***
1449 validate_interest_method_code(l_return_status, p_trqv_rec);
1450 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1451 x_return_status := l_return_status;
1452 RAISE G_EXCEPTION_HALT_VALIDATION;
1453 END IF;
1454
1455
1456 -- ***
1457 -- method_of_calculation_code
1458 -- ***
1459 validate_method_of_3(l_return_status, p_trqv_rec);
1460 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1461 x_return_status := l_return_status;
1462 RAISE G_EXCEPTION_HALT_VALIDATION;
1463 END IF;
1464
1465
1466
1467 -- ***
1468 -- payment_frequency_code
1469 -- ***
1470 validate_payment_fr5(l_return_status, p_trqv_rec);
1471 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1472 x_return_status := l_return_status;
1473 RAISE G_EXCEPTION_HALT_VALIDATION;
1474 END IF;
1475
1476 -- ***
1477 -- Currency Record
1478 -- ***
1479 validate_currency_record(l_return_status, p_trqv_rec);
1480 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1481 x_return_status := l_return_status;
1482 RAISE G_EXCEPTION_HALT_VALIDATION;
1483 END IF;
1484
1485 -- ***
1486 -- Currency code
1487 -- ***
1488 validate_currency_code(l_return_status, p_trqv_rec);
1489 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1490 x_return_status := l_return_status;
1491 RAISE G_EXCEPTION_HALT_VALIDATION;
1492 END IF;
1493
1494 -- ***
1495 -- Currency conversion Type
1496 -- ***
1497 validate_currency_con_type(l_return_status, p_trqv_rec);
1498 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1499 x_return_status := l_return_status;
1500 RAISE G_EXCEPTION_HALT_VALIDATION;
1501 END IF;
1502
1503 RETURN(x_return_status);
1504 EXCEPTION
1505 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1506 RETURN(x_return_status);
1507 WHEN OTHERS THEN
1508 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1509 ,p_msg_name => G_UNEXPECTED_ERROR
1510 ,p_token1 => G_SQLCODE_TOKEN
1511 ,p_token1_value => SQLCODE
1512 ,p_token2 => G_SQLERRM_TOKEN
1513 ,p_token2_value => SQLERRM);
1514 l_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1515 RETURN(x_return_status);
1516 END Validate_Attributes;
1517 ---------------------------------------------------------------------------
1518 -- PROCEDURE Validate_Record
1519 ---------------------------------------------------------------------------
1520 --------------------------------------------
1521 -- Validate Record for:OKL_TRX_REQUESTS_V --
1522 --------------------------------------------
1523 FUNCTION Validate_Record (
1524 p_trqv_rec IN trqv_rec_type,
1525 p_db_trqv_rec IN trqv_rec_type
1526 ) RETURN VARCHAR2 IS
1527 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1528 BEGIN
1529 RETURN (l_return_status);
1530 END Validate_Record;
1531
1532 FUNCTION Validate_Record (
1533 p_trqv_rec IN trqv_rec_type
1534 ) RETURN VARCHAR2 IS
1535 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1536 l_db_trqv_rec trqv_rec_type := get_rec(p_trqv_rec);
1537 BEGIN
1538 l_return_status := Validate_Record(p_trqv_rec => p_trqv_rec,
1539 p_db_trqv_rec => l_db_trqv_rec);
1540 RETURN (l_return_status);
1541 END Validate_Record;
1542
1543 --End Hand Coding
1544
1545 ---------------------------------------------------------------------------
1546 -- PROCEDURE Migrate
1547 ---------------------------------------------------------------------------
1548 PROCEDURE migrate (
1549 p_from IN trqv_rec_type,
1550 p_to IN OUT NOCOPY trq_rec_type
1551 ) IS
1552 BEGIN
1553 p_to.id := p_from.id;
1554 p_to.object1_id1 := p_from.object1_id1;
1555 p_to.object1_id2 := p_from.object1_id2;
1556 p_to.jtot_object1_code := p_from.jtot_object1_code;
1557 p_to.dnz_khr_id := p_from.dnz_khr_id;
1558 p_to.request_type_code := p_from.request_type_code;
1559 p_to.apply_to_code := p_from.apply_to_code;
1560 p_to.start_date := p_from.start_date;
1561 p_to.end_date := p_from.end_date;
1562 p_to.term_duration := p_from.term_duration;
1563 p_to.AMOUNT := p_from.AMOUNT;
1564 p_to.currency_code := p_from.currency_code;
1565 p_to.subsidy_yn := p_from.subsidy_yn;
1566 p_to.cash_applied_yn := p_from.cash_applied_yn;
1567 p_to.object_version_number := p_from.object_version_number;
1568 p_to.attribute_category := p_from.attribute_category;
1569 p_to.attribute1 := p_from.attribute1;
1570 p_to.attribute2 := p_from.attribute2;
1571 p_to.attribute3 := p_from.attribute3;
1572 p_to.attribute4 := p_from.attribute4;
1573 p_to.attribute5 := p_from.attribute5;
1574 p_to.attribute6 := p_from.attribute6;
1575 p_to.attribute7 := p_from.attribute7;
1576 p_to.attribute8 := p_from.attribute8;
1577 p_to.attribute9 := p_from.attribute9;
1578 p_to.attribute10 := p_from.attribute10;
1579 p_to.attribute11 := p_from.attribute11;
1580 p_to.attribute12 := p_from.attribute12;
1581 p_to.attribute13 := p_from.attribute13;
1582 p_to.attribute14 := p_from.attribute14;
1583 p_to.attribute15 := p_from.attribute15;
1584 p_to.org_id := p_from.org_id;
1585 p_to.request_id := p_from.request_id;
1586 p_to.program_application_id := p_from.program_application_id;
1587 p_to.program_id := p_from.program_id;
1588 p_to.program_update_date := p_from.program_update_date;
1589 p_to.created_by := p_from.created_by;
1590 p_to.creation_date := p_from.creation_date;
1591 p_to.last_updated_by := p_from.last_updated_by;
1592 p_to.last_update_date := p_from.last_update_date;
1593 p_to.last_update_login := p_from.last_update_login;
1594 p_to.minimum_rate := p_from.minimum_rate;
1595 p_to.maximum_rate := p_from.maximum_rate;
1596 p_to.tolerance := p_from.tolerance;
1597 p_to.adjustment_frequency_code := p_from.adjustment_frequency_code;
1598 p_to.base_rate := p_from.base_rate;
1599 p_to.index_name := p_from.index_name;
1600 p_to.variable_method_code := p_from.variable_method_code;
1601 p_to.adder := p_from.adder;
1602 p_to.days_in_year := p_from.days_in_year;
1603 p_to.days_in_month := p_from.days_in_month;
1604 p_to.interest_method_code := p_from.interest_method_code;
1605 p_to.interest_start_date := p_from.interest_start_date;
1606 p_to.method_of_calculation_code := p_from.method_of_calculation_code;
1607 p_to.request_number := p_from.request_number;
1608 p_to.date_of_conversion := p_from.date_of_conversion;
1609 p_to.variable_rate_yn := p_from.variable_rate_yn;
1610 p_to.request_status_code := p_from.request_status_code;
1611 p_to.yield := p_from.yield;
1612 p_to.residual := p_from.residual;
1613 p_to.comments := p_from.comments;
1614 p_to.payment_frequency_code := p_from.payment_frequency_code;
1615 p_to.restructure_date := p_from.restructure_date;
1616 p_to.past_due_yn := p_from.past_due_yn;
1617 p_to.request_reason_code := p_from.request_reason_code;
1618 p_to.parent_khr_id := p_from.parent_khr_id;
1619 p_to.yield_type := p_from.yield_type;
1620 p_to.payment_amount := p_from.payment_amount;
1621 p_to.payment_date := p_from.payment_date;
1622 p_to.paydown_type := p_from.paydown_type;
1623 p_to.currency_conversion_type := p_from.currency_conversion_type;
1624 p_to.currency_conversion_rate := p_from.currency_conversion_rate;
1625 p_to.currency_conversion_date := p_from.currency_conversion_date;
1626 p_to.lsm_id := p_from.lsm_id;
1627 p_to.receipt_id := p_from.receipt_id;
1628 p_to.tcn_id := p_from.tcn_id;
1629 p_to.try_id := p_from.try_id;
1630 p_to.CUR_PRINCIPAL_BALANCE := p_from.CUR_PRINCIPAL_BALANCE; --BUG#5083582
1631 p_to.CUR_ACCUM_INTEREST := p_from.CUR_ACCUM_INTEREST; --BUG#5083582
1632 p_to.legal_entity_id := p_from.legal_entity_id;
1633 END migrate;
1634 PROCEDURE migrate (
1635 p_from IN trq_rec_type,
1636 p_to IN OUT NOCOPY trqv_rec_type
1637 ) IS
1638 BEGIN
1639 p_to.id := p_from.id;
1640 p_to.object1_id1 := p_from.object1_id1;
1641 p_to.object1_id2 := p_from.object1_id2;
1642 p_to.jtot_object1_code := p_from.jtot_object1_code;
1643 p_to.dnz_khr_id := p_from.dnz_khr_id;
1644 p_to.request_type_code := p_from.request_type_code;
1645 p_to.apply_to_code := p_from.apply_to_code;
1646 p_to.start_date := p_from.start_date;
1647 p_to.end_date := p_from.end_date;
1648 p_to.term_duration := p_from.term_duration;
1649 p_to.AMOUNT := p_from.AMOUNT;
1650 p_to.currency_code := p_from.currency_code;
1651 p_to.subsidy_yn := p_from.subsidy_yn;
1652 p_to.cash_applied_yn := p_from.cash_applied_yn;
1653 p_to.object_version_number := p_from.object_version_number;
1654 p_to.attribute_category := p_from.attribute_category;
1655 p_to.attribute1 := p_from.attribute1;
1656 p_to.attribute2 := p_from.attribute2;
1657 p_to.attribute3 := p_from.attribute3;
1658 p_to.attribute4 := p_from.attribute4;
1659 p_to.attribute5 := p_from.attribute5;
1660 p_to.attribute6 := p_from.attribute6;
1661 p_to.attribute7 := p_from.attribute7;
1662 p_to.attribute8 := p_from.attribute8;
1663 p_to.attribute9 := p_from.attribute9;
1664 p_to.attribute10 := p_from.attribute10;
1665 p_to.attribute11 := p_from.attribute11;
1666 p_to.attribute12 := p_from.attribute12;
1667 p_to.attribute13 := p_from.attribute13;
1668 p_to.attribute14 := p_from.attribute14;
1669 p_to.attribute15 := p_from.attribute15;
1670 p_to.org_id := p_from.org_id;
1671 p_to.request_id := p_from.request_id;
1672 p_to.program_application_id := p_from.program_application_id;
1673 p_to.program_id := p_from.program_id;
1674 p_to.program_update_date := p_from.program_update_date;
1675 p_to.created_by := p_from.created_by;
1676 p_to.creation_date := p_from.creation_date;
1677 p_to.last_updated_by := p_from.last_updated_by;
1678 p_to.last_update_date := p_from.last_update_date;
1679 p_to.last_update_login := p_from.last_update_login;
1680 p_to.minimum_rate := p_from.minimum_rate;
1681 p_to.maximum_rate := p_from.maximum_rate;
1682 p_to.tolerance := p_from.tolerance;
1683 p_to.adjustment_frequency_code := p_from.adjustment_frequency_code;
1684 p_to.base_rate := p_from.base_rate;
1685 p_to.index_name := p_from.index_name;
1686 p_to.variable_method_code := p_from.variable_method_code;
1687 p_to.adder := p_from.adder;
1688 p_to.days_in_year := p_from.days_in_year;
1689 p_to.days_in_month := p_from.days_in_month;
1690 p_to.interest_method_code := p_from.interest_method_code;
1691 p_to.interest_start_date := p_from.interest_start_date;
1692 p_to.method_of_calculation_code := p_from.method_of_calculation_code;
1693 p_to.request_number := p_from.request_number;
1694 p_to.date_of_conversion := p_from.date_of_conversion;
1695 p_to.variable_rate_yn := p_from.variable_rate_yn;
1696 p_to.request_status_code := p_from.request_status_code;
1697 p_to.yield := p_from.yield;
1698 p_to.residual := p_from.residual;
1699 p_to.comments := p_from.comments;
1700 p_to.payment_frequency_code := p_from.payment_frequency_code;
1701 p_to.restructure_date := p_from.restructure_date;
1702 p_to.past_due_yn := p_from.past_due_yn;
1703 p_to.request_reason_code := p_from.request_reason_code;
1704 p_to.parent_khr_id := p_from.parent_khr_id;
1705 p_to.yield_type := p_from.yield_type;
1706 p_to.payment_amount := p_from.payment_amount;
1707 p_to.payment_date := p_from.payment_date;
1708 p_to.paydown_type := p_from.paydown_type;
1709 p_to.currency_conversion_type := p_from.currency_conversion_type;
1710 p_to.currency_conversion_rate := p_from.currency_conversion_rate;
1711 p_to.currency_conversion_date := p_from.currency_conversion_date;
1712 p_to.lsm_id := p_from.lsm_id;
1713 p_to.receipt_id := p_from.receipt_id;
1714 p_to.tcn_id := p_from.tcn_id;
1715 p_to.try_id := p_from.try_id;
1716 p_to.CUR_PRINCIPAL_BALANCE := p_from.CUR_PRINCIPAL_BALANCE; --BUG#5083582
1717 p_to.CUR_ACCUM_INTEREST := p_from.CUR_ACCUM_INTEREST; --BUG#5083582
1718 p_to.legal_entity_id := p_from.legal_entity_id;
1719 END migrate;
1720 ---------------------------------------------------------------------------
1721 -- PROCEDURE validate_row
1722 ---------------------------------------------------------------------------
1723 -----------------------------------------
1724 -- validate_row for:OKL_TRX_REQUESTS_V --
1725 -----------------------------------------
1726 PROCEDURE validate_row(
1727 p_api_version IN NUMBER,
1728 p_init_msg_list IN VARCHAR2 ,
1729 x_return_status OUT NOCOPY VARCHAR2,
1730 x_msg_count OUT NOCOPY NUMBER,
1731 x_msg_data OUT NOCOPY VARCHAR2,
1732 p_trqv_rec IN trqv_rec_type) IS
1733
1734 l_api_version CONSTANT NUMBER := 1;
1735 l_api_name CONSTANT VARCHAR2(30) := 'V_validate_row';
1736 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1737 l_trqv_rec trqv_rec_type := p_trqv_rec;
1738 l_trq_rec trq_rec_type;
1739 l_trq_rec trq_rec_type;
1740 BEGIN
1741 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
1742 G_PKG_NAME,
1743 p_init_msg_list,
1744 l_api_version,
1745 p_api_version,
1746 '_PVT',
1747 x_return_status);
1748 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1749 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1750 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1751 RAISE OKL_API.G_EXCEPTION_ERROR;
1752 END IF;
1753 --- Validate all non-missing attributes (Item Level Validation)
1754 l_return_status := Validate_Attributes(l_trqv_rec);
1755 --- If any errors happen abort API
1756 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1757 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1758 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1759 RAISE OKL_API.G_EXCEPTION_ERROR;
1760 END IF;
1761 l_return_status := Validate_Record(l_trqv_rec);
1762 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1763 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1764 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1765 RAISE OKL_API.G_EXCEPTION_ERROR;
1766 END IF;
1767 x_return_status := l_return_status;
1768 EXCEPTION
1769 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1770 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1771 (
1772 l_api_name,
1773 G_PKG_NAME,
1774 'OKL_API.G_RET_STS_ERROR',
1775 x_msg_count,
1776 x_msg_data,
1777 '_PVT'
1778 );
1779 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1780 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1781 (
1782 l_api_name,
1783 G_PKG_NAME,
1784 'OKL_API.G_RET_STS_UNEXP_ERROR',
1785 x_msg_count,
1786 x_msg_data,
1787 '_PVT'
1788 );
1789 WHEN OTHERS THEN
1790 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1791 (
1792 l_api_name,
1793 G_PKG_NAME,
1794 'OTHERS',
1795 x_msg_count,
1796 x_msg_data,
1797 '_PVT'
1798 );
1799 END validate_row;
1800 ----------------------------------------------------
1801 -- PL/SQL TBL validate_row for:OKL_TRX_REQUESTS_V --
1802 ----------------------------------------------------
1803 PROCEDURE validate_row(
1804 p_api_version IN NUMBER,
1805 p_init_msg_list IN VARCHAR2 ,
1806 x_return_status OUT NOCOPY VARCHAR2,
1807 x_msg_count OUT NOCOPY NUMBER,
1808 x_msg_data OUT NOCOPY VARCHAR2,
1809 p_trqv_tbl IN trqv_tbl_type,
1810 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
1811
1812 l_api_version CONSTANT NUMBER := 1;
1813 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_validate_row';
1814 i NUMBER := 0;
1815 BEGIN
1816 OKL_API.init_msg_list(p_init_msg_list);
1817 -- Make sure PL/SQL table has records in it before passing
1818 IF (p_trqv_tbl.COUNT > 0) THEN
1819 i := p_trqv_tbl.FIRST;
1820 LOOP
1821 DECLARE
1822 l_error_rec OKL_API.ERROR_REC_TYPE;
1823 BEGIN
1824 l_error_rec.api_name := l_api_name;
1825 l_error_rec.api_package := G_PKG_NAME;
1826 l_error_rec.idx := i;
1827 validate_row (
1828 p_api_version => p_api_version,
1829 p_init_msg_list => OKL_API.G_FALSE,
1830 x_return_status => l_error_rec.error_type,
1831 x_msg_count => l_error_rec.msg_count,
1832 x_msg_data => l_error_rec.msg_data,
1833 p_trqv_rec => p_trqv_tbl(i));
1834 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
1835 l_error_rec.sqlcode := SQLCODE;
1836 load_error_tbl(l_error_rec, px_error_tbl);
1837 ELSE
1838 x_msg_count := l_error_rec.msg_count;
1839 x_msg_data := l_error_rec.msg_data;
1840 END IF;
1841 EXCEPTION
1842 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1843 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
1844 l_error_rec.sqlcode := SQLCODE;
1845 load_error_tbl(l_error_rec, px_error_tbl);
1846 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1847 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
1848 l_error_rec.sqlcode := SQLCODE;
1849 load_error_tbl(l_error_rec, px_error_tbl);
1850 WHEN OTHERS THEN
1851 l_error_rec.error_type := 'OTHERS';
1852 l_error_rec.sqlcode := SQLCODE;
1853 load_error_tbl(l_error_rec, px_error_tbl);
1854 END;
1855 EXIT WHEN (i = p_trqv_tbl.LAST);
1856 i := p_trqv_tbl.NEXT(i);
1857 END LOOP;
1858 END IF;
1859 -- Loop through the error_tbl to find the error with the highest severity
1860 -- and return it.
1861 x_return_status := find_highest_exception(px_error_tbl);
1862 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
1863 EXCEPTION
1864 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1865 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1866 (
1867 l_api_name,
1868 G_PKG_NAME,
1869 'OKL_API.G_RET_STS_ERROR',
1870 x_msg_count,
1871 x_msg_data,
1872 '_PVT'
1873 );
1874 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1875 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1876 (
1877 l_api_name,
1878 G_PKG_NAME,
1879 'OKL_API.G_RET_STS_UNEXP_ERROR',
1880 x_msg_count,
1881 x_msg_data,
1882 '_PVT'
1883 );
1884 WHEN OTHERS THEN
1885 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1886 (
1887 l_api_name,
1888 G_PKG_NAME,
1889 'OTHERS',
1890 x_msg_count,
1891 x_msg_data,
1892 '_PVT'
1893 );
1894 END validate_row;
1895
1896 ----------------------------------------------------
1897 -- PL/SQL TBL validate_row for:OKL_TRX_REQUESTS_V --
1898 ----------------------------------------------------
1899 PROCEDURE validate_row(
1900 p_api_version IN NUMBER,
1901 p_init_msg_list IN VARCHAR2 ,
1902 x_return_status OUT NOCOPY VARCHAR2,
1903 x_msg_count OUT NOCOPY NUMBER,
1904 x_msg_data OUT NOCOPY VARCHAR2,
1905 p_trqv_tbl IN trqv_tbl_type) IS
1906
1907 l_api_version CONSTANT NUMBER := 1;
1908 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
1909 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1910 l_error_tbl OKL_API.ERROR_TBL_TYPE;
1911 BEGIN
1912 OKL_API.init_msg_list(p_init_msg_list);
1913 -- Make sure PL/SQL table has records in it before passing
1914 IF (p_trqv_tbl.COUNT > 0) THEN
1915 validate_row (
1916 p_api_version => p_api_version,
1917 p_init_msg_list => OKL_API.G_FALSE,
1918 x_return_status => x_return_status,
1919 x_msg_count => x_msg_count,
1920 x_msg_data => x_msg_data,
1921 p_trqv_tbl => p_trqv_tbl,
1922 px_error_tbl => l_error_tbl);
1923 END IF;
1924 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
1925 EXCEPTION
1926 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1927 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1928 (
1929 l_api_name,
1930 G_PKG_NAME,
1931 'OKL_API.G_RET_STS_ERROR',
1932 x_msg_count,
1933 x_msg_data,
1934 '_PVT'
1935 );
1936 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1937 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1938 (
1939 l_api_name,
1940 G_PKG_NAME,
1941 'OKL_API.G_RET_STS_UNEXP_ERROR',
1942 x_msg_count,
1943 x_msg_data,
1944 '_PVT'
1945 );
1946 WHEN OTHERS THEN
1947 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1948 (
1949 l_api_name,
1950 G_PKG_NAME,
1951 'OTHERS',
1952 x_msg_count,
1953 x_msg_data,
1954 '_PVT'
1955 );
1956 END validate_row;
1957
1958 ---------------------------------------------------------------------------
1959 -- PROCEDURE insert_row
1960 ---------------------------------------------------------------------------
1961 -------------------------------------
1962 -- insert_row for:OKL_TRX_REQUESTS --
1963 -------------------------------------
1964 PROCEDURE insert_row(
1965 p_init_msg_list IN VARCHAR2 ,
1966 x_return_status OUT NOCOPY VARCHAR2,
1967 x_msg_count OUT NOCOPY NUMBER,
1968 x_msg_data OUT NOCOPY VARCHAR2,
1969 p_trq_rec IN trq_rec_type,
1970 x_trq_rec OUT NOCOPY trq_rec_type) IS
1971
1972 l_api_version CONSTANT NUMBER := 1;
1973 l_api_name CONSTANT VARCHAR2(30) := 'B_insert_row';
1974 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1975 l_trq_rec trq_rec_type := p_trq_rec;
1976 l_def_trq_rec trq_rec_type;
1977 -----------------------------------------
1978 -- Set_Attributes for:OKL_TRX_REQUESTS --
1979 -----------------------------------------
1980 FUNCTION Set_Attributes (
1981 p_trq_rec IN trq_rec_type,
1982 x_trq_rec OUT NOCOPY trq_rec_type
1983 ) RETURN VARCHAR2 IS
1984 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1985 BEGIN
1986 x_trq_rec := p_trq_rec;
1987 RETURN(l_return_status);
1988 END Set_Attributes;
1989 BEGIN
1990 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
1991 p_init_msg_list,
1992 '_PVT',
1993 x_return_status);
1994 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1995 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1996 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1997 RAISE OKL_API.G_EXCEPTION_ERROR;
1998 END IF;
1999 --- Setting item atributes
2000 l_return_status := Set_Attributes(
2001 p_trq_rec, -- IN
2002 l_trq_rec); -- OUT
2003 --- If any errors happen abort API
2004 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2005 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2006 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2007 RAISE OKL_API.G_EXCEPTION_ERROR;
2008 END IF;
2009 INSERT INTO OKL_TRX_REQUESTS(
2010 id,
2011 object1_id1,
2012 object1_id2,
2013 jtot_object1_code,
2014 dnz_khr_id,
2015 request_type_code,
2016 apply_to_code,
2017 start_date,
2018 end_date,
2019 term_duration,
2020 AMOUNT,
2021 currency_code,
2022 subsidy_yn,
2023 cash_applied_yn,
2024 object_version_number,
2025 attribute_category,
2026 attribute1,
2027 attribute2,
2028 attribute3,
2029 attribute4,
2030 attribute5,
2031 attribute6,
2032 attribute7,
2033 attribute8,
2034 attribute9,
2035 attribute10,
2036 attribute11,
2037 attribute12,
2038 attribute13,
2039 attribute14,
2040 attribute15,
2041 org_id,
2042 request_id,
2043 program_application_id,
2044 program_id,
2045 program_update_date,
2046 created_by,
2047 creation_date,
2048 last_updated_by,
2049 last_update_date,
2050 last_update_login,
2051 minimum_rate,
2052 maximum_rate,
2053 tolerance,
2054 adjustment_frequency_code,
2055 base_rate,
2056 index_name,
2057 variable_method_code,
2058 adder,
2059 days_in_year,
2060 days_in_month,
2061 interest_method_code,
2062 interest_start_date,
2063 method_of_calculation_code,
2064 request_number,
2065 date_of_conversion,
2066 variable_rate_yn,
2067 request_status_code,
2068 yield,
2069 residual,
2070 comments,
2071 payment_frequency_code,
2072 restructure_date,
2073 past_due_yn,
2074 request_reason_code,
2075 parent_khr_id,
2076 yield_type,
2077 payment_amount,
2078 payment_date,
2079 paydown_type,
2080 currency_conversion_type,
2081 currency_conversion_rate,
2082 currency_conversion_date,
2083 lsm_id,
2084 receipt_id,
2085 tcn_id,
2086 try_id,
2087 CUR_PRINCIPAL_BALANCE, --BUG#5083582
2088 CUR_ACCUM_INTEREST, --BUG#5083582
2089 legal_entity_id )
2090 VALUES (
2091 l_trq_rec.id,
2092 l_trq_rec.object1_id1,
2093 l_trq_rec.object1_id2,
2094 l_trq_rec.jtot_object1_code,
2095 l_trq_rec.dnz_khr_id,
2096 l_trq_rec.request_type_code,
2097 l_trq_rec.apply_to_code,
2098 l_trq_rec.start_date,
2099 l_trq_rec.end_date,
2100 l_trq_rec.term_duration,
2101 l_trq_rec.AMOUNT,
2102 l_trq_rec.currency_code,
2103 l_trq_rec.subsidy_yn,
2104 l_trq_rec.cash_applied_yn,
2105 l_trq_rec.object_version_number,
2106 l_trq_rec.attribute_category,
2107 l_trq_rec.attribute1,
2108 l_trq_rec.attribute2,
2109 l_trq_rec.attribute3,
2110 l_trq_rec.attribute4,
2111 l_trq_rec.attribute5,
2112 l_trq_rec.attribute6,
2113 l_trq_rec.attribute7,
2114 l_trq_rec.attribute8,
2115 l_trq_rec.attribute9,
2116 l_trq_rec.attribute10,
2117 l_trq_rec.attribute11,
2118 l_trq_rec.attribute12,
2119 l_trq_rec.attribute13,
2120 l_trq_rec.attribute14,
2121 l_trq_rec.attribute15,
2122 l_trq_rec.org_id,
2123 l_trq_rec.request_id,
2124 l_trq_rec.program_application_id,
2125 l_trq_rec.program_id,
2126 l_trq_rec.program_update_date,
2127 l_trq_rec.created_by,
2128 l_trq_rec.creation_date,
2129 l_trq_rec.last_updated_by,
2130 l_trq_rec.last_update_date,
2131 l_trq_rec.last_update_login,
2132 l_trq_rec.minimum_rate,
2133 l_trq_rec.maximum_rate,
2134 l_trq_rec.tolerance,
2135 l_trq_rec.adjustment_frequency_code,
2136 l_trq_rec.base_rate,
2137 l_trq_rec.index_name,
2138 l_trq_rec.variable_method_code,
2139 l_trq_rec.adder,
2140 l_trq_rec.days_in_year,
2141 l_trq_rec.days_in_month,
2142 l_trq_rec.interest_method_code,
2143 l_trq_rec.interest_start_date,
2144 l_trq_rec.method_of_calculation_code,
2145 l_trq_rec.request_number,
2146 l_trq_rec.date_of_conversion,
2147 l_trq_rec.variable_rate_yn,
2148 l_trq_rec.request_status_code,
2149 l_trq_rec.yield,
2150 l_trq_rec.residual,
2151 l_trq_rec.comments,
2152 l_trq_rec.payment_frequency_code,
2153 l_trq_rec.restructure_date,
2154 l_trq_rec.past_due_yn,
2155 l_trq_rec.request_reason_code,
2156 l_trq_rec.parent_khr_id,
2157 l_trq_rec.yield_type,
2158 l_trq_rec.payment_amount,
2159 l_trq_rec.payment_date,
2160 l_trq_rec.paydown_type,
2161 l_trq_rec.currency_conversion_type,
2162 l_trq_rec.currency_conversion_rate,
2163 l_trq_rec.currency_conversion_date,
2164 l_trq_rec.lsm_id,
2165 l_trq_rec.receipt_id,
2166 l_trq_rec.tcn_id,
2167 l_trq_rec.try_id,
2168 l_trq_rec.CUR_PRINCIPAL_BALANCE, --BUG#5083582
2169 l_trq_rec.CUR_ACCUM_INTEREST, --BUG#5083582
2170 l_trq_rec.legal_entity_id );
2171 -- Set OUT values
2172 x_trq_rec := l_trq_rec;
2173 x_return_status := l_return_status;
2174 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2175 EXCEPTION
2176 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2177 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2178 (
2179 l_api_name,
2180 G_PKG_NAME,
2181 'OKL_API.G_RET_STS_ERROR',
2182 x_msg_count,
2183 x_msg_data,
2184 '_PVT'
2185 );
2186 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2187 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2188 (
2189 l_api_name,
2190 G_PKG_NAME,
2191 'OKL_API.G_RET_STS_UNEXP_ERROR',
2192 x_msg_count,
2193 x_msg_data,
2194 '_PVT'
2195 );
2196 WHEN OTHERS THEN
2197 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2198 (
2199 l_api_name,
2200 G_PKG_NAME,
2201 'OTHERS',
2202 x_msg_count,
2203 x_msg_data,
2204 '_PVT'
2205 );
2206 END insert_row;
2207 ----------------------------------------
2208 -- insert_row for :OKL_TRX_REQUESTS_V --
2209 ----------------------------------------
2210 PROCEDURE insert_row(
2211 p_api_version IN NUMBER,
2212 p_init_msg_list IN VARCHAR2 ,
2213 x_return_status OUT NOCOPY VARCHAR2,
2214 x_msg_count OUT NOCOPY NUMBER,
2215 x_msg_data OUT NOCOPY VARCHAR2,
2216 p_trqv_rec IN trqv_rec_type,
2217 x_trqv_rec OUT NOCOPY trqv_rec_type) IS
2218
2219 l_api_version CONSTANT NUMBER := 1;
2220 l_api_name CONSTANT VARCHAR2(30) := 'V_insert_row';
2221 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2222 l_trqv_rec trqv_rec_type := p_trqv_rec;
2223 l_def_trqv_rec trqv_rec_type;
2224 l_trq_rec trq_rec_type;
2225 lx_trq_rec trq_rec_type;
2226 -------------------------------
2227 -- FUNCTION fill_who_columns --
2228 -------------------------------
2229 FUNCTION fill_who_columns (
2230 p_trqv_rec IN trqv_rec_type
2231 ) RETURN trqv_rec_type IS
2232 l_trqv_rec trqv_rec_type := p_trqv_rec;
2233 BEGIN
2234 l_trqv_rec.CREATION_DATE := SYSDATE;
2235 l_trqv_rec.CREATED_BY := FND_GLOBAL.USER_ID;
2236 l_trqv_rec.LAST_UPDATE_DATE := l_trqv_rec.CREATION_DATE;
2237 l_trqv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
2238 l_trqv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
2239 RETURN(l_trqv_rec);
2240 END fill_who_columns;
2241 -------------------------------------------
2242 -- Set_Attributes for:OKL_TRX_REQUESTS_V --
2243 -------------------------------------------
2244 FUNCTION Set_Attributes (
2245 p_trqv_rec IN trqv_rec_type,
2246 x_trqv_rec OUT NOCOPY trqv_rec_type
2247 ) RETURN VARCHAR2 IS
2248 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2249 --Hand coded
2250 CURSOR req_num_seq
2251 IS
2252 select OKL_TRQ_SEQ.nextval
2253 from dual;
2254 --End Hand coding
2255 BEGIN
2256 x_trqv_rec := p_trqv_rec;
2257 x_trqv_rec.OBJECT_VERSION_NUMBER := 1;
2258 --Hand coded this.
2259 OPEN req_num_seq;
2260 FETCH req_num_seq INTO x_trqv_rec.request_number;
2261 CLOSE req_num_seq;
2262 --end hand coding
2263
2264 RETURN(l_return_status);
2265 END Set_Attributes;
2266
2267 BEGIN
2268 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
2269 G_PKG_NAME,
2270 p_init_msg_list,
2271 l_api_version,
2272 p_api_version,
2273 '_PVT',
2274 x_return_status);
2275 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2276 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2277 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2278 RAISE OKL_API.G_EXCEPTION_ERROR;
2279 END IF;
2280 l_trqv_rec := null_out_defaults(p_trqv_rec);
2281 -- Set primary key value
2282 l_trqv_rec.ID := get_seq_id;
2283 -- Setting item attributes
2284
2285 IF l_trqv_rec.legal_entity_id IS NULL THEN
2286 l_trqv_rec.legal_entity_id := okl_legal_entity_util.get_khr_le_id(l_trqv_rec.dnz_khr_id);
2287 END IF;
2288 --dkagrawa added for MOAC issue
2289 IF l_trqv_rec.org_id IS NULL THEN
2290 l_trqv_rec.org_id := mo_global.get_current_org_id();
2291 END IF;
2292
2293 l_return_Status := Set_Attributes(
2294 l_trqv_rec, -- IN
2295 l_def_trqv_rec); -- OUT
2296 --- If any errors happen abort API
2297 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2298 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2299 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2300 RAISE OKL_API.G_EXCEPTION_ERROR;
2301 END IF;
2302 l_def_trqv_rec := fill_who_columns(l_def_trqv_rec);
2303 --- Validate all non-missing attributes (Item Level Validation)
2304 l_return_status := Validate_Attributes(l_def_trqv_rec);
2305 --- If any errors happen abort API
2306 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2307 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2308 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2309 RAISE OKL_API.G_EXCEPTION_ERROR;
2310 END IF;
2311 l_return_status := Validate_Record(l_def_trqv_rec);
2312 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2313 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2314 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2315 RAISE OKL_API.G_EXCEPTION_ERROR;
2316 END IF;
2317 -----------------------------------------
2318 -- Move VIEW record to "Child" records --
2319 -----------------------------------------
2320 migrate(l_def_trqv_rec, l_trq_rec);
2321 -----------------------------------------------
2322 -- Call the INSERT_ROW for each child record --
2323 -----------------------------------------------
2324 insert_row(
2325 p_init_msg_list,
2326 l_return_status,
2327 x_msg_count,
2328 x_msg_data,
2329 l_trq_rec,
2330 lx_trq_rec
2331 );
2332 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2333 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2334 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2335 RAISE OKL_API.G_EXCEPTION_ERROR;
2336 END IF;
2337 migrate(lx_trq_rec, l_def_trqv_rec);
2338 -- Set OUT values
2339 x_trqv_rec := l_def_trqv_rec;
2340 x_return_status := l_return_status;
2341 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2342 EXCEPTION
2343 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2344 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2345 (
2346 l_api_name,
2347 G_PKG_NAME,
2348 'OKL_API.G_RET_STS_ERROR',
2349 x_msg_count,
2350 x_msg_data,
2351 '_PVT'
2352 );
2353 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2354 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2355 (
2356 l_api_name,
2357 G_PKG_NAME,
2358 'OKL_API.G_RET_STS_UNEXP_ERROR',
2359 x_msg_count,
2360 x_msg_data,
2361 '_PVT'
2362 );
2363 WHEN OTHERS THEN
2364 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2365 (
2366 l_api_name,
2367 G_PKG_NAME,
2368 'OTHERS',
2369 x_msg_count,
2370 x_msg_data,
2371 '_PVT'
2372 );
2373 END insert_row;
2374 ----------------------------------------
2375 -- PL/SQL TBL insert_row for:TRQV_TBL --
2376 ----------------------------------------
2377 PROCEDURE insert_row(
2378 p_api_version IN NUMBER,
2379 p_init_msg_list IN VARCHAR2 ,
2380 x_return_status OUT NOCOPY VARCHAR2,
2381 x_msg_count OUT NOCOPY NUMBER,
2382 x_msg_data OUT NOCOPY VARCHAR2,
2383 p_trqv_tbl IN trqv_tbl_type,
2384 x_trqv_tbl OUT NOCOPY trqv_tbl_type,
2385 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
2386
2387 l_api_version CONSTANT NUMBER := 1;
2388 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_insert_row';
2389 i NUMBER := 0;
2390 BEGIN
2391 OKL_API.init_msg_list(p_init_msg_list);
2392 -- Make sure PL/SQL table has records in it before passing
2393 IF (p_trqv_tbl.COUNT > 0) THEN
2394 i := p_trqv_tbl.FIRST;
2395 LOOP
2396 DECLARE
2397 l_error_rec OKL_API.ERROR_REC_TYPE;
2398 BEGIN
2399 l_error_rec.api_name := l_api_name;
2400 l_error_rec.api_package := G_PKG_NAME;
2401 l_error_rec.idx := i;
2402 insert_row (
2403 p_api_version => p_api_version,
2404 p_init_msg_list => OKL_API.G_FALSE,
2405 x_return_status => l_error_rec.error_type,
2406 x_msg_count => l_error_rec.msg_count,
2407 x_msg_data => l_error_rec.msg_data,
2408 p_trqv_rec => p_trqv_tbl(i),
2409 x_trqv_rec => x_trqv_tbl(i));
2410 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
2411 l_error_rec.sqlcode := SQLCODE;
2412 load_error_tbl(l_error_rec, px_error_tbl);
2413 ELSE
2414 x_msg_count := l_error_rec.msg_count;
2415 x_msg_data := l_error_rec.msg_data;
2416 END IF;
2417 EXCEPTION
2418 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2419 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
2420 l_error_rec.sqlcode := SQLCODE;
2421 load_error_tbl(l_error_rec, px_error_tbl);
2422 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2423 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
2424 l_error_rec.sqlcode := SQLCODE;
2425 load_error_tbl(l_error_rec, px_error_tbl);
2426 WHEN OTHERS THEN
2427 l_error_rec.error_type := 'OTHERS';
2428 l_error_rec.sqlcode := SQLCODE;
2429 load_error_tbl(l_error_rec, px_error_tbl);
2430 END;
2431 EXIT WHEN (i = p_trqv_tbl.LAST);
2432 i := p_trqv_tbl.NEXT(i);
2433 END LOOP;
2434 END IF;
2435 -- Loop through the error_tbl to find the error with the highest severity
2436 -- and return it.
2437 x_return_status := find_highest_exception(px_error_tbl);
2438 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2439 EXCEPTION
2440 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2441 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2442 (
2443 l_api_name,
2444 G_PKG_NAME,
2445 'OKL_API.G_RET_STS_ERROR',
2446 x_msg_count,
2447 x_msg_data,
2448 '_PVT'
2449 );
2450 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2451 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2452 (
2453 l_api_name,
2454 G_PKG_NAME,
2455 'OKL_API.G_RET_STS_UNEXP_ERROR',
2456 x_msg_count,
2457 x_msg_data,
2458 '_PVT'
2459 );
2460 WHEN OTHERS THEN
2461 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2462 (
2463 l_api_name,
2464 G_PKG_NAME,
2465 'OTHERS',
2466 x_msg_count,
2467 x_msg_data,
2468 '_PVT'
2469 );
2470 END insert_row;
2471
2472 ----------------------------------------
2473 -- PL/SQL TBL insert_row for:TRQV_TBL --
2474 ----------------------------------------
2475 PROCEDURE insert_row(
2476 p_api_version IN NUMBER,
2477 p_init_msg_list IN VARCHAR2 ,
2478 x_return_status OUT NOCOPY VARCHAR2,
2479 x_msg_count OUT NOCOPY NUMBER,
2480 x_msg_data OUT NOCOPY VARCHAR2,
2481 p_trqv_tbl IN trqv_tbl_type,
2482 x_trqv_tbl OUT NOCOPY trqv_tbl_type) IS
2483
2484 l_api_version CONSTANT NUMBER := 1;
2485 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
2486 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2487 l_error_tbl OKL_API.ERROR_TBL_TYPE;
2488 BEGIN
2489 OKL_API.init_msg_list(p_init_msg_list);
2490 -- Make sure PL/SQL table has records in it before passing
2491 IF (p_trqv_tbl.COUNT > 0) THEN
2492 insert_row (
2493 p_api_version => p_api_version,
2494 p_init_msg_list => OKL_API.G_FALSE,
2495 x_return_status => x_return_status,
2496 x_msg_count => x_msg_count,
2497 x_msg_data => x_msg_data,
2498 p_trqv_tbl => p_trqv_tbl,
2499 x_trqv_tbl => x_trqv_tbl,
2500 px_error_tbl => l_error_tbl);
2501 END IF;
2502 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2503 EXCEPTION
2504 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2505 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2506 (
2507 l_api_name,
2508 G_PKG_NAME,
2509 'OKL_API.G_RET_STS_ERROR',
2510 x_msg_count,
2511 x_msg_data,
2512 '_PVT'
2513 );
2514 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2515 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2516 (
2517 l_api_name,
2518 G_PKG_NAME,
2519 'OKL_API.G_RET_STS_UNEXP_ERROR',
2520 x_msg_count,
2521 x_msg_data,
2522 '_PVT'
2523 );
2524 WHEN OTHERS THEN
2525 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2526 (
2527 l_api_name,
2528 G_PKG_NAME,
2529 'OTHERS',
2530 x_msg_count,
2531 x_msg_data,
2532 '_PVT'
2533 );
2534 END insert_row;
2535
2536 ---------------------------------------------------------------------------
2537 -- PROCEDURE lock_row
2538 ---------------------------------------------------------------------------
2539 -----------------------------------
2540 -- lock_row for:OKL_TRX_REQUESTS --
2541 -----------------------------------
2542 PROCEDURE lock_row(
2543 p_init_msg_list IN VARCHAR2 ,
2544 x_return_status OUT NOCOPY VARCHAR2,
2545 x_msg_count OUT NOCOPY NUMBER,
2546 x_msg_data OUT NOCOPY VARCHAR2,
2547 p_trq_rec IN trq_rec_type) IS
2548
2549 E_Resource_Busy EXCEPTION;
2550 PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
2551 CURSOR lock_csr (p_trq_rec IN trq_rec_type) IS
2552 SELECT OBJECT_VERSION_NUMBER
2553 FROM OKL_TRX_REQUESTS
2554 WHERE ID = p_trq_rec.id
2555 AND OBJECT_VERSION_NUMBER = p_trq_rec.object_version_number
2556 FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
2557
2558 CURSOR lchk_csr (p_trq_rec IN trq_rec_type) IS
2559 SELECT OBJECT_VERSION_NUMBER
2560 FROM OKL_TRX_REQUESTS
2561 WHERE ID = p_trq_rec.id;
2562 l_api_version CONSTANT NUMBER := 1;
2563 l_api_name CONSTANT VARCHAR2(30) := 'B_lock_row';
2564 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2565 l_object_version_number OKL_TRX_REQUESTS.OBJECT_VERSION_NUMBER%TYPE;
2566 lc_object_version_number OKL_TRX_REQUESTS.OBJECT_VERSION_NUMBER%TYPE;
2567 l_row_notfound BOOLEAN := FALSE;
2568 lc_row_notfound BOOLEAN := FALSE;
2569 BEGIN
2570 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
2571 p_init_msg_list,
2572 '_PVT',
2573 x_return_status);
2574 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2575 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2576 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2577 RAISE OKL_API.G_EXCEPTION_ERROR;
2578 END IF;
2579 BEGIN
2580 OPEN lock_csr(p_trq_rec);
2581 FETCH lock_csr INTO l_object_version_number;
2582 l_row_notfound := lock_csr%NOTFOUND;
2583 CLOSE lock_csr;
2584 EXCEPTION
2585 WHEN E_Resource_Busy THEN
2586 IF (lock_csr%ISOPEN) THEN
2587 CLOSE lock_csr;
2588 END IF;
2589 OKL_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
2590 RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
2591 END;
2592
2593 IF ( l_row_notfound ) THEN
2594 OPEN lchk_csr(p_trq_rec);
2595 FETCH lchk_csr INTO lc_object_version_number;
2596 lc_row_notfound := lchk_csr%NOTFOUND;
2597 CLOSE lchk_csr;
2598 END IF;
2599 IF (lc_row_notfound) THEN
2600 OKL_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
2601 RAISE OKL_API.G_EXCEPTION_ERROR;
2602 ELSIF lc_object_version_number > p_trq_rec.object_version_number THEN
2603 OKL_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
2604 RAISE OKL_API.G_EXCEPTION_ERROR;
2605 ELSIF lc_object_version_number <> p_trq_rec.object_version_number THEN
2606 OKL_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
2607 RAISE OKL_API.G_EXCEPTION_ERROR;
2608 ELSIF lc_object_version_number = -1 THEN
2609 OKL_API.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
2610 RAISE OKL_API.G_EXCEPTION_ERROR;
2611 END IF;
2612 x_return_status := l_return_status;
2613 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2614 EXCEPTION
2615 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2616 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2617 (
2618 l_api_name,
2619 G_PKG_NAME,
2620 'OKL_API.G_RET_STS_ERROR',
2621 x_msg_count,
2622 x_msg_data,
2623 '_PVT'
2624 );
2625 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2626 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2627 (
2628 l_api_name,
2629 G_PKG_NAME,
2630 'OKL_API.G_RET_STS_UNEXP_ERROR',
2631 x_msg_count,
2632 x_msg_data,
2633 '_PVT'
2634 );
2635 WHEN OTHERS THEN
2636 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2637 (
2638 l_api_name,
2639 G_PKG_NAME,
2640 'OTHERS',
2641 x_msg_count,
2642 x_msg_data,
2643 '_PVT'
2644 );
2645 END lock_row;
2646 --------------------------------------
2647 -- lock_row for: OKL_TRX_REQUESTS_V --
2648 --------------------------------------
2649 PROCEDURE lock_row(
2650 p_api_version IN NUMBER,
2651 p_init_msg_list IN VARCHAR2 ,
2652 x_return_status OUT NOCOPY VARCHAR2,
2653 x_msg_count OUT NOCOPY NUMBER,
2654 x_msg_data OUT NOCOPY VARCHAR2,
2655 p_trqv_rec IN trqv_rec_type) IS
2656
2657 l_api_version CONSTANT NUMBER := 1;
2658 l_api_name CONSTANT VARCHAR2(30) := 'V_lock_row';
2659 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2660 l_trq_rec trq_rec_type;
2661 BEGIN
2662 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
2663 G_PKG_NAME,
2664 p_init_msg_list,
2665 l_api_version,
2666 p_api_version,
2667 '_PVT',
2668 x_return_status);
2669 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2670 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2671 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2672 RAISE OKL_API.G_EXCEPTION_ERROR;
2673 END IF;
2674 -----------------------------------------
2675 -- Move VIEW record to "Child" records --
2676 -----------------------------------------
2677 migrate(p_trqv_rec, l_trq_rec);
2678 ---------------------------------------------
2679 -- Call the LOCK_ROW for each child record --
2680 ---------------------------------------------
2681 lock_row(
2682 p_init_msg_list,
2683 l_return_status,
2684 x_msg_count,
2685 x_msg_data,
2686 l_trq_rec
2687 );
2688 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2689 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2690 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2691 RAISE OKL_API.G_EXCEPTION_ERROR;
2692 END IF;
2693 x_return_status := l_return_status;
2694 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2695 EXCEPTION
2696 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2697 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2698 (
2699 l_api_name,
2700 G_PKG_NAME,
2701 'OKL_API.G_RET_STS_ERROR',
2702 x_msg_count,
2703 x_msg_data,
2704 '_PVT'
2705 );
2706 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2707 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2708 (
2709 l_api_name,
2710 G_PKG_NAME,
2711 'OKL_API.G_RET_STS_UNEXP_ERROR',
2712 x_msg_count,
2713 x_msg_data,
2714 '_PVT'
2715 );
2716 WHEN OTHERS THEN
2717 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2718 (
2719 l_api_name,
2720 G_PKG_NAME,
2721 'OTHERS',
2722 x_msg_count,
2723 x_msg_data,
2724 '_PVT'
2725 );
2726 END lock_row;
2727 --------------------------------------
2728 -- PL/SQL TBL lock_row for:TRQV_TBL --
2729 --------------------------------------
2730 PROCEDURE lock_row(
2731 p_api_version IN NUMBER,
2732 p_init_msg_list IN VARCHAR2 ,
2733 x_return_status OUT NOCOPY VARCHAR2,
2734 x_msg_count OUT NOCOPY NUMBER,
2735 x_msg_data OUT NOCOPY VARCHAR2,
2736 p_trqv_tbl IN trqv_tbl_type,
2737 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
2738
2739 l_api_version CONSTANT NUMBER := 1;
2740 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_lock_row';
2741 i NUMBER := 0;
2742 BEGIN
2743 OKL_API.init_msg_list(p_init_msg_list);
2744 -- Make sure PL/SQL table has recrods in it before passing
2745 IF (p_trqv_tbl.COUNT > 0) THEN
2746 i := p_trqv_tbl.FIRST;
2747 LOOP
2748 DECLARE
2749 l_error_rec OKL_API.ERROR_REC_TYPE;
2750 BEGIN
2751 l_error_rec.api_name := l_api_name;
2752 l_error_rec.api_package := G_PKG_NAME;
2753 l_error_rec.idx := i;
2754 lock_row(
2755 p_api_version => p_api_version,
2756 p_init_msg_list => OKL_API.G_FALSE,
2757 x_return_status => l_error_rec.error_type,
2758 x_msg_count => l_error_rec.msg_count,
2759 x_msg_data => l_error_rec.msg_data,
2760 p_trqv_rec => p_trqv_tbl(i));
2761 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
2762 l_error_rec.sqlcode := SQLCODE;
2763 load_error_tbl(l_error_rec, px_error_tbl);
2764 ELSE
2765 x_msg_count := l_error_rec.msg_count;
2766 x_msg_data := l_error_rec.msg_data;
2767 END IF;
2768 EXCEPTION
2769 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2770 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
2771 l_error_rec.sqlcode := SQLCODE;
2772 load_error_tbl(l_error_rec, px_error_tbl);
2773 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2774 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
2775 l_error_rec.sqlcode := SQLCODE;
2776 load_error_tbl(l_error_rec, px_error_tbl);
2777 WHEN OTHERS THEN
2778 l_error_rec.error_type := 'OTHERS';
2779 l_error_rec.sqlcode := SQLCODE;
2780 load_error_tbl(l_error_rec, px_error_tbl);
2781 END;
2782 EXIT WHEN (i = p_trqv_tbl.LAST);
2783 i := p_trqv_tbl.NEXT(i);
2784 END LOOP;
2785 END IF;
2786 -- Loop through the error_tbl to find the error with the highest severity
2787 -- and return it.
2788 x_return_status := find_highest_exception(px_error_tbl);
2789 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2790 EXCEPTION
2791 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2792 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2793 (
2794 l_api_name,
2795 G_PKG_NAME,
2796 'OKL_API.G_RET_STS_ERROR',
2797 x_msg_count,
2798 x_msg_data,
2799 '_PVT'
2800 );
2801 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2802 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2803 (
2804 l_api_name,
2805 G_PKG_NAME,
2806 'OKL_API.G_RET_STS_UNEXP_ERROR',
2807 x_msg_count,
2808 x_msg_data,
2809 '_PVT'
2810 );
2811 WHEN OTHERS THEN
2812 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2813 (
2814 l_api_name,
2815 G_PKG_NAME,
2816 'OTHERS',
2817 x_msg_count,
2818 x_msg_data,
2819 '_PVT'
2820 );
2821 END lock_row;
2822 --------------------------------------
2823 -- PL/SQL TBL lock_row for:TRQV_TBL --
2824 --------------------------------------
2825 PROCEDURE lock_row(
2826 p_api_version IN NUMBER,
2827 p_init_msg_list IN VARCHAR2 ,
2828 x_return_status OUT NOCOPY VARCHAR2,
2829 x_msg_count OUT NOCOPY NUMBER,
2830 x_msg_data OUT NOCOPY VARCHAR2,
2831 p_trqv_tbl IN trqv_tbl_type) IS
2832
2833 l_api_version CONSTANT NUMBER := 1;
2834 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
2835 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2836 l_error_tbl OKL_API.ERROR_TBL_TYPE;
2837 BEGIN
2838 OKL_API.init_msg_list(p_init_msg_list);
2839 -- Make sure PL/SQL table has recrods in it before passing
2840 IF (p_trqv_tbl.COUNT > 0) THEN
2841 lock_row(
2842 p_api_version => p_api_version,
2843 p_init_msg_list => OKL_API.G_FALSE,
2844 x_return_status => x_return_status,
2845 x_msg_count => x_msg_count,
2846 x_msg_data => x_msg_data,
2847 p_trqv_tbl => p_trqv_tbl,
2848 px_error_tbl => l_error_tbl);
2849 END IF;
2850 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2851 EXCEPTION
2852 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2853 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2854 (
2855 l_api_name,
2856 G_PKG_NAME,
2857 'OKL_API.G_RET_STS_ERROR',
2858 x_msg_count,
2859 x_msg_data,
2860 '_PVT'
2861 );
2862 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2863 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2864 (
2865 l_api_name,
2866 G_PKG_NAME,
2867 'OKL_API.G_RET_STS_UNEXP_ERROR',
2868 x_msg_count,
2869 x_msg_data,
2870 '_PVT'
2871 );
2872 WHEN OTHERS THEN
2873 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2874 (
2875 l_api_name,
2876 G_PKG_NAME,
2877 'OTHERS',
2878 x_msg_count,
2879 x_msg_data,
2880 '_PVT'
2881 );
2882 END lock_row;
2883 ---------------------------------------------------------------------------
2884 -- PROCEDURE update_row
2885 ---------------------------------------------------------------------------
2886 -------------------------------------
2887 -- update_row for:OKL_TRX_REQUESTS --
2888 -------------------------------------
2889 PROCEDURE update_row(
2890 p_init_msg_list IN VARCHAR2 ,
2891 x_return_status OUT NOCOPY VARCHAR2,
2892 x_msg_count OUT NOCOPY NUMBER,
2893 x_msg_data OUT NOCOPY VARCHAR2,
2894 p_trq_rec IN trq_rec_type,
2895 x_trq_rec OUT NOCOPY trq_rec_type) IS
2896
2897 l_api_version CONSTANT NUMBER := 1;
2898 l_api_name CONSTANT VARCHAR2(30) := 'B_update_row';
2899 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2900 l_trq_rec trq_rec_type := p_trq_rec;
2901 l_def_trq_rec trq_rec_type;
2902 l_row_notfound BOOLEAN := TRUE;
2903 ----------------------------------
2904 -- FUNCTION populate_new_record --
2905 ----------------------------------
2906 FUNCTION populate_new_record (
2907 p_trq_rec IN trq_rec_type,
2908 x_trq_rec OUT NOCOPY trq_rec_type
2909 ) RETURN VARCHAR2 IS
2910 l_trq_rec trq_rec_type;
2911 l_row_notfound BOOLEAN := TRUE;
2912 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2913 BEGIN
2914 x_trq_rec := p_trq_rec;
2915 -- Get current database values
2916 l_trq_rec := get_rec(p_trq_rec, l_return_status);
2917 IF (l_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
2918 IF (x_trq_rec.id = OKL_API.G_MISS_NUM)
2919 THEN
2920 x_trq_rec.id := l_trq_rec.id;
2921 END IF;
2922 IF (x_trq_rec.object1_id1 = OKL_API.G_MISS_CHAR)
2923 THEN
2924 x_trq_rec.object1_id1 := l_trq_rec.object1_id1;
2925 END IF;
2926 IF (x_trq_rec.object1_id2 = OKL_API.G_MISS_CHAR)
2927 THEN
2928 x_trq_rec.object1_id2 := l_trq_rec.object1_id2;
2929 END IF;
2930 IF (x_trq_rec.jtot_object1_code = OKL_API.G_MISS_CHAR)
2931 THEN
2932 x_trq_rec.jtot_object1_code := l_trq_rec.jtot_object1_code;
2933 END IF;
2934 IF (x_trq_rec.dnz_khr_id = OKL_API.G_MISS_NUM)
2935 THEN
2936 x_trq_rec.dnz_khr_id := l_trq_rec.dnz_khr_id;
2937 END IF;
2938 IF (x_trq_rec.request_type_code = OKL_API.G_MISS_CHAR)
2939 THEN
2940 x_trq_rec.request_type_code := l_trq_rec.request_type_code;
2941 END IF;
2942 IF (x_trq_rec.apply_to_code = OKL_API.G_MISS_CHAR)
2943 THEN
2944 x_trq_rec.apply_to_code := l_trq_rec.apply_to_code;
2945 END IF;
2946 IF (x_trq_rec.start_date = OKL_API.G_MISS_DATE)
2947 THEN
2948 x_trq_rec.start_date := l_trq_rec.start_date;
2949 END IF;
2950 IF (x_trq_rec.end_date = OKL_API.G_MISS_DATE)
2951 THEN
2952 x_trq_rec.end_date := l_trq_rec.end_date;
2953 END IF;
2954 IF (x_trq_rec.term_duration = OKL_API.G_MISS_NUM)
2955 THEN
2956 x_trq_rec.term_duration := l_trq_rec.term_duration;
2957 END IF;
2958 IF (x_trq_rec.AMOUNT = OKL_API.G_MISS_NUM)
2959 THEN
2960 x_trq_rec.AMOUNT := l_trq_rec.AMOUNT;
2961 END IF;
2962 IF (x_trq_rec.currency_code = OKL_API.G_MISS_CHAR)
2963 THEN
2964 x_trq_rec.currency_code := l_trq_rec.currency_code;
2965 END IF;
2966 IF (x_trq_rec.subsidy_yn = OKL_API.G_MISS_CHAR)
2967 THEN
2968 x_trq_rec.subsidy_yn := l_trq_rec.subsidy_yn;
2969 END IF;
2970 IF (x_trq_rec.cash_applied_yn = OKL_API.G_MISS_CHAR)
2971 THEN
2972 x_trq_rec.cash_applied_yn := l_trq_rec.cash_applied_yn;
2973 END IF;
2974 IF (x_trq_rec.object_version_number = OKL_API.G_MISS_NUM)
2975 THEN
2976 x_trq_rec.object_version_number := l_trq_rec.object_version_number;
2977 END IF;
2978 IF (x_trq_rec.attribute_category = OKL_API.G_MISS_CHAR)
2979 THEN
2980 x_trq_rec.attribute_category := l_trq_rec.attribute_category;
2981 END IF;
2982 IF (x_trq_rec.attribute1 = OKL_API.G_MISS_CHAR)
2983 THEN
2984 x_trq_rec.attribute1 := l_trq_rec.attribute1;
2985 END IF;
2986 IF (x_trq_rec.attribute2 = OKL_API.G_MISS_CHAR)
2987 THEN
2988 x_trq_rec.attribute2 := l_trq_rec.attribute2;
2989 END IF;
2990 IF (x_trq_rec.attribute3 = OKL_API.G_MISS_CHAR)
2991 THEN
2992 x_trq_rec.attribute3 := l_trq_rec.attribute3;
2993 END IF;
2994 IF (x_trq_rec.attribute4 = OKL_API.G_MISS_CHAR)
2995 THEN
2996 x_trq_rec.attribute4 := l_trq_rec.attribute4;
2997 END IF;
2998 IF (x_trq_rec.attribute5 = OKL_API.G_MISS_CHAR)
2999 THEN
3000 x_trq_rec.attribute5 := l_trq_rec.attribute5;
3001 END IF;
3002 IF (x_trq_rec.attribute6 = OKL_API.G_MISS_CHAR)
3003 THEN
3004 x_trq_rec.attribute6 := l_trq_rec.attribute6;
3005 END IF;
3006 IF (x_trq_rec.attribute7 = OKL_API.G_MISS_CHAR)
3007 THEN
3008 x_trq_rec.attribute7 := l_trq_rec.attribute7;
3009 END IF;
3010 IF (x_trq_rec.attribute8 = OKL_API.G_MISS_CHAR)
3011 THEN
3012 x_trq_rec.attribute8 := l_trq_rec.attribute8;
3013 END IF;
3014 IF (x_trq_rec.attribute9 = OKL_API.G_MISS_CHAR)
3015 THEN
3016 x_trq_rec.attribute9 := l_trq_rec.attribute9;
3017 END IF;
3018 IF (x_trq_rec.attribute10 = OKL_API.G_MISS_CHAR)
3019 THEN
3020 x_trq_rec.attribute10 := l_trq_rec.attribute10;
3021 END IF;
3022 IF (x_trq_rec.attribute11 = OKL_API.G_MISS_CHAR)
3023 THEN
3024 x_trq_rec.attribute11 := l_trq_rec.attribute11;
3025 END IF;
3026 IF (x_trq_rec.attribute12 = OKL_API.G_MISS_CHAR)
3027 THEN
3028 x_trq_rec.attribute12 := l_trq_rec.attribute12;
3029 END IF;
3030 IF (x_trq_rec.attribute13 = OKL_API.G_MISS_CHAR)
3031 THEN
3032 x_trq_rec.attribute13 := l_trq_rec.attribute13;
3033 END IF;
3034 IF (x_trq_rec.attribute14 = OKL_API.G_MISS_CHAR)
3035 THEN
3036 x_trq_rec.attribute14 := l_trq_rec.attribute14;
3037 END IF;
3038 IF (x_trq_rec.attribute15 = OKL_API.G_MISS_CHAR)
3039 THEN
3040 x_trq_rec.attribute15 := l_trq_rec.attribute15;
3041 END IF;
3042 IF (x_trq_rec.org_id = OKL_API.G_MISS_NUM)
3043 THEN
3044 x_trq_rec.org_id := l_trq_rec.org_id;
3045 END IF;
3046 IF (x_trq_rec.request_id = OKL_API.G_MISS_NUM)
3047 THEN
3048 x_trq_rec.request_id := l_trq_rec.request_id;
3049 END IF;
3050 IF (x_trq_rec.program_application_id = OKL_API.G_MISS_NUM)
3051 THEN
3052 x_trq_rec.program_application_id := l_trq_rec.program_application_id;
3053 END IF;
3054 IF (x_trq_rec.program_id = OKL_API.G_MISS_NUM)
3055 THEN
3056 x_trq_rec.program_id := l_trq_rec.program_id;
3057 END IF;
3058 IF (x_trq_rec.program_update_date = OKL_API.G_MISS_DATE)
3059 THEN
3060 x_trq_rec.program_update_date := l_trq_rec.program_update_date;
3061 END IF;
3062 IF (x_trq_rec.created_by = OKL_API.G_MISS_NUM)
3063 THEN
3064 x_trq_rec.created_by := l_trq_rec.created_by;
3065 END IF;
3066 IF (x_trq_rec.creation_date = OKL_API.G_MISS_DATE)
3067 THEN
3068 x_trq_rec.creation_date := l_trq_rec.creation_date;
3069 END IF;
3070 IF (x_trq_rec.last_updated_by = OKL_API.G_MISS_NUM)
3071 THEN
3072 x_trq_rec.last_updated_by := l_trq_rec.last_updated_by;
3073 END IF;
3074 IF (x_trq_rec.last_update_date = OKL_API.G_MISS_DATE)
3075 THEN
3076 x_trq_rec.last_update_date := l_trq_rec.last_update_date;
3077 END IF;
3078 IF (x_trq_rec.last_update_login = OKL_API.G_MISS_NUM)
3079 THEN
3080 x_trq_rec.last_update_login := l_trq_rec.last_update_login;
3081 END IF;
3082 IF (x_trq_rec.minimum_rate = OKL_API.G_MISS_NUM)
3083 THEN
3084 x_trq_rec.minimum_rate := l_trq_rec.minimum_rate;
3085 END IF;
3086 IF (x_trq_rec.maximum_rate = OKL_API.G_MISS_NUM)
3087 THEN
3088 x_trq_rec.maximum_rate := l_trq_rec.maximum_rate;
3089 END IF;
3090 IF (x_trq_rec.tolerance = OKL_API.G_MISS_NUM)
3091 THEN
3092 x_trq_rec.tolerance := l_trq_rec.tolerance;
3093 END IF;
3094 IF (x_trq_rec.adjustment_frequency_code = OKL_API.G_MISS_CHAR)
3095 THEN
3096 x_trq_rec.adjustment_frequency_code := l_trq_rec.adjustment_frequency_code;
3097 END IF;
3098 IF (x_trq_rec.base_rate = OKL_API.G_MISS_NUM)
3099 THEN
3100 x_trq_rec.base_rate := l_trq_rec.base_rate;
3101 END IF;
3102 IF (x_trq_rec.index_name = OKL_API.G_MISS_CHAR)
3103 THEN
3104 x_trq_rec.index_name := l_trq_rec.index_name;
3105 END IF;
3106 IF (x_trq_rec.variable_method_code = OKL_API.G_MISS_CHAR)
3107 THEN
3108 x_trq_rec.variable_method_code := l_trq_rec.variable_method_code;
3109 END IF;
3110 IF (x_trq_rec.adder = OKL_API.G_MISS_NUM)
3111 THEN
3112 x_trq_rec.adder := l_trq_rec.adder;
3113 END IF;
3114 IF (x_trq_rec.days_in_year = OKL_API.G_MISS_CHAR)
3115 THEN
3116 x_trq_rec.days_in_year := l_trq_rec.days_in_year;
3117 END IF;
3118 IF (x_trq_rec.days_in_month = OKL_API.G_MISS_CHAR)
3119 THEN
3120 x_trq_rec.days_in_month := l_trq_rec.days_in_month;
3121 END IF;
3122 IF (x_trq_rec.interest_method_code = OKL_API.G_MISS_CHAR)
3123 THEN
3124 x_trq_rec.interest_method_code := l_trq_rec.interest_method_code;
3125 END IF;
3126 IF (x_trq_rec.interest_start_date = OKL_API.G_MISS_DATE)
3127 THEN
3128 x_trq_rec.interest_start_date := l_trq_rec.interest_start_date;
3129 END IF;
3130 IF (x_trq_rec.method_of_calculation_code = OKL_API.G_MISS_CHAR)
3131 THEN
3132 x_trq_rec.method_of_calculation_code := l_trq_rec.method_of_calculation_code;
3133 END IF;
3134 IF (x_trq_rec.request_number = OKL_API.G_MISS_CHAR)
3135 THEN
3136 x_trq_rec.request_number := l_trq_rec.request_number;
3137 END IF;
3138 IF (x_trq_rec.date_of_conversion = OKL_API.G_MISS_DATE)
3139 THEN
3140 x_trq_rec.date_of_conversion := l_trq_rec.date_of_conversion;
3141 END IF;
3142 IF (x_trq_rec.variable_rate_yn = OKL_API.G_MISS_CHAR)
3143 THEN
3144 x_trq_rec.variable_rate_yn := l_trq_rec.variable_rate_yn;
3145 END IF;
3146 IF (x_trq_rec.request_status_code = OKL_API.G_MISS_CHAR)
3147 THEN
3148 x_trq_rec.request_status_code := l_trq_rec.request_status_code;
3149 END IF;
3150 IF (x_trq_rec.yield = OKL_API.G_MISS_NUM)
3151 THEN
3152 x_trq_rec.yield := l_trq_rec.yield;
3153 END IF;
3154 IF (x_trq_rec.residual = OKL_API.G_MISS_NUM)
3155 THEN
3156 x_trq_rec.residual := l_trq_rec.residual;
3157 END IF;
3158 IF (x_trq_rec.comments = OKL_API.G_MISS_CHAR)
3159 THEN
3160 x_trq_rec.comments := l_trq_rec.comments;
3161 END IF;
3162 IF (x_trq_rec.payment_frequency_code = OKL_API.G_MISS_CHAR)
3163 THEN
3164 x_trq_rec.payment_frequency_code := l_trq_rec.payment_frequency_code;
3165 END IF;
3166 IF (x_trq_rec.restructure_date = OKL_API.G_MISS_DATE)
3167 THEN
3168 x_trq_rec.restructure_date := l_trq_rec.restructure_date;
3169 END IF;
3170 IF (x_trq_rec.past_due_yn = OKL_API.G_MISS_CHAR)
3171 THEN
3172 x_trq_rec.past_due_yn := l_trq_rec.past_due_yn;
3173 END IF;
3174 IF (x_trq_rec.request_reason_code = OKL_API.G_MISS_CHAR)
3175 THEN
3176 x_trq_rec.request_reason_code := l_trq_rec.request_reason_code;
3177 END IF;
3178 IF (x_trq_rec.parent_khr_id = OKL_API.G_MISS_NUM)
3179 THEN
3180 x_trq_rec.parent_khr_id := l_trq_rec.parent_khr_id;
3181 END IF;
3182 IF (x_trq_rec.yield_type = OKL_API.G_MISS_CHAR)
3183 THEN
3184 x_trq_rec.yield_type := l_trq_rec.yield_type;
3185 END IF;
3186 IF (x_trq_rec.payment_amount = OKL_API.G_MISS_NUM)
3187 THEN
3188 x_trq_rec.payment_amount := l_trq_rec.payment_amount;
3189 END IF;
3190 IF (x_trq_rec.payment_date = OKL_API.G_MISS_DATE)
3191 THEN
3192 x_trq_rec.payment_date := l_trq_rec.payment_date;
3193 END IF;
3194 IF (x_trq_rec.paydown_type = OKL_API.G_MISS_CHAR)
3195 THEN
3196 x_trq_rec.paydown_type := l_trq_rec.paydown_type;
3197 END IF;
3198 IF (x_trq_rec.currency_conversion_type = OKL_API.G_MISS_CHAR)
3199 THEN
3200 x_trq_rec.currency_conversion_type := l_trq_rec.currency_conversion_type;
3201 END IF;
3202 IF (x_trq_rec.currency_conversion_rate = OKL_API.G_MISS_NUM)
3203 THEN
3204 x_trq_rec.currency_conversion_rate := l_trq_rec.currency_conversion_rate;
3205 END IF;
3206 IF (x_trq_rec.currency_conversion_date = OKL_API.G_MISS_DATE)
3207 THEN
3208 x_trq_rec.currency_conversion_date := l_trq_rec.currency_conversion_date;
3209 END IF;
3210 IF (x_trq_rec.lsm_id = OKL_API.G_MISS_NUM)
3211 THEN
3212 x_trq_rec.lsm_id := l_trq_rec.lsm_id;
3213 END IF;
3214 IF (x_trq_rec.receipt_id = OKL_API.G_MISS_NUM)
3215 THEN
3216 x_trq_rec.receipt_id := l_trq_rec.receipt_id;
3217 END IF;
3218 IF (x_trq_rec.tcn_id = OKL_API.G_MISS_NUM)
3219 THEN
3220 x_trq_rec.tcn_id := l_trq_rec.tcn_id;
3221 END IF;
3222 IF (x_trq_rec.try_id = OKL_API.G_MISS_NUM)
3223 THEN
3224 x_trq_rec.try_id := l_trq_rec.try_id;
3225 END IF;
3226 --BEGIN -VARANGAN-BUG#5083582
3227 IF (x_trq_rec.CUR_PRINCIPAL_BALANCE = OKL_API.G_MISS_NUM)
3228 THEN
3229 x_trq_rec.CUR_PRINCIPAL_BALANCE := l_trq_rec.CUR_PRINCIPAL_BALANCE;
3230 END IF;
3231 IF (x_trq_rec.CUR_ACCUM_INTEREST = OKL_API.G_MISS_NUM)
3232 THEN
3233 x_trq_rec.CUR_ACCUM_INTEREST := l_trq_rec.CUR_ACCUM_INTEREST;
3234 END IF;
3235 --END - VARANGAN-BUG#5083582
3236 IF (x_trq_rec.legal_entity_id = OKL_API.G_MISS_NUM)
3237 THEN
3238 x_trq_rec.legal_entity_id := l_trq_rec.legal_entity_id;
3239 END IF;
3240 END IF;
3241 RETURN(l_return_status);
3242 END populate_new_record;
3243 -----------------------------------------
3244 -- Set_Attributes for:OKL_TRX_REQUESTS --
3245 -----------------------------------------
3246 FUNCTION Set_Attributes (
3247 p_trq_rec IN trq_rec_type,
3248 x_trq_rec OUT NOCOPY trq_rec_type
3249 ) RETURN VARCHAR2 IS
3250 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3251 BEGIN
3252 x_trq_rec := p_trq_rec;
3253 x_trq_rec.OBJECT_VERSION_NUMBER := p_trq_rec.OBJECT_VERSION_NUMBER + 1;
3254 RETURN(l_return_status);
3255 END Set_Attributes;
3256 BEGIN
3257 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
3258 p_init_msg_list,
3259 '_PVT',
3260 x_return_status);
3261 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3262 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3263 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3264 RAISE OKL_API.G_EXCEPTION_ERROR;
3265 END IF;
3266 --- Setting item attributes
3267 l_return_status := Set_Attributes(
3268 p_trq_rec, -- IN
3269 l_trq_rec); -- OUT
3270 --- If any errors happen abort API
3271 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3272 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3273 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3274 RAISE OKL_API.G_EXCEPTION_ERROR;
3275 END IF;
3276 l_return_status := populate_new_record(l_trq_rec, l_def_trq_rec);
3277 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3278 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3279 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3280 RAISE OKL_API.G_EXCEPTION_ERROR;
3281 END IF;
3282 UPDATE OKL_TRX_REQUESTS
3283 SET OBJECT1_ID1 = l_def_trq_rec.object1_id1,
3284 OBJECT1_ID2 = l_def_trq_rec.object1_id2,
3285 JTOT_OBJECT1_CODE = l_def_trq_rec.jtot_object1_code,
3286 DNZ_KHR_ID = l_def_trq_rec.dnz_khr_id,
3287 REQUEST_TYPE_CODE = l_def_trq_rec.request_type_code,
3288 APPLY_TO_CODE = l_def_trq_rec.apply_to_code,
3289 START_DATE = l_def_trq_rec.start_date,
3290 END_DATE = l_def_trq_rec.end_date,
3291 TERM_DURATION = l_def_trq_rec.term_duration,
3292 AMOUNT = l_def_trq_rec.AMOUNT,
3293 CURRENCY_CODE = l_def_trq_rec.currency_code,
3294 SUBSIDY_YN = l_def_trq_rec.subsidy_yn,
3295 CASH_APPLIED_YN = l_def_trq_rec.cash_applied_yn,
3296 OBJECT_VERSION_NUMBER = l_def_trq_rec.object_version_number,
3297 ATTRIBUTE_CATEGORY = l_def_trq_rec.attribute_category,
3298 ATTRIBUTE1 = l_def_trq_rec.attribute1,
3299 ATTRIBUTE2 = l_def_trq_rec.attribute2,
3300 ATTRIBUTE3 = l_def_trq_rec.attribute3,
3301 ATTRIBUTE4 = l_def_trq_rec.attribute4,
3302 ATTRIBUTE5 = l_def_trq_rec.attribute5,
3303 ATTRIBUTE6 = l_def_trq_rec.attribute6,
3304 ATTRIBUTE7 = l_def_trq_rec.attribute7,
3305 ATTRIBUTE8 = l_def_trq_rec.attribute8,
3306 ATTRIBUTE9 = l_def_trq_rec.attribute9,
3307 ATTRIBUTE10 = l_def_trq_rec.attribute10,
3308 ATTRIBUTE11 = l_def_trq_rec.attribute11,
3309 ATTRIBUTE12 = l_def_trq_rec.attribute12,
3310 ATTRIBUTE13 = l_def_trq_rec.attribute13,
3311 ATTRIBUTE14 = l_def_trq_rec.attribute14,
3312 ATTRIBUTE15 = l_def_trq_rec.attribute15,
3313 ORG_ID = l_def_trq_rec.org_id,
3314 REQUEST_ID = l_def_trq_rec.request_id,
3315 PROGRAM_APPLICATION_ID = l_def_trq_rec.program_application_id,
3316 PROGRAM_ID = l_def_trq_rec.program_id,
3317 PROGRAM_UPDATE_DATE = l_def_trq_rec.program_update_date,
3318 CREATED_BY = l_def_trq_rec.created_by,
3319 CREATION_DATE = l_def_trq_rec.creation_date,
3320 LAST_UPDATED_BY = l_def_trq_rec.last_updated_by,
3321 LAST_UPDATE_DATE = l_def_trq_rec.last_update_date,
3322 LAST_UPDATE_LOGIN = l_def_trq_rec.last_update_login,
3323 MINIMUM_RATE = l_def_trq_rec.minimum_rate,
3324 MAXIMUM_RATE = l_def_trq_rec.maximum_rate,
3325 TOLERANCE = l_def_trq_rec.tolerance,
3326 ADJUSTMENT_FREQUENCY_CODE = l_def_trq_rec.adjustment_frequency_code,
3327 BASE_RATE = l_def_trq_rec.base_rate,
3328 INDEX_NAME = l_def_trq_rec.index_name,
3329 VARIABLE_METHOD_CODE = l_def_trq_rec.variable_method_code,
3330 ADDER = l_def_trq_rec.adder,
3331 DAYS_IN_YEAR = l_def_trq_rec.days_in_year,
3332 DAYS_IN_MONTH = l_def_trq_rec.days_in_month,
3333 INTEREST_METHOD_CODE = l_def_trq_rec.interest_method_code,
3334 INTEREST_START_DATE = l_def_trq_rec.interest_start_date,
3335 METHOD_OF_CALCULATION_CODE = l_def_trq_rec.method_of_calculation_code,
3336 REQUEST_NUMBER = l_def_trq_rec.request_number,
3337 DATE_OF_CONVERSION = l_def_trq_rec.date_of_conversion,
3338 VARIABLE_RATE_YN = l_def_trq_rec.variable_rate_yn,
3339 REQUEST_STATUS_CODE = l_def_trq_rec.request_status_code,
3340 YIELD = l_def_trq_rec.yield,
3341 RESIDUAL = l_def_trq_rec.residual,
3342 COMMENTS = l_def_trq_rec.comments,
3343 PAYMENT_FREQUENCY_CODE = l_def_trq_rec.payment_frequency_code,
3344 RESTRUCTURE_DATE = l_def_trq_rec.restructure_date,
3345 PAST_DUE_YN = l_def_trq_rec.past_due_yn,
3346 REQUEST_REASON_CODE = l_def_trq_rec.request_reason_code,
3347 PARENT_KHR_ID = l_def_trq_rec.parent_khr_id,
3348 YIELD_TYPE = l_def_trq_rec.yield_type,
3349 PAYMENT_AMOUNT = l_def_trq_rec.payment_amount,
3350 PAYMENT_DATE = l_def_trq_rec.payment_date,
3351 PAYDOWN_TYPE = l_def_trq_rec.paydown_type,
3352 CURRENCY_CONVERSION_TYPE = l_def_trq_rec.currency_conversion_type,
3353 CURRENCY_CONVERSION_RATE = l_def_trq_rec.currency_conversion_rate,
3354 CURRENCY_CONVERSION_DATE = l_def_trq_rec.currency_conversion_date,
3355 LSM_ID = l_def_trq_rec.lsm_id,
3356 RECEIPT_ID = l_def_trq_rec.receipt_id,
3357 TCN_ID = l_def_trq_rec.tcn_id,
3358 TRY_ID = l_def_trq_rec.try_id,
3359 LEGAL_ENTITY_ID = l_def_trq_rec.legal_entity_id
3360 WHERE ID = l_def_trq_rec.id;
3361
3362 x_trq_rec := l_trq_rec;
3363 x_return_status := l_return_status;
3364 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3365 EXCEPTION
3366 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3367 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3368 (
3369 l_api_name,
3370 G_PKG_NAME,
3371 'OKL_API.G_RET_STS_ERROR',
3372 x_msg_count,
3373 x_msg_data,
3374 '_PVT'
3375 );
3376 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3377 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3378 (
3379 l_api_name,
3380 G_PKG_NAME,
3381 'OKL_API.G_RET_STS_UNEXP_ERROR',
3382 x_msg_count,
3383 x_msg_data,
3384 '_PVT'
3385 );
3386 WHEN OTHERS THEN
3387 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3388 (
3389 l_api_name,
3390 G_PKG_NAME,
3391 'OTHERS',
3392 x_msg_count,
3393 x_msg_data,
3394 '_PVT'
3395 );
3396 END update_row;
3397 ---------------------------------------
3398 -- update_row for:OKL_TRX_REQUESTS_V --
3399 ---------------------------------------
3400 PROCEDURE update_row(
3401 p_api_version IN NUMBER,
3402 p_init_msg_list IN VARCHAR2 ,
3403 x_return_status OUT NOCOPY VARCHAR2,
3404 x_msg_count OUT NOCOPY NUMBER,
3405 x_msg_data OUT NOCOPY VARCHAR2,
3406 p_trqv_rec IN trqv_rec_type,
3407 x_trqv_rec OUT NOCOPY trqv_rec_type) IS
3408
3409 l_api_version CONSTANT NUMBER := 1;
3410 l_api_name CONSTANT VARCHAR2(30) := 'V_update_row';
3411 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3412 l_trqv_rec trqv_rec_type := p_trqv_rec;
3413 l_def_trqv_rec trqv_rec_type;
3414 l_db_trqv_rec trqv_rec_type;
3415 l_trq_rec trq_rec_type;
3416 lx_trq_rec trq_rec_type;
3417 -------------------------------
3418 -- FUNCTION fill_who_columns --
3419 -------------------------------
3420 FUNCTION fill_who_columns (
3421 p_trqv_rec IN trqv_rec_type
3422 ) RETURN trqv_rec_type IS
3423 l_trqv_rec trqv_rec_type := p_trqv_rec;
3424 BEGIN
3425 l_trqv_rec.LAST_UPDATE_DATE := SYSDATE;
3426 l_trqv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
3427 l_trqv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
3428 RETURN(l_trqv_rec);
3429 END fill_who_columns;
3430 ----------------------------------
3431 -- FUNCTION populate_new_record --
3432 ----------------------------------
3433 FUNCTION populate_new_record (
3434 p_trqv_rec IN trqv_rec_type,
3435 x_trqv_rec OUT NOCOPY trqv_rec_type
3436 ) RETURN VARCHAR2 IS
3437 l_row_notfound BOOLEAN := TRUE;
3438 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3439 BEGIN
3440 x_trqv_rec := p_trqv_rec;
3441 -- Get current database values
3442 -- NOTE: Never assign the OBJECT_VERSION_NUMBER. Force the user to pass it
3443 -- so it may be verified through LOCK_ROW.
3444 l_db_trqv_rec := get_rec(p_trqv_rec, l_return_status);
3445 IF (l_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
3446 IF (x_trqv_rec.id = OKL_API.G_MISS_NUM)
3447 THEN
3448 x_trqv_rec.id := l_db_trqv_rec.id;
3449 END IF;
3450 IF (x_trqv_rec.object1_id1 = OKL_API.G_MISS_CHAR)
3451 THEN
3452 x_trqv_rec.object1_id1 := l_db_trqv_rec.object1_id1;
3453 END IF;
3454 IF (x_trqv_rec.object1_id2 = OKL_API.G_MISS_CHAR)
3455 THEN
3456 x_trqv_rec.object1_id2 := l_db_trqv_rec.object1_id2;
3457 END IF;
3458 IF (x_trqv_rec.jtot_object1_code = OKL_API.G_MISS_CHAR)
3459 THEN
3460 x_trqv_rec.jtot_object1_code := l_db_trqv_rec.jtot_object1_code;
3461 END IF;
3462 IF (x_trqv_rec.dnz_khr_id = OKL_API.G_MISS_NUM)
3463 THEN
3464 x_trqv_rec.dnz_khr_id := l_db_trqv_rec.dnz_khr_id;
3465 END IF;
3466 IF (x_trqv_rec.request_type_code = OKL_API.G_MISS_CHAR)
3467 THEN
3468 x_trqv_rec.request_type_code := l_db_trqv_rec.request_type_code;
3469 END IF;
3470 IF (x_trqv_rec.apply_to_code = OKL_API.G_MISS_CHAR)
3471 THEN
3472 x_trqv_rec.apply_to_code := l_db_trqv_rec.apply_to_code;
3473 END IF;
3474 IF (x_trqv_rec.start_date = OKL_API.G_MISS_DATE)
3475 THEN
3476 x_trqv_rec.start_date := l_db_trqv_rec.start_date;
3477 END IF;
3478 IF (x_trqv_rec.end_date = OKL_API.G_MISS_DATE)
3479 THEN
3480 x_trqv_rec.end_date := l_db_trqv_rec.end_date;
3481 END IF;
3482 IF (x_trqv_rec.term_duration = OKL_API.G_MISS_NUM)
3483 THEN
3484 x_trqv_rec.term_duration := l_db_trqv_rec.term_duration;
3485 END IF;
3486 IF (x_trqv_rec.AMOUNT = OKL_API.G_MISS_NUM)
3487 THEN
3488 x_trqv_rec.AMOUNT := l_db_trqv_rec.AMOUNT;
3489 END IF;
3490 IF (x_trqv_rec.currency_code = OKL_API.G_MISS_CHAR)
3491 THEN
3492 x_trqv_rec.currency_code := l_db_trqv_rec.currency_code;
3493 END IF;
3494 IF (x_trqv_rec.subsidy_yn = OKL_API.G_MISS_CHAR)
3495 THEN
3496 x_trqv_rec.subsidy_yn := l_db_trqv_rec.subsidy_yn;
3497 END IF;
3498 IF (x_trqv_rec.cash_applied_yn = OKL_API.G_MISS_CHAR)
3499 THEN
3500 x_trqv_rec.cash_applied_yn := l_db_trqv_rec.cash_applied_yn;
3501 END IF;
3502 IF (x_trqv_rec.attribute_category = OKL_API.G_MISS_CHAR)
3503 THEN
3504 x_trqv_rec.attribute_category := l_db_trqv_rec.attribute_category;
3505 END IF;
3506 IF (x_trqv_rec.attribute1 = OKL_API.G_MISS_CHAR)
3507 THEN
3508 x_trqv_rec.attribute1 := l_db_trqv_rec.attribute1;
3509 END IF;
3510 IF (x_trqv_rec.attribute2 = OKL_API.G_MISS_CHAR)
3511 THEN
3512 x_trqv_rec.attribute2 := l_db_trqv_rec.attribute2;
3513 END IF;
3514 IF (x_trqv_rec.attribute3 = OKL_API.G_MISS_CHAR)
3515 THEN
3516 x_trqv_rec.attribute3 := l_db_trqv_rec.attribute3;
3517 END IF;
3518 IF (x_trqv_rec.attribute4 = OKL_API.G_MISS_CHAR)
3519 THEN
3520 x_trqv_rec.attribute4 := l_db_trqv_rec.attribute4;
3521 END IF;
3522 IF (x_trqv_rec.attribute5 = OKL_API.G_MISS_CHAR)
3523 THEN
3524 x_trqv_rec.attribute5 := l_db_trqv_rec.attribute5;
3525 END IF;
3526 IF (x_trqv_rec.attribute6 = OKL_API.G_MISS_CHAR)
3527 THEN
3528 x_trqv_rec.attribute6 := l_db_trqv_rec.attribute6;
3529 END IF;
3530 IF (x_trqv_rec.attribute7 = OKL_API.G_MISS_CHAR)
3531 THEN
3532 x_trqv_rec.attribute7 := l_db_trqv_rec.attribute7;
3533 END IF;
3534 IF (x_trqv_rec.attribute8 = OKL_API.G_MISS_CHAR)
3535 THEN
3536 x_trqv_rec.attribute8 := l_db_trqv_rec.attribute8;
3537 END IF;
3538 IF (x_trqv_rec.attribute9 = OKL_API.G_MISS_CHAR)
3539 THEN
3540 x_trqv_rec.attribute9 := l_db_trqv_rec.attribute9;
3541 END IF;
3542 IF (x_trqv_rec.attribute10 = OKL_API.G_MISS_CHAR)
3543 THEN
3544 x_trqv_rec.attribute10 := l_db_trqv_rec.attribute10;
3545 END IF;
3546 IF (x_trqv_rec.attribute11 = OKL_API.G_MISS_CHAR)
3547 THEN
3548 x_trqv_rec.attribute11 := l_db_trqv_rec.attribute11;
3549 END IF;
3550 IF (x_trqv_rec.attribute12 = OKL_API.G_MISS_CHAR)
3551 THEN
3552 x_trqv_rec.attribute12 := l_db_trqv_rec.attribute12;
3553 END IF;
3554 IF (x_trqv_rec.attribute13 = OKL_API.G_MISS_CHAR)
3555 THEN
3556 x_trqv_rec.attribute13 := l_db_trqv_rec.attribute13;
3557 END IF;
3558 IF (x_trqv_rec.attribute14 = OKL_API.G_MISS_CHAR)
3559 THEN
3560 x_trqv_rec.attribute14 := l_db_trqv_rec.attribute14;
3561 END IF;
3562 IF (x_trqv_rec.attribute15 = OKL_API.G_MISS_CHAR)
3563 THEN
3564 x_trqv_rec.attribute15 := l_db_trqv_rec.attribute15;
3565 END IF;
3566 IF (x_trqv_rec.org_id = OKL_API.G_MISS_NUM)
3567 THEN
3568 x_trqv_rec.org_id := l_db_trqv_rec.org_id;
3569 END IF;
3570 IF (x_trqv_rec.request_id = OKL_API.G_MISS_NUM)
3571 THEN
3572 x_trqv_rec.request_id := l_db_trqv_rec.request_id;
3573 END IF;
3574 IF (x_trqv_rec.program_application_id = OKL_API.G_MISS_NUM)
3575 THEN
3576 x_trqv_rec.program_application_id := l_db_trqv_rec.program_application_id;
3577 END IF;
3578 IF (x_trqv_rec.program_id = OKL_API.G_MISS_NUM)
3579 THEN
3580 x_trqv_rec.program_id := l_db_trqv_rec.program_id;
3581 END IF;
3582 IF (x_trqv_rec.program_update_date = OKL_API.G_MISS_DATE)
3583 THEN
3584 x_trqv_rec.program_update_date := l_db_trqv_rec.program_update_date;
3585 END IF;
3586 IF (x_trqv_rec.created_by = OKL_API.G_MISS_NUM)
3587 THEN
3588 x_trqv_rec.created_by := l_db_trqv_rec.created_by;
3589 END IF;
3590 IF (x_trqv_rec.creation_date = OKL_API.G_MISS_DATE)
3591 THEN
3592 x_trqv_rec.creation_date := l_db_trqv_rec.creation_date;
3593 END IF;
3594 IF (x_trqv_rec.last_updated_by = OKL_API.G_MISS_NUM)
3595 THEN
3596 x_trqv_rec.last_updated_by := l_db_trqv_rec.last_updated_by;
3597 END IF;
3598 IF (x_trqv_rec.last_update_date = OKL_API.G_MISS_DATE)
3599 THEN
3600 x_trqv_rec.last_update_date := l_db_trqv_rec.last_update_date;
3601 END IF;
3602 IF (x_trqv_rec.last_update_login = OKL_API.G_MISS_NUM)
3603 THEN
3604 x_trqv_rec.last_update_login := l_db_trqv_rec.last_update_login;
3605 END IF;
3606 IF (x_trqv_rec.minimum_rate = OKL_API.G_MISS_NUM)
3607 THEN
3608 x_trqv_rec.minimum_rate := l_db_trqv_rec.minimum_rate;
3609 END IF;
3610 IF (x_trqv_rec.maximum_rate = OKL_API.G_MISS_NUM)
3611 THEN
3612 x_trqv_rec.maximum_rate := l_db_trqv_rec.maximum_rate;
3613 END IF;
3614 IF (x_trqv_rec.tolerance = OKL_API.G_MISS_NUM)
3615 THEN
3616 x_trqv_rec.tolerance := l_db_trqv_rec.tolerance;
3617 END IF;
3618 IF (x_trqv_rec.adjustment_frequency_code = OKL_API.G_MISS_CHAR)
3619 THEN
3620 x_trqv_rec.adjustment_frequency_code := l_db_trqv_rec.adjustment_frequency_code;
3621 END IF;
3622 IF (x_trqv_rec.base_rate = OKL_API.G_MISS_NUM)
3623 THEN
3624 x_trqv_rec.base_rate := l_db_trqv_rec.base_rate;
3625 END IF;
3626 IF (x_trqv_rec.index_name = OKL_API.G_MISS_CHAR)
3627 THEN
3628 x_trqv_rec.index_name := l_db_trqv_rec.index_name;
3629 END IF;
3630 IF (x_trqv_rec.variable_method_code = OKL_API.G_MISS_CHAR)
3631 THEN
3632 x_trqv_rec.variable_method_code := l_db_trqv_rec.variable_method_code;
3633 END IF;
3634 IF (x_trqv_rec.adder = OKL_API.G_MISS_NUM)
3635 THEN
3636 x_trqv_rec.adder := l_db_trqv_rec.adder;
3637 END IF;
3638 IF (x_trqv_rec.days_in_year = OKL_API.G_MISS_CHAR)
3639 THEN
3640 x_trqv_rec.days_in_year := l_db_trqv_rec.days_in_year;
3641 END IF;
3642 IF (x_trqv_rec.days_in_month = OKL_API.G_MISS_CHAR)
3643 THEN
3644 x_trqv_rec.days_in_month := l_db_trqv_rec.days_in_month;
3645 END IF;
3646 IF (x_trqv_rec.interest_method_code = OKL_API.G_MISS_CHAR)
3647 THEN
3648 x_trqv_rec.interest_method_code := l_db_trqv_rec.interest_method_code;
3649 END IF;
3650 IF (x_trqv_rec.interest_start_date = OKL_API.G_MISS_DATE)
3651 THEN
3652 x_trqv_rec.interest_start_date := l_db_trqv_rec.interest_start_date;
3653 END IF;
3654 IF (x_trqv_rec.method_of_calculation_code = OKL_API.G_MISS_CHAR)
3655 THEN
3656 x_trqv_rec.method_of_calculation_code := l_db_trqv_rec.method_of_calculation_code;
3657 END IF;
3658 IF (x_trqv_rec.request_number = OKL_API.G_MISS_CHAR)
3659 THEN
3660 x_trqv_rec.request_number := l_db_trqv_rec.request_number;
3661 END IF;
3662 IF (x_trqv_rec.date_of_conversion = OKL_API.G_MISS_DATE)
3663 THEN
3664 x_trqv_rec.date_of_conversion := l_db_trqv_rec.date_of_conversion;
3665 END IF;
3666 IF (x_trqv_rec.variable_rate_yn = OKL_API.G_MISS_CHAR)
3667 THEN
3668 x_trqv_rec.variable_rate_yn := l_db_trqv_rec.variable_rate_yn;
3669 END IF;
3670 IF (x_trqv_rec.request_status_code = OKL_API.G_MISS_CHAR)
3671 THEN
3672 x_trqv_rec.request_status_code := l_db_trqv_rec.request_status_code;
3673 END IF;
3674 IF (x_trqv_rec.yield = OKL_API.G_MISS_NUM)
3675 THEN
3676 x_trqv_rec.yield := l_db_trqv_rec.yield;
3677 END IF;
3678 IF (x_trqv_rec.residual = OKL_API.G_MISS_NUM)
3679 THEN
3680 x_trqv_rec.residual := l_db_trqv_rec.residual;
3681 END IF;
3682 IF (x_trqv_rec.comments = OKL_API.G_MISS_CHAR)
3683 THEN
3684 x_trqv_rec.comments := l_db_trqv_rec.comments;
3685 END IF;
3686 IF (x_trqv_rec.payment_frequency_code = OKL_API.G_MISS_CHAR)
3687 THEN
3688 x_trqv_rec.payment_frequency_code := l_db_trqv_rec.payment_frequency_code;
3689 END IF;
3690 IF (x_trqv_rec.restructure_date = OKL_API.G_MISS_DATE)
3691 THEN
3692 x_trqv_rec.restructure_date := l_db_trqv_rec.restructure_date;
3693 END IF;
3694 IF (x_trqv_rec.past_due_yn = OKL_API.G_MISS_CHAR)
3695 THEN
3696 x_trqv_rec.past_due_yn := l_db_trqv_rec.past_due_yn;
3697 END IF;
3698 IF (x_trqv_rec.request_reason_code = OKL_API.G_MISS_CHAR)
3699 THEN
3700 x_trqv_rec.request_reason_code := l_db_trqv_rec.request_reason_code;
3701 END IF;
3702 IF (x_trqv_rec.parent_khr_id = OKL_API.G_MISS_NUM)
3703 THEN
3704 x_trqv_rec.parent_khr_id := l_db_trqv_rec.parent_khr_id;
3705 END IF;
3706 IF (x_trqv_rec.yield_type = OKL_API.G_MISS_CHAR)
3707 THEN
3708 x_trqv_rec.yield_type := l_db_trqv_rec.yield_type;
3709 END IF;
3710 IF (x_trqv_rec.payment_amount = OKL_API.G_MISS_NUM)
3711 THEN
3712 x_trqv_rec.payment_amount := l_db_trqv_rec.payment_amount;
3713 END IF;
3714 IF (x_trqv_rec.payment_date = OKL_API.G_MISS_DATE)
3715 THEN
3716 x_trqv_rec.payment_date := l_db_trqv_rec.payment_date;
3717 END IF;
3718 IF (x_trqv_rec.paydown_type = OKL_API.G_MISS_CHAR)
3719 THEN
3720 x_trqv_rec.paydown_type := l_db_trqv_rec.paydown_type;
3721 END IF;
3722 IF (x_trqv_rec.currency_conversion_type = OKL_API.G_MISS_CHAR)
3723 THEN
3724 x_trqv_rec.currency_conversion_type := l_db_trqv_rec.currency_conversion_type;
3725 END IF;
3726 IF (x_trqv_rec.currency_conversion_rate = OKL_API.G_MISS_NUM)
3727 THEN
3728 x_trqv_rec.currency_conversion_rate := l_db_trqv_rec.currency_conversion_rate;
3729 END IF;
3730 IF (x_trqv_rec.currency_conversion_date = OKL_API.G_MISS_DATE)
3731 THEN
3732 x_trqv_rec.currency_conversion_date := l_db_trqv_rec.currency_conversion_date;
3733 END IF;
3734 IF (x_trqv_rec.lsm_id = OKL_API.G_MISS_NUM)
3735 THEN
3736 x_trqv_rec.lsm_id := l_db_trqv_rec.lsm_id;
3737 END IF;
3738 IF (x_trqv_rec.receipt_id = OKL_API.G_MISS_NUM)
3739 THEN
3740 x_trqv_rec.receipt_id := l_db_trqv_rec.receipt_id;
3741 END IF;
3742 IF (x_trqv_rec.tcn_id = OKL_API.G_MISS_NUM)
3743 THEN
3744 x_trqv_rec.tcn_id := l_db_trqv_rec.tcn_id;
3745 END IF;
3746 IF (x_trqv_rec.try_id = OKL_API.G_MISS_NUM)
3747 THEN
3748 x_trqv_rec.try_id := l_db_trqv_rec.try_id;
3749 END IF;
3750 IF (x_trqv_rec.legal_entity_id = OKL_API.G_MISS_NUM)
3751 THEN
3752 x_trqv_rec.legal_entity_id := l_db_trqv_rec.legal_entity_id;
3753 END IF;
3754 END IF;
3755 RETURN(l_return_status);
3756 END populate_new_record;
3757 -------------------------------------------
3758 -- Set_Attributes for:OKL_TRX_REQUESTS_V --
3759 -------------------------------------------
3760 FUNCTION Set_Attributes (
3761 p_trqv_rec IN trqv_rec_type,
3762 x_trqv_rec OUT NOCOPY trqv_rec_type
3763 ) RETURN VARCHAR2 IS
3764 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3765 BEGIN
3766 x_trqv_rec := p_trqv_rec;
3767 RETURN(l_return_status);
3768 END Set_Attributes;
3769 BEGIN
3770 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
3771 G_PKG_NAME,
3772 p_init_msg_list,
3773 l_api_version,
3774 p_api_version,
3775 '_PVT',
3776 x_return_status);
3777 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3778 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3779 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3780 RAISE OKL_API.G_EXCEPTION_ERROR;
3781 END IF;
3782 --- Setting item attributes
3783 l_return_status := Set_Attributes(
3784 p_trqv_rec, -- IN
3785 x_trqv_rec); -- OUT
3786 --- If any errors happen abort API
3787 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3788 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3789 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3790 RAISE OKL_API.G_EXCEPTION_ERROR;
3791 END IF;
3792 l_return_status := populate_new_record(l_trqv_rec, l_def_trqv_rec);
3793 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3794 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3795 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3796 RAISE OKL_API.G_EXCEPTION_ERROR;
3797 END IF;
3798 l_def_trqv_rec := fill_who_columns(l_def_trqv_rec);
3799 --- Validate all non-missing attributes (Item Level Validation)
3800 l_return_status := Validate_Attributes(l_def_trqv_rec);
3801 --- If any errors happen abort API
3802 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3803 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3804 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3805 RAISE OKL_API.G_EXCEPTION_ERROR;
3806 END IF;
3807 l_return_status := Validate_Record(l_def_trqv_rec, l_db_trqv_rec);
3808 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3809 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3810 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3811 RAISE OKL_API.G_EXCEPTION_ERROR;
3812 END IF;
3813
3814 -- Lock the Record
3815 lock_row(
3816 p_api_version => p_api_version,
3817 p_init_msg_list => p_init_msg_list,
3818 x_return_status => l_return_status,
3819 x_msg_count => x_msg_count,
3820 x_msg_data => x_msg_data,
3821 p_trqv_rec => p_trqv_rec);
3822 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3823 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3824 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3825 RAISE OKL_API.G_EXCEPTION_ERROR;
3826 END IF;
3827
3828 -----------------------------------------
3829 -- Move VIEW record to "Child" records --
3830 -----------------------------------------
3831 migrate(l_def_trqv_rec, l_trq_rec);
3832 -----------------------------------------------
3833 -- Call the UPDATE_ROW for each child record --
3834 -----------------------------------------------
3835 update_row(
3836 p_init_msg_list,
3837 l_return_status,
3838 x_msg_count,
3839 x_msg_data,
3840 l_trq_rec,
3841 lx_trq_rec
3842 );
3843 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3844 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3845 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3846 RAISE OKL_API.G_EXCEPTION_ERROR;
3847 END IF;
3848 migrate(lx_trq_rec, l_def_trqv_rec);
3849 x_trqv_rec := l_def_trqv_rec;
3850 x_return_status := l_return_status;
3851 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3852 EXCEPTION
3853 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3854 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3855 (
3856 l_api_name,
3857 G_PKG_NAME,
3858 'OKL_API.G_RET_STS_ERROR',
3859 x_msg_count,
3860 x_msg_data,
3861 '_PVT'
3862 );
3863 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3864 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3865 (
3866 l_api_name,
3867 G_PKG_NAME,
3868 'OKL_API.G_RET_STS_UNEXP_ERROR',
3869 x_msg_count,
3870 x_msg_data,
3871 '_PVT'
3872 );
3873 WHEN OTHERS THEN
3874 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3875 (
3876 l_api_name,
3877 G_PKG_NAME,
3878 'OTHERS',
3879 x_msg_count,
3880 x_msg_data,
3881 '_PVT'
3882 );
3883 END update_row;
3884 ----------------------------------------
3885 -- PL/SQL TBL update_row for:trqv_tbl --
3886 ----------------------------------------
3887 PROCEDURE update_row(
3888 p_api_version IN NUMBER,
3889 p_init_msg_list IN VARCHAR2 ,
3890 x_return_status OUT NOCOPY VARCHAR2,
3891 x_msg_count OUT NOCOPY NUMBER,
3892 x_msg_data OUT NOCOPY VARCHAR2,
3893 p_trqv_tbl IN trqv_tbl_type,
3894 x_trqv_tbl OUT NOCOPY trqv_tbl_type,
3895 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
3896
3897 l_api_version CONSTANT NUMBER := 1;
3898 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_update_row';
3899 i NUMBER := 0;
3900 BEGIN
3901 OKL_API.init_msg_list(p_init_msg_list);
3902 -- Make sure PL/SQL table has records in it before passing
3903 IF (p_trqv_tbl.COUNT > 0) THEN
3904 i := p_trqv_tbl.FIRST;
3905 LOOP
3906 DECLARE
3907 l_error_rec OKL_API.ERROR_REC_TYPE;
3908 BEGIN
3909 l_error_rec.api_name := l_api_name;
3910 l_error_rec.api_package := G_PKG_NAME;
3911 l_error_rec.idx := i;
3912 update_row (
3913 p_api_version => p_api_version,
3914 p_init_msg_list => OKL_API.G_FALSE,
3915 x_return_status => l_error_rec.error_type,
3916 x_msg_count => l_error_rec.msg_count,
3917 x_msg_data => l_error_rec.msg_data,
3918 p_trqv_rec => p_trqv_tbl(i),
3919 x_trqv_rec => x_trqv_tbl(i));
3920 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
3921 l_error_rec.sqlcode := SQLCODE;
3922 load_error_tbl(l_error_rec, px_error_tbl);
3923 ELSE
3924 x_msg_count := l_error_rec.msg_count;
3925 x_msg_data := l_error_rec.msg_data;
3926 END IF;
3927 EXCEPTION
3928 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3929 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
3930 l_error_rec.sqlcode := SQLCODE;
3931 load_error_tbl(l_error_rec, px_error_tbl);
3932 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3933 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
3934 l_error_rec.sqlcode := SQLCODE;
3935 load_error_tbl(l_error_rec, px_error_tbl);
3936 WHEN OTHERS THEN
3937 l_error_rec.error_type := 'OTHERS';
3938 l_error_rec.sqlcode := SQLCODE;
3939 load_error_tbl(l_error_rec, px_error_tbl);
3940 END;
3941 EXIT WHEN (i = p_trqv_tbl.LAST);
3942 i := p_trqv_tbl.NEXT(i);
3943 END LOOP;
3944 END IF;
3945 -- Loop through the error_tbl to find the error with the highest severity
3946 -- and return it.
3947 x_return_status := find_highest_exception(px_error_tbl);
3948 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3949 EXCEPTION
3950 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3951 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3952 (
3953 l_api_name,
3954 G_PKG_NAME,
3955 'OKL_API.G_RET_STS_ERROR',
3956 x_msg_count,
3957 x_msg_data,
3958 '_PVT'
3959 );
3960 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3961 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3962 (
3963 l_api_name,
3964 G_PKG_NAME,
3965 'OKL_API.G_RET_STS_UNEXP_ERROR',
3966 x_msg_count,
3967 x_msg_data,
3968 '_PVT'
3969 );
3970 WHEN OTHERS THEN
3971 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3972 (
3973 l_api_name,
3974 G_PKG_NAME,
3975 'OTHERS',
3976 x_msg_count,
3977 x_msg_data,
3978 '_PVT'
3979 );
3980 END update_row;
3981
3982 ----------------------------------------
3983 -- PL/SQL TBL update_row for:TRQV_TBL --
3984 ----------------------------------------
3985 PROCEDURE update_row(
3986 p_api_version IN NUMBER,
3987 p_init_msg_list IN VARCHAR2 ,
3988 x_return_status OUT NOCOPY VARCHAR2,
3989 x_msg_count OUT NOCOPY NUMBER,
3990 x_msg_data OUT NOCOPY VARCHAR2,
3991 p_trqv_tbl IN trqv_tbl_type,
3992 x_trqv_tbl OUT NOCOPY trqv_tbl_type) IS
3993
3994 l_api_version CONSTANT NUMBER := 1;
3995 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
3996 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3997 l_error_tbl OKL_API.ERROR_TBL_TYPE;
3998 BEGIN
3999 OKL_API.init_msg_list(p_init_msg_list);
4000 -- Make sure PL/SQL table has records in it before passing
4001 IF (p_trqv_tbl.COUNT > 0) THEN
4002 update_row (
4003 p_api_version => p_api_version,
4004 p_init_msg_list => OKL_API.G_FALSE,
4005 x_return_status => x_return_status,
4006 x_msg_count => x_msg_count,
4007 x_msg_data => x_msg_data,
4008 p_trqv_tbl => p_trqv_tbl,
4009 x_trqv_tbl => x_trqv_tbl,
4010 px_error_tbl => l_error_tbl);
4011 END IF;
4012 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4013 EXCEPTION
4014 WHEN OKL_API.G_EXCEPTION_ERROR THEN
4015 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4016 (
4017 l_api_name,
4018 G_PKG_NAME,
4019 'OKL_API.G_RET_STS_ERROR',
4020 x_msg_count,
4021 x_msg_data,
4022 '_PVT'
4023 );
4024 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4025 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4026 (
4027 l_api_name,
4028 G_PKG_NAME,
4029 'OKL_API.G_RET_STS_UNEXP_ERROR',
4030 x_msg_count,
4031 x_msg_data,
4032 '_PVT'
4033 );
4034 WHEN OTHERS THEN
4035 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4036 (
4037 l_api_name,
4038 G_PKG_NAME,
4039 'OTHERS',
4040 x_msg_count,
4041 x_msg_data,
4042 '_PVT'
4043 );
4044 END update_row;
4045
4046 ---------------------------------------------------------------------------
4047 -- PROCEDURE delete_row
4048 ---------------------------------------------------------------------------
4049 -------------------------------------
4050 -- delete_row for:OKL_TRX_REQUESTS --
4051 -------------------------------------
4052 PROCEDURE delete_row(
4053 p_init_msg_list IN VARCHAR2 ,
4054 x_return_status OUT NOCOPY VARCHAR2,
4055 x_msg_count OUT NOCOPY NUMBER,
4056 x_msg_data OUT NOCOPY VARCHAR2,
4057 p_trq_rec IN trq_rec_type) IS
4058
4059 l_api_version CONSTANT NUMBER := 1;
4060 l_api_name CONSTANT VARCHAR2(30) := 'B_delete_row';
4061 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4062 l_trq_rec trq_rec_type := p_trq_rec;
4063 l_row_notfound BOOLEAN := TRUE;
4064 BEGIN
4065 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
4066 p_init_msg_list,
4067 '_PVT',
4068 x_return_status);
4069 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4070 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4071 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4072 RAISE OKL_API.G_EXCEPTION_ERROR;
4073 END IF;
4074
4075 DELETE FROM OKL_TRX_REQUESTS
4076 WHERE ID = p_trq_rec.id;
4077
4078 x_return_status := l_return_status;
4079 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4080 EXCEPTION
4081 WHEN OKL_API.G_EXCEPTION_ERROR THEN
4082 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4083 (
4084 l_api_name,
4085 G_PKG_NAME,
4086 'OKL_API.G_RET_STS_ERROR',
4087 x_msg_count,
4088 x_msg_data,
4089 '_PVT'
4090 );
4091 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4092 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4093 (
4094 l_api_name,
4095 G_PKG_NAME,
4096 'OKL_API.G_RET_STS_UNEXP_ERROR',
4097 x_msg_count,
4098 x_msg_data,
4099 '_PVT'
4100 );
4101 WHEN OTHERS THEN
4102 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4103 (
4104 l_api_name,
4105 G_PKG_NAME,
4106 'OTHERS',
4107 x_msg_count,
4108 x_msg_data,
4109 '_PVT'
4110 );
4111 END delete_row;
4112 ---------------------------------------
4113 -- delete_row for:OKL_TRX_REQUESTS_V --
4114 ---------------------------------------
4115 PROCEDURE delete_row(
4116 p_api_version IN NUMBER,
4117 p_init_msg_list IN VARCHAR2 ,
4118 x_return_status OUT NOCOPY VARCHAR2,
4119 x_msg_count OUT NOCOPY NUMBER,
4120 x_msg_data OUT NOCOPY VARCHAR2,
4121 p_trqv_rec IN trqv_rec_type) IS
4122
4123 l_api_version CONSTANT NUMBER := 1;
4124 l_api_name CONSTANT VARCHAR2(30) := 'V_delete_row';
4125 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4126 l_trqv_rec trqv_rec_type := p_trqv_rec;
4127 l_trq_rec trq_rec_type;
4128 BEGIN
4129 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
4130 G_PKG_NAME,
4131 p_init_msg_list,
4132 l_api_version,
4133 p_api_version,
4134 '_PVT',
4135 x_return_status);
4136 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4137 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4138 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4139 RAISE OKL_API.G_EXCEPTION_ERROR;
4140 END IF;
4141 -----------------------------------------
4142 -- Move VIEW record to "Child" records --
4143 -----------------------------------------
4144 migrate(l_trqv_rec, l_trq_rec);
4145 -----------------------------------------------
4146 -- Call the DELETE_ROW for each child record --
4147 -----------------------------------------------
4148 delete_row(
4149 p_init_msg_list,
4150 l_return_status,
4151 x_msg_count,
4152 x_msg_data,
4153 l_trq_rec
4154 );
4155 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4156 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4157 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4158 RAISE OKL_API.G_EXCEPTION_ERROR;
4159 END IF;
4160 x_return_status := l_return_status;
4161 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4162 EXCEPTION
4163 WHEN OKL_API.G_EXCEPTION_ERROR THEN
4164 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4165 (
4166 l_api_name,
4167 G_PKG_NAME,
4168 'OKL_API.G_RET_STS_ERROR',
4169 x_msg_count,
4170 x_msg_data,
4171 '_PVT'
4172 );
4173 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4174 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4175 (
4176 l_api_name,
4177 G_PKG_NAME,
4178 'OKL_API.G_RET_STS_UNEXP_ERROR',
4179 x_msg_count,
4180 x_msg_data,
4181 '_PVT'
4182 );
4183 WHEN OTHERS THEN
4184 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4185 (
4186 l_api_name,
4187 G_PKG_NAME,
4188 'OTHERS',
4189 x_msg_count,
4190 x_msg_data,
4191 '_PVT'
4192 );
4193 END delete_row;
4194 --------------------------------------------------
4195 -- PL/SQL TBL delete_row for:OKL_TRX_REQUESTS_V --
4196 --------------------------------------------------
4197 PROCEDURE delete_row(
4198 p_api_version IN NUMBER,
4199 p_init_msg_list IN VARCHAR2 ,
4200 x_return_status OUT NOCOPY VARCHAR2,
4201 x_msg_count OUT NOCOPY NUMBER,
4202 x_msg_data OUT NOCOPY VARCHAR2,
4203 p_trqv_tbl IN trqv_tbl_type,
4204 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
4205
4206 l_api_version CONSTANT NUMBER := 1;
4207 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_delete_row';
4208 i NUMBER := 0;
4209 BEGIN
4210 OKL_API.init_msg_list(p_init_msg_list);
4211 -- Make sure PL/SQL table has records in it before passing
4212 IF (p_trqv_tbl.COUNT > 0) THEN
4213 i := p_trqv_tbl.FIRST;
4214 LOOP
4215 DECLARE
4216 l_error_rec OKL_API.ERROR_REC_TYPE;
4217 BEGIN
4218 l_error_rec.api_name := l_api_name;
4219 l_error_rec.api_package := G_PKG_NAME;
4220 l_error_rec.idx := i;
4221 delete_row (
4222 p_api_version => p_api_version,
4223 p_init_msg_list => OKL_API.G_FALSE,
4224 x_return_status => l_error_rec.error_type,
4225 x_msg_count => l_error_rec.msg_count,
4226 x_msg_data => l_error_rec.msg_data,
4227 p_trqv_rec => p_trqv_tbl(i));
4228 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
4229 l_error_rec.sqlcode := SQLCODE;
4230 load_error_tbl(l_error_rec, px_error_tbl);
4231 ELSE
4232 x_msg_count := l_error_rec.msg_count;
4233 x_msg_data := l_error_rec.msg_data;
4234 END IF;
4235 EXCEPTION
4236 WHEN OKL_API.G_EXCEPTION_ERROR THEN
4237 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
4238 l_error_rec.sqlcode := SQLCODE;
4239 load_error_tbl(l_error_rec, px_error_tbl);
4240 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4241 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
4242 l_error_rec.sqlcode := SQLCODE;
4243 load_error_tbl(l_error_rec, px_error_tbl);
4244 WHEN OTHERS THEN
4245 l_error_rec.error_type := 'OTHERS';
4246 l_error_rec.sqlcode := SQLCODE;
4247 load_error_tbl(l_error_rec, px_error_tbl);
4248 END;
4249 EXIT WHEN (i = p_trqv_tbl.LAST);
4250 i := p_trqv_tbl.NEXT(i);
4251 END LOOP;
4252 END IF;
4253 -- Loop through the error_tbl to find the error with the highest severity
4254 -- and return it.
4255 x_return_status := find_highest_exception(px_error_tbl);
4256 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4257 EXCEPTION
4258 WHEN OKL_API.G_EXCEPTION_ERROR THEN
4259 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4260 (
4261 l_api_name,
4262 G_PKG_NAME,
4263 'OKL_API.G_RET_STS_ERROR',
4264 x_msg_count,
4265 x_msg_data,
4266 '_PVT'
4267 );
4268 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4269 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4270 (
4271 l_api_name,
4272 G_PKG_NAME,
4273 'OKL_API.G_RET_STS_UNEXP_ERROR',
4274 x_msg_count,
4275 x_msg_data,
4276 '_PVT'
4277 );
4278 WHEN OTHERS THEN
4279 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4280 (
4281 l_api_name,
4282 G_PKG_NAME,
4283 'OTHERS',
4284 x_msg_count,
4285 x_msg_data,
4286 '_PVT'
4287 );
4288 END delete_row;
4289
4290 --------------------------------------------------
4291 -- PL/SQL TBL delete_row for:OKL_TRX_REQUESTS_V --
4292 --------------------------------------------------
4293 PROCEDURE delete_row(
4294 p_api_version IN NUMBER,
4295 p_init_msg_list IN VARCHAR2 ,
4296 x_return_status OUT NOCOPY VARCHAR2,
4297 x_msg_count OUT NOCOPY NUMBER,
4298 x_msg_data OUT NOCOPY VARCHAR2,
4299 p_trqv_tbl IN trqv_tbl_type) IS
4300
4301 l_api_version CONSTANT NUMBER := 1;
4302 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
4303 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4304 l_error_tbl OKL_API.ERROR_TBL_TYPE;
4305 BEGIN
4306 OKL_API.init_msg_list(p_init_msg_list);
4307 -- Make sure PL/SQL table has records in it before passing
4308 IF (p_trqv_tbl.COUNT > 0) THEN
4309 delete_row (
4310 p_api_version => p_api_version,
4311 p_init_msg_list => OKL_API.G_FALSE,
4312 x_return_status => x_return_status,
4313 x_msg_count => x_msg_count,
4314 x_msg_data => x_msg_data,
4315 p_trqv_tbl => p_trqv_tbl,
4316 px_error_tbl => l_error_tbl);
4317 END IF;
4318 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4319 EXCEPTION
4320 WHEN OKL_API.G_EXCEPTION_ERROR THEN
4321 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4322 (
4323 l_api_name,
4324 G_PKG_NAME,
4325 'OKL_API.G_RET_STS_ERROR',
4326 x_msg_count,
4327 x_msg_data,
4328 '_PVT'
4329 );
4330 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4331 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4332 (
4333 l_api_name,
4334 G_PKG_NAME,
4335 'OKL_API.G_RET_STS_UNEXP_ERROR',
4336 x_msg_count,
4337 x_msg_data,
4338 '_PVT'
4339 );
4340 WHEN OTHERS THEN
4341 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4342 (
4343 l_api_name,
4344 G_PKG_NAME,
4345 'OTHERS',
4346 x_msg_count,
4347 x_msg_data,
4348 '_PVT'
4349 );
4350 END delete_row;
4351
4352 END OKL_TRQ_PVT;