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