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