DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_TIL_PVT

Source


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