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