DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_TAP_PVT

Source


1 PACKAGE BODY OKL_TAP_PVT AS
2 /* $Header: OKLSTAPB.pls 120.11 2008/01/17 10:09:54 veramach 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! 4, n/a:sfwt_flag
9   -- 1. Check for Not Null Primary Keys               = Done! 1
10   -- 2. Check for Not Null Foreign Keys               = Done! 1=ipvs_id
11   -- 3. Validity of Foreign Keys                      = Done! 15=10null+1notnull+4-FND;OKX=3
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=3; allowed-values=1
15   -- 7. Added the Concurrent Manager Columns (p104)   = Done! 2=views:v_insert_row,v_update_row
16   -- 8. Validate fnd_lookup code using OKL_UTIL pkg   = Done! 3=nullable; 1=notnull (currency)
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! 25
21   --13. Validate_Record:Trx-Types, Unique Keys        = Done! 15 = trx-types
22   --06/01/00: Post postgen changes:
23   --14. Removed all references to TRX_TYPE. This columns dropped from BD
24   --15. Added 3 new columns: TRX_STATUS_CODE,SET_OF_BOOKS_ID,TRY_ID + support,validations
25   --16. Renamed Combo_ID to code_combination_id
26   --17. 08/21/01: 'validate_fk_ccid', 'validate_fk_ippt_id' has been commented out because the associated OKX_ views does not exist.
27   --18. 02/04/02: Added new columns vendor_invoice_number, pay_group_lookup_code,invoice_type, nettable_yn
28   --19. 30-SEP-06 : Added column legal_entity_id
29   ---------------------------------------------------------------------------
30   -- PROCEDURE validate_id - PostGen-1
31   ---------------------------------------------------------------------------
32   PROCEDURE validate_id
33             ( x_return_status          OUT NOCOPY       VARCHAR2,
34               p_tapv_rec               IN        tapv_rec_type
35             ) IS
36     l_return_status            varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
37   BEGIN
38     x_return_status := OKL_Api.G_RET_STS_SUCCESS;
39     IF(p_tapv_rec.id IS NULL) OR (p_tapv_rec.id = OKL_Api.G_MISS_NUM) THEN
40       OKL_Api.SET_MESSAGE
41             ( p_app_name     => g_app_name,
42               p_msg_name     => g_required_value,
43               p_token1       => g_col_name_token,
44               p_token1_value => 'id'
45             ) ;
46       x_return_status := OKL_Api.G_RET_STS_ERROR;
47         RAISE G_EXCEPTION_HALT_VALIDATION;
48     END IF;
49   EXCEPTION
50     WHEN G_EXCEPTION_HALT_VALIDATION then
51       -- No action necessary. Validation can continue to next attribute/column
52       null;
53     WHEN OTHERS then
54       -- Store SQL Error Message on the Message Stack for caller
55       OKL_Api.SET_MESSAGE
56             ( p_app_name     => g_app_name,
57               p_msg_name     => G_UNEXPECTED_ERROR,
58               p_token1       => G_SQLCODE_TOKEN,
59               p_token1_value => 'sqlcode',
60               p_token2       => G_SQLERRM_TOKEN,
61               p_token2_value => 'sqlerrm'
62             ) ;
63       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
64   END validate_id;
65   ---------------------------------------------------------------------------
66   -- PROCEDURE validate_object_version_number - PostGen-0
67   ---------------------------------------------------------------------------
68   PROCEDURE validate_object_version_number
69             ( x_return_status          OUT NOCOPY       VARCHAR2,
70               p_tapv_rec               IN        tapv_rec_type
71             ) IS
72     l_return_status            varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
73   BEGIN
74     x_return_status := OKL_Api.G_RET_STS_SUCCESS;
75     IF(p_tapv_rec.object_version_number IS NULL)
76        OR (p_tapv_rec.object_version_number = OKL_Api.G_MISS_NUM) THEN
77           OKL_Api.SET_MESSAGE
78                 ( p_app_name     => g_app_name,
79                   p_msg_name     => g_required_value,
80                   p_token1       => g_col_name_token,
81                   p_token1_value => 'object_version_number'
82                 ) ;
83           x_return_status := OKL_Api.G_RET_STS_ERROR;
84           RAISE G_EXCEPTION_HALT_VALIDATION;
85     END IF;
86   EXCEPTION
87     WHEN G_EXCEPTION_HALT_VALIDATION then
88       -- No action necessary. Validation can continue to next attribute/column
89       null;
90     WHEN OTHERS then
91       -- Store SQL Error Message on the Message Stack for caller
92       OKL_Api.SET_MESSAGE
93             ( p_app_name     => g_app_name,
94               p_msg_name     => G_UNEXPECTED_ERROR,
95               p_token1       => G_SQLCODE_TOKEN,
96               p_token1_value => 'sqlcode',
97               p_token2       => G_SQLERRM_TOKEN,
98               p_token2_value => 'sqlerrm'
99             ) ;
100       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
101   END validate_object_version_number;
102   ---------------------------------------------------------------------------
103   -- PROCEDURE validate_org_id - PostGen-5
104   ---------------------------------------------------------------------------
105   PROCEDURE validate_org_id
106             ( x_return_status          OUT NOCOPY       VARCHAR2,
107               p_tapv_rec               IN        tapv_rec_type
108             ) IS
109     l_return_status            varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
110   BEGIN
111     x_return_status := OKL_Api.G_RET_STS_SUCCESS;
112     IF(p_tapv_rec.org_id IS NULL) OR (p_tapv_rec.org_id = OKL_Api.G_MISS_NUM) THEN
113       OKL_Api.SET_MESSAGE
114             ( p_app_name     => g_app_name,
115               p_msg_name     => g_required_value,
116               p_token1       => g_col_name_token,
117               p_token1_value => 'org_id'
118             ) ;
119       x_return_status := OKL_Api.G_RET_STS_ERROR;
120       RAISE G_EXCEPTION_HALT_VALIDATION;
121     ELSE
122       x_return_status := OKL_UTIL.CHECK_ORG_ID(p_tapv_rec.org_id);
123       IF x_return_status <> OKL_Api.G_RET_STS_SUCCESS THEN
124          OKL_Api.SET_MESSAGE
125                ( p_app_name     => g_app_name,
126                  p_msg_name     => g_invalid_value,
127                  p_token1       => g_col_name_token,
128                  p_token1_value => 'org_id'
129                ) ;
130          RAISE G_EXCEPTION_HALT_VALIDATION;
131       END IF;
132     END IF;
133   EXCEPTION
134     WHEN G_EXCEPTION_HALT_VALIDATION then
135       -- No action necessary. Validation can continue to next attribute/column
136       null;
137     WHEN OTHERS then
138       -- Store SQL Error Message on the Message Stack for caller
139       OKL_Api.SET_MESSAGE
140             ( p_app_name     => g_app_name,
141               p_msg_name     => G_UNEXPECTED_ERROR,
142               p_token1       => G_SQLCODE_TOKEN,
143               p_token1_value => 'sqlcode',
144               p_token2       => G_SQLERRM_TOKEN,
145               p_token2_value => 'sqlerrm'
146             ) ;
147       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
148   END validate_org_id;
149   ---------------------------------------------------------------------------
150   -- PROCEDURE validate_amount - PostGen-0
151   ---------------------------------------------------------------------------
152   PROCEDURE validate_amount
153             ( x_return_status          OUT NOCOPY       VARCHAR2
154             , p_tapv_rec               IN        tapv_rec_type
155             ) IS
156     l_return_status            varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
157   BEGIN
158     x_return_status := OKL_Api.G_RET_STS_SUCCESS;
159     IF(p_tapv_rec.amount IS NULL) OR (p_tapv_rec.amount = OKL_Api.G_MISS_NUM) THEN
160       OKL_Api.SET_MESSAGE
161             ( p_app_name     => g_app_name,
162               p_msg_name     => g_required_value,
163               p_token1       => g_col_name_token,
164               p_token1_value => 'amount'
165             ) ;
166       x_return_status := OKL_Api.G_RET_STS_ERROR;
167       RAISE G_EXCEPTION_HALT_VALIDATION;
168     END IF;
169   EXCEPTION
170     WHEN G_EXCEPTION_HALT_VALIDATION then
171       -- No action necessary. Validation can continue to next attribute/column
172       null;
173     WHEN OTHERS then
174       -- Store SQL Error Message on the Message Stack for caller
175       OKL_Api.SET_MESSAGE
176             ( p_app_name     => g_app_name,
177               p_msg_name     => G_UNEXPECTED_ERROR,
178               p_token1       => G_SQLCODE_TOKEN,
179               p_token1_value => 'sqlcode',
180               p_token2       => G_SQLERRM_TOKEN,
181               p_token2_value => 'sqlerrm'
182             ) ;
183       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
184   END validate_amount;
185   ---------------------------------------------------------------------------
186   -- PROCEDURE validate_date_invoiced - PostGen-0
187   ---------------------------------------------------------------------------
188   PROCEDURE validate_date_invoiced
189             ( x_return_status          OUT NOCOPY       VARCHAR2
190             , p_tapv_rec               IN        tapv_rec_type
191             ) IS
192     l_return_status            varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
193   BEGIN
194     x_return_status := OKL_Api.G_RET_STS_SUCCESS;
195     IF(p_tapv_rec.date_invoiced IS NULL) OR
196       (p_tapv_rec.date_invoiced = OKL_Api.G_MISS_DATE) THEN
197       OKL_Api.SET_MESSAGE
198             ( p_app_name     => g_app_name,
199               p_msg_name     => g_required_value,
200               p_token1       => g_col_name_token,
201               p_token1_value => 'date_invoiced'
202             ) ;
203       x_return_status := OKL_Api.G_RET_STS_ERROR;
204       RAISE G_EXCEPTION_HALT_VALIDATION;
205     END IF;
206   EXCEPTION
207     WHEN G_EXCEPTION_HALT_VALIDATION then
208       -- No action necessary. Validation can continue to next attribute/column
209       null;
210     WHEN OTHERS then
211       -- Store SQL Error Message on the Message Stack for caller
212       OKL_Api.SET_MESSAGE
213             ( p_app_name     => g_app_name,
214               p_msg_name     => G_UNEXPECTED_ERROR,
215               p_token1       => G_SQLCODE_TOKEN,
216               p_token1_value => 'sqlcode',
217               p_token2       => G_SQLERRM_TOKEN,
218               p_token2_value => 'sqlerrm'
219             ) ;
220       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
221   END validate_date_invoiced;
222   ---------------------------------------------------------------------------
223   -- PROCEDURE validate_date_entered - PostGen-0
224   ---------------------------------------------------------------------------
225   PROCEDURE validate_date_entered
226             ( x_return_status          OUT NOCOPY       VARCHAR2
227             , p_tapv_rec               IN        tapv_rec_type
228             ) IS
229     l_return_status            varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
230   BEGIN
231     x_return_status := OKL_Api.G_RET_STS_SUCCESS;
232     IF(p_tapv_rec.date_entered IS NULL) OR
233       (p_tapv_rec.date_entered = OKL_Api.G_MISS_DATE) THEN
234       OKL_Api.SET_MESSAGE
235             ( p_app_name     => g_app_name,
236               p_msg_name     => g_required_value,
237               p_token1       => g_col_name_token,
238               p_token1_value => 'date_entered'
239             ) ;
240       x_return_status := OKL_Api.G_RET_STS_ERROR;
241       RAISE G_EXCEPTION_HALT_VALIDATION;
242     END IF;
243   EXCEPTION
244     WHEN G_EXCEPTION_HALT_VALIDATION then
245       -- No action necessary. Validation can continue to next attribute/column
246       null;
247     WHEN OTHERS then
248       -- Store SQL Error Message on the Message Stack for caller
249       OKL_Api.SET_MESSAGE
250             ( p_app_name     => g_app_name,
251               p_msg_name     => G_UNEXPECTED_ERROR,
252               p_token1       => G_SQLCODE_TOKEN,
253               p_token1_value => 'sqlcode',
254               p_token2       => G_SQLERRM_TOKEN,
255               p_token2_value => 'sqlerrm'
256             ) ;
257       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
258   END validate_date_entered;
259   ---------------------------------------------------------------------------
260   -- PROCEDURE validate_wait_vend_inv_yn - PostGen-6
261   ---------------------------------------------------------------------------
262   PROCEDURE validate_wait_vend_inv_yn
263             ( x_return_status          OUT NOCOPY       VARCHAR2,
264               p_tapv_rec               IN        tapv_rec_type
265             ) IS
266     l_return_status            varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
267   BEGIN
268     x_return_status := OKL_Api.G_RET_STS_SUCCESS;
269     IF(p_tapv_rec.wait_vendor_invoice_yn IS NOT NULL) THEN
270       x_return_status := OKL_UTIL.CHECK_DOMAIN_YN(p_tapv_rec.wait_vendor_invoice_yn);
271       IF x_return_status <> OKL_Api.G_RET_STS_SUCCESS THEN
272          OKL_Api.SET_MESSAGE
273                ( p_app_name     => g_app_name,
274                  p_msg_name     => g_invalid_value,
275                  p_token1       => g_col_name_token,
276                  p_token1_value => 'wait_vendor_invoice_yn'
277                ) ;
278          RAISE G_EXCEPTION_HALT_VALIDATION;
279       END IF;
280     END IF;
281   EXCEPTION
282     WHEN G_EXCEPTION_HALT_VALIDATION then
283       -- No action necessary. Validation can continue to next attribute/column
284       null;
285     WHEN OTHERS then
286       -- Store SQL Error Message on the Message Stack for caller
287       OKL_Api.SET_MESSAGE
288             ( p_app_name     => g_app_name,
289               p_msg_name     => G_UNEXPECTED_ERROR,
290               p_token1       => G_SQLCODE_TOKEN,
291               p_token1_value => 'sqlcode',
292               p_token2       => G_SQLERRM_TOKEN,
293               p_token2_value => 'sqlerrm'
294             ) ;
295       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
296   END validate_wait_vend_inv_yn;
297   ---------------------------------------------------------------------------
298   -- PROCEDURE validate_consolidate_yn - PostGen-6
299   ---------------------------------------------------------------------------
300   PROCEDURE validate_consolidate_yn
301             ( x_return_status          OUT NOCOPY       VARCHAR2,
302               p_tapv_rec               IN        tapv_rec_type
303             ) IS
304     l_return_status            varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
305   BEGIN
306     x_return_status := OKL_Api.G_RET_STS_SUCCESS;
307     IF(p_tapv_rec.consolidate_yn IS NOT NULL) THEN
308       x_return_status := OKL_UTIL.CHECK_DOMAIN_YN(p_tapv_rec.consolidate_yn);
309       IF x_return_status <> OKL_Api.G_RET_STS_SUCCESS THEN
310          OKL_Api.SET_MESSAGE
311                ( p_app_name     => g_app_name,
312                  p_msg_name     => g_invalid_value,
313                  p_token1       => g_col_name_token,
314                  p_token1_value => 'consolidate_yn'
315                ) ;
316          RAISE G_EXCEPTION_HALT_VALIDATION;
317       END IF;
318     END IF;
319   EXCEPTION
320     WHEN G_EXCEPTION_HALT_VALIDATION then
321       -- No action necessary. Validation can continue to next attribute/column
322       null;
323     WHEN OTHERS then
324       -- Store SQL Error Message on the Message Stack for caller
325       OKL_Api.SET_MESSAGE
326             ( p_app_name     => g_app_name,
327               p_msg_name     => G_UNEXPECTED_ERROR,
328               p_token1       => G_SQLCODE_TOKEN,
329               p_token1_value => 'sqlcode',
330               p_token2       => G_SQLERRM_TOKEN,
331               p_token2_value => 'sqlerrm'
332             ) ;
333       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
334   END validate_consolidate_yn;
335   ---------------------------------------------------------------------------
336   -- PROCEDURE validate_workflow_yn - PostGen-6
337   ---------------------------------------------------------------------------
338   PROCEDURE validate_workflow_yn
339             ( x_return_status          OUT NOCOPY       VARCHAR2,
340               p_tapv_rec               IN        tapv_rec_type
341             ) IS
342     l_return_status            varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
343   BEGIN
344     x_return_status := OKL_Api.G_RET_STS_SUCCESS;
345     IF(p_tapv_rec.workflow_yn IS NOT NULL) THEN
346       x_return_status := OKL_UTIL.CHECK_DOMAIN_YN(p_tapv_rec.workflow_yn);
347       IF x_return_status <> OKL_Api.G_RET_STS_SUCCESS THEN
348          OKL_Api.SET_MESSAGE
349                ( p_app_name     => g_app_name,
350                  p_msg_name     => g_invalid_value,
351                  p_token1       => g_col_name_token,
352                  p_token1_value => 'workflow_yn'
353                ) ;
354          RAISE G_EXCEPTION_HALT_VALIDATION;
355       END IF;
356     END IF;
357   EXCEPTION
358     WHEN G_EXCEPTION_HALT_VALIDATION then
359       -- No action necessary. Validation can continue to next attribute/column
360       null;
361     WHEN OTHERS then
362       -- Store SQL Error Message on the Message Stack for caller
363       OKL_Api.SET_MESSAGE
364             ( p_app_name     => g_app_name,
365               p_msg_name     => G_UNEXPECTED_ERROR,
366               p_token1       => G_SQLCODE_TOKEN,
367               p_token1_value => 'sqlcode',
368               p_token2       => G_SQLERRM_TOKEN,
369               p_token2_value => 'sqlerrm'
370             ) ;
371       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
372   END validate_workflow_yn;
373   ---------------------------------------------------------------------------
374   -- PROCEDURE validate_payment_method_code - PostGen-8
375   ---------------------------------------------------------------------------
376   PROCEDURE validate_payment_method_code
377             ( x_return_status          OUT NOCOPY       VARCHAR2,
378               p_tapv_rec               IN        tapv_rec_type
379             ) IS
380     l_return_status            varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
381   BEGIN
382     x_return_status := OKL_Api.G_RET_STS_SUCCESS;
383     IF(p_tapv_rec.payment_method_code IS NOT NULL) THEN
384       x_return_status := OKL_UTIL.CHECK_LOOKUP_CODE
385                          ( 'OKL_AP_PAYMENT_METHOD'
386                          , p_tapv_rec.payment_method_code
387                          );
388       IF x_return_status <> OKL_Api.G_RET_STS_SUCCESS THEN
389          OKL_Api.SET_MESSAGE
390                ( p_app_name     => g_app_name,
391                  p_msg_name     => g_invalid_value,
392                  p_token1       => g_col_name_token,
393                  p_token1_value => 'payment_method_code'
394                ) ;
395          RAISE G_EXCEPTION_HALT_VALIDATION;
396       END IF;
397     END IF;
398   EXCEPTION
399     WHEN G_EXCEPTION_HALT_VALIDATION then
400       -- No action necessary. Validation can continue to next attribute/column
401       null;
402     WHEN OTHERS then
403       -- Store SQL Error Message on the Message Stack for caller
404       OKL_Api.SET_MESSAGE
405             ( p_app_name     => g_app_name,
406               p_msg_name     => G_UNEXPECTED_ERROR,
407               p_token1       => G_SQLCODE_TOKEN,
408               p_token1_value => 'sqlcode',
409               p_token2       => G_SQLERRM_TOKEN,
410               p_token2_value => 'sqlerrm'
411             ) ;
412       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
413   END validate_payment_method_code;
414   ---------------------------------------------------------------------------
415   -- PROCEDURE validate_invoice_category_code - PostGen-8
416   ---------------------------------------------------------------------------
417   PROCEDURE validate_invoice_category_code
418             ( x_return_status          OUT NOCOPY       VARCHAR2,
419               p_tapv_rec               IN        tapv_rec_type
420             ) IS
421     l_return_status            varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
422   BEGIN
423     x_return_status := OKL_Api.G_RET_STS_SUCCESS;
424     IF(p_tapv_rec.invoice_category_code IS NOT NULL) THEN
425       x_return_status := OKL_UTIL.CHECK_LOOKUP_CODE
426                          ( 'OKL_AP_INVOICE_CATEGORY'
427                          , p_tapv_rec.invoice_category_code
428                          );
429       IF x_return_status <> OKL_Api.G_RET_STS_SUCCESS THEN
430          OKL_Api.SET_MESSAGE
431                ( p_app_name     => g_app_name,
432                  p_msg_name     => g_invalid_value,
433                  p_token1       => g_col_name_token,
434                  p_token1_value => 'invoice_category_code'
435                ) ;
436          RAISE G_EXCEPTION_HALT_VALIDATION;
437       END IF;
438     END IF;
439   EXCEPTION
440     WHEN G_EXCEPTION_HALT_VALIDATION then
441       -- No action necessary. Validation can continue to next attribute/column
442       null;
443     WHEN OTHERS then
444       -- Store SQL Error Message on the Message Stack for caller
445       OKL_Api.SET_MESSAGE
446             ( p_app_name     => g_app_name,
447               p_msg_name     => G_UNEXPECTED_ERROR,
448               p_token1       => G_SQLCODE_TOKEN,
449               p_token1_value => 'sqlcode',
450               p_token2       => G_SQLERRM_TOKEN,
451               p_token2_value => 'sqlerrm'
452             ) ;
453       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
454   END validate_invoice_category_code;
455 
456  -- 01-NOV-2006 ANSETHUR  R12B - Legal Entity --- Start changes
457   ---------------------------------------------------------------------------
458   -- PROCEDURE validate_le_id
459   ---------------------------------------------------------------------------
460   PROCEDURE validate_le_id
461             ( x_return_status          OUT NOCOPY       VARCHAR2,
462               p_tapv_rec               IN        tapv_rec_type  ) IS
463     l_return_status           number; -- varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
464 
465   BEGIN
466     x_return_status := OKL_Api.G_RET_STS_SUCCESS;
467 
468   IF (p_tapv_rec.legal_entity_id IS NULL)
469      OR (p_tapv_rec.legal_entity_id  = OKL_Api.G_MISS_NUM)
470      THEN
471          OKL_Api.SET_MESSAGE
472              ( p_app_name     => g_app_name,
473                p_msg_name     => g_required_value,
474                p_token1       => g_col_name_token,
475                p_token1_value => 'legal_entity_id'
476              ) ;
477          x_return_status := OKL_Api.G_RET_STS_ERROR;
478          RAISE G_EXCEPTION_HALT_VALIDATION;
479    ELSE
480 
481        l_return_status := OKL_LEGAL_ENTITY_UTIL.check_le_id_exists
482                          ( p_tapv_rec.legal_entity_id);
483 
484        IF l_return_status = 1 then
485           x_return_status := OKL_Api.G_RET_STS_SUCCESS;
486        ELSE
487            x_return_status := OKL_Api.G_RET_STS_ERROR;
488        END IF;
489       IF x_return_status <> OKL_Api.G_RET_STS_SUCCESS THEN
490          OKL_Api.SET_MESSAGE
491                ( p_app_name     => g_app_name,
492                  p_msg_name     => g_invalid_value,
493                  p_token1       => g_col_name_token,
494                  p_token1_value => 'legal_entity_id');
495          RAISE G_EXCEPTION_HALT_VALIDATION;
496        END IF;
497    END IF;
498 
499    EXCEPTION
500     WHEN G_EXCEPTION_HALT_VALIDATION then
501       -- No action necessary. Validation can continue to next attribute/column
502       null;
503     WHEN OTHERS then
504       -- Store SQL Error Message on the Message Stack for caller
505       OKL_Api.SET_MESSAGE
506             ( p_app_name     => g_app_name,
507               p_msg_name     => G_UNEXPECTED_ERROR,
508               p_token1       => G_SQLCODE_TOKEN,
509               p_token1_value => 'sqlcode',
510               p_token2       => G_SQLERRM_TOKEN,
511               p_token2_value => 'sqlerrm'
512             ) ;
513       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
514   END validate_le_id;
515  -- 01-NOV-2006 ANSETHUR  R12B - Legal Entity --- End changes
516   ---------------------------------------------------------------------------
517   -- PROCEDURE validate_funding_type_code - PostGen-8
518   ---------------------------------------------------------------------------
519   PROCEDURE validate_funding_type_code
520             ( x_return_status          OUT NOCOPY       VARCHAR2,
521               p_tapv_rec               IN        tapv_rec_type
522             ) IS
523     l_return_status            varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
524   BEGIN
525     x_return_status := OKL_Api.G_RET_STS_SUCCESS;
526     IF(p_tapv_rec.funding_type_code IS NOT NULL) THEN
527       x_return_status := OKL_UTIL.CHECK_LOOKUP_CODE
528                          ( 'OKL_FUNDING_TYPE'
529                          , p_tapv_rec.funding_type_code
530                          );
531       IF x_return_status <> OKL_Api.G_RET_STS_SUCCESS THEN
532          OKL_Api.SET_MESSAGE
533                ( p_app_name     => g_app_name,
534                  p_msg_name     => g_invalid_value,
535                  p_token1       => g_col_name_token,
536                  p_token1_value => 'funding_type_code'
537                ) ;
538          RAISE G_EXCEPTION_HALT_VALIDATION;
539       END IF;
540     END IF;
541   EXCEPTION
542     WHEN G_EXCEPTION_HALT_VALIDATION then
543       -- No action necessary. Validation can continue to next attribute/column
544       null;
545     WHEN OTHERS then
546       -- Store SQL Error Message on the Message Stack for caller
547       OKL_Api.SET_MESSAGE
548             ( p_app_name     => g_app_name,
549               p_msg_name     => G_UNEXPECTED_ERROR,
550               p_token1       => G_SQLCODE_TOKEN,
551               p_token1_value => 'sqlcode',
552               p_token2       => G_SQLERRM_TOKEN,
553               p_token2_value => 'sqlerrm'
554             ) ;
555       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
556   END validate_funding_type_code;
557   ---------------------------------------------------------------------------
558   -- PROCEDURE validate_currency_code - PostGen-8
559   ---------------------------------------------------------------------------
560   PROCEDURE validate_currency_code
561           ( x_return_status       OUT NOCOPY VARCHAR2
562           , p_tapv_rec            IN  tapv_rec_type
563           ) IS
564    l_return_status            varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
565    l_dummy_var                VARCHAR2(1)    := '?';
566    CURSOR l_fncv_csr IS
567     SELECT 'x'
568 	FROM fnd_currencies_vl
569 	WHERE currency_code = p_tapv_rec.currency_code;
570   BEGIN
571   	   x_return_status := Okl_api.G_RET_STS_SUCCESS;
572 	   --Check Not Null
573 	   IF (p_tapv_rec.currency_code IS NULL)
574        OR (p_tapv_rec.currency_code =  Okl_api.G_MISS_CHAR)
575        THEN
576 	     x_return_status:=Okl_api.G_RET_STS_ERROR;
577 		 --set error message in message stack
578 		 Okl_api.SET_MESSAGE(p_app_name     => G_APP_NAME,
579          	                 p_msg_name     => G_INVALID_VALUE,
580           				     p_token1       => G_COL_NAME_TOKEN,
581 							 p_token1_value => 'CURRENCY_CODE');
582          RAISE G_EXCEPTION_HALT_VALIDATION;
583        END IF;
584        --Check FK column
585 	   OPEN l_fncv_csr;
586 	   FETCH l_fncv_csr INTO l_dummy_var;
587 	   CLOSE l_fncv_csr;
588 	   IF (l_dummy_var = '?') THEN
589 	      x_return_status := Okl_api.G_RET_STS_ERROR;
590 		  Okl_api.SET_MESSAGE(p_app_name		=> G_APP_NAME,
591 			 				  p_msg_name		=> G_NO_PARENT_RECORD,
592 							  p_token1			=> G_COL_NAME_TOKEN,
593 							  p_token1_value	=> 'CURRENCY_CODE',
594 							  p_token2			=> G_CHILD_TABLE_TOKEN,
595 							  p_token2_value	=> G_VIEW,
596 							  p_token3			=> G_PARENT_TABLE_TOKEN,
597 							  p_token3_value	=> 'FND_CURRENCIES_VL');
598 		  RAISE G_EXCEPTION_HALT_VALIDATION;
599 	   END IF;
600   EXCEPTION
601     WHEN G_EXCEPTION_HALT_VALIDATION then
602       -- No action necessary. Validation can continue to next attribute/column
603       null;
604     WHEN OTHERS then
605       -- Store SQL Error Message on the Message Stack for caller
606       OKL_Api.SET_MESSAGE
607             ( p_app_name     => g_app_name,
608               p_msg_name     => G_UNEXPECTED_ERROR,
609               p_token1       => G_SQLCODE_TOKEN,
610               p_token1_value => 'sqlcode',
611               p_token2       => G_SQLERRM_TOKEN,
612               p_token2_value => 'sqlerrm'
613             ) ;
614       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
615       -- verfiy that cursor was closed
616       IF l_fncv_csr%ISOPEN THEN
617          CLOSE l_fncv_csr;
618       END IF;
619   END validate_currency_code;
620   ---------------------------------------------------------------------------
621   -- PROCEDURE validate_fk_ipvs_id - PostGen-2 PostGen-3
622   ---------------------------------------------------------------------------
623   PROCEDURE validate_fk_ipvs_id
624             ( x_return_status          OUT NOCOPY       VARCHAR2,
625               p_tapv_rec               IN        tapv_rec_type
626             ) IS
627     l_return_status            varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
628     l_dummy_var                VARCHAR2(1)    := '?';
629     CURSOR l_ipvsv_csr IS
630       SELECT 'x'
631       FROM OKX_VENDOR_SITES_V
632       WHERE id1 = p_tapv_rec.ipvs_id;
633   BEGIN
634     x_return_status := OKL_Api.G_RET_STS_SUCCESS;
635     IF(p_tapv_rec.ipvs_id IS NULL)
636       OR (p_tapv_rec.ipvs_id = OKL_Api.G_MISS_NUM) THEN
637       OKL_Api.SET_MESSAGE
638             ( p_app_name     => g_app_name,
639               p_msg_name     => g_required_value,
640               p_token1       => g_col_name_token,
641               p_token1_value => 'ipvs_id'
642             ) ;
643       x_return_status := OKL_Api.G_RET_STS_ERROR;
644       RAISE G_EXCEPTION_HALT_VALIDATION;
645     END IF;
646     open  l_ipvsv_csr;
647     fetch l_ipvsv_csr into l_dummy_var;
648     close l_ipvsv_csr;
649     IF l_dummy_var = '?' THEN
650        OKL_Api.SET_MESSAGE
651              ( p_app_name         => g_app_name,
652                p_msg_name         => g_no_parent_record,
653                p_token1           => g_col_name_token,
654                p_token1_value     => 'ipvs_id',
655                p_token2           => g_child_table_token,
656                p_token2_value     => G_VIEW,
657                p_token3           => g_parent_table_token,
658                p_token3_value     => 'OKX_VENDOR_SITES_V');
659         x_return_status := OKL_Api.G_RET_STS_ERROR;
660         RAISE G_EXCEPTION_HALT_VALIDATION;
661     END IF;
662   EXCEPTION
663     WHEN G_EXCEPTION_HALT_VALIDATION then
664       -- No action necessary. Validation can continue to next attribute/column
665       null;
666     WHEN OTHERS then
667       -- Store SQL Error Message on the Message Stack for caller
668       OKL_Api.SET_MESSAGE
669             ( p_app_name     => g_app_name,
670               p_msg_name     => G_UNEXPECTED_ERROR,
671               p_token1       => G_SQLCODE_TOKEN,
672               p_token1_value => 'sqlcode',
673               p_token2       => G_SQLERRM_TOKEN,
674               p_token2_value => 'sqlerrm'
675             ) ;
676       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
677       -- verfiy that cursor was closed
678       IF l_ipvsv_csr%ISOPEN THEN
679          CLOSE l_ipvsv_csr;
680       END IF;
681   END validate_fk_ipvs_id;
682   ---------------------------------------------------------------------------
683   -- PROCEDURE validate_fk_ccid - PostGen-3
684   ---------------------------------------------------------------------------
685   PROCEDURE validate_fk_ccid
686             ( x_return_status          OUT NOCOPY       VARCHAR2,
687               p_tapv_rec               IN        tapv_rec_type
688             ) IS
689     l_return_status            varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
690     l_dummy_var                VARCHAR2(1)    := '?';
691 /****************** OKX View Not Available  *****************
692     CURSOR l_cciv_csr IS
693       SELECT 'x'
694       FROM OKX_CODE_COMBINATIONS_V
695       WHERE id = p_tapv_rec.code_combination_id;
696 ***************** OKX View Not Available  ******************/
697   BEGIN
698        null;
699 /****************** OKX View Not Available  *****************
700     x_return_status := OKL_Api.G_RET_STS_SUCCESS;
701     IF(p_tapv_rec.code_combination_id IS NOT NULL) THEN
702       IF(p_tapv_rec.code_combination_id = OKL_Api.G_MISS_NUM) THEN
703         OKL_Api.SET_MESSAGE
704               ( p_app_name     => g_app_name,
705                 p_msg_name     => g_invalid_value,
706                 p_token1       => g_col_name_token,
707                 p_token1_value => 'code_combination_id'
708               ) ;
709         x_return_status := OKL_Api.G_RET_STS_ERROR;
710         RAISE G_EXCEPTION_HALT_VALIDATION;   -- skip further validations due to error
711       END IF;
712     ELSE
713       RAISE G_EXCEPTION_HALT_VALIDATION;     -- no further validations required when NULL
714     END IF;
715     open  l_cciv_csr;
716     fetch l_cciv_csr into l_dummy_var;
717     close l_cciv_csr;
718     IF l_dummy_var = '?' THEN
719        OKL_Api.SET_MESSAGE
720              ( p_app_name         => g_app_name,
721                p_msg_name         => g_no_parent_record,
722                p_token1           => g_col_name_token,
723                p_token1_value     => 'code_combination_id',
724                p_token2           => g_child_table_token,
725                p_token2_value     => g_view,
726                p_token3           => g_parent_table_token,
727                p_token3_value     => 'OKX_CODE_COMBINATIONS_V');
728         x_return_status := OKL_Api.G_RET_STS_ERROR;
729         RAISE G_EXCEPTION_HALT_VALIDATION;
730     END IF;
731   EXCEPTION
732     WHEN G_EXCEPTION_HALT_VALIDATION then
733       -- No action necessary. Validation can continue to next attribute/column
734       null;
735     WHEN OTHERS then
736       -- Store SQL Error Message on the Message Stack for caller
737       OKL_Api.SET_MESSAGE
738             ( p_app_name     => g_app_name,
739               p_msg_name     => G_UNEXPECTED_ERROR,
740               p_token1       => G_SQLCODE_TOKEN,
741               p_token1_value => 'sqlcode',
742               p_token2       => G_SQLERRM_TOKEN,
743               p_token2_value => 'sqlerrm'
744             ) ;
745       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
746       -- verfiy that cursor was closed
747       IF l_cciv_csr%ISOPEN THEN
748          CLOSE l_cciv_csr;
749       END IF;
750 ***************** OKX View Not Available  ******************/
751   END validate_fk_ccid;
752   ---------------------------------------------------------------------------
753   -- PROCEDURE validate_fk_tap_id_reverses - PostGen-3
754   ---------------------------------------------------------------------------
755   PROCEDURE validate_fk_tap_id_reverses
756             ( x_return_status          OUT NOCOPY       VARCHAR2,
757               p_tapv_rec               IN        tapv_rec_type
758             ) IS
759     l_return_status            varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
760     l_dummy_var                VARCHAR2(1)    := '?';
761     CURSOR l_tapv_csr IS
762       SELECT 'x'
763       FROM OKL_TRX_AP_INVOICES_V
764       WHERE id = p_tapv_rec.tap_id_reverses;
765   BEGIN
766     x_return_status := OKL_Api.G_RET_STS_SUCCESS;
767     IF(p_tapv_rec.tap_id_reverses IS NOT NULL) THEN
768       IF(p_tapv_rec.tap_id_reverses = OKL_Api.G_MISS_NUM) THEN
769         OKL_Api.SET_MESSAGE
770               ( p_app_name     => g_app_name,
771                 p_msg_name     => g_invalid_value,
772                 p_token1       => g_col_name_token,
773                 p_token1_value => 'tap_id_reverses'
774               ) ;
775         x_return_status := OKL_Api.G_RET_STS_ERROR;
776         RAISE G_EXCEPTION_HALT_VALIDATION;   -- skip further validations due to error
777       END IF;
778     ELSE
779       RAISE G_EXCEPTION_HALT_VALIDATION;     -- no further validations required when NULL
780     END IF;
781     open  l_tapv_csr;
782     fetch l_tapv_csr into l_dummy_var;
783     close l_tapv_csr;
784     IF l_dummy_var = '?' THEN
785        OKL_Api.SET_MESSAGE
786              ( p_app_name         => g_app_name,
787                p_msg_name         => g_no_parent_record,
788                p_token1           => g_col_name_token,
789                p_token1_value     => 'tap_id_reverses',
790                p_token2           => g_child_table_token,
791                p_token2_value     => g_view,
792                p_token3           => g_parent_table_token,
793                p_token3_value     => 'OKL_TRX_AP_INVOICES_V');
794         x_return_status := OKL_Api.G_RET_STS_ERROR;
795         RAISE G_EXCEPTION_HALT_VALIDATION;
796     END IF;
797   EXCEPTION
798     WHEN G_EXCEPTION_HALT_VALIDATION then
799       -- No action necessary. Validation can continue to next attribute/column
800       null;
801     WHEN OTHERS then
802       -- Store SQL Error Message on the Message Stack for caller
803       OKL_Api.SET_MESSAGE
804             ( p_app_name     => g_app_name,
805               p_msg_name     => G_UNEXPECTED_ERROR,
806               p_token1       => G_SQLCODE_TOKEN,
807               p_token1_value => 'sqlcode',
808               p_token2       => G_SQLERRM_TOKEN,
809               p_token2_value => 'sqlerrm'
810             ) ;
811       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
812       -- verfiy that cursor was closed
813       IF l_tapv_csr%ISOPEN THEN
814          CLOSE l_tapv_csr;
815       END IF;
816   END validate_fk_tap_id_reverses;
817   ---------------------------------------------------------------------------
818   -- PROCEDURE validate_fk_cplv_id - PostGen-3
819   ---------------------------------------------------------------------------
820   PROCEDURE validate_fk_cplv_id
821             ( x_return_status          OUT NOCOPY       VARCHAR2,
822               p_tapv_rec               IN        tapv_rec_type
823             ) IS
824     l_return_status            varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
825     l_dummy_var                VARCHAR2(1)    := '?';
826     CURSOR l_cplv_csr IS
827       SELECT 'x'
828       FROM OKC_K_PARTY_ROLES_V
829       WHERE id = p_tapv_rec.cplv_id;
830   BEGIN
831     x_return_status := OKL_Api.G_RET_STS_SUCCESS;
832     IF(p_tapv_rec.cplv_id IS NOT NULL) THEN
833       IF(p_tapv_rec.cplv_id = OKL_Api.G_MISS_NUM) THEN
834         OKL_Api.SET_MESSAGE
835               ( p_app_name     => g_app_name,
836                 p_msg_name     => g_invalid_value,
837                 p_token1       => g_col_name_token,
838                 p_token1_value => 'cplv_id'
839               ) ;
840         x_return_status := OKL_Api.G_RET_STS_ERROR;
841         RAISE G_EXCEPTION_HALT_VALIDATION;   -- skip further validations due to error
842       END IF;
843     ELSE
844       RAISE G_EXCEPTION_HALT_VALIDATION;     -- no further validations required when NULL
845     END IF;
846     open  l_cplv_csr;
847     fetch l_cplv_csr into l_dummy_var;
848     close l_cplv_csr;
849     IF l_dummy_var = '?' THEN
850        OKL_Api.SET_MESSAGE
851              ( p_app_name         => g_app_name,
852                p_msg_name         => g_no_parent_record,
853                p_token1           => g_col_name_token,
854                p_token1_value     => 'cplv_id',
855                p_token2           => g_child_table_token,
856                p_token2_value     => g_view,
857                p_token3           => g_parent_table_token,
858                p_token3_value     => 'OKC_K_PARTY_ROLES_V');
859         x_return_status := OKL_Api.G_RET_STS_ERROR;
860         RAISE G_EXCEPTION_HALT_VALIDATION;
861     END IF;
862   EXCEPTION
863     WHEN G_EXCEPTION_HALT_VALIDATION then
864       -- No action necessary. Validation can continue to next attribute/column
865       null;
866     WHEN OTHERS then
867       -- Store SQL Error Message on the Message Stack for caller
868       OKL_Api.SET_MESSAGE
869             ( p_app_name     => g_app_name,
870               p_msg_name     => G_UNEXPECTED_ERROR,
871               p_token1       => G_SQLCODE_TOKEN,
872               p_token1_value => 'sqlcode',
873               p_token2       => G_SQLERRM_TOKEN,
874               p_token2_value => 'sqlerrm'
875             ) ;
876       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
877       -- verfiy that cursor was closed
878       IF l_cplv_csr%ISOPEN THEN
879          CLOSE l_cplv_csr;
880       END IF;
881   END validate_fk_cplv_id;
882   ---------------------------------------------------------------------------
883   -- PROCEDURE validate_fk_qte_id - PostGen-3
884   ---------------------------------------------------------------------------
885   PROCEDURE validate_fk_qte_id
886             ( x_return_status          OUT NOCOPY       VARCHAR2,
887               p_tapv_rec               IN        tapv_rec_type
888             ) IS
889     l_return_status            varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
890     l_dummy_var                VARCHAR2(1)    := '?';
891     CURSOR l_qtev_csr IS
892       SELECT 'x'
893       FROM OKL_TRX_QUOTES_V
894       WHERE id = p_tapv_rec.qte_id;
895   BEGIN
896     x_return_status := OKL_Api.G_RET_STS_SUCCESS;
897     IF(p_tapv_rec.qte_id IS NOT NULL) THEN
898       IF(p_tapv_rec.qte_id = OKL_Api.G_MISS_NUM) THEN
899         OKL_Api.SET_MESSAGE
900               ( p_app_name     => g_app_name,
901                 p_msg_name     => g_invalid_value,
902                 p_token1       => g_col_name_token,
903                 p_token1_value => 'qte_id'
904               ) ;
905         x_return_status := OKL_Api.G_RET_STS_ERROR;
906         RAISE G_EXCEPTION_HALT_VALIDATION;   -- skip further validations due to error
907       END IF;
908     ELSE
909       RAISE G_EXCEPTION_HALT_VALIDATION;     -- no further validations required when NULL
910     END IF;
911     open  l_qtev_csr;
912     fetch l_qtev_csr into l_dummy_var;
913     close l_qtev_csr;
914     IF l_dummy_var = '?' THEN
915        OKL_Api.SET_MESSAGE
916              ( p_app_name         => g_app_name,
917                p_msg_name         => g_no_parent_record,
918                p_token1           => g_col_name_token,
919                p_token1_value     => 'qte_id',
920                p_token2           => g_child_table_token,
921                p_token2_value     => g_view,
922                p_token3           => g_parent_table_token,
923                p_token3_value     => 'OKL_TRX_QUOTES_V');
924         x_return_status := OKL_Api.G_RET_STS_ERROR;
925         RAISE G_EXCEPTION_HALT_VALIDATION;
926     END IF;
927   EXCEPTION
928     WHEN G_EXCEPTION_HALT_VALIDATION then
929       -- No action necessary. Validation can continue to next attribute/column
930       null;
931     WHEN OTHERS then
932       -- Store SQL Error Message on the Message Stack for caller
933       OKL_Api.SET_MESSAGE
934             ( p_app_name     => g_app_name,
935               p_msg_name     => G_UNEXPECTED_ERROR,
936               p_token1       => G_SQLCODE_TOKEN,
937               p_token1_value => 'sqlcode',
938               p_token2       => G_SQLERRM_TOKEN,
939               p_token2_value => 'sqlerrm'
940             ) ;
941       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
942       -- verfiy that cursor was closed
943       IF l_qtev_csr%ISOPEN THEN
944          CLOSE l_qtev_csr;
945       END IF;
946   END validate_fk_qte_id;
947   ---------------------------------------------------------------------------
948   -- PROCEDURE validate_fk_tcn_id - PostGen-3
949   ---------------------------------------------------------------------------
950   PROCEDURE validate_fk_tcn_id
951             ( x_return_status          OUT NOCOPY       VARCHAR2,
952               p_tapv_rec               IN        tapv_rec_type
953             ) IS
954     l_return_status            varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
955     l_dummy_var                VARCHAR2(1)    := '?';
956     CURSOR l_tcnv_csr IS
957       SELECT 'x'
958       FROM OKL_TRX_CONTRACTS
959       WHERE id = p_tapv_rec.tcn_id;
960   BEGIN
961     x_return_status := OKL_Api.G_RET_STS_SUCCESS;
962     IF(p_tapv_rec.tcn_id IS NOT NULL) THEN
963       IF(p_tapv_rec.tcn_id = OKL_Api.G_MISS_NUM) THEN
964         OKL_Api.SET_MESSAGE
965               ( p_app_name     => g_app_name,
966                 p_msg_name     => g_invalid_value,
967                 p_token1       => g_col_name_token,
968                 p_token1_value => 'tcn_id'
969               ) ;
970         x_return_status := OKL_Api.G_RET_STS_ERROR;
971         RAISE G_EXCEPTION_HALT_VALIDATION;   -- skip further validations due to error
972       END IF;
973     ELSE
974       RAISE G_EXCEPTION_HALT_VALIDATION;     -- no further validations required when NULL
975     END IF;
976     open  l_tcnv_csr;
977     fetch l_tcnv_csr into l_dummy_var;
978     close l_tcnv_csr;
979     IF l_dummy_var = '?' THEN
980        OKL_Api.SET_MESSAGE
981              ( p_app_name         => g_app_name,
982                p_msg_name         => g_no_parent_record,
983                p_token1           => g_col_name_token,
984                p_token1_value     => 'tcn_id',
985                p_token2           => g_child_table_token,
986                p_token2_value     => g_view,
987                p_token3           => g_parent_table_token,
988                p_token3_value     => 'OKL_TRX_CONTRACTS');
989         x_return_status := OKL_Api.G_RET_STS_ERROR;
990         RAISE G_EXCEPTION_HALT_VALIDATION;
991     END IF;
992   EXCEPTION
993     WHEN G_EXCEPTION_HALT_VALIDATION then
994       -- No action necessary. Validation can continue to next attribute/column
995       null;
996     WHEN OTHERS then
997       -- Store SQL Error Message on the Message Stack for caller
998       OKL_Api.SET_MESSAGE
999             ( p_app_name     => g_app_name,
1000               p_msg_name     => G_UNEXPECTED_ERROR,
1001               p_token1       => G_SQLCODE_TOKEN,
1002               p_token1_value => 'sqlcode',
1003               p_token2       => G_SQLERRM_TOKEN,
1004               p_token2_value => 'sqlerrm'
1005             ) ;
1006       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
1007       -- verfiy that cursor was closed
1008       IF l_tcnv_csr%ISOPEN THEN
1009          CLOSE l_tcnv_csr;
1010       END IF;
1011   END validate_fk_tcn_id;
1012   ---------------------------------------------------------------------------
1013   -- PROCEDURE validate_fk_ippt_id - PostGen-3
1014   ---------------------------------------------------------------------------
1015   PROCEDURE validate_fk_ippt_id
1016             ( x_return_status          OUT NOCOPY       VARCHAR2,
1017               p_tapv_rec               IN        tapv_rec_type
1018             ) IS
1019     l_return_status            varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
1020     l_dummy_var                VARCHAR2(1)    := '?';
1021 /****************** OKX View Not Available  *****************
1022     CURSOR l_ipptv_csr IS
1023       SELECT 'x'
1024       FROM OKX_PAYABLES_PAYMENT_TERMS_V
1025       WHERE id = p_tapv_rec.ippt_id;
1026 ***************** OKX View Not Available  ******************/
1027   BEGIN
1028        null;
1029 /****************** OKX View Not Available  *****************
1030     x_return_status := OKL_Api.G_RET_STS_SUCCESS;
1031     IF(p_tapv_rec.ippt_id IS NOT NULL) THEN
1032       IF(p_tapv_rec.ippt_id = OKL_Api.G_MISS_NUM) THEN
1033         OKL_Api.SET_MESSAGE
1034               ( p_app_name     => g_app_name,
1035                 p_msg_name     => g_invalid_value,
1036                 p_token1       => g_col_name_token,
1037                 p_token1_value => 'ippt_id'
1038               ) ;
1039         x_return_status := OKL_Api.G_RET_STS_ERROR;
1040         RAISE G_EXCEPTION_HALT_VALIDATION;   -- skip further validations due to error
1041       END IF;
1042     ELSE
1043       RAISE G_EXCEPTION_HALT_VALIDATION;     -- no further validations required when NULL
1044     END IF;
1045     open  l_ipptv_csr;
1046     fetch l_ipptv_csr into l_dummy_var;
1047     close l_ipptv_csr;
1048     IF l_dummy_var = '?' THEN
1049        OKL_Api.SET_MESSAGE
1050              ( p_app_name         => g_app_name,
1051                p_msg_name         => g_no_parent_record,
1052                p_token1           => g_col_name_token,
1053                p_token1_value     => 'ippt_id',
1054                p_token2           => g_child_table_token,
1055                p_token2_value     => g_view,
1056                p_token3           => g_parent_table_token,
1057                p_token3_value     => 'OKX_PAYABLES_PAYMENT_TERMS_V');
1058         x_return_status := OKL_Api.G_RET_STS_ERROR;
1059         RAISE G_EXCEPTION_HALT_VALIDATION;
1060     END IF;
1061   EXCEPTION
1062     WHEN G_EXCEPTION_HALT_VALIDATION then
1063       -- No action necessary. Validation can continue to next attribute/column
1064       null;
1065     WHEN OTHERS then
1066       -- Store SQL Error Message on the Message Stack for caller
1067       OKL_Api.SET_MESSAGE
1068             ( p_app_name     => g_app_name,
1069               p_msg_name     => G_UNEXPECTED_ERROR,
1070               p_token1       => G_SQLCODE_TOKEN,
1071               p_token1_value => 'sqlcode',
1072               p_token2       => G_SQLERRM_TOKEN,
1073               p_token2_value => 'sqlerrm'
1074             ) ;
1075       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
1076       -- verfiy that cursor was closed
1077       IF l_ipptv_csr%ISOPEN THEN
1078          CLOSE l_ipptv_csr;
1079       END IF;
1080 ***************** OKX View Not Available  ******************/
1081   END validate_fk_ippt_id;
1082   ---------------------------------------------------------------------------
1083   -- PROCEDURE validate_fk_art_id - PostGen-3
1084   ---------------------------------------------------------------------------
1085   PROCEDURE validate_fk_art_id
1086             ( x_return_status          OUT NOCOPY       VARCHAR2,
1087               p_tapv_rec               IN        tapv_rec_type
1088             ) IS
1089     l_return_status            varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
1090     l_dummy_var                VARCHAR2(1)    := '?';
1091     CURSOR l_artv_csr IS
1092       SELECT 'x'
1093       FROM OKL_ASSET_RETURNS_V
1094       WHERE id = p_tapv_rec.art_id;
1095   BEGIN
1096     x_return_status := OKL_Api.G_RET_STS_SUCCESS;
1097     IF(p_tapv_rec.art_id IS NOT NULL) THEN
1098       IF(p_tapv_rec.art_id = OKL_Api.G_MISS_NUM) THEN
1099         OKL_Api.SET_MESSAGE
1100               ( p_app_name     => g_app_name,
1101                 p_msg_name     => g_invalid_value,
1102                 p_token1       => g_col_name_token,
1103                 p_token1_value => 'art_id'
1104               ) ;
1105         x_return_status := OKL_Api.G_RET_STS_ERROR;
1106         RAISE G_EXCEPTION_HALT_VALIDATION;   -- skip further validations due to error
1107       END IF;
1108     ELSE
1109       RAISE G_EXCEPTION_HALT_VALIDATION;     -- no further validations required when NULL
1110     END IF;
1111     open  l_artv_csr;
1112     fetch l_artv_csr into l_dummy_var;
1113     close l_artv_csr;
1114     IF l_dummy_var = '?' THEN
1115        OKL_Api.SET_MESSAGE
1116              ( p_app_name         => g_app_name,
1117                p_msg_name         => g_no_parent_record,
1118                p_token1           => g_col_name_token,
1119                p_token1_value     => 'art_id',
1120                p_token2           => g_child_table_token,
1121                p_token2_value     => g_view,
1122                p_token3           => g_parent_table_token,
1123                p_token3_value     => 'OKL_ASSET_RETURNS_V');
1124         x_return_status := OKL_Api.G_RET_STS_ERROR;
1125         RAISE G_EXCEPTION_HALT_VALIDATION;
1126     END IF;
1127   EXCEPTION
1128     WHEN G_EXCEPTION_HALT_VALIDATION then
1129       -- No action necessary. Validation can continue to next attribute/column
1130       null;
1131     WHEN OTHERS then
1132       -- Store SQL Error Message on the Message Stack for caller
1133       OKL_Api.SET_MESSAGE
1134             ( p_app_name     => g_app_name,
1135               p_msg_name     => G_UNEXPECTED_ERROR,
1136               p_token1       => G_SQLCODE_TOKEN,
1137               p_token1_value => 'sqlcode',
1138               p_token2       => G_SQLERRM_TOKEN,
1139               p_token2_value => 'sqlerrm'
1140             ) ;
1141       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
1142       -- verfiy that cursor was closed
1143       IF l_artv_csr%ISOPEN THEN
1144          CLOSE l_artv_csr;
1145       END IF;
1146   END validate_fk_art_id;
1147   ---------------------------------------------------------------------------
1148   -- PROCEDURE validate_fk_khr_id - PostGen-3
1149   ---------------------------------------------------------------------------
1150   -- sjalasut, modified the procedure to validate incomming value of khr_id
1151   -- with okl_k_headers. other validations would continue to exist to check
1152   -- that if a khr_id is being stored, then it has valid fk referenced with
1153   -- okl_k_headers. changes made as part of OKLR12B disbursements project
1154   -- when khr_id is null, no error is reported.
1155   PROCEDURE validate_fk_khr_id
1156             ( x_return_status          OUT NOCOPY       VARCHAR2,
1157               p_tapv_rec               IN        tapv_rec_type
1158             ) IS
1159     l_return_status            varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
1160     l_dummy_var                VARCHAR2(1)    := '?';
1161     CURSOR l_khrv_csr IS
1162       SELECT 'x'
1163       FROM OKL_K_HEADERS
1164       WHERE id = p_tapv_rec.khr_id;
1165   BEGIN
1166     x_return_status := OKL_Api.G_RET_STS_SUCCESS;
1167     IF(p_tapv_rec.khr_id IS NOT NULL) THEN
1168       IF(p_tapv_rec.khr_id = OKL_Api.G_MISS_NUM) THEN
1169         OKL_Api.SET_MESSAGE
1170               ( p_app_name     => g_app_name,
1171                 p_msg_name     => g_invalid_value,
1172                 p_token1       => g_col_name_token,
1173                 p_token1_value => 'khr_id'
1174               ) ;
1175         x_return_status := OKL_Api.G_RET_STS_ERROR;
1176         RAISE G_EXCEPTION_HALT_VALIDATION;   -- skip further validations due to error
1177       ELSE
1178         open  l_khrv_csr;
1179         fetch l_khrv_csr into l_dummy_var;
1180         close l_khrv_csr;
1181         IF l_dummy_var = '?' THEN
1182            OKL_Api.SET_MESSAGE
1183                  ( p_app_name         => g_app_name,
1184                    p_msg_name         => g_no_parent_record,
1185                    p_token1           => g_col_name_token,
1186                    p_token1_value     => 'khr_id',
1187                    p_token2           => g_child_table_token,
1188                    p_token2_value     => g_view,
1189                    p_token3           => g_parent_table_token,
1190                    p_token3_value     => 'OKL_K_HEADERS_V');
1191             x_return_status := OKL_Api.G_RET_STS_ERROR;
1192             RAISE G_EXCEPTION_HALT_VALIDATION;
1193         END IF;
1194       END IF;
1195     END IF;
1196   EXCEPTION
1197     WHEN G_EXCEPTION_HALT_VALIDATION then
1198       -- No action necessary. Validation can continue to next attribute/column
1199       null;
1200     WHEN OTHERS then
1201       -- Store SQL Error Message on the Message Stack for caller
1202       OKL_Api.SET_MESSAGE
1203             ( p_app_name     => g_app_name,
1204               p_msg_name     => G_UNEXPECTED_ERROR,
1205               p_token1       => G_SQLCODE_TOKEN,
1206               p_token1_value => 'sqlcode',
1207               p_token2       => G_SQLERRM_TOKEN,
1208               p_token2_value => 'sqlerrm'
1209             ) ;
1210       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
1211       -- verfiy that cursor was closed
1212       IF l_khrv_csr%ISOPEN THEN
1213          CLOSE l_khrv_csr;
1214       END IF;
1215   END validate_fk_khr_id;
1216   ---------------------------------------------------------------------------
1217   -- PROCEDURE validate_fk_ccf_id - PostGen-3
1218   ---------------------------------------------------------------------------
1219 /* Error View OKL_CSE_K_REFUNDS_V not exists
1220   PROCEDURE validate_fk_ccf_id
1221             ( x_return_status          OUT NOCOPY       VARCHAR2,
1222               p_tapv_rec               IN        tapv_rec_type
1223             ) IS
1224     l_return_status            varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
1225     l_dummy_var                VARCHAR2(1)    := '?';
1226     CURSOR l_ccfv_csr IS
1227       SELECT 'x'
1228       FROM OKL_CSE_K_REFUNDS_V
1229       WHERE id = p_tapv_rec.ccf_id;
1230   BEGIN
1231     x_return_status := OKL_Api.G_RET_STS_SUCCESS;
1232     IF(p_tapv_rec.ccf_id IS NOT NULL) THEN
1233       IF(p_tapv_rec.ccf_id = OKL_Api.G_MISS_NUM) THEN
1234         OKL_Api.SET_MESSAGE
1235               ( p_app_name     => g_app_name,
1236                 p_msg_name     => g_invalid_value,
1237                 p_token1       => g_col_name_token,
1238                 p_token1_value => 'ccf_id'
1239               ) ;
1240         x_return_status := OKL_Api.G_RET_STS_ERROR;
1241         RAISE G_EXCEPTION_HALT_VALIDATION;   -- skip further validations due to error
1242       END IF;
1243     ELSE
1244       RAISE G_EXCEPTION_HALT_VALIDATION;     -- no further validations required when NULL
1245     END IF;
1246     open  l_ccfv_csr;
1247     fetch l_ccfv_csr into l_dummy_var;
1248     close l_ccfv_csr;
1249     IF l_dummy_var = '?' THEN
1250        OKL_Api.SET_MESSAGE
1251              ( p_app_name         => g_app_name,
1252                p_msg_name         => g_no_parent_record,
1253                p_token1           => g_col_name_token,
1254                p_token1_value     => 'ccf_id',
1255                p_token2           => g_child_table_token,
1256                p_token2_value     => g_view,
1257                p_token3           => g_parent_table_token,
1258                p_token3_value     => 'OKL_CSE_K_REFUNDS_V');
1259         x_return_status := OKL_Api.G_RET_STS_ERROR;
1260         RAISE G_EXCEPTION_HALT_VALIDATION;
1261     END IF;
1262   EXCEPTION
1263     WHEN G_EXCEPTION_HALT_VALIDATION then
1264       -- No action necessary. Validation can continue to next attribute/column
1265       null;
1266     WHEN OTHERS then
1267       -- Store SQL Error Message on the Message Stack for caller
1268       OKL_Api.SET_MESSAGE
1269             ( p_app_name     => g_app_name,
1270               p_msg_name     => G_UNEXPECTED_ERROR,
1271               p_token1       => G_SQLCODE_TOKEN,
1272               p_token1_value => 'sqlcode',
1273               p_token2       => G_SQLERRM_TOKEN,
1274               p_token2_value => 'sqlerrm'
1275             ) ;
1276       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
1277       -- verfiy that cursor was closed
1278       IF l_ccfv_csr%ISOPEN THEN
1279          CLOSE l_ccfv_csr;
1280       END IF;
1281   END validate_fk_ccf_id;
1282   ---------------------------------------------------------------------------
1283   -- PROCEDURE validate_fk_cct_id - PostGen-3
1284   ---------------------------------------------------------------------------
1285  Error view not exists
1286   PROCEDURE validate_fk_cct_id
1287             ( x_return_status          OUT NOCOPY       VARCHAR2,
1288               p_tapv_rec               IN        tapv_rec_type
1289             ) IS
1290     l_return_status            varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
1291     l_dummy_var                VARCHAR2(1)    := '?';
1292     CURSOR l_cctv_csr IS
1293       SELECT 'x'
1294       FROM OKL_CSE_COSTS_V
1295       WHERE id = p_tapv_rec.cct_id;
1296   BEGIN
1297     x_return_status := OKL_Api.G_RET_STS_SUCCESS;
1298     IF(p_tapv_rec.cct_id IS NOT NULL) THEN
1299       IF(p_tapv_rec.cct_id = OKL_Api.G_MISS_NUM) THEN
1300         OKL_Api.SET_MESSAGE
1301               ( p_app_name     => g_app_name,
1302                 p_msg_name     => g_invalid_value,
1303                 p_token1       => g_col_name_token,
1304                 p_token1_value => 'cct_id'
1305               ) ;
1306         x_return_status := OKL_Api.G_RET_STS_ERROR;
1307         RAISE G_EXCEPTION_HALT_VALIDATION;   -- skip further validations due to error
1308       END IF;
1309     ELSE
1310       RAISE G_EXCEPTION_HALT_VALIDATION;     -- no further validations required when NULL
1311     END IF;
1312     open  l_cctv_csr;
1313     fetch l_cctv_csr into l_dummy_var;
1314     close l_cctv_csr;
1315     IF l_dummy_var = '?' THEN
1316        OKL_Api.SET_MESSAGE
1317              ( p_app_name         => g_app_name,
1318                p_msg_name         => g_no_parent_record,
1319                p_token1           => g_col_name_token,
1320                p_token1_value     => 'cct_id',
1321                p_token2           => g_child_table_token,
1322                p_token2_value     => g_view,
1323                p_token3           => g_parent_table_token,
1324                p_token3_value     => 'OKL_CSE_COSTS_V');
1325         x_return_status := OKL_Api.G_RET_STS_ERROR;
1326         RAISE G_EXCEPTION_HALT_VALIDATION;
1327     END IF;
1328   EXCEPTION
1329     WHEN G_EXCEPTION_HALT_VALIDATION then
1330       -- No action necessary. Validation can continue to next attribute/column
1331       null;
1332     WHEN OTHERS then
1333       -- Store SQL Error Message on the Message Stack for caller
1334       OKL_Api.SET_MESSAGE
1335             ( p_app_name     => g_app_name,
1336               p_msg_name     => G_UNEXPECTED_ERROR,
1337               p_token1       => G_SQLCODE_TOKEN,
1338               p_token1_value => 'sqlcode',
1339               p_token2       => G_SQLERRM_TOKEN,
1340               p_token2_value => 'sqlerrm'
1341             ) ;
1342       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
1343       -- verfiy that cursor was closed
1344       IF l_cctv_csr%ISOPEN THEN
1345          CLOSE l_cctv_csr;
1346       END IF;
1347   END validate_fk_cct_id;
1348 */
1349   ---------------------------------------------------------------------------
1350   -- PROCEDURE validate_fk_try_id - Post postgen 14,15
1351   ---------------------------------------------------------------------------
1352   PROCEDURE validate_fk_try_id
1353             ( x_return_status          OUT NOCOPY       VARCHAR2,
1354               p_tapv_rec               IN        tapv_rec_type
1355             ) IS
1356     l_return_status            varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
1357     l_dummy_var                VARCHAR2(1)    := '?';
1358     CURSOR l_tryv_csr IS
1359       SELECT 'x'
1360       FROM OKL_TRX_TYPES_V
1361       WHERE id = p_tapv_rec.try_id;
1362   BEGIN
1363     x_return_status := OKL_Api.G_RET_STS_SUCCESS;
1364     IF(p_tapv_rec.try_id IS NULL)
1365       OR (p_tapv_rec.try_id = OKL_Api.G_MISS_NUM) THEN
1366       OKL_Api.SET_MESSAGE
1367             ( p_app_name     => g_app_name,
1368               p_msg_name     => g_required_value,
1369               p_token1       => g_col_name_token,
1370               p_token1_value => 'try_id'
1371             ) ;
1372       x_return_status := OKL_Api.G_RET_STS_ERROR;
1373       RAISE G_EXCEPTION_HALT_VALIDATION;
1374     END IF;
1375     open  l_tryv_csr;
1376     fetch l_tryv_csr into l_dummy_var;
1377     close l_tryv_csr;
1378     IF l_dummy_var = '?' THEN
1379        OKL_Api.SET_MESSAGE
1380              ( p_app_name         => g_app_name,
1381                p_msg_name         => g_no_parent_record,
1382                p_token1           => g_col_name_token,
1383                p_token1_value     => 'try_id',
1384                p_token2           => g_child_table_token,
1385                p_token2_value     => G_VIEW,
1386                p_token3           => g_parent_table_token,
1387                p_token3_value     => 'OKL_TRX_TYPES_V');
1388         x_return_status := OKL_Api.G_RET_STS_ERROR;
1389         RAISE G_EXCEPTION_HALT_VALIDATION;
1390     END IF;
1391   EXCEPTION
1392     WHEN G_EXCEPTION_HALT_VALIDATION then
1393       -- No action necessary. Validation can continue to next attribute/column
1394       null;
1395     WHEN OTHERS then
1396       -- Store SQL Error Message on the Message Stack for caller
1397       OKL_Api.SET_MESSAGE
1398             ( p_app_name     => g_app_name,
1399               p_msg_name     => G_UNEXPECTED_ERROR,
1400               p_token1       => G_SQLCODE_TOKEN,
1401               p_token1_value => 'sqlcode',
1402               p_token2       => G_SQLERRM_TOKEN,
1403               p_token2_value => 'sqlerrm'
1404             ) ;
1405       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
1406       -- verfiy that cursor was closed
1407       IF l_tryv_csr%ISOPEN THEN
1408          CLOSE l_tryv_csr;
1409       END IF;
1410   END validate_fk_try_id;
1411   ---------------------------------------------------------------------------
1412   -- PROCEDURE validate_fk_sob_id  - Post postgen 14,15
1413   ---------------------------------------------------------------------------
1414   PROCEDURE validate_fk_sob_id
1415             ( x_return_status          OUT NOCOPY       VARCHAR2,
1416               p_tapv_rec               IN        tapv_rec_type
1417             ) IS
1418     l_return_status            varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
1419     l_dummy_var                VARCHAR2(1)    := '?';
1420     CURSOR l_sobv_csr IS
1421       SELECT 'x'
1422       FROM GL_LEDGERS_PUBLIC_V
1423       WHERE ledger_id = p_tapv_rec.set_of_books_id;
1424   BEGIN
1425     x_return_status := OKL_Api.G_RET_STS_SUCCESS;
1426     IF(p_tapv_rec.set_of_books_id IS NOT NULL) THEN
1427       IF(p_tapv_rec.set_of_books_id = OKL_Api.G_MISS_NUM) THEN
1428         OKL_Api.SET_MESSAGE
1429               ( p_app_name     => g_app_name,
1430                 p_msg_name     => g_invalid_value,
1431                 p_token1       => g_col_name_token,
1432                 p_token1_value => 'set_of_books_id'
1433               ) ;
1434         x_return_status := OKL_Api.G_RET_STS_ERROR;
1435         RAISE G_EXCEPTION_HALT_VALIDATION;   -- skip further validations due to error
1436       END IF;
1437     ELSE
1438       RAISE G_EXCEPTION_HALT_VALIDATION;     -- no further validations required when NULL
1439     END IF;
1440     open  l_sobv_csr;
1441     fetch l_sobv_csr into l_dummy_var;
1442     close l_sobv_csr;
1443     IF l_dummy_var = '?' THEN
1444        OKL_Api.SET_MESSAGE
1445              ( p_app_name         => g_app_name,
1446                p_msg_name         => g_no_parent_record,
1447                p_token1           => g_col_name_token,
1448                p_token1_value     => 'set_of_books_id',
1449                p_token2           => g_child_table_token,
1450                p_token2_value     => g_view,
1451                p_token3           => g_parent_table_token,
1452                p_token3_value     => 'GL_LEDGERS_PUBLIC_V');
1453         x_return_status := OKL_Api.G_RET_STS_ERROR;
1454         RAISE G_EXCEPTION_HALT_VALIDATION;
1455     END IF;
1456   EXCEPTION
1457     WHEN G_EXCEPTION_HALT_VALIDATION then
1458       -- No action necessary. Validation can continue to next attribute/column
1459       null;
1460     WHEN OTHERS then
1461       -- Store SQL Error Message on the Message Stack for caller
1462       OKL_Api.SET_MESSAGE
1463             ( p_app_name     => g_app_name,
1464               p_msg_name     => G_UNEXPECTED_ERROR,
1465               p_token1       => G_SQLCODE_TOKEN,
1466               p_token1_value => 'sqlcode',
1467               p_token2       => G_SQLERRM_TOKEN,
1468               p_token2_value => 'sqlerrm'
1469             ) ;
1470       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
1471       -- verfiy that cursor was closed
1472       IF l_sobv_csr%ISOPEN THEN
1473          CLOSE l_sobv_csr;
1474       END IF;
1475   END validate_fk_sob_id;
1476 
1477   --Start code added by pgomes on 19-NOV-2002
1478   ---------------------------------------------------------------------------
1479   -- PROCEDURE validate_pox_id
1480   ---------------------------------------------------------------------------
1481   PROCEDURE validate_pox_id (p_tapv_rec IN tapv_rec_type,
1482 			x_return_status OUT NOCOPY VARCHAR2) IS
1483    l_dummy_var VARCHAR2(1) := '0';
1484 
1485    CURSOR l_pox_id_csr IS
1486     SELECT '1'
1487 	FROM OKL_POOL_TRANSACTIONS
1488 	WHERE id = p_tapv_rec.pox_id;
1489 
1490   BEGIN
1491     x_return_status := Okl_Api.G_RET_STS_SUCCESS;
1492 
1493     IF (p_tapv_rec.pox_id IS NOT NULL) THEN
1494       OPEN l_pox_id_csr;
1495       FETCH l_pox_id_csr INTO l_dummy_var;
1496       CLOSE l_pox_id_csr;
1497 
1498       IF (l_dummy_var <> '1') THEN
1499         x_return_status := Okl_Api.G_RET_STS_ERROR;
1500         Okl_Api.SET_MESSAGE(p_app_name => G_APP_NAME,
1501                             p_msg_name => G_NO_PARENT_RECORD,
1502 	                    p_token1 => G_COL_NAME_TOKEN,
1503                             p_token1_value => 'POX_ID_FOR',
1504                             p_token2 => G_CHILD_TABLE_TOKEN,
1505                             p_token2_value => G_VIEW,
1506                             p_token3 => G_PARENT_TABLE_TOKEN,
1507                             p_token3_value => 'OKL_POOL_TRANSACTIONS');
1508 
1509       END IF;
1510     END IF;
1511 
1512   END validate_pox_id;
1513 
1514   --End code added by pgomes on 19-NOV-2002
1515 
1516   ---------------------------------------------------------------------------
1517   -- PROCEDURE validate_trx_status_code - Post postgen 14,15
1518   ---------------------------------------------------------------------------
1519   PROCEDURE validate_trx_status_code
1520             ( x_return_status          OUT NOCOPY       VARCHAR2,
1521               p_tapv_rec               IN        tapv_rec_type
1522             ) IS
1523     l_return_status            varchar2(1)    := OKL_Api.G_RET_STS_SUCCESS;
1524   BEGIN
1525     x_return_status := OKL_Api.G_RET_STS_SUCCESS;
1526     IF (p_tapv_rec.trx_status_code IS NULL)
1527     OR (p_tapv_rec.trx_status_code  = OKL_Api.G_MISS_CHAR)
1528     THEN
1529        OKL_Api.SET_MESSAGE
1530              ( p_app_name     => g_app_name,
1531                p_msg_name     => g_required_value,
1532                p_token1       => g_col_name_token,
1533                p_token1_value => 'trx_status_code'
1534              ) ;
1535        x_return_status := OKL_Api.G_RET_STS_ERROR;
1536        RAISE G_EXCEPTION_HALT_VALIDATION;
1537     END IF;
1538     x_return_status := OKL_UTIL.CHECK_LOOKUP_CODE
1539                        ( 'OKL_TRANSACTION_STATUS'
1540                        , p_tapv_rec.trx_status_code
1541                        );
1542     IF x_return_status <> OKL_Api.G_RET_STS_SUCCESS THEN
1543        OKL_Api.SET_MESSAGE
1544              ( p_app_name     => g_app_name,
1545                p_msg_name     => g_invalid_value,
1546                p_token1       => g_col_name_token,
1547                p_token1_value => 'trx_status_code'
1548              ) ;
1549        RAISE G_EXCEPTION_HALT_VALIDATION;
1550     END IF;
1551   EXCEPTION
1552     WHEN G_EXCEPTION_HALT_VALIDATION then
1553       -- No action necessary. Validation can continue to next attribute/column
1554       null;
1555     WHEN OTHERS then
1556       -- Store SQL Error Message on the Message Stack for caller
1557       OKL_Api.SET_MESSAGE
1558             ( p_app_name     => g_app_name,
1559               p_msg_name     => G_UNEXPECTED_ERROR,
1560               p_token1       => G_SQLCODE_TOKEN,
1561               p_token1_value => 'sqlcode',
1562               p_token2       => G_SQLERRM_TOKEN,
1563               p_token2_value => 'sqlerrm'
1564             ) ;
1565       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
1566   END validate_trx_status_code;
1567   ---------------------------------------------------------------------------
1568   -- PROCEDURE validate_asset_tap_id
1569   ---------------------------------------------------------------------------
1570   PROCEDURE validate_asset_tap_id (p_tapv_rec IN tapv_rec_type,
1571 			x_return_status OUT NOCOPY VARCHAR2) IS
1572    l_dummy_var VARCHAR2(1) := '0';
1573 
1574    CURSOR l_asset_tap_id_csr IS
1575     SELECT '1'
1576 	FROM OKL_TRX_AP_INVOICES_V
1577 	WHERE id = p_tapv_rec.asset_tap_id;
1578 
1579   BEGIN
1580     x_return_status := Okl_Api.G_RET_STS_SUCCESS;
1581 
1582     IF (p_tapv_rec.asset_tap_id IS NOT NULL) THEN
1583       OPEN l_asset_tap_id_csr;
1584       FETCH l_asset_tap_id_csr INTO l_dummy_var;
1585       CLOSE l_asset_tap_id_csr;
1586 
1587       IF (l_dummy_var <> '1') THEN
1588         x_return_status := Okl_Api.G_RET_STS_ERROR;
1589         Okl_Api.SET_MESSAGE(p_app_name => G_APP_NAME,
1590                             p_msg_name => G_NO_PARENT_RECORD,
1591                             p_token1 => G_COL_NAME_TOKEN,
1592                             p_token1_value => 'ASSET_TAP_ID',
1593                             p_token2 => G_CHILD_TABLE_TOKEN,
1594                             p_token2_value => G_VIEW,
1595                             p_token3 => G_PARENT_TABLE_TOKEN,
1596                             p_token3_value => 'OKL_TRX_AP_INVOICES_V');
1597 
1598       END IF;
1599     END IF;
1600 
1601   END validate_asset_tap_id;
1602 
1603   ---------------------------------------------------------------------------
1604   -- FUNCTION get_seq_id
1605   ---------------------------------------------------------------------------
1606   FUNCTION get_seq_id RETURN NUMBER IS
1607   BEGIN
1608     RETURN(OKC_p_util.raw_to_number(sys_guid()));
1609   END get_seq_id;
1610   ---------------------------------------------------------------------------
1611   -- PROCEDURE qc
1612   ---------------------------------------------------------------------------
1613   PROCEDURE qc IS
1614   BEGIN
1615     null;
1616   END qc;
1617   ---------------------------------------------------------------------------
1618   -- PROCEDURE change_version
1619   ---------------------------------------------------------------------------
1620   PROCEDURE change_version IS
1621   BEGIN
1622     null;
1623   END change_version;
1624   ---------------------------------------------------------------------------
1625   -- PROCEDURE api_copy
1626   ---------------------------------------------------------------------------
1627   PROCEDURE api_copy IS
1628   BEGIN
1629     null;
1630   END api_copy;
1631   ---------------------------------------------------------------------------
1632   -- PROCEDURE add_language
1633   ---------------------------------------------------------------------------
1634   PROCEDURE add_language IS
1635   BEGIN
1636     DELETE FROM OKL_TRX_AP_INVOICES_TL T
1637      WHERE NOT EXISTS (
1638         SELECT NULL
1639           FROM OKL_TRX_AP_INVS_ALL_B B
1640          WHERE B.ID = T.ID
1641          AND T.LANGUAGE = USERENV('LANG')
1642         );
1643     UPDATE OKL_TRX_AP_INVOICES_TL T SET (
1644         DESCRIPTION) = (SELECT
1645                                   B.DESCRIPTION
1646                                 FROM OKL_TRX_AP_INVOICES_TL B
1647                                WHERE B.ID = T.ID
1648                                  AND B.LANGUAGE = T.SOURCE_LANG)
1649       WHERE (
1650               T.ID,
1651               T.LANGUAGE)
1652           IN (SELECT
1653                   SUBT.ID,
1654                   SUBT.LANGUAGE
1655                 FROM OKL_TRX_AP_INVOICES_TL SUBB, OKL_TRX_AP_INVOICES_TL SUBT
1656                WHERE SUBB.ID = SUBT.ID
1657                  AND SUBB.LANGUAGE = SUBT.SOURCE_LANG
1658                  AND (SUBB.DESCRIPTION <> SUBT.DESCRIPTION
1659                       OR (SUBB.DESCRIPTION IS NULL AND SUBT.DESCRIPTION IS NOT NULL)
1660                       OR (SUBB.DESCRIPTION IS NOT NULL AND SUBT.DESCRIPTION IS NULL)
1661               ));
1662     INSERT INTO OKL_TRX_AP_INVOICES_TL (
1663         ID,
1664         LANGUAGE,
1665         SOURCE_LANG,
1666         SFWT_FLAG,
1667         DESCRIPTION,
1668         CREATED_BY,
1669         CREATION_DATE,
1670         LAST_UPDATED_BY,
1671         LAST_UPDATE_DATE,
1672         LAST_UPDATE_LOGIN)
1673       SELECT
1674             B.ID,
1675             L.LANGUAGE_CODE,
1676             B.SOURCE_LANG,
1677             B.SFWT_FLAG,
1678             B.DESCRIPTION,
1679             B.CREATED_BY,
1680             B.CREATION_DATE,
1681             B.LAST_UPDATED_BY,
1682             B.LAST_UPDATE_DATE,
1683             B.LAST_UPDATE_LOGIN
1684         FROM OKL_TRX_AP_INVOICES_TL B, FND_LANGUAGES L
1685        WHERE L.INSTALLED_FLAG IN ('I', 'B')
1686          AND B.LANGUAGE = USERENV('LANG')
1687          AND NOT EXISTS(
1688                     SELECT NULL
1689                       FROM OKL_TRX_AP_INVOICES_TL T
1690                      WHERE T.ID = B.ID
1691                        AND T.LANGUAGE = L.LANGUAGE_CODE
1692                     );
1693   END add_language;
1694   ---------------------------------------------------------------------------
1695   -- FUNCTION get_rec for: OKL_TRX_AP_INVOICES_B
1696   ---------------------------------------------------------------------------
1697   FUNCTION get_rec (
1698     p_tap_rec                      IN tap_rec_type,
1699     x_no_data_found                OUT NOCOPY BOOLEAN
1700   ) RETURN tap_rec_type IS
1701     CURSOR tap_pk_csr (p_id                 IN NUMBER) IS
1702     SELECT
1703             ID,
1704             CURRENCY_CODE,
1705             PAYMENT_METHOD_CODE,
1706             FUNDING_TYPE_CODE,
1707             INVOICE_CATEGORY_CODE,
1708             IPVS_ID,
1709             KHR_ID,
1710             CCF_ID,
1711             CCT_ID,
1712             CPLV_ID,
1713             POX_ID,
1714             IPPT_ID,
1715             code_combination_id,
1716             QTE_ID,
1717             ART_ID,
1718             TCN_ID,
1719             TAP_ID_REVERSES,
1720             DATE_ENTERED,
1721             DATE_INVOICED,
1722             AMOUNT,
1723             TRX_STATUS_CODE,  -- Post Postgen 14,15
1724             SET_OF_BOOKS_ID,  -- Post Postgen 14,15
1725             TRY_ID,           -- Post Postgen 14,15
1726             OBJECT_VERSION_NUMBER,
1727             DATE_REQUISITION,
1728             DATE_FUNDING_APPROVED,
1729             INVOICE_NUMBER,
1730             DATE_GL,
1731             WORKFLOW_YN,
1732             CONSOLIDATE_YN,
1733             WAIT_VENDOR_INVOICE_YN,
1734             REQUEST_ID,
1735             PROGRAM_APPLICATION_ID,
1736             PROGRAM_ID,
1737             PROGRAM_UPDATE_DATE,
1738             ORG_ID,
1739             CURRENCY_CONVERSION_TYPE,
1740             CURRENCY_CONVERSION_RATE,
1741             CURRENCY_CONVERSION_DATE,
1742             VENDOR_ID,
1743             ATTRIBUTE_CATEGORY,
1744             ATTRIBUTE1,
1745             ATTRIBUTE2,
1746             ATTRIBUTE3,
1747             ATTRIBUTE4,
1748             ATTRIBUTE5,
1749             ATTRIBUTE6,
1750             ATTRIBUTE7,
1751             ATTRIBUTE8,
1752             ATTRIBUTE9,
1753             ATTRIBUTE10,
1754             ATTRIBUTE11,
1755             ATTRIBUTE12,
1756             ATTRIBUTE13,
1757             ATTRIBUTE14,
1758             ATTRIBUTE15,
1759             CREATED_BY,
1760             CREATION_DATE,
1761             LAST_UPDATED_BY,
1762             LAST_UPDATE_DATE,
1763             LAST_UPDATE_LOGIN,
1764             INVOICE_TYPE,
1765             PAY_GROUP_LOOKUP_CODE,
1766             VENDOR_INVOICE_NUMBER,
1767             NETTABLE_YN,
1768             ASSET_TAP_ID,
1769  -- 30-OCT-2006 ANSETHUR  R12B - Legal Entity
1770             legal_entity_id
1771             ,transaction_date
1772       FROM Okl_Trx_Ap_Invoices_B
1773      WHERE okl_trx_ap_invoices_b.id = p_id;
1774     l_tap_pk                       tap_pk_csr%ROWTYPE;
1775     l_tap_rec                      tap_rec_type;
1776   BEGIN
1777     x_no_data_found := TRUE;
1778     -- Get current database values
1779     OPEN tap_pk_csr (p_tap_rec.id);
1780     FETCH tap_pk_csr INTO
1781               l_tap_rec.ID,
1782               l_tap_rec.CURRENCY_CODE,
1783               l_tap_rec.PAYMENT_METHOD_CODE,
1784               l_tap_rec.FUNDING_TYPE_CODE,
1785               l_tap_rec.INVOICE_CATEGORY_CODE,
1786               l_tap_rec.IPVS_ID,
1787               l_tap_rec.KHR_ID,
1788               l_tap_rec.CCF_ID,
1789               l_tap_rec.CCT_ID,
1790               l_tap_rec.CPLV_ID,
1791               l_tap_rec.POX_ID,
1792               l_tap_rec.IPPT_ID,
1793               l_tap_rec.code_combination_id,
1794               l_tap_rec.QTE_ID,
1795               l_tap_rec.ART_ID,
1796               l_tap_rec.TCN_ID,
1797               l_tap_rec.TAP_ID_REVERSES,
1798               l_tap_rec.DATE_ENTERED,
1799               l_tap_rec.DATE_INVOICED,
1800               l_tap_rec.AMOUNT,
1801               l_tap_rec.TRX_STATUS_CODE,  -- Post Postgen 14,15
1802               l_tap_rec.SET_OF_BOOKS_ID,  -- Post Postgen 14,15
1803               l_tap_rec.TRY_ID,           -- Post Postgen 14,15
1804               l_tap_rec.OBJECT_VERSION_NUMBER,
1805               l_tap_rec.DATE_REQUISITION,
1806               l_tap_rec.DATE_FUNDING_APPROVED,
1807               l_tap_rec.INVOICE_NUMBER,
1808               l_tap_rec.DATE_GL,
1809               l_tap_rec.WORKFLOW_YN,
1810               l_tap_rec.CONSOLIDATE_YN,
1811               l_tap_rec.WAIT_VENDOR_INVOICE_YN,
1812               l_tap_rec.REQUEST_ID,
1813               l_tap_rec.PROGRAM_APPLICATION_ID,
1814               l_tap_rec.PROGRAM_ID,
1815               l_tap_rec.PROGRAM_UPDATE_DATE,
1816               l_tap_rec.ORG_ID,
1817               l_tap_rec.CURRENCY_CONVERSION_TYPE,
1818               l_tap_rec.CURRENCY_CONVERSION_RATE,
1819               l_tap_rec.CURRENCY_CONVERSION_DATE,
1820               l_tap_rec.VENDOR_ID,
1821               l_tap_rec.ATTRIBUTE_CATEGORY,
1822               l_tap_rec.ATTRIBUTE1,
1823               l_tap_rec.ATTRIBUTE2,
1824               l_tap_rec.ATTRIBUTE3,
1825               l_tap_rec.ATTRIBUTE4,
1826               l_tap_rec.ATTRIBUTE5,
1827               l_tap_rec.ATTRIBUTE6,
1828               l_tap_rec.ATTRIBUTE7,
1829               l_tap_rec.ATTRIBUTE8,
1830               l_tap_rec.ATTRIBUTE9,
1831               l_tap_rec.ATTRIBUTE10,
1832               l_tap_rec.ATTRIBUTE11,
1833               l_tap_rec.ATTRIBUTE12,
1834               l_tap_rec.ATTRIBUTE13,
1835               l_tap_rec.ATTRIBUTE14,
1836               l_tap_rec.ATTRIBUTE15,
1837               l_tap_rec.CREATED_BY,
1838               l_tap_rec.CREATION_DATE,
1839               l_tap_rec.LAST_UPDATED_BY,
1840               l_tap_rec.LAST_UPDATE_DATE,
1841               l_tap_rec.LAST_UPDATE_LOGIN,
1842               l_tap_rec.INVOICE_TYPE,
1843               l_tap_rec.PAY_GROUP_LOOKUP_CODE,
1844               l_tap_rec.VENDOR_INVOICE_NUMBER,
1845               l_tap_rec.NETTABLE_YN,
1846               l_tap_rec.asset_tap_id,
1847  -- 30-OCT-2006 ANSETHUR  R12B - Legal Entity
1848               l_tap_rec.legal_entity_id
1849               ,l_tap_rec.transaction_date;
1850     x_no_data_found := tap_pk_csr%NOTFOUND;
1851     CLOSE tap_pk_csr;
1852     RETURN(l_tap_rec);
1853   END get_rec;
1854   FUNCTION get_rec (
1855     p_tap_rec                      IN tap_rec_type
1856   ) RETURN tap_rec_type IS
1857     l_row_notfound                 BOOLEAN := TRUE;
1858   BEGIN
1859     RETURN(get_rec(p_tap_rec, l_row_notfound));
1860   END get_rec;
1861   ---------------------------------------------------------------------------
1862   -- FUNCTION get_rec for: OKL_TRX_AP_INVOICES_TL
1863   ---------------------------------------------------------------------------
1864   FUNCTION get_rec (
1865     p_okl_trx_ap_invoices_tl_rec   IN OklTrxApInvoicesTlRecType,
1866     x_no_data_found                OUT NOCOPY BOOLEAN
1867   ) RETURN OklTrxApInvoicesTlRecType IS
1868     CURSOR okl_trx_ap_invoices_tl_pk_csr (p_id                 IN NUMBER,
1869                                           p_language           IN VARCHAR2) IS
1870     SELECT
1871             ID,
1872             LANGUAGE,
1873             SOURCE_LANG,
1874             SFWT_FLAG,
1875             DESCRIPTION,
1876             CREATED_BY,
1877             CREATION_DATE,
1878             LAST_UPDATED_BY,
1879             LAST_UPDATE_DATE,
1880             LAST_UPDATE_LOGIN
1881       FROM Okl_Trx_Ap_Invoices_Tl
1882      WHERE okl_trx_ap_invoices_tl.id = p_id
1883        AND okl_trx_ap_invoices_tl.language = p_language;
1884     l_okl_trx_ap_invoices_tl_pk    okl_trx_ap_invoices_tl_pk_csr%ROWTYPE;
1885     l_okl_trx_ap_invoices_tl_rec   OklTrxApInvoicesTlRecType;
1886   BEGIN
1887     x_no_data_found := TRUE;
1888     -- Get current database values
1889     OPEN okl_trx_ap_invoices_tl_pk_csr (p_okl_trx_ap_invoices_tl_rec.id,
1890                                         p_okl_trx_ap_invoices_tl_rec.language);
1891     FETCH okl_trx_ap_invoices_tl_pk_csr INTO
1892               l_okl_trx_ap_invoices_tl_rec.ID,
1893               l_okl_trx_ap_invoices_tl_rec.LANGUAGE,
1894               l_okl_trx_ap_invoices_tl_rec.SOURCE_LANG,
1895               l_okl_trx_ap_invoices_tl_rec.SFWT_FLAG,
1896               l_okl_trx_ap_invoices_tl_rec.DESCRIPTION,
1897               l_okl_trx_ap_invoices_tl_rec.CREATED_BY,
1898               l_okl_trx_ap_invoices_tl_rec.CREATION_DATE,
1899               l_okl_trx_ap_invoices_tl_rec.LAST_UPDATED_BY,
1900               l_okl_trx_ap_invoices_tl_rec.LAST_UPDATE_DATE,
1901               l_okl_trx_ap_invoices_tl_rec.LAST_UPDATE_LOGIN;
1902     x_no_data_found := okl_trx_ap_invoices_tl_pk_csr%NOTFOUND;
1903     CLOSE okl_trx_ap_invoices_tl_pk_csr;
1904     RETURN(l_okl_trx_ap_invoices_tl_rec);
1905   END get_rec;
1906   FUNCTION get_rec (
1907     p_okl_trx_ap_invoices_tl_rec   IN OklTrxApInvoicesTlRecType
1908   ) RETURN OklTrxApInvoicesTlRecType IS
1909     l_row_notfound                 BOOLEAN := TRUE;
1910   BEGIN
1911     RETURN(get_rec(p_okl_trx_ap_invoices_tl_rec, l_row_notfound));
1912   END get_rec;
1913   ---------------------------------------------------------------------------
1914   -- FUNCTION get_rec for: OKL_TRX_AP_INVOICES_V
1915   ---------------------------------------------------------------------------
1916   FUNCTION get_rec (
1917     p_tapv_rec                     IN tapv_rec_type,
1918     x_no_data_found                OUT NOCOPY BOOLEAN
1919   ) RETURN tapv_rec_type IS
1920     CURSOR okl_tapv_pk_csr (p_id                 IN NUMBER) IS
1921     SELECT
1922             ID,
1923             OBJECT_VERSION_NUMBER,
1924             SFWT_FLAG,
1925             CCT_ID,
1926             CURRENCY_CODE,
1927             CCF_ID,
1928             FUNDING_TYPE_CODE,
1929             KHR_ID,
1930             ART_ID,
1931             TAP_ID_REVERSES,
1932             IPPT_ID,
1933             code_combination_id,
1934             IPVS_ID,
1935             TCN_ID,
1936             QTE_ID,
1937             INVOICE_CATEGORY_CODE,
1938             PAYMENT_METHOD_CODE,
1939             CPLV_ID,
1940             POX_ID,
1941             AMOUNT,
1942             DATE_INVOICED,
1943             INVOICE_NUMBER,
1944             DATE_FUNDING_APPROVED,
1945             DATE_GL,
1946             WORKFLOW_YN,
1947             CONSOLIDATE_YN,
1948             WAIT_VENDOR_INVOICE_YN,
1949             DATE_REQUISITION,
1950             DESCRIPTION,
1951             CURRENCY_CONVERSION_TYPE,
1952             CURRENCY_CONVERSION_RATE,
1953             CURRENCY_CONVERSION_DATE,
1954             VENDOR_ID,
1955             ATTRIBUTE_CATEGORY,
1956             ATTRIBUTE1,
1957             ATTRIBUTE2,
1958             ATTRIBUTE3,
1959             ATTRIBUTE4,
1960             ATTRIBUTE5,
1961             ATTRIBUTE6,
1962             ATTRIBUTE7,
1963             ATTRIBUTE8,
1964             ATTRIBUTE9,
1965             ATTRIBUTE10,
1966             ATTRIBUTE11,
1967             ATTRIBUTE12,
1968             ATTRIBUTE13,
1969             ATTRIBUTE14,
1970             ATTRIBUTE15,
1971             DATE_ENTERED,
1972             TRX_STATUS_CODE,  -- Post Postgen 14,15
1973             SET_OF_BOOKS_ID,  -- Post Postgen 14,15
1974             TRY_ID,           -- Post Postgen 14,15
1975             REQUEST_ID,
1976             PROGRAM_APPLICATION_ID,
1977             PROGRAM_ID,
1978             PROGRAM_UPDATE_DATE,
1979             ORG_ID,
1980             CREATED_BY,
1981             CREATION_DATE,
1982             LAST_UPDATED_BY,
1983             LAST_UPDATE_DATE,
1984             LAST_UPDATE_LOGIN,
1985             INVOICE_TYPE,
1986             PAY_GROUP_LOOKUP_CODE,
1987             VENDOR_INVOICE_NUMBER,
1988             NETTABLE_YN,
1989             ASSET_TAP_ID,
1990  -- 30-OCT-2006 ANSETHUR  R12B - Legal Entity
1991               legal_entity_id
1992               ,transaction_date
1993       FROM Okl_Trx_Ap_Invoices_V
1994      WHERE okl_trx_ap_invoices_v.id = p_id;
1995     l_okl_tapv_pk                  okl_tapv_pk_csr%ROWTYPE;
1996     l_tapv_rec                     tapv_rec_type;
1997   BEGIN
1998     x_no_data_found := TRUE;
1999     -- Get current database values
2000     OPEN okl_tapv_pk_csr (p_tapv_rec.id);
2001     FETCH okl_tapv_pk_csr INTO
2002               l_tapv_rec.ID,
2003               l_tapv_rec.OBJECT_VERSION_NUMBER,
2004               l_tapv_rec.SFWT_FLAG,
2005               l_tapv_rec.CCT_ID,
2006               l_tapv_rec.CURRENCY_CODE,
2007               l_tapv_rec.CCF_ID,
2008               l_tapv_rec.FUNDING_TYPE_CODE,
2009               l_tapv_rec.KHR_ID,
2010               l_tapv_rec.ART_ID,
2011               l_tapv_rec.TAP_ID_REVERSES,
2012               l_tapv_rec.IPPT_ID,
2013               l_tapv_rec.code_combination_id,
2014               l_tapv_rec.IPVS_ID,
2015               l_tapv_rec.TCN_ID,
2016               l_tapv_rec.QTE_ID,
2017               l_tapv_rec.INVOICE_CATEGORY_CODE,
2018               l_tapv_rec.PAYMENT_METHOD_CODE,
2019               l_tapv_rec.CPLV_ID,
2020               l_tapv_rec.POX_ID,
2021               l_tapv_rec.AMOUNT,
2022               l_tapv_rec.DATE_INVOICED,
2023               l_tapv_rec.INVOICE_NUMBER,
2024               l_tapv_rec.DATE_FUNDING_APPROVED,
2025               l_tapv_rec.DATE_GL,
2026               l_tapv_rec.WORKFLOW_YN,
2027               l_tapv_rec.CONSOLIDATE_YN,
2028               l_tapv_rec.WAIT_VENDOR_INVOICE_YN,
2029               l_tapv_rec.DATE_REQUISITION,
2030               l_tapv_rec.DESCRIPTION,
2031               l_tapv_rec.CURRENCY_CONVERSION_TYPE,
2032               l_tapv_rec.CURRENCY_CONVERSION_RATE,
2033               l_tapv_rec.CURRENCY_CONVERSION_DATE,
2034               l_tapv_rec.VENDOR_ID,
2035               l_tapv_rec.ATTRIBUTE_CATEGORY,
2036               l_tapv_rec.ATTRIBUTE1,
2037               l_tapv_rec.ATTRIBUTE2,
2038               l_tapv_rec.ATTRIBUTE3,
2039               l_tapv_rec.ATTRIBUTE4,
2040               l_tapv_rec.ATTRIBUTE5,
2041               l_tapv_rec.ATTRIBUTE6,
2042               l_tapv_rec.ATTRIBUTE7,
2043               l_tapv_rec.ATTRIBUTE8,
2044               l_tapv_rec.ATTRIBUTE9,
2045               l_tapv_rec.ATTRIBUTE10,
2046               l_tapv_rec.ATTRIBUTE11,
2047               l_tapv_rec.ATTRIBUTE12,
2048               l_tapv_rec.ATTRIBUTE13,
2049               l_tapv_rec.ATTRIBUTE14,
2050               l_tapv_rec.ATTRIBUTE15,
2051               l_tapv_rec.DATE_ENTERED,
2052               l_tapv_rec.TRX_STATUS_CODE,  -- Post Postgen 14,15
2053               l_tapv_rec.SET_OF_BOOKS_ID,  -- Post Postgen 14,15
2054               l_tapv_rec.TRY_ID,           -- Post Postgen 14,15
2055               l_tapv_rec.REQUEST_ID,
2056               l_tapv_rec.PROGRAM_APPLICATION_ID,
2057               l_tapv_rec.PROGRAM_ID,
2058               l_tapv_rec.PROGRAM_UPDATE_DATE,
2059               l_tapv_rec.ORG_ID,
2060               l_tapv_rec.CREATED_BY,
2061               l_tapv_rec.CREATION_DATE,
2062               l_tapv_rec.LAST_UPDATED_BY,
2063               l_tapv_rec.LAST_UPDATE_DATE,
2064               l_tapv_rec.LAST_UPDATE_LOGIN,
2065               l_tapv_rec.INVOICE_TYPE,
2066               l_tapv_rec.PAY_GROUP_LOOKUP_CODE,
2067               l_tapv_rec.VENDOR_INVOICE_NUMBER,
2068               l_tapv_rec.NETTABLE_YN,
2069               l_tapv_rec.asset_tap_id,
2070  -- 30-OCT-2006 ANSETHUR  R12B - Legal Entity
2071               l_tapv_rec.legal_entity_id
2072               ,l_tapv_rec.transaction_date;
2073     x_no_data_found := okl_tapv_pk_csr%NOTFOUND;
2074     CLOSE okl_tapv_pk_csr;
2075     RETURN(l_tapv_rec);
2076   END get_rec;
2077   FUNCTION get_rec (
2078     p_tapv_rec                     IN tapv_rec_type
2079   ) RETURN tapv_rec_type IS
2080     l_row_notfound                 BOOLEAN := TRUE;
2081   BEGIN
2082     RETURN(get_rec(p_tapv_rec, l_row_notfound));
2083   END get_rec;
2084   -----------------------------------------------------------
2085   -- FUNCTION null_out_defaults for: OKL_TRX_AP_INVOICES_V --
2086   -----------------------------------------------------------
2087   FUNCTION null_out_defaults (
2088     p_tapv_rec	IN tapv_rec_type
2089   ) RETURN tapv_rec_type IS
2090     l_tapv_rec	tapv_rec_type := p_tapv_rec;
2091   BEGIN
2092     IF (l_tapv_rec.object_version_number = OKL_API.G_MISS_NUM) THEN
2093       l_tapv_rec.object_version_number := NULL;
2094     END IF;
2095     IF (l_tapv_rec.sfwt_flag = OKL_API.G_MISS_CHAR) THEN
2096       l_tapv_rec.sfwt_flag := NULL;
2097     END IF;
2098     IF (l_tapv_rec.cct_id = OKL_API.G_MISS_NUM) THEN
2099       l_tapv_rec.cct_id := NULL;
2100     END IF;
2101     IF (l_tapv_rec.currency_code = OKL_API.G_MISS_CHAR) THEN
2102       l_tapv_rec.currency_code := NULL;
2103     END IF;
2104     IF (l_tapv_rec.ccf_id = OKL_API.G_MISS_NUM) THEN
2105       l_tapv_rec.ccf_id := NULL;
2106     END IF;
2107     IF (l_tapv_rec.funding_type_code = OKL_API.G_MISS_CHAR) THEN
2108       l_tapv_rec.funding_type_code := NULL;
2109     END IF;
2110     IF (l_tapv_rec.khr_id = OKL_API.G_MISS_NUM) THEN
2111       l_tapv_rec.khr_id := NULL;
2112     END IF;
2113     IF (l_tapv_rec.art_id = OKL_API.G_MISS_NUM) THEN
2114       l_tapv_rec.art_id := NULL;
2115     END IF;
2116     IF (l_tapv_rec.tap_id_reverses = OKL_API.G_MISS_NUM) THEN
2117       l_tapv_rec.tap_id_reverses := NULL;
2118     END IF;
2119     IF (l_tapv_rec.ippt_id = OKL_API.G_MISS_NUM) THEN
2120       l_tapv_rec.ippt_id := NULL;
2121     END IF;
2122     IF (l_tapv_rec.code_combination_id = OKL_API.G_MISS_NUM) THEN
2123       l_tapv_rec.code_combination_id := NULL;
2124     END IF;
2125     IF (l_tapv_rec.ipvs_id = OKL_API.G_MISS_NUM) THEN
2126       l_tapv_rec.ipvs_id := NULL;
2127     END IF;
2128     IF (l_tapv_rec.tcn_id = OKL_API.G_MISS_NUM) THEN
2129       l_tapv_rec.tcn_id := NULL;
2130     END IF;
2131     IF (l_tapv_rec.vpa_id = OKL_API.G_MISS_NUM) THEN
2132       l_tapv_rec.vpa_id := NULL;
2133     END IF;
2134     IF (l_tapv_rec.ipt_id = OKL_API.G_MISS_NUM) THEN
2135       l_tapv_rec.ipt_id := NULL;
2136     END IF;
2137     IF (l_tapv_rec.qte_id = OKL_API.G_MISS_NUM) THEN
2138       l_tapv_rec.qte_id := NULL;
2139     END IF;
2140     IF (l_tapv_rec.invoice_category_code = OKL_API.G_MISS_CHAR) THEN
2141       l_tapv_rec.invoice_category_code := NULL;
2142     END IF;
2143     IF (l_tapv_rec.payment_method_code = OKL_API.G_MISS_CHAR) THEN
2144       l_tapv_rec.payment_method_code := NULL;
2145     END IF;
2146     IF (l_tapv_rec.cplv_id = OKL_API.G_MISS_NUM) THEN
2147       l_tapv_rec.cplv_id := NULL;
2148     END IF;
2149 
2150     --Start code added by pgomes on 19-NOV-2002
2151     IF (l_tapv_rec.pox_id = OKL_API.G_MISS_NUM) THEN
2152       l_tapv_rec.pox_id := NULL;
2153     END IF;
2154     --End code added by pgomes on 19-NOV-2002
2155 
2156     IF (l_tapv_rec.amount = OKL_API.G_MISS_NUM) THEN
2157       l_tapv_rec.amount := NULL;
2158     END IF;
2159     IF (l_tapv_rec.date_invoiced = OKL_API.G_MISS_DATE) THEN
2160       l_tapv_rec.date_invoiced := NULL;
2161     END IF;
2162     IF (l_tapv_rec.invoice_number = OKL_API.G_MISS_CHAR) THEN
2163       l_tapv_rec.invoice_number := NULL;
2164     END IF;
2165     IF (l_tapv_rec.date_funding_approved = OKL_API.G_MISS_DATE) THEN
2166       l_tapv_rec.date_funding_approved := NULL;
2167     END IF;
2168     IF (l_tapv_rec.date_gl = OKL_API.G_MISS_DATE) THEN
2169       l_tapv_rec.date_gl := NULL;
2170     END IF;
2171     IF (l_tapv_rec.workflow_yn = OKL_API.G_MISS_CHAR) THEN
2172       l_tapv_rec.workflow_yn := NULL;
2173     END IF;
2174     IF (l_tapv_rec.match_required_yn = OKL_API.G_MISS_CHAR) THEN
2175       l_tapv_rec.match_required_yn := NULL;
2176     END IF;
2177     IF (l_tapv_rec.ipt_frequency = OKL_API.G_MISS_CHAR) THEN
2178       l_tapv_rec.ipt_frequency := NULL;
2179     END IF;
2180     IF (l_tapv_rec.consolidate_yn = OKL_API.G_MISS_CHAR) THEN
2181       l_tapv_rec.consolidate_yn := NULL;
2182     END IF;
2183     IF (l_tapv_rec.wait_vendor_invoice_yn = OKL_API.G_MISS_CHAR) THEN
2184       l_tapv_rec.wait_vendor_invoice_yn := NULL;
2185     END IF;
2186     IF (l_tapv_rec.date_requisition = OKL_API.G_MISS_DATE) THEN
2187       l_tapv_rec.date_requisition := NULL;
2188     END IF;
2189     IF (l_tapv_rec.description = OKL_API.G_MISS_CHAR) THEN
2190       l_tapv_rec.description := NULL;
2191     END IF;
2192     IF (l_tapv_rec.CURRENCY_CONVERSION_TYPE = OKL_API.G_MISS_CHAR) THEN
2193       l_tapv_rec.CURRENCY_CONVERSION_TYPE := NULL;
2194     END IF;
2195     IF (l_tapv_rec.CURRENCY_CONVERSION_RATE = OKL_API.G_MISS_NUM) THEN
2196       l_tapv_rec.CURRENCY_CONVERSION_RATE := NULL;
2197     END IF;
2198     IF (l_tapv_rec.CURRENCY_CONVERSION_DATE = OKL_API.G_MISS_DATE) THEN
2199       l_tapv_rec.CURRENCY_CONVERSION_DATE := NULL;
2200     END IF;
2201     IF (l_tapv_rec.VENDOR_ID = OKL_API.G_MISS_NUM) THEN
2202       l_tapv_rec.VENDOR_ID := NULL;
2203     END IF;
2204     IF (l_tapv_rec.attribute_category = OKL_API.G_MISS_CHAR) THEN
2205       l_tapv_rec.attribute_category := NULL;
2206     END IF;
2207     IF (l_tapv_rec.attribute1 = OKL_API.G_MISS_CHAR) THEN
2208       l_tapv_rec.attribute1 := NULL;
2209     END IF;
2210     IF (l_tapv_rec.attribute2 = OKL_API.G_MISS_CHAR) THEN
2211       l_tapv_rec.attribute2 := NULL;
2212     END IF;
2213     IF (l_tapv_rec.attribute3 = OKL_API.G_MISS_CHAR) THEN
2214       l_tapv_rec.attribute3 := NULL;
2215     END IF;
2216     IF (l_tapv_rec.attribute4 = OKL_API.G_MISS_CHAR) THEN
2217       l_tapv_rec.attribute4 := NULL;
2218     END IF;
2219     IF (l_tapv_rec.attribute5 = OKL_API.G_MISS_CHAR) THEN
2220       l_tapv_rec.attribute5 := NULL;
2221     END IF;
2222     IF (l_tapv_rec.attribute6 = OKL_API.G_MISS_CHAR) THEN
2223       l_tapv_rec.attribute6 := NULL;
2224     END IF;
2225     IF (l_tapv_rec.attribute7 = OKL_API.G_MISS_CHAR) THEN
2226       l_tapv_rec.attribute7 := NULL;
2227     END IF;
2228     IF (l_tapv_rec.attribute8 = OKL_API.G_MISS_CHAR) THEN
2229       l_tapv_rec.attribute8 := NULL;
2230     END IF;
2231     IF (l_tapv_rec.attribute9 = OKL_API.G_MISS_CHAR) THEN
2232       l_tapv_rec.attribute9 := NULL;
2233     END IF;
2234     IF (l_tapv_rec.attribute10 = OKL_API.G_MISS_CHAR) THEN
2235       l_tapv_rec.attribute10 := NULL;
2236     END IF;
2237     IF (l_tapv_rec.attribute11 = OKL_API.G_MISS_CHAR) THEN
2238       l_tapv_rec.attribute11 := NULL;
2239     END IF;
2240     IF (l_tapv_rec.attribute12 = OKL_API.G_MISS_CHAR) THEN
2241       l_tapv_rec.attribute12 := NULL;
2242     END IF;
2243     IF (l_tapv_rec.attribute13 = OKL_API.G_MISS_CHAR) THEN
2244       l_tapv_rec.attribute13 := NULL;
2245     END IF;
2246     IF (l_tapv_rec.attribute14 = OKL_API.G_MISS_CHAR) THEN
2247       l_tapv_rec.attribute14 := NULL;
2248     END IF;
2249     IF (l_tapv_rec.attribute15 = OKL_API.G_MISS_CHAR) THEN
2250       l_tapv_rec.attribute15 := NULL;
2251     END IF;
2252     IF (l_tapv_rec.date_entered = OKL_API.G_MISS_DATE) THEN
2253       l_tapv_rec.date_entered := NULL;
2254     END IF;
2255     -- Start Post Postgen 14,15
2256     IF (l_tapv_rec.trx_status_code = OKL_API.G_MISS_CHAR) THEN
2257       l_tapv_rec.trx_status_code := NULL;
2258     END IF;
2259     IF (l_tapv_rec.set_of_books_id = OKL_API.G_MISS_NUM) THEN
2260       l_tapv_rec.set_of_books_id := NULL;
2261     END IF;
2262     IF (l_tapv_rec.try_id = OKL_API.G_MISS_NUM) THEN
2263       l_tapv_rec.try_id := NULL;
2264     END IF;
2265     -- End Post Postgen 14,15
2266     IF (l_tapv_rec.request_id = OKL_API.G_MISS_NUM) THEN
2267       l_tapv_rec.request_id := NULL;
2268     END IF;
2269     IF (l_tapv_rec.program_application_id = OKL_API.G_MISS_NUM) THEN
2270       l_tapv_rec.program_application_id := NULL;
2271     END IF;
2272     IF (l_tapv_rec.program_id = OKL_API.G_MISS_NUM) THEN
2273       l_tapv_rec.program_id := NULL;
2274     END IF;
2275     IF (l_tapv_rec.program_update_date = OKL_API.G_MISS_DATE) THEN
2276       l_tapv_rec.program_update_date := NULL;
2277     END IF;
2278     IF (l_tapv_rec.org_id = OKL_API.G_MISS_NUM) THEN
2279       l_tapv_rec.org_id := NULL;
2280     END IF;
2281     IF (l_tapv_rec.created_by = OKL_API.G_MISS_NUM) THEN
2282       l_tapv_rec.created_by := NULL;
2283     END IF;
2284     IF (l_tapv_rec.creation_date = OKL_API.G_MISS_DATE) THEN
2285       l_tapv_rec.creation_date := NULL;
2286     END IF;
2287     IF (l_tapv_rec.last_updated_by = OKL_API.G_MISS_NUM) THEN
2288       l_tapv_rec.last_updated_by := NULL;
2289     END IF;
2290     IF (l_tapv_rec.last_update_date = OKL_API.G_MISS_DATE) THEN
2291       l_tapv_rec.last_update_date := NULL;
2292     END IF;
2293     IF (l_tapv_rec.last_update_login = OKL_API.G_MISS_NUM) THEN
2294       l_tapv_rec.last_update_login := NULL;
2295     END IF;
2296     IF (l_tapv_rec.invoice_type = OKL_API.G_MISS_CHAR) THEN
2297       l_tapv_rec.invoice_type := NULL;
2298     END IF;
2299     IF (l_tapv_rec.pay_group_lookup_code = OKL_API.G_MISS_CHAR) THEN
2300       l_tapv_rec.pay_group_lookup_code := NULL;
2301     END IF;
2302     IF (l_tapv_rec.vendor_invoice_number = OKL_API.G_MISS_CHAR) THEN
2303       l_tapv_rec.vendor_invoice_number := NULL;
2304     END IF;
2305     IF (l_tapv_rec.nettable_yn = OKL_API.G_MISS_CHAR) THEN
2306       l_tapv_rec.nettable_yn := NULL;
2307     END IF;
2308     IF (l_tapv_rec.asset_tap_id = OKL_API.G_MISS_NUM) THEN
2309       l_tapv_rec.asset_tap_id := NULL;
2310     END IF;
2311  -- 30-OCT-2006 ANSETHUR  R12B - Legal Entity
2312 
2313     IF (l_tapv_rec.legal_entity_id = OKL_API.G_MISS_NUM) THEN
2314       l_tapv_rec.legal_entity_id := NULL;
2315     END IF;
2316 
2317     IF (l_tapv_rec.transaction_date = OKL_API.G_MISS_DATE) THEN
2318       l_tapv_rec.transaction_date := NULL;
2319     END IF;
2320 
2321     RETURN(l_tapv_rec);
2322   END null_out_defaults;
2323   ------------------------------------------------------------------------------------
2324   -- PROCEDURE Validate_Attributes for:OKL_TRX_AP_INVOICES_V : Modified for PostGen-12
2325   ------------------------------------------------------------------------------------
2326   FUNCTION Validate_Attributes
2327          ( p_tapv_rec IN  tapv_rec_type
2328          ) RETURN VARCHAR2 IS
2329     x_return_status	         VARCHAR2(1)         :=   OKL_API.G_RET_STS_SUCCESS;
2330     l_return_status	         VARCHAR2(1)         :=   OKL_API.G_RET_STS_SUCCESS;
2331   BEGIN
2332     validate_id ( x_return_status      => l_return_status
2333                 , p_tapv_rec           => p_tapv_rec
2334                 ) ;
2335     -- Store the highest degree of error
2336     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2337        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2338           x_return_status := l_return_status;
2339        END IF;
2340     END IF;
2341     validate_object_version_number
2342                 ( x_return_status      => l_return_status
2343                 , p_tapv_rec           => p_tapv_rec
2344                 ) ;
2345     -- Store the highest degree of error
2346     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2347        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2348           x_return_status := l_return_status;
2349        END IF;
2350     END IF;
2351     validate_org_id
2352                 ( x_return_status      => l_return_status
2353                 , p_tapv_rec           => p_tapv_rec
2354                 ) ;
2355     -- Store the highest degree of error
2356     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2357        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2358           x_return_status := l_return_status;
2359        END IF;
2360     END IF;
2361     validate_amount
2362                 ( x_return_status      => l_return_status
2363                 , p_tapv_rec           => p_tapv_rec
2364                 ) ;
2365     -- Store the highest degree of error
2366     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2367        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2368           x_return_status := l_return_status;
2369        END IF;
2370     END IF;
2371     validate_date_invoiced
2372                 ( x_return_status      => l_return_status
2373                 , p_tapv_rec           => p_tapv_rec
2374                 ) ;
2375     -- Store the highest degree of error
2376     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2377        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2378           x_return_status := l_return_status;
2379        END IF;
2380     END IF;
2381     validate_date_entered
2382                 ( x_return_status      => l_return_status
2383                 , p_tapv_rec           => p_tapv_rec
2384                 ) ;
2385     -- Store the highest degree of error
2386     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2387        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2388           x_return_status := l_return_status;
2389        END IF;
2390     END IF;
2391     validate_wait_vend_inv_yn
2392                 ( x_return_status      => l_return_status
2393                 , p_tapv_rec           => p_tapv_rec
2394                 ) ;
2395     -- Store the highest degree of error
2396     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2397        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2398           x_return_status := l_return_status;
2399        END IF;
2400     END IF;
2401     validate_consolidate_yn
2402                 ( x_return_status      => l_return_status
2403                 , p_tapv_rec           => p_tapv_rec
2404                 ) ;
2405     -- Store the highest degree of error
2406     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2407        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2408           x_return_status := l_return_status;
2409        END IF;
2410     END IF;
2411     validate_workflow_yn
2412                 ( x_return_status      => l_return_status
2413                 , p_tapv_rec           => p_tapv_rec
2414                 ) ;
2415     -- Store the highest degree of error
2416     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2417        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2418           x_return_status := l_return_status;
2419        END IF;
2420     END IF;
2421     validate_payment_method_code
2422                 ( x_return_status      => l_return_status
2423                 , p_tapv_rec           => p_tapv_rec
2424                 ) ;
2425     -- Store the highest degree of error
2426     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2427        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2428           x_return_status := l_return_status;
2429        END IF;
2430     END IF;
2431     validate_invoice_category_code
2432                 ( x_return_status      => l_return_status
2433                 , p_tapv_rec           => p_tapv_rec
2434                 ) ;
2435     -- Store the highest degree of error
2436     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2437        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2438           x_return_status := l_return_status;
2439        END IF;
2440     END IF;
2441     validate_funding_type_code
2442                 ( x_return_status      => l_return_status
2443                 , p_tapv_rec           => p_tapv_rec
2444                 ) ;
2445     -- Store the highest degree of error
2446     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2447        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2448           x_return_status := l_return_status;
2449        END IF;
2450     END IF;
2451     validate_currency_code
2452                 ( x_return_status      => l_return_status
2453                 , p_tapv_rec           => p_tapv_rec
2454                 ) ;
2455     -- Store the highest degree of error
2456     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2457        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2458           x_return_status := l_return_status;
2459        END IF;
2460     END IF;
2461     validate_fk_ipvs_id
2462                 ( x_return_status      => l_return_status
2463                 , p_tapv_rec           => p_tapv_rec
2464                 ) ;
2465     -- Store the highest degree of error
2466     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2467        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2468           x_return_status := l_return_status;
2469        END IF;
2470     END IF;
2471     validate_fk_ccid
2472                 ( x_return_status      => l_return_status
2473                 , p_tapv_rec           => p_tapv_rec
2474                 ) ;
2475     -- Store the highest degree of error
2476     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2477        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2478           x_return_status := l_return_status;
2479        END IF;
2480     END IF;
2481     validate_fk_tap_id_reverses
2482                 ( x_return_status      => l_return_status
2483                 , p_tapv_rec           => p_tapv_rec
2484                 ) ;
2485     -- Store the highest degree of error
2486     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2487        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2488           x_return_status := l_return_status;
2489        END IF;
2490     END IF;
2491     validate_fk_cplv_id
2492                 ( x_return_status      => l_return_status
2493                 , p_tapv_rec           => p_tapv_rec
2494                 ) ;
2495     -- Store the highest degree of error
2496     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2497        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2498           x_return_status := l_return_status;
2499        END IF;
2500     END IF;
2501     validate_fk_qte_id
2502                 ( x_return_status      => l_return_status
2503                 , p_tapv_rec           => p_tapv_rec
2504                 ) ;
2505     -- Store the highest degree of error
2506     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2507        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2508           x_return_status := l_return_status;
2509        END IF;
2510     END IF;
2511     validate_fk_tcn_id
2512                 ( x_return_status      => l_return_status
2513                 , p_tapv_rec           => p_tapv_rec
2514                 ) ;
2515     -- Store the highest degree of error
2516     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2517        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2518           x_return_status := l_return_status;
2519        END IF;
2520     END IF;
2521     validate_fk_ippt_id
2522                 ( x_return_status      => l_return_status
2523                 , p_tapv_rec           => p_tapv_rec
2524                 ) ;
2525     -- Store the highest degree of error
2526     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2527        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2528           x_return_status := l_return_status;
2529        END IF;
2530     END IF;
2531     validate_fk_art_id
2532                 ( x_return_status      => l_return_status
2533                 , p_tapv_rec           => p_tapv_rec
2534                 ) ;
2535     -- Store the highest degree of error
2536     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2537        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2538           x_return_status := l_return_status;
2539        END IF;
2540     END IF;
2541     validate_fk_khr_id
2542                 ( x_return_status      => l_return_status
2543                 , p_tapv_rec           => p_tapv_rec
2544                 ) ;
2545     -- Store the highest degree of error
2546     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2547        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2548           x_return_status := l_return_status;
2549        END IF;
2550     END IF;
2551 /*
2552     validate_fk_ccf_id
2553                 ( x_return_status      => l_return_status
2554                 , p_tapv_rec           => p_tapv_rec
2555                 ) ;
2556     -- Store the highest degree of error
2557     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2558        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2559           x_return_status := l_return_status;
2560        END IF;
2561     END IF;
2562     validate_fk_cct_id
2563                 ( x_return_status      => l_return_status
2564                 , p_tapv_rec           => p_tapv_rec
2565                 ) ;
2566     -- Store the highest degree of error
2567     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2568        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2569           x_return_status := l_return_status;
2570        END IF;
2571     END IF;
2572 */
2573     validate_fk_try_id
2574                 ( x_return_status      => l_return_status
2575                 , p_tapv_rec           => p_tapv_rec
2576                 ) ;
2577     -- Store the highest degree of error
2578     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2579        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2580           x_return_status := l_return_status;
2581        END IF;
2582     END IF;
2583     validate_fk_sob_id
2584                 ( x_return_status      => l_return_status
2585                 , p_tapv_rec           => p_tapv_rec
2586                 ) ;
2587     -- Store the highest degree of error
2588     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2589        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2590           x_return_status := l_return_status;
2591        END IF;
2592     END IF;
2593 
2594     --Start code added by pgomes on 19-NOV-2002
2595     validate_pox_id( x_return_status      => l_return_status
2596                 , p_tapv_rec           => p_tapv_rec
2597                 ) ;
2598     -- Store the highest degree of error
2599     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2600        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2601           x_return_status := l_return_status;
2602        END IF;
2603     END IF;
2604     --End code added by pgomes on 19-NOV-2002
2605 
2606     validate_trx_status_code
2607                 ( x_return_status      => l_return_status
2608                 , p_tapv_rec           => p_tapv_rec
2609                 ) ;
2610     -- Store the highest degree of error
2611     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2612        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2613           x_return_status := l_return_status;
2614        END IF;
2615     END IF;
2616 
2617     validate_asset_tap_id( x_return_status      => l_return_status
2618                 , p_tapv_rec           => p_tapv_rec
2619                 ) ;
2620     -- Store the highest degree of error
2621     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2622        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2623           x_return_status := l_return_status;
2624        END IF;
2625     END IF;
2626  -- 01-NOV-2006 ANSETHUR  R12B - Legal Entity  start changes
2627     validate_le_id(x_return_status      => l_return_status
2628                 , p_tapv_rec           => p_tapv_rec) ;
2629 
2630     IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
2631        IF x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
2632           x_return_status := l_return_status;
2633        END IF;
2634     END IF;
2635  -- 01-NOV-2006 ANSETHUR  R12B - Legal Entity  End changes
2636 
2637 
2638     RETURN x_return_status;  -- Return status to the caller
2639   /*------------------------------- TAPI Generated Code ---------------------------------------+
2640     IF p_tapv_rec.id = OKL_API.G_MISS_NUM OR
2641        p_tapv_rec.id IS NULL
2642     THEN
2643       OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'id');
2644       l_return_status := OKL_API.G_RET_STS_ERROR;
2645     ELSIF p_tapv_rec.object_version_number = OKL_API.G_MISS_NUM OR
2646           p_tapv_rec.object_version_number IS NULL
2647     THEN
2648       OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'object_version_number');
2649       l_return_status := OKL_API.G_RET_STS_ERROR;
2650     ELSIF p_tapv_rec.currency_code = OKL_API.G_MISS_CHAR OR
2651           p_tapv_rec.currency_code IS NULL
2652     THEN
2653       OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'currency_code');
2654       l_return_status := OKL_API.G_RET_STS_ERROR;
2655     ELSIF p_tapv_rec.ipvs_id = OKL_API.G_MISS_NUM OR
2656           p_tapv_rec.ipvs_id IS NULL
2657     THEN
2658       OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'ipvs_id');
2659       l_return_status := OKL_API.G_RET_STS_ERROR;
2660     ELSIF p_tapv_rec.amount = OKL_API.G_MISS_NUM OR
2661           p_tapv_rec.amount IS NULL
2662     THEN
2663       OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'amount');
2664       l_return_status := OKL_API.G_RET_STS_ERROR;
2665     ELSIF p_tapv_rec.date_invoiced = OKL_API.G_MISS_DATE OR
2666           p_tapv_rec.date_invoiced IS NULL
2667     THEN
2668       OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'date_invoiced');
2669       l_return_status := OKL_API.G_RET_STS_ERROR;
2670     ELSIF p_tapv_rec.date_entered = OKL_API.G_MISS_DATE OR
2671           p_tapv_rec.date_entered IS NULL
2672     THEN
2673       OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'date_entered');
2674       l_return_status := OKL_API.G_RET_STS_ERROR;
2675     ELSIF p_tapv_rec.trx_type = OKL_API.G_MISS_CHAR OR
2676           p_tapv_rec.trx_type IS NULL
2677     THEN
2678       OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'trx_type');
2679       l_return_status := OKL_API.G_RET_STS_ERROR;
2680     END IF;
2681     RETURN(l_return_status);
2682   +------------------------------ TAPI Generated Code ----------------------------------------*/
2683   EXCEPTION
2684     WHEN OTHERS then
2685       -- Store SQL Error Message on the Message Stack for caller
2686       OKL_Api.SET_MESSAGE
2687             ( p_app_name     => g_app_name,
2688               p_msg_name     => G_UNEXPECTED_ERROR,
2689               p_token1       => G_SQLCODE_TOKEN,
2690               p_token1_value => 'sqlcode',
2691               p_token2       => G_SQLERRM_TOKEN,
2692               p_token2_value => 'sqlerrm'
2693             ) ;
2694       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
2695       return x_return_status;                            -- Return status to the caller
2696   END Validate_Attributes;
2697   --------------------------------------------------------------------------------
2698   -- PROCEDURE Validate_Record for:OKL_TRX_AP_INVOICES_V : Modified for PostGen-13
2699   --------------------------------------------------------------------------------
2700   FUNCTION Validate_Record
2701          ( p_tapv_rec IN tapv_rec_type
2702          ) RETURN VARCHAR2 IS
2703     x_return_status	         VARCHAR2(1)         :=   OKL_API.G_RET_STS_SUCCESS;
2704     l_return_status          VARCHAR2(1)         :=   OKL_API.G_RET_STS_SUCCESS;
2705   BEGIN
2706     -- Post Postgen 14,15
2707     RETURN x_return_status;  -- Return status to the caller
2708 --  l_return_status := validate_foreign_keys (p_tapv_rec);  -- TAPI Generated Code
2709 --  RETURN (l_return_status);                               -- TAPI Generated Code
2710   EXCEPTION
2711     WHEN OTHERS then
2712       -- Store SQL Error Message on the Message Stack for caller
2713       OKL_Api.SET_MESSAGE
2714             ( p_app_name     => g_app_name,
2715               p_msg_name     => G_UNEXPECTED_ERROR,
2716               p_token1       => G_SQLCODE_TOKEN,
2717               p_token1_value => 'sqlcode',
2718               p_token2       => G_SQLERRM_TOKEN,
2719               p_token2_value => 'sqlerrm'
2720             ) ;
2721       x_return_status := OKL_Api.G_RET_STS_UNEXP_ERROR;  -- Notify caller of this error
2722       return x_return_status;                            -- Return status to the caller
2723   END Validate_Record;
2724   ------------------------------------
2725   -- FUNCTION validate_foreign_keys --
2726   ------------------------------------
2727   FUNCTION validate_foreign_keys
2728          ( p_tapv_rec IN tapv_rec_type
2729          ) RETURN VARCHAR2 IS
2730     CURSOR OKL_cplv_pk_csr (p_id                 IN NUMBER) IS
2731     SELECT
2732             ID,OBJECT_VERSION_NUMBER,SFWT_FLAG,CHR_ID,CPL_ID,CLE_ID,RLE_CODE,
2733             DNZ_CHR_ID,OBJECT1_ID1,OBJECT1_ID2,JTOT_OBJECT1_CODE,COGNOMEN,CODE,
2734             FACILITY,MINORITY_GROUP_LOOKUP_CODE,SMALL_BUSINESS_FLAG,WOMEN_OWNED_FLAG,
2735             ALIAS,ROLE,ATTRIBUTE_CATEGORY,ATTRIBUTE1,ATTRIBUTE2,ATTRIBUTE3,ATTRIBUTE4,
2736             ATTRIBUTE5,ATTRIBUTE6,ATTRIBUTE7,ATTRIBUTE8,ATTRIBUTE9,ATTRIBUTE10,
2737             ATTRIBUTE11,ATTRIBUTE12,ATTRIBUTE13,ATTRIBUTE14,ATTRIBUTE15,CREATED_BY,
2738             CREATION_DATE,LAST_UPDATED_BY,LAST_UPDATE_DATE,LAST_UPDATE_LOGIN
2739       FROM OKC_K_PARTY_ROLES_V
2740      WHERE OKC_K_PARTY_ROLES_V.id = p_id;
2741     l_OKL_cplv_pk                  OKL_cplv_pk_csr%ROWTYPE;
2742     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2743     l_row_notfound                 BOOLEAN := TRUE;
2744     item_not_found_error          EXCEPTION;
2745   BEGIN
2746     IF (p_tapv_rec.CPLV_ID IS NOT NULL)
2747     THEN
2748       OPEN OKL_cplv_pk_csr(p_tapv_rec.CPLV_ID);
2749       FETCH OKL_cplv_pk_csr INTO l_OKL_cplv_pk;
2750       l_row_notfound := OKL_cplv_pk_csr%NOTFOUND;
2751       CLOSE OKL_cplv_pk_csr;
2752       IF (l_row_notfound) THEN
2753         OKL_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'CPLV_ID');
2754         RAISE item_not_found_error;
2755       END IF;
2756     END IF;
2757     RETURN (l_return_status);
2758   EXCEPTION
2759     WHEN item_not_found_error THEN
2760       l_return_status := OKL_API.G_RET_STS_ERROR;
2761       RETURN (l_return_status);
2762   END validate_foreign_keys;
2763   ---------------------------------------------------------------------------
2764   -- PROCEDURE Migrate
2765   ---------------------------------------------------------------------------
2766   PROCEDURE migrate (
2767     p_from	IN tapv_rec_type,
2768     p_to	IN OUT NOCOPY tap_rec_type     -- PostGen-11
2769   ) IS
2770   BEGIN
2771     p_to.id := p_from.id;
2772     p_to.currency_code := p_from.currency_code;
2773     p_to.payment_method_code := p_from.payment_method_code;
2774     p_to.funding_type_code := p_from.funding_type_code;
2775     p_to.invoice_category_code := p_from.invoice_category_code;
2776     p_to.ipvs_id := p_from.ipvs_id;
2777     p_to.khr_id := p_from.khr_id;
2778     p_to.ccf_id := p_from.ccf_id;
2779     p_to.cct_id := p_from.cct_id;
2780     p_to.cplv_id := p_from.cplv_id;
2781     p_to.pox_id := p_from.pox_id;
2782     p_to.ippt_id := p_from.ippt_id;
2783     p_to.code_combination_id := p_from.code_combination_id;
2784     p_to.qte_id := p_from.qte_id;
2785     p_to.art_id := p_from.art_id;
2786     p_to.tcn_id := p_from.tcn_id;
2787     p_to.vpa_id := p_from.vpa_id;
2788     p_to.ipt_id := p_from.ipt_id;
2789     p_to.tap_id_reverses := p_from.tap_id_reverses;
2790     p_to.date_entered := p_from.date_entered;
2791     p_to.date_invoiced := p_from.date_invoiced;
2792     p_to.amount := p_from.amount;
2793     p_to.trx_status_code := p_from.trx_status_code;  -- Post Postgen 14,15
2794     p_to.set_of_books_id := p_from.set_of_books_id;  -- Post Postgen 14,15
2795     p_to.try_id := p_from.try_id;                    -- Post Postgen 14,15
2796     p_to.object_version_number := p_from.object_version_number;
2797     p_to.date_requisition := p_from.date_requisition;
2798     p_to.date_funding_approved := p_from.date_funding_approved;
2799     p_to.invoice_number := p_from.invoice_number;
2800     p_to.date_gl := p_from.date_gl;
2801     p_to.workflow_yn := p_from.workflow_yn;
2802     p_to.match_required_yn := p_from.match_required_yn;
2803     p_to.ipt_frequency := p_from.ipt_frequency;
2804     p_to.consolidate_yn := p_from.consolidate_yn;
2805     p_to.wait_vendor_invoice_yn := p_from.wait_vendor_invoice_yn;
2806     p_to.request_id := p_from.request_id;
2807     p_to.program_application_id := p_from.program_application_id;
2808     p_to.program_id := p_from.program_id;
2809     p_to.program_update_date := p_from.program_update_date;
2810     p_to.org_id := p_from.org_id;
2811     p_to.CURRENCY_CONVERSION_TYPE := p_from.CURRENCY_CONVERSION_TYPE;
2812     p_to.CURRENCY_CONVERSION_RATE := p_from.CURRENCY_CONVERSION_RATE;
2813     p_to.CURRENCY_CONVERSION_DATE := p_from.CURRENCY_CONVERSION_DATE;
2814     p_to.vendor_id := p_from.vendor_id;
2815     p_to.attribute_category := p_from.attribute_category;
2816     p_to.attribute1 := p_from.attribute1;
2817     p_to.attribute2 := p_from.attribute2;
2818     p_to.attribute3 := p_from.attribute3;
2819     p_to.attribute4 := p_from.attribute4;
2820     p_to.attribute5 := p_from.attribute5;
2821     p_to.attribute6 := p_from.attribute6;
2822     p_to.attribute7 := p_from.attribute7;
2823     p_to.attribute8 := p_from.attribute8;
2824     p_to.attribute9 := p_from.attribute9;
2825     p_to.attribute10 := p_from.attribute10;
2826     p_to.attribute11 := p_from.attribute11;
2827     p_to.attribute12 := p_from.attribute12;
2828     p_to.attribute13 := p_from.attribute13;
2829     p_to.attribute14 := p_from.attribute14;
2830     p_to.attribute15 := p_from.attribute15;
2831     p_to.created_by := p_from.created_by;
2832     p_to.creation_date := p_from.creation_date;
2833     p_to.last_updated_by := p_from.last_updated_by;
2834     p_to.last_update_date := p_from.last_update_date;
2835     p_to.last_update_login := p_from.last_update_login;
2836     p_to.invoice_type := p_from.invoice_type;
2837     p_to.pay_group_lookup_code := p_from.pay_group_lookup_code;
2838     p_to.vendor_invoice_number := p_from.vendor_invoice_number;
2839     p_to.nettable_yn := p_from.nettable_yn;
2840     p_to.asset_tap_id := p_from.asset_tap_id;                    -- Post Postgen 14,15
2841  -- 30-OCT-2006 ANSETHUR  R12B - Legal Entity
2842     p_to.legal_entity_id := p_from.legal_entity_id;
2843     p_to.transaction_date := p_from.transaction_date;
2844 
2845   END migrate;
2846   PROCEDURE migrate (
2847     p_from	IN tap_rec_type,
2848     p_to	IN OUT NOCOPY tapv_rec_type     -- PostGen-11
2849   ) IS
2850   BEGIN
2851     p_to.id := p_from.id;
2852     p_to.currency_code := p_from.currency_code;
2853     p_to.payment_method_code := p_from.payment_method_code;
2854     p_to.funding_type_code := p_from.funding_type_code;
2855     p_to.invoice_category_code := p_from.invoice_category_code;
2856     p_to.ipvs_id := p_from.ipvs_id;
2857     p_to.khr_id := p_from.khr_id;
2858     p_to.ccf_id := p_from.ccf_id;
2859     p_to.cct_id := p_from.cct_id;
2860     p_to.cplv_id := p_from.cplv_id;
2861     p_to.pox_id := p_from.pox_id;
2862     p_to.ippt_id := p_from.ippt_id;
2863     p_to.code_combination_id := p_from.code_combination_id;
2864     p_to.qte_id := p_from.qte_id;
2865     p_to.art_id := p_from.art_id;
2866     p_to.tcn_id := p_from.tcn_id;
2867     p_to.vpa_id := p_from.vpa_id;
2868     p_to.ipt_id := p_from.ipt_id;
2869     p_to.tap_id_reverses := p_from.tap_id_reverses;
2870     p_to.date_entered := p_from.date_entered;
2871     p_to.date_invoiced := p_from.date_invoiced;
2872     p_to.amount := p_from.amount;
2873     p_to.trx_status_code := p_from.trx_status_code;  -- Post Postgen 14,15
2874     p_to.set_of_books_id := p_from.set_of_books_id;  -- Post Postgen 14,15
2875     p_to.try_id := p_from.try_id;                    -- Post Postgen 14,15
2876     p_to.object_version_number := p_from.object_version_number;
2877     p_to.date_requisition := p_from.date_requisition;
2878     p_to.date_funding_approved := p_from.date_funding_approved;
2879     p_to.invoice_number := p_from.invoice_number;
2880     p_to.date_gl := p_from.date_gl;
2881     p_to.workflow_yn := p_from.workflow_yn;
2882     p_to.match_required_yn := p_from.match_required_yn;
2883     p_to.ipt_frequency := p_from.ipt_frequency;
2884     p_to.consolidate_yn := p_from.consolidate_yn;
2885     p_to.wait_vendor_invoice_yn := p_from.wait_vendor_invoice_yn;
2886     p_to.request_id := p_from.request_id;
2887     p_to.program_application_id := p_from.program_application_id;
2888     p_to.program_id := p_from.program_id;
2889     p_to.program_update_date := p_from.program_update_date;
2890     p_to.org_id := p_from.org_id;
2891     p_to.CURRENCY_CONVERSION_TYPE := p_from.CURRENCY_CONVERSION_TYPE;
2892     p_to.CURRENCY_CONVERSION_RATE := p_from.CURRENCY_CONVERSION_RATE;
2893     p_to.CURRENCY_CONVERSION_DATE := p_from.CURRENCY_CONVERSION_DATE;
2894     p_to.vendor_id := p_from.vendor_id;
2895     p_to.attribute_category := p_from.attribute_category;
2896     p_to.attribute1 := p_from.attribute1;
2897     p_to.attribute2 := p_from.attribute2;
2898     p_to.attribute3 := p_from.attribute3;
2899     p_to.attribute4 := p_from.attribute4;
2900     p_to.attribute5 := p_from.attribute5;
2901     p_to.attribute6 := p_from.attribute6;
2902     p_to.attribute7 := p_from.attribute7;
2903     p_to.attribute8 := p_from.attribute8;
2904     p_to.attribute9 := p_from.attribute9;
2905     p_to.attribute10 := p_from.attribute10;
2906     p_to.attribute11 := p_from.attribute11;
2907     p_to.attribute12 := p_from.attribute12;
2908     p_to.attribute13 := p_from.attribute13;
2909     p_to.attribute14 := p_from.attribute14;
2910     p_to.attribute15 := p_from.attribute15;
2911     p_to.created_by := p_from.created_by;
2912     p_to.creation_date := p_from.creation_date;
2913     p_to.last_updated_by := p_from.last_updated_by;
2914     p_to.last_update_date := p_from.last_update_date;
2915     p_to.last_update_login := p_from.last_update_login;
2916     p_to.invoice_type := p_from.invoice_type;
2917     p_to.pay_group_lookup_code := p_from.pay_group_lookup_code;
2918     p_to.vendor_invoice_number := p_from.vendor_invoice_number;
2919     p_to.nettable_yn := p_from.nettable_yn;
2920     p_to.asset_tap_id := p_from.asset_tap_id;                    -- Post Postgen 14,15
2921  -- 30-OCT-2006 ANSETHUR  R12B - Legal Entity
2922     p_to.legal_entity_id := p_from.legal_entity_id;
2923     p_to.transaction_date := p_from.transaction_date;
2924 
2925   END migrate;
2926   PROCEDURE migrate (
2927     p_from	IN tapv_rec_type,
2928     p_to	IN OUT NOCOPY OklTrxApInvoicesTlRecType     -- PostGen-11
2929   ) IS
2930   BEGIN
2931     p_to.id := p_from.id;
2932     p_to.sfwt_flag := p_from.sfwt_flag;
2933     p_to.description := p_from.description;
2934     p_to.created_by := p_from.created_by;
2935     p_to.creation_date := p_from.creation_date;
2936     p_to.last_updated_by := p_from.last_updated_by;
2937     p_to.last_update_date := p_from.last_update_date;
2938     p_to.last_update_login := p_from.last_update_login;
2939   END migrate;
2940   PROCEDURE migrate (
2941     p_from	IN OklTrxApInvoicesTlRecType,
2942     p_to	IN OUT NOCOPY tapv_rec_type     -- PostGen-11
2943   ) IS
2944   BEGIN
2945     p_to.id := p_from.id;
2946     p_to.sfwt_flag := p_from.sfwt_flag;
2947     p_to.description := p_from.description;
2948     p_to.created_by := p_from.created_by;
2949     p_to.creation_date := p_from.creation_date;
2950     p_to.last_updated_by := p_from.last_updated_by;
2951     p_to.last_update_date := p_from.last_update_date;
2952     p_to.last_update_login := p_from.last_update_login;
2953   END migrate;
2954   ---------------------------------------------------------------------------
2955   -- PROCEDURE validate_row
2956   ---------------------------------------------------------------------------
2957   --------------------------------------------
2958   -- validate_row for:OKL_TRX_AP_INVOICES_V --
2959   --------------------------------------------
2960   PROCEDURE validate_row(
2961     p_api_version                  IN NUMBER,
2962     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2963     x_return_status                OUT NOCOPY VARCHAR2,
2964     x_msg_count                    OUT NOCOPY NUMBER,
2965     x_msg_data                     OUT NOCOPY VARCHAR2,
2966     p_tapv_rec                     IN tapv_rec_type) IS
2967     l_api_version                 CONSTANT NUMBER := 1;
2968     l_api_name                     CONSTANT VARCHAR2(30) := 'V_validate_row';
2969     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2970     l_tapv_rec                     tapv_rec_type := p_tapv_rec;
2971     l_tap_rec                      tap_rec_type;
2972     l_okl_trx_ap_invoices_tl_rec   OklTrxApInvoicesTlRecType;
2973   BEGIN
2974     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
2975                                               G_PKG_NAME,
2976                                               p_init_msg_list,
2977                                               l_api_version,
2978                                               p_api_version,
2979                                               '_PVT',
2980                                               x_return_status);
2981     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2982       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2983     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2984       RAISE OKL_API.G_EXCEPTION_ERROR;
2985     END IF;
2986     --- Validate all non-missing attributes (Item Level Validation)
2987     l_return_status := Validate_Attributes(l_tapv_rec);
2988     --- If any errors happen abort API
2989     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2990       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2991     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2992       RAISE OKL_API.G_EXCEPTION_ERROR;
2993     END IF;
2994     l_return_status := Validate_Record(l_tapv_rec);
2995     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2996       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2997     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2998       RAISE OKL_API.G_EXCEPTION_ERROR;
2999     END IF;
3000     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3001   EXCEPTION
3002     WHEN OKL_API.G_EXCEPTION_ERROR THEN
3003       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3004       (
3005         l_api_name,
3006         G_PKG_NAME,
3007         'OKL_API.G_RET_STS_ERROR',
3008         x_msg_count,
3009         x_msg_data,
3010         '_PVT'
3011       );
3012     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3013       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
3014       (
3015         l_api_name,
3016         G_PKG_NAME,
3017         'OKL_API.G_RET_STS_UNEXP_ERROR',
3018         x_msg_count,
3019         x_msg_data,
3020         '_PVT'
3021       );
3022     WHEN OTHERS THEN
3023       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
3024       (
3025         l_api_name,
3026         G_PKG_NAME,
3027         'OTHERS',
3028         x_msg_count,
3029         x_msg_data,
3030         '_PVT'
3031       );
3032   END validate_row;
3033   ------------------------------------------
3034   -- PL/SQL TBL validate_row for:TAPV_TBL --
3035   ------------------------------------------
3036   PROCEDURE validate_row(
3037     p_api_version                  IN NUMBER,
3038     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3039     x_return_status                OUT NOCOPY VARCHAR2,
3040     x_msg_count                    OUT NOCOPY NUMBER,
3041     x_msg_data                     OUT NOCOPY VARCHAR2,
3042     p_tapv_tbl                     IN tapv_tbl_type) IS
3043     l_api_version                 CONSTANT NUMBER := 1;
3044     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
3045     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3046     l_overall_status               VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;     -- PostGen-9
3047     i                              NUMBER := 0;
3048   BEGIN
3049     OKL_API.init_msg_list(p_init_msg_list);
3050     -- Make sure PL/SQL table has records in it before passing
3051     IF (p_tapv_tbl.COUNT > 0) THEN
3052       i := p_tapv_tbl.FIRST;
3053       LOOP
3054         validate_row (
3055           p_api_version                  => p_api_version,
3056           p_init_msg_list                => OKL_API.G_FALSE,
3057           x_return_status                => x_return_status,
3058           x_msg_count                    => x_msg_count,
3059           x_msg_data                     => x_msg_data,
3060           p_tapv_rec                     => p_tapv_tbl(i));
3061         -- Store the highest degree of error                             -- PostGen-9
3062         IF x_return_status <> OKL_API.G_RET_STS_SUCCESS THEN             -- PostGen-9
3063            IF l_overall_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN     -- PostGen-9
3064               l_overall_status := x_return_status;                       -- PostGen-9
3065            END IF;                                                       -- PostGen-9
3066         END IF;                                                          -- PostGen-9
3067         EXIT WHEN (i = p_tapv_tbl.LAST);
3068         i := p_tapv_tbl.NEXT(i);
3069       END LOOP;
3070       x_return_status := l_overall_status;     -- PostGen-9 = return overall status
3071     END IF;
3072   EXCEPTION
3073     WHEN OKL_API.G_EXCEPTION_ERROR THEN
3074       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3075       (
3076         l_api_name,
3077         G_PKG_NAME,
3078         'OKL_API.G_RET_STS_ERROR',
3079         x_msg_count,
3080         x_msg_data,
3081         '_PVT'
3082       );
3083     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3084       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
3085       (
3086         l_api_name,
3087         G_PKG_NAME,
3088         'OKL_API.G_RET_STS_UNEXP_ERROR',
3089         x_msg_count,
3090         x_msg_data,
3091         '_PVT'
3092       );
3093     WHEN OTHERS THEN
3094       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
3095       (
3096         l_api_name,
3097         G_PKG_NAME,
3098         'OTHERS',
3099         x_msg_count,
3100         x_msg_data,
3101         '_PVT'
3102       );
3103   END validate_row;
3104   ---------------------------------------------------------------------------
3105   -- PROCEDURE insert_row
3106   ---------------------------------------------------------------------------
3107   ------------------------------------------
3108   -- insert_row for:OKL_TRX_AP_INVOICES_B --
3109   ------------------------------------------
3110   PROCEDURE insert_row(
3111     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3112     x_return_status                OUT NOCOPY VARCHAR2,
3113     x_msg_count                    OUT NOCOPY NUMBER,
3114     x_msg_data                     OUT NOCOPY VARCHAR2,
3115     p_tap_rec                      IN tap_rec_type,
3116     x_tap_rec                      OUT NOCOPY tap_rec_type) IS
3117     l_api_version                 CONSTANT NUMBER := 1;
3118     l_api_name                     CONSTANT VARCHAR2(30) := 'B_insert_row';
3119     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3120     l_tap_rec                      tap_rec_type := p_tap_rec;
3121     l_def_tap_rec                  tap_rec_type;
3122     ----------------------------------------------
3123     -- Set_Attributes for:OKL_TRX_AP_INVOICES_B --
3124     ----------------------------------------------
3125     FUNCTION Set_Attributes (
3126       p_tap_rec IN  tap_rec_type,
3127       x_tap_rec OUT NOCOPY tap_rec_type
3128     ) RETURN VARCHAR2 IS
3129       l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3130     BEGIN
3131       x_tap_rec := p_tap_rec;
3132       RETURN(l_return_status);
3133     END Set_Attributes;
3134   BEGIN
3135     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
3136                                               p_init_msg_list,
3137                                               '_PVT',
3138                                               x_return_status);
3139     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3140       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3141     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3142       RAISE OKL_API.G_EXCEPTION_ERROR;
3143     END IF;
3144     --- Setting item attributes
3145     l_return_status := Set_Attributes(
3146       p_tap_rec,                         -- IN
3147       l_tap_rec);                        -- OUT
3148     --- If any errors happen abort API
3149     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3150       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3151     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3152       RAISE OKL_API.G_EXCEPTION_ERROR;
3153     END IF;
3154     INSERT INTO OKL_TRX_AP_INVOICES_B(
3155         id,
3156         currency_code,
3157         payment_method_code,
3158         funding_type_code,
3159         invoice_category_code,
3160         ipvs_id,
3161         khr_id,
3162         ccf_id,
3163         cct_id,
3164         cplv_id,
3165         pox_id,
3166         ippt_id,
3167         code_combination_id,
3168         qte_id,
3169         art_id,
3170         tcn_id,
3171         vpa_id,
3172         ipt_id,
3173         tap_id_reverses,
3174         date_entered,
3175         date_invoiced,
3176         amount,
3177         trx_status_code, -- Post Postgen 14,15
3178         set_of_books_id, -- Post Postgen 14,15
3179         try_id,          -- Post Postgen 14,15
3180         object_version_number,
3181         date_requisition,
3182         date_funding_approved,
3183         invoice_number,
3184         date_gl,
3185         workflow_yn,
3186         match_required_yn,
3187         ipt_frequency,
3188         consolidate_yn,
3189         wait_vendor_invoice_yn,
3190         request_id,
3191         program_application_id,
3192         program_id,
3193         program_update_date,
3194         org_id,
3195         CURRENCY_CONVERSION_TYPE,
3196         CURRENCY_CONVERSION_RATE,
3197         CURRENCY_CONVERSION_DATE,
3198         vendor_id,
3199         attribute_category,
3200         attribute1,
3201         attribute2,
3202         attribute3,
3203         attribute4,
3204         attribute5,
3205         attribute6,
3206         attribute7,
3207         attribute8,
3208         attribute9,
3209         attribute10,
3210         attribute11,
3211         attribute12,
3212         attribute13,
3213         attribute14,
3214         attribute15,
3215         created_by,
3216         creation_date,
3217         last_updated_by,
3218         last_update_date,
3219         last_update_login,
3220         invoice_type,
3221         pay_group_lookup_code,
3222         vendor_invoice_number,
3223         nettable_yn,
3224         asset_tap_id,
3225  -- 30-OCT-2006 ANSETHUR  R12B - Legal Entity
3226         legal_entity_id
3227         ,transaction_date
3228         )
3229       VALUES (
3230         l_tap_rec.id,
3231         l_tap_rec.currency_code,
3232         l_tap_rec.payment_method_code,
3233         l_tap_rec.funding_type_code,
3234         l_tap_rec.invoice_category_code,
3235         l_tap_rec.ipvs_id,
3236         l_tap_rec.khr_id,
3237         l_tap_rec.ccf_id,
3238         l_tap_rec.cct_id,
3239         l_tap_rec.cplv_id,
3240         l_tap_rec.pox_id,
3241         l_tap_rec.ippt_id,
3242         l_tap_rec.code_combination_id,
3243         l_tap_rec.qte_id,
3244         l_tap_rec.art_id,
3245         l_tap_rec.tcn_id,
3246         l_tap_rec.vpa_id,
3247         l_tap_rec.ipt_id,
3248         l_tap_rec.tap_id_reverses,
3249         l_tap_rec.date_entered,
3250         l_tap_rec.date_invoiced,
3251         l_tap_rec.amount,
3252         l_tap_rec.trx_status_code, -- Post Postgen 14,15
3253         l_tap_rec.set_of_books_id, -- Post Postgen 14,15
3254         l_tap_rec.try_id,          -- Post Postgen 14,15
3255         l_tap_rec.object_version_number,
3256         l_tap_rec.date_requisition,
3257         l_tap_rec.date_funding_approved,
3258         l_tap_rec.invoice_number,
3259         l_tap_rec.date_gl,
3260         l_tap_rec.workflow_yn,
3261         l_tap_rec.match_required_yn,
3262         l_tap_rec.ipt_frequency,
3263         l_tap_rec.consolidate_yn,
3264         l_tap_rec.wait_vendor_invoice_yn,
3265         l_tap_rec.request_id,
3266         l_tap_rec.program_application_id,
3267         l_tap_rec.program_id,
3268         l_tap_rec.program_update_date,
3269         l_tap_rec.org_id,
3270         l_tap_rec.CURRENCY_CONVERSION_TYPE,
3271         l_tap_rec.CURRENCY_CONVERSION_RATE,
3272         l_tap_rec.CURRENCY_CONVERSION_DATE,
3273         l_tap_rec.vendor_id,
3274         l_tap_rec.attribute_category,
3275         l_tap_rec.attribute1,
3276         l_tap_rec.attribute2,
3277         l_tap_rec.attribute3,
3278         l_tap_rec.attribute4,
3279         l_tap_rec.attribute5,
3280         l_tap_rec.attribute6,
3281         l_tap_rec.attribute7,
3282         l_tap_rec.attribute8,
3283         l_tap_rec.attribute9,
3284         l_tap_rec.attribute10,
3285         l_tap_rec.attribute11,
3286         l_tap_rec.attribute12,
3287         l_tap_rec.attribute13,
3288         l_tap_rec.attribute14,
3289         l_tap_rec.attribute15,
3290         l_tap_rec.created_by,
3291         l_tap_rec.creation_date,
3292         l_tap_rec.last_updated_by,
3293         l_tap_rec.last_update_date,
3294         l_tap_rec.last_update_login,
3295         l_tap_rec.invoice_type,
3296         l_tap_rec.pay_group_lookup_code,
3297         l_tap_rec.vendor_invoice_number,
3298         l_tap_rec.nettable_yn,
3299         l_tap_rec.asset_tap_id,
3300  -- 30-OCT-2006 ANSETHUR  R12B - Legal Entity
3301         l_tap_rec.legal_entity_id
3302         ,NVL(l_tap_rec.transaction_date,SYSDATE)
3303         );
3304     -- Set OUT values
3305     x_tap_rec := l_tap_rec;
3306     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3307   EXCEPTION
3308     WHEN OKL_API.G_EXCEPTION_ERROR THEN
3309       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3310       (
3311         l_api_name,
3312         G_PKG_NAME,
3313         'OKL_API.G_RET_STS_ERROR',
3314         x_msg_count,
3315         x_msg_data,
3316         '_PVT'
3317       );
3318     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3319       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
3320       (
3321         l_api_name,
3322         G_PKG_NAME,
3323         'OKL_API.G_RET_STS_UNEXP_ERROR',
3324         x_msg_count,
3325         x_msg_data,
3326         '_PVT'
3327       );
3328     WHEN OTHERS THEN
3329       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
3330       (
3331         l_api_name,
3332         G_PKG_NAME,
3333         'OTHERS',
3334         x_msg_count,
3335         x_msg_data,
3336         '_PVT'
3337       );
3338   END insert_row;
3339   -------------------------------------------
3340   -- insert_row for:OKL_TRX_AP_INVOICES_TL --
3341   -------------------------------------------
3342   PROCEDURE insert_row(
3343     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3344     x_return_status                OUT NOCOPY VARCHAR2,
3345     x_msg_count                    OUT NOCOPY NUMBER,
3346     x_msg_data                     OUT NOCOPY VARCHAR2,
3347     p_okl_trx_ap_invoices_tl_rec   IN OklTrxApInvoicesTlRecType,
3348     x_okl_trx_ap_invoices_tl_rec   OUT NOCOPY OklTrxApInvoicesTlRecType) IS
3349     l_api_version                 CONSTANT NUMBER := 1;
3350     l_api_name                     CONSTANT VARCHAR2(30) := 'TL_insert_row';
3351     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3352     l_okl_trx_ap_invoices_tl_rec   OklTrxApInvoicesTlRecType := p_okl_trx_ap_invoices_tl_rec;
3353     ldefokltrxapinvoicestlrec      OklTrxApInvoicesTlRecType;
3354     CURSOR get_languages IS
3355       SELECT *
3356         FROM FND_LANGUAGES
3357        WHERE INSTALLED_FLAG IN ('I', 'B');
3358     -----------------------------------------------
3359     -- Set_Attributes for:OKL_TRX_AP_INVOICES_TL --
3360     -----------------------------------------------
3361     FUNCTION Set_Attributes (
3362       p_okl_trx_ap_invoices_tl_rec IN  OklTrxApInvoicesTlRecType,
3363       x_okl_trx_ap_invoices_tl_rec OUT NOCOPY OklTrxApInvoicesTlRecType
3364     ) RETURN VARCHAR2 IS
3365       l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3366     BEGIN
3367       x_okl_trx_ap_invoices_tl_rec := p_okl_trx_ap_invoices_tl_rec;
3368       x_okl_trx_ap_invoices_tl_rec.LANGUAGE := USERENV('LANG');
3369       x_okl_trx_ap_invoices_tl_rec.SOURCE_LANG := USERENV('LANG');
3370       RETURN(l_return_status);
3371     END Set_Attributes;
3372   BEGIN
3373     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
3374                                               p_init_msg_list,
3375                                               '_PVT',
3376                                               x_return_status);
3377     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3378       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3379     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3380       RAISE OKL_API.G_EXCEPTION_ERROR;
3381     END IF;
3382     --- Setting item attributes
3383     l_return_status := Set_Attributes(
3384       p_okl_trx_ap_invoices_tl_rec,      -- IN
3385       l_okl_trx_ap_invoices_tl_rec);     -- OUT
3386     --- If any errors happen abort API
3387     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3388       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3389     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3390       RAISE OKL_API.G_EXCEPTION_ERROR;
3391     END IF;
3392     FOR l_lang_rec IN get_languages LOOP
3393       l_okl_trx_ap_invoices_tl_rec.language := l_lang_rec.language_code;
3394       INSERT INTO OKL_TRX_AP_INVOICES_TL(
3395           id,
3396           language,
3397           source_lang,
3398           sfwt_flag,
3399           description,
3400           created_by,
3401           creation_date,
3402           last_updated_by,
3403           last_update_date,
3404           last_update_login)
3405         VALUES (
3406           l_okl_trx_ap_invoices_tl_rec.id,
3407           l_okl_trx_ap_invoices_tl_rec.language,
3408           l_okl_trx_ap_invoices_tl_rec.source_lang,
3409           l_okl_trx_ap_invoices_tl_rec.sfwt_flag,
3410           l_okl_trx_ap_invoices_tl_rec.description,
3411           l_okl_trx_ap_invoices_tl_rec.created_by,
3412           l_okl_trx_ap_invoices_tl_rec.creation_date,
3413           l_okl_trx_ap_invoices_tl_rec.last_updated_by,
3414           l_okl_trx_ap_invoices_tl_rec.last_update_date,
3415           l_okl_trx_ap_invoices_tl_rec.last_update_login);
3416     END LOOP;
3417     -- Set OUT values
3418     x_okl_trx_ap_invoices_tl_rec := l_okl_trx_ap_invoices_tl_rec;
3419     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3420   EXCEPTION
3421     WHEN OKL_API.G_EXCEPTION_ERROR THEN
3422       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3423       (
3424         l_api_name,
3425         G_PKG_NAME,
3426         'OKL_API.G_RET_STS_ERROR',
3427         x_msg_count,
3428         x_msg_data,
3429         '_PVT'
3430       );
3431     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3432       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
3433       (
3434         l_api_name,
3435         G_PKG_NAME,
3436         'OKL_API.G_RET_STS_UNEXP_ERROR',
3437         x_msg_count,
3438         x_msg_data,
3439         '_PVT'
3440       );
3441     WHEN OTHERS THEN
3442       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
3443       (
3444         l_api_name,
3445         G_PKG_NAME,
3446         'OTHERS',
3447         x_msg_count,
3448         x_msg_data,
3449         '_PVT'
3450       );
3451   END insert_row;
3452   ------------------------------------------
3453   -- insert_row for:OKL_TRX_AP_INVOICES_V --
3454   ------------------------------------------
3455   PROCEDURE insert_row(
3456     p_api_version                  IN NUMBER,
3457     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3458     x_return_status                OUT NOCOPY VARCHAR2,
3459     x_msg_count                    OUT NOCOPY NUMBER,
3460     x_msg_data                     OUT NOCOPY VARCHAR2,
3461     p_tapv_rec                     IN tapv_rec_type,
3462     x_tapv_rec                     OUT NOCOPY tapv_rec_type) IS
3463     l_api_version                 CONSTANT NUMBER := 1;
3464     l_api_name                     CONSTANT VARCHAR2(30) := 'V_insert_row';
3465     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3466     l_tapv_rec                     tapv_rec_type;
3467     l_def_tapv_rec                 tapv_rec_type;
3468     l_tap_rec                      tap_rec_type;
3469     lx_tap_rec                     tap_rec_type;
3470     l_okl_trx_ap_invoices_tl_rec   OklTrxApInvoicesTlRecType;
3471     lx_okl_trx_ap_invoices_tl_rec  OklTrxApInvoicesTlRecType;
3472     -------------------------------
3473     -- FUNCTION fill_who_columns --
3474     -------------------------------
3475     FUNCTION fill_who_columns (
3476       p_tapv_rec	IN tapv_rec_type
3477     ) RETURN tapv_rec_type IS
3478       l_tapv_rec	tapv_rec_type := p_tapv_rec;
3479     BEGIN
3480       l_tapv_rec.CREATION_DATE := SYSDATE;
3481       l_tapv_rec.CREATED_BY := FND_GLOBAL.USER_ID;
3482       l_tapv_rec.LAST_UPDATE_DATE := l_tapv_rec.CREATION_DATE;
3483       l_tapv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
3484       l_tapv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
3485       RETURN(l_tapv_rec);
3486     END fill_who_columns;
3487     ----------------------------------------------
3488     -- Set_Attributes for:OKL_TRX_AP_INVOICES_V --
3489     ----------------------------------------------
3490     FUNCTION Set_Attributes (
3491       p_tapv_rec IN  tapv_rec_type,
3492       x_tapv_rec OUT NOCOPY tapv_rec_type
3493     ) RETURN VARCHAR2 IS
3494       l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3495     BEGIN
3496       x_tapv_rec := p_tapv_rec;
3497       x_tapv_rec.OBJECT_VERSION_NUMBER := 1;
3498       x_tapv_rec.SFWT_FLAG := 'N';
3499       -- Start PostGen-7
3500       SELECT
3501         DECODE(Fnd_Global.CONC_REQUEST_ID,-1,NULL,Fnd_Global.CONC_REQUEST_ID),
3502         DECODE(Fnd_Global.PROG_APPL_ID,   -1,NULL,Fnd_Global.PROG_APPL_ID),
3503         DECODE(Fnd_Global.CONC_PROGRAM_ID,-1,NULL,Fnd_Global.CONC_PROGRAM_ID),
3504         DECODE(Fnd_Global.CONC_REQUEST_ID,-1,NULL,SYSDATE)
3505       INTO
3506         x_tapv_rec.request_id,
3507         x_tapv_rec.program_application_id,
3508         x_tapv_rec.program_id,
3509         x_tapv_rec.program_update_date
3510       FROM   dual;
3511       -- End PostGen-7
3512       RETURN(l_return_status);
3513     END Set_Attributes;
3514   BEGIN
3515     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
3516                                               G_PKG_NAME,
3517                                               p_init_msg_list,
3518                                               l_api_version,
3519                                               p_api_version,
3520                                               '_PVT',
3521                                               x_return_status);
3522     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3523       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3524     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3525       RAISE OKL_API.G_EXCEPTION_ERROR;
3526     END IF;
3527     l_tapv_rec := null_out_defaults(p_tapv_rec);
3528     -- Set primary key value
3529     l_tapv_rec.ID := get_seq_id;
3530     --- Setting item attributes
3531     l_return_status := Set_Attributes(
3532       l_tapv_rec,                        -- IN
3533       l_def_tapv_rec);                   -- OUT
3534     --- If any errors happen abort API
3535     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3536       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3537     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3538       RAISE OKL_API.G_EXCEPTION_ERROR;
3539     END IF;
3540     l_def_tapv_rec := fill_who_columns(l_def_tapv_rec);
3541     --- Validate all non-missing attributes (Item Level Validation)
3542     l_return_status := Validate_Attributes(l_def_tapv_rec);
3543     --- If any errors happen abort API
3544     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3545       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3546     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3547       RAISE OKL_API.G_EXCEPTION_ERROR;
3548     END IF;
3549     l_return_status := Validate_Record(l_def_tapv_rec);
3550     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3551       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3552     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3553       RAISE OKL_API.G_EXCEPTION_ERROR;
3554     END IF;
3555     --------------------------------------
3556     -- Move VIEW record to "Child" records
3557     --------------------------------------
3558     migrate(l_def_tapv_rec, l_tap_rec);
3559     migrate(l_def_tapv_rec, l_okl_trx_ap_invoices_tl_rec);
3560     --------------------------------------------
3561     -- Call the INSERT_ROW for each child record
3562     --------------------------------------------
3563     insert_row(
3564       p_init_msg_list,
3565       x_return_status,
3566       x_msg_count,
3567       x_msg_data,
3568       l_tap_rec,
3569       lx_tap_rec
3570     );
3571     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3572       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3573     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3574       RAISE OKL_API.G_EXCEPTION_ERROR;
3575     END IF;
3576     migrate(lx_tap_rec, l_def_tapv_rec);
3577     insert_row(
3578       p_init_msg_list,
3579       x_return_status,
3580       x_msg_count,
3581       x_msg_data,
3582       l_okl_trx_ap_invoices_tl_rec,
3583       lx_okl_trx_ap_invoices_tl_rec
3584     );
3585     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3586       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3587     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3588       RAISE OKL_API.G_EXCEPTION_ERROR;
3589     END IF;
3590     migrate(lx_okl_trx_ap_invoices_tl_rec, l_def_tapv_rec);
3591     -- Set OUT values
3592     x_tapv_rec := l_def_tapv_rec;
3593     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3594   EXCEPTION
3595     WHEN OKL_API.G_EXCEPTION_ERROR THEN
3596       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3597       (
3598         l_api_name,
3599         G_PKG_NAME,
3600         'OKL_API.G_RET_STS_ERROR',
3601         x_msg_count,
3602         x_msg_data,
3603         '_PVT'
3604       );
3605     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3606       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
3607       (
3608         l_api_name,
3609         G_PKG_NAME,
3610         'OKL_API.G_RET_STS_UNEXP_ERROR',
3611         x_msg_count,
3612         x_msg_data,
3613         '_PVT'
3614       );
3615     WHEN OTHERS THEN
3616       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
3617       (
3618         l_api_name,
3619         G_PKG_NAME,
3620         'OTHERS',
3621         x_msg_count,
3622         x_msg_data,
3623         '_PVT'
3624       );
3625   END insert_row;
3626   ----------------------------------------
3627   -- PL/SQL TBL insert_row for:TAPV_TBL --
3628   ----------------------------------------
3629   PROCEDURE insert_row(
3630     p_api_version                  IN NUMBER,
3631     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3632     x_return_status                OUT NOCOPY VARCHAR2,
3633     x_msg_count                    OUT NOCOPY NUMBER,
3634     x_msg_data                     OUT NOCOPY VARCHAR2,
3635     p_tapv_tbl                     IN tapv_tbl_type,
3636     x_tapv_tbl                     OUT NOCOPY tapv_tbl_type) IS
3637     l_api_version                 CONSTANT NUMBER := 1;
3638     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
3639     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3640     l_overall_status               VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;     -- PostGen-9
3641     i                              NUMBER := 0;
3642   BEGIN
3643     OKL_API.init_msg_list(p_init_msg_list);
3644     -- Make sure PL/SQL table has records in it before passing
3645     IF (p_tapv_tbl.COUNT > 0) THEN
3646       i := p_tapv_tbl.FIRST;
3647       LOOP
3648         insert_row (
3649           p_api_version                  => p_api_version,
3650           p_init_msg_list                => OKL_API.G_FALSE,
3651           x_return_status                => x_return_status,
3652           x_msg_count                    => x_msg_count,
3653           x_msg_data                     => x_msg_data,
3654           p_tapv_rec                     => p_tapv_tbl(i),
3655           x_tapv_rec                     => x_tapv_tbl(i));
3656         -- Store the highest degree of error                             -- PostGen-9
3657         IF x_return_status <> OKL_API.G_RET_STS_SUCCESS THEN             -- PostGen-9
3658            IF l_overall_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN     -- PostGen-9
3659               l_overall_status := x_return_status;                       -- PostGen-9
3660            END IF;                                                       -- PostGen-9
3661         END IF;                                                          -- PostGen-9
3662         EXIT WHEN (i = p_tapv_tbl.LAST);
3663         i := p_tapv_tbl.NEXT(i);
3664       END LOOP;
3665       x_return_status := l_overall_status;     -- PostGen-9 = return overall status
3666     END IF;
3667   EXCEPTION
3668     WHEN OKL_API.G_EXCEPTION_ERROR THEN
3669       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3670       (
3671         l_api_name,
3672         G_PKG_NAME,
3673         'OKL_API.G_RET_STS_ERROR',
3674         x_msg_count,
3675         x_msg_data,
3676         '_PVT'
3677       );
3678     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3679       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
3680       (
3681         l_api_name,
3682         G_PKG_NAME,
3683         'OKL_API.G_RET_STS_UNEXP_ERROR',
3684         x_msg_count,
3685         x_msg_data,
3686         '_PVT'
3687       );
3688     WHEN OTHERS THEN
3689       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
3690       (
3691         l_api_name,
3692         G_PKG_NAME,
3693         'OTHERS',
3694         x_msg_count,
3695         x_msg_data,
3696         '_PVT'
3697       );
3698   END insert_row;
3699   ---------------------------------------------------------------------------
3700   -- PROCEDURE lock_row
3701   ---------------------------------------------------------------------------
3702   ----------------------------------------
3703   -- lock_row for:OKL_TRX_AP_INVOICES_B --
3704   ----------------------------------------
3705   PROCEDURE lock_row(
3706     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3707     x_return_status                OUT NOCOPY VARCHAR2,
3708     x_msg_count                    OUT NOCOPY NUMBER,
3709     x_msg_data                     OUT NOCOPY VARCHAR2,
3710     p_tap_rec                      IN tap_rec_type) IS
3711     E_Resource_Busy               EXCEPTION;
3712     PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
3713     CURSOR lock_csr (p_tap_rec IN tap_rec_type) IS
3714     SELECT OBJECT_VERSION_NUMBER
3715       FROM OKL_TRX_AP_INVOICES_B
3716      WHERE ID = p_tap_rec.id
3717        AND OBJECT_VERSION_NUMBER = p_tap_rec.object_version_number
3718     FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
3719     CURSOR  lchk_csr (p_tap_rec IN tap_rec_type) IS
3720     SELECT OBJECT_VERSION_NUMBER
3721       FROM OKL_TRX_AP_INVOICES_B
3722     WHERE ID = p_tap_rec.id;
3723     l_api_version                 CONSTANT NUMBER := 1;
3724     l_api_name                     CONSTANT VARCHAR2(30) := 'B_lock_row';
3725     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3726     l_object_version_number       OKL_TRX_AP_INVOICES_B.OBJECT_VERSION_NUMBER%TYPE;
3727     lc_object_version_number      OKL_TRX_AP_INVOICES_B.OBJECT_VERSION_NUMBER%TYPE;
3728     l_row_notfound                BOOLEAN := FALSE;
3729     lc_row_notfound               BOOLEAN := FALSE;
3730   BEGIN
3731     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
3732                                               p_init_msg_list,
3733                                               '_PVT',
3734                                               x_return_status);
3735     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3736       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3737     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3738       RAISE OKL_API.G_EXCEPTION_ERROR;
3739     END IF;
3740     BEGIN
3741       OPEN lock_csr(p_tap_rec);
3742       FETCH lock_csr INTO l_object_version_number;
3743       l_row_notfound := lock_csr%NOTFOUND;
3744       CLOSE lock_csr;
3745     EXCEPTION
3746       WHEN E_Resource_Busy THEN
3747         IF (lock_csr%ISOPEN) THEN
3748           CLOSE lock_csr;
3749         END IF;
3750         OKL_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
3751         RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
3752     END;
3753     IF ( l_row_notfound ) THEN
3754       OPEN lchk_csr(p_tap_rec);
3755       FETCH lchk_csr INTO lc_object_version_number;
3756       lc_row_notfound := lchk_csr%NOTFOUND;
3757       CLOSE lchk_csr;
3758     END IF;
3759     IF (lc_row_notfound) THEN
3760       OKL_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
3761       RAISE OKL_API.G_EXCEPTION_ERROR;
3762     ELSIF lc_object_version_number > p_tap_rec.object_version_number THEN
3763       OKL_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
3764       RAISE OKL_API.G_EXCEPTION_ERROR;
3765     ELSIF lc_object_version_number <> p_tap_rec.object_version_number THEN
3766       OKL_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
3767       RAISE OKL_API.G_EXCEPTION_ERROR;
3768     ELSIF lc_object_version_number = -1 THEN
3769       OKL_API.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
3770       RAISE OKL_API.G_EXCEPTION_ERROR;
3771     END IF;
3772     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3773   EXCEPTION
3774     WHEN OKL_API.G_EXCEPTION_ERROR THEN
3775       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3776       (
3777         l_api_name,
3778         G_PKG_NAME,
3779         'OKL_API.G_RET_STS_ERROR',
3780         x_msg_count,
3781         x_msg_data,
3782         '_PVT'
3783       );
3784     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3785       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
3786       (
3787         l_api_name,
3788         G_PKG_NAME,
3789         'OKL_API.G_RET_STS_UNEXP_ERROR',
3790         x_msg_count,
3791         x_msg_data,
3792         '_PVT'
3793       );
3794     WHEN OTHERS THEN
3795       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
3796       (
3797         l_api_name,
3798         G_PKG_NAME,
3799         'OTHERS',
3800         x_msg_count,
3801         x_msg_data,
3802         '_PVT'
3803       );
3804   END lock_row;
3805   -----------------------------------------
3806   -- lock_row for:OKL_TRX_AP_INVOICES_TL --
3807   -----------------------------------------
3808   PROCEDURE lock_row(
3809     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3810     x_return_status                OUT NOCOPY VARCHAR2,
3811     x_msg_count                    OUT NOCOPY NUMBER,
3812     x_msg_data                     OUT NOCOPY VARCHAR2,
3813     p_okl_trx_ap_invoices_tl_rec   IN OklTrxApInvoicesTlRecType) IS
3814     E_Resource_Busy               EXCEPTION;
3815     PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
3816     CURSOR lock_csr (p_okl_trx_ap_invoices_tl_rec IN OklTrxApInvoicesTlRecType) IS
3817     SELECT *
3818       FROM OKL_TRX_AP_INVOICES_TL
3819      WHERE ID = p_okl_trx_ap_invoices_tl_rec.id
3820     FOR UPDATE NOWAIT;
3821     l_api_version                 CONSTANT NUMBER := 1;
3822     l_api_name                     CONSTANT VARCHAR2(30) := 'TL_lock_row';
3823     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3824     l_lock_var                    lock_csr%ROWTYPE;
3825     l_row_notfound                BOOLEAN := FALSE;
3826     lc_row_notfound               BOOLEAN := FALSE;
3827   BEGIN
3828     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
3829                                               p_init_msg_list,
3830                                               '_PVT',
3831                                               x_return_status);
3832     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3833       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3834     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3835       RAISE OKL_API.G_EXCEPTION_ERROR;
3836     END IF;
3837     BEGIN
3838       OPEN lock_csr(p_okl_trx_ap_invoices_tl_rec);
3839       FETCH lock_csr INTO l_lock_var;
3840       l_row_notfound := lock_csr%NOTFOUND;
3841       CLOSE lock_csr;
3842     EXCEPTION
3843       WHEN E_Resource_Busy THEN
3844         IF (lock_csr%ISOPEN) THEN
3845           CLOSE lock_csr;
3846         END IF;
3847         OKL_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
3848         RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
3849     END;
3850     IF ( l_row_notfound ) THEN
3851       OKL_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
3852       RAISE OKL_API.G_EXCEPTION_ERROR;
3853     END IF;
3854     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3855   EXCEPTION
3856     WHEN OKL_API.G_EXCEPTION_ERROR THEN
3857       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3858       (
3859         l_api_name,
3860         G_PKG_NAME,
3861         'OKL_API.G_RET_STS_ERROR',
3862         x_msg_count,
3863         x_msg_data,
3864         '_PVT'
3865       );
3866     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3867       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
3868       (
3869         l_api_name,
3870         G_PKG_NAME,
3871         'OKL_API.G_RET_STS_UNEXP_ERROR',
3872         x_msg_count,
3873         x_msg_data,
3874         '_PVT'
3875       );
3876     WHEN OTHERS THEN
3877       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
3878       (
3879         l_api_name,
3880         G_PKG_NAME,
3881         'OTHERS',
3882         x_msg_count,
3883         x_msg_data,
3884         '_PVT'
3885       );
3886   END lock_row;
3887   ----------------------------------------
3888   -- lock_row for:OKL_TRX_AP_INVOICES_V --
3889   ----------------------------------------
3890   PROCEDURE lock_row(
3891     p_api_version                  IN NUMBER,
3892     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3893     x_return_status                OUT NOCOPY VARCHAR2,
3894     x_msg_count                    OUT NOCOPY NUMBER,
3895     x_msg_data                     OUT NOCOPY VARCHAR2,
3896     p_tapv_rec                     IN tapv_rec_type) IS
3897     l_api_version                 CONSTANT NUMBER := 1;
3898     l_api_name                     CONSTANT VARCHAR2(30) := 'V_lock_row';
3899     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3900     l_tap_rec                      tap_rec_type;
3901     l_okl_trx_ap_invoices_tl_rec   OklTrxApInvoicesTlRecType;
3902   BEGIN
3903     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
3904                                               G_PKG_NAME,
3905                                               p_init_msg_list,
3906                                               l_api_version,
3907                                               p_api_version,
3908                                               '_PVT',
3909                                               x_return_status);
3910     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3911       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3912     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3913       RAISE OKL_API.G_EXCEPTION_ERROR;
3914     END IF;
3915     --------------------------------------
3916     -- Move VIEW record to "Child" records
3917     --------------------------------------
3918     migrate(p_tapv_rec, l_tap_rec);
3919     migrate(p_tapv_rec, l_okl_trx_ap_invoices_tl_rec);
3920     --------------------------------------------
3921     -- Call the LOCK_ROW for each child record
3922     --------------------------------------------
3923     lock_row(
3924       p_init_msg_list,
3925       x_return_status,
3926       x_msg_count,
3927       x_msg_data,
3928       l_tap_rec
3929     );
3930     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3931       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3932     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3933       RAISE OKL_API.G_EXCEPTION_ERROR;
3934     END IF;
3935     lock_row(
3936       p_init_msg_list,
3937       x_return_status,
3938       x_msg_count,
3939       x_msg_data,
3940       l_okl_trx_ap_invoices_tl_rec
3941     );
3942     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3943       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3944     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3945       RAISE OKL_API.G_EXCEPTION_ERROR;
3946     END IF;
3947     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3948   EXCEPTION
3949     WHEN OKL_API.G_EXCEPTION_ERROR THEN
3950       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3951       (
3952         l_api_name,
3953         G_PKG_NAME,
3954         'OKL_API.G_RET_STS_ERROR',
3955         x_msg_count,
3956         x_msg_data,
3957         '_PVT'
3958       );
3959     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3960       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
3961       (
3962         l_api_name,
3963         G_PKG_NAME,
3964         'OKL_API.G_RET_STS_UNEXP_ERROR',
3965         x_msg_count,
3966         x_msg_data,
3967         '_PVT'
3968       );
3969     WHEN OTHERS THEN
3970       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
3971       (
3972         l_api_name,
3973         G_PKG_NAME,
3974         'OTHERS',
3975         x_msg_count,
3976         x_msg_data,
3977         '_PVT'
3978       );
3979   END lock_row;
3980   --------------------------------------
3981   -- PL/SQL TBL lock_row for:TAPV_TBL --
3982   --------------------------------------
3983   PROCEDURE lock_row(
3984     p_api_version                  IN NUMBER,
3985     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3986     x_return_status                OUT NOCOPY VARCHAR2,
3987     x_msg_count                    OUT NOCOPY NUMBER,
3988     x_msg_data                     OUT NOCOPY VARCHAR2,
3989     p_tapv_tbl                     IN tapv_tbl_type) IS
3990     l_api_version                 CONSTANT NUMBER := 1;
3991     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
3992     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3993     l_overall_status               VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;     -- PostGen-9
3994     i                              NUMBER := 0;
3995   BEGIN
3996     OKL_API.init_msg_list(p_init_msg_list);
3997     -- Make sure PL/SQL table has records in it before passing
3998     IF (p_tapv_tbl.COUNT > 0) THEN
3999       i := p_tapv_tbl.FIRST;
4000       LOOP
4001         lock_row (
4002           p_api_version                  => p_api_version,
4003           p_init_msg_list                => OKL_API.G_FALSE,
4004           x_return_status                => x_return_status,
4005           x_msg_count                    => x_msg_count,
4006           x_msg_data                     => x_msg_data,
4007           p_tapv_rec                     => p_tapv_tbl(i));
4008         -- Store the highest degree of error                             -- PostGen-9
4009         IF x_return_status <> OKL_API.G_RET_STS_SUCCESS THEN             -- PostGen-9
4010            IF l_overall_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN     -- PostGen-9
4011               l_overall_status := x_return_status;                       -- PostGen-9
4012            END IF;                                                       -- PostGen-9
4013         END IF;                                                          -- PostGen-9
4014         EXIT WHEN (i = p_tapv_tbl.LAST);
4015         i := p_tapv_tbl.NEXT(i);
4016       END LOOP;
4017       x_return_status := l_overall_status;     -- PostGen-9 = return overall status
4018     END IF;
4019   EXCEPTION
4020     WHEN OKL_API.G_EXCEPTION_ERROR THEN
4021       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4022       (
4023         l_api_name,
4024         G_PKG_NAME,
4025         'OKL_API.G_RET_STS_ERROR',
4026         x_msg_count,
4027         x_msg_data,
4028         '_PVT'
4029       );
4030     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4031       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
4032       (
4033         l_api_name,
4034         G_PKG_NAME,
4035         'OKL_API.G_RET_STS_UNEXP_ERROR',
4036         x_msg_count,
4037         x_msg_data,
4038         '_PVT'
4039       );
4040     WHEN OTHERS THEN
4041       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
4042       (
4043         l_api_name,
4044         G_PKG_NAME,
4045         'OTHERS',
4046         x_msg_count,
4047         x_msg_data,
4048         '_PVT'
4049       );
4050   END lock_row;
4051   ---------------------------------------------------------------------------
4052   -- PROCEDURE update_row
4053   ---------------------------------------------------------------------------
4054   ------------------------------------------
4055   -- update_row for:OKL_TRX_AP_INVOICES_B --
4056   ------------------------------------------
4057   PROCEDURE update_row(
4058     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
4059     x_return_status                OUT NOCOPY VARCHAR2,
4060     x_msg_count                    OUT NOCOPY NUMBER,
4061     x_msg_data                     OUT NOCOPY VARCHAR2,
4062     p_tap_rec                      IN tap_rec_type,
4063     x_tap_rec                      OUT NOCOPY tap_rec_type) IS
4064     l_api_version                 CONSTANT NUMBER := 1;
4065     l_api_name                     CONSTANT VARCHAR2(30) := 'B_update_row';
4066     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4067     l_tap_rec                      tap_rec_type := p_tap_rec;
4068     l_def_tap_rec                  tap_rec_type;
4069     l_row_notfound                 BOOLEAN := TRUE;
4070     ----------------------------------
4071     -- FUNCTION populate_new_record --
4072     ----------------------------------
4073     FUNCTION populate_new_record (
4074       p_tap_rec	IN tap_rec_type,
4075       x_tap_rec	OUT NOCOPY tap_rec_type
4076     ) RETURN VARCHAR2 IS
4077       l_tap_rec                      tap_rec_type;
4078       l_row_notfound                 BOOLEAN := TRUE;
4079       l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4080     BEGIN
4081       x_tap_rec := p_tap_rec;
4082       -- Get current database values
4083       l_tap_rec := get_rec(p_tap_rec, l_row_notfound);
4084       IF (l_row_notfound) THEN
4085         l_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
4086       END IF;
4087       IF (x_tap_rec.id = OKL_API.G_MISS_NUM)
4088       THEN
4089         x_tap_rec.id := l_tap_rec.id;
4090       END IF;
4091       IF (x_tap_rec.currency_code = OKL_API.G_MISS_CHAR)
4092       THEN
4093         x_tap_rec.currency_code := l_tap_rec.currency_code;
4094       END IF;
4095       IF (x_tap_rec.payment_method_code = OKL_API.G_MISS_CHAR)
4096       THEN
4097         x_tap_rec.payment_method_code := l_tap_rec.payment_method_code;
4098       END IF;
4099       IF (x_tap_rec.funding_type_code = OKL_API.G_MISS_CHAR)
4100       THEN
4101         x_tap_rec.funding_type_code := l_tap_rec.funding_type_code;
4102       END IF;
4103       IF (x_tap_rec.invoice_category_code = OKL_API.G_MISS_CHAR)
4104       THEN
4105         x_tap_rec.invoice_category_code := l_tap_rec.invoice_category_code;
4106       END IF;
4107       IF (x_tap_rec.ipvs_id = OKL_API.G_MISS_NUM)
4108       THEN
4109         x_tap_rec.ipvs_id := l_tap_rec.ipvs_id;
4110       END IF;
4111       IF (x_tap_rec.khr_id = OKL_API.G_MISS_NUM)
4112       THEN
4113         x_tap_rec.khr_id := l_tap_rec.khr_id;
4114       END IF;
4115       IF (x_tap_rec.ccf_id = OKL_API.G_MISS_NUM)
4116       THEN
4117         x_tap_rec.ccf_id := l_tap_rec.ccf_id;
4118       END IF;
4119       IF (x_tap_rec.cct_id = OKL_API.G_MISS_NUM)
4120       THEN
4121         x_tap_rec.cct_id := l_tap_rec.cct_id;
4122       END IF;
4123       IF (x_tap_rec.cplv_id = OKL_API.G_MISS_NUM)
4124       THEN
4125         x_tap_rec.cplv_id := l_tap_rec.cplv_id;
4126       END IF;
4127 
4128       --Start code added by pgomes on 19-NOV-2002
4129       IF (x_tap_rec.pox_id = OKL_API.G_MISS_NUM)
4130       THEN
4131         x_tap_rec.pox_id := l_tap_rec.pox_id;
4132       END IF;
4133       --End code added by pgomes on 19-NOV-2002
4134 
4135       IF (x_tap_rec.ippt_id = OKL_API.G_MISS_NUM)
4136       THEN
4137         x_tap_rec.ippt_id := l_tap_rec.ippt_id;
4138       END IF;
4139       IF (x_tap_rec.code_combination_id = OKL_API.G_MISS_NUM)
4140       THEN
4141         x_tap_rec.code_combination_id := l_tap_rec.code_combination_id;
4142       END IF;
4143       IF (x_tap_rec.qte_id = OKL_API.G_MISS_NUM)
4144       THEN
4145         x_tap_rec.qte_id := l_tap_rec.qte_id;
4146       END IF;
4147       IF (x_tap_rec.art_id = OKL_API.G_MISS_NUM)
4148       THEN
4149         x_tap_rec.art_id := l_tap_rec.art_id;
4150       END IF;
4151       IF (x_tap_rec.tcn_id = OKL_API.G_MISS_NUM)
4152       THEN
4153         x_tap_rec.tcn_id := l_tap_rec.tcn_id;
4154       END IF;
4155       IF (x_tap_rec.vpa_id = OKL_API.G_MISS_NUM)
4156       THEN
4157         x_tap_rec.vpa_id := l_tap_rec.vpa_id;
4158       END IF;
4159       IF (x_tap_rec.ipt_id = OKL_API.G_MISS_NUM)
4160       THEN
4161         x_tap_rec.ipt_id := l_tap_rec.ipt_id;
4162       END IF;
4163       IF (x_tap_rec.tap_id_reverses = OKL_API.G_MISS_NUM)
4164       THEN
4165         x_tap_rec.tap_id_reverses := l_tap_rec.tap_id_reverses;
4166       END IF;
4167       IF (x_tap_rec.date_entered = OKL_API.G_MISS_DATE)
4168       THEN
4169         x_tap_rec.date_entered := l_tap_rec.date_entered;
4170       END IF;
4171       IF (x_tap_rec.date_invoiced = OKL_API.G_MISS_DATE)
4172       THEN
4173         x_tap_rec.date_invoiced := l_tap_rec.date_invoiced;
4174       END IF;
4175       IF (x_tap_rec.amount = OKL_API.G_MISS_NUM)
4176       THEN
4177         x_tap_rec.amount := l_tap_rec.amount;
4178       END IF;
4179       -- Start Post Postgen 14,15
4180       IF (x_tap_rec.trx_status_code = OKL_API.G_MISS_CHAR)
4181       THEN
4182         x_tap_rec.trx_status_code := l_tap_rec.trx_status_code;
4183       END IF;
4184       IF (x_tap_rec.set_of_books_id = OKL_API.G_MISS_NUM)
4185       THEN
4186         x_tap_rec.set_of_books_id := l_tap_rec.set_of_books_id;
4187       END IF;
4188       IF (x_tap_rec.try_id = OKL_API.G_MISS_NUM)
4189       THEN
4190         x_tap_rec.try_id := l_tap_rec.try_id;
4191       END IF;
4192       -- End Post Postgen 14,15
4193       IF (x_tap_rec.object_version_number = OKL_API.G_MISS_NUM)
4194       THEN
4195         x_tap_rec.object_version_number := l_tap_rec.object_version_number;
4196       END IF;
4197       IF (x_tap_rec.date_requisition = OKL_API.G_MISS_DATE)
4198       THEN
4199         x_tap_rec.date_requisition := l_tap_rec.date_requisition;
4200       END IF;
4201       IF (x_tap_rec.date_funding_approved = OKL_API.G_MISS_DATE)
4202       THEN
4203         x_tap_rec.date_funding_approved := l_tap_rec.date_funding_approved;
4204       END IF;
4205       IF (x_tap_rec.invoice_number = OKL_API.G_MISS_CHAR)
4206       THEN
4207         x_tap_rec.invoice_number := l_tap_rec.invoice_number;
4208       END IF;
4209       IF (x_tap_rec.date_gl = OKL_API.G_MISS_DATE)
4210       THEN
4211         x_tap_rec.date_gl := l_tap_rec.date_gl;
4212       END IF;
4213       IF (x_tap_rec.workflow_yn = OKL_API.G_MISS_CHAR)
4214       THEN
4215         x_tap_rec.workflow_yn := l_tap_rec.workflow_yn;
4216       END IF;
4217       IF (x_tap_rec.match_required_yn = OKL_API.G_MISS_CHAR)
4218       THEN
4219         x_tap_rec.match_required_yn := l_tap_rec.match_required_yn;
4220       END IF;
4221       IF (x_tap_rec.ipt_frequency = OKL_API.G_MISS_CHAR)
4222       THEN
4223         x_tap_rec.ipt_frequency := l_tap_rec.ipt_frequency;
4224       END IF;
4225       IF (x_tap_rec.consolidate_yn = OKL_API.G_MISS_CHAR)
4226       THEN
4227         x_tap_rec.consolidate_yn := l_tap_rec.consolidate_yn;
4228       END IF;
4229       IF (x_tap_rec.wait_vendor_invoice_yn = OKL_API.G_MISS_CHAR)
4230       THEN
4231         x_tap_rec.wait_vendor_invoice_yn := l_tap_rec.wait_vendor_invoice_yn;
4232       END IF;
4233       IF (x_tap_rec.request_id = OKL_API.G_MISS_NUM)
4234       THEN
4235         x_tap_rec.request_id := l_tap_rec.request_id;
4236       END IF;
4237       IF (x_tap_rec.program_application_id = OKL_API.G_MISS_NUM)
4238       THEN
4239         x_tap_rec.program_application_id := l_tap_rec.program_application_id;
4240       END IF;
4241       IF (x_tap_rec.program_id = OKL_API.G_MISS_NUM)
4242       THEN
4243         x_tap_rec.program_id := l_tap_rec.program_id;
4244       END IF;
4245       IF (x_tap_rec.program_update_date = OKL_API.G_MISS_DATE)
4246       THEN
4247         x_tap_rec.program_update_date := l_tap_rec.program_update_date;
4248       END IF;
4249       IF (x_tap_rec.org_id = OKL_API.G_MISS_NUM)
4250       THEN
4251         x_tap_rec.org_id := l_tap_rec.org_id;
4252       END IF;
4253       IF (x_tap_rec.CURRENCY_CONVERSION_TYPE = OKL_API.G_MISS_CHAR) THEN
4254         x_tap_rec.CURRENCY_CONVERSION_TYPE := l_tap_rec.CURRENCY_CONVERSION_TYPE;
4255       END IF;
4256       IF (x_tap_rec.CURRENCY_CONVERSION_RATE = OKL_API.G_MISS_NUM) THEN
4257         x_tap_rec.CURRENCY_CONVERSION_RATE := l_tap_rec.CURRENCY_CONVERSION_RATE;
4258       END IF;
4259       IF (x_tap_rec.CURRENCY_CONVERSION_DATE = OKL_API.G_MISS_DATE) THEN
4260         x_tap_rec.CURRENCY_CONVERSION_DATE := l_tap_rec.CURRENCY_CONVERSION_DATE;
4261       END IF;
4262 
4263       IF (x_tap_rec.VENDOR_ID = OKL_API.G_MISS_NUM) THEN
4264         x_tap_rec.VENDOR_ID := l_tap_rec.VENDOR_ID;
4265       END IF;
4266 
4267       IF (x_tap_rec.attribute_category = OKL_API.G_MISS_CHAR)
4268       THEN
4269         x_tap_rec.attribute_category := l_tap_rec.attribute_category;
4270       END IF;
4271       IF (x_tap_rec.attribute1 = OKL_API.G_MISS_CHAR)
4272       THEN
4273         x_tap_rec.attribute1 := l_tap_rec.attribute1;
4274       END IF;
4275       IF (x_tap_rec.attribute2 = OKL_API.G_MISS_CHAR)
4276       THEN
4277         x_tap_rec.attribute2 := l_tap_rec.attribute2;
4278       END IF;
4279       IF (x_tap_rec.attribute3 = OKL_API.G_MISS_CHAR)
4280       THEN
4281         x_tap_rec.attribute3 := l_tap_rec.attribute3;
4282       END IF;
4283       IF (x_tap_rec.attribute4 = OKL_API.G_MISS_CHAR)
4284       THEN
4285         x_tap_rec.attribute4 := l_tap_rec.attribute4;
4286       END IF;
4287       IF (x_tap_rec.attribute5 = OKL_API.G_MISS_CHAR)
4288       THEN
4289         x_tap_rec.attribute5 := l_tap_rec.attribute5;
4290       END IF;
4291       IF (x_tap_rec.attribute6 = OKL_API.G_MISS_CHAR)
4292       THEN
4293         x_tap_rec.attribute6 := l_tap_rec.attribute6;
4294       END IF;
4295       IF (x_tap_rec.attribute7 = OKL_API.G_MISS_CHAR)
4296       THEN
4297         x_tap_rec.attribute7 := l_tap_rec.attribute7;
4298       END IF;
4299       IF (x_tap_rec.attribute8 = OKL_API.G_MISS_CHAR)
4300       THEN
4301         x_tap_rec.attribute8 := l_tap_rec.attribute8;
4302       END IF;
4303       IF (x_tap_rec.attribute9 = OKL_API.G_MISS_CHAR)
4304       THEN
4305         x_tap_rec.attribute9 := l_tap_rec.attribute9;
4306       END IF;
4307       IF (x_tap_rec.attribute10 = OKL_API.G_MISS_CHAR)
4308       THEN
4309         x_tap_rec.attribute10 := l_tap_rec.attribute10;
4310       END IF;
4311       IF (x_tap_rec.attribute11 = OKL_API.G_MISS_CHAR)
4312       THEN
4313         x_tap_rec.attribute11 := l_tap_rec.attribute11;
4314       END IF;
4315       IF (x_tap_rec.attribute12 = OKL_API.G_MISS_CHAR)
4316       THEN
4317         x_tap_rec.attribute12 := l_tap_rec.attribute12;
4318       END IF;
4319       IF (x_tap_rec.attribute13 = OKL_API.G_MISS_CHAR)
4320       THEN
4321         x_tap_rec.attribute13 := l_tap_rec.attribute13;
4322       END IF;
4323       IF (x_tap_rec.attribute14 = OKL_API.G_MISS_CHAR)
4324       THEN
4325         x_tap_rec.attribute14 := l_tap_rec.attribute14;
4326       END IF;
4327       IF (x_tap_rec.attribute15 = OKL_API.G_MISS_CHAR)
4328       THEN
4329         x_tap_rec.attribute15 := l_tap_rec.attribute15;
4330       END IF;
4331       IF (x_tap_rec.created_by = OKL_API.G_MISS_NUM)
4332       THEN
4333         x_tap_rec.created_by := l_tap_rec.created_by;
4334       END IF;
4335       IF (x_tap_rec.creation_date = OKL_API.G_MISS_DATE)
4336       THEN
4337         x_tap_rec.creation_date := l_tap_rec.creation_date;
4338       END IF;
4339       IF (x_tap_rec.last_updated_by = OKL_API.G_MISS_NUM)
4340       THEN
4341         x_tap_rec.last_updated_by := l_tap_rec.last_updated_by;
4342       END IF;
4343       IF (x_tap_rec.last_update_date = OKL_API.G_MISS_DATE)
4344       THEN
4345         x_tap_rec.last_update_date := l_tap_rec.last_update_date;
4346       END IF;
4347       IF (x_tap_rec.last_update_login = OKL_API.G_MISS_NUM)
4348       THEN
4349         x_tap_rec.last_update_login := l_tap_rec.last_update_login;
4350       END IF;
4351       IF (x_tap_rec.invoice_type = OKL_API.G_MISS_CHAR)
4352       THEN
4353         x_tap_rec.invoice_type := l_tap_rec.invoice_type;
4354       END IF;
4355       IF (x_tap_rec.pay_group_lookup_code = OKL_API.G_MISS_CHAR)
4356       THEN
4357         x_tap_rec.pay_group_lookup_code := l_tap_rec.pay_group_lookup_code;
4358       END IF;
4359       IF (x_tap_rec.vendor_invoice_number = OKL_API.G_MISS_CHAR)
4360       THEN
4361         x_tap_rec.vendor_invoice_number := l_tap_rec.vendor_invoice_number;
4362       END IF;
4363       IF (x_tap_rec.nettable_yn = OKL_API.G_MISS_CHAR)
4364       THEN
4365         x_tap_rec.nettable_yn := l_tap_rec.nettable_yn;
4366       END IF;
4367       IF (x_tap_rec.asset_tap_id = OKL_API.G_MISS_NUM)
4368       THEN
4369         x_tap_rec.asset_tap_id := l_tap_rec.asset_tap_id;
4370       END IF;
4371  -- 30-OCT-2006 ANSETHUR  R12B - Legal Entity
4372       IF (x_tap_rec.legal_entity_id = OKL_API.G_MISS_NUM)
4373       THEN
4374         x_tap_rec.legal_entity_id := l_tap_rec.legal_entity_id;
4375       END IF;
4376       IF (x_tap_rec.transaction_date = OKL_API.G_MISS_DATE)
4377       THEN
4378         x_tap_rec.transaction_date := SYSDATE;
4379       END IF;
4380       RETURN(l_return_status);
4381     END populate_new_record;
4382     ----------------------------------------------
4383     -- Set_Attributes for:OKL_TRX_AP_INVOICES_B --
4384     ----------------------------------------------
4385     FUNCTION Set_Attributes (
4386       p_tap_rec IN  tap_rec_type,
4387       x_tap_rec OUT NOCOPY tap_rec_type
4388     ) RETURN VARCHAR2 IS
4389       l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4390     BEGIN
4391       x_tap_rec := p_tap_rec;
4392       RETURN(l_return_status);
4393     END Set_Attributes;
4394   BEGIN
4395     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
4396                                               p_init_msg_list,
4397                                               '_PVT',
4398                                               x_return_status);
4399     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4400       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4401     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4402       RAISE OKL_API.G_EXCEPTION_ERROR;
4403     END IF;
4404     --- Setting item attributes
4405     l_return_status := Set_Attributes(
4406       p_tap_rec,                         -- IN
4407       l_tap_rec);                        -- OUT
4408     --- If any errors happen abort API
4409     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4410       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4411     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4412       RAISE OKL_API.G_EXCEPTION_ERROR;
4413     END IF;
4414     l_return_status := populate_new_record(l_tap_rec, l_def_tap_rec);
4415     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4416       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4417     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4418       RAISE OKL_API.G_EXCEPTION_ERROR;
4419     END IF;
4420     UPDATE  OKL_TRX_AP_INVOICES_B
4421     SET CURRENCY_CODE = l_def_tap_rec.currency_code,
4422         PAYMENT_METHOD_CODE = l_def_tap_rec.payment_method_code,
4423         FUNDING_TYPE_CODE = l_def_tap_rec.funding_type_code,
4424         INVOICE_CATEGORY_CODE = l_def_tap_rec.invoice_category_code,
4425         IPVS_ID = l_def_tap_rec.ipvs_id,
4426         KHR_ID = l_def_tap_rec.khr_id,
4427         CCF_ID = l_def_tap_rec.ccf_id,
4428         CCT_ID = l_def_tap_rec.cct_id,
4429         CPLV_ID = l_def_tap_rec.cplv_id,
4430         POX_ID = l_def_tap_rec.pox_id,
4431         IPPT_ID = l_def_tap_rec.ippt_id,
4432         code_combination_id = l_def_tap_rec.code_combination_id,
4433         QTE_ID = l_def_tap_rec.qte_id,
4434         ART_ID = l_def_tap_rec.art_id,
4435         TCN_ID = l_def_tap_rec.tcn_id,
4436         TAP_ID_REVERSES = l_def_tap_rec.tap_id_reverses,
4437         DATE_ENTERED = l_def_tap_rec.date_entered,
4438         DATE_INVOICED = l_def_tap_rec.date_invoiced,
4439         AMOUNT = l_def_tap_rec.amount,
4440         TRX_STATUS_CODE = l_def_tap_rec.trx_status_code, -- Post Postgen 14,15
4441         SET_OF_BOOKS_ID = l_def_tap_rec.set_of_books_id, -- Post Postgen 14,15
4442         TRY_ID = l_def_tap_rec.try_id,                   -- Post Postgen 14,15
4443         OBJECT_VERSION_NUMBER = l_def_tap_rec.object_version_number,
4444         DATE_REQUISITION = l_def_tap_rec.date_requisition,
4445         DATE_FUNDING_APPROVED = l_def_tap_rec.date_funding_approved,
4446         INVOICE_NUMBER = l_def_tap_rec.invoice_number,
4447         DATE_GL = l_def_tap_rec.date_gl,
4448         WORKFLOW_YN = l_def_tap_rec.workflow_yn,
4449         MATCH_REQUIRED_YN = l_def_tap_rec.match_required_yn,
4450         IPT_FREQUENCY = l_def_tap_rec.ipt_frequency,
4451         CONSOLIDATE_YN = l_def_tap_rec.consolidate_yn,
4452         WAIT_VENDOR_INVOICE_YN = l_def_tap_rec.wait_vendor_invoice_yn,
4453         REQUEST_ID = l_def_tap_rec.request_id,
4454         PROGRAM_APPLICATION_ID = l_def_tap_rec.program_application_id,
4455         PROGRAM_ID = l_def_tap_rec.program_id,
4456         PROGRAM_UPDATE_DATE = l_def_tap_rec.program_update_date,
4457         ORG_ID = l_def_tap_rec.org_id,
4458         CURRENCY_CONVERSION_TYPE = l_def_tap_rec.CURRENCY_CONVERSION_TYPE,
4459         CURRENCY_CONVERSION_RATE = l_def_tap_rec.CURRENCY_CONVERSION_RATE,
4460         CURRENCY_CONVERSION_DATE = l_def_tap_rec.CURRENCY_CONVERSION_DATE,
4461         VENDOR_ID          = l_def_tap_rec.vendor_id,
4462         ATTRIBUTE_CATEGORY = l_def_tap_rec.attribute_category,
4463         ATTRIBUTE1 = l_def_tap_rec.attribute1,
4464         ATTRIBUTE2 = l_def_tap_rec.attribute2,
4465         ATTRIBUTE3 = l_def_tap_rec.attribute3,
4466         ATTRIBUTE4 = l_def_tap_rec.attribute4,
4467         ATTRIBUTE5 = l_def_tap_rec.attribute5,
4468         ATTRIBUTE6 = l_def_tap_rec.attribute6,
4469         ATTRIBUTE7 = l_def_tap_rec.attribute7,
4470         ATTRIBUTE8 = l_def_tap_rec.attribute8,
4471         ATTRIBUTE9 = l_def_tap_rec.attribute9,
4472         ATTRIBUTE10 = l_def_tap_rec.attribute10,
4473         ATTRIBUTE11 = l_def_tap_rec.attribute11,
4474         ATTRIBUTE12 = l_def_tap_rec.attribute12,
4475         ATTRIBUTE13 = l_def_tap_rec.attribute13,
4476         ATTRIBUTE14 = l_def_tap_rec.attribute14,
4477         ATTRIBUTE15 = l_def_tap_rec.attribute15,
4478         CREATED_BY = l_def_tap_rec.created_by,
4479         CREATION_DATE = l_def_tap_rec.creation_date,
4480         LAST_UPDATED_BY = l_def_tap_rec.last_updated_by,
4481         LAST_UPDATE_DATE = l_def_tap_rec.last_update_date,
4482         LAST_UPDATE_LOGIN = l_def_tap_rec.last_update_login,
4483         INVOICE_TYPE = l_def_tap_rec.invoice_type,
4484         PAY_GROUP_LOOKUP_CODE = l_def_tap_rec.pay_group_lookup_code,
4485         VENDOR_INVOICE_NUMBER = l_def_tap_rec.vendor_invoice_number,
4486         NETTABLE_YN = l_def_tap_rec.nettable_yn,
4487         ASSET_TAP_ID = l_def_tap_rec.asset_tap_id,                   -- Post Postgen 14,15
4488  -- 30-OCT-2006 ANSETHUR  R12B - Legal Entity
4489        legal_entity_id = l_def_tap_rec.legal_entity_id
4490        ,transaction_date = l_def_tap_rec.transaction_date
4491     WHERE ID = l_def_tap_rec.id;
4492     x_tap_rec := l_def_tap_rec;
4493     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4494   EXCEPTION
4495     WHEN OKL_API.G_EXCEPTION_ERROR THEN
4496       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4497       (
4498         l_api_name,
4499         G_PKG_NAME,
4500         'OKL_API.G_RET_STS_ERROR',
4501         x_msg_count,
4502         x_msg_data,
4503         '_PVT'
4504       );
4505     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4506       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
4507       (
4508         l_api_name,
4509         G_PKG_NAME,
4510         'OKL_API.G_RET_STS_UNEXP_ERROR',
4511         x_msg_count,
4512         x_msg_data,
4513         '_PVT'
4514       );
4515     WHEN OTHERS THEN
4516       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
4517       (
4518         l_api_name,
4519         G_PKG_NAME,
4520         'OTHERS',
4521         x_msg_count,
4522         x_msg_data,
4523         '_PVT'
4524       );
4525   END update_row;
4526   -------------------------------------------
4527   -- update_row for:OKL_TRX_AP_INVOICES_TL --
4528   -------------------------------------------
4529   PROCEDURE update_row(
4530     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
4531     x_return_status                OUT NOCOPY VARCHAR2,
4532     x_msg_count                    OUT NOCOPY NUMBER,
4533     x_msg_data                     OUT NOCOPY VARCHAR2,
4534     p_okl_trx_ap_invoices_tl_rec   IN OklTrxApInvoicesTlRecType,
4535     x_okl_trx_ap_invoices_tl_rec   OUT NOCOPY OklTrxApInvoicesTlRecType) IS
4536     l_api_version                 CONSTANT NUMBER := 1;
4537     l_api_name                     CONSTANT VARCHAR2(30) := 'TL_update_row';
4538     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4539     l_okl_trx_ap_invoices_tl_rec   OklTrxApInvoicesTlRecType := p_okl_trx_ap_invoices_tl_rec;
4540     ldefokltrxapinvoicestlrec      OklTrxApInvoicesTlRecType;
4541     l_row_notfound                 BOOLEAN := TRUE;
4542     ----------------------------------
4543     -- FUNCTION populate_new_record --
4544     ----------------------------------
4545     FUNCTION populate_new_record (
4546       p_okl_trx_ap_invoices_tl_rec	IN OklTrxApInvoicesTlRecType,
4547       x_okl_trx_ap_invoices_tl_rec	OUT NOCOPY OklTrxApInvoicesTlRecType
4548     ) RETURN VARCHAR2 IS
4549       l_okl_trx_ap_invoices_tl_rec   OklTrxApInvoicesTlRecType;
4550       l_row_notfound                 BOOLEAN := TRUE;
4551       l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4552     BEGIN
4553       x_okl_trx_ap_invoices_tl_rec := p_okl_trx_ap_invoices_tl_rec;
4554       -- Get current database values
4555       l_okl_trx_ap_invoices_tl_rec := get_rec(p_okl_trx_ap_invoices_tl_rec, l_row_notfound);
4556       IF (l_row_notfound) THEN
4557         l_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
4558       END IF;
4559       IF (x_okl_trx_ap_invoices_tl_rec.id = OKL_API.G_MISS_NUM)
4560       THEN
4561         x_okl_trx_ap_invoices_tl_rec.id := l_okl_trx_ap_invoices_tl_rec.id;
4562       END IF;
4563       IF (x_okl_trx_ap_invoices_tl_rec.language = OKL_API.G_MISS_CHAR)
4564       THEN
4565         x_okl_trx_ap_invoices_tl_rec.language := l_okl_trx_ap_invoices_tl_rec.language;
4566       END IF;
4567       IF (x_okl_trx_ap_invoices_tl_rec.source_lang = OKL_API.G_MISS_CHAR)
4568       THEN
4569         x_okl_trx_ap_invoices_tl_rec.source_lang := l_okl_trx_ap_invoices_tl_rec.source_lang;
4570       END IF;
4571       IF (x_okl_trx_ap_invoices_tl_rec.sfwt_flag = OKL_API.G_MISS_CHAR)
4572       THEN
4573         x_okl_trx_ap_invoices_tl_rec.sfwt_flag := l_okl_trx_ap_invoices_tl_rec.sfwt_flag;
4574       END IF;
4575       IF (x_okl_trx_ap_invoices_tl_rec.description = OKL_API.G_MISS_CHAR)
4576       THEN
4577         x_okl_trx_ap_invoices_tl_rec.description := l_okl_trx_ap_invoices_tl_rec.description;
4578       END IF;
4579       IF (x_okl_trx_ap_invoices_tl_rec.created_by = OKL_API.G_MISS_NUM)
4580       THEN
4581         x_okl_trx_ap_invoices_tl_rec.created_by := l_okl_trx_ap_invoices_tl_rec.created_by;
4582       END IF;
4583       IF (x_okl_trx_ap_invoices_tl_rec.creation_date = OKL_API.G_MISS_DATE)
4584       THEN
4585         x_okl_trx_ap_invoices_tl_rec.creation_date := l_okl_trx_ap_invoices_tl_rec.creation_date;
4586       END IF;
4587       IF (x_okl_trx_ap_invoices_tl_rec.last_updated_by = OKL_API.G_MISS_NUM)
4588       THEN
4589         x_okl_trx_ap_invoices_tl_rec.last_updated_by := l_okl_trx_ap_invoices_tl_rec.last_updated_by;
4590       END IF;
4591       IF (x_okl_trx_ap_invoices_tl_rec.last_update_date = OKL_API.G_MISS_DATE)
4592       THEN
4593         x_okl_trx_ap_invoices_tl_rec.last_update_date := l_okl_trx_ap_invoices_tl_rec.last_update_date;
4594       END IF;
4595       IF (x_okl_trx_ap_invoices_tl_rec.last_update_login = OKL_API.G_MISS_NUM)
4596       THEN
4597         x_okl_trx_ap_invoices_tl_rec.last_update_login := l_okl_trx_ap_invoices_tl_rec.last_update_login;
4598       END IF;
4599       RETURN(l_return_status);
4600     END populate_new_record;
4601     -----------------------------------------------
4602     -- Set_Attributes for:OKL_TRX_AP_INVOICES_TL --
4603     -----------------------------------------------
4604     FUNCTION Set_Attributes (
4605       p_okl_trx_ap_invoices_tl_rec IN  OklTrxApInvoicesTlRecType,
4606       x_okl_trx_ap_invoices_tl_rec OUT NOCOPY OklTrxApInvoicesTlRecType
4607     ) RETURN VARCHAR2 IS
4608       l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4609     BEGIN
4610       x_okl_trx_ap_invoices_tl_rec := p_okl_trx_ap_invoices_tl_rec;
4611       x_okl_trx_ap_invoices_tl_rec.LANGUAGE := USERENV('LANG');
4612       x_okl_trx_ap_invoices_tl_rec.SOURCE_LANG := USERENV('LANG');
4613       RETURN(l_return_status);
4614     END Set_Attributes;
4615   BEGIN
4616     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
4617                                               p_init_msg_list,
4618                                               '_PVT',
4619                                               x_return_status);
4620     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4621       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4622     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4623       RAISE OKL_API.G_EXCEPTION_ERROR;
4624     END IF;
4625     --- Setting item attributes
4626     l_return_status := Set_Attributes(
4627       p_okl_trx_ap_invoices_tl_rec,      -- IN
4628       l_okl_trx_ap_invoices_tl_rec);     -- OUT
4629     --- If any errors happen abort API
4630     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4631       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4632     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4633       RAISE OKL_API.G_EXCEPTION_ERROR;
4634     END IF;
4635     l_return_status := populate_new_record(l_okl_trx_ap_invoices_tl_rec, ldefokltrxapinvoicestlrec);
4636     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4637       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4638     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4639       RAISE OKL_API.G_EXCEPTION_ERROR;
4640     END IF;
4641     UPDATE  OKL_TRX_AP_INVOICES_TL
4642     SET DESCRIPTION = ldefokltrxapinvoicestlrec.description,
4643         SOURCE_LANG = ldefokltrxapinvoicestlrec.source_lang,
4644         CREATED_BY = ldefokltrxapinvoicestlrec.created_by,
4645         CREATION_DATE = ldefokltrxapinvoicestlrec.creation_date,
4646         LAST_UPDATED_BY = ldefokltrxapinvoicestlrec.last_updated_by,
4647         LAST_UPDATE_DATE = ldefokltrxapinvoicestlrec.last_update_date,
4648         LAST_UPDATE_LOGIN = ldefokltrxapinvoicestlrec.last_update_login
4649     WHERE ID = ldefokltrxapinvoicestlrec.id
4650     AND USERENV('LANG') in (SOURCE_LANG, LANGUAGE);
4651 
4652     UPDATE  OKL_TRX_AP_INVOICES_TL
4653     SET SFWT_FLAG = 'Y'
4654     WHERE ID = ldefokltrxapinvoicestlrec.id
4655       AND SOURCE_LANG <> USERENV('LANG');
4656     x_okl_trx_ap_invoices_tl_rec := ldefokltrxapinvoicestlrec;
4657     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4658   EXCEPTION
4659     WHEN OKL_API.G_EXCEPTION_ERROR THEN
4660       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4661       (
4662         l_api_name,
4663         G_PKG_NAME,
4664         'OKL_API.G_RET_STS_ERROR',
4665         x_msg_count,
4666         x_msg_data,
4667         '_PVT'
4668       );
4669     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4670       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
4671       (
4672         l_api_name,
4673         G_PKG_NAME,
4674         'OKL_API.G_RET_STS_UNEXP_ERROR',
4675         x_msg_count,
4676         x_msg_data,
4677         '_PVT'
4678       );
4679     WHEN OTHERS THEN
4680       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
4681       (
4682         l_api_name,
4683         G_PKG_NAME,
4684         'OTHERS',
4685         x_msg_count,
4686         x_msg_data,
4687         '_PVT'
4688       );
4689   END update_row;
4690   ------------------------------------------
4691   -- update_row for:OKL_TRX_AP_INVOICES_V --
4692   ------------------------------------------
4693   PROCEDURE update_row(
4694     p_api_version                  IN NUMBER,
4695     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
4696     x_return_status                OUT NOCOPY VARCHAR2,
4697     x_msg_count                    OUT NOCOPY NUMBER,
4698     x_msg_data                     OUT NOCOPY VARCHAR2,
4699     p_tapv_rec                     IN tapv_rec_type,
4700     x_tapv_rec                     OUT NOCOPY tapv_rec_type) IS
4701     l_api_version                 CONSTANT NUMBER := 1;
4702     l_api_name                     CONSTANT VARCHAR2(30) := 'V_update_row';
4703     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4704     l_tapv_rec                     tapv_rec_type := p_tapv_rec;
4705     l_def_tapv_rec                 tapv_rec_type;
4706     l_okl_trx_ap_invoices_tl_rec   OklTrxApInvoicesTlRecType;
4707     lx_okl_trx_ap_invoices_tl_rec  OklTrxApInvoicesTlRecType;
4708     l_tap_rec                      tap_rec_type;
4709     lx_tap_rec                     tap_rec_type;
4710     -------------------------------
4711     -- FUNCTION fill_who_columns --
4712     -------------------------------
4713     FUNCTION fill_who_columns (
4714       p_tapv_rec	IN tapv_rec_type
4715     ) RETURN tapv_rec_type IS
4716       l_tapv_rec	tapv_rec_type := p_tapv_rec;
4717     BEGIN
4718       l_tapv_rec.LAST_UPDATE_DATE := SYSDATE;
4719       l_tapv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
4720       l_tapv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
4721       RETURN(l_tapv_rec);
4722     END fill_who_columns;
4723     ----------------------------------
4724     -- FUNCTION populate_new_record --
4725     ----------------------------------
4726     FUNCTION populate_new_record (
4727       p_tapv_rec	IN tapv_rec_type,
4728       x_tapv_rec	OUT NOCOPY tapv_rec_type
4729     ) RETURN VARCHAR2 IS
4730       l_tapv_rec                     tapv_rec_type;
4731       l_row_notfound                 BOOLEAN := TRUE;
4732       l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4733     BEGIN
4734       x_tapv_rec := p_tapv_rec;
4735       -- Get current database values
4736       l_tapv_rec := get_rec(p_tapv_rec, l_row_notfound);
4737       IF (l_row_notfound) THEN
4738         l_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
4739       END IF;
4740       IF (x_tapv_rec.id = OKL_API.G_MISS_NUM)
4741       THEN
4742         x_tapv_rec.id := l_tapv_rec.id;
4743       END IF;
4744       IF (x_tapv_rec.object_version_number = OKL_API.G_MISS_NUM)
4745       THEN
4746         x_tapv_rec.object_version_number := l_tapv_rec.object_version_number;
4747       END IF;
4748       IF (x_tapv_rec.sfwt_flag = OKL_API.G_MISS_CHAR)
4749       THEN
4750         x_tapv_rec.sfwt_flag := l_tapv_rec.sfwt_flag;
4751       END IF;
4752       IF (x_tapv_rec.cct_id = OKL_API.G_MISS_NUM)
4753       THEN
4754         x_tapv_rec.cct_id := l_tapv_rec.cct_id;
4755       END IF;
4756       IF (x_tapv_rec.currency_code = OKL_API.G_MISS_CHAR)
4757       THEN
4758         x_tapv_rec.currency_code := l_tapv_rec.currency_code;
4759       END IF;
4760       IF (x_tapv_rec.ccf_id = OKL_API.G_MISS_NUM)
4761       THEN
4762         x_tapv_rec.ccf_id := l_tapv_rec.ccf_id;
4763       END IF;
4764       IF (x_tapv_rec.funding_type_code = OKL_API.G_MISS_CHAR)
4765       THEN
4766         x_tapv_rec.funding_type_code := l_tapv_rec.funding_type_code;
4767       END IF;
4768       IF (x_tapv_rec.khr_id = OKL_API.G_MISS_NUM)
4769       THEN
4770         x_tapv_rec.khr_id := l_tapv_rec.khr_id;
4771       END IF;
4772       IF (x_tapv_rec.art_id = OKL_API.G_MISS_NUM)
4773       THEN
4774         x_tapv_rec.art_id := l_tapv_rec.art_id;
4775       END IF;
4776       IF (x_tapv_rec.tap_id_reverses = OKL_API.G_MISS_NUM)
4777       THEN
4778         x_tapv_rec.tap_id_reverses := l_tapv_rec.tap_id_reverses;
4779       END IF;
4780       IF (x_tapv_rec.ippt_id = OKL_API.G_MISS_NUM)
4781       THEN
4782         x_tapv_rec.ippt_id := l_tapv_rec.ippt_id;
4783       END IF;
4784       IF (x_tapv_rec.code_combination_id = OKL_API.G_MISS_NUM)
4785       THEN
4786         x_tapv_rec.code_combination_id := l_tapv_rec.code_combination_id;
4787       END IF;
4788       IF (x_tapv_rec.ipvs_id = OKL_API.G_MISS_NUM)
4789       THEN
4790         x_tapv_rec.ipvs_id := l_tapv_rec.ipvs_id;
4791       END IF;
4792       IF (x_tapv_rec.tcn_id = OKL_API.G_MISS_NUM)
4793       THEN
4794         x_tapv_rec.tcn_id := l_tapv_rec.tcn_id;
4795       END IF;
4796       IF (x_tapv_rec.vpa_id = OKL_API.G_MISS_NUM)
4797       THEN
4798         x_tapv_rec.vpa_id := l_tapv_rec.vpa_id;
4799       END IF;
4800       IF (x_tapv_rec.ipt_id = OKL_API.G_MISS_NUM)
4801       THEN
4802         x_tapv_rec.ipt_id := l_tapv_rec.ipt_id;
4803       END IF;
4804       IF (x_tapv_rec.qte_id = OKL_API.G_MISS_NUM)
4805       THEN
4806         x_tapv_rec.qte_id := l_tapv_rec.qte_id;
4807       END IF;
4808       IF (x_tapv_rec.invoice_category_code = OKL_API.G_MISS_CHAR)
4809       THEN
4810         x_tapv_rec.invoice_category_code := l_tapv_rec.invoice_category_code;
4811       END IF;
4812       IF (x_tapv_rec.payment_method_code = OKL_API.G_MISS_CHAR)
4813       THEN
4814         x_tapv_rec.payment_method_code := l_tapv_rec.payment_method_code;
4815       END IF;
4816       IF (x_tapv_rec.cplv_id = OKL_API.G_MISS_NUM)
4817       THEN
4818         x_tapv_rec.cplv_id := l_tapv_rec.cplv_id;
4819       END IF;
4820 
4821       --Start code added by pgomes on 19-NOV-2002
4822       IF (x_tapv_rec.pox_id = OKL_API.G_MISS_NUM)
4823       THEN
4824         x_tapv_rec.pox_id := l_tapv_rec.pox_id;
4825       END IF;
4826       --End code added by pgomes on 19-NOV-2002
4827 
4828       IF (x_tapv_rec.amount = OKL_API.G_MISS_NUM)
4829       THEN
4830         x_tapv_rec.amount := l_tapv_rec.amount;
4831       END IF;
4832       IF (x_tapv_rec.date_invoiced = OKL_API.G_MISS_DATE)
4833       THEN
4834         x_tapv_rec.date_invoiced := l_tapv_rec.date_invoiced;
4835       END IF;
4836       IF (x_tapv_rec.invoice_number = OKL_API.G_MISS_CHAR)
4837       THEN
4838         x_tapv_rec.invoice_number := l_tapv_rec.invoice_number;
4839       END IF;
4840       IF (x_tapv_rec.date_funding_approved = OKL_API.G_MISS_DATE)
4841       THEN
4842         x_tapv_rec.date_funding_approved := l_tapv_rec.date_funding_approved;
4843       END IF;
4844       IF (x_tapv_rec.date_gl = OKL_API.G_MISS_DATE)
4845       THEN
4846         x_tapv_rec.date_gl := l_tapv_rec.date_gl;
4847       END IF;
4848       IF (x_tapv_rec.workflow_yn = OKL_API.G_MISS_CHAR)
4849       THEN
4850         x_tapv_rec.workflow_yn := l_tapv_rec.workflow_yn;
4851       END IF;
4852       IF (x_tapv_rec.match_required_yn = OKL_API.G_MISS_CHAR)
4853       THEN
4854         x_tapv_rec.match_required_yn := l_tapv_rec.match_required_yn;
4855       END IF;
4856       IF (x_tapv_rec.ipt_frequency = OKL_API.G_MISS_CHAR)
4857       THEN
4858         x_tapv_rec.ipt_frequency := l_tapv_rec.ipt_frequency;
4859       END IF;
4860       IF (x_tapv_rec.consolidate_yn = OKL_API.G_MISS_CHAR)
4861       THEN
4862         x_tapv_rec.consolidate_yn := l_tapv_rec.consolidate_yn;
4863       END IF;
4864       IF (x_tapv_rec.wait_vendor_invoice_yn = OKL_API.G_MISS_CHAR)
4865       THEN
4866         x_tapv_rec.wait_vendor_invoice_yn := l_tapv_rec.wait_vendor_invoice_yn;
4867       END IF;
4868       IF (x_tapv_rec.date_requisition = OKL_API.G_MISS_DATE)
4869       THEN
4870         x_tapv_rec.date_requisition := l_tapv_rec.date_requisition;
4871       END IF;
4872       IF (x_tapv_rec.description = OKL_API.G_MISS_CHAR)
4873       THEN
4874         x_tapv_rec.description := l_tapv_rec.description;
4875       END IF;
4876       IF (x_tapv_rec.CURRENCY_CONVERSION_TYPE = OKL_API.G_MISS_CHAR) THEN
4877         x_tapv_rec.CURRENCY_CONVERSION_TYPE := l_tapv_rec.CURRENCY_CONVERSION_TYPE;
4878       END IF;
4879       IF (x_tapv_rec.CURRENCY_CONVERSION_RATE = OKL_API.G_MISS_NUM) THEN
4880         x_tapv_rec.CURRENCY_CONVERSION_RATE := l_tapv_rec.CURRENCY_CONVERSION_RATE;
4881       END IF;
4882       IF (x_tapv_rec.CURRENCY_CONVERSION_DATE = OKL_API.G_MISS_DATE) THEN
4883         x_tapv_rec.CURRENCY_CONVERSION_DATE := l_tapv_rec.CURRENCY_CONVERSION_DATE;
4884       END IF;
4885       IF (x_tapv_rec.VENDOR_ID = OKL_API.G_MISS_NUM) THEN
4886         x_tapv_rec.VENDOR_ID := l_tapv_rec.VENDOR_ID;
4887       END IF;
4888       IF (x_tapv_rec.attribute_category = OKL_API.G_MISS_CHAR)
4889       THEN
4890         x_tapv_rec.attribute_category := l_tapv_rec.attribute_category;
4891       END IF;
4892       IF (x_tapv_rec.attribute1 = OKL_API.G_MISS_CHAR)
4893       THEN
4894         x_tapv_rec.attribute1 := l_tapv_rec.attribute1;
4895       END IF;
4896       IF (x_tapv_rec.attribute2 = OKL_API.G_MISS_CHAR)
4897       THEN
4898         x_tapv_rec.attribute2 := l_tapv_rec.attribute2;
4899       END IF;
4900       IF (x_tapv_rec.attribute3 = OKL_API.G_MISS_CHAR)
4901       THEN
4902         x_tapv_rec.attribute3 := l_tapv_rec.attribute3;
4903       END IF;
4904       IF (x_tapv_rec.attribute4 = OKL_API.G_MISS_CHAR)
4905       THEN
4906         x_tapv_rec.attribute4 := l_tapv_rec.attribute4;
4907       END IF;
4908       IF (x_tapv_rec.attribute5 = OKL_API.G_MISS_CHAR)
4909       THEN
4910         x_tapv_rec.attribute5 := l_tapv_rec.attribute5;
4911       END IF;
4912       IF (x_tapv_rec.attribute6 = OKL_API.G_MISS_CHAR)
4913       THEN
4914         x_tapv_rec.attribute6 := l_tapv_rec.attribute6;
4915       END IF;
4916       IF (x_tapv_rec.attribute7 = OKL_API.G_MISS_CHAR)
4917       THEN
4918         x_tapv_rec.attribute7 := l_tapv_rec.attribute7;
4919       END IF;
4920       IF (x_tapv_rec.attribute8 = OKL_API.G_MISS_CHAR)
4921       THEN
4922         x_tapv_rec.attribute8 := l_tapv_rec.attribute8;
4923       END IF;
4924       IF (x_tapv_rec.attribute9 = OKL_API.G_MISS_CHAR)
4925       THEN
4926         x_tapv_rec.attribute9 := l_tapv_rec.attribute9;
4927       END IF;
4928       IF (x_tapv_rec.attribute10 = OKL_API.G_MISS_CHAR)
4929       THEN
4930         x_tapv_rec.attribute10 := l_tapv_rec.attribute10;
4931       END IF;
4932       IF (x_tapv_rec.attribute11 = OKL_API.G_MISS_CHAR)
4933       THEN
4934         x_tapv_rec.attribute11 := l_tapv_rec.attribute11;
4935       END IF;
4936       IF (x_tapv_rec.attribute12 = OKL_API.G_MISS_CHAR)
4937       THEN
4938         x_tapv_rec.attribute12 := l_tapv_rec.attribute12;
4939       END IF;
4940       IF (x_tapv_rec.attribute13 = OKL_API.G_MISS_CHAR)
4941       THEN
4942         x_tapv_rec.attribute13 := l_tapv_rec.attribute13;
4943       END IF;
4944       IF (x_tapv_rec.attribute14 = OKL_API.G_MISS_CHAR)
4945       THEN
4946         x_tapv_rec.attribute14 := l_tapv_rec.attribute14;
4947       END IF;
4948       IF (x_tapv_rec.attribute15 = OKL_API.G_MISS_CHAR)
4949       THEN
4950         x_tapv_rec.attribute15 := l_tapv_rec.attribute15;
4951       END IF;
4952       IF (x_tapv_rec.date_entered = OKL_API.G_MISS_DATE)
4953       THEN
4954         x_tapv_rec.date_entered := l_tapv_rec.date_entered;
4955       END IF;
4956       -- Start Post Postgen 14,15
4957       IF (x_tapv_rec.trx_status_code = OKL_API.G_MISS_CHAR)
4958       THEN
4959         x_tapv_rec.trx_status_code := l_tapv_rec.trx_status_code;
4960       END IF;
4961       IF (x_tapv_rec.set_of_books_id = OKL_API.G_MISS_NUM)
4962       THEN
4963         x_tapv_rec.set_of_books_id := l_tapv_rec.set_of_books_id;
4964       END IF;
4965       IF (x_tapv_rec.try_id = OKL_API.G_MISS_NUM)
4966       THEN
4967         x_tapv_rec.try_id := l_tapv_rec.try_id;
4968       END IF;
4969       -- End Post Postgen 14,15
4970       IF (x_tapv_rec.request_id = OKL_API.G_MISS_NUM)
4971       THEN
4972         x_tapv_rec.request_id := l_tapv_rec.request_id;
4973       END IF;
4974       IF (x_tapv_rec.program_application_id = OKL_API.G_MISS_NUM)
4975       THEN
4976         x_tapv_rec.program_application_id := l_tapv_rec.program_application_id;
4977       END IF;
4978       IF (x_tapv_rec.program_id = OKL_API.G_MISS_NUM)
4979       THEN
4980         x_tapv_rec.program_id := l_tapv_rec.program_id;
4981       END IF;
4982       IF (x_tapv_rec.program_update_date = OKL_API.G_MISS_DATE)
4983       THEN
4984         x_tapv_rec.program_update_date := l_tapv_rec.program_update_date;
4985       END IF;
4986       IF (x_tapv_rec.org_id = OKL_API.G_MISS_NUM)
4987       THEN
4988         x_tapv_rec.org_id := l_tapv_rec.org_id;
4989       END IF;
4990       IF (x_tapv_rec.created_by = OKL_API.G_MISS_NUM)
4991       THEN
4992         x_tapv_rec.created_by := l_tapv_rec.created_by;
4993       END IF;
4994       IF (x_tapv_rec.creation_date = OKL_API.G_MISS_DATE)
4995       THEN
4996         x_tapv_rec.creation_date := l_tapv_rec.creation_date;
4997       END IF;
4998       IF (x_tapv_rec.last_updated_by = OKL_API.G_MISS_NUM)
4999       THEN
5000         x_tapv_rec.last_updated_by := l_tapv_rec.last_updated_by;
5001       END IF;
5002       IF (x_tapv_rec.last_update_date = OKL_API.G_MISS_DATE)
5003       THEN
5004         x_tapv_rec.last_update_date := l_tapv_rec.last_update_date;
5005       END IF;
5006       IF (x_tapv_rec.last_update_login = OKL_API.G_MISS_NUM)
5007       THEN
5008         x_tapv_rec.last_update_login := l_tapv_rec.last_update_login;
5009       END IF;
5010       IF (x_tapv_rec.invoice_type = OKL_API.G_MISS_CHAR)
5011       THEN
5012         x_tapv_rec.invoice_type := l_tapv_rec.invoice_type;
5013       END IF;
5014       IF (x_tapv_rec.pay_group_lookup_code = OKL_API.G_MISS_CHAR)
5015       THEN
5016         x_tapv_rec.pay_group_lookup_code := l_tapv_rec.pay_group_lookup_code;
5017       END IF;
5018       IF (x_tapv_rec.vendor_invoice_number = OKL_API.G_MISS_CHAR)
5019       THEN
5020         x_tapv_rec.vendor_invoice_number := l_tapv_rec.vendor_invoice_number;
5021       END IF;
5022       IF (x_tapv_rec.nettable_yn = OKL_API.G_MISS_CHAR)
5023       THEN
5024         x_tapv_rec.nettable_yn := l_tapv_rec.nettable_yn;
5025       END IF;
5026       IF (x_tapv_rec.asset_tap_id = OKL_API.G_MISS_NUM)
5027       THEN
5028         x_tapv_rec.asset_tap_id := l_tapv_rec.asset_tap_id;
5029       END IF;
5030 
5031  -- 30-OCT-2006 ANSETHUR  R12B - Legal Entity
5032       IF (x_tapv_rec.legal_entity_id = OKL_API.G_MISS_NUM)
5033       THEN
5034         x_tapv_rec.legal_entity_id := l_tapv_rec.legal_entity_id;
5035       END IF;
5036 
5037       IF (x_tapv_rec.transaction_date = OKL_API.G_MISS_DATE)
5038       THEN
5039         x_tapv_rec.transaction_date := l_tapv_rec.transaction_date;
5040       END IF;
5041 
5042       RETURN(l_return_status);
5043     END populate_new_record;
5044     ----------------------------------------------
5045     -- Set_Attributes for:OKL_TRX_AP_INVOICES_V --
5046     ----------------------------------------------
5047     FUNCTION Set_Attributes (
5048       p_tapv_rec IN  tapv_rec_type,
5049       x_tapv_rec OUT NOCOPY tapv_rec_type
5050     ) RETURN VARCHAR2 IS
5051       l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
5052     BEGIN
5053       x_tapv_rec := p_tapv_rec;
5054       x_tapv_rec.OBJECT_VERSION_NUMBER := NVL(x_tapv_rec.OBJECT_VERSION_NUMBER, 0) + 1;
5055       -- Begin PostGen-7
5056       SELECT
5057         NVL(DECODE(Fnd_Global.CONC_REQUEST_ID,-1,NULL,Fnd_Global.CONC_REQUEST_ID),
5058             x_tapv_rec.request_id),
5059         NVL(DECODE(Fnd_Global.PROG_APPL_ID,   -1,NULL,Fnd_Global.PROG_APPL_ID),
5060             x_tapv_rec.program_application_id),
5061         NVL(DECODE(Fnd_Global.CONC_PROGRAM_ID,-1,NULL,Fnd_Global.CONC_PROGRAM_ID),
5062             x_tapv_rec.program_id),
5063         DECODE(DECODE(Fnd_Global.CONC_REQUEST_ID,-1,NULL,SYSDATE),
5064             NULL,x_tapv_rec.program_update_date,SYSDATE)
5065       INTO
5066         x_tapv_rec.request_id,
5067         x_tapv_rec.program_application_id,
5068         x_tapv_rec.program_id,
5069         x_tapv_rec.program_update_date
5070       FROM   dual;
5071       -- End PostGen-7
5072       RETURN(l_return_status);
5073     END Set_Attributes;
5074   BEGIN
5075     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
5076                                               G_PKG_NAME,
5077                                               p_init_msg_list,
5078                                               l_api_version,
5079                                               p_api_version,
5080                                               '_PVT',
5081                                               x_return_status);
5082     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5083       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5084     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5085       RAISE OKL_API.G_EXCEPTION_ERROR;
5086     END IF;
5087     --- Setting item attributes
5088     l_return_status := Set_Attributes(
5089       p_tapv_rec,                        -- IN
5090       l_tapv_rec);                       -- OUT
5091     --- If any errors happen abort API
5092     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5093       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5094     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5095       RAISE OKL_API.G_EXCEPTION_ERROR;
5096     END IF;
5097     l_return_status := populate_new_record(l_tapv_rec, l_def_tapv_rec);
5098     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5099       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5100     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5101       RAISE OKL_API.G_EXCEPTION_ERROR;
5102     END IF;
5103     l_def_tapv_rec := fill_who_columns(l_def_tapv_rec);
5104     --- Validate all non-missing attributes (Item Level Validation)
5105     l_return_status := Validate_Attributes(l_def_tapv_rec);
5106     --- If any errors happen abort API
5107     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5108       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5109     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5110       RAISE OKL_API.G_EXCEPTION_ERROR;
5111     END IF;
5112     l_return_status := Validate_Record(l_def_tapv_rec);
5113     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5114       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5115     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5116       RAISE OKL_API.G_EXCEPTION_ERROR;
5117     END IF;
5118     --------------------------------------
5119     -- Move VIEW record to "Child" records
5120     --------------------------------------
5121     migrate(l_def_tapv_rec, l_okl_trx_ap_invoices_tl_rec);
5122     migrate(l_def_tapv_rec, l_tap_rec);
5123     --------------------------------------------
5124     -- Call the UPDATE_ROW for each child record
5125     --------------------------------------------
5126     update_row(
5127       p_init_msg_list,
5128       x_return_status,
5129       x_msg_count,
5130       x_msg_data,
5131       l_okl_trx_ap_invoices_tl_rec,
5132       lx_okl_trx_ap_invoices_tl_rec
5133     );
5134     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5135       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5136     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
5137       RAISE OKL_API.G_EXCEPTION_ERROR;
5138     END IF;
5139     migrate(lx_okl_trx_ap_invoices_tl_rec, l_def_tapv_rec);
5140     update_row(
5141       p_init_msg_list,
5142       x_return_status,
5143       x_msg_count,
5144       x_msg_data,
5145       l_tap_rec,
5146       lx_tap_rec
5147     );
5148     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5149       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5150     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
5151       RAISE OKL_API.G_EXCEPTION_ERROR;
5152     END IF;
5153     migrate(lx_tap_rec, l_def_tapv_rec);
5154     x_tapv_rec := l_def_tapv_rec;
5155     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
5156   EXCEPTION
5157     WHEN OKL_API.G_EXCEPTION_ERROR THEN
5158       x_return_status := OKL_API.HANDLE_EXCEPTIONS
5159       (
5160         l_api_name,
5161         G_PKG_NAME,
5162         'OKL_API.G_RET_STS_ERROR',
5163         x_msg_count,
5164         x_msg_data,
5165         '_PVT'
5166       );
5167     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5168       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
5169       (
5170         l_api_name,
5171         G_PKG_NAME,
5172         'OKL_API.G_RET_STS_UNEXP_ERROR',
5173         x_msg_count,
5174         x_msg_data,
5175         '_PVT'
5176       );
5177     WHEN OTHERS THEN
5178       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
5179       (
5180         l_api_name,
5181         G_PKG_NAME,
5182         'OTHERS',
5183         x_msg_count,
5184         x_msg_data,
5185         '_PVT'
5186       );
5187   END update_row;
5188   ----------------------------------------
5189   -- PL/SQL TBL update_row for:TAPV_TBL --
5190   ----------------------------------------
5191   PROCEDURE update_row(
5192     p_api_version                  IN NUMBER,
5193     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
5194     x_return_status                OUT NOCOPY VARCHAR2,
5195     x_msg_count                    OUT NOCOPY NUMBER,
5196     x_msg_data                     OUT NOCOPY VARCHAR2,
5197     p_tapv_tbl                     IN tapv_tbl_type,
5198     x_tapv_tbl                     OUT NOCOPY tapv_tbl_type) IS
5199     l_api_version                 CONSTANT NUMBER := 1;
5200     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
5201     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
5202     l_overall_status               VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;     -- PostGen-9
5203     i                              NUMBER := 0;
5204   BEGIN
5205     OKL_API.init_msg_list(p_init_msg_list);
5206     -- Make sure PL/SQL table has records in it before passing
5207     IF (p_tapv_tbl.COUNT > 0) THEN
5208       i := p_tapv_tbl.FIRST;
5209       LOOP
5210         update_row (
5211           p_api_version                  => p_api_version,
5212           p_init_msg_list                => OKL_API.G_FALSE,
5213           x_return_status                => x_return_status,
5214           x_msg_count                    => x_msg_count,
5215           x_msg_data                     => x_msg_data,
5216           p_tapv_rec                     => p_tapv_tbl(i),
5217           x_tapv_rec                     => x_tapv_tbl(i));
5218         -- Store the highest degree of error                             -- PostGen-9
5219         IF x_return_status <> OKL_API.G_RET_STS_SUCCESS THEN             -- PostGen-9
5220            IF l_overall_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN     -- PostGen-9
5221               l_overall_status := x_return_status;                       -- PostGen-9
5222            END IF;                                                       -- PostGen-9
5223         END IF;                                                          -- PostGen-9
5224         EXIT WHEN (i = p_tapv_tbl.LAST);
5225         i := p_tapv_tbl.NEXT(i);
5226       END LOOP;
5227       x_return_status := l_overall_status;     -- PostGen-9 = return overall status
5228     END IF;
5229   EXCEPTION
5230     WHEN OKL_API.G_EXCEPTION_ERROR THEN
5231       x_return_status := OKL_API.HANDLE_EXCEPTIONS
5232       (
5233         l_api_name,
5234         G_PKG_NAME,
5235         'OKL_API.G_RET_STS_ERROR',
5236         x_msg_count,
5237         x_msg_data,
5238         '_PVT'
5239       );
5240     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5241       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
5242       (
5243         l_api_name,
5244         G_PKG_NAME,
5245         'OKL_API.G_RET_STS_UNEXP_ERROR',
5246         x_msg_count,
5247         x_msg_data,
5248         '_PVT'
5249       );
5250     WHEN OTHERS THEN
5251       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
5252       (
5253         l_api_name,
5254         G_PKG_NAME,
5255         'OTHERS',
5256         x_msg_count,
5257         x_msg_data,
5258         '_PVT'
5259       );
5260   END update_row;
5261   ---------------------------------------------------------------------------
5262   -- PROCEDURE delete_row
5263   ---------------------------------------------------------------------------
5264   ------------------------------------------
5265   -- delete_row for:OKL_TRX_AP_INVOICES_B --
5266   ------------------------------------------
5267   PROCEDURE delete_row(
5268     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
5269     x_return_status                OUT NOCOPY VARCHAR2,
5270     x_msg_count                    OUT NOCOPY NUMBER,
5271     x_msg_data                     OUT NOCOPY VARCHAR2,
5272     p_tap_rec                      IN tap_rec_type) IS
5273     l_api_version                 CONSTANT NUMBER := 1;
5274     l_api_name                     CONSTANT VARCHAR2(30) := 'B_delete_row';
5275     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
5276     l_tap_rec                      tap_rec_type:= p_tap_rec;
5277     l_row_notfound                 BOOLEAN := TRUE;
5278   BEGIN
5279     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
5280                                               p_init_msg_list,
5281                                               '_PVT',
5282                                               x_return_status);
5283     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5284       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5285     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5286       RAISE OKL_API.G_EXCEPTION_ERROR;
5287     END IF;
5288     DELETE FROM OKL_TRX_AP_INVOICES_B
5289      WHERE ID = l_tap_rec.id;
5290     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
5291   EXCEPTION
5292     WHEN OKL_API.G_EXCEPTION_ERROR THEN
5293       x_return_status := OKL_API.HANDLE_EXCEPTIONS
5294       (
5295         l_api_name,
5296         G_PKG_NAME,
5297         'OKL_API.G_RET_STS_ERROR',
5298         x_msg_count,
5299         x_msg_data,
5300         '_PVT'
5301       );
5302     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5303       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
5304       (
5305         l_api_name,
5306         G_PKG_NAME,
5307         'OKL_API.G_RET_STS_UNEXP_ERROR',
5308         x_msg_count,
5309         x_msg_data,
5310         '_PVT'
5311       );
5312     WHEN OTHERS THEN
5313       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
5314       (
5315         l_api_name,
5316         G_PKG_NAME,
5317         'OTHERS',
5318         x_msg_count,
5319         x_msg_data,
5320         '_PVT'
5321       );
5322   END delete_row;
5323   -------------------------------------------
5324   -- delete_row for:OKL_TRX_AP_INVOICES_TL --
5325   -------------------------------------------
5326   PROCEDURE delete_row(
5327     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
5328     x_return_status                OUT NOCOPY VARCHAR2,
5329     x_msg_count                    OUT NOCOPY NUMBER,
5330     x_msg_data                     OUT NOCOPY VARCHAR2,
5331     p_okl_trx_ap_invoices_tl_rec   IN OklTrxApInvoicesTlRecType) IS
5332     l_api_version                 CONSTANT NUMBER := 1;
5333     l_api_name                     CONSTANT VARCHAR2(30) := 'TL_delete_row';
5334     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
5335     l_okl_trx_ap_invoices_tl_rec   OklTrxApInvoicesTlRecType:= p_okl_trx_ap_invoices_tl_rec;
5336     l_row_notfound                 BOOLEAN := TRUE;
5337     -----------------------------------------------
5338     -- Set_Attributes for:OKL_TRX_AP_INVOICES_TL --
5339     -----------------------------------------------
5340     FUNCTION Set_Attributes (
5341       p_okl_trx_ap_invoices_tl_rec IN  OklTrxApInvoicesTlRecType,
5342       x_okl_trx_ap_invoices_tl_rec OUT NOCOPY OklTrxApInvoicesTlRecType
5343     ) RETURN VARCHAR2 IS
5344       l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
5345     BEGIN
5346       x_okl_trx_ap_invoices_tl_rec := p_okl_trx_ap_invoices_tl_rec;
5347       x_okl_trx_ap_invoices_tl_rec.LANGUAGE := USERENV('LANG');
5348       RETURN(l_return_status);
5349     END Set_Attributes;
5350   BEGIN
5351     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
5352                                               p_init_msg_list,
5353                                               '_PVT',
5354                                               x_return_status);
5355     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5356       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5357     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5358       RAISE OKL_API.G_EXCEPTION_ERROR;
5359     END IF;
5360     --- Setting item attributes
5361     l_return_status := Set_Attributes(
5362       p_okl_trx_ap_invoices_tl_rec,      -- IN
5363       l_okl_trx_ap_invoices_tl_rec);     -- OUT
5364     --- If any errors happen abort API
5365     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5366       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5367     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5368       RAISE OKL_API.G_EXCEPTION_ERROR;
5369     END IF;
5370     DELETE FROM OKL_TRX_AP_INVOICES_TL
5371      WHERE ID = l_okl_trx_ap_invoices_tl_rec.id;
5372     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
5373   EXCEPTION
5374     WHEN OKL_API.G_EXCEPTION_ERROR THEN
5375       x_return_status := OKL_API.HANDLE_EXCEPTIONS
5376       (
5377         l_api_name,
5378         G_PKG_NAME,
5379         'OKL_API.G_RET_STS_ERROR',
5380         x_msg_count,
5381         x_msg_data,
5382         '_PVT'
5383       );
5384     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5385       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
5386       (
5387         l_api_name,
5388         G_PKG_NAME,
5389         'OKL_API.G_RET_STS_UNEXP_ERROR',
5390         x_msg_count,
5391         x_msg_data,
5392         '_PVT'
5393       );
5394     WHEN OTHERS THEN
5395       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
5396       (
5397         l_api_name,
5398         G_PKG_NAME,
5399         'OTHERS',
5400         x_msg_count,
5401         x_msg_data,
5402         '_PVT'
5403       );
5404   END delete_row;
5405   ------------------------------------------
5406   -- delete_row for:OKL_TRX_AP_INVOICES_V --
5407   ------------------------------------------
5408   PROCEDURE delete_row(
5409     p_api_version                  IN NUMBER,
5410     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
5411     x_return_status                OUT NOCOPY VARCHAR2,
5412     x_msg_count                    OUT NOCOPY NUMBER,
5413     x_msg_data                     OUT NOCOPY VARCHAR2,
5414     p_tapv_rec                     IN tapv_rec_type) IS
5415     l_api_version                 CONSTANT NUMBER := 1;
5416     l_api_name                     CONSTANT VARCHAR2(30) := 'V_delete_row';
5417     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
5418     l_tapv_rec                     tapv_rec_type := p_tapv_rec;
5419     l_okl_trx_ap_invoices_tl_rec   OklTrxApInvoicesTlRecType;
5420     l_tap_rec                      tap_rec_type;
5421   BEGIN
5422     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
5423                                               G_PKG_NAME,
5424                                               p_init_msg_list,
5425                                               l_api_version,
5426                                               p_api_version,
5427                                               '_PVT',
5428                                               x_return_status);
5429     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5430       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5431     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5432       RAISE OKL_API.G_EXCEPTION_ERROR;
5433     END IF;
5434     --------------------------------------
5435     -- Move VIEW record to "Child" records
5436     --------------------------------------
5437     migrate(l_tapv_rec, l_okl_trx_ap_invoices_tl_rec);
5438     migrate(l_tapv_rec, l_tap_rec);
5439     --------------------------------------------
5440     -- Call the DELETE_ROW for each child record
5441     --------------------------------------------
5442     delete_row(
5443       p_init_msg_list,
5444       x_return_status,
5445       x_msg_count,
5446       x_msg_data,
5447       l_okl_trx_ap_invoices_tl_rec
5448     );
5449     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5450       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5451     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
5452       RAISE OKL_API.G_EXCEPTION_ERROR;
5453     END IF;
5454     delete_row(
5455       p_init_msg_list,
5456       x_return_status,
5457       x_msg_count,
5458       x_msg_data,
5459       l_tap_rec
5460     );
5461     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5462       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5463     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
5464       RAISE OKL_API.G_EXCEPTION_ERROR;
5465     END IF;
5466     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
5467   EXCEPTION
5468     WHEN OKL_API.G_EXCEPTION_ERROR THEN
5469       x_return_status := OKL_API.HANDLE_EXCEPTIONS
5470       (
5471         l_api_name,
5472         G_PKG_NAME,
5473         'OKL_API.G_RET_STS_ERROR',
5474         x_msg_count,
5475         x_msg_data,
5476         '_PVT'
5477       );
5478     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5479       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
5480       (
5481         l_api_name,
5482         G_PKG_NAME,
5483         'OKL_API.G_RET_STS_UNEXP_ERROR',
5484         x_msg_count,
5485         x_msg_data,
5486         '_PVT'
5487       );
5488     WHEN OTHERS THEN
5489       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
5490       (
5491         l_api_name,
5492         G_PKG_NAME,
5493         'OTHERS',
5494         x_msg_count,
5495         x_msg_data,
5496         '_PVT'
5497       );
5498   END delete_row;
5499   ----------------------------------------
5500   -- PL/SQL TBL delete_row for:TAPV_TBL --
5501   ----------------------------------------
5502   PROCEDURE delete_row(
5503     p_api_version                  IN NUMBER,
5504     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
5505     x_return_status                OUT NOCOPY VARCHAR2,
5506     x_msg_count                    OUT NOCOPY NUMBER,
5507     x_msg_data                     OUT NOCOPY VARCHAR2,
5508     p_tapv_tbl                     IN tapv_tbl_type) IS
5509     l_api_version                 CONSTANT NUMBER := 1;
5510     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
5511     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
5512     l_overall_status               VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;     -- PostGen-9
5513     i                              NUMBER := 0;
5514   BEGIN
5515     OKL_API.init_msg_list(p_init_msg_list);
5516     -- Make sure PL/SQL table has records in it before passing
5517     IF (p_tapv_tbl.COUNT > 0) THEN
5518       i := p_tapv_tbl.FIRST;
5519       LOOP
5520         delete_row (
5521           p_api_version                  => p_api_version,
5522           p_init_msg_list                => OKL_API.G_FALSE,
5523           x_return_status                => x_return_status,
5524           x_msg_count                    => x_msg_count,
5525           x_msg_data                     => x_msg_data,
5526           p_tapv_rec                     => p_tapv_tbl(i));
5527         -- Store the highest degree of error                             -- PostGen-9
5528         IF x_return_status <> OKL_API.G_RET_STS_SUCCESS THEN             -- PostGen-9
5529            IF l_overall_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN     -- PostGen-9
5530               l_overall_status := x_return_status;                       -- PostGen-9
5531            END IF;                                                       -- PostGen-9
5532         END IF;                                                          -- PostGen-9
5533         EXIT WHEN (i = p_tapv_tbl.LAST);
5534         i := p_tapv_tbl.NEXT(i);
5535       END LOOP;
5536       x_return_status := l_overall_status;     -- PostGen-9 = return overall status
5537     END IF;
5538   EXCEPTION
5539     WHEN OKL_API.G_EXCEPTION_ERROR THEN
5540       x_return_status := OKL_API.HANDLE_EXCEPTIONS
5541       (
5542         l_api_name,
5543         G_PKG_NAME,
5544         'OKL_API.G_RET_STS_ERROR',
5545         x_msg_count,
5546         x_msg_data,
5547         '_PVT'
5548       );
5549     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5550       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
5551       (
5552         l_api_name,
5553         G_PKG_NAME,
5554         'OKL_API.G_RET_STS_UNEXP_ERROR',
5555         x_msg_count,
5556         x_msg_data,
5557         '_PVT'
5558       );
5559     WHEN OTHERS THEN
5560       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
5561       (
5562         l_api_name,
5563         G_PKG_NAME,
5564         'OTHERS',
5565         x_msg_count,
5566         x_msg_data,
5567         '_PVT'
5568       );
5569   END delete_row;
5570 END OKL_TAP_PVT;