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