DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_TLD_PVT

Source


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