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