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