DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_COPY_CONTRACT_PVT

Source


1 Package body okl_copy_contract_pvt as
2 /* $Header: OKLRCOPB.pls 120.56.12020000.5 2013/03/14 09:35:08 racheruv ship $ */
3 
4     G_MODULE VARCHAR2(255) := 'okl.stream.esg.okl_esg_transport_pvt';
5     G_DEBUG_ENABLED CONSTANT VARCHAR2(10) := OKL_DEBUG_PUB.CHECK_LOG_ENABLED;
6     G_IS_DEBUG_STATEMENT_ON BOOLEAN;
7 --subtypes declared here to facilitate rosetta skip okc_rule_pub compilation
8 --which has a clob in it
9 TYPE l_phid_mapping_type IS RECORD (old_id okl_party_payment_hdr.id%TYPE := OKC_API.G_MISS_NUM, new_id okl_party_payment_hdr.id%TYPE := OKC_API.G_MISS_NUM);
10 TYPE l_phid_mapping_tab_type IS TABLE OF l_phid_mapping_type INDEX BY BINARY_INTEGER;
11 
12 SUBTYPE api_components_rec_okc is OKC_COPY_CONTRACT_PVT.api_components_rec;
13 SUBTYPE api_components_tbl_okc is OKC_COPY_CONTRACT_PVT.api_components_tbl;
14 SUBTYPE api_lines_rec_okc is OKC_COPY_CONTRACT_PVT.api_lines_rec;
15 SUBTYPE api_lines_tbl_okc is OKC_COPY_CONTRACT_PVT.api_lines_tbl;
16 SUBTYPE rgpv_rec_type is OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
17 SUBTYPE rulv_rec_type IS Okl_Rule_Pub.rulv_rec_type;
18 SUBTYPE rulv_tbl_type IS Okl_Rule_Pub.rulv_tbl_type;
19 --Bug# 3143522
20 SUBTYPE ppydv_rec_type IS OKL_PYD_PVT.ppydv_rec_type;
21 -- Bug# 3630858
22 SUBTYPE cspv_rec_type IS OKL_CONTRACT_PROD_OPTNS_PUB.cspv_rec_type;
23 --furong  4350255
24 SUBTYPE pphv_rec_type IS OKL_LDB_PVT.pphv_rec_type;
25 --Bug# 4558486
26 SUBTYPE kplv_rec_type IS OKL_KPL_PVT.kplv_rec_type;
27 
28 G_NO_MATCHING_RECORD            CONSTANT  VARCHAR2(200) := 'OKL_LLA_NO_MATCHING_RECORD';
29 ----------------
30 --bug # 2518454
31 ----------------
32 --G_COPY_HEADER                 CONSTANT VARCHAR2(200) := 'OKL_LLA_COPY_HEADER';
33 G_COPY_LINE                   CONSTANT VARCHAR2(200) := 'OKL_LLA_COPY_LINE';
34 G_BULK_SIZE NUMBER := 10000;
35 G_EXCEPTION_HALT_PROCESS   EXCEPTION;
36 l_phid_mapping_tab l_phid_mapping_tab_type;
37 l_party_payment_hdr_counter NUMBER := 1;
38 
39 --Bug# 16425139 : Changing the below global variables to local variables
40 --                within copy_lease_contract_new and copy_var_int_rate_params
41 /*
42 l_created_by NUMBER := fnd_global.user_id;
43 l_last_updated_by NUMBER := fnd_global.user_id;
44 l_last_update_login NUMBER := fnd_global.login_id;
45 */
46 
47 l_contract_exists BOOLEAN := FALSE;
48 
49 
50 --Function to migrate api_components tbl
51 FUNCTION migrate_components_tbl(p_components_tbl IN api_components_tbl)
52                                     return api_components_tbl_okc is
53 i NUMBER;
54 l_components_tbl api_components_tbl_okc;
55 BEGIN
56      FOR i in 1..p_components_tbl.LAST
57      Loop
58          l_components_tbl(i).id := p_components_tbl(i).id;
59          l_components_tbl(i).to_k := p_components_tbl(i).to_k;
60          l_components_tbl(i).component_type := p_components_tbl(i).component_type;
61          l_components_tbl(i).attribute1 := p_components_tbl(i).attribute1;
62      End Loop;
63      Return l_components_tbl;
64 END migrate_components_tbl;
65 --Function to migrate api_lines tbl
66 FUNCTION migrate_lines_tbl(p_lines_tbl IN api_lines_tbl)
67                                     return api_lines_tbl_okc is
68 i NUMBER;
69 l_lines_tbl api_lines_tbl_okc;
70 BEGIN
71      FOR i in 1..p_lines_tbl.LAST
72      Loop
73          l_lines_tbl(i).id := p_lines_tbl(i).id;
74          l_lines_tbl(i).to_k := p_lines_tbl(i).to_k;
75          l_lines_tbl(i).to_line := p_lines_tbl(i).to_line;
76          l_lines_tbl(i).line_exists_yn := p_lines_tbl(i).line_exists_yn;
77      End Loop;
78      Return l_lines_tbl;
79 END migrate_lines_tbl;
80 --------------------------------------------------------------------------
81 --Functions to fetch data from okc_k_headers_v, okc_k_lines_v,
82 --okl_k_headers_v and okl_k_lines_v
83 --These Functions are copy of local functions get_rec in
84 --OKC_CHR_PVT and OKL_KHR_PVT. These are repeated here since they have not
85 --been published. Any changes in in these in the original packages will
86 --also heve to be done here.
87 ----------------------------------------------------------------------------
88 ---------------------------------------------------------------------------
89   -- FUNCTION get_rec for: OKC_K_HEADERS_V
90 ---------------------------------------------------------------------------
91   FUNCTION get_chrv_rec (
92     p_chrv_id                     IN   NUMBER,
93     x_no_data_found               OUT NOCOPY BOOLEAN
94   ) RETURN chrv_rec_type IS
95     CURSOR okc_chrv_pk_csr (p_id                 IN NUMBER) IS
96     SELECT
97      ID
98     ,OBJECT_VERSION_NUMBER
99     ,SFWT_FLAG
100     ,CHR_ID_RESPONSE
101     ,CHR_ID_AWARD
102     ,CHR_ID_RENEWED
103     ,INV_ORGANIZATION_ID
104     ,STS_CODE
105     ,QCL_ID
106     ,SCS_CODE
107     ,CONTRACT_NUMBER
108     ,CURRENCY_CODE
109     ,CONTRACT_NUMBER_MODIFIER
110     ,ARCHIVED_YN
111     ,DELETED_YN
112     ,CUST_PO_NUMBER_REQ_YN
113     ,PRE_PAY_REQ_YN
114     ,CUST_PO_NUMBER
115     ,SHORT_DESCRIPTION
116     ,COMMENTS
117     ,DESCRIPTION
118     ,DPAS_RATING
119     ,COGNOMEN
120     ,TEMPLATE_YN
121     --,GOVERNING_CONTRACT_YN
122     ,TEMPLATE_USED
123     ,DATE_APPROVED
124     ,DATETIME_CANCELLED
125     ,AUTO_RENEW_DAYS
126     ,DATE_ISSUED
127     ,DATETIME_RESPONDED
128     ,NON_RESPONSE_REASON
129     ,NON_RESPONSE_EXPLAIN
130     ,RFP_TYPE
131     ,CHR_TYPE
132     ,KEEP_ON_MAIL_LIST
133     ,SET_ASIDE_REASON
134     ,SET_ASIDE_PERCENT
135     ,RESPONSE_COPIES_REQ
136     ,DATE_CLOSE_PROJECTED
137     ,DATETIME_PROPOSED
138     ,DATE_SIGNED
139     ,DATE_TERMINATED
140     ,DATE_RENEWED
141     ,TRN_CODE
142     ,START_DATE
143     ,END_DATE
144     ,AUTHORING_ORG_ID
145     ,BUY_OR_SELL
146     ,ISSUE_OR_RECEIVE
147     ,ESTIMATED_AMOUNT
148     ,CHR_ID_RENEWED_TO
149     ,ESTIMATED_AMOUNT_RENEWED
150     ,CURRENCY_CODE_RENEWED
151     --,USER_ACCESS_LEVEL
152     ,UPG_ORIG_SYSTEM_REF
153     ,UPG_ORIG_SYSTEM_REF_ID
154     ,APPLICATION_ID
155     --,RESOLVED_UNTIL
156     ,ATTRIBUTE_CATEGORY
157     ,ATTRIBUTE1
158     ,ATTRIBUTE2
159     ,ATTRIBUTE3
160     ,ATTRIBUTE4
161     ,ATTRIBUTE5
162     ,ATTRIBUTE6
163     ,ATTRIBUTE7
164     ,ATTRIBUTE8
165     ,ATTRIBUTE9
166     ,ATTRIBUTE10
167     ,ATTRIBUTE11
168     ,ATTRIBUTE12
169     ,ATTRIBUTE13
170     ,ATTRIBUTE14
171     ,ATTRIBUTE15
172     ,CREATED_BY
173     ,CREATION_DATE
174     ,LAST_UPDATED_BY
175     ,LAST_UPDATE_DATE
176     ,LAST_UPDATE_LOGIN
177     ,ORIG_SYSTEM_SOURCE_CODE
178     ,ORIG_SYSTEM_ID1
179     ,ORIG_SYSTEM_REFERENCE1
180     ,PROGRAM_APPLICATION_ID
181     ,PROGRAM_ID
182     ,PROGRAM_UPDATE_DATE
183     ,REQUEST_ID
184     ,PRICE_LIST_ID
185     ,PRICING_DATE
186     ,TOTAL_LINE_LIST_PRICE
187     ,SIGN_BY_DATE
188     ,USER_ESTIMATED_AMOUNT
189     ,CONVERSION_TYPE
190     ,CONVERSION_RATE
191     ,CONVERSION_RATE_DATE
192     ,CONVERSION_EURO_RATE
193     ,CUST_ACCT_ID
194     ,BILL_TO_SITE_USE_ID
195     ,INV_RULE_ID
196     ,RENEWAL_TYPE_CODE
197     ,RENEWAL_NOTIFY_TO
198     ,RENEWAL_END_DATE
199     ,SHIP_TO_SITE_USE_ID
200     ,PAYMENT_TERM_ID
201       FROM Okc_K_Headers_V
202      WHERE okc_k_headers_v.id   = p_id;
203     l_okc_chrv_pk                  okc_chrv_pk_csr%ROWTYPE;
204     l_chrv_rec                     chrv_rec_type;
205   BEGIN
206     x_no_data_found := TRUE;
207     -- Get current database values
208     OPEN okc_chrv_pk_csr (p_chrv_id);
209     FETCH okc_chrv_pk_csr INTO
210      l_chrv_rec.ID
211     ,l_chrv_rec.OBJECT_VERSION_NUMBER
212     ,l_chrv_rec.SFWT_FLAG
213     ,l_chrv_rec.CHR_ID_RESPONSE
214     ,l_chrv_rec.CHR_ID_AWARD
215     ,l_chrv_rec.CHR_ID_RENEWED
216     ,l_chrv_rec.INV_ORGANIZATION_ID
217     ,l_chrv_rec.STS_CODE
218     ,l_chrv_rec.QCL_ID
219     ,l_chrv_rec.SCS_CODE
220     ,l_chrv_rec.CONTRACT_NUMBER
221     ,l_chrv_rec.CURRENCY_CODE
222     ,l_chrv_rec.CONTRACT_NUMBER_MODIFIER
223     ,l_chrv_rec.ARCHIVED_YN
224     ,l_chrv_rec.DELETED_YN
225     ,l_chrv_rec.CUST_PO_NUMBER_REQ_YN
226     ,l_chrv_rec.PRE_PAY_REQ_YN
227     ,l_chrv_rec.CUST_PO_NUMBER
228     ,l_chrv_rec.SHORT_DESCRIPTION
229     ,l_chrv_rec.COMMENTS
230     ,l_chrv_rec.DESCRIPTION
231     ,l_chrv_rec.DPAS_RATING
232     ,l_chrv_rec.COGNOMEN
233     ,l_chrv_rec.TEMPLATE_YN
234     --,l_chrv_rec.GOVERNING_CONTRACT_YN
235     ,l_chrv_rec.TEMPLATE_USED
236     ,l_chrv_rec.DATE_APPROVED
237     ,l_chrv_rec.DATETIME_CANCELLED
238     ,l_chrv_rec.AUTO_RENEW_DAYS
239     ,l_chrv_rec.DATE_ISSUED
240     ,l_chrv_rec.DATETIME_RESPONDED
241     ,l_chrv_rec.NON_RESPONSE_REASON
242     ,l_chrv_rec.NON_RESPONSE_EXPLAIN
243     ,l_chrv_rec.RFP_TYPE
244     ,l_chrv_rec.CHR_TYPE
245     ,l_chrv_rec.KEEP_ON_MAIL_LIST
246     ,l_chrv_rec.SET_ASIDE_REASON
247     ,l_chrv_rec.SET_ASIDE_PERCENT
248     ,l_chrv_rec.RESPONSE_COPIES_REQ
249     ,l_chrv_rec.DATE_CLOSE_PROJECTED
250     ,l_chrv_rec.DATETIME_PROPOSED
251     ,l_chrv_rec.DATE_SIGNED
252     ,l_chrv_rec.DATE_TERMINATED
253     ,l_chrv_rec.DATE_RENEWED
254     ,l_chrv_rec.TRN_CODE
255     ,l_chrv_rec.START_DATE
256     ,l_chrv_rec.END_DATE
257     ,l_chrv_rec.AUTHORING_ORG_ID
258     ,l_chrv_rec.BUY_OR_SELL
259     ,l_chrv_rec.ISSUE_OR_RECEIVE
260     ,l_chrv_rec.ESTIMATED_AMOUNT
261     ,l_chrv_rec.CHR_ID_RENEWED_TO
262     ,l_chrv_rec.ESTIMATED_AMOUNT_RENEWED
263     ,l_chrv_rec.CURRENCY_CODE_RENEWED
264     --,l_chrv_rec.USER_ACCESS_LEVEL
265     ,l_chrv_rec.UPG_ORIG_SYSTEM_REF
266     ,l_chrv_rec.UPG_ORIG_SYSTEM_REF_ID
267     ,l_chrv_rec.APPLICATION_ID
268     --,l_chrv_rec.RESOLVED_UNTIL
269     ,l_chrv_rec.ATTRIBUTE_CATEGORY
270     ,l_chrv_rec.ATTRIBUTE1
271     ,l_chrv_rec.ATTRIBUTE2
272     ,l_chrv_rec.ATTRIBUTE3
273     ,l_chrv_rec.ATTRIBUTE4
274     ,l_chrv_rec.ATTRIBUTE5
275     ,l_chrv_rec.ATTRIBUTE6
276     ,l_chrv_rec.ATTRIBUTE7
277     ,l_chrv_rec.ATTRIBUTE8
278     ,l_chrv_rec.ATTRIBUTE9
279     ,l_chrv_rec.ATTRIBUTE10
280     ,l_chrv_rec.ATTRIBUTE11
281     ,l_chrv_rec.ATTRIBUTE12
282     ,l_chrv_rec.ATTRIBUTE13
283     ,l_chrv_rec.ATTRIBUTE14
284     ,l_chrv_rec.ATTRIBUTE15
285     ,l_chrv_rec.CREATED_BY
286     ,l_chrv_rec.CREATION_DATE
287     ,l_chrv_rec.LAST_UPDATED_BY
288     ,l_chrv_rec.LAST_UPDATE_DATE
289     ,l_chrv_rec.LAST_UPDATE_LOGIN
290     ,l_chrv_rec.ORIG_SYSTEM_SOURCE_CODE
291     ,l_chrv_rec.ORIG_SYSTEM_ID1
292     ,l_chrv_rec.ORIG_SYSTEM_REFERENCE1
293     ,l_chrv_rec.PROGRAM_APPLICATION_ID
294     ,l_chrv_rec.PROGRAM_ID
295     ,l_chrv_rec.PROGRAM_UPDATE_DATE
296     ,l_chrv_rec.REQUEST_ID
297     ,l_chrv_rec.PRICE_LIST_ID
298     ,l_chrv_rec.PRICING_DATE
299     ,l_chrv_rec.TOTAL_LINE_LIST_PRICE
300     ,l_chrv_rec.SIGN_BY_DATE
301     ,l_chrv_rec.USER_ESTIMATED_AMOUNT
302     ,l_chrv_rec.CONVERSION_TYPE
303     ,l_chrv_rec.CONVERSION_RATE
304     ,l_chrv_rec.CONVERSION_RATE_DATE
305     ,l_chrv_rec.CONVERSION_EURO_RATE
306     ,l_chrv_rec.CUST_ACCT_ID
307     ,l_chrv_rec.BILL_TO_SITE_USE_ID
308     ,l_chrv_rec.INV_RULE_ID
309     ,l_chrv_rec.RENEWAL_TYPE_CODE
310     ,l_chrv_rec.RENEWAL_NOTIFY_TO
311     ,l_chrv_rec.RENEWAL_END_DATE
312     ,l_chrv_rec.SHIP_TO_SITE_USE_ID
313     ,l_chrv_rec.PAYMENT_TERM_ID;
314     x_no_data_found := okc_chrv_pk_csr%NOTFOUND;
315     CLOSE okc_chrv_pk_csr;
316     RETURN(l_chrv_rec);
317   END get_chrv_rec;
318 
319   FUNCTION get_chrv_rec (
320     p_chrv_id                     IN NUMBER
321   ) RETURN chrv_rec_type IS
322     l_row_notfound                 BOOLEAN := TRUE;
323   BEGIN
324     RETURN(get_chrv_rec(p_chrv_id, l_row_notfound));
325   END get_chrv_rec;
326 
327   ---------------------------------------------------------------------------
328   -- FUNCTION get_rec for: OKL_K_HEADERS_V
329   ---------------------------------------------------------------------------
330   FUNCTION get_khrv_rec (
331     p_khrv_id                     IN NUMBER,
332     x_no_data_found                OUT NOCOPY BOOLEAN
333   ) RETURN khrv_rec_type IS
334     CURSOR okl_khrv_pk_csr (p_id                 IN NUMBER) IS
335     SELECT
336             ID,
337             OBJECT_VERSION_NUMBER,
338             ISG_ID,
339             KHR_ID,
340             PDT_ID,
341             AMD_CODE,
342             DATE_FIRST_ACTIVITY,
343             GENERATE_ACCRUAL_YN,
344             GENERATE_ACCRUAL_OVERRIDE_YN,
345             DATE_REFINANCED,
346             CREDIT_ACT_YN,
347             TERM_DURATION,
348             CONVERTED_ACCOUNT_YN,
349             DATE_CONVERSION_EFFECTIVE,
350             SYNDICATABLE_YN,
351             SALESTYPE_YN,
352             DATE_DEAL_TRANSFERRED,
353             DATETIME_PROPOSAL_EFFECTIVE,
354             DATETIME_PROPOSAL_INEFFECTIVE,
355             DATE_PROPOSAL_ACCEPTED,
356             ATTRIBUTE_CATEGORY,
357             ATTRIBUTE1,
358             ATTRIBUTE2,
359             ATTRIBUTE3,
360             ATTRIBUTE4,
361             ATTRIBUTE5,
362             ATTRIBUTE6,
363             ATTRIBUTE7,
364             ATTRIBUTE8,
365             ATTRIBUTE9,
366             ATTRIBUTE10,
367             ATTRIBUTE11,
368             ATTRIBUTE12,
369             ATTRIBUTE13,
370             ATTRIBUTE14,
371             ATTRIBUTE15,
372             CREATED_BY,
373             CREATION_DATE,
374             LAST_UPDATED_BY,
375             LAST_UPDATE_DATE,
376             LAST_UPDATE_LOGIN,
377             PRE_TAX_YIELD,
378             AFTER_TAX_YIELD,
379             IMPLICIT_INTEREST_RATE,
380             IMPLICIT_NON_IDC_INTEREST_RATE,
381             TARGET_PRE_TAX_YIELD,
382             TARGET_AFTER_TAX_YIELD,
383             TARGET_IMPLICIT_INTEREST_RATE,
384             TARGET_IMPLICIT_NONIDC_INTRATE,
385             DATE_LAST_INTERIM_INTEREST_CAL,
386             DEAL_TYPE,
387             PRE_TAX_IRR,
388             AFTER_TAX_IRR,
389             EXPECTED_DELIVERY_DATE,
390             ACCEPTED_DATE,
391             PREFUNDING_ELIGIBLE_YN,
392             REVOLVING_CREDIT_YN,
393 -- Bug# 2697681
394             CURRENCY_CONVERSION_TYPE,
395             CURRENCY_CONVERSION_RATE,
396             CURRENCY_CONVERSION_DATE,
397             MULTI_GAAP_YN,
398             RECOURSE_CODE,
399             LESSOR_SERV_ORG_CODE,
400             ASSIGNABLE_YN,
401             SECURITIZED_CODE,
402             SECURITIZATION_TYPE,
403 -- Bug# 2697681
404 --Bug# 3143522 : Subsidies
405             SUB_PRE_TAX_YIELD,
406             SUB_AFTER_TAX_YIELD,
407             SUB_IMPL_INTEREST_RATE,
408             SUB_IMPL_NON_IDC_INT_RATE,
409             SUB_PRE_TAX_IRR,
410             SUB_AFTER_TAX_IRR,
411 --Bug#3923883 Rollover/Creditline performance
412             TOT_CL_TRANSFER_AMT,
413             TOT_CL_NET_TRANSFER_AMT,
414             TOT_CL_LIMIT,
415             TOT_CL_FUNDING_AMT,
416 --Bug 4466440 OKL.H columns
417             CRS_ID,
418             TEMPLATE_TYPE_CODE,
419             TRADEIN_DESCRIPTION,
420             TRADEIN_AMOUNT,
421             DATE_TRADEIN,
422             DATE_FUNDING_EXPECTED,
423 	    --Added by dpsingh for LE Uptake
424 	    LEGAL_ENTITY_ID
425      FROM Okl_K_Headers_V
426      WHERE okl_k_headers_v.id   = p_id;
427     l_okl_khrv_pk                  okl_khrv_pk_csr%ROWTYPE;
428     l_khrv_rec                     khrv_rec_type;
429   BEGIN
430     x_no_data_found := TRUE;
431     -- Get current database values
432     OPEN okl_khrv_pk_csr (p_khrv_id);
433     FETCH okl_khrv_pk_csr INTO
434               l_khrv_rec.ID,
435               l_khrv_rec.OBJECT_VERSION_NUMBER,
436               l_khrv_rec.ISG_ID,
437               l_khrv_rec.KHR_ID,
438               l_khrv_rec.PDT_ID,
439               l_khrv_rec.AMD_CODE,
440               l_khrv_rec.DATE_FIRST_ACTIVITY,
441               l_khrv_rec.GENERATE_ACCRUAL_YN,
442               l_khrv_rec.GENERATE_ACCRUAL_OVERRIDE_YN,
443               l_khrv_rec.DATE_REFINANCED,
444               l_khrv_rec.CREDIT_ACT_YN,
445               l_khrv_rec.TERM_DURATION,
446               l_khrv_rec.CONVERTED_ACCOUNT_YN,
447               l_khrv_rec.DATE_CONVERSION_EFFECTIVE,
448               l_khrv_rec.SYNDICATABLE_YN,
449               l_khrv_rec.SALESTYPE_YN,
450               l_khrv_rec.DATE_DEAL_TRANSFERRED,
451               l_khrv_rec.DATETIME_PROPOSAL_EFFECTIVE,
452               l_khrv_rec.DATETIME_PROPOSAL_INEFFECTIVE,
453               l_khrv_rec.DATE_PROPOSAL_ACCEPTED,
454               l_khrv_rec.ATTRIBUTE_CATEGORY,
455               l_khrv_rec.ATTRIBUTE1,
456               l_khrv_rec.ATTRIBUTE2,
457               l_khrv_rec.ATTRIBUTE3,
458               l_khrv_rec.ATTRIBUTE4,
459               l_khrv_rec.ATTRIBUTE5,
460               l_khrv_rec.ATTRIBUTE6,
461               l_khrv_rec.ATTRIBUTE7,
462               l_khrv_rec.ATTRIBUTE8,
463               l_khrv_rec.ATTRIBUTE9,
464               l_khrv_rec.ATTRIBUTE10,
465               l_khrv_rec.ATTRIBUTE11,
466               l_khrv_rec.ATTRIBUTE12,
467               l_khrv_rec.ATTRIBUTE13,
468               l_khrv_rec.ATTRIBUTE14,
469               l_khrv_rec.ATTRIBUTE15,
470               l_khrv_rec.CREATED_BY,
471               l_khrv_rec.CREATION_DATE,
472               l_khrv_rec.LAST_UPDATED_BY,
473               l_khrv_rec.LAST_UPDATE_DATE,
474               l_khrv_rec.LAST_UPDATE_LOGIN,
475               l_khrv_rec.PRE_TAX_YIELD,
476               l_khrv_rec.AFTER_TAX_YIELD,
477               l_khrv_rec.IMPLICIT_INTEREST_RATE,
478               l_khrv_rec.IMPLICIT_NON_IDC_INTEREST_RATE,
479               l_khrv_rec.TARGET_PRE_TAX_YIELD,
480               l_khrv_rec.TARGET_AFTER_TAX_YIELD,
481               l_khrv_rec.TARGET_IMPLICIT_INTEREST_RATE,
482               l_khrv_rec.TARGET_IMPLICIT_NONIDC_INTRATE,
483               l_khrv_rec.DATE_LAST_INTERIM_INTEREST_CAL,
484               l_khrv_rec.DEAL_TYPE,
485               l_khrv_rec.PRE_TAX_IRR,
486               l_khrv_rec.AFTER_TAX_IRR,
487               l_khrv_rec.expected_delivery_date,
488               l_khrv_rec.accepted_date,
489               l_khrv_rec.PREFUNDING_ELIGIBLE_YN,
490               l_khrv_rec.REVOLVING_CREDIT_YN,
491               l_khrv_rec.CURRENCY_CONVERSION_TYPE,
492               l_khrv_rec.CURRENCY_CONVERSION_RATE,
493               l_khrv_rec.CURRENCY_CONVERSION_DATE,
494               l_khrv_rec.MULTI_GAAP_YN,
495               l_khrv_rec.RECOURSE_CODE,
496               l_khrv_rec.LESSOR_SERV_ORG_CODE,
497               l_khrv_rec.ASSIGNABLE_YN,
498               l_khrv_rec.SECURITIZED_CODE,
499               l_khrv_rec.SECURITIZATION_TYPE,
500 --Bug# 3143522 : Subsidies
501               l_khrv_rec.SUB_PRE_TAX_YIELD,
502               l_khrv_rec.SUB_AFTER_TAX_YIELD,
503               l_khrv_rec.SUB_IMPL_INTEREST_RATE,
504               l_khrv_rec.SUB_IMPL_NON_IDC_INT_RATE,
505               l_khrv_rec.SUB_PRE_TAX_IRR,
506               l_khrv_rec.SUB_AFTER_TAX_IRR,
507 --Bug#3923883 Rollover/Creditline performance
508               l_khrv_rec.TOT_CL_TRANSFER_AMT,
509               l_khrv_rec.TOT_CL_NET_TRANSFER_AMT,
510               l_khrv_rec.TOT_CL_LIMIT,
511               l_khrv_rec.TOT_CL_FUNDING_AMT,
512 --Bug 4466440 OKL.H new columns
513               l_khrv_rec.CRS_ID,
514               l_khrv_rec.TEMPLATE_TYPE_CODE,
515               l_khrv_rec.TRADEIN_DESCRIPTION,
516               l_khrv_rec.TRADEIN_AMOUNT,
517               l_khrv_rec.DATE_TRADEIN,
518               l_khrv_rec.DATE_FUNDING_EXPECTED,
519 	        --Added by dpsingh for LE Uptake
520 	      l_khrv_rec.LEGAL_ENTITY_ID;
521     x_no_data_found := okl_khrv_pk_csr%NOTFOUND;
522     CLOSE okl_khrv_pk_csr;
523     RETURN(l_khrv_rec);
524   END get_khrv_rec;
525 
526   FUNCTION get_khrv_rec (
527     p_khrv_id                     IN NUMBER
528   ) RETURN khrv_rec_type IS
529     l_row_notfound                 BOOLEAN := TRUE;
530   BEGIN
531     RETURN(get_khrv_rec(p_khrv_id, l_row_notfound));
532   END get_khrv_rec;
533   ---------------------------------------------------------------------------
534   -- FUNCTION get_rec for: OKC_K_LINES_V
535   ---------------------------------------------------------------------------
536   FUNCTION get_clev_rec (
537     p_clev_id                     IN NUMBER,
538     x_no_data_found                OUT NOCOPY BOOLEAN
539   ) RETURN clev_rec_type IS
540     CURSOR okc_clev_pk_csr (p_id                 IN NUMBER) IS
541     SELECT
542       ID
543     ,OBJECT_VERSION_NUMBER
544     ,SFWT_FLAG
545     ,CHR_ID
546     ,CLE_ID
547     ,CLE_ID_RENEWED
548     ,CLE_ID_RENEWED_TO
549     ,LSE_ID
550     ,LINE_NUMBER
551     ,STS_CODE
552     ,DISPLAY_SEQUENCE
553     ,TRN_CODE
554     ,DNZ_CHR_ID
555     ,COMMENTS
556     ,ITEM_DESCRIPTION
557     ,OKE_BOE_DESCRIPTION
558     ,HIDDEN_IND
559     ,PRICE_UNIT
560     ,PRICE_UNIT_PERCENT
561     ,PRICE_NEGOTIATED
562     ,PRICE_NEGOTIATED_RENEWED
563     ,PRICE_LEVEL_IND
564     ,INVOICE_LINE_LEVEL_IND
565     ,DPAS_RATING
566     ,BLOCK23TEXT
567     ,EXCEPTION_YN
568     ,TEMPLATE_USED
569     ,DATE_TERMINATED
570     ,NAME
571     ,START_DATE
572     ,END_DATE
573     ,UPG_ORIG_SYSTEM_REF
574     ,UPG_ORIG_SYSTEM_REF_ID
575     ,ATTRIBUTE_CATEGORY
576     ,ATTRIBUTE1
577     ,ATTRIBUTE2
578     ,ATTRIBUTE3
579     ,ATTRIBUTE4
580     ,ATTRIBUTE5
581     ,ATTRIBUTE6
582     ,ATTRIBUTE7
583     ,ATTRIBUTE8
584     ,ATTRIBUTE9
585     ,ATTRIBUTE10
586     ,ATTRIBUTE11
587     ,ATTRIBUTE12
588     ,ATTRIBUTE13
589     ,ATTRIBUTE14
590     ,ATTRIBUTE15
591     ,CREATED_BY
592     ,CREATION_DATE
593     ,LAST_UPDATED_BY
594     ,LAST_UPDATE_DATE
595     ,LAST_UPDATE_LOGIN
596     ,PRICE_TYPE
597     ,CURRENCY_CODE
598     ,CURRENCY_CODE_RENEWED
599     ,DATE_RENEWED
600     ,ORIG_SYSTEM_SOURCE_CODE
601     ,ORIG_SYSTEM_ID1
602     ,ORIG_SYSTEM_REFERENCE1
603     ,COGNOMEN
604     ,PROGRAM_APPLICATION_ID
605     ,PROGRAM_ID
606     ,PROGRAM_UPDATE_DATE
607     ,REQUEST_ID
608     ,PRICE_LIST_LINE_ID
609     ,PRICE_LIST_ID
610     ,LINE_LIST_PRICE
611     ,ITEM_TO_PRICE_YN
612     ,PRICING_DATE
613     ,PRICE_BASIS_YN
614     ,CONFIG_HEADER_ID
615     ,CONFIG_REVISION_NUMBER
616     ,CONFIG_COMPLETE_YN
617     ,CONFIG_VALID_YN
618     ,CONFIG_TOP_MODEL_LINE_ID
619     ,CONFIG_ITEM_TYPE
620     ,CONFIG_ITEM_ID
621     --,SERVICE_ITEM_YN
622     --,PH_PRICING_TYPE
623     --,PH_ADJUSTMENT
624     --,PH_PRICE_BREAK_BASIS
625     --,PH_MIN_QTY
626     --,PH_MIN_AMT
627     --,PH_QP_REFERENCE_ID
628     --,PH_VALUE
629     --,PH_ENFORCE_PRICE_LIST_YN
630     --,PH_INTEGRATED_WITH_QP
631     ,CUST_ACCT_ID
632     ,BILL_TO_SITE_USE_ID
633     ,INV_RULE_ID
634     ,LINE_RENEWAL_TYPE_CODE
635     ,SHIP_TO_SITE_USE_ID
636     ,PAYMENT_TERM_ID
637       FROM Okc_K_Lines_V
638      WHERE okc_k_lines_v.id     = p_id;
639     l_okc_clev_pk                  okc_clev_pk_csr%ROWTYPE;
640     l_clev_rec                     clev_rec_type;
641   BEGIN
642     x_no_data_found := TRUE;
643     -- Get current database values
644     OPEN okc_clev_pk_csr (p_clev_id);
645     FETCH okc_clev_pk_csr INTO
646      l_clev_rec.ID
647     ,l_clev_rec.OBJECT_VERSION_NUMBER
648     ,l_clev_rec.SFWT_FLAG
649     ,l_clev_rec.CHR_ID
650     ,l_clev_rec.CLE_ID
651     ,l_clev_rec.CLE_ID_RENEWED
652     ,l_clev_rec.CLE_ID_RENEWED_TO
653     ,l_clev_rec.LSE_ID
654     ,l_clev_rec.LINE_NUMBER
655     ,l_clev_rec.STS_CODE
656     ,l_clev_rec.DISPLAY_SEQUENCE
657     ,l_clev_rec.TRN_CODE
658     ,l_clev_rec.DNZ_CHR_ID
659     ,l_clev_rec.COMMENTS
660     ,l_clev_rec.ITEM_DESCRIPTION
661     ,l_clev_rec.OKE_BOE_DESCRIPTION
662     ,l_clev_rec.HIDDEN_IND
663     ,l_clev_rec.PRICE_UNIT
664     ,l_clev_rec.PRICE_UNIT_PERCENT
665     ,l_clev_rec.PRICE_NEGOTIATED
666     ,l_clev_rec.PRICE_NEGOTIATED_RENEWED
667     ,l_clev_rec.PRICE_LEVEL_IND
668     ,l_clev_rec.INVOICE_LINE_LEVEL_IND
669     ,l_clev_rec.DPAS_RATING
670     ,l_clev_rec.BLOCK23TEXT
671     ,l_clev_rec.EXCEPTION_YN
672     ,l_clev_rec.TEMPLATE_USED
673     ,l_clev_rec.DATE_TERMINATED
674     ,l_clev_rec.NAME
675     ,l_clev_rec.START_DATE
676     ,l_clev_rec.END_DATE
677     ,l_clev_rec.UPG_ORIG_SYSTEM_REF
678     ,l_clev_rec.UPG_ORIG_SYSTEM_REF_ID
679     ,l_clev_rec.ATTRIBUTE_CATEGORY
680     ,l_clev_rec.ATTRIBUTE1
681     ,l_clev_rec.ATTRIBUTE2
682     ,l_clev_rec.ATTRIBUTE3
683     ,l_clev_rec.ATTRIBUTE4
684     ,l_clev_rec.ATTRIBUTE5
685     ,l_clev_rec.ATTRIBUTE6
686     ,l_clev_rec.ATTRIBUTE7
687     ,l_clev_rec.ATTRIBUTE8
688     ,l_clev_rec.ATTRIBUTE9
689     ,l_clev_rec.ATTRIBUTE10
690     ,l_clev_rec.ATTRIBUTE11
691     ,l_clev_rec.ATTRIBUTE12
692     ,l_clev_rec.ATTRIBUTE13
693     ,l_clev_rec.ATTRIBUTE14
694     ,l_clev_rec.ATTRIBUTE15
695     ,l_clev_rec.CREATED_BY
696     ,l_clev_rec.CREATION_DATE
697     ,l_clev_rec.LAST_UPDATED_BY
698     ,l_clev_rec.LAST_UPDATE_DATE
699     ,l_clev_rec.LAST_UPDATE_LOGIN
700     ,l_clev_rec.PRICE_TYPE
701     ,l_clev_rec.CURRENCY_CODE
702     ,l_clev_rec.CURRENCY_CODE_RENEWED
703     ,l_clev_rec.DATE_RENEWED
704     ,l_clev_rec.ORIG_SYSTEM_SOURCE_CODE
705     ,l_clev_rec.ORIG_SYSTEM_ID1
706     ,l_clev_rec.ORIG_SYSTEM_REFERENCE1
707     ,l_clev_rec.COGNOMEN
708     ,l_clev_rec.PROGRAM_APPLICATION_ID
709     ,l_clev_rec.PROGRAM_ID
710     ,l_clev_rec.PROGRAM_UPDATE_DATE
711     ,l_clev_rec.REQUEST_ID
712     ,l_clev_rec.PRICE_LIST_LINE_ID
713     ,l_clev_rec.PRICE_LIST_ID
714     ,l_clev_rec.LINE_LIST_PRICE
715     ,l_clev_rec.ITEM_TO_PRICE_YN
716     ,l_clev_rec.PRICING_DATE
717     ,l_clev_rec.PRICE_BASIS_YN
718     ,l_clev_rec.CONFIG_HEADER_ID
719     ,l_clev_rec.CONFIG_REVISION_NUMBER
720     ,l_clev_rec.CONFIG_COMPLETE_YN
721     ,l_clev_rec.CONFIG_VALID_YN
722     ,l_clev_rec.CONFIG_TOP_MODEL_LINE_ID
723     ,l_clev_rec.CONFIG_ITEM_TYPE
724     ,l_clev_rec.CONFIG_ITEM_ID
725     --,l_clev_rec.SERVICE_ITEM_YN
726     --,l_clev_rec.PH_PRICING_TYPE
727     --,l_clev_rec.PH_ADJUSTMENT
728     --,l_clev_rec.PH_PRICE_BREAK_BASIS
729     --,l_clev_rec.PH_MIN_QTY
730     --,l_clev_rec.PH_MIN_AMT
731     --,l_clev_rec.PH_QP_REFERENCE_ID
732     --,l_clev_rec.PH_VALUE
733     --,l_clev_rec.PH_ENFORCE_PRICE_LIST_YN
734     --,l_clev_rec.PH_INTEGRATED_WITH_QP
735     ,l_clev_rec.CUST_ACCT_ID
736     ,l_clev_rec.BILL_TO_SITE_USE_ID
737     ,l_clev_rec.INV_RULE_ID
738     ,l_clev_rec.LINE_RENEWAL_TYPE_CODE
739     ,l_clev_rec.SHIP_TO_SITE_USE_ID
740     ,l_clev_rec.PAYMENT_TERM_ID;
741     x_no_data_found := okc_clev_pk_csr%NOTFOUND;
742     CLOSE okc_clev_pk_csr;
743     RETURN(l_clev_rec);
744   END get_clev_rec;
745 
746   FUNCTION get_clev_rec (
747     p_clev_id                     IN NUMBER
748   ) RETURN clev_rec_type IS
749     l_row_notfound                 BOOLEAN := TRUE;
750   BEGIN
751     RETURN(get_clev_rec(p_clev_id, l_row_notfound));
752   END get_clev_rec;
753 ----------------------------------------------------------------------
754 --end get_clev_rec
755 -----------------------------------------------------------------------
756 ---------------------------------------------------------------------------
757 -- FUNCTION get_rec for: OKL_K_LINES_V
758 ---------------------------------------------------------------------------
759   FUNCTION get_klev_rec (
760     p_klev_id                     IN NUMBER,
761     x_no_data_found                OUT NOCOPY BOOLEAN
762   ) RETURN klev_rec_type IS
763     CURSOR okl_klev_pk_csr (p_id                 IN NUMBER) IS
764     SELECT
765             ID,
766             OBJECT_VERSION_NUMBER,
767             KLE_ID,
768             STY_ID,
769             PRC_CODE,
770             FCG_CODE,
771             NTY_CODE,
772             ESTIMATED_OEC,
773             LAO_AMOUNT,
774             TITLE_DATE,
775             FEE_CHARGE,
776             LRS_PERCENT,
777             INITIAL_DIRECT_COST,
778             PERCENT_STAKE,
779             PERCENT,
780             EVERGREEN_PERCENT,
781             AMOUNT_STAKE,
782             OCCUPANCY,
783             COVERAGE,
784             RESIDUAL_PERCENTAGE,
785             DATE_LAST_INSPECTION,
786             DATE_SOLD,
787             LRV_AMOUNT,
788             CAPITAL_REDUCTION,
789             DATE_NEXT_INSPECTION_DUE,
790             DATE_RESIDUAL_LAST_REVIEW,
791             DATE_LAST_REAMORTISATION,
792             VENDOR_ADVANCE_PAID,
793             WEIGHTED_AVERAGE_LIFE,
794             TRADEIN_AMOUNT,
795             BOND_EQUIVALENT_YIELD,
796             TERMINATION_PURCHASE_AMOUNT,
797             REFINANCE_AMOUNT,
798             YEAR_BUILT,
799             DELIVERED_DATE,
800             CREDIT_TENANT_YN,
801             DATE_LAST_CLEANUP,
802             YEAR_OF_MANUFACTURE,
803             COVERAGE_RATIO,
804             REMARKETED_AMOUNT,
805             GROSS_SQUARE_FOOTAGE,
806             PRESCRIBED_ASSET_YN,
807             DATE_REMARKETED,
808             NET_RENTABLE,
809             REMARKET_MARGIN,
810             DATE_LETTER_ACCEPTANCE,
811             REPURCHASED_AMOUNT,
812             DATE_COMMITMENT_EXPIRATION,
813             DATE_REPURCHASED,
814             DATE_APPRAISAL,
815             RESIDUAL_VALUE,
816             APPRAISAL_VALUE,
817             SECURED_DEAL_YN,
818             GAIN_LOSS,
819             FLOOR_AMOUNT,
820             RE_LEASE_YN,
821             PREVIOUS_CONTRACT,
822             TRACKED_RESIDUAL,
823             DATE_TITLE_RECEIVED,
824             AMOUNT,
825             ATTRIBUTE_CATEGORY,
826             ATTRIBUTE1,
827             ATTRIBUTE2,
828             ATTRIBUTE3,
829             ATTRIBUTE4,
830             ATTRIBUTE5,
831             ATTRIBUTE6,
832             ATTRIBUTE7,
833             ATTRIBUTE8,
834             ATTRIBUTE9,
835             ATTRIBUTE10,
836             ATTRIBUTE11,
837             ATTRIBUTE12,
838             ATTRIBUTE13,
839             ATTRIBUTE14,
840             ATTRIBUTE15,
841             STY_ID_FOR,
842             CLG_ID,
843             CREATED_BY,
844             CREATION_DATE,
845             LAST_UPDATED_BY,
846             LAST_UPDATE_DATE,
847             LAST_UPDATE_LOGIN,
848             DATE_FUNDING,
849             DATE_FUNDING_REQUIRED,
850             DATE_ACCEPTED,
851             DATE_DELIVERY_EXPECTED,
852             OEC,
853             CAPITAL_AMOUNT,
854             RESIDUAL_GRNTY_AMOUNT,
855             RESIDUAL_CODE,
856             RVI_PREMIUM,
857             CREDIT_NATURE,
858             CAPITALIZED_INTEREST,
859             CAPITAL_REDUCTION_PERCENT,
860 -- Bug# 2697681
861             DATE_PAY_INVESTOR_START,
862             PAY_INVESTOR_FREQUENCY,
863             PAY_INVESTOR_EVENT,
864             PAY_INVESTOR_REMITTANCE_DAYS,
865 -- Bug# 2697681
866             FEE_TYPE,
867 -- Bug# 3143522 : Subsidies
868            SUBSIDY_ID,
869            --SUBSIDIZED_OEC,
870            --SUBSIDIZED_CAP_AMOUNT,
871            PRE_TAX_YIELD,
872            AFTER_TAX_YIELD,
873            IMPLICIT_INTEREST_RATE,
874            IMPLICIT_NON_IDC_INTEREST_RATE,
875            PRE_TAX_IRR,
876            AFTER_TAX_IRR,
877            SUBSIDY_OVERRIDE_AMOUNT,
878 --quote
879            SUB_PRE_TAX_YIELD,
880            SUB_AFTER_TAX_YIELD,
881            SUB_IMPL_INTEREST_RATE,
882            SUB_IMPL_NON_IDC_INT_RATE,
883            SUB_PRE_TAX_IRR,
884            SUB_AFTER_TAX_IRR,
885 --Bug# 2994971
886            ITEM_INSURANCE_CATEGORY,
887 --Bug# 3973640 : 11.5.10+ schema
888            QTE_ID,
889            FUNDING_DATE,
890            STREAM_TYPE_SUBCLASS,
891 --Bug 4466440 OKL.H new columns
892            DATE_FUNDING_EXPECTED,
893            MANUFACTURER_NAME,
894            MODEL_NUMBER,
895            DOWN_PAYMENT_RECEIVER_CODE,
896            CAPITALIZE_DOWN_PAYMENT_YN,
897            FEE_PURPOSE_CODE,
898            --Bug# 8677460
899            ORIG_CONTRACT_LINE_ID,
900            -- Bug 12938353: RGOOTY: Income Fee Enhancement
901            ORIGINATION_INCOME
902       FROM Okl_K_Lines_V
903      WHERE okl_k_lines_v.id     = p_id;
904     l_okl_klev_pk                  okl_klev_pk_csr%ROWTYPE;
905     l_klev_rec                     klev_rec_type;
906   BEGIN
907     x_no_data_found := TRUE;
908     -- Get current database values
909     OPEN okl_klev_pk_csr (p_klev_id);
910     FETCH okl_klev_pk_csr INTO
911               l_klev_rec.ID,
912               l_klev_rec.OBJECT_VERSION_NUMBER,
913               l_klev_rec.KLE_ID,
914               l_klev_rec.STY_ID,
915               l_klev_rec.PRC_CODE,
916               l_klev_rec.FCG_CODE,
917               l_klev_rec.NTY_CODE,
918               l_klev_rec.ESTIMATED_OEC,
919               l_klev_rec.LAO_AMOUNT,
920               l_klev_rec.TITLE_DATE,
921               l_klev_rec.FEE_CHARGE,
922               l_klev_rec.LRS_PERCENT,
923               l_klev_rec.INITIAL_DIRECT_COST,
924               l_klev_rec.PERCENT_STAKE,
925               l_klev_rec.PERCENT,
926               l_klev_rec.EVERGREEN_PERCENT,
927               l_klev_rec.AMOUNT_STAKE,
928               l_klev_rec.OCCUPANCY,
929               l_klev_rec.COVERAGE,
930               l_klev_rec.RESIDUAL_PERCENTAGE,
931               l_klev_rec.DATE_LAST_INSPECTION,
932               l_klev_rec.DATE_SOLD,
933               l_klev_rec.LRV_AMOUNT,
934               l_klev_rec.CAPITAL_REDUCTION,
935               l_klev_rec.DATE_NEXT_INSPECTION_DUE,
936               l_klev_rec.DATE_RESIDUAL_LAST_REVIEW,
937               l_klev_rec.DATE_LAST_REAMORTISATION,
938               l_klev_rec.VENDOR_ADVANCE_PAID,
939               l_klev_rec.WEIGHTED_AVERAGE_LIFE,
940               l_klev_rec.TRADEIN_AMOUNT,
941               l_klev_rec.BOND_EQUIVALENT_YIELD,
942               l_klev_rec.TERMINATION_PURCHASE_AMOUNT,
943               l_klev_rec.REFINANCE_AMOUNT,
944               l_klev_rec.YEAR_BUILT,
945               l_klev_rec.DELIVERED_DATE,
946               l_klev_rec.CREDIT_TENANT_YN,
947               l_klev_rec.DATE_LAST_CLEANUP,
948               l_klev_rec.YEAR_OF_MANUFACTURE,
949               l_klev_rec.COVERAGE_RATIO,
950               l_klev_rec.REMARKETED_AMOUNT,
951               l_klev_rec.GROSS_SQUARE_FOOTAGE,
952               l_klev_rec.PRESCRIBED_ASSET_YN,
953               l_klev_rec.DATE_REMARKETED,
954               l_klev_rec.NET_RENTABLE,
955               l_klev_rec.REMARKET_MARGIN,
956               l_klev_rec.DATE_LETTER_ACCEPTANCE,
957               l_klev_rec.REPURCHASED_AMOUNT,
958               l_klev_rec.DATE_COMMITMENT_EXPIRATION,
959               l_klev_rec.DATE_REPURCHASED,
960               l_klev_rec.DATE_APPRAISAL,
961               l_klev_rec.RESIDUAL_VALUE,
962               l_klev_rec.APPRAISAL_VALUE,
963               l_klev_rec.SECURED_DEAL_YN,
964               l_klev_rec.GAIN_LOSS,
965               l_klev_rec.FLOOR_AMOUNT,
966               l_klev_rec.RE_LEASE_YN,
967               l_klev_rec.PREVIOUS_CONTRACT,
968               l_klev_rec.TRACKED_RESIDUAL,
969               l_klev_rec.DATE_TITLE_RECEIVED,
970               l_klev_rec.AMOUNT,
971               l_klev_rec.ATTRIBUTE_CATEGORY,
972               l_klev_rec.ATTRIBUTE1,
973               l_klev_rec.ATTRIBUTE2,
974               l_klev_rec.ATTRIBUTE3,
975               l_klev_rec.ATTRIBUTE4,
976               l_klev_rec.ATTRIBUTE5,
977               l_klev_rec.ATTRIBUTE6,
978               l_klev_rec.ATTRIBUTE7,
979               l_klev_rec.ATTRIBUTE8,
980               l_klev_rec.ATTRIBUTE9,
981               l_klev_rec.ATTRIBUTE10,
982               l_klev_rec.ATTRIBUTE11,
983               l_klev_rec.ATTRIBUTE12,
984               l_klev_rec.ATTRIBUTE13,
985               l_klev_rec.ATTRIBUTE14,
986               l_klev_rec.ATTRIBUTE15,
987               l_klev_rec.STY_ID_FOR,
988               l_klev_rec.CLG_ID,
989               l_klev_rec.CREATED_BY,
990               l_klev_rec.CREATION_DATE,
991               l_klev_rec.LAST_UPDATED_BY,
992               l_klev_rec.LAST_UPDATE_DATE,
993               l_klev_rec.LAST_UPDATE_LOGIN,
994               l_klev_rec.DATE_FUNDING,
995               l_klev_rec.DATE_FUNDING_REQUIRED,
996               l_klev_rec.DATE_ACCEPTED,
997               l_klev_rec.DATE_DELIVERY_EXPECTED,
998               l_klev_rec.OEC,
999               l_klev_rec.CAPITAL_AMOUNT,
1000               l_klev_rec.RESIDUAL_GRNTY_AMOUNT,
1001               l_klev_rec.RESIDUAL_CODE,
1002               l_klev_rec.RVI_PREMIUM,
1003               l_klev_rec.CREDIT_NATURE,
1004               l_klev_rec.CAPITALIZED_INTEREST,
1005               l_klev_rec.CAPITAL_REDUCTION_PERCENT,
1006               l_klev_rec.DATE_PAY_INVESTOR_START,
1007               l_klev_rec.PAY_INVESTOR_FREQUENCY,
1008               l_klev_rec.PAY_INVESTOR_EVENT,
1009               l_klev_rec.PAY_INVESTOR_REMITTANCE_DAYS,
1010               l_klev_rec.FEE_TYPE,
1011 -- Bug# 3143522 : Subsidies
1012            l_klev_rec.SUBSIDY_ID,
1013            --l_klev_rec.SUBSIDIZED_OEC,
1014            --l_klev_rec.SUBSIDIZED_CAP_AMOUNT,
1015            l_klev_rec.PRE_TAX_YIELD,
1016            l_klev_rec.AFTER_TAX_YIELD,
1017            l_klev_rec.IMPLICIT_INTEREST_RATE,
1018            l_klev_rec.IMPLICIT_NON_IDC_INTEREST_RATE,
1019            l_klev_rec.PRE_TAX_IRR,
1020            l_klev_rec.AFTER_TAX_IRR,
1021            l_klev_rec.SUBSIDY_OVERRIDE_AMOUNT,
1022 --quote
1023            l_klev_rec.SUB_PRE_TAX_YIELD,
1024            l_klev_rec.SUB_AFTER_TAX_YIELD,
1025            l_klev_rec.SUB_IMPL_INTEREST_RATE,
1026            l_klev_rec.SUB_IMPL_NON_IDC_INT_RATE,
1027            l_klev_rec.SUB_PRE_TAX_IRR,
1028            l_klev_rec.SUB_AFTER_TAX_IRR,
1029 --Bug# 2994971
1030            l_klev_rec.ITEM_INSURANCE_CATEGORY,
1031 --Bug# 3973640 : 11.5.10+ schema
1032            l_klev_rec.QTE_ID,
1033            l_klev_rec.FUNDING_DATE,
1034            l_klev_rec.STREAM_TYPE_SUBCLASS,
1035 --Bug 4466440 OKL.H new columns
1036            l_klev_rec.DATE_FUNDING_EXPECTED,
1037            l_klev_rec.MANUFACTURER_NAME,
1038            l_klev_rec.MODEL_NUMBER,
1039            l_klev_rec.DOWN_PAYMENT_RECEIVER_CODE,
1040            l_klev_rec.CAPITALIZE_DOWN_PAYMENT_YN,
1041            l_klev_rec.FEE_PURPOSE_CODE,
1042            --Bug# 8677460
1043            l_klev_rec.ORIG_CONTRACT_LINE_ID,
1044            -- Bug 12938353: RGOOTY: Income Fee Enhancement
1045            l_klev_rec.origination_income;
1046     x_no_data_found := okl_klev_pk_csr%NOTFOUND;
1047     CLOSE okl_klev_pk_csr;
1048     RETURN(l_klev_rec);
1049   END get_klev_rec;
1050 
1051   FUNCTION get_klev_rec (
1052     p_klev_id                    IN NUMBER
1053   ) RETURN klev_rec_type IS
1054     l_row_notfound                 BOOLEAN := TRUE;
1055   BEGIN
1056     RETURN(get_klev_rec(p_klev_id, l_row_notfound));
1057   END get_klev_rec;
1058 --Bug# : 3143522
1059 
1060   --furong 4350255
1061   ---------------------------------------------------------------------------
1062   -- FUNCTION get_rec for: OKL_PARTY_PAYMENT_HDR_V
1063   ---------------------------------------------------------------------------
1064   FUNCTION get_pphv_rec (
1065     p_pphv_rec                     IN pphv_rec_type,
1066     x_no_data_found                OUT NOCOPY BOOLEAN
1067   ) RETURN pphv_rec_type IS
1068     CURSOR okl_party_payment_hdr_v_pk_csr (p_id IN NUMBER) IS
1069     SELECT
1070             ID,
1071             OBJECT_VERSION_NUMBER,
1072             DNZ_CHR_ID,
1073             CLE_ID,
1074             PPL_ID,
1075             PASSTHRU_START_DATE,
1076             PAYOUT_BASIS,
1077             PAYOUT_BASIS_FORMULA,
1078             EFFECTIVE_FROM,
1079             EFFECTIVE_TO,
1080 			PASSTHRU_TERM,
1081 			PASSTHRU_STREAM_TYPE_ID,
1082             CREATED_BY,
1083             CREATION_DATE,
1084             LAST_UPDATED_BY,
1085             LAST_UPDATE_DATE,
1086             LAST_UPDATE_LOGIN
1087       FROM Okl_Party_Payment_Hdr_V
1088      WHERE okl_party_payment_hdr_v.id = p_id;
1089     l_okl_party_payment_hdr_v_pk   okl_party_payment_hdr_v_pk_csr%ROWTYPE;
1090     l_pphv_rec                     pphv_rec_type;
1091   BEGIN
1092     x_no_data_found := TRUE;
1093     -- Get current database values
1094     OPEN okl_party_payment_hdr_v_pk_csr (p_pphv_rec.id);
1095     FETCH okl_party_payment_hdr_v_pk_csr INTO
1096               l_pphv_rec.id,
1097               l_pphv_rec.object_version_number,
1098               l_pphv_rec.dnz_chr_id,
1099               l_pphv_rec.cle_id,
1100               l_pphv_rec.ppl_id,
1101               l_pphv_rec.passthru_start_date,
1102               l_pphv_rec.payout_basis,
1103               l_pphv_rec.payout_basis_formula,
1104               l_pphv_rec.effective_from,
1105               l_pphv_rec.effective_to,
1106 			  l_pphv_rec.passthru_term,
1107 			  l_pphv_rec.passthru_stream_type_id,
1108               l_pphv_rec.created_by,
1109               l_pphv_rec.creation_date,
1110               l_pphv_rec.last_updated_by,
1111               l_pphv_rec.last_update_date,
1112               l_pphv_rec.last_update_login;
1113     x_no_data_found := okl_party_payment_hdr_v_pk_csr%NOTFOUND;
1114     CLOSE okl_party_payment_hdr_v_pk_csr;
1115     RETURN(l_pphv_rec);
1116   END get_pphv_rec;
1117  ------------------------------------------------------------------
1118   -- This version of get_rec sets error messages if no data found --
1119   ------------------------------------------------------------------
1120   FUNCTION get_pphv_rec (
1121     p_pphv_rec                      IN pphv_rec_type,
1122     x_return_status                OUT NOCOPY VARCHAR2
1123   ) RETURN pphv_rec_type IS
1124     l_pphv_rec                      pphv_rec_type;
1125     l_row_notfound                 BOOLEAN := TRUE;
1126   BEGIN
1127     x_return_status := OKC_API.G_RET_STS_SUCCESS;
1128     l_pphv_rec := get_pphv_rec(p_pphv_rec, l_row_notfound);
1129     IF (l_row_notfound) THEN
1130       OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'ID');
1131       x_return_status := OKC_API.G_RET_STS_ERROR;
1132     END IF;
1133     RETURN(l_pphv_rec);
1134   END get_pphv_rec;
1135 
1136   --furong 4350255
1137 
1138   ---------------------------------------------------------------------------
1139   -- FUNCTION get_rec for: OKL_PARTY_PAYMENT_DTLS_V
1140   ---------------------------------------------------------------------------
1141   FUNCTION get_ppydv_rec (
1142     p_ppydv_rec                    IN ppydv_rec_type,
1143     x_no_data_found                OUT NOCOPY BOOLEAN
1144   ) RETURN ppydv_rec_type IS
1145     CURSOR okl_party_payment_d1 (p_id IN NUMBER) IS
1146     SELECT
1147             ID,
1148             OBJECT_VERSION_NUMBER,
1149             CPL_ID,
1150             VENDOR_ID,
1151             PAY_SITE_ID,
1152             PAYMENT_TERM_ID,
1153             PAYMENT_METHOD_CODE,
1154             PAY_GROUP_CODE,
1155 			PAYMENT_HDR_ID,
1156 			PAYMENT_START_DATE,
1157 			PAYMENT_FREQUENCY,
1158 			REMIT_DAYS,
1159 			DISBURSEMENT_BASIS,
1160 			DISBURSEMENT_FIXED_AMOUNT,
1161 			DISBURSEMENT_PERCENT,
1162 			PROCESSING_FEE_BASIS,
1163 			PROCESSING_FEE_FIXED_AMOUNT,
1164 			PROCESSING_FEE_PERCENT,
1165 			PAYMENT_BASIS,
1166             ATTRIBUTE_CATEGORY,
1167             ATTRIBUTE1,
1168             ATTRIBUTE2,
1169             ATTRIBUTE3,
1170             ATTRIBUTE4,
1171             ATTRIBUTE5,
1172             ATTRIBUTE6,
1173             ATTRIBUTE7,
1174             ATTRIBUTE8,
1175             ATTRIBUTE9,
1176             ATTRIBUTE10,
1177             ATTRIBUTE11,
1178             ATTRIBUTE12,
1179             ATTRIBUTE13,
1180             ATTRIBUTE14,
1181             ATTRIBUTE15,
1182             CREATED_BY,
1183             CREATION_DATE,
1184             LAST_UPDATED_BY,
1185             LAST_UPDATE_DATE,
1186             LAST_UPDATE_LOGIN,
1187             --Bug# 8677460
1188             ORIG_CONTRACT_LINE_ID
1189       FROM Okl_Party_Payment_Dtls_V
1190      WHERE okl_party_payment_dtls_v.id = p_id;
1191     l_okl_party_payment_dtls_v_pk  okl_party_payment_d1%ROWTYPE;
1192     l_ppydv_rec                    ppydv_rec_type;
1193   BEGIN
1194     x_no_data_found := TRUE;
1195     -- Get current database values
1196     OPEN okl_party_payment_d1 (p_ppydv_rec.id);
1197     FETCH okl_party_payment_d1 INTO
1198               l_ppydv_rec.id,
1199               l_ppydv_rec.object_version_number,
1200               l_ppydv_rec.cpl_id,
1201               l_ppydv_rec.vendor_id,
1202               l_ppydv_rec.pay_site_id,
1203               l_ppydv_rec.payment_term_id,
1204               l_ppydv_rec.payment_method_code,
1205               l_ppydv_rec.pay_group_code,
1206 			  l_ppydv_rec.payment_hdr_id,
1207 			  l_ppydv_rec.payment_start_date,
1208 			  l_ppydv_rec.payment_frequency,
1209 			  l_ppydv_rec.remit_days,
1210 			  l_ppydv_rec.disbursement_basis,
1211 			  l_ppydv_rec.disbursement_fixed_amount,
1212 			  l_ppydv_rec.disbursement_percent,
1213 			  l_ppydv_rec.processing_fee_basis,
1214 			  l_ppydv_rec.processing_fee_fixed_amount,
1215 			  l_ppydv_rec.processing_fee_percent,
1216 			  l_ppydv_rec.payment_basis,
1217               l_ppydv_rec.attribute_category,
1218               l_ppydv_rec.attribute1,
1219               l_ppydv_rec.attribute2,
1220               l_ppydv_rec.attribute3,
1221               l_ppydv_rec.attribute4,
1222               l_ppydv_rec.attribute5,
1223               l_ppydv_rec.attribute6,
1224               l_ppydv_rec.attribute7,
1225               l_ppydv_rec.attribute8,
1226               l_ppydv_rec.attribute9,
1227               l_ppydv_rec.attribute10,
1228               l_ppydv_rec.attribute11,
1229               l_ppydv_rec.attribute12,
1230               l_ppydv_rec.attribute13,
1231               l_ppydv_rec.attribute14,
1232               l_ppydv_rec.attribute15,
1233               l_ppydv_rec.created_by,
1234               l_ppydv_rec.creation_date,
1235               l_ppydv_rec.last_updated_by,
1236               l_ppydv_rec.last_update_date,
1237               l_ppydv_rec.last_update_login,
1238               --Bug# 8677460
1239               l_ppydv_rec.orig_contract_line_id;
1240     x_no_data_found := okl_party_payment_d1%NOTFOUND;
1241     CLOSE okl_party_payment_d1;
1242     RETURN(l_ppydv_rec);
1243   END get_ppydv_rec;
1244 
1245   --Bug# 4558486
1246   ---------------------------------------------------------------------------
1247   -- FUNCTION get_rec for: OKL_K_PARTY_ROLES
1248   ---------------------------------------------------------------------------
1249   FUNCTION get_kplv_rec (
1250     p_kplv_rec                     IN kplv_rec_type,
1251     x_no_data_found                OUT NOCOPY BOOLEAN
1252   ) RETURN kplv_rec_type IS
1253     CURSOR okl_k_party_roles_v_pk_csr (p_id IN NUMBER) IS
1254     SELECT
1255            ID,
1256            OBJECT_VERSION_NUMBER,
1257            ATTRIBUTE_CATEGORY,
1258            ATTRIBUTE1,
1259            ATTRIBUTE2,
1260            ATTRIBUTE3,
1261            ATTRIBUTE4,
1262            ATTRIBUTE5,
1263            ATTRIBUTE6,
1264            ATTRIBUTE7,
1265            ATTRIBUTE8,
1266            ATTRIBUTE9,
1267            ATTRIBUTE10,
1268            ATTRIBUTE11,
1269            ATTRIBUTE12,
1270            ATTRIBUTE13,
1271            ATTRIBUTE14,
1272            ATTRIBUTE15,
1273            CREATED_BY,
1274            CREATION_DATE,
1275            LAST_UPDATED_BY,
1276            LAST_UPDATE_DATE,
1277            LAST_UPDATE_LOGIN
1278      FROM Okl_K_Party_Roles_V
1279      WHERE okl_k_party_roles_v.id = p_id;
1280     l_okl_k_party_roles_v_pk   okl_k_party_roles_v_pk_csr%ROWTYPE;
1281     l_kplv_rec                     kplv_rec_type;
1282   BEGIN
1283     x_no_data_found := TRUE;
1284     -- Get current database values
1285     OPEN okl_k_party_roles_v_pk_csr (p_kplv_rec.id);
1286     FETCH okl_k_party_roles_v_pk_csr INTO
1287               l_kplv_rec.id,
1288               l_kplv_rec.object_version_number,
1289               l_kplv_rec.attribute_category,
1290               l_kplv_rec.attribute1,
1291               l_kplv_rec.attribute2,
1292               l_kplv_rec.attribute3,
1293               l_kplv_rec.attribute4,
1294               l_kplv_rec.attribute5,
1295               l_kplv_rec.attribute6,
1296               l_kplv_rec.attribute7,
1297               l_kplv_rec.attribute8,
1298               l_kplv_rec.attribute9,
1299               l_kplv_rec.attribute10,
1300               l_kplv_rec.attribute11,
1301               l_kplv_rec.attribute12,
1302               l_kplv_rec.attribute13,
1303               l_kplv_rec.attribute14,
1304               l_kplv_rec.attribute15,
1305               l_kplv_rec.created_by,
1306               l_kplv_rec.creation_date,
1307               l_kplv_rec.last_updated_by,
1308               l_kplv_rec.last_update_date,
1309               l_kplv_rec.last_update_login;
1310     x_no_data_found := okl_k_party_roles_v_pk_csr%NOTFOUND;
1311     CLOSE okl_k_party_roles_v_pk_csr;
1312     RETURN(l_kplv_rec);
1313   END get_kplv_rec;
1314  ------------------------------------------------------------------
1315   -- This version of get_rec sets error messages if no data found --
1316   ------------------------------------------------------------------
1317   FUNCTION get_kplv_rec (
1318     p_kplv_rec                     IN kplv_rec_type,
1319     x_return_status                OUT NOCOPY VARCHAR2
1320   ) RETURN kplv_rec_type IS
1321     l_kplv_rec                      kplv_rec_type;
1322     l_row_notfound                 BOOLEAN := TRUE;
1323   BEGIN
1324     x_return_status := OKC_API.G_RET_STS_SUCCESS;
1325     l_kplv_rec := get_kplv_rec(p_kplv_rec, l_row_notfound);
1326     IF (l_row_notfound) THEN
1327       OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'ID');
1328       x_return_status := OKC_API.G_RET_STS_ERROR;
1329     END IF;
1330     RETURN(l_kplv_rec);
1331   END get_kplv_rec;
1332   --Bug# 4558486
1333 
1334   --Bug # 3630858
1335     ---------------------------------------------------------------------------
1336     -- FUNCTION get_rec for: OKL_SLCTD_OPTNS_V
1337     ---------------------------------------------------------------------------
1338     FUNCTION get_cspv_rec (
1339       p_cspv_rec_id                    IN number,
1340       x_return_status                  OUT NOCOPY VARCHAR2
1341     ) RETURN cspv_rec_type IS
1342       CURSOR OKL_SLCTD_OPTNS_CSR (p_id IN NUMBER) IS
1343       SELECT
1344               ID,
1345               OBJECT_VERSION_NUMBER,
1346               POV_ID,
1347               KHR_ID,
1348               ATTRIBUTE_CATEGORY,
1349               ATTRIBUTE1,
1350               ATTRIBUTE2,
1351               ATTRIBUTE3,
1352               ATTRIBUTE4,
1353               ATTRIBUTE5,
1354               ATTRIBUTE6,
1355               ATTRIBUTE7,
1356               ATTRIBUTE8,
1357               ATTRIBUTE9,
1358               ATTRIBUTE10,
1359               ATTRIBUTE11,
1360               ATTRIBUTE12,
1361               ATTRIBUTE13,
1362               ATTRIBUTE14,
1363               ATTRIBUTE15,
1364               CREATED_BY,
1365               CREATION_DATE,
1366               LAST_UPDATED_BY,
1367               LAST_UPDATE_DATE,
1368               LAST_UPDATE_LOGIN
1369         FROM OKL_SLCTD_OPTNS_V
1370        WHERE OKL_SLCTD_OPTNS_V.id = p_id;
1371 
1372       l_cspv_rec_id           number;
1373       l_cspv_rec              cspv_rec_type;
1374       l_no_data_found         BOOLEAN := FALSE;
1375     BEGIN
1376 	  l_cspv_rec_id := p_cspv_rec_id;
1377       -- Get current database values
1378       OPEN OKL_SLCTD_OPTNS_CSR (l_cspv_rec_id);
1379       FETCH OKL_SLCTD_OPTNS_CSR INTO
1380                 l_cspv_rec.id,
1381                 l_cspv_rec.object_version_number,
1382                 l_cspv_rec.pov_id,
1383                 l_cspv_rec.khr_id,
1384                 l_cspv_rec.attribute_category,
1385                 l_cspv_rec.attribute1,
1386                 l_cspv_rec.attribute2,
1387                 l_cspv_rec.attribute3,
1388                 l_cspv_rec.attribute4,
1389                 l_cspv_rec.attribute5,
1390                 l_cspv_rec.attribute6,
1391                 l_cspv_rec.attribute7,
1392                 l_cspv_rec.attribute8,
1393                 l_cspv_rec.attribute9,
1394                 l_cspv_rec.attribute10,
1395                 l_cspv_rec.attribute11,
1396                 l_cspv_rec.attribute12,
1397                 l_cspv_rec.attribute13,
1398                 l_cspv_rec.attribute14,
1399                 l_cspv_rec.attribute15,
1400                 l_cspv_rec.created_by,
1401                 l_cspv_rec.creation_date,
1402                 l_cspv_rec.last_updated_by,
1403                 l_cspv_rec.last_update_date,
1404                 l_cspv_rec.last_update_login;
1405       l_no_data_found := OKL_SLCTD_OPTNS_CSR%NOTFOUND;
1406       CLOSE OKL_SLCTD_OPTNS_CSR;
1407 
1408       x_return_status := OKL_API.G_RET_STS_SUCCESS;
1409       IF (l_no_data_found) THEN
1410         OKL_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'ID');
1411         x_return_status := OKL_API.G_RET_STS_ERROR;
1412       END IF;
1413 
1414       RETURN(l_cspv_rec);
1415   END get_cspv_rec;
1416 
1417 
1418   ------------------------------------------------------------------
1419   -- This version of get_rec sets error messages if no data found --
1420   ------------------------------------------------------------------
1421   FUNCTION get_ppydv_rec (
1422     p_ppydv_rec                    IN ppydv_rec_type,
1423     x_return_status                OUT NOCOPY VARCHAR2
1424   ) RETURN ppydv_rec_type IS
1425     l_ppydv_rec                    ppydv_rec_type;
1426     l_row_notfound                 BOOLEAN := TRUE;
1427   BEGIN
1428     x_return_status := OKL_API.G_RET_STS_SUCCESS;
1429     l_ppydv_rec := get_ppydv_rec(p_ppydv_rec, l_row_notfound);
1430     IF (l_row_notfound) THEN
1431       OKL_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'ID');
1432       x_return_status := OKL_API.G_RET_STS_ERROR;
1433     END IF;
1434     RETURN(l_ppydv_rec);
1435   END get_ppydv_rec;
1436   -----------------------------------------------------------
1437   -- So we don't have to pass an "l_row_notfound" variable --
1438   -----------------------------------------------------------
1439   FUNCTION get_ppydv_rec (
1440     p_ppydv_rec                    IN ppydv_rec_type
1441   ) RETURN ppydv_rec_type IS
1442     l_row_not_found                BOOLEAN := TRUE;
1443   BEGIN
1444     RETURN(get_ppydv_rec(p_ppydv_rec, l_row_not_found));
1445   END get_ppydv_rec;
1446 
1447   --furong  4350255
1448   Procedure copy_party_pymt_hdr
1449     (p_api_version                  IN  NUMBER,
1450      p_init_msg_list                IN  VARCHAR2 ,
1451      x_return_status                OUT NOCOPY VARCHAR2,
1452      x_msg_count                    OUT NOCOPY NUMBER,
1453      x_msg_data                     OUT NOCOPY VARCHAR2,
1454      p_chr_id                       IN  NUMBER,
1455      p_cle_id                  	    IN  NUMBER,
1456      p_pph_id                  	    IN  NUMBER,
1457      x_pph_id		                OUT NOCOPY NUMBER) IS
1458 
1459     l_get_pphv_rec    pphv_rec_type;
1460     l_pphv_rec        pphv_rec_type;
1461     lx_pphv_rec       pphv_rec_type;
1462 
1463     l_return_status        VARCHAR2(1)  default OKL_API.G_RET_STS_SUCCESS;
1464     l_api_name             CONSTANT     varchar2(30) := 'COPY_PARTY_PYMT_HDR';
1465     l_api_version          CONSTANT     NUMBER := 1.0;
1466 
1467 Begin
1468     x_return_status := OKL_API.G_RET_STS_SUCCESS;
1469     -- Call start_activity to create savepoint, check compatibility
1470     -- and initialize message list
1471     x_return_status := OKL_API.START_ACTIVITY (
1472                                l_api_name
1473                                ,p_init_msg_list
1474                                ,'_PVT'
1475                                ,x_return_status);
1476     -- Check if activity started successfully
1477     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1478        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1479     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1480        RAISE OKL_API.G_EXCEPTION_ERROR;
1481     END IF;
1482 
1483     l_get_pphv_rec.id := p_pph_id;
1484     l_pphv_rec := get_pphv_rec(p_pphv_rec => l_get_pphv_rec,
1485 			                   x_return_status => x_return_status);
1486 	l_pphv_rec.dnz_chr_id := p_chr_id;
1487 	l_pphv_rec.cle_id := p_cle_id;
1488 
1489     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1490        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1491     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1492        RAISE OKL_API.G_EXCEPTION_ERROR;
1493     END IF;
1494 
1495     OKL_LDB_PVT.insert_row
1496            (p_api_version   => p_api_version,
1497             p_init_msg_list => p_init_msg_list,
1498             x_return_status => x_return_status,
1499             x_msg_count     => x_msg_count,
1500             x_msg_data      => x_msg_data,
1501             p_pphv_rec      => l_pphv_rec,
1502             x_pphv_rec      => lx_pphv_rec);
1503 
1504     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1505        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1506     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1507        RAISE OKL_API.G_EXCEPTION_ERROR;
1508     END IF;
1509     x_pph_id := lx_pphv_rec.id;
1510 
1511     OKL_API.END_ACTIVITY (x_msg_count,x_msg_data );
1512 
1513     EXCEPTION
1514 
1515     WHEN OKL_API.G_EXCEPTION_ERROR THEN
1516     x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1517                                l_api_name,
1518                                G_PKG_NAME,
1519                                'OKL_API.G_RET_STS_ERROR',
1520                                x_msg_count,
1521                                x_msg_data,
1522                                '_PVT');
1523     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1524     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
1525                               l_api_name,
1526                               G_PKG_NAME,
1527                               'OKL_API.G_RET_STS_UNEXP_ERROR',
1528                               x_msg_count,
1529                               x_msg_data,
1530                               '_PVT');
1531     WHEN OTHERS THEN
1532     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
1533                               l_api_name,
1534                               G_PKG_NAME,
1535                               'OTHERS',
1536                               x_msg_count,
1537                               x_msg_data,
1538                               '_PVT');
1539 End copy_party_pymt_hdr;
1540 --furong 4350255
1541 
1542 --------------------------------------------------------------------------------
1543 -- Start of comments
1544 -- Bug# 3143522
1545 -- Procedure name  : copy_party_pymt_dtls
1546 -- Description     : Copies okl party payment details
1547 --                   local (sub entiry of OKL party roles)
1548 -- Business Rules  :
1549 -- Parameters      :
1550 -- Version         : 1.0
1551 -- Notes           :
1552 -- End of Comments
1553 -------------------------------------------------------------------------------
1554 Procedure copy_party_pymt_dtls
1555     (p_api_version                  IN  NUMBER,
1556      p_init_msg_list                IN  VARCHAR2 ,
1557      x_return_status                OUT NOCOPY VARCHAR2,
1558      x_msg_count                    OUT NOCOPY NUMBER,
1559      x_msg_data                     OUT NOCOPY VARCHAR2,
1560      p_pyd_id                       IN  NUMBER,
1561      p_cpl_id                  	    IN  NUMBER,
1562 	 --furong  4350255
1563 	 p_pph_id                       IN  NUMBER DEFAULT OKL_API.G_MISS_NUM,
1564      --furong   4350255
1565      x_pyd_id		            OUT NOCOPY NUMBER,
1566      --Bug# 8677460
1567      p_rebook_yn                    IN VARCHAR2 DEFAULT 'N') IS
1568 
1569     l_get_ppydv_rec   ppydv_rec_type;
1570     l_ppydv_rec       ppydv_rec_type;
1571     lx_ppydv_rec      ppydv_rec_type;
1572 
1573     l_return_status        VARCHAR2(1)  default OKL_API.G_RET_STS_SUCCESS;
1574     l_api_name             CONSTANT     varchar2(30) := 'COPY_PARTY_PYMT_DTLS';
1575     l_api_version          CONSTANT     NUMBER := 1.0;
1576 
1577 Begin
1578     x_return_status := OKL_API.G_RET_STS_SUCCESS;
1579     -- Call start_activity to create savepoint, check compatibility
1580     -- and initialize message list
1581     x_return_status := OKL_API.START_ACTIVITY (
1582                                l_api_name
1583                                ,p_init_msg_list
1584                                ,'_PVT'
1585                                ,x_return_status);
1586     -- Check if activity started successfully
1587     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1588        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1589     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1590        RAISE OKL_API.G_EXCEPTION_ERROR;
1591     END IF;
1592 
1593     l_get_ppydv_rec.id := p_pyd_id;
1594     l_ppydv_rec := get_ppydv_rec(p_ppydv_rec        => l_get_ppydv_rec,
1595 			         x_return_status    => x_return_status);
1596 
1597     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1598        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1599     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1600        RAISE OKL_API.G_EXCEPTION_ERROR;
1601     END IF;
1602 
1603     --create party payment details
1604     l_ppydv_rec.cpl_id := p_cpl_id;
1605 	l_ppydv_rec.payment_hdr_id := p_pph_id;
1606 
1607     --Bug# 8677460
1608     IF (p_rebook_yn = 'N') THEN
1609       l_ppydv_rec.orig_contract_line_id := NULL;
1610     END IF;
1611 
1612     OKL_PYD_PVT.insert_row
1613            (p_api_version   => p_api_version,
1614             p_init_msg_list => p_init_msg_list,
1615             x_return_status => x_return_status,
1616             x_msg_count     => x_msg_count,
1617             x_msg_data      => x_msg_data,
1618             p_ppydv_rec     => l_ppydv_rec,
1619             x_ppydv_rec     => lx_ppydv_rec);
1620 
1621     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1622        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1623     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1624        RAISE OKL_API.G_EXCEPTION_ERROR;
1625     END IF;
1626     x_pyd_id := lx_ppydv_rec.id;
1627 
1628     OKL_API.END_ACTIVITY (x_msg_count,x_msg_data );
1629 
1630     EXCEPTION
1631 
1632     WHEN OKL_API.G_EXCEPTION_ERROR THEN
1633     x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1634                                l_api_name,
1635                                G_PKG_NAME,
1636                                'OKL_API.G_RET_STS_ERROR',
1637                                x_msg_count,
1638                                x_msg_data,
1639                                '_PVT');
1640     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1641     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
1642                               l_api_name,
1643                               G_PKG_NAME,
1644                               'OKL_API.G_RET_STS_UNEXP_ERROR',
1645                               x_msg_count,
1646                               x_msg_data,
1647                               '_PVT');
1648     WHEN OTHERS THEN
1649     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
1650                               l_api_name,
1651                               G_PKG_NAME,
1652                               'OTHERS',
1653                               x_msg_count,
1654                               x_msg_data,
1655                               '_PVT');
1656 End copy_party_pymt_dtls;
1657 
1658 --Bug# 4558486
1659 Procedure copy_okl_k_party_roles
1660     (p_api_version                  IN  NUMBER,
1661      p_init_msg_list                IN  VARCHAR2 ,
1662      x_return_status                OUT NOCOPY VARCHAR2,
1663      x_msg_count                    OUT NOCOPY NUMBER,
1664      x_msg_data                     OUT NOCOPY VARCHAR2,
1665      p_kpl_id                       IN  NUMBER,
1666      p_cpl_id                       IN  NUMBER,
1667      x_kpl_id                       OUT NOCOPY NUMBER) IS
1668 
1669     l_get_kplv_rec    kplv_rec_type;
1670     l_kplv_rec        kplv_rec_type;
1671     lx_kplv_rec       kplv_rec_type;
1672 
1673     l_return_status        VARCHAR2(1)  default OKL_API.G_RET_STS_SUCCESS;
1674     l_api_name             CONSTANT     varchar2(30) := 'COPY_OKL_K_PARTY_ROLES';
1675     l_api_version          CONSTANT     NUMBER := 1.0;
1676 
1677 Begin
1678     x_return_status := OKL_API.G_RET_STS_SUCCESS;
1679     -- Call start_activity to create savepoint, check compatibility
1680     -- and initialize message list
1681     x_return_status := OKL_API.START_ACTIVITY (
1682                                l_api_name
1683                                ,p_init_msg_list
1684                                ,'_PVT'
1685                                ,x_return_status);
1686     -- Check if activity started successfully
1687     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1688        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1689     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1690        RAISE OKL_API.G_EXCEPTION_ERROR;
1691     END IF;
1692 
1693     l_get_kplv_rec.id := p_kpl_id;
1694     l_kplv_rec := get_kplv_rec(p_kplv_rec => l_get_kplv_rec,
1695 			       x_return_status => x_return_status);
1696     l_kplv_rec.id := p_cpl_id;
1697 
1698     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1699        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1700     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1701        RAISE OKL_API.G_EXCEPTION_ERROR;
1702     END IF;
1703 
1704     OKL_KPL_PVT.insert_row
1705            (p_api_version   => p_api_version,
1706             p_init_msg_list => p_init_msg_list,
1707             x_return_status => x_return_status,
1708             x_msg_count     => x_msg_count,
1709             x_msg_data      => x_msg_data,
1710             p_kplv_rec      => l_kplv_rec,
1711             x_kplv_rec      => lx_kplv_rec);
1712 
1713     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1714        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1715     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1716        RAISE OKL_API.G_EXCEPTION_ERROR;
1717     END IF;
1718     x_kpl_id := lx_kplv_rec.id;
1719 
1720     OKL_API.END_ACTIVITY (x_msg_count,x_msg_data );
1721 
1722     EXCEPTION
1723 
1724     WHEN OKL_API.G_EXCEPTION_ERROR THEN
1725     x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1726                                l_api_name,
1727                                G_PKG_NAME,
1728                                'OKL_API.G_RET_STS_ERROR',
1729                                x_msg_count,
1730                                x_msg_data,
1731                                '_PVT');
1732     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1733     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
1734                               l_api_name,
1735                               G_PKG_NAME,
1736                               'OKL_API.G_RET_STS_UNEXP_ERROR',
1737                               x_msg_count,
1738                               x_msg_data,
1739                               '_PVT');
1740     WHEN OTHERS THEN
1741     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
1742                               l_api_name,
1743                               G_PKG_NAME,
1744                               'OTHERS',
1745                               x_msg_count,
1746                               x_msg_data,
1747                               '_PVT');
1748 End copy_okl_k_party_roles;
1749 --Bug# 4558486
1750 --Bug# 3143522: 11.5.10 Subsidies
1751 --------------------------------------------------------------------------------
1752 -- Start of comments
1753 --
1754 -- Procedure Name  : Catchup_okl_contract_line
1755 -- Description     : Does a catchup for okl_k_lines. This will not be
1756 --                   published
1757 -- Business Rules  :
1758 -- Parameters      :
1759 -- Version         : 1.0
1760 -- Notes           : just calls OKC_COPY_CONTRACT_PUB.copy_components.
1761 -- End of comments
1762 --------------------------------------------------------------------------------
1763 Procedure Catchup_okl_contract_line(
1764   				p_api_version                  IN  NUMBER,
1765     			p_init_msg_list                IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
1766    				x_return_status                OUT NOCOPY VARCHAR2,
1767     			x_msg_count                    OUT NOCOPY NUMBER,
1768     			x_msg_data                     OUT NOCOPY VARCHAR2,
1769 				p_clev_id                       IN  NUMBER,
1770                 p_klev_id                       IN  NUMBER,
1771     			x_clev_rec                     OUT NOCOPY okl_okc_migration_pvt.clev_rec_type,
1772     			x_klev_rec                     OUT NOCOPY klev_rec_type,
1773                   --Bug# 8677460
1774                   p_rebook_yn                    IN  VARCHAR2 DEFAULT 'N') is
1775 
1776 l_return_status		           VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1777 l_api_name			           CONSTANT VARCHAR2(30) := 'CATCHUP_OKL_CONTRACT_LINE';
1778 l_api_version		           CONSTANT NUMBER	:= 1.0;
1779 l_clev_rec                      clev_rec_type;
1780 l_clev_rec_out                  clev_rec_type;
1781 l_klev_rec                      klev_rec_type;
1782 
1783 begin
1784 -----
1785 -- Catch up shadow for Contract Lines
1786 	l_clev_rec := get_clev_rec(p_clev_id => p_klev_id);
1787  -- get the newly created line record
1788  /*
1789 	IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1790       		RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1791     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1792       		RAISE OKL_API.G_EXCEPTION_ERROR;
1793     END IF;
1794  */
1795     l_klev_rec := get_klev_rec(p_klev_id => p_clev_id);
1796 --get klev record to copy from
1797     l_klev_rec.id := p_klev_id;
1798 
1799     --Bug# 8677460
1800     IF (p_rebook_yn = 'N') THEN
1801       l_klev_rec.orig_contract_line_id := NULL;
1802     END IF;
1803 
1804     --Bug #15992711: Start
1805     --Setting the re_lease_yn column to NULL whenever creating a copy of a contract line
1806     l_klev_rec.re_lease_yn := NULL;
1807     --Bug #15992711: end
1808 
1809 	OKL_CONTRACT_PUB.update_contract_line(
1810                 p_api_version   => p_api_version,
1811     			p_init_msg_list => p_init_msg_list,
1812     			x_return_status => l_return_status,
1813     			x_msg_count     => x_msg_count,
1814     			x_msg_data      => x_msg_data,
1815     			p_clev_rec      => l_clev_rec,
1816     			p_klev_rec      => l_klev_rec,
1817     			x_clev_rec      => l_clev_rec_out,
1818     			x_klev_rec	    => x_klev_rec);
1819        -- check return status
1820         If l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
1821 	       raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1822         Elsif l_return_status = OKL_API.G_RET_STS_ERROR Then
1823 	       raise OKL_API.G_EXCEPTION_ERROR;
1824         End If;
1825 
1826     --Call End Activity
1827         OKL_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
1828 				             x_msg_data		=> x_msg_data);
1829     EXCEPTION
1830     when OKL_API.G_EXCEPTION_ERROR then
1831       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1832 			p_api_name  => l_api_name,
1833 			p_pkg_name  => g_pkg_name,
1834 			p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
1835 			x_msg_count => x_msg_count,
1836 			x_msg_data  => x_msg_data,
1837 			p_api_type  => g_api_type);
1838 
1839     when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
1840       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1841 			p_api_name  => l_api_name,
1842 			p_pkg_name  => g_pkg_name,
1843 			p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1844 			x_msg_count => x_msg_count,
1845 			x_msg_data  => x_msg_data,
1846 			p_api_type  => g_api_type);
1847 
1848     when OTHERS then
1849       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1850 			p_api_name  => l_api_name,
1851 			p_pkg_name  => g_pkg_name,
1852 			p_exc_name  => 'OTHERS',
1853 			x_msg_count => x_msg_count,
1854 			x_msg_data  => x_msg_data,
1855 			p_api_type  => g_api_type);
1856 End CatchUp_okl_Contract_Line;
1857 FUNCTION is_copy_allowed(p_chr_id IN NUMBER,p_sts_code IN VARCHAR2 DEFAULT NULL) RETURN BOOLEAN IS
1858  BEGIN
1859    RETURN(OKC_COPY_CONTRACT_PUB.is_copy_allowed(p_chr_id,p_sts_code));
1860  END is_copy_allowed;
1861 -------
1862 FUNCTION is_subcontract_allowed(p_chr_id IN NUMBER,p_sts_code IN VARCHAR2) RETURN BOOLEAN IS
1863  BEGIN
1864    RETURN(OKC_COPY_CONTRACT_PUB.is_subcontract_allowed(p_chr_id,p_sts_code));
1865  END is_subcontract_allowed;
1866 -----
1867 FUNCTION update_target_contract(p_chr_id IN NUMBER) RETURN BOOLEAN IS
1868  BEGIN
1869    RETURN(OKC_COPY_CONTRACT_PUB.update_target_contract(p_chr_id));
1870  END update_target_contract;
1871 -----
1872 PROCEDURE derive_line_style(p_old_lse_id     IN  NUMBER,
1873                               p_old_jtot_code  IN  VARCHAR2,
1874                               p_new_subclass   IN  VARCHAR2,
1875                               p_new_parent_lse IN  NUMBER,
1876                               x_new_lse_count  OUT NOCOPY NUMBER,
1877                               x_new_lse_ids    OUT NOCOPY VARCHAR2) IS
1878  BEGIN
1879   OKC_COPY_CONTRACT_PVT.derive_line_style(
1880                p_old_lse_id      => p_old_lse_id,
1881                p_old_jtot_code   => p_old_jtot_code,
1882                p_new_subclass    => p_new_subclass,
1883                p_new_parent_lse  => p_new_parent_lse,
1884                x_new_lse_count   => x_new_lse_count,
1885                x_new_lse_ids     => x_new_lse_ids);
1886  END derive_line_style;
1887 --------------------------------------------------------------------------------
1888 -- Start of comments
1889 --
1890 -- Procedure Name  : copy_components
1891 -- Description     : copies components for shadowed contract. will be
1892 --                   published in OKL_COPY_CONTRACTS_PUB
1893 -- Business Rules  :
1894 -- Parameters      :
1895 -- Version         : 1.0
1896 -- Notes           : just calls OKC_COPY_CONTRACT_PUB.copy_components.
1897 -- End of comments
1898 --------------------------------------------------------------------------------
1899 PROCEDURE copy_components(
1900     p_api_version                  IN NUMBER,
1901     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1902     x_return_status                OUT NOCOPY VARCHAR2,
1903     x_msg_count                    OUT NOCOPY NUMBER,
1904     x_msg_data                     OUT NOCOPY VARCHAR2,
1905     p_from_chr_id                  IN NUMBER,
1906     p_to_chr_id	          	       IN NUMBER,
1907     p_contract_number		       IN VARCHAR2,
1908     p_contract_number_modifier     IN VARCHAR2,
1909     p_to_template_yn			   IN VARCHAR2 DEFAULT 'N',
1910     p_copy_reference			   IN VARCHAR2 DEFAULT 'COPY',
1911     p_copy_line_party_yn           IN VARCHAR2,
1912     p_scs_code                     IN VARCHAR2,
1913     p_intent                       IN VARCHAR2,
1914     p_prospect                     IN VARCHAR2,
1915     p_components_tbl			   IN api_components_tbl,
1916     p_lines_tbl				       IN api_lines_tbl,
1917     x_chr_id                       OUT NOCOPY NUMBER) is
1918     l_return_status		           VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1919     l_api_name			           CONSTANT VARCHAR2(30) := 'OKL_COPY_COMPONENTS';
1920     l_api_version		           CONSTANT NUMBER	:= 1.0;
1921 
1922     l_components_tbl api_components_tbl_okc;
1923     l_lines_tbl      api_lines_tbl_okc;
1924 begin
1925 -----
1926 --Call OKL_API.START_ACTIVITY to set savepoints
1927     	l_return_status := OKL_API.START_ACTIVITY( substr(l_api_name,1,26),
1928 	                                               G_PKG_NAME,
1929 	                                               p_init_msg_list,
1930 	                                               G_API_VERSION,
1931 	                                               p_api_version,
1932 	                                               G_SCOPE,
1933                                          	       x_return_status);
1934 
1935  	IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1936       		RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1937     	ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1938       		RAISE OKL_API.G_EXCEPTION_ERROR;
1939     	END IF;
1940 
1941   l_components_tbl := migrate_components_tbl(p_components_tbl);
1942   l_lines_tbl      := migrate_lines_tbl(p_lines_tbl);
1943 --Call OKC_CONTRACT_PUB.copy_components
1944 	OKC_COPY_CONTRACT_PUB.copy_components(
1945     	p_api_version				=> p_api_version,
1946     	p_init_msg_list				=> p_init_msg_list,
1947     	x_return_status				=> l_return_status,
1948     	x_msg_count					=> x_msg_count,
1949     	x_msg_data					=> x_msg_data,
1950     	p_from_chr_id				=> p_from_chr_id,
1951     	p_to_chr_id					=> p_to_chr_id,
1952     	p_contract_number			=> p_contract_number,
1953     	p_contract_number_modifier	=> p_contract_number_modifier,
1954     	p_to_template_yn			=> p_to_template_yn,
1955     	p_copy_reference			=> p_copy_reference,
1956     	p_copy_line_party_yn		=> p_copy_line_party_yn,
1957     	p_scs_code					=> p_scs_code,
1958     	p_intent                    => p_intent,
1959     	p_prospect                  => p_prospect,
1960     	p_components_tbl			=> l_components_tbl,
1961     	p_lines_tbl					=> l_lines_tbl,
1962     	x_chr_id                    => x_chr_id);
1963 
1964       -- check return status
1965         If l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
1966 	       raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1967         Elsif l_return_status = OKL_API.G_RET_STS_ERROR Then
1968 	       raise OKL_API.G_EXCEPTION_ERROR;
1969         End If;
1970 
1971         --Call End Activity
1972         OKL_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
1973 				 x_msg_data		=> x_msg_data);
1974     EXCEPTION
1975     when OKL_API.G_EXCEPTION_ERROR then
1976       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1977 			p_api_name  => l_api_name,
1978 			p_pkg_name  => g_pkg_name,
1979 			p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
1980 			x_msg_count => x_msg_count,
1981 			x_msg_data  => x_msg_data,
1982 			p_api_type  => g_api_type);
1983 
1984     when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
1985       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1986 			p_api_name  => l_api_name,
1987 			p_pkg_name  => g_pkg_name,
1988 			p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1989 			x_msg_count => x_msg_count,
1990 			x_msg_data  => x_msg_data,
1991 			p_api_type  => g_api_type);
1992 
1993     when OTHERS then
1994       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1995 			p_api_name  => l_api_name,
1996 			p_pkg_name  => g_pkg_name,
1997 			p_exc_name  => 'OTHERS',
1998 			x_msg_count => x_msg_count,
1999 			x_msg_data  => x_msg_data,
2000 			p_api_type  => g_api_type);
2001 End copy_components;
2002 
2003 ------------------------------------------------------------------------------
2004 -- PROCEDURE get_sll_rules
2005 --
2006 --  This procedure retrieves all SLL related to given SLH rule under LALEVL Category
2007 --
2008 -- Calls:
2009 -- Called By:
2010 ------------------------------------------------------------------------------
2011    PROCEDURE get_sll_rules(
2012                            x_return_status  OUT NOCOPY VARCHAR2,
2013                            x_msg_count      OUT NOCOPY NUMBER,
2014                            x_msg_data       OUT NOCOPY VARCHAR2,
2015                            p_rgpv_rec       IN  rgpv_rec_type,
2016                            p_rdf_code       IN  VARCHAR2,
2017                            p_slh_id         IN  NUMBER,
2018                            x_rulv_tbl       OUT NOCOPY rulv_tbl_type,
2019                            x_rule_count     OUT NOCOPY NUMBER
2020                           ) IS
2021     CURSOR okc_rulv_csr (p_rgp_id IN NUMBER,
2022                          p_rdf_code IN VARCHAR2,
2023                          p_slh_id   IN NUMBER) IS
2024     SELECT
2025             ID,
2026             OBJECT_VERSION_NUMBER,
2027             SFWT_FLAG,
2028             OBJECT1_ID1,
2029             OBJECT2_ID1,
2030             OBJECT3_ID1,
2031             OBJECT1_ID2,
2032             OBJECT2_ID2,
2033             OBJECT3_ID2,
2034             JTOT_OBJECT1_CODE,
2035             JTOT_OBJECT2_CODE,
2036             JTOT_OBJECT3_CODE,
2037             DNZ_CHR_ID,
2038             RGP_ID,
2039             PRIORITY,
2040             STD_TEMPLATE_YN,
2041             COMMENTS,
2042             WARN_YN,
2043             ATTRIBUTE_CATEGORY,
2044             ATTRIBUTE1,
2045             ATTRIBUTE2,
2046             ATTRIBUTE3,
2047             ATTRIBUTE4,
2048             ATTRIBUTE5,
2049             ATTRIBUTE6,
2050             ATTRIBUTE7,
2051             ATTRIBUTE8,
2052             ATTRIBUTE9,
2053             ATTRIBUTE10,
2054             ATTRIBUTE11,
2055             ATTRIBUTE12,
2056             ATTRIBUTE13,
2057             ATTRIBUTE14,
2058             ATTRIBUTE15,
2059             CREATED_BY,
2060             CREATION_DATE,
2061             LAST_UPDATED_BY,
2062             LAST_UPDATE_DATE,
2063             LAST_UPDATE_LOGIN,
2064             --TEXT,
2065             RULE_INFORMATION_CATEGORY,
2066             RULE_INFORMATION1,
2067             RULE_INFORMATION2,
2068             RULE_INFORMATION3,
2069             RULE_INFORMATION4,
2070             RULE_INFORMATION5,
2071             RULE_INFORMATION6,
2072             RULE_INFORMATION7,
2073             RULE_INFORMATION8,
2074             RULE_INFORMATION9,
2075             RULE_INFORMATION10,
2076             RULE_INFORMATION11,
2077             RULE_INFORMATION12,
2078             RULE_INFORMATION13,
2079             RULE_INFORMATION14,
2080             RULE_INFORMATION15,
2081             TEMPLATE_YN,
2082             ans_set_jtot_object_code,
2083             ans_set_jtot_object_id1,
2084             ans_set_jtot_object_id2,
2085             DISPLAY_SEQUENCE
2086      FROM Okc_Rules_V
2087      WHERE okc_rules_v.rgp_id      = p_rgp_id
2088      AND   okc_rules_v.object2_id1 = p_slh_id
2089      AND   RULE_INFORMATION_CATEGORY = DECODE(p_rdf_code,NULL,RULE_INFORMATION_CATEGORY,p_rdf_code);
2090 
2091      l_rulv_rec                  rulv_rec_type;
2092      i                           NUMBER DEFAULT 0;
2093      l_proc_name                 VARCHAR2(35) := 'GET_SLL_RULES';
2094   BEGIN
2095     IF (G_DEBUG_ENABLED = 'Y') THEN
2096       G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
2097     END IF;
2098 
2099     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2100           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,l_proc_name);
2101     END IF;
2102     -- Get current database values
2103     OPEN okc_rulv_csr (p_rgpv_rec.id,
2104                        p_rdf_code,
2105                        p_slh_id);
2106     LOOP
2107     FETCH okc_rulv_csr INTO
2108               l_rulv_rec.ID,
2109               l_rulv_rec.OBJECT_VERSION_NUMBER,
2110               l_rulv_rec.SFWT_FLAG,
2111               l_rulv_rec.OBJECT1_ID1,
2112               l_rulv_rec.OBJECT2_ID1,
2113               l_rulv_rec.OBJECT3_ID1,
2114               l_rulv_rec.OBJECT1_ID2,
2115               l_rulv_rec.OBJECT2_ID2,
2116               l_rulv_rec.OBJECT3_ID2,
2117               l_rulv_rec.JTOT_OBJECT1_CODE,
2118               l_rulv_rec.JTOT_OBJECT2_CODE,
2119               l_rulv_rec.JTOT_OBJECT3_CODE,
2120               l_rulv_rec.DNZ_CHR_ID,
2121               l_rulv_rec.RGP_ID,
2122               l_rulv_rec.PRIORITY,
2123               l_rulv_rec.STD_TEMPLATE_YN,
2124               l_rulv_rec.COMMENTS,
2125               l_rulv_rec.WARN_YN,
2126               l_rulv_rec.ATTRIBUTE_CATEGORY,
2127               l_rulv_rec.ATTRIBUTE1,
2128               l_rulv_rec.ATTRIBUTE2,
2129               l_rulv_rec.ATTRIBUTE3,
2130               l_rulv_rec.ATTRIBUTE4,
2131               l_rulv_rec.ATTRIBUTE5,
2132               l_rulv_rec.ATTRIBUTE6,
2133               l_rulv_rec.ATTRIBUTE7,
2134               l_rulv_rec.ATTRIBUTE8,
2135               l_rulv_rec.ATTRIBUTE9,
2136               l_rulv_rec.ATTRIBUTE10,
2137               l_rulv_rec.ATTRIBUTE11,
2138               l_rulv_rec.ATTRIBUTE12,
2139               l_rulv_rec.ATTRIBUTE13,
2140               l_rulv_rec.ATTRIBUTE14,
2141               l_rulv_rec.ATTRIBUTE15,
2142               l_rulv_rec.CREATED_BY,
2143               l_rulv_rec.CREATION_DATE,
2144               l_rulv_rec.LAST_UPDATED_BY,
2145               l_rulv_rec.LAST_UPDATE_DATE,
2146               l_rulv_rec.LAST_UPDATE_LOGIN,
2147               --l_rulv_rec.TEXT,
2148               l_rulv_rec.RULE_INFORMATION_CATEGORY,
2149               l_rulv_rec.RULE_INFORMATION1,
2150               l_rulv_rec.RULE_INFORMATION2,
2151               l_rulv_rec.RULE_INFORMATION3,
2152               l_rulv_rec.RULE_INFORMATION4,
2153               l_rulv_rec.RULE_INFORMATION5,
2154               l_rulv_rec.RULE_INFORMATION6,
2155               l_rulv_rec.RULE_INFORMATION7,
2156               l_rulv_rec.RULE_INFORMATION8,
2157               l_rulv_rec.RULE_INFORMATION9,
2158               l_rulv_rec.RULE_INFORMATION10,
2159               l_rulv_rec.RULE_INFORMATION11,
2160               l_rulv_rec.RULE_INFORMATION12,
2161               l_rulv_rec.RULE_INFORMATION13,
2162               l_rulv_rec.RULE_INFORMATION14,
2163               l_rulv_rec.RULE_INFORMATION15,
2164               l_rulv_rec.TEMPLATE_YN,
2165               l_rulv_rec.ans_set_jtot_object_code,
2166               l_rulv_rec.ans_set_jtot_object_id1,
2167               l_rulv_rec.ans_set_jtot_object_id2,
2168               l_rulv_rec.DISPLAY_SEQUENCE ;
2169     EXIT WHEN okc_rulv_csr%NOTFOUND;
2170       i := okc_rulv_csr%RowCount;
2171       x_rulv_tbl(i) := l_rulv_rec;
2172     END LOOP;
2173     CLOSE okc_rulv_csr;
2174     x_rule_count := i;
2175 
2176     RETURN;
2177 
2178    END get_sll_rules;
2179 
2180 ------------------------------------------------------------------------------
2181 -- PROCEDURE sync_slh_sll
2182 --
2183 --  This procedure synchronizes SLH and SLL Rules
2184 --
2185 -- Calls:
2186 -- Called By:
2187 ------------------------------------------------------------------------------
2188 
2189   PROCEDURE sync_slh_sll(
2190                          x_return_status OUT NOCOPY VARCHAR2,
2191                          x_msg_count     OUT NOCOPY NUMBER,
2192                          x_msg_data      OUT NOCOPY VARCHAR2,
2193                          p_new_chr_id    IN  OKC_K_HEADERS_V.ID%TYPE,
2194                          p_old_rgp_id    IN  NUMBER,
2195                          p_new_rgp_id    IN  NUMBER
2196                         ) IS
2197 
2198   l_proc_name   VARCHAR2(35)    := 'SYNC_SLH_SLL';
2199   sync_failed   EXCEPTION;
2200 
2201   x_new_rgpv_rec      rgpv_rec_type;
2202   x_new_slh_rulv_rec  rulv_rec_type;
2203 
2204   x_slh_rulv_tbl      rulv_tbl_type;
2205   x_slh_rule_count    NUMBER;
2206 
2207   x_sll_rulv_tbl      rulv_tbl_type;
2208   x_sll_rule_count    NUMBER;
2209 
2210   x_rulv_rec          rulv_rec_type;
2211 
2212   l_old_rgpv_rec      rgpv_rec_type;
2213   l_slh_rulv_rec      rulv_rec_type;
2214   l_sll_rulv_rec      rulv_rec_type;
2215 
2216   l_rebook_rgp_id NUMBER;
2217   l_orig_rgp_id   NUMBER;
2218 
2219   l_rulv_tbl      rulv_tbl_type;
2220   i               NUMBER := 0;
2221 
2222   CURSOR orig_cle_csr(p_cle_id OKC_K_LINES_V.ID%TYPE) IS
2223   SELECT orig_system_id1
2224   FROM   okc_k_lines_v
2225   WHERE  id = p_cle_id;
2226 
2227   CURSOR del_rgp_csr(p_chr_id OKC_K_HEADERS_V.ID%TYPE,
2228                      p_rgp_id NUMBER) IS
2229   SELECT id
2230   FROM   okc_rule_groups_v
2231   WHERE  dnz_chr_id = p_chr_id
2232   AND    id         = p_rgp_id
2233   AND    rgd_code   = 'LALEVL';
2234 
2235   CURSOR rule_csr(p_rgp_id NUMBER) IS
2236   SELECT id
2237   FROM   okc_rules_v
2238   WHERE  rgp_id = p_rgp_id
2239   --Bug# : 3124577 :11.5.10 Rule migration
2240   AND    rule_information_category IN ('LASLH','LASLL');
2241   --AND    rule_information_category IN ('SLH','SLL');
2242 
2243   BEGIN
2244     IF (G_DEBUG_ENABLED = 'Y') THEN
2245       G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
2246     END IF;
2247     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
2248     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2249           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,l_proc_name);
2250     END IF;
2251 
2252       -- Delete SLH, SLL from Original Contract
2253       i := 1;
2254 
2255       FOR del_rgp_rec IN del_rgp_csr(p_new_chr_id,
2256                                      p_new_rgp_id)
2257       LOOP
2258          FOR rule_rec IN rule_csr(del_rgp_rec.id)
2259          LOOP
2260             l_rulv_tbl(i).id := rule_rec.id;
2261             i := i+ 1;
2262          END LOOP;
2263       END LOOP;
2264 
2265       Okl_Rule_Pub.delete_rule(
2266                                p_api_version    => 1.0,
2267                                p_init_msg_list  => Okc_Api.G_FALSE,
2268                                x_return_status  => x_return_status,
2269                                x_msg_count      => x_msg_count,
2270                                x_msg_data       => x_msg_data,
2271                                p_rulv_tbl       => l_rulv_tbl
2272                               );
2273       IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2274         RAISE sync_failed;
2275       END IF;
2276 
2277       l_old_rgpv_rec.id := p_old_rgp_id;
2278       --
2279       -- Get SLH Rule from OLD Contract
2280       --
2281       Okl_Rule_Apis_Pvt.Get_Contract_Rules(
2282                                            p_api_version    => 1.0,
2283                                            p_init_msg_list  => Okl_Api.G_FALSE,
2284                                            p_rgpv_rec       => l_old_rgpv_rec,
2285                                            --Bug# 3124577: 11.5.10 Rule Migration
2286                                            p_rdf_code       => 'LASLH',
2287                                            --p_rdf_code       => 'SLH',
2288                                            x_return_status  => x_return_status,
2289                                            x_msg_count      => x_msg_count,
2290                                            x_msg_data       => x_msg_data,
2291                                            x_rulv_tbl       => x_slh_rulv_tbl,
2292                                            x_rule_count     => x_slh_rule_count
2293                                           );
2294       IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2295          RAISE sync_failed;
2296       END IF;
2297 
2298       --x_slh_rulv_tbl_out := x_slh_rulv_tbl;
2299       --x_slh_count        := x_slh_rule_count;
2300 
2301       FOR i IN 1..x_slh_rule_count
2302       LOOP
2303          l_slh_rulv_rec            := x_slh_rulv_tbl(i);
2304          l_slh_rulv_rec.rgp_id     := p_new_rgp_id;
2305          l_slh_rulv_rec.dnz_chr_id := p_new_chr_id;
2306 
2307          Okl_Rule_Pub.create_rule(
2308                                   p_api_version     => 1.0,
2309                                   p_init_msg_list   => Okc_Api.G_FALSE,
2310                                   x_return_status   => x_return_status,
2311                                   x_msg_count       => x_msg_count,
2312                                   x_msg_data        => x_msg_data,
2313                                   p_rulv_rec        => l_slh_rulv_rec,
2314                                   x_rulv_rec        => x_new_slh_rulv_rec
2315                                  );
2316          IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2317              x_return_status := Okc_Api.G_RET_STS_ERROR;
2318              RAISE sync_failed;
2319          END IF;
2320 
2321          --
2322          -- Get SLL Rules from Header for a SLH
2323          --
2324          get_sll_rules(
2325                        x_return_status  => x_return_status,
2326                        x_msg_count      => x_msg_count,
2327                        x_msg_data       => x_msg_data,
2328                        p_rgpv_rec       => l_old_rgpv_rec,
2329                        --Bug# 3124577 : 11.5.10 Rule Migration
2330                        p_rdf_code       => 'LASLL',
2331                        --p_rdf_code       => 'SLL',
2332                        p_slh_id         => x_slh_rulv_tbl(i).id,
2333                        x_rulv_tbl       => x_sll_rulv_tbl,
2334                        x_rule_count     => x_sll_rule_count
2335                       );
2336          IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2337             RAISE sync_failed;
2338          END IF;
2339 
2340          --x_sll_rulv_tbl_out := x_sll_rulv_tbl;
2341          --x_sll_count        := x_sll_rule_count;
2342 
2343          -- Create a SLL rule under SLH created above
2344          FOR i IN 1..x_sll_rule_count
2345          LOOP
2346 
2347             l_sll_rulv_rec             := x_sll_rulv_tbl(i);
2348             l_sll_rulv_rec.rgp_id      := p_new_rgp_id;
2349             l_sll_rulv_rec.object2_id1 := x_new_slh_rulv_rec.id;
2350             l_sll_rulv_rec.dnz_chr_id  := p_new_chr_id;
2351 
2352             Okl_Rule_Pub.create_rule(
2353                                      p_api_version     => 1.0,
2354                                      p_init_msg_list   => Okc_Api.G_FALSE,
2355                                      x_return_status   => x_return_status,
2356                                      x_msg_count       => x_msg_count,
2357                                      x_msg_data        => x_msg_data,
2358                                      p_rulv_rec        => l_sll_rulv_rec,
2359                                      x_rulv_rec        => x_rulv_rec
2360                                     );
2361                IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2362                    x_return_status := Okc_Api.G_RET_STS_ERROR;
2363                    RAISE sync_failed;
2364                END IF;
2365          END LOOP; -- SLL
2366 
2367       END LOOP; -- SLH
2368 
2369   EXCEPTION
2370     WHEN sync_failed THEN
2371        x_return_status := Okc_Api.G_RET_STS_ERROR;
2372   END sync_slh_sll;
2373 -- Start Bug 2376998
2374 ------------------------------------------------------------------------------
2375 -- PROCEDURE link_slh_sll
2376 --
2377 --  This procedure links SLH and SLL by calling sync_slh_sll at LINE level
2378 --
2379 -- Calls:
2380 -- Called By:
2381 ------------------------------------------------------------------------------
2382 
2383   PROCEDURE link_slh_sll(
2384                          x_return_status OUT NOCOPY VARCHAR2,
2385                          x_msg_count     OUT NOCOPY NUMBER,
2386                          x_msg_data      OUT NOCOPY VARCHAR2,
2387                          p_old_chr_id    IN  OKC_K_HEADERS_V.ID%TYPE,
2388                          p_new_cle_id    IN  OKC_K_LINES_V.ID%TYPE,
2389                          p_new_chr_id    IN  OKC_K_HEADERS_V.ID%TYPE
2390                         ) IS
2391 
2392  link_failed EXCEPTION;
2393 
2394  CURSOR lalevl_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE,
2395                     p_cle_id OKC_K_LINES_V.ID%TYPE) IS
2396  SELECT id,
2397         cle_id
2398  FROM   okc_rule_groups_v
2399  WHERE  dnz_chr_id = p_chr_id
2400  AND    cle_id     = p_cle_id
2401  AND    rgd_code   = 'LALEVL';
2402 
2403  CURSOR old_lalevl_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE,
2404                         p_cle_id OKC_K_LINES_V.ID%TYPE) IS
2405  SELECT id
2406  FROM   okc_rule_groups_v
2407  WHERE  dnz_chr_id = p_chr_id
2408  AND    rgd_code   = 'LALEVL'
2409  AND    (cle_id    = p_cle_id
2410          OR ( cle_id IS NULL
2411               AND
2412               p_cle_id IS NULL));
2413 
2414  CURSOR old_line_csr (p_cle_id OKC_K_LINES_V.ID%TYPE) IS
2415  SELECT orig_system_id1
2416  FROM   OKC_K_LINES_V
2417  WHERE  id = p_cle_id;
2418 
2419  l_old_lalevl_id NUMBER;
2420  l_new_lalevl_id NUMBER;
2421  l_old_cle_id    OKC_K_LINES_V.ID%TYPE;
2422  l_new_cle_id    OKC_K_LINES_V.ID%TYPE;
2423 
2424  BEGIN
2425 
2426    FOR new_lalevl_rec IN lalevl_csr(p_new_chr_id,
2427                                     p_new_cle_id)
2428    LOOP
2429       l_new_lalevl_id := new_lalevl_rec.id;
2430       l_new_cle_id    := new_lalevl_rec.cle_id;
2431 
2432       l_old_cle_id    := NULL;
2433       IF (l_new_cle_id IS NOT NULL) THEN
2434          OPEN old_line_csr (l_new_cle_id);
2435          FETCH old_line_csr INTO l_old_cle_id;
2436          CLOSE old_line_csr;
2437       END IF;
2438 
2439       OPEN old_lalevl_csr(p_old_chr_id,
2440                           l_old_cle_id);
2441       FETCH old_lalevl_csr INTO l_old_lalevl_id;
2442       CLOSE old_lalevl_csr;
2443 
2444       sync_slh_sll(
2445                    x_return_status => x_return_status,
2446                    x_msg_count     => x_msg_count,
2447                    x_msg_data      => x_msg_data,
2448                    p_new_chr_id    => p_new_chr_id,
2449                    p_old_rgp_id    => l_old_lalevl_id,
2450                    p_new_rgp_id    => l_new_lalevl_id
2451                   );
2452       IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2453          RAISE Okl_Api.G_EXCEPTION_ERROR;
2454       END IF;
2455    END LOOP;
2456 
2457  EXCEPTION
2458    WHEN link_failed THEN
2459       x_return_status := OKC_API.G_RET_STS_ERROR;
2460  END link_slh_sll;
2461 
2462 -- End Bug 2376998
2463 ------------------------------------------------------------------------------
2464 -- PROCEDURE link_slh_sll
2465 --
2466 --  This procedure links SLH and SLL by calling sync_slh_sll at header
2467 --
2468 -- Calls:
2469 -- Called By:
2470 ------------------------------------------------------------------------------
2471 
2472   PROCEDURE link_slh_sll(
2473                          x_return_status OUT NOCOPY VARCHAR2,
2474                          x_msg_count     OUT NOCOPY NUMBER,
2475                          x_msg_data      OUT NOCOPY VARCHAR2,
2476                          p_old_chr_id    IN OKC_K_HEADERS_V.ID%TYPE,
2477                          p_new_chr_id    IN OKC_K_HEADERS_V.ID%TYPE
2478                         ) IS
2479 
2480  link_failed EXCEPTION;
2481 
2482  CURSOR lalevl_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE) IS
2483  SELECT id,
2484         cle_id
2485  FROM   okc_rule_groups_v
2486  WHERE  dnz_chr_id = p_chr_id
2487  AND    cle_id     IS NULL       -- Bug 2376998
2488  AND    rgd_code   = 'LALEVL';
2489 
2490  CURSOR old_lalevl_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE,
2491                         p_cle_id OKC_K_LINES_V.ID%TYPE) IS
2492  SELECT id
2493  FROM   okc_rule_groups_v
2494  WHERE  dnz_chr_id = p_chr_id
2495  AND    rgd_code   = 'LALEVL'
2496  AND    (cle_id    = p_cle_id
2497          OR ( cle_id IS NULL
2498               AND
2499               p_cle_id IS NULL));
2500 
2501  CURSOR old_line_csr (p_cle_id OKC_K_LINES_V.ID%TYPE) IS
2502  SELECT orig_system_id1
2503  FROM   OKC_K_LINES_V
2504  WHERE  id = p_cle_id;
2505 
2506  l_old_lalevl_id NUMBER;
2507  l_new_lalevl_id NUMBER;
2508  l_old_cle_id    OKC_K_LINES_V.ID%TYPE;
2509  l_new_cle_id    OKC_K_LINES_V.ID%TYPE;
2510 
2511  BEGIN
2512 
2513    FOR new_lalevl_rec IN lalevl_csr(p_new_chr_id)
2514    LOOP
2515       l_new_lalevl_id := new_lalevl_rec.id;
2516       l_new_cle_id    := new_lalevl_rec.cle_id;
2517 
2518       l_old_cle_id    := NULL;
2519       IF (l_new_cle_id IS NOT NULL) THEN
2520          OPEN old_line_csr (l_new_cle_id);
2521          FETCH old_line_csr INTO l_old_cle_id;
2522          CLOSE old_line_csr;
2523       END IF;
2524 
2525       OPEN old_lalevl_csr(p_old_chr_id,
2526                           l_old_cle_id);
2527       FETCH old_lalevl_csr INTO l_old_lalevl_id;
2528       CLOSE old_lalevl_csr;
2529 
2530       sync_slh_sll(
2531                    x_return_status => x_return_status,
2532                    x_msg_count     => x_msg_count,
2533                    x_msg_data      => x_msg_data,
2534                    p_new_chr_id    => p_new_chr_id,
2535                    p_old_rgp_id    => l_old_lalevl_id,
2536                    p_new_rgp_id    => l_new_lalevl_id
2537                   );
2538       IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2539          raise OKL_API.G_EXCEPTION_ERROR;
2540       END IF;
2541    END LOOP;
2542 
2543  EXCEPTION
2544    WHEN link_failed THEN
2545       x_return_status := OKC_API.G_RET_STS_ERROR;
2546  END link_slh_sll;
2547 --------------------------------------------------------------------------------
2548 -- Start of comments
2549 --Bug# 2522268
2550 -- Procedure Name  : cleanup_abandoned_lines
2551 -- Description     : Local Procedure Will be called from copy_contract
2552 --                   to delete any ABANDONED lines copied on to the contract
2553 -- Business Rules  : Takes in chr_id of the copied contract and physically
2554 --                   deletes(delete cascade) all the lines which appear as
2555 --                   logically deleted on parent (source) contract.
2556 -- Parameters      :
2557 -- Version         : 1.0
2558 -- Notes           :
2559 -- End of comments
2560 --------------------------------------------------------------------------------
2561 PROCEDURE cleanup_abandoned_lines(p_api_version     IN NUMBER,
2562                                   p_init_msg_list   IN VARCHAR2,
2563                                   x_return_status   OUT NOCOPY VARCHAR2,
2564                                   x_msg_count       OUT NOCOPY NUMBER,
2565                                   x_msg_data        OUT NOCOPY VARCHAR2,
2566                                   p_chr_id          IN NUMBER) is
2567 --Cursor for abandoned parent top lines
2568   CURSOR abnd_tls_csr(p_copied_chr_id IN NUMBER) IS
2569   Select cle.id,
2570          cle.orig_system_id1
2571   from   OKC_K_LINES_B     cle_parent,
2572          OKC_LINE_STYLES_B cle_parent_lse,
2573          OKC_K_LINES_B     cle
2574   WHERE  cle_parent.id = cle.orig_system_id1
2575   AND    cle_parent.lse_id = cle_parent_lse.id
2576   AND    cle_parent.sts_code = 'ABANDONED'
2577   AND    cle_parent_lse.lse_type = 'TLS'
2578   AND    cle.dnz_chr_id = p_copied_chr_id;
2579 
2580 --Cursor for abandoned orphan sub-lines
2581   CURSOR abnd_sls_csr(p_copied_chr_id IN NUMBER) IS
2582   Select cle.id,
2583          cle.orig_system_id1
2584   from   OKC_K_LINES_B     cle_parent,
2585          OKC_LINE_STYLES_B cle_parent_lse,
2586          OKC_K_LINES_B     cle
2587   WHERE  cle_parent.id = cle.orig_system_id1
2588   AND    cle_parent.lse_id = cle_parent_lse.id
2589   AND    cle_parent.sts_code = 'ABANDONED'
2590   AND    cle_parent_lse.lse_type = 'SLS'
2591   AND    cle.dnz_chr_id = p_copied_chr_id;
2592 
2593   l_cle_id           OKC_K_LINES_B.ID%TYPE;
2594   l_source_cle_id    OKC_K_LINES_B.ID%TYPE;
2595   l_chr_id           OKC_K_HEADERS_B.ID%TYPE;
2596 
2597 Begin
2598    x_return_status := OKL_API.G_RET_STS_SUCCESS;
2599    l_chr_id := p_chr_id;
2600    OPEN abnd_tls_csr(p_copied_chr_id => l_chr_id);
2601    LOOP
2602        FETCH abnd_tls_csr into l_cle_id, l_source_cle_id;
2603        EXIT WHEN abnd_tls_csr%NOTFOUND;
2604        OKL_CONTRACT_PUB.delete_contract_line(
2605            p_api_version    => p_api_version,
2606            p_init_msg_list  => p_init_msg_list,
2607            x_return_status  => x_return_status,
2608            x_msg_count      => x_msg_count,
2609            x_msg_data       => x_msg_data,
2610            p_line_id        => l_cle_id);
2611        If x_return_status <> OKL_API.G_RET_STS_SUCCESS Then
2612            RAISE G_EXCEPTION_HALT_PROCESS;
2613        End If;
2614    END LOOP;
2615    CLOSE abnd_tls_csr;
2616 
2617    OPEN abnd_sls_csr(p_copied_chr_id => l_chr_id);
2618    LOOP
2619        FETCH abnd_sls_csr into l_cle_id, l_source_cle_id;
2620        EXIT WHEN abnd_sls_csr%NOTFOUND;
2621        OKL_CONTRACT_PUB.delete_contract_line(
2622            p_api_version    => p_api_version,
2623            p_init_msg_list  => p_init_msg_list,
2624            x_return_status  => x_return_status,
2625            x_msg_count      => x_msg_count,
2626            x_msg_data       => x_msg_data,
2627            p_line_id        => l_cle_id);
2628        If x_return_status <> OKL_API.G_RET_STS_SUCCESS Then
2629            RAISE G_EXCEPTION_HALT_PROCESS;
2630        End If;
2631    END LOOP;
2632    CLOSE abnd_sls_csr;
2633    EXCEPTION
2634    WHEN G_EXCEPTION_HALT_PROCESS Then
2635        --just return back the return status with message stack;
2636        Null;
2637        If abnd_tls_csr%ISOPEN Then
2638            CLOSE abnd_tls_csr;
2639        End If;
2640        If abnd_sls_csr%ISOPEN Then
2641            CLOSE abnd_sls_csr;
2642        End If;
2643    WHEN OTHERS Then
2644        If abnd_tls_csr%ISOPEN Then
2645            CLOSE abnd_tls_csr;
2646        End If;
2647        If abnd_sls_csr%ISOPEN Then
2648            CLOSE abnd_sls_csr;
2649        End If;
2650        x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
2651 End cleanup_abandoned_lines;
2652 
2653 --
2654 --Bug# 2522268 End
2655 --
2656 
2657 --------------------------------------------------------------------------------
2658 -- Start of comments
2659 --Bug# 2522268
2660 -- Procedure Name  : cleanup_rollover_lines
2661 -- Description     : Local Procedure Will be called from copy_contract
2662 --                   to delete any Rollover lines copied on to the contract
2663 -- Business Rules  : Takes in chr_id of the copied contract and physically
2664 --                   deletes(delete cascade) all the lines which appear as
2665 --                   logically deleted on parent (source) contract.
2666 -- Parameters      :
2667 -- Version         : 1.0
2668 -- Notes           :
2669 -- End of comments
2670 --------------------------------------------------------------------------------
2671 PROCEDURE cleanup_rollover_lines(p_api_version     IN NUMBER,
2672                                   p_init_msg_list   IN VARCHAR2,
2673                                   x_return_status   OUT NOCOPY VARCHAR2,
2674                                   x_msg_count       OUT NOCOPY NUMBER,
2675                                   x_msg_data        OUT NOCOPY VARCHAR2,
2676                                   p_chr_id          IN NUMBER) is
2677 --Cursor for rollover parent top lines
2678   CURSOR roll_tls_csr(p_copied_chr_id IN NUMBER) IS
2679   Select cle.id, cle.orig_system_id1
2680   from   OKC_K_LINES_B     cle_parent,
2681          OKC_LINE_STYLES_B cle_parent_lse,
2682          OKC_K_LINES_B     cle,
2683 		 okl_k_lines kle_parent
2684   WHERE  cle_parent.id = kle_parent.id
2685   AND    cle_parent.id = cle.orig_system_id1
2686   AND    cle_parent.lse_id = cle_parent_lse.id
2687   AND    kle_parent.fee_type = 'ROLLOVER'
2688   AND    cle_parent_lse.lse_type = 'TLS'
2689   AND    cle.dnz_chr_id = p_copied_chr_id;
2690 
2691   l_cle_id           OKC_K_LINES_B.ID%TYPE;
2692   l_source_cle_id    OKC_K_LINES_B.ID%TYPE;
2693   l_chr_id           OKC_K_HEADERS_B.ID%TYPE;
2694 
2695 Begin
2696    x_return_status := OKL_API.G_RET_STS_SUCCESS;
2697    l_chr_id := p_chr_id;
2698    OPEN roll_tls_csr(p_copied_chr_id => l_chr_id);
2699    LOOP
2700        FETCH roll_tls_csr into l_cle_id, l_source_cle_id;
2701        EXIT WHEN roll_tls_csr%NOTFOUND;
2702        OKL_CONTRACT_PUB.delete_contract_line(
2703            p_api_version    => p_api_version,
2704            p_init_msg_list  => p_init_msg_list,
2705            x_return_status  => x_return_status,
2706            x_msg_count      => x_msg_count,
2707            x_msg_data       => x_msg_data,
2708            p_line_id        => l_cle_id);
2709        If x_return_status <> OKL_API.G_RET_STS_SUCCESS Then
2710            RAISE G_EXCEPTION_HALT_PROCESS;
2711        End If;
2712    END LOOP;
2713    CLOSE roll_tls_csr;
2714 
2715    EXCEPTION
2716    WHEN G_EXCEPTION_HALT_PROCESS Then
2717        --just return back the return status with message stack;
2718        Null;
2719        If roll_tls_csr%ISOPEN Then
2720            CLOSE roll_tls_csr;
2721        End If;
2722    WHEN OTHERS Then
2723        If roll_tls_csr%ISOPEN Then
2724            CLOSE roll_tls_csr;
2725        End If;
2726        x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
2727 End cleanup_rollover_lines;
2728 
2729 
2730 -- bug 3630858
2731 --------------------------------------------------------------------------------
2732 -- Start of comments
2733 --
2734 -- Procedure Name  : copy_product_options
2735 -- Description     : copies contract product option.
2736 --                   published in OKL_COPY_CONTRACTS_PUB
2737 -- Business Rules  :
2738 -- Parameters      :
2739 -- Version         : 1.0
2740 -- Notes           :
2741 -- End of comments
2742 --------------------------------------------------------------------------------
2743 PROCEDURE  copy_product_options
2744 	        	     (p_api_version          IN NUMBER,
2745 			     p_init_msg_list         IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2746 			     x_return_status         OUT NOCOPY VARCHAR2,
2747 			     x_msg_count             OUT NOCOPY NUMBER,
2748 			     x_msg_data              OUT NOCOPY VARCHAR2,
2749 			     p_new_khr_id            IN NUMBER,
2750 			     p_cspv_id               IN NUMBER,
2751 			     x_cspv_id               OUT NOCOPY NUMBER
2752 			     ) IS
2753 --local variables
2754 l_return_status		VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2755 l_api_name		CONSTANT VARCHAR2(30) := 'COPY_PRODUCT_OPTIONS';
2756 l_api_version		CONSTANT NUMBER	:= 1.0;
2757 l_cspv_id               NUMBER;
2758 p_cspv_rec              cspv_rec_type;
2759 l_cspv_rec              cspv_rec_type;
2760 lx_cspv_rec             cspv_rec_type;
2761 
2762 
2763 Begin
2764     x_return_status := OKL_API.G_RET_STS_SUCCESS;
2765     -- Call start_activity to create savepoint, check compatibility
2766     -- and initialize message list
2767     x_return_status := OKL_API.START_ACTIVITY (
2768                                l_api_name
2769                                ,p_init_msg_list
2770                                ,'_PVT'
2771                                ,x_return_status);
2772     -- Check if activity started successfully
2773     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2774        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2775     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2776        RAISE OKL_API.G_EXCEPTION_ERROR;
2777     END IF;
2778 
2779     l_cspv_id := p_cspv_id;
2780     l_cspv_rec := get_cspv_rec(p_cspv_rec_id        => l_cspv_id,
2781 			                   x_return_status  => x_return_status
2782 			                   );
2783 
2784     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2785        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2786     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2787        RAISE OKL_API.G_EXCEPTION_ERROR;
2788     END IF;
2789 
2790     --create selected product options
2791     l_cspv_rec.khr_id := p_new_khr_id;
2792     l_cspv_rec.id := null;
2793 
2794     OKL_CSP_PVT.insert_row
2795            (p_api_version   => p_api_version,
2796             p_init_msg_list => p_init_msg_list,
2797             x_return_status => x_return_status,
2798             x_msg_count     => x_msg_count,
2799             x_msg_data      => x_msg_data,
2800             p_cspv_rec      => l_cspv_rec,
2801             x_cspv_rec     =>  lx_cspv_rec);
2802 
2803     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2804        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2805     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2806        RAISE OKL_API.G_EXCEPTION_ERROR;
2807     END IF;
2808 
2809     x_cspv_id := lx_cspv_rec.id;
2810 
2811     OKL_API.END_ACTIVITY (x_msg_count,x_msg_data );
2812 
2813     EXCEPTION
2814 
2815     WHEN OKL_API.G_EXCEPTION_ERROR THEN
2816     x_return_status := OKL_API.HANDLE_EXCEPTIONS(
2817                                l_api_name,
2818                                G_PKG_NAME,
2819                                'OKL_API.G_RET_STS_ERROR',
2820                                x_msg_count,
2821                                x_msg_data,
2822                                '_PVT');
2823     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2824     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
2825                               l_api_name,
2826                               G_PKG_NAME,
2827                               'OKL_API.G_RET_STS_UNEXP_ERROR',
2828                               x_msg_count,
2829                               x_msg_data,
2830                               '_PVT');
2831     WHEN OTHERS THEN
2832     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
2833                               l_api_name,
2834                               G_PKG_NAME,
2835                               'OTHERS',
2836                               x_msg_count,
2837                               x_msg_data,
2838                               '_PVT');
2839 
2840 END copy_product_options;
2841 
2842 -- bug 3630858 end
2843 
2844 
2845 --------------------------------------------------------------------------------
2846 -- Start of comments
2847 --
2848 -- Procedure Name  : copy_contract
2849 -- Description     : copies contract. will be
2850 --                   published in OKL_COPY_CONTRACTS_PUB
2851 -- Business Rules  :
2852 -- Parameters      :
2853 -- Version         : 1.0
2854 -- Notes           :
2855 -- End of comments
2856 --------------------------------------------------------------------------------
2857 PROCEDURE copy_contract(
2858             p_api_version                  IN NUMBER,
2859             p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2860             x_return_status                OUT NOCOPY VARCHAR2,
2861             x_msg_count                    OUT NOCOPY NUMBER,
2862             x_msg_data                     OUT NOCOPY VARCHAR2,
2863             p_commit        			   IN VARCHAR2 DEFAULT 'F',
2864             p_chr_id                       IN NUMBER,
2865             p_contract_number		       IN VARCHAR2,
2866             p_contract_number_modifier     IN VARCHAR2,
2867             p_to_template_yn			   IN VARCHAR2 DEFAULT 'N',
2868             p_renew_ref_yn                 IN VARCHAR2,
2869             p_copy_lines_yn                IN VARCHAR2,
2870             p_override_org		           IN VARCHAR2 DEFAULT 'N',
2871             x_chr_id                       OUT NOCOPY NUMBER) IS
2872 --local variables
2873 l_return_status		VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2874 l_api_name			CONSTANT VARCHAR2(30) := 'OKL_COPY_CONTRACT';
2875 l_api_version		CONSTANT NUMBER	:= 1.0;
2876 l_chrv_rec			chrv_rec_type;
2877 l_chrv_rec_out		chrv_rec_type;
2878 l_khrv_rec			khrv_rec_type;
2879 l_khrv_rec_out		khrv_rec_type;
2880 l_clev_rec			clev_rec_type;
2881 l_klev_rec			klev_rec_type;
2882 l_klev_rec_out		klev_rec_type;
2883 l_chr_id            NUMBER;
2884 l_chr_id_2          NUMBER;
2885 l_clev_id           NUMBER;
2886 l_klev_id           NUMBER;
2887 l_clev_rec_out		clev_rec_type;
2888 
2889  Cursor  l_clev_cur (l_chr_id IN Number) is
2890  Select         Orig_System_Id1,id
2891  From   OKC_K_LINES_V
2892  Where  dnz_chr_id = l_chr_id;
2893 
2894 --This is modified to take care of the patch in OKC which has included
2895 --original source line id with the new line id
2896 
2897 --bug # 2659592
2898 --with overide flag as 'N' okc_copy api sets the
2899 --okc_vontext.organization id to profile value OE: Item validation Organization
2900 --which could be different from OKL: Contract Items Inventory Organization
2901 --there by causing incompatible organization error while copy
2902 --thus OKL copy will always call OKC copy with p_override_org as 'Y'.
2903 l_override_org Varchar2(1) default 'Y';
2904 
2905 --Bug# 3143522 : 11.5.10 Subsidies
2906 --cursor to get header party payment dtls
2907     cursor l_hdrpyd_csr (p_old_chr_id in number,
2908                          p_new_chr_id in number) is
2909     select pyd_old.id pyd_id,
2910            cpl_new.id cpl_id
2911     from   okl_party_payment_dtls pyd_old,
2912            okc_k_party_roles_b    cpl_old,
2913            okc_k_party_roles_b    cpl_new
2914     where  pyd_old.cpl_id            =  cpl_old.id
2915     and    cpl_old.chr_id            =  p_old_chr_id
2916     and    cpl_old.dnz_chr_id        =  p_old_chr_id
2917     and    cpl_new.chr_id            =  p_new_chr_id
2918     and    cpl_new.dnz_chr_id        =  p_new_chr_id
2919     and    cpl_old.rle_code          =  cpl_new.rle_code
2920     and    cpl_old.jtot_object1_code =  cpl_new.jtot_object1_code
2921     and    cpl_old.object1_id1       =  cpl_new.object1_id1
2922     and    cpl_old.object1_id2       =  cpl_new.object1_id2;
2923 
2924 
2925     cursor l_clepyd_csr (p_old_chr_id in number,
2926                          p_new_chr_id in number,
2927                          p_old_cle_id in number,
2928                          p_new_cle_id in number
2929                          ) is
2930     select pyd_old.id pyd_id,
2931            cpl_new.id cpl_id
2932     from   okl_party_payment_dtls pyd_old,
2933            okc_k_party_roles_b    cpl_old,
2934            okc_k_party_roles_b    cpl_new
2935     where  pyd_old.cpl_id            =  cpl_old.id
2936     and    cpl_old.cle_id            =  p_old_cle_id
2937     and    cpl_old.dnz_chr_id        =  p_old_chr_id
2938     and    cpl_new.cle_id            =  p_new_cle_id
2939     and    cpl_new.dnz_chr_id        =  p_new_chr_id
2940     and    cpl_old.rle_code          =  cpl_new.rle_code
2941     and    cpl_old.jtot_object1_code =  cpl_new.jtot_object1_code
2942     and    cpl_old.object1_id1       =  cpl_new.object1_id1
2943     and    cpl_old.object1_id2       =  cpl_new.object1_id2;
2944 
2945     -- Bug 3630858
2946     cursor l_product_options_csr(p_old_chr_id number) IS
2947     select cspv.id
2948     from OKL_SLCTD_OPTNS_V cspv
2949     where cspv.khr_id = p_old_chr_id;
2950 
2951     l_pyd_id    okl_party_payment_dtls.ID%TYPE;
2952     lx_pyd_id   okl_party_payment_dtls.ID%TYPE;
2953     l_cpl_id    okc_k_party_roles_b.ID%TYPE;
2954     -- Bug 3630858
2955     l_cspv_id   okl_slctd_optns_v.ID%TYPE;
2956     lx_cspv_id  okl_slctd_optns_v.ID%TYPE;
2957 
2958 ---------------------
2959 --Bug# 3143522
2960 -----------------------
2961 Begin
2962 -----
2963 --Call OKL_API.START_ACTIVITY to set savepoints
2964 --dbms_output.put_line('before call to start activity '||to_char(p_chr_id));
2965 --dbms_output.put_line(l_api_name||G_SCOPE);
2966     	l_return_status := OKL_API.START_ACTIVITY( substr(l_api_name,1,26),
2967 	                                               G_PKG_NAME,
2968 	                                               p_init_msg_list,
2969 	                                               G_API_VERSION,
2970 	                                               p_api_version,
2971 	                                               G_SCOPE,
2972                                          	       x_return_status);
2973     --dbms_output.put_line('after call to start activity '||to_char(p_chr_id));
2974  	IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2975       		RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2976  	ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2977       		RAISE OKL_API.G_EXCEPTION_ERROR;
2978  	END IF;
2979     	--Call OKC_COPY_CONTRACT_PUB.Copy_Contract
2980         --dbms_output.put_line('before okc_copy p_chr_id '||to_char(p_chr_id));
2981     	OKC_COPY_CONTRACT_PUB.copy_contract(
2982     			p_api_version              => p_api_version,
2983     			p_init_msg_list            => p_init_msg_list,
2984     			x_return_status            => l_return_status,
2985     			x_msg_count	               => x_msg_count,
2986     			x_msg_data 	               => x_msg_data ,
2987     			p_commit 	               => p_commit,
2988     			p_chr_id	               => p_chr_id,
2989     			p_contract_number          => p_contract_number,
2990     			p_contract_number_modifier => P_contract_number_modifier,
2991     			p_to_template_yn           => p_to_template_yn,
2992     			p_renew_ref_yn             => p_renew_ref_yn,
2993     			p_copy_lines_yn	           => p_copy_lines_yn,
2994     			--bug # 2659592
2995     			--p_override_org	           => p_override_org,
2996                 p_override_org             => l_override_org,
2997     			x_chr_id	               => x_chr_id);
2998 
2999        --dbms_output.put_line('Chr id after copy to okc header '||to_char(x_chr_id));
3000        --dbms_output.put_line('Return Status copy to okc header '||l_return_status||' '||x_msg_data);
3001         -- check return status
3002         If l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
3003 	       raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3004         Elsif l_return_status = OKL_API.G_RET_STS_ERROR Then
3005 	       raise OKL_API.G_EXCEPTION_ERROR;
3006         End If;
3007 	--------------------------------------------------------------------------------
3008 	--Catch Up Shadow for Contract Header :
3009     l_chr_id_2 := x_chr_id;
3010 	l_chrv_rec := get_chrv_rec(l_chr_id_2);
3011     l_khrv_rec := get_khrv_rec(p_chr_id);
3012     --dbms_output.put_line(' chr id after fetch '||l_chrv_rec.id);
3013     --dbms_output.put_line(' khr id after fetch '||l_khrv_rec.id);
3014     --If OKL does not have a shadow do not proceed to
3015     --catchup on shadow
3016     If l_khrv_rec.id = OKL_API.G_MISS_NUM then
3017         null;
3018     Else
3019         l_khrv_rec.id := x_chr_id;
3020 	-- Create record into okl_contract_header
3021 	OKL_CONTRACT_PUB.update_contract_header(
3022 			p_api_version	=> p_api_version,
3023 			p_init_msg_list => p_init_msg_list,
3024 			x_return_status => l_return_status,
3025 			x_msg_count  	=> x_msg_count,
3026 			x_msg_data   	=> x_msg_data,
3027             p_restricted_update => OKL_API.G_FALSE,
3028 			p_chrv_rec   	=> l_chrv_rec,
3029 			p_khrv_rec   	=> l_khrv_rec,
3030 			x_chrv_rec      => l_chrv_rec_out,
3031 			x_khrv_rec      => l_khrv_rec_out);
3032     --dbms_output.put_line('return status '||l_return_status);
3033     --dbms_output.put_line('After create okl record okc hdr id'||to_char(l_chrv_rec_out.id));
3034     -- check return status
3035     If l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
3036         raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3037     Elsif l_return_status = OKL_API.G_RET_STS_ERROR Then
3038         raise OKL_API.G_EXCEPTION_ERROR;
3039     End If;
3040 
3041     --------------------------------------------------------------------------------------
3042     --BUG# 3143522 : 11.5.10 Subsidies - copy party payment details
3043     --------------------------------------------------------------------------------------
3044     open l_hdrpyd_csr (p_new_chr_id => x_chr_id,
3045                         p_old_chr_id => p_chr_id);
3046 
3047     loop
3048         fetch l_hdrpyd_csr into l_pyd_id, l_cpl_id;
3049         Exit when l_hdrpyd_csr%NOTFOUND;
3050         -------------------------------------------------
3051         --call local api to copy party payment details
3052         -------------------------------------------------
3053         copy_party_pymt_dtls
3054                 (p_api_version          => p_api_version,
3055                 p_init_msg_list         => p_init_msg_list,
3056                 x_return_status         => x_return_status,
3057                 x_msg_count             => x_msg_count,
3058                 x_msg_data              => x_msg_data,
3059                 p_pyd_id                => l_pyd_id,
3060                 p_cpl_id                => l_cpl_id,
3061                 x_pyd_id                => lx_pyd_id);
3062 
3063 
3064 
3065         IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3066            RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3067         ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3068            RAISE OKL_API.G_EXCEPTION_ERROR;
3069         END IF;
3070 
3071     End Loop;
3072     Close l_hdrpyd_csr;
3073 
3074     --------------------------------------------------------------------------------------
3075     --BUG# 3143522 : 11.5.10 Subsidies - copy party payment details
3076     --------------------------------------------------------------------------------------
3077 
3078         --call local API for creation of party payment details
3079     IF p_copy_lines_yn = 'Y' Then
3080     -- Catch up shadow for Contract Lines
3081 	   Open l_clev_cur(x_chr_id);
3082 	   Loop
3083 		  Fetch l_clev_cur into l_clev_id,l_klev_id;
3084           --dbms_output.put_line('Before Catchup Contract Lines ');
3085 		  Exit when l_clev_cur%NotFound;
3086 		  Catchup_okl_contract_line(
3087     				p_api_version		=> p_api_version,
3088         			p_init_msg_list		=> p_init_msg_list,
3089 			        x_return_status		=> l_return_status,
3090    			        x_msg_count			=> x_msg_count,
3091    			        x_msg_data			=> x_msg_data,
3092 			        p_clev_id			=> l_clev_id,
3093                                 p_klev_id           => l_klev_id,
3094 			        x_clev_rec			=> l_clev_rec_out,
3095 		                x_klev_rec			=> l_klev_rec_out
3096 				);
3097          -- check return status
3098         If l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
3099             raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3100         Elsif l_return_status = OKL_API.G_RET_STS_ERROR Then
3101             raise OKL_API.G_EXCEPTION_ERROR;
3102         End If;
3103 
3104             --------------------------------------------------------------------------------------
3105             --BUG# 3143522 : 11.5.10 Subsidies - copy party payment details
3106             --------------------------------------------------------------------------------------
3107             open l_clepyd_csr (p_new_chr_id => x_chr_id,
3108                                p_old_chr_id => p_chr_id,
3109                                p_new_cle_id  => l_klev_id,
3110                                p_old_cle_id  => l_clev_id);
3111 
3112             loop
3113                 fetch l_clepyd_csr into l_pyd_id, l_cpl_id;
3114                 Exit when l_clepyd_csr%NOTFOUND;
3115                 -------------------------------------------------
3116                 --call local api to copy party payment details
3117                 -------------------------------------------------
3118                 copy_party_pymt_dtls
3119                         (p_api_version          => p_api_version,
3120                         p_init_msg_list         => p_init_msg_list,
3121                         x_return_status         => x_return_status,
3122                         x_msg_count             => x_msg_count,
3123                         x_msg_data              => x_msg_data,
3124                         p_pyd_id                => l_pyd_id,
3125                         p_cpl_id                => l_cpl_id,
3126                         x_pyd_id                => lx_pyd_id);
3127 
3128 
3129 
3130                 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3131                    RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3132                 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3133                    RAISE OKL_API.G_EXCEPTION_ERROR;
3134                 END IF;
3135 
3136             End Loop;
3137             Close l_clepyd_csr;
3138 
3139             --------------------------------------------------------------------------------------
3140             --BUG# 3143522 : 11.5.10 Subsidies - copy party payment details
3141             --------------------------------------------------------------------------------------
3142 	   End Loop;
3143      Close l_clev_cur;
3144 
3145      --
3146      --Bug# 2522268 : Physically delete all the lines with source lines having
3147      --               abandoned status
3148      cleanup_abandoned_lines(p_api_version     => p_api_version,
3149                              p_init_msg_list   => p_init_msg_list,
3150                              x_return_status   => x_return_Status,
3151                              x_msg_count       => x_msg_count,
3152                              x_msg_data        => x_msg_data,
3153                              p_chr_id          => x_chr_id);
3154      If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
3155          raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3156      Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
3157          raise OKL_API.G_EXCEPTION_ERROR;
3158      End If;
3159      --
3160      --Bug# 2522268 End
3161      --
3162 
3163    End If;
3164    End If;
3165 
3166    --
3167    -- Special Process for LALEVL (SLH, SLL) rules
3168    --
3169 
3170    link_slh_sll(
3171                 x_return_status => l_return_status,
3172                 x_msg_count     => x_msg_count,
3173                 x_msg_data      => x_msg_data,
3174                 p_old_chr_id    => p_chr_id,
3175                 p_new_chr_id    => x_chr_id
3176                );
3177 
3178 
3179     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
3180        RAISE OKL_API.G_EXCEPTION_ERROR;
3181     END IF;
3182 	--Call OKC_COPY_CONTRACT_PUB.Copy_Components
3183     -- do not do this again as this might already be done as part of OKC_COPY_CONTRACT
3184     /*
3185 	OKC_COPY_CONTRACT_PUB.Copy_Components(
3186             p_api_version               =>  p_api_version,
3187             p_init_msg_list             =>  p_init_msg_list,
3188             x_return_status             =>  l_return_status,
3189             x_msg_count                 =>  x_msg_count,
3190             x_msg_data                  =>  x_msg_data,
3191             p_from_chr_id               =>  p_chr_id,
3192             p_to_chr_id	          	    =>  x_chr_id,
3193             p_contract_number		    =>  p_contract_number,
3194             p_contract_number_modifier  =>  p_contract_number_modifier,
3195             p_to_template_yn			=>  p_to_template_yn,
3196             p_copy_reference			=>  p_copy_reference,
3197             p_copy_line_party_yn        =>  p_copy_line_party_yn,
3198             p_scs_code                  =>  p_scs_code,
3199             p_intent                    =>  p_intent,
3200             p_prospect                  =>  p_prospect,
3201             p_components_tbl			=>  p_components_tbl,
3202             p_lines_tbl				    =>  p_lines_tbl,
3203             x_chr_id                    =>  l_chr_id);
3204         -- check return status
3205         If l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
3206 	       raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3207         Elsif l_return_status = OKL_API.G_RET_STS_ERROR Then
3208 	       raise OKL_API.G_EXCEPTION_ERROR;
3209         End If;
3210     */
3211 
3212 
3213 	  --------------------------------------------------------------------------------------
3214                 --BUG# 3630858 : copy product options
3215            --------------------------------------------------------------------------------------
3216 	 open l_product_options_csr(p_old_chr_id => p_chr_id);
3217 
3218 	 loop
3219 	     fetch l_product_options_csr into l_cspv_id;
3220 	     Exit when l_product_options_csr%NOTFOUND;
3221 	     ----------------------------------------------------
3222 	     --call local api to copy contract product options
3223 	     ----------------------------------------------------
3224 	     copy_product_options
3225 		     (p_api_version          => p_api_version,
3226 		     p_init_msg_list         => p_init_msg_list,
3227 		     x_return_status         => x_return_status,
3228 		     x_msg_count             => x_msg_count,
3229 		     x_msg_data              => x_msg_data,
3230 		     p_new_khr_id            => x_chr_id,
3231 		     p_cspv_id               => l_cspv_id,
3232 		     x_cspv_id               => lx_cspv_id
3233 		     );
3234 
3235 	     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3236 		RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3237 	     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3238 		RAISE OKL_API.G_EXCEPTION_ERROR;
3239 	     END IF;
3240 
3241 	 End Loop;
3242      Close l_product_options_csr;
3243 
3244 	--Call End Activity
3245 	OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3246 	EXCEPTION
3247 	     WHEN OKL_API.G_EXCEPTION_ERROR THEN
3248              If l_hdrpyd_csr%ISOPEN then
3249                  close l_hdrpyd_csr;
3250              End If;
3251              If l_clepyd_csr%ISOPEN then
3252                  close l_clepyd_csr;
3253              End If;
3254            --dbms_output.put_line('identified error');
3255 	       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3256 	       (substr(l_api_name,1,26),
3257 	        G_PKG_NAME,
3258 	        'OKL_API.G_RET_STS_ERROR',
3259 	        x_msg_count,
3260 	        x_msg_data,
3261 	        G_SCOPE);
3262 		-- Resetting the global transaction id.
3263 		okc_cvm_pvt.g_trans_id := 'XXX';
3264 	     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3265              If l_hdrpyd_csr%ISOPEN then
3266                  close l_hdrpyd_csr;
3267              End If;
3268              If l_clepyd_csr%ISOPEN then
3269                  close l_clepyd_csr;
3270              End If;
3271 
3272 
3273            --dbms_output.put_line('unexpected error :'||l_api_name||G_SCOPE);
3274 	       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3275 	       (substr(l_api_name,1,26),
3276 	        G_PKG_NAME,
3277 	        'OKL_API.G_RET_STS_UNEXP_ERROR',
3278 	        x_msg_count,
3279 	        x_msg_data,
3280 	        G_SCOPE);
3281 		-- Resetting the global transaction id.
3282 		okc_cvm_pvt.g_trans_id := 'XXX';
3283 	     WHEN OTHERS THEN
3284 	      -- store SQL error message on message stack for caller
3285              If l_hdrpyd_csr%ISOPEN then
3286                  close l_hdrpyd_csr;
3287              End If;
3288              If l_clepyd_csr%ISOPEN then
3289                  close l_clepyd_csr;
3290              End If;
3291 
3292              If l_product_options_csr%ISOPEN then
3293 	            close l_product_options_csr;
3294 	     End If;
3295 
3296             --dbms_output.put_line('when others error');
3297            --dbms_output.put_line('Error '||SQLERRM);
3298 	      OKL_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
3299 	       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3300 	       (substr(l_api_name,1,26),
3301 	        G_PKG_NAME,
3302 	        'OTHERS',
3303 	        x_msg_count,
3304 	        x_msg_data,
3305 	        G_SCOPE);
3306 		-- Resetting the global transaction id.
3307 		okc_cvm_pvt.g_trans_id := 'XXX';
3308 END COPY_CONTRACT;
3309 --------------------------------------------------------------------------------
3310 -- Start of comments
3311 --
3312 -- Procedure Name  : copy_contract_lines
3313 -- Description     : copies contract lines for a shadowed contract. will be
3314 --                   published in OKL_COPY_CONTRACTS_PUB
3315 -- Business Rules  :
3316 -- Parameters      :
3317 -- Version         : 1.0
3318 -- Notes           :
3319 -- End of comments
3320 --------------------------------------------------------------------------------
3321 Procedure copy_contract_lines(
3322     	p_api_version                  IN NUMBER,
3323     	p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3324     	x_return_status                OUT NOCOPY VARCHAR2,
3325     	x_msg_count                    OUT NOCOPY NUMBER,
3326     	x_msg_data                     OUT NOCOPY VARCHAR2,
3327     	p_from_cle_id                  IN NUMBER,
3328     	p_to_cle_id                    IN NUMBER,
3329     	p_to_chr_id                    IN NUMBER,
3330     	p_to_template_yn	           IN VARCHAR2,
3331     	p_copy_reference	           IN VARCHAR2,
3332     	p_copy_line_party_yn           IN VARCHAR2,
3333     	p_renew_ref_yn                 IN VARCHAR2,
3334     	x_cle_id		               OUT NOCOPY NUMBER) is
3335 
3336 l_return_status	    VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3337 l_cle_id			NUMBER := OKL_API.G_MISS_NUM;
3338 l_cle_id_out		NUMBER := OKL_API.G_MISS_NUM;
3339 l_api_name			CONSTANT VARCHAR2(30) := 'OKL_COPY_CONTRACT_LINES';
3340 l_api_version		CONSTANT NUMBER	:= 1.0;
3341 l_clev_rec_out		clev_rec_type;
3342 x_klev_rec_out		klev_rec_type;
3343 l_old_chr_id            OKC_K_HEADERS_V.ID%TYPE;
3344 CURSOR	    c_lines(p_from_cle_id NUMBER) IS
3345 SELECT 	   level,
3346 		    id,
3347 		    chr_id,
3348 		    cle_id,
3349 	        dnz_chr_id,
3350             orig_system_id1
3351     FROM 	okc_k_lines_b
3352     CONNECT BY  PRIOR id = cle_id
3353     START WITH  id = p_from_cle_id;
3354 c_lines_rec c_lines%rowtype;
3355 
3356 CURSOR old_chr_csr(p_cle_id OKC_K_LINES_V.ID%TYPE) IS
3357 SELECT cle.dnz_chr_id
3358 FROM   okc_k_lines_v cle
3359 WHERE  cle.id = p_cle_id;
3360 
3361 -----------------------------------------------------------
3362 --Bug# 3143522 : Subsidies copy party payment details
3363 ----------------------------------------------------------
3364    cursor l_clepyd_csr (p_old_chr_id in number,
3365                          p_new_chr_id in number,
3366                          p_old_cle_id in number,
3367                          p_new_cle_id in number
3368                          ) is
3369     select pyd_old.id pyd_id,
3370            cpl_new.id cpl_id
3371     from   okl_party_payment_dtls pyd_old,
3372            okc_k_party_roles_b    cpl_old,
3373            okc_k_party_roles_b    cpl_new
3374     where  pyd_old.cpl_id            =  cpl_old.id
3375     and    cpl_old.cle_id            =  p_old_cle_id
3376     and    cpl_old.dnz_chr_id        =  p_old_chr_id
3377     and    cpl_new.cle_id            =  p_new_cle_id
3378     and    cpl_new.dnz_chr_id        =  p_new_chr_id
3379     and    cpl_old.rle_code          =  cpl_new.rle_code
3380     and    cpl_old.jtot_object1_code =  cpl_new.jtot_object1_code
3381     and    cpl_old.object1_id1       =  cpl_new.object1_id1
3382     and    cpl_old.object1_id2       =  cpl_new.object1_id2;
3383 
3384     l_pyd_id    okl_party_payment_dtls.ID%TYPE;
3385     lx_pyd_id   okl_party_payment_dtls.ID%TYPE;
3386     l_cpl_id    okc_k_party_roles_b.ID%TYPE;
3387 -----------------------------------------------------------
3388 --Bug# 3143522 : Subsidies copy party payment details
3389 ----------------------------------------------------------
3390 
3391 --furong 4350255, find out the hdr id for a cle id --
3392 CURSOR hdr_exist_csr (p_chr_id NUMBER, p_cle_id NUMBER) IS
3393 SELECT id
3394 FROM okl_party_payment_hdr
3395 WHERE dnz_chr_id = p_chr_id
3396 AND cle_id = p_cle_id;
3397 
3398 l_old_hdr_id NUMBER;
3399 l_new_hdr_id NUMBER;
3400 
3401 /* not used --
3402 CURSOR dtls_exist_csr (p_chr_id NUMBER, p_cle_id NUMBER) IS
3403 SELECT id
3404 FROM okl_party_payment_dtls
3405 WHERE payment_hdr_id IN
3406 (SELECT id
3407  FROM okl_party_payment_hdr
3408  WHERE dnz_chr_id = p_chr_id
3409  AND cle_id = p_cle_id);
3410 
3411 --l_old_hdr_id NUMBER;
3412 --l_new_hdr_id NUMBER;
3413 
3414 l_old_dtl_id NUMBER;
3415 l_new_dtl_id NUMBER;
3416 */
3417 
3418 -- find out payment details, headers and vendors for a cle_id --
3419 cursor l_clepyd_pt_csr (p_old_chr_id in number,
3420                         p_new_chr_id in number,
3421                      	p_old_cle_id in number,
3422                      	p_new_cle_id in number,
3423 						p_hdr_id     in number
3424                      	) is
3425     select pyd_old.id pyd_id,
3426 		   pyd_old.payment_hdr_id,
3427            cpl_new.id cpl_id
3428     from   okl_party_payment_dtls pyd_old,
3429            okc_k_party_roles_b    cpl_old,
3430            okc_k_party_roles_b    cpl_new,
3431 		   okl_party_payment_hdr  hdr
3432     where  pyd_old.cpl_id            =  cpl_old.id
3433     and    cpl_old.cle_id            =  p_old_cle_id
3434     and    cpl_old.dnz_chr_id        =  p_old_chr_id
3435     and    cpl_new.cle_id            =  p_new_cle_id
3436     and    cpl_new.dnz_chr_id        =  p_new_chr_id
3437     and    cpl_old.rle_code          =  cpl_new.rle_code
3438     and    cpl_old.jtot_object1_code =  cpl_new.jtot_object1_code
3439     and    cpl_old.object1_id1       =  cpl_new.object1_id1
3440     and    cpl_old.object1_id2       =  cpl_new.object1_id2
3441 	and    hdr.id = pyd_old.payment_hdr_id
3442 	and    hdr.id = p_hdr_id;
3443 
3444     l_pt_pyd_id    okl_party_payment_dtls.ID%TYPE;
3445     lx_pt_pyd_id   okl_party_payment_dtls.ID%TYPE;
3446     l_pt_cpl_id    okc_k_party_roles_b.ID%TYPE;
3447 	l_payment_hdr_id okl_party_payment_dtls.PAYMENT_HDR_ID%TYPE;
3448 
3449 -- end furong  4350255
3450 
3451   --Bug# 4899328
3452   l_new_chr_id okc_k_headers_b.id%type;
3453 
3454   --Bug# 8677460
3455   CURSOR chr_csr(p_chr_id IN okc_k_headers_b.ID%TYPE) IS
3456   SELECT orig_system_source_code,
3457          orig_system_id1
3458   FROM okc_k_headers_b
3459   WHERE id = p_chr_id;
3460 
3461   l_rbk_chr_orig_source_code okc_k_headers_b.ORIG_SYSTEM_SOURCE_CODE%TYPE;
3462   l_rbk_chr_orig_system_id1  okc_k_headers_b.ORIG_SYSTEM_ID1%TYPE;
3463   l_rebook_yn VARCHAR2(1);
3464   --Bug# 8677460
3465 
3466 Begin
3467 ------
3468 	-- call START_ACTIVITY to create savepoint, check compatibility
3469     -- and initialize message list
3470 	l_return_status := OKL_API.START_ACTIVITY( substr(l_api_name,1,26),
3471 	                                           G_PKG_NAME,
3472 	                                           p_init_msg_list,
3473 	                                           G_API_VERSION,
3474 	                                           p_api_version,
3475 	                                           G_SCOPE,
3476                                          	   x_return_status);
3477 	IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3478       		RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3479     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3480       		RAISE OKL_API.G_EXCEPTION_ERROR;
3481     END IF;
3482 	--Call OKC_COPY_CONTRACT_PUB.copy_contract_lines
3483 	OKC_COPY_CONTRACT_PUB.copy_contract_lines(p_api_version			=> P_api_version,
3484 											  p_init_msg_list		=> p_init_msg_list,
3485 											  x_return_status		=> l_return_status,
3486 											  x_msg_count			=> x_msg_count,
3487 											  x_msg_data			=> x_msg_data,
3488 											  p_from_cle_id			=> p_from_cle_id,
3489 											  p_to_cle_id			=> p_to_cle_id,
3490 											  p_to_chr_id			=> p_to_chr_id,
3491 											  p_to_template_yn		=> p_to_template_yn,
3492 											  p_copy_reference		=> p_copy_reference,
3493 											  p_copy_line_party_yn 	=> p_copy_line_party_yn,
3494 											  p_renew_ref_yn 		=> p_renew_ref_yn,
3495 											  x_cle_id 				=> x_cle_id);
3496 
3497         -- check return status
3498         If l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
3499 	       raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3500         Elsif l_return_status = OKL_API.G_RET_STS_ERROR Then
3501 	       raise OKL_API.G_EXCEPTION_ERROR;
3502         End If;
3503 
3504         -- Get Old Chr id from New Chr id
3505         OPEN old_chr_csr(p_from_cle_id);
3506         FETCH old_chr_csr INTO l_old_chr_id;
3507         IF old_chr_csr%NOTFOUND THEN
3508            RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3509         END IF;
3510         CLOSE old_chr_csr;
3511 
3512         --Bug# 4899328
3513         -- p_to_chr_id will be null when copying only sub-lines
3514         -- so fetch new chr_id from p_to_cle_id
3515         l_new_chr_id := p_to_chr_id;
3516         IF l_new_chr_id IS NULL AND p_to_cle_id IS NOT NULL THEN
3517           OPEN old_chr_csr(p_to_cle_id);
3518           FETCH old_chr_csr INTO l_new_chr_id;
3519           IF old_chr_csr%NOTFOUND THEN
3520             RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3521           END IF;
3522           CLOSE old_chr_csr;
3523         END IF;
3524         --Bug# 4899328
3525 
3526         --Bug# 8677460
3527         l_rebook_yn  := 'N';
3528 
3529         OPEN chr_csr(p_chr_id => l_old_chr_id);
3530         FETCH chr_csr INTO l_rbk_chr_orig_source_code, l_rbk_chr_orig_system_id1;
3531         CLOSE chr_csr;
3532 
3533         IF ( NVL(l_rbk_chr_orig_source_code,OKL_API.G_MISS_CHAR) = 'OKL_REBOOK' AND
3534              NVL(l_rbk_chr_orig_system_id1,OKL_API.G_MISS_NUM) = l_new_chr_id ) THEN
3535           l_rebook_yn  := 'Y';
3536         END IF;
3537         --Bug# 8677460
3538 
3539         --catch up the shadow
3540         Open c_lines(x_cle_id);
3541         Loop
3542             Fetch c_lines into c_lines_rec;
3543             Exit when c_lines%NotFound;
3544 
3545                 --Catch up shadow for contract line
3546                 Catchup_okl_contract_line(
3547 		              p_api_version		=> p_api_version,
3548 			          p_init_msg_list	=> p_init_msg_list,
3549    				      x_return_status	=> l_return_status,
3550  			          x_msg_count		=> x_msg_count,
3551     			      x_msg_data		=> x_msg_data,
3552                       p_clev_id			=> c_lines_rec.orig_system_id1,
3553                       p_klev_id         => c_lines_rec.id,
3554     			      x_clev_rec		=> l_clev_rec_out,
3555     			      x_klev_rec		=> x_klev_rec_out,
3556                         p_rebook_yn       => l_rebook_yn
3557 				);
3558 
3559 			-- check return status
3560             If l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
3561 	           raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3562             Elsif l_return_status = OKL_API.G_RET_STS_ERROR Then
3563 	           raise OKL_API.G_EXCEPTION_ERROR;
3564             End If;
3565             --------------------------------------------------------------------------------
3566             --bug# 3143522 : fixed as part of this -payments can be at subline level
3567             --------------------------------------------------------------------------------
3568             link_slh_sll(
3569                          x_return_status => l_return_status,
3570                          x_msg_count     => x_msg_count,
3571                          x_msg_data      => x_msg_data,
3572                          p_old_chr_id    => l_old_chr_id,
3573                          --p_new_cle_id    => x_cle_id,            -- Bug 2376998
3574                          p_new_cle_id    => c_lines_rec.id,            -- Bug 2376998
3575                          p_new_chr_id    => l_new_chr_id           --Bug# 4899328
3576                         );
3577 			IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
3578                 RAISE OKL_API.G_EXCEPTION_ERROR;
3579             END IF;
3580             --------------------------------------------------------------------------------------
3581             --BUG# 3143522 : 11.5.10 Subsidies - copy party payment details
3582             --------------------------------------------------------------------------------------
3583 
3584    		    --furong 4350255 copy each payment hdr for this cle id
3585 			--return new hdr id for details copy
3586 			--if non-passthru, do the old logic --
3587 			l_old_hdr_id := null;
3588 			OPEN hdr_exist_csr (p_chr_id => l_old_chr_id,
3589 				 			    p_cle_id => c_lines_rec.orig_system_id1);
3590 			LOOP
3591 			  FETCH hdr_exist_csr INTO l_old_hdr_id;
3592 			  EXIT WHEN hdr_exist_csr%NOTFOUND;
3593 			  -- For the passthru, do the following copy
3594 			  copy_party_pymt_hdr
3595                         (p_api_version          => p_api_version,
3596                         p_init_msg_list         => p_init_msg_list,
3597                         x_return_status         => x_return_status,
3598                         x_msg_count             => x_msg_count,
3599                         x_msg_data              => x_msg_data,
3600                         p_chr_id                => c_lines_rec.dnz_chr_id,
3601                         p_cle_id                => c_lines_rec.id,
3602 						p_pph_id            	=> l_old_hdr_id,
3603                         x_pph_id                => l_new_hdr_id);
3604 
3605               IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3606                  RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3607               ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3608                  RAISE OKL_API.G_EXCEPTION_ERROR;
3609 			  END IF;
3610 
3611 			  --Check dtls exists for this hdr, if yes, do the copy --
3612 			  OPEN l_clepyd_pt_csr (p_new_chr_id  => c_lines_rec.dnz_chr_id,
3613                               	    p_old_chr_id  => l_old_chr_id,
3614                               		p_new_cle_id  => c_lines_rec.id,
3615                               		p_old_cle_id  => c_lines_rec.orig_system_id1,
3616 									p_hdr_id      => l_old_hdr_id);
3617 			  LOOP
3618 				FETCH l_clepyd_pt_csr INTO l_pt_pyd_id,l_payment_hdr_id,l_pt_cpl_id;
3619 				EXIT WHEN l_clepyd_pt_csr%NOTFOUND;
3620 
3621 				IF (l_pt_pyd_id IS NOT NULL) THEN
3622 				  copy_party_pymt_dtls
3623                         (p_api_version          => p_api_version,
3624                         p_init_msg_list         => p_init_msg_list,
3625                         x_return_status         => x_return_status,
3626                         x_msg_count             => x_msg_count,
3627                         x_msg_data              => x_msg_data,
3628                         p_pyd_id                => l_pt_pyd_id,
3629                         p_cpl_id                => l_pt_cpl_id,
3630 						p_pph_id                => l_new_hdr_id,
3631                         x_pyd_id                => lx_pt_pyd_id,
3632                         --Bug# 8677460
3633                         p_rebook_yn             => l_rebook_yn);
3634 
3635                   IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3636                     RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3637                   ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3638                     RAISE OKL_API.G_EXCEPTION_ERROR;
3639 				  END IF;
3640 
3641 			  	END IF; --l_pt_pyd_id IS NOT NULL ...--
3642 
3643 			  END LOOP;
3644 			  CLOSE l_clepyd_pt_csr;
3645 
3646 			END LOOP;
3647 			CLOSE hdr_exist_csr;
3648 
3649 			-- For those non-passthru cases, do the following copy --
3650 			IF (l_old_hdr_id IS NULL) THEN
3651 			  open l_clepyd_csr (p_new_chr_id => c_lines_rec.dnz_chr_id,
3652                                p_old_chr_id => l_old_chr_id,
3653                                p_new_cle_id  => c_lines_rec.id,
3654                                p_old_cle_id  => c_lines_rec.orig_system_id1);
3655 
3656               loop
3657                 fetch l_clepyd_csr into l_pyd_id, l_cpl_id;
3658                 Exit when l_clepyd_csr%NOTFOUND;
3659 				    -------------------------------------------------
3660                 --call local api to copy party payment details
3661                 -------------------------------------------------
3662 
3663                 copy_party_pymt_dtls
3664                         (p_api_version          => p_api_version,
3665                         p_init_msg_list         => p_init_msg_list,
3666                         x_return_status         => x_return_status,
3667                         x_msg_count             => x_msg_count,
3668                         x_msg_data              => x_msg_data,
3669                         p_pyd_id                => l_pyd_id,
3670                         p_cpl_id                => l_cpl_id,
3671                         x_pyd_id                => lx_pyd_id);
3672 
3673                 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3674                    RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3675                 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3676                    RAISE OKL_API.G_EXCEPTION_ERROR;
3677                 END IF;
3678 
3679               End Loop;
3680               Close l_clepyd_csr;
3681 			END IF; -- if l_old_hdr_id IS NULL
3682 
3683 			--furong 4350255 end copy hdr and(or) details --
3684             --------------------------------------------------------------------------------------
3685             --BUG# 3143522 : 11.5.10 Subsidies - copy party payment details
3686             --------------------------------------------------------------------------------------
3687 
3688         End Loop;
3689         Close c_lines;
3690 
3691         --
3692         -- Special Process for LALEVL (SLH, SLL) rules
3693         --
3694 
3695 
3696        /*---------Commented as this code has been moved up to run for all sub-lines too
3697         -- Get Old Chr id from New Chr id
3698         --OPEN old_chr_csr(p_from_cle_id);
3699         --FETCH old_chr_csr INTO l_old_chr_id;
3700         --IF old_chr_csr%NOTFOUND THEN
3701            --RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3702         --END IF;
3703         --CLOSE old_chr_csr;
3704 
3705         --link_slh_sll(
3706                      --x_return_status => l_return_status,
3707                      --x_msg_count     => x_msg_count,
3708                      --x_msg_data      => x_msg_data,
3709                      --p_old_chr_id    => l_old_chr_id,
3710                      --p_new_cle_id    => x_cle_id,            -- Bug 2376998
3711                      --p_new_chr_id    => p_to_chr_id
3712                     --);
3713 
3714 
3715          --IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
3716             --RAISE OKL_API.G_EXCEPTION_ERROR;
3717          --END IF;
3718 
3719        ---------Commented as this code has been moved up to run for all sub-lines too-----*/
3720 
3721 	--Call End Activity
3722 	OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3723 	EXCEPTION
3724 
3725 	     WHEN OKL_API.G_EXCEPTION_ERROR THEN
3726              If l_clepyd_csr%ISOPEN then
3727                  close l_clepyd_csr;
3728              End If;
3729 	       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3730 	       (substr(l_api_name,1,26),
3731 	        G_PKG_NAME,
3732 	        'OKL_API.G_RET_STS_ERROR',
3733 	        x_msg_count,
3734 	        x_msg_data,
3735 	        G_SCOPE);
3736 		-- Resetting the global transaction id.
3737 		okc_cvm_pvt.g_trans_id := 'XXX';
3738 	     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3739              If l_clepyd_csr%ISOPEN then
3740                  close l_clepyd_csr;
3741              End If;
3742 
3743 	       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3744 	       (substr(l_api_name,1,26),
3745 	        G_PKG_NAME,
3746 	        'OKL_API.G_RET_STS_UNEXP_ERROR',
3747 	        x_msg_count,
3748 	        x_msg_data,
3749 	        G_SCOPE);
3750 		-- Resetting the global transaction id.
3751 		okc_cvm_pvt.g_trans_id := 'XXX';
3752 	     WHEN OTHERS THEN
3753              If l_clepyd_csr%ISOPEN then
3754                  close l_clepyd_csr;
3755              End If;
3756 
3757 	      -- store SQL error message on message stack for caller
3758 	      OKL_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
3759 	       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3760 	       (substr(l_api_name,1,26),
3761 	        G_PKG_NAME,
3762 	        'OTHERS',
3763 	        x_msg_count,
3764 	        x_msg_data,
3765 	        G_SCOPE);
3766 		-- Resetting the global transaction id.
3767 		okc_cvm_pvt.g_trans_id := 'XXX';
3768 End Copy_Contract_Lines;
3769 
3770 --------------------------------------------------------------------------------
3771 -- Start of comments
3772 --
3773 -- Procedure Name  : copy_rules
3774 -- Description     : copies contract lines for a shadowed contract. will be
3775 --                   published in OKL_COPY_CONTRACTS_PUB
3776 -- Business Rules  :
3777 -- Parameters      :
3778 -- Version         : 1.0
3779 -- Notes           :
3780 -- End of comments
3781 --------------------------------------------------------------------------------
3782 PROCEDURE copy_rules(
3783     p_api_version                  IN NUMBER,
3784     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3785     x_return_status                OUT NOCOPY VARCHAR2,
3786     x_msg_count                    OUT NOCOPY NUMBER,
3787     x_msg_data                     OUT NOCOPY VARCHAR2,
3788     p_rgp_id                  	   IN NUMBER,
3789     p_cle_id                       IN NUMBER DEFAULT OKL_API.G_MISS_NUM,
3790     p_chr_id                       IN NUMBER DEFAULT OKL_API.G_MISS_NUM,
3791     p_to_template_yn			   IN VARCHAR2,
3792     x_rgp_id		           OUT NOCOPY NUMBER) is
3793 l_return_status	    VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3794 l_api_name			CONSTANT VARCHAR2(30) := 'OKL_COPY_RULES';
3795 l_api_version		CONSTANT NUMBER	:= 1.0;
3796 begin
3797 -----
3798     -- call START_ACTIVITY to create savepoint, check compatibility
3799     -- and initialize message list
3800 	l_return_status := OKL_API.START_ACTIVITY( substr(l_api_name,1,26),
3801 	                                           G_PKG_NAME,
3802 	                                           p_init_msg_list,
3803 	                                           G_API_VERSION,
3804 	                                           p_api_version,
3805 	                                           G_SCOPE,
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     --call OKC_COPY_CONTRACT_PUB.copy_rules
3813     OKC_COPY_CONTRACT_PUB.copy_rules(
3814 		p_api_version		=>	p_api_version,
3815     	p_init_msg_list     =>  p_init_msg_list,
3816     	x_return_status		=>  x_return_status,
3817     	x_msg_count         =>	x_msg_count,
3818     	x_msg_data          =>	x_msg_data,
3819     	p_rgp_id            =>	p_rgp_id,
3820     	p_cle_id            =>	p_cle_id,
3821     	p_chr_id            =>	p_chr_id,
3822     	p_to_template_yn	=>	p_to_template_yn,
3823     	x_rgp_id			=>	x_rgp_id
3824 		);
3825   -- check return status
3826         If l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
3827 	       raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3828         Elsif l_return_status = OKL_API.G_RET_STS_ERROR Then
3829 	       raise OKL_API.G_EXCEPTION_ERROR;
3830         End If;
3831 	--Call End Activity
3832 	OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3833 	EXCEPTION
3834 	     WHEN OKL_API.G_EXCEPTION_ERROR THEN
3835 	       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3836 	       (substr(l_api_name,1,26),
3837 	        G_PKG_NAME,
3838 	        'OKL_API.G_RET_STS_ERROR',
3839 	        x_msg_count,
3840 	        x_msg_data,
3841 	        G_SCOPE);
3842 		-- Resetting the global transaction id.
3843 		okc_cvm_pvt.g_trans_id := 'XXX';
3844 	     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3845 	       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3846 	       (substr(l_api_name,1,26),
3847 	        G_PKG_NAME,
3848 	        'OKL_API.G_RET_STS_UNEXP_ERROR',
3849 	        x_msg_count,
3850 	        x_msg_data,
3851 	        G_SCOPE);
3852 		-- Resetting the global transaction id.
3853 		okc_cvm_pvt.g_trans_id := 'XXX';
3854 	     WHEN OTHERS THEN
3855 	      -- store SQL error message on message stack for caller
3856 	      OKL_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
3857 	       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3858 	       (substr(l_api_name,1,26),
3859 	        G_PKG_NAME,
3860 	        'OTHERS',
3861 	        x_msg_count,
3862 	        x_msg_data,
3863 	        G_SCOPE);
3864 		-- Resetting the global transaction id.
3865 		okc_cvm_pvt.g_trans_id := 'XXX';
3866 end copy_rules;
3867 ----
3868 --------------------------------------------------------------------------------
3869 -- Start of comments
3870 --
3871 -- Procedure Name  : copy_party_roles
3872 -- Description     : copies party_roles for a shadowed contract. will be
3873 --                   published in OKL_COPY_CONTRACTS_PUB
3874 -- Business Rules  :
3875 -- Parameters      :
3876 -- Version         : 1.0
3877 -- Notes           :
3878 -- End of comments
3879 --------------------------------------------------------------------------------
3880 
3881   PROCEDURE copy_party_roles(
3882     p_api_version                  IN NUMBER,
3883     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3884     x_return_status                OUT NOCOPY VARCHAR2,
3885     x_msg_count                    OUT NOCOPY NUMBER,
3886     x_msg_data                     OUT NOCOPY VARCHAR2,
3887     p_cpl_id                  	IN NUMBER,
3888     p_cle_id                       IN NUMBER DEFAULT OKL_API.G_MISS_NUM,
3889     p_chr_id                       IN NUMBER DEFAULT OKL_API.G_MISS_NUM,
3890     P_rle_code                     IN VARCHAR2,
3891     x_cpl_id		           	OUT NOCOPY NUMBER) IS
3892 
3893     l_api_name     				CONSTANT VARCHAR2(30) := 'OKL_COPY_PARTY_ROLES';
3894     l_return_status         		VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3895 
3896    -------------------------------------------------------
3897    --Bug# 3143522 : 11.5.10 Subsidies - copy of OKL shadow
3898    -------------------------------------------------------
3899     --cursor to find whether party payment details exist for party being copied
3900     Cursor l_pyd_csr (p_cpl_id in number) is
3901     Select pyd.id
3902     from   okl_party_payment_dtls pyd
3903     where  pyd.cpl_id = p_cpl_id;
3904 
3905     l_pyd_id okl_party_payment_dtls.ID%TYPE;
3906     lx_pyd_id okl_party_payment_dtls.ID%TYPE;
3907 
3908    -------------------------------------------------------
3909    --Bug# 3143522 : 11.5.10 Subsidies - copy of OKL shadow
3910    -------------------------------------------------------
3911 
3912    --Bug# 4558486
3913    Cursor l_kpl_csr (p_cpl_id in number) is
3914    Select kpl.id
3915    from   okl_k_party_roles kpl
3916    where  kpl.id = p_cpl_id;
3917 
3918    lx_kpl_id okl_k_party_roles.ID%TYPE;
3919 
3920   BEGIN
3921     l_return_status := OKL_API.START_ACTIVITY(substr(l_api_name,1,26),
3922                                               G_PKG_NAME,
3923                                               p_init_msg_list,
3924                                               G_API_VERSION,
3925                                               p_api_version,
3926                                               G_SCOPE,
3927                                               x_return_status);
3928     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3929       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3930     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3931       RAISE OKL_API.G_EXCEPTION_ERROR;
3932     END IF;
3933 
3934     OKC_COPY_CONTRACT_PUB.copy_party_roles(
3935     		p_api_version           => p_api_version,
3936     		p_init_msg_list         => p_init_msg_list,
3937     		x_return_status         => x_return_status,
3938     		x_msg_count             => x_msg_count,
3939     		x_msg_data              => x_msg_data,
3940     		p_cpl_id                => p_cpl_id,
3941     		p_cle_id                => p_cle_id,
3942     		p_chr_id                => p_chr_id,
3943     		p_rle_code              => p_rle_code,
3944     		x_cpl_id	        => x_cpl_id);
3945 
3946     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3947       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3948     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3949       RAISE OKL_API.G_EXCEPTION_ERROR;
3950     END IF;
3951 
3952    -------------------------------------------------------
3953    --Bug# 3143522 : 11.5.10 Subsidies - copy of OKL shadow
3954    -------------------------------------------------------
3955    Open l_pyd_csr (p_cpl_id => p_cpl_id);
3956    Loop
3957        Fetch l_pyd_csr into l_pyd_id;
3958        Exit when l_pyd_csr%NOTFOUND;
3959 
3960        -------------------------------------------------
3961        --call local api to copy party payment details
3962        -------------------------------------------------
3963        copy_party_pymt_dtls
3964                 (p_api_version           => p_api_version,
3965                 p_init_msg_list         => p_init_msg_list,
3966                 x_return_status         => x_return_status,
3967                 x_msg_count             => x_msg_count,
3968                 x_msg_data              => x_msg_data,
3969                 p_pyd_id                => l_pyd_id,
3970                 p_cpl_id                => x_cpl_id,
3971                 x_pyd_id                => lx_pyd_id);
3972 
3973 
3974 
3975        IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3976           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3977        ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3978           RAISE OKL_API.G_EXCEPTION_ERROR;
3979        END IF;
3980    End Loop;
3981    Close l_pyd_csr;
3982 
3983    --Bug# 4558486
3984    For l_kpl_rec in l_kpl_csr(p_cpl_id => p_cpl_id)
3985    Loop
3986      copy_okl_k_party_roles
3987                (p_api_version           => p_api_version,
3988                 p_init_msg_list         => p_init_msg_list,
3989                 x_return_status         => x_return_status,
3990                 x_msg_count             => x_msg_count,
3991                 x_msg_data              => x_msg_data,
3992                 p_kpl_id                => l_kpl_rec.id,
3993                 p_cpl_id                => x_cpl_id,
3994                 x_kpl_id                => lx_kpl_id);
3995 
3996        IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3997           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3998        ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3999           RAISE OKL_API.G_EXCEPTION_ERROR;
4000        END IF;
4001    End Loop;
4002    --Bug# 4558486
4003 
4004     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4005 
4006   EXCEPTION
4007      WHEN OKL_API.G_EXCEPTION_ERROR THEN
4008      If l_pyd_csr%ISOPEN then
4009          close l_pyd_csr;
4010      End If;
4011        x_return_status := OKL_API.HANDLE_EXCEPTIONS
4012        (substr(l_api_name,1,26),
4013         G_PKG_NAME,
4014         'OKL_API.G_RET_STS_ERROR',
4015         x_msg_count,
4016         x_msg_data,
4017         G_SCOPE);
4018      WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4019      If l_pyd_csr%ISOPEN then
4020          close l_pyd_csr;
4021      End If;
4022        x_return_status := OKL_API.HANDLE_EXCEPTIONS
4023        (substr(l_api_name,1,26),
4024         G_PKG_NAME,
4025         'OKL_API.G_RET_STS_UNEXP_ERROR',
4026         x_msg_count,
4027         x_msg_data,
4028         G_SCOPE);
4029      WHEN OTHERS THEN
4030      If l_pyd_csr%ISOPEN then
4031          close l_pyd_csr;
4032      End If;
4033       -- store SQL error message on message stack for caller
4034       OKL_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
4035        x_return_status := OKL_API.HANDLE_EXCEPTIONS
4036        (substr(l_api_name,1,26),
4037         G_PKG_NAME,
4038         'OTHERS',
4039         x_msg_count,
4040         x_msg_data,
4041         G_SCOPE);
4042 
4043   END copy_party_roles;
4044 --------------------------------------------------------------------------------
4045 -- Start of comments
4046 --
4047 -- Procedure Name  : copy_articles
4048 -- Description     : copies articles for a shadowed contract. will be
4049 --                   published in OKL_COPY_CONTRACTS_PUB
4050 -- Business Rules  :
4051 -- Parameters      :
4052 -- Version         : 1.0
4053 -- Notes           :
4054 -- End of comments
4055 --------------------------------------------------------------------------------
4056   PROCEDURE copy_articles(
4057     p_api_version                  IN NUMBER,
4058     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
4059     x_return_status                OUT NOCOPY VARCHAR2,
4060     x_msg_count                    OUT NOCOPY NUMBER,
4061     x_msg_data                     OUT NOCOPY VARCHAR2,
4062     p_cat_id                  	   IN NUMBER,
4063     p_cle_id                       IN NUMBER DEFAULT OKL_API.G_MISS_NUM,
4064     p_chr_id                       IN NUMBER DEFAULT OKL_API.G_MISS_NUM,
4065     p_sav_sav_release		       IN VARCHAR2 DEFAULT NULL,
4066     x_cat_id		               OUT NOCOPY NUMBER) IS
4067 
4068 
4069     l_api_name     			CONSTANT VARCHAR2(30) := 'OKL_COPY_ARTICLES';
4070     l_return_status           VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4071   BEGIN
4072     l_return_status := OKL_API.START_ACTIVITY(substr(l_api_name,1,26),
4073                                               G_PKG_NAME,
4074                                               p_init_msg_list,
4075                                               G_API_VERSION,
4076                                               p_api_version,
4077                                               G_SCOPE,
4078                                               x_return_status);
4079     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4080       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4081     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4082       RAISE OKL_API.G_EXCEPTION_ERROR;
4083     END IF;
4084 
4085     OKC_COPY_CONTRACT_PUB.copy_articles(
4086           p_api_version		=> p_api_version,
4087           p_init_msg_list	=> p_init_msg_list,
4088           x_return_status 	=> x_return_status,
4089           x_msg_count     	=> x_msg_count,
4090           x_msg_data      	=> x_msg_data,
4091           p_cat_id            => p_cat_id,
4092     	     p_cle_id            => p_cle_id,
4093     	     p_chr_id            => p_chr_id,
4094     	     p_sav_sav_release   => p_sav_sav_release,
4095     	     x_cat_id			=> x_cat_id);
4096 
4097     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4098       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4099     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4100       RAISE OKL_API.G_EXCEPTION_ERROR;
4101     END IF;
4102 
4103     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4104 
4105   EXCEPTION
4106      WHEN OKL_API.G_EXCEPTION_ERROR THEN
4107        x_return_status := OKL_API.HANDLE_EXCEPTIONS
4108        (substr(l_api_name,1,26),
4109         G_PKG_NAME,
4110         'OKL_API.G_RET_STS_ERROR',
4111         x_msg_count,
4112         x_msg_data,
4113         G_SCOPE);
4114      WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4115        x_return_status := OKL_API.HANDLE_EXCEPTIONS
4116        (substr(l_api_name,1,26),
4117         G_PKG_NAME,
4118         'OKL_API.G_RET_STS_UNEXP_ERROR',
4119         x_msg_count,
4120         x_msg_data,
4121         G_SCOPE);
4122      WHEN OTHERS THEN
4123       -- store SQL error message on message stack for caller
4124       OKL_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
4125        x_return_status := OKL_API.HANDLE_EXCEPTIONS
4126        (substr(l_api_name,1,26),
4127         G_PKG_NAME,
4128         'OTHERS',
4129         x_msg_count,
4130         x_msg_data,
4131         G_SCOPE);
4132 
4133   END copy_articles;
4134 --------------------------------------------------------------------------------
4135 -- Start of comments
4136 --
4137 -- Procedure Name  : copy_latest_articles
4138 -- Description     : copies latest articles for a shadowed contract. will be
4139 --                   published in OKL_COPY_CONTRACTS_PUB
4140 -- Business Rules  :
4141 -- Parameters      :
4142 -- Version         : 1.0
4143 -- Notes           :
4144 -- End of comments
4145 --------------------------------------------------------------------------------
4146   PROCEDURE copy_latest_articles(
4147     p_api_version                  IN NUMBER,
4148     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
4149     x_return_status                OUT NOCOPY VARCHAR2,
4150     x_msg_count                    OUT NOCOPY NUMBER,
4151     x_msg_data                     OUT NOCOPY VARCHAR2,
4152     p_cat_id                  	IN NUMBER,
4153     p_cle_id                       IN NUMBER DEFAULT OKL_API.G_MISS_NUM,
4154     p_chr_id                       IN NUMBER DEFAULT OKL_API.G_MISS_NUM,
4155     x_cat_id		           	OUT NOCOPY NUMBER) IS
4156 
4157 
4158     l_api_name     		   CONSTANT VARCHAR2(30) := 'OKL_COPY_LATEST_ARTICLES';
4159     l_return_status         VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4160   BEGIN
4161     l_return_status := OKL_API.START_ACTIVITY(substr(l_api_name,1,26),
4162                                               G_PKG_NAME,
4163                                               p_init_msg_list,
4164                                               G_API_VERSION,
4165                                               p_api_version,
4166                                               G_SCOPE,
4167                                               x_return_status);
4168     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4169       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4170     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4171       RAISE OKL_API.G_EXCEPTION_ERROR;
4172     END IF;
4173 
4174     OKC_COPY_CONTRACT_PUB.copy_latest_articles(
4175             p_api_version	   => p_api_version,
4176             p_init_msg_list	   => p_init_msg_list,
4177             x_return_status    => x_return_status,
4178             x_msg_count        => x_msg_count,
4179             x_msg_data         => x_msg_data,
4180             p_cat_id           => p_cat_id,
4181             p_cle_id           => p_cle_id,
4182             p_chr_id           => p_chr_id,
4183             x_cat_id		   => x_cat_id);
4184 
4185     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4186       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4187     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4188       RAISE OKL_API.G_EXCEPTION_ERROR;
4189     END IF;
4190 
4191     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4192 
4193   EXCEPTION
4194      WHEN OKL_API.G_EXCEPTION_ERROR THEN
4195        x_return_status := OKL_API.HANDLE_EXCEPTIONS
4196        (substr(l_api_name,1,26),
4197         G_PKG_NAME,
4198         'OKL_API.G_RET_STS_ERROR',
4199         x_msg_count,
4200         x_msg_data,
4201         G_SCOPE);
4202      WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4203        x_return_status := OKL_API.HANDLE_EXCEPTIONS
4204        (substr(l_api_name,1,26),
4205         G_PKG_NAME,
4206         'OKL_API.G_RET_STS_UNEXP_ERROR',
4207         x_msg_count,
4208         x_msg_data,
4209         G_SCOPE);
4210      WHEN OTHERS THEN
4211       -- store SQL error message on message stack for caller
4212       OKL_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
4213        x_return_status := OKL_API.HANDLE_EXCEPTIONS
4214        (substr(l_api_name,1,26),
4215         G_PKG_NAME,
4216         'OTHERS',
4217         x_msg_count,
4218         x_msg_data,
4219         G_SCOPE);
4220   END copy_latest_articles;
4221 --------------------------------------------------------------------------
4222   --Start of Comments
4223   --Bug # 2337570 - TEMPLATE COPY DOES NOT DEFAULT ALL FIELDS ON HEADER
4224   --Procedure Name : Copy_Governances
4225   --Description    : Makes a copy of the okc_governances.
4226   -- Local Procedure in OKC_COPY_CONTRACT_PVT - repeated here as governances
4227   -- need to be copied in case of lease contracts. In core contracts
4228   -- governances are copied only if renew reference flag is set to 'Yes'
4229 --------------------------------------------------------------------------
4230   PROCEDURE copy_governances(
4231     p_api_version                  IN NUMBER,
4232     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
4233     x_return_status                OUT NOCOPY VARCHAR2,
4234     x_msg_count                    OUT NOCOPY NUMBER,
4235     x_msg_data                     OUT NOCOPY VARCHAR2,
4236     p_from_chr_id                  IN NUMBER,
4237     p_to_chr_id                    IN NUMBER) IS
4238 
4239     l_gvev_rec 	OKC_CONTRACT_PUB.gvev_rec_type;
4240     x_gvev_rec 	OKC_CONTRACT_PUB.gvev_rec_type;
4241     l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4242 
4243     CURSOR 	c_governances IS
4244     SELECT 	id
4245     FROM 		okc_governances_v
4246     WHERE 	dnz_chr_id = p_from_chr_id
4247     AND		cle_id is null;
4248 
4249   ----------------------------------------------------------------------------
4250   --Function to populate the contract governance record to be copied.
4251   ----------------------------------------------------------------------------
4252     FUNCTION get_gvev_rec(p_gve_id IN NUMBER,
4253 				      x_gvev_rec OUT NOCOPY OKC_CONTRACT_PUB.gvev_rec_type)
4254     RETURN  VARCHAR2 IS
4255       l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4256       l_no_data_found BOOLEAN := TRUE;
4257 
4258       CURSOR c_gvev_rec IS
4259       SELECT
4260 	    DNZ_CHR_ID,
4261 	    ISA_AGREEMENT_ID,
4262 	    CHR_ID,
4263 	    CLE_ID,
4264 	    CHR_ID_REFERRED,
4265 	    CLE_ID_REFERRED,
4266 	    COPIED_ONLY_YN
4267 	 FROM    OKC_GOVERNANCES
4268 	 WHERE 	ID = p_gve_id;
4269     BEGIN
4270       OPEN c_gvev_rec;
4271       FETCH c_gvev_rec
4272       INTO x_gvev_rec.DNZ_CHR_ID,
4273 		x_gvev_rec.ISA_AGREEMENT_ID,
4274 		x_gvev_rec.CHR_ID,
4275 		x_gvev_rec.CLE_ID,
4276 		x_gvev_rec.CHR_ID_REFERRED,
4277 		x_gvev_rec.CLE_ID_REFERRED,
4278 		x_gvev_rec.COPIED_ONLY_YN;
4279 
4280       l_no_data_found := c_gvev_rec%NOTFOUND;
4281       CLOSE c_gvev_rec;
4282       IF l_no_data_found THEN
4283         l_return_status := OKC_API.G_RET_STS_ERROR;
4284         return(l_return_status);
4285       ELSE
4286         return(l_return_status);
4287       END IF;
4288     EXCEPTION
4289       WHEN OTHERS THEN
4290         -- store SQL error message on message stack for caller
4291         OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
4292         -- notify caller of an UNEXPECTED error
4293         l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
4294         return(l_return_status);
4295 
4296     END get_gvev_rec;
4297   BEGIN
4298     x_return_status := l_return_status;
4299     FOR l_c_governances IN c_governances LOOP
4300       l_return_status := get_gvev_rec(	p_gve_id 	 => l_c_governances.id,
4301 					               x_gvev_rec => l_gvev_rec);
4302       l_gvev_rec.chr_id := p_to_chr_id;
4303       l_gvev_rec.dnz_chr_id := p_to_chr_id;
4304 
4305       OKC_CONTRACT_PUB.create_governance(
4306 	   p_api_version	=> p_api_version,
4307            p_init_msg_list	=> p_init_msg_list,
4308            x_return_status 	=> l_return_status,
4309            x_msg_count     	=> x_msg_count,
4310            x_msg_data      	=> x_msg_data,
4311            p_gvev_rec		=> l_gvev_rec,
4312            x_gvev_rec		=> x_gvev_rec);
4313 
4314       IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
4315         IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4316           x_return_status := l_return_status;
4317           RAISE G_EXCEPTION_HALT_VALIDATION;
4318         ELSE
4319 	     x_return_status := l_return_status;
4320         END IF;
4321       END IF;
4322     END LOOP;
4323 
4324   EXCEPTION
4325     WHEN G_EXCEPTION_HALT_VALIDATION THEN
4326       NULL;
4327     WHEN OTHERS THEN
4328       -- store SQL error message on message stack for caller
4329       OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
4330       -- notify caller of an UNEXPECTED error
4331       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
4332 
4333   END copy_governances;
4334 
4335 --------------------------------------------------------------------------------
4336 --Start of Comments
4337 --Procedure Name : link_cov_Asst
4338 --Description    : Links covered assets/usage contract after copy
4339 --Notes          : Usage soueces are blanked out
4340 --                 for covered asset if a single copied fin asset line with
4341 --                 matching source is found in the new contract covered item is
4342 --                 made to piont to this line otherwise it is blanked (Null)
4343 --                 to added Syndication 'OKX_LEASE' also
4344 --                 This will also be pushed into Copy_Asset_Lines
4345 --------------------------------------------------------------------------------
4346 Procedure link_cov_asst( p_api_version              IN  NUMBER,
4347                          p_init_msg_list            IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
4348                          x_return_status            OUT NOCOPY VARCHAR2,
4349                          x_msg_count                OUT NOCOPY NUMBER,
4350                          x_msg_data                 OUT NOCOPY VARCHAR2,
4351                          p_orig_lnk_cle_id          IN  NUMBER,
4352                          p_new_lnk_cim_id           IN  NUMBER,
4353                          p_object_code              IN  VARCHAR2,
4354                          p_new_chr_id               IN  NUMBER) is
4355 
4356 --cursor to fetch original fin linked asset line id
4357 CURSOR l_orig_ast_csr(p_orig_lnk_cle_id IN NUMBER,
4358                       p_new_chr_id      IN NUMBER) IS
4359 SELECT new_cle.id
4360 FROM   OKC_K_LINES_B new_cle,
4361        OKC_K_ITEMS   orig_lnk_cim
4362 WHERE  new_cle.ORIG_SYSTEM_ID1 = to_number(orig_lnk_cim.object1_id1)
4363 AND    new_cle.chr_id          = p_new_chr_id
4364 AND    orig_lnk_cim.cle_id     = p_orig_lnk_cle_id
4365 AND    not exists (select null
4366                    from   OKC_K_LINES_B another_cle
4367                    where  another_cle.orig_system_id1 = new_cle.orig_system_id1
4368                    and    another_cle.lse_id          = new_cle.lse_id
4369                    and    another_cle.chr_id          = new_cle.chr_id
4370                    and    another_cle.id             <> new_cle.id);
4371 
4372 l_new_cle_id     OKC_K_LINES_B.ID%TYPE;
4373 
4374 
4375 l_new_lnk_cim_id   NUMBER;
4376 
4377 l_cimv_rec         OKL_OKC_MIGRATION_PVT.cimv_rec_type;
4378 lx_cimv_rec        OKL_OKC_MIGRATION_PVT.cimv_rec_type;
4379 
4380 Begin
4381     x_return_status := OKL_API.G_RET_STS_SUCCESS;
4382     l_new_lnk_cim_id := p_new_lnk_cim_id;
4383 
4384     If p_object_code in ('OKL_USAGE','OKX_LEASE') then --for covered usage contract and syndicated contract
4385 
4386         l_cimv_rec.id                := l_new_lnk_cim_id;
4387         l_cimv_rec.object1_id1       := OKL_API.G_MISS_CHAR;
4388         l_cimv_rec.object1_id2       := OKL_API.G_MISS_CHAR;
4389         l_cimv_rec.jtot_object1_code := OKL_API.G_MISS_CHAR;
4390 
4391     Else --for covered asset
4392 
4393         Open l_orig_ast_csr(p_orig_lnk_cle_id => p_orig_lnk_cle_id,
4394                             p_new_chr_id      => p_new_chr_id);
4395         Fetch l_orig_ast_csr into l_new_cle_id;
4396         IF l_orig_ast_csr%NOTFOUND Then
4397             --null out the new link
4398             l_cimv_rec.id                := l_new_lnk_cim_id;
4399             l_cimv_rec.object1_id1       := OKL_API.G_MISS_CHAR;
4400             l_cimv_rec.object1_id2       := OKL_API.G_MISS_CHAR;
4401             l_cimv_rec.jtot_object1_code := OKL_API.G_MISS_CHAR;
4402          ELSE
4403             --update the new link with new asset
4404             l_cimv_rec.id := l_new_lnk_cim_id;
4405             l_cimv_rec.object1_id1 := to_char(l_new_cle_id);
4406          END IF;
4407          Close l_orig_ast_csr;
4408 
4409      End If;
4410 
4411      --update link contract item accordingly
4412      okl_okc_migration_pvt.update_contract_item(
4413             p_api_version    => p_api_version,
4414             p_init_msg_list  => p_init_msg_list,
4415             x_return_status  => x_return_status,
4416             x_msg_count      => x_msg_count,
4417             x_msg_data       => x_msg_data,
4418             p_cimv_rec       => l_cimv_rec,
4419             x_cimv_rec       => lx_cimv_rec);
4420 
4421     Exception
4422     When Others then
4423         If l_orig_ast_csr%ISOPEN Then
4424             Close l_orig_ast_csr;
4425         End If;
4426         x_return_status :=  OKL_API.G_RET_STS_UNEXP_ERROR;
4427 
4428 End link_cov_asst;
4429 --------------------------------------------------------------------------------
4430 -- Start of comments
4431 -- Bug# 2555692
4432 -- Procedure Name  : reset_contract_status
4433 -- Description     : Local procedure will be called from copy_lease_contract to
4434 --                   update the copied contracts status to a 'NEW' status. OKC
4435 --                   APIs by default set the status of a new contract to 'ENTERED'
4436 -- Business Rules  :
4437 -- Parameters      :
4438 -- Version         : 1.0
4439 -- Notes           :
4440 -- End of comments
4441 --------------------------------------------------------------------------------
4442 Procedure reset_contract_status
4443            (p_api_version   IN  NUMBER,
4444             p_init_msg_list IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
4445             x_return_status OUT NOCOPY VARCHAR2,
4446             x_msg_count     OUT NOCOPY NUMBER,
4447             x_msg_data      OUT NOCOPY VARCHAR2,
4448             p_chr_id        IN  NUMBER,
4449             p_status        IN  VARCHAR2,
4450             p_cascade_lines IN  VARCHAR2) IS
4451 BEGIN
4452     x_return_status := OKL_API.G_RET_STS_SUCCESS;
4453     -- Now call the stored program to update status of contact
4454     okl_contract_status_pub.update_contract_status
4455       (p_api_version   => p_api_version,
4456        p_init_msg_list => p_init_msg_list,
4457        x_return_status => x_return_status,
4458        x_msg_count     => x_msg_count,
4459        x_msg_data      => x_msg_data,
4460        p_khr_status    => p_status,
4461        p_chr_id        => p_chr_id);
4462 
4463     If (x_return_status <> OKL_API.G_RET_STS_SUCCESS) Then
4464        Raise G_EXCEPTION_HALT_PROCESS;
4465     End If;
4466 
4467 
4468     /*
4469     If nvl(p_cascade_lines,'N') = 'Y' Then
4470        okl_contract_status_pub.cascade_lease_status
4471           (p_api_version   => p_api_version,
4472            p_init_msg_list => p_init_msg_list,
4473            x_return_status => x_return_status,
4474            x_msg_count     => x_msg_count,
4475            x_msg_data      => x_msg_data,
4476            p_chr_id        => p_chr_id);
4477     End If;
4478     */
4479 
4480     If (x_return_status <> OKL_API.G_RET_STS_SUCCESS) Then
4481        Raise G_EXCEPTION_HALT_PROCESS;
4482     End If;
4483 
4484     EXCEPTION
4485     WHEN G_EXCEPTION_HALT_PROCESS Then
4486          Null;
4487     When OTHERS Then
4488          x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
4489 END reset_contract_status;
4490 --End Bug# 2555692
4491 
4492 --------------------------------------------------------------------------------
4493 -- Start of comments
4494 -- Bug# 3159691
4495 -- Procedure Name  : delete_yields
4496 -- Description     : Local procedure will be called from copy_lease_contract to
4497 --                   remove yield values from the new contract.
4498 --
4499 -- Business Rules  :
4500 -- Parameters      :
4501 -- Version         : 1.0
4502 -- Notes           :
4503 -- End of comments
4504 --------------------------------------------------------------------------------
4505   PROCEDURE delete_yields(
4506     p_api_version                  IN NUMBER,
4507     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
4508     x_return_status                OUT NOCOPY VARCHAR2,
4509     x_msg_count                    OUT NOCOPY NUMBER,
4510     x_msg_data                     OUT NOCOPY VARCHAR2,
4511     p_chr_id                       IN NUMBER,
4512     --Bug# 3973640
4513     p_trans_type                   IN VARCHAR2
4514     ) IS
4515 
4516     l_api_name        CONSTANT VARCHAR2(30) := 'OKL_DELETE_YIELDS';
4517     l_return_status   VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4518 
4519     l_chrv_rec     chrv_rec_type;
4520     l_khrv_rec     khrv_rec_type;
4521     l_khrv_qry_rec khrv_rec_type;
4522     lx_chrv_rec    chrv_rec_type;
4523     lx_khrv_rec    khrv_rec_type;
4524 
4525     l_clev_rec     clev_rec_type;
4526     l_klev_rec     klev_rec_type;
4527     lx_clev_rec    clev_rec_type;
4528     lx_klev_rec    klev_rec_type;
4529 
4530     cursor kle_csr is
4531     select kle.id
4532           ,kle.pre_tax_yield
4533           ,kle.after_tax_yield
4534           ,kle.implicit_interest_rate
4535           ,kle.implicit_non_idc_interest_rate
4536           ,kle.pre_tax_irr
4537           ,kle.after_tax_irr
4538           ,kle.sub_pre_tax_yield
4539           ,kle.sub_after_tax_yield
4540           ,kle.sub_impl_interest_rate
4541           ,kle.sub_impl_non_idc_int_rate
4542           ,kle.sub_pre_tax_irr
4543           ,kle.sub_after_tax_irr
4544           ,kle.capitalized_interest
4545           --Bug# 3973640
4546           ,kle.qte_id
4547           ,kle.funding_date
4548     from  okc_k_lines_b cle
4549          ,okl_k_lines kle
4550     where cle.dnz_chr_id = p_chr_id
4551     and   cle.id = kle.id;
4552 
4553   BEGIN
4554 
4555     x_return_status := OKL_API.G_RET_STS_SUCCESS;
4556     x_return_status := OKL_API.START_ACTIVITY(substr(l_api_name,1,26),
4557                                               G_PKG_NAME,
4558                                               p_init_msg_list,
4559                                               G_API_VERSION,
4560                                               p_api_version,
4561                                               G_SCOPE,
4562                                               x_return_status);
4563     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4564       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4565     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4566       RAISE OKL_API.G_EXCEPTION_ERROR;
4567     END IF;
4568 
4569     l_khrv_qry_rec := get_khrv_rec(p_chr_id);
4570 
4571     IF (l_khrv_qry_rec.pre_tax_yield IS NOT NULL OR
4572         l_khrv_qry_rec.after_tax_yield IS NOT NULL OR
4573         l_khrv_qry_rec.implicit_interest_rate IS NOT NULL OR
4574         l_khrv_qry_rec.implicit_non_idc_interest_rate IS NOT NULL OR
4575         l_khrv_qry_rec.pre_tax_irr IS NOT NULL OR
4576         l_khrv_qry_rec.after_tax_irr IS NOT NULL OR
4577         l_khrv_qry_rec.sub_pre_tax_yield IS NOT NULL OR
4578         l_khrv_qry_rec.sub_after_tax_yield IS NOT NULL OR
4579         l_khrv_qry_rec.sub_impl_interest_rate IS NOT NULL OR
4580         l_khrv_qry_rec.sub_impl_non_idc_int_rate IS NOT NULL OR
4581         l_khrv_qry_rec.sub_pre_tax_irr IS NOT NULL OR
4582         l_khrv_qry_rec.sub_after_tax_irr IS NOT NULL OR
4583         l_khrv_qry_rec.date_last_interim_interest_cal IS NOT NULL OR
4584         --bug# 3973640:
4585         l_khrv_qry_rec.TOT_CL_TRANSFER_AMT IS NOT NULL OR
4586         l_khrv_qry_rec.TOT_CL_NET_TRANSFER_AMT IS NOT NULL OR
4587         l_khrv_qry_rec.TOT_CL_LIMIT IS NOT NULL OR
4588         l_khrv_qry_rec.TOT_CL_FUNDING_AMT IS NOT NULL) THEN
4589 
4590       l_chrv_rec.id := p_chr_id;
4591       l_khrv_rec.id := p_chr_id;
4592 
4593       l_khrv_rec.pre_tax_yield := NULL;
4594       l_khrv_rec.after_tax_yield := NULL;
4595       l_khrv_rec.implicit_interest_rate := NULL;
4596       l_khrv_rec.implicit_non_idc_interest_rate := NULL;
4597       l_khrv_rec.pre_tax_irr := NULL;
4598       l_khrv_rec.after_tax_irr := NULL;
4599       l_khrv_rec.sub_pre_tax_yield := NULL;
4600       l_khrv_rec.sub_after_tax_yield := NULL;
4601       l_khrv_rec.sub_impl_interest_rate := NULL;
4602       l_khrv_rec.sub_impl_non_idc_int_rate := NULL;
4603       l_khrv_rec.sub_pre_tax_irr := NULL;
4604       l_khrv_rec.sub_after_tax_irr := NULL;
4605 
4606       -- Bug# 3541098
4607       l_khrv_rec.date_last_interim_interest_cal := NULL;
4608       --bug# 3973640:
4609        l_khrv_rec.TOT_CL_TRANSFER_AMT := NULL;
4610        l_khrv_rec.TOT_CL_NET_TRANSFER_AMT := NULL;
4611        l_khrv_rec.TOT_CL_LIMIT := NULL;
4612        l_khrv_rec.TOT_CL_FUNDING_AMT := NULL;
4613 
4614       okl_contract_pub.update_contract_header(
4615        p_api_version   => p_api_version,
4616        p_init_msg_list => p_init_msg_list,
4617        x_return_status => x_return_status,
4618        x_msg_count     => x_msg_count,
4619        x_msg_data      => x_msg_data,
4620        p_chrv_rec      => l_chrv_rec,
4621        p_khrv_rec      => l_khrv_rec,
4622        x_chrv_rec      => lx_chrv_rec,
4623        x_khrv_rec      => lx_khrv_rec);
4624 
4625       IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4626         RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4627       ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4628         RAISE OKL_API.G_EXCEPTION_ERROR;
4629       END IF;
4630 
4631     END IF;
4632 
4633     FOR l_kle_rec IN kle_csr LOOP
4634 
4635       IF (l_kle_rec.pre_tax_yield IS NOT NULL OR
4636         l_kle_rec.after_tax_yield IS NOT NULL OR
4637         l_kle_rec.implicit_interest_rate IS NOT NULL OR
4638         l_kle_rec.implicit_non_idc_interest_rate IS NOT NULL OR
4639         l_kle_rec.pre_tax_irr IS NOT NULL OR
4640         l_kle_rec.after_tax_irr IS NOT NULL OR
4641         l_kle_rec.sub_pre_tax_yield IS NOT NULL OR
4642         l_kle_rec.sub_after_tax_yield IS NOT NULL OR
4643         l_kle_rec.sub_impl_interest_rate IS NOT NULL OR
4644         l_kle_rec.sub_impl_non_idc_int_rate IS NOT NULL OR
4645         l_kle_rec.sub_pre_tax_irr IS NOT NULL OR
4646         l_kle_rec.sub_after_tax_irr IS NOT NULL OR
4647         l_kle_rec.capitalized_interest IS NOT NULL OR
4648         --Bug# 3973640:
4649         l_kle_rec.qte_id IS NOT NULL OR
4650         l_kle_rec.funding_date IS NOT NULL) THEN
4651 
4652         l_clev_rec.id := l_kle_rec.id;
4653         l_klev_rec.id := l_kle_rec.id;
4654 
4655         l_klev_rec.pre_tax_yield := NULL;
4656         l_klev_rec.after_tax_yield := NULL;
4657         l_klev_rec.implicit_interest_rate := NULL;
4658         l_klev_rec.implicit_non_idc_interest_rate := NULL;
4659         l_klev_rec.pre_tax_irr := NULL;
4660         l_klev_rec.after_tax_irr := NULL;
4661         l_klev_rec.sub_pre_tax_yield := NULL;
4662         l_klev_rec.sub_after_tax_yield := NULL;
4663         l_klev_rec.sub_impl_interest_rate := NULL;
4664         l_klev_rec.sub_impl_non_idc_int_rate := NULL;
4665         l_klev_rec.sub_pre_tax_irr := NULL;
4666         l_klev_rec.sub_after_tax_irr := NULL;
4667 
4668         -- Bug# 3541098
4669         l_klev_rec.capitalized_interest := NULL;
4670         --Bug# 3973640
4671         l_klev_rec.funding_date := NULL;
4672         If nvl(p_trans_type,'CFA') = 'CFA' then
4673             l_klev_rec.qte_id := NULL;
4674         End If;
4675 
4676         okl_contract_pub.update_contract_line(
4677           p_api_version        => p_api_version,
4678           p_init_msg_list      => p_init_msg_list,
4679           x_return_status      => x_return_status,
4680           x_msg_count          => x_msg_count,
4681           x_msg_data           => x_msg_data,
4682           p_clev_rec           => l_clev_rec,
4683           p_klev_rec           => l_klev_rec,
4684           x_clev_rec           => lx_clev_rec,
4685           x_klev_rec           => lx_klev_rec);
4686 
4687         IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4688           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4689         ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4690           RAISE OKL_API.G_EXCEPTION_ERROR;
4691         END IF;
4692 
4693       END IF;
4694     END LOOP;
4695 
4696     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4697 
4698   EXCEPTION
4699      WHEN OKL_API.G_EXCEPTION_ERROR THEN
4700        x_return_status := OKL_API.HANDLE_EXCEPTIONS
4701        (substr(l_api_name,1,26),
4702         G_PKG_NAME,
4703         'OKL_API.G_RET_STS_ERROR',
4704         x_msg_count,
4705         x_msg_data,
4706         G_SCOPE);
4707      WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4708        x_return_status := OKL_API.HANDLE_EXCEPTIONS
4709        (substr(l_api_name,1,26),
4710         G_PKG_NAME,
4711         'OKL_API.G_RET_STS_UNEXP_ERROR',
4712         x_msg_count,
4713         x_msg_data,
4714         G_SCOPE);
4715      WHEN OTHERS THEN
4716       -- store SQL error message on message stack for caller
4717       OKL_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
4718        x_return_status := OKL_API.HANDLE_EXCEPTIONS
4719        (substr(l_api_name,1,26),
4720         G_PKG_NAME,
4721         'OTHERS',
4722         x_msg_count,
4723         x_msg_data,
4724         G_SCOPE);
4725 
4726 END delete_yields;
4727 --End Bug# 3159691
4728 
4729 Procedure copy_var_int_rate_params(p_old_id IN NUMBER,
4730                                    p_new_id IN NUMBER,
4731                                    p_start_date IN DATE,
4732                                    p_trans_type IN VARCHAR2,
4733                                    p_rbk_date IN DATE) IS
4734     TYPE l_kkhr_id_type is table of okl_k_rate_params.khr_id%TYPE index by binary_integer;
4735     TYPE l_kparameter_type_code_type is table of okl_k_rate_params.parameter_type_code%TYPE index by binary_integer;
4736     TYPE l_keffective_from_date_type is table of okl_k_rate_params.effective_from_date%TYPE index by binary_integer;
4737     TYPE l_keffective_to_date_type is table of okl_k_rate_params.effective_to_date%TYPE index by binary_integer;
4738     TYPE l_kinterest_index_id_type is table of okl_k_rate_params.interest_index_id%TYPE index by binary_integer;
4739     TYPE l_kbase_rate_type is table of okl_k_rate_params.base_rate%TYPE index by binary_integer;
4740     TYPE l_kinterest_start_date_type is table of okl_k_rate_params.interest_start_date%TYPE index by binary_integer;
4741     TYPE l_kadder_rate_type is table of okl_k_rate_params.adder_rate%TYPE index by binary_integer;
4742     TYPE l_kmaximum_rate_type is table of okl_k_rate_params.maximum_rate%TYPE index by binary_integer;
4743     TYPE l_kminimum_rate_type is table of okl_k_rate_params.minimum_rate%TYPE index by binary_integer;
4744     TYPE l_kprincipal_basis_code_type is table of okl_k_rate_params.principal_basis_code%TYPE index by binary_integer;
4745     TYPE l_kdays_in_a_month_code_type is table of okl_k_rate_params.days_in_a_month_code%TYPE index by binary_integer;
4746     TYPE l_kdays_in_a_year_code_type is table of okl_k_rate_params.days_in_a_year_code%TYPE index by binary_integer;
4747     TYPE l_kinterest_basis_code_type is table of okl_k_rate_params.interest_basis_code%TYPE index by binary_integer;
4748     TYPE l_krate_delay_code_type is table of okl_k_rate_params.rate_delay_code%TYPE index by binary_integer;
4749     TYPE l_krate_delay_frequency_type is table of okl_k_rate_params.rate_delay_frequency%TYPE index by binary_integer;
4750     TYPE l_kcompounding_frequ_code_type is table of okl_k_rate_params.compounding_frequency_code%TYPE index by binary_integer;
4751     TYPE l_kcalculation_formula_id_type is table of okl_k_rate_params.calculation_formula_id%TYPE index by binary_integer;
4752     TYPE l_kcatchup_basis_code_type is table of okl_k_rate_params.catchup_basis_code%TYPE index by binary_integer;
4753     TYPE l_kcatchup_start_date_type is table of okl_k_rate_params.catchup_start_date%TYPE index by binary_integer;
4754     TYPE l_kcatchup_settlemen_code_type is table of okl_k_rate_params.catchup_settlement_code%TYPE index by binary_integer;
4755     TYPE l_krate_change_start_date_type is table of okl_k_rate_params.rate_change_start_date%TYPE index by binary_integer;
4756     TYPE l_krate_change_frequ_code_type is table of okl_k_rate_params.rate_change_frequency_code%TYPE index by binary_integer;
4757     TYPE l_krate_change_value_type is table of okl_k_rate_params.rate_change_value%TYPE index by binary_integer;
4758     TYPE l_kconversion_option_code_type is table of okl_k_rate_params.conversion_option_code%TYPE index by binary_integer;
4759     TYPE l_knext_conversion_date_type is table of okl_k_rate_params.next_conversion_date%TYPE index by binary_integer;
4760     TYPE l_kconversion_type_code_type is table of okl_k_rate_params.conversion_type_code%TYPE index by binary_integer;
4761     TYPE l_kattribute_category_type is table of okl_k_rate_params.attribute_category%TYPE index by binary_integer;
4762     TYPE l_kattribute1_type is table of okl_k_rate_params.attribute1%TYPE index by binary_integer;
4763     TYPE l_kattribute2_type is table of okl_k_rate_params.attribute2%TYPE index by binary_integer;
4764     TYPE l_kattribute3_type is table of okl_k_rate_params.attribute3%TYPE index by binary_integer;
4765     TYPE l_kattribute4_type is table of okl_k_rate_params.attribute4%TYPE index by binary_integer;
4766     TYPE l_kattribute5_type is table of okl_k_rate_params.attribute5%TYPE index by binary_integer;
4767     TYPE l_kattribute6_type is table of okl_k_rate_params.attribute6%TYPE index by binary_integer;
4768     TYPE l_kattribute7_type is table of okl_k_rate_params.attribute7%TYPE index by binary_integer;
4769     TYPE l_kattribute8_type is table of okl_k_rate_params.attribute8%TYPE index by binary_integer;
4770     TYPE l_kattribute9_type is table of okl_k_rate_params.attribute9%TYPE index by binary_integer;
4771     TYPE l_kattribute10_type is table of okl_k_rate_params.attribute10%TYPE index by binary_integer;
4772     TYPE l_kattribute11_type is table of okl_k_rate_params.attribute11%TYPE index by binary_integer;
4773     TYPE l_kattribute12_type is table of okl_k_rate_params.attribute12%TYPE index by binary_integer;
4774     TYPE l_kattribute13_type is table of okl_k_rate_params.attribute13%TYPE index by binary_integer;
4775     TYPE l_kattribute14_type is table of okl_k_rate_params.attribute14%TYPE index by binary_integer;
4776     TYPE l_kattribute15_type is table of okl_k_rate_params.attribute15%TYPE index by binary_integer;
4777     TYPE l_kcatchup_frequency_code_type is table of okl_k_rate_params.catchup_frequency_code%TYPE index by binary_integer;
4778 
4779     l_kkhr_id_tab l_kkhr_id_type;
4780     l_kparameter_type_code_tab l_kparameter_type_code_type;
4781     l_keffective_from_date_tab l_keffective_from_date_type;
4782     l_keffective_to_date_tab l_keffective_to_date_type;
4783     l_kinterest_index_id_tab l_kinterest_index_id_type;
4784     l_kbase_rate_tab l_kbase_rate_type;
4785     l_kinterest_start_date_tab l_kinterest_start_date_type;
4786     l_kadder_rate_tab l_kadder_rate_type;
4787     l_kmaximum_rate_tab l_kmaximum_rate_type;
4788     l_kminimum_rate_tab l_kminimum_rate_type;
4789     l_kprincipal_basis_code_tab l_kprincipal_basis_code_type;
4790     l_kdays_in_a_month_code_tab l_kdays_in_a_month_code_type;
4791     l_kdays_in_a_year_code_tab l_kdays_in_a_year_code_type;
4792     l_kinterest_basis_code_tab l_kinterest_basis_code_type;
4793     l_krate_delay_code_tab l_krate_delay_code_type;
4794     l_krate_delay_frequency_tab l_krate_delay_frequency_type;
4795     l_kcompounding_frequ_code_tab l_kcompounding_frequ_code_type;
4796     l_kcalculation_formula_id_tab l_kcalculation_formula_id_type;
4797     l_kcatchup_basis_code_tab l_kcatchup_basis_code_type;
4798     l_kcatchup_start_date_tab l_kcatchup_start_date_type;
4799     l_kcatchup_settlemen_code_tab l_kcatchup_settlemen_code_type;
4800     l_krate_change_start_date_tab l_krate_change_start_date_type;
4801     l_krate_change_frequ_code_tab l_krate_change_frequ_code_type;
4802     l_krate_change_value_tab l_krate_change_value_type;
4803     l_kconversion_option_code_tab l_kconversion_option_code_type;
4804     l_knext_conversion_date_tab l_knext_conversion_date_type;
4805     l_kconversion_type_code_tab l_kconversion_type_code_type;
4806     l_kattribute_category_tab l_kattribute_category_type;
4807     l_kattribute1_tab l_kattribute1_type;
4808     l_kattribute2_tab l_kattribute2_type;
4809     l_kattribute3_tab l_kattribute3_type;
4810     l_kattribute4_tab l_kattribute4_type;
4811     l_kattribute5_tab l_kattribute5_type;
4812     l_kattribute6_tab l_kattribute6_type;
4813     l_kattribute7_tab l_kattribute7_type;
4814     l_kattribute8_tab l_kattribute8_type;
4815     l_kattribute9_tab l_kattribute9_type;
4816     l_kattribute10_tab l_kattribute10_type;
4817     l_kattribute11_tab l_kattribute11_type;
4818     l_kattribute12_tab l_kattribute12_type;
4819     l_kattribute13_tab l_kattribute13_type;
4820     l_kattribute14_tab l_kattribute14_type;
4821     l_kattribute15_tab l_kattribute15_type;
4822     l_kcatchup_frequency_code_tab l_kcatchup_frequency_code_type;
4823 
4824     l_kkhr_id_tab2 l_kkhr_id_type;
4825     l_kparameter_type_code_tab2 l_kparameter_type_code_type;
4826     l_keffective_from_date_tab2 l_keffective_from_date_type;
4827     l_keffective_to_date_tab2 l_keffective_to_date_type;
4828     l_kinterest_index_id_tab2 l_kinterest_index_id_type;
4829     l_kbase_rate_tab2 l_kbase_rate_type;
4830     l_kinterest_start_date_tab2 l_kinterest_start_date_type;
4831     l_kadder_rate_tab2 l_kadder_rate_type;
4832     l_kmaximum_rate_tab2 l_kmaximum_rate_type;
4833     l_kminimum_rate_tab2 l_kminimum_rate_type;
4834     l_kprincipal_basis_code_tab2 l_kprincipal_basis_code_type;
4835     l_kdays_in_a_month_code_tab2 l_kdays_in_a_month_code_type;
4836     l_kdays_in_a_year_code_tab2 l_kdays_in_a_year_code_type;
4837     l_kinterest_basis_code_tab2 l_kinterest_basis_code_type;
4838     l_krate_delay_code_tab2 l_krate_delay_code_type;
4839     l_krate_delay_frequency_tab2 l_krate_delay_frequency_type;
4840     l_kcompounding_frequ_code_tab2 l_kcompounding_frequ_code_type;
4841     l_kcalculation_formula_id_tab2 l_kcalculation_formula_id_type;
4842     l_kcatchup_basis_code_tab2 l_kcatchup_basis_code_type;
4843     l_kcatchup_start_date_tab2 l_kcatchup_start_date_type;
4844     l_kcatchup_settlemen_code_tab2 l_kcatchup_settlemen_code_type;
4845     l_krate_change_start_date_tab2 l_krate_change_start_date_type;
4846     l_krate_change_frequ_code_tab2 l_krate_change_frequ_code_type;
4847     l_krate_change_value_tab2 l_krate_change_value_type;
4848     l_kconversion_option_code_tab2 l_kconversion_option_code_type;
4849     l_knext_conversion_date_tab2 l_knext_conversion_date_type;
4850     l_kconversion_type_code_tab2 l_kconversion_type_code_type;
4851     l_kattribute_category_tab2 l_kattribute_category_type;
4852     l_kattribute1_tab2 l_kattribute1_type;
4853     l_kattribute2_tab2 l_kattribute2_type;
4854     l_kattribute3_tab2 l_kattribute3_type;
4855     l_kattribute4_tab2 l_kattribute4_type;
4856     l_kattribute5_tab2 l_kattribute5_type;
4857     l_kattribute6_tab2 l_kattribute6_type;
4858     l_kattribute7_tab2 l_kattribute7_type;
4859     l_kattribute8_tab2 l_kattribute8_type;
4860     l_kattribute9_tab2 l_kattribute9_type;
4861     l_kattribute10_tab2 l_kattribute10_type;
4862     l_kattribute11_tab2 l_kattribute11_type;
4863     l_kattribute12_tab2 l_kattribute12_type;
4864     l_kattribute13_tab2 l_kattribute13_type;
4865     l_kattribute14_tab2 l_kattribute14_type;
4866     l_kattribute15_tab2 l_kattribute15_type;
4867     l_kcatchup_frequency_code_tab2 l_kcatchup_frequency_code_type;
4868 
4869     l_k_rate_params_counter number := 1;
4870 
4871     /*CURSOR get_rebook_date_csr(p_id NUMBER) IS
4872     SELECT DATE_TRANSACTION_OCCURRED
4873     FROM   OKL_TRX_CONTRACTS
4874     WHERE  KHR_ID = p_id
4875     AND    TCN_TYPE = 'TRBK'
4876     and    TSU_CODE = 'ENTERED';
4877 
4878     l_rebook_date DATE; */
4879     l_prev_counter NUMBER;
4880 
4881     --Bug# 16425139: Changing the global variables to local variables
4882     l_created_by NUMBER := fnd_global.user_id;
4883     l_last_updated_by NUMBER := fnd_global.user_id;
4884     l_last_update_login NUMBER := fnd_global.login_id;
4885 
4886 CURSOR C30(p_id NUMBER) IS
4887 SELECT
4888        a.khr_id, a.parameter_type_code, a.effective_from_date,
4889        a.effective_to_date, a.interest_index_id, a.base_rate,
4890        a.interest_start_date, a.adder_rate, a.maximum_rate,
4891        a.minimum_rate, a.principal_basis_code, a.days_in_a_month_code,
4892        a.days_in_a_year_code, a.interest_basis_code, a.rate_delay_code,
4893        a.rate_delay_frequency, a.compounding_frequency_code, a.calculation_formula_id,
4894        a.catchup_basis_code, a.catchup_start_date, a.catchup_settlement_code,
4895        a.rate_change_start_date, a.rate_change_frequency_code, a.rate_change_value,
4896        a.conversion_option_code, a.next_conversion_date, a.conversion_type_code,
4897        a.attribute_category, a.attribute1, a.attribute2,
4898        a.attribute3, a.attribute4, a.attribute5,
4899        a.attribute6, a.attribute7, a.attribute8,
4900        a.attribute9, a.attribute10, a.attribute11,
4901        a.attribute12, a.attribute13, a.attribute14,
4902        a.attribute15, a.catchup_frequency_code
4903 FROM   OKL_K_RATE_PARAMS a
4904 WHERE  a.khr_id = p_id;
4905 -- Bug 4730726
4906 /*AND    (
4907          (a.effective_to_date is NULL AND p_trans_type not in ('CRB', 'CRL'))
4908          OR
4909          ((a.effective_to_date is NULL OR a.effective_to_date IS NOT NULL) AND
4910            p_trans_type in ('CRB', 'CRL'))
4911        ); */
4912 BEGIN
4913   IF (G_DEBUG_ENABLED = 'Y') THEN
4914     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
4915   END IF;
4916   /*
4917   l_rebook_date := NULL;
4918   IF (p_trans_type = 'CRB') THEN
4919     FOR r IN get_rebook_date_csr(p_old_id)
4920     LOOP
4921       l_rebook_date := r.date_transaction_occurred;
4922     END LOOP;
4923     print('In copy_var_int_rate_params: l_rebook_date=' || l_rebook_date);
4924     IF (l_rebook_date is NULL) THEN
4925       RAISE OKL_API.G_EXCEPTION_ERROR;
4926     END IF;
4927   END IF;
4928   */
4929   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4930       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'p_rbk_date=' || p_rbk_date);
4931   END IF;
4932 
4933   OPEN C30(p_old_id);
4934   LOOP
4935     FETCH C30 BULK COLLECT INTO
4936      l_kkhr_id_tab2, l_kparameter_type_code_tab2, l_keffective_from_date_tab2,
4937      l_keffective_to_date_tab2, l_kinterest_index_id_tab2, l_kbase_rate_tab2,
4938      l_kinterest_start_date_tab2, l_kadder_rate_tab2, l_kmaximum_rate_tab2,
4939      l_kminimum_rate_tab2, l_kprincipal_basis_code_tab2, l_kdays_in_a_month_code_tab2,
4940      l_kdays_in_a_year_code_tab2, l_kinterest_basis_code_tab2, l_krate_delay_code_tab2,
4941      l_krate_delay_frequency_tab2, l_kcompounding_frequ_code_tab2, l_kcalculation_formula_id_tab2,
4942      l_kcatchup_basis_code_tab2, l_kcatchup_start_date_tab2, l_kcatchup_settlemen_code_tab2,
4943      l_krate_change_start_date_tab2, l_krate_change_frequ_code_tab2, l_krate_change_value_tab2,
4944      l_kconversion_option_code_tab2, l_knext_conversion_date_tab2, l_kconversion_type_code_tab2,
4945      l_kattribute_category_tab2, l_kattribute1_tab2, l_kattribute2_tab2,
4946      l_kattribute3_tab2, l_kattribute4_tab2, l_kattribute5_tab2,
4947      l_kattribute6_tab2, l_kattribute7_tab2, l_kattribute8_tab2,
4948      l_kattribute9_tab2, l_kattribute10_tab2, l_kattribute11_tab2,
4949      l_kattribute12_tab2, l_kattribute13_tab2, l_kattribute14_tab2,
4950      l_kattribute15_tab2, l_kcatchup_frequency_code_tab2
4951     LIMIT G_BULK_SIZE;
4952     EXIT WHEN l_kkhr_id_tab2.COUNT = 0;
4953 
4954     FOR i IN l_kkhr_id_tab2.FIRST..l_kkhr_id_tab2.LAST
4955     LOOP
4956       l_kkhr_id_tab(l_k_rate_params_counter) := l_kkhr_id_tab2(i);
4957       l_kkhr_id_tab(l_k_rate_params_counter) := p_new_id;
4958 
4959       l_kparameter_type_code_tab(l_k_rate_params_counter) := l_kparameter_type_code_tab2(i);
4960       l_keffective_from_date_tab(l_k_rate_params_counter) := l_keffective_from_date_tab2(i);
4961       l_keffective_to_date_tab(l_k_rate_params_counter) := l_keffective_to_date_tab2(i);
4962       l_kinterest_index_id_tab(l_k_rate_params_counter) := l_kinterest_index_id_tab2(i);
4963       l_kbase_rate_tab(l_k_rate_params_counter) := l_kbase_rate_tab2(i);
4964       l_kinterest_start_date_tab(l_k_rate_params_counter) := l_kinterest_start_date_tab2(i);
4965       /*Commented for bug 12981340
4966       IF ( l_kinterest_start_date_tab(l_k_rate_params_counter) IS NOT NULL) THEN
4967         l_kinterest_start_date_tab(l_k_rate_params_counter) := p_start_date;
4968       END IF;*/
4969 
4970 
4971       l_kadder_rate_tab(l_k_rate_params_counter) := l_kadder_rate_tab2(i);
4972       l_kmaximum_rate_tab(l_k_rate_params_counter) := l_kmaximum_rate_tab2(i);
4973       l_kminimum_rate_tab(l_k_rate_params_counter) := l_kminimum_rate_tab2(i);
4974       l_kprincipal_basis_code_tab(l_k_rate_params_counter) := l_kprincipal_basis_code_tab2(i);
4975       l_kdays_in_a_month_code_tab(l_k_rate_params_counter) := l_kdays_in_a_month_code_tab2(i);
4976       l_kdays_in_a_year_code_tab(l_k_rate_params_counter) := l_kdays_in_a_year_code_tab2(i);
4977       l_kinterest_basis_code_tab(l_k_rate_params_counter) := l_kinterest_basis_code_tab2(i);
4978       l_krate_delay_code_tab(l_k_rate_params_counter) := l_krate_delay_code_tab2(i);
4979       l_krate_delay_frequency_tab(l_k_rate_params_counter) := l_krate_delay_frequency_tab2(i);
4980       l_kcompounding_frequ_code_tab(l_k_rate_params_counter) := l_kcompounding_frequ_code_tab2(i);
4981       l_kcalculation_formula_id_tab(l_k_rate_params_counter) := l_kcalculation_formula_id_tab2(i);
4982       l_kcatchup_basis_code_tab(l_k_rate_params_counter) := l_kcatchup_basis_code_tab2(i);
4983       l_kcatchup_start_date_tab(l_k_rate_params_counter) := l_kcatchup_start_date_tab2(i);
4984       /*Commented for bug 12981340
4985       IF (l_kcatchup_start_date_tab(l_k_rate_params_counter) IS NOT NULL) THEN
4986         l_kcatchup_start_date_tab(l_k_rate_params_counter) := p_start_date;
4987       END IF;*/
4988 
4989       l_kcatchup_settlemen_code_tab(l_k_rate_params_counter) := l_kcatchup_settlemen_code_tab2(i);
4990       l_krate_change_start_date_tab(l_k_rate_params_counter) := l_krate_change_start_date_tab2(i);
4991       /*Commented for bug 12981340
4992       IF (l_krate_change_start_date_tab(l_k_rate_params_counter) IS NOT NULL) THEN
4993         l_krate_change_start_date_tab(l_k_rate_params_counter) := p_start_date;
4994       END IF;*/
4995 
4996 
4997       l_krate_change_frequ_code_tab(l_k_rate_params_counter) := l_krate_change_frequ_code_tab2(i);
4998       l_krate_change_value_tab(l_k_rate_params_counter) := l_krate_change_value_tab2(i);
4999       l_kconversion_option_code_tab(l_k_rate_params_counter) := l_kconversion_option_code_tab2(i);
5000       l_knext_conversion_date_tab(l_k_rate_params_counter) := l_knext_conversion_date_tab2(i);
5001       l_kconversion_type_code_tab(l_k_rate_params_counter) := l_kconversion_type_code_tab2(i);
5002       l_kattribute_category_tab(l_k_rate_params_counter) := l_kattribute_category_tab2(i);
5003       l_kattribute1_tab(l_k_rate_params_counter) := l_kattribute1_tab2(i);
5004       l_kattribute2_tab(l_k_rate_params_counter) := l_kattribute2_tab2(i);
5005       l_kattribute3_tab(l_k_rate_params_counter) := l_kattribute3_tab2(i);
5006       l_kattribute4_tab(l_k_rate_params_counter) := l_kattribute4_tab2(i);
5007       l_kattribute5_tab(l_k_rate_params_counter) := l_kattribute5_tab2(i);
5008       l_kattribute6_tab(l_k_rate_params_counter) := l_kattribute6_tab2(i);
5009       l_kattribute7_tab(l_k_rate_params_counter) := l_kattribute7_tab2(i);
5010       l_kattribute8_tab(l_k_rate_params_counter) := l_kattribute8_tab2(i);
5011       l_kattribute9_tab(l_k_rate_params_counter) := l_kattribute9_tab2(i);
5012       l_kattribute10_tab(l_k_rate_params_counter) := l_kattribute10_tab2(i);
5013       l_kattribute11_tab(l_k_rate_params_counter) := l_kattribute11_tab2(i);
5014       l_kattribute12_tab(l_k_rate_params_counter) := l_kattribute12_tab2(i);
5015       l_kattribute13_tab(l_k_rate_params_counter) := l_kattribute13_tab2(i);
5016       l_kattribute14_tab(l_k_rate_params_counter) := l_kattribute14_tab2(i);
5017       l_kattribute15_tab(l_k_rate_params_counter) := l_kattribute15_tab2(i);
5018       l_kcatchup_frequency_code_tab(l_k_rate_params_counter) := l_kcatchup_frequency_code_tab2(i);
5019 
5020       l_k_rate_params_counter := l_k_rate_params_counter + 1;
5021 
5022       -- No special processing for rebook copy (Bug 4730726)
5023       /*IF (p_trans_type = 'CRB') THEN
5024         l_prev_counter := l_k_rate_params_counter - 1;
5025         IF (l_kparameter_type_code_tab(l_prev_counter) = 'ACTUAL' AND
5026             l_keffective_to_date_tab(l_prev_counter) IS NULL) THEN
5027           l_keffective_to_date_tab(l_prev_counter) := p_rbk_date - 1;
5028 
5029           -- Make a copy of the current set for rebook copy
5030           l_kkhr_id_tab(l_k_rate_params_counter) := p_new_id;
5031 
5032           l_kparameter_type_code_tab(l_k_rate_params_counter) := l_kparameter_type_code_tab(l_prev_counter);
5033 
5034           l_keffective_from_date_tab(l_k_rate_params_counter) := p_rbk_date;
5035           l_keffective_to_date_tab(l_k_rate_params_counter) := NULL;
5036 
5037           l_kinterest_index_id_tab(l_k_rate_params_counter) := l_kinterest_index_id_tab(l_prev_counter);
5038           l_kbase_rate_tab(l_k_rate_params_counter) := l_kbase_rate_tab(l_prev_counter);
5039           l_kinterest_start_date_tab(l_k_rate_params_counter) := l_kinterest_start_date_tab(l_prev_counter);
5040           IF ( l_kinterest_start_date_tab(l_k_rate_params_counter) IS NOT NULL) THEN
5041             l_kinterest_start_date_tab(l_k_rate_params_counter) := p_start_date;
5042           END IF;
5043 
5044           l_kadder_rate_tab(l_k_rate_params_counter) := l_kadder_rate_tab(l_prev_counter);
5045           l_kmaximum_rate_tab(l_k_rate_params_counter) := l_kmaximum_rate_tab(l_prev_counter);
5046           l_kminimum_rate_tab(l_k_rate_params_counter) := l_kminimum_rate_tab(l_prev_counter);
5047           l_kprincipal_basis_code_tab(l_k_rate_params_counter) := l_kprincipal_basis_code_tab(l_prev_counter);
5048           l_kdays_in_a_month_code_tab(l_k_rate_params_counter) := l_kdays_in_a_month_code_tab(l_prev_counter);
5049           l_kdays_in_a_year_code_tab(l_k_rate_params_counter) := l_kdays_in_a_year_code_tab(l_prev_counter);
5050           l_kinterest_basis_code_tab(l_k_rate_params_counter) := l_kinterest_basis_code_tab(l_prev_counter);
5051           l_krate_delay_code_tab(l_k_rate_params_counter) := l_krate_delay_code_tab(l_prev_counter);
5052           l_krate_delay_frequency_tab(l_k_rate_params_counter) := l_krate_delay_frequency_tab(l_prev_counter);
5053           l_kcompounding_frequ_code_tab(l_k_rate_params_counter) := l_kcompounding_frequ_code_tab(l_prev_counter);
5054           l_kcalculation_formula_id_tab(l_k_rate_params_counter) := l_kcalculation_formula_id_tab(l_prev_counter);
5055           l_kcatchup_basis_code_tab(l_k_rate_params_counter) := l_kcatchup_basis_code_tab(l_prev_counter);
5056           l_kcatchup_start_date_tab(l_k_rate_params_counter) := l_kcatchup_start_date_tab(l_prev_counter);
5057           IF (l_kcatchup_start_date_tab(l_k_rate_params_counter) IS NOT NULL) THEN
5058             l_kcatchup_start_date_tab(l_k_rate_params_counter) := p_start_date;
5059           END IF;
5060 
5061           l_kcatchup_settlemen_code_tab(l_k_rate_params_counter) := l_kcatchup_settlemen_code_tab(l_prev_counter);
5062           l_krate_change_start_date_tab(l_k_rate_params_counter) := l_krate_change_start_date_tab(l_prev_counter);
5063           IF (l_krate_change_start_date_tab(l_k_rate_params_counter) IS NOT NULL) THEN
5064             l_krate_change_start_date_tab(l_k_rate_params_counter) := p_start_date;
5065           END IF;
5066 
5067           l_krate_change_frequ_code_tab(l_k_rate_params_counter) := l_krate_change_frequ_code_tab(l_prev_counter);
5068           l_krate_change_value_tab(l_k_rate_params_counter) := l_krate_change_value_tab(l_prev_counter);
5069           l_kconversion_option_code_tab(l_k_rate_params_counter) := l_kconversion_option_code_tab(l_prev_counter);
5070           l_knext_conversion_date_tab(l_k_rate_params_counter) := l_knext_conversion_date_tab(l_prev_counter);
5071           l_kconversion_type_code_tab(l_k_rate_params_counter) := l_kconversion_type_code_tab(l_prev_counter);
5072           l_kattribute_category_tab(l_k_rate_params_counter) := l_kattribute_category_tab(l_prev_counter);
5073           l_kattribute1_tab(l_k_rate_params_counter) := l_kattribute1_tab(l_prev_counter);
5074           l_kattribute2_tab(l_k_rate_params_counter) := l_kattribute2_tab(l_prev_counter);
5075           l_kattribute3_tab(l_k_rate_params_counter) := l_kattribute3_tab(l_prev_counter);
5076           l_kattribute4_tab(l_k_rate_params_counter) := l_kattribute4_tab(l_prev_counter);
5077           l_kattribute5_tab(l_k_rate_params_counter) := l_kattribute5_tab(l_prev_counter);
5078           l_kattribute6_tab(l_k_rate_params_counter) := l_kattribute6_tab(l_prev_counter);
5079           l_kattribute7_tab(l_k_rate_params_counter) := l_kattribute7_tab(l_prev_counter);
5080           l_kattribute8_tab(l_k_rate_params_counter) := l_kattribute8_tab(l_prev_counter);
5081           l_kattribute9_tab(l_k_rate_params_counter) := l_kattribute9_tab(l_prev_counter);
5082           l_kattribute10_tab(l_k_rate_params_counter) := l_kattribute10_tab(l_prev_counter);
5083           l_kattribute11_tab(l_k_rate_params_counter) := l_kattribute11_tab(l_prev_counter);
5084           l_kattribute12_tab(l_k_rate_params_counter) := l_kattribute12_tab(l_prev_counter);
5085           l_kattribute13_tab(l_k_rate_params_counter) := l_kattribute13_tab(l_prev_counter);
5086           l_kattribute14_tab(l_k_rate_params_counter) := l_kattribute14_tab(l_prev_counter);
5087           l_kattribute15_tab(l_k_rate_params_counter) := l_kattribute15_tab(l_prev_counter);
5088           l_kcatchup_frequency_code_tab(l_k_rate_params_counter) := l_kcatchup_frequency_code_tab(l_prev_counter);
5089 
5090           l_k_rate_params_counter := l_k_rate_params_counter + 1;
5091         END IF;
5092       END IF;*/ -- if rebook copy
5093 
5094     END LOOP;
5095   END LOOP;
5096   CLOSE C30;
5097 
5098   IF l_k_rate_params_counter > 1 THEN
5099     FORALL i IN l_kkhr_id_tab.FIRST..l_kkhr_id_tab.LAST
5100       INSERT INTO okl_k_rate_params (
5101        khr_id, parameter_type_code, effective_from_date,
5102        effective_to_date, interest_index_id, base_rate,
5103        interest_start_date, adder_rate, maximum_rate,
5104        minimum_rate, principal_basis_code, days_in_a_month_code,
5105        days_in_a_year_code, interest_basis_code, rate_delay_code,
5106        rate_delay_frequency,compounding_frequency_code, calculation_formula_id,
5107        catchup_basis_code, catchup_start_date, catchup_settlement_code,
5108        rate_change_start_date, rate_change_frequency_code, rate_change_value,
5109        conversion_option_code, next_conversion_date, conversion_type_code,
5110        attribute_category, attribute1, attribute2,
5111        attribute3, attribute4, attribute5,
5112        attribute6, attribute7, attribute8,
5113        attribute9, attribute10, attribute11,
5114        attribute12, attribute13, attribute14,
5115        attribute15, created_by, creation_date,
5116        last_updated_by, last_update_date, last_update_login,
5117        catchup_frequency_code
5118       ) VALUES (
5119        l_kkhr_id_tab(i), l_kparameter_type_code_tab(i), l_keffective_from_date_tab(i),
5120        l_keffective_to_date_tab(i), l_kinterest_index_id_tab(i), l_kbase_rate_tab(i),
5121        l_kinterest_start_date_tab(i), l_kadder_rate_tab(i), l_kmaximum_rate_tab(i),
5122        l_kminimum_rate_tab(i), l_kprincipal_basis_code_tab(i), l_kdays_in_a_month_code_tab(i),
5123        l_kdays_in_a_year_code_tab(i), l_kinterest_basis_code_tab(i), l_krate_delay_code_tab(i),
5124        l_krate_delay_frequency_tab(i), l_kcompounding_frequ_code_tab(i), l_kcalculation_formula_id_tab(i),
5125        l_kcatchup_basis_code_tab(i), l_kcatchup_start_date_tab(i), l_kcatchup_settlemen_code_tab(i),
5126        l_krate_change_start_date_tab(i), l_krate_change_frequ_code_tab(i), l_krate_change_value_tab(i),
5127        l_kconversion_option_code_tab(i), l_knext_conversion_date_tab(i), l_kconversion_type_code_tab(i),
5128        l_kattribute_category_tab(i),l_kattribute1_tab(i), l_kattribute2_tab(i),
5129        l_kattribute3_tab(i), l_kattribute4_tab(i), l_kattribute5_tab(i),
5130        l_kattribute6_tab(i), l_kattribute7_tab(i), l_kattribute8_tab(i),
5131        l_kattribute9_tab(i), l_kattribute10_tab(i), l_kattribute11_tab(i),
5132        l_kattribute12_tab(i), l_kattribute13_tab(i), l_kattribute14_tab(i),
5133        l_kattribute15_tab(i), l_created_by, SYSDATE,
5134        l_last_updated_by, SYSDATE, l_last_update_login,
5135        l_kcatchup_frequency_code_tab(i)
5136       );
5137   END IF;
5138 
5139 EXCEPTION WHEN OTHERS THEN
5140 
5141   --x_return_status := OKL_API.G_RET_STS_ERROR;
5142     /* DEBUG */
5143   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
5144       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
5145     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing copy_var_int_rate_params:l_kkhr_id_tab.count=' || l_kkhr_id_tab.COUNT || ' ...');
5146   END IF;
5147   IF (l_kkhr_id_tab.COUNT > 0) THEN
5148   FOR i IN l_kkhr_id_tab.first..l_kkhr_id_tab.last
5149   LOOP
5150     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
5151           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'KHR_ID('||i||')=' || l_kKHR_ID_tab(i));
5152       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'PARAMETER_TYPE_CODE('||i||')=' || l_kPARAMETER_TYPE_CODE_tab(i));
5153       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'EFFECTIVE_FROM_DATE('||i||')=' || l_kEFFECTIVE_FROM_DATE_tab(i));
5154       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'EFFECTIVE_TO_DATE('||i||')=' || l_kEFFECTIVE_TO_DATE_tab(i));
5155       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'INTEREST_INDEX_ID('||i||')=' || l_kINTEREST_INDEX_ID_tab(i));
5156       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'BASE_RATE('||i||')=' || l_kBASE_RATE_tab(i));
5157       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'INTEREST_START_DATE('||i||')=' || l_kINTEREST_START_DATE_tab(i));
5158       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ADDER_RATE('||i||')=' || l_kADDER_RATE_tab(i));
5159       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'MAXIMUM_RATE('||i||')=' || l_kMAXIMUM_RATE_tab(i));
5160       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'MINIMUM_RATE('||i||')=' || l_kMINIMUM_RATE_tab(i));
5161       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'PRINCIPAL_BASIS_CODE('||i||')=' || l_kPRINCIPAL_BASIS_CODE_tab(i));
5162       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'DAYS_IN_A_MONTH_CODE('||i||')=' || l_kDAYS_IN_A_MONTH_CODE_tab(i));
5163       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'DAYS_IN_A_YEAR_CODE('||i||')=' || l_kDAYS_IN_A_YEAR_CODE_tab(i));
5164       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'INTEREST_BASIS_CODE('||i||')=' || l_kINTEREST_BASIS_CODE_tab(i));
5165       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'RATE_DELAY_CODE('||i||')=' || l_kRATE_DELAY_CODE_tab(i));
5166       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'RATE_DELAY_FREQUENCY('||i||')=' || l_kRATE_DELAY_FREQUENCY_tab(i));
5167       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'COMPOUNDING_FREQUENCY_CODE('||i||')=' || l_kCOMPOUNDING_FREQU_CODE_tab(i));
5168       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'CALCULATION_FORMULA_ID('||i||')=' || l_kCALCULATION_FORMULA_ID_tab(i));
5169       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'CATCHUP_BASIS_CODE('||i||')=' || l_kCATCHUP_BASIS_CODE_tab(i));
5170       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'CATCHUP_START_DATE('||i||')=' || l_kCATCHUP_START_DATE_tab(i));
5171       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'CATCHUP_SETTLEMENT_CODE('||i||')=' || l_kCATCHUP_SETTLEMEN_CODE_tab(i));
5172       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'RATE_CHANGE_START_DATE('||i||')=' || l_kRATE_CHANGE_START_DATE_tab(i));
5173       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'RATE_CHANGE_FREQUENCY_CODE('||i||')=' || l_kRATE_CHANGE_FREQU_CODE_tab(i));
5174       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'RATE_CHANGE_VALUE('||i||')=' || l_kRATE_CHANGE_VALUE_tab(i));
5175       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'CONVERSION_OPTION_CODE('||i||')=' || l_kCONVERSION_OPTION_CODE_tab(i));
5176       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'NEXT_CONVERSION_DATE('||i||')=' || l_kNEXT_CONVERSION_DATE_tab(i));
5177       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'CONVERSION_TYPE_CODE('||i||')=' || l_kCONVERSION_TYPE_CODE_tab(i));
5178       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE_CATEGORY('||i||')=' || l_kATTRIBUTE_CATEGORY_tab(i));
5179       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE1('||i||')=' || l_kATTRIBUTE1_tab(i));
5180       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE2('||i||')=' || l_kATTRIBUTE2_tab(i));
5181       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE3('||i||')=' || l_kATTRIBUTE3_tab(i));
5182       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE4('||i||')=' || l_kATTRIBUTE4_tab(i));
5183       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE5('||i||')=' || l_kATTRIBUTE5_tab(i));
5184       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE6('||i||')=' || l_kATTRIBUTE6_tab(i));
5185       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE7('||i||')=' || l_kATTRIBUTE7_tab(i));
5186       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE8('||i||')=' || l_kATTRIBUTE8_tab(i));
5187       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE9('||i||')=' || l_kATTRIBUTE9_tab(i));
5188       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE10('||i||')=' || l_kATTRIBUTE10_tab(i));
5189       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE11('||i||')=' || l_kATTRIBUTE11_tab(i));
5190       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE12('||i||')=' || l_kATTRIBUTE12_tab(i));
5191       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE13('||i||')=' || l_kATTRIBUTE13_tab(i));
5192       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE14('||i||')=' || l_kATTRIBUTE14_tab(i));
5193       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE15('||i||')=' || l_kATTRIBUTE15_tab(i));
5194       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'CATCHUP_FREQUENCY_CODE('||i||')=' || l_kCATCHUP_FREQUENCY_CODE_tab(i));
5195     END IF;
5196   END LOOP;
5197   END IF;
5198 
5199   RAISE OKC_API.G_EXCEPTION_ERROR;
5200 END copy_var_int_rate_params;
5201 
5202 --------------------------------------------------------------------------------
5203 -- Start of comments
5204 --
5205 -- Procedure Name  : copy_lease_contract_new
5206 -- Description     : Copies the contract and all the lines attached to the contract
5207 -- Business Rules  :
5208 -- Parameters      :
5209 -- Version         : 1.0
5210 -- Notes           :
5211 -- End of comments
5212 --------------------------------------------------------------------------------
5213 PROCEDURE copy_lease_contract_new(
5214             p_api_version              IN  NUMBER,
5215             p_init_msg_list            IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
5216             x_return_status            OUT NOCOPY VARCHAR2,
5217             x_msg_count                OUT NOCOPY NUMBER,
5218             x_msg_data                 OUT NOCOPY VARCHAR2,
5219             p_commit                   IN  VARCHAR2 DEFAULT 'F',
5220             p_chr_id                   IN  NUMBER,
5221             p_contract_number	       IN  VARCHAR2,
5222             p_contract_number_modifier IN  VARCHAR2,
5223             p_to_template_yn	       IN  VARCHAR2 DEFAULT 'N',
5224             p_renew_ref_yn             IN  VARCHAR2,
5225             p_copy_lines_yn            IN VARCHAR2,
5226             p_override_org	       IN  VARCHAR2 DEFAULT 'N',
5227             p_trans_type               IN  VARCHAR2,
5228             x_chr_id                   OUT NOCOPY NUMBER,
5229             p_rbk_date                 IN  DATE DEFAULT NULL) IS
5230 
5231 l_api_name CONSTANT VARCHAR2(30) := 'COPY_LEASE_CONTRACT_NEW';
5232 G_APP_NAME CONSTANT VARCHAR2(200) := 'OKL_COPY_CONTRACT';
5233 G_PKG_NAME CONSTANT VARCHAR2(200) := 'OKL_COPY_CONTRACT_PVT';
5234     G_UNEXPECTED_ERROR            CONSTANT  VARCHAR2(200) := 'OKL_CONTRACTS_UNEXP_ERROR';
5235     G_SQLCODE_TOKEN               CONSTANT  VARCHAR2(200) := 'SQLcode';
5236     G_SQLERRM_TOKEN               CONSTANT  VARCHAR2(200) := 'SQLerrm';
5237     --G_WF_ITM_CONTRACT_ID CONSTANT VARCHAR2(11) := 'CONTRACT_ID';
5238    G_WF_EVT_KHR_CREATED CONSTANT VARCHAR2(41) := 'oracle.apps.okl.la.lease_contract.created';
5239 
5240 G_WF_EVT_SERV_FEXP_UPDATED     CONSTANT VARCHAR2(70):= 'oracle.apps.okl.la.lease_contract.service_fee_expense_updated';
5241 G_WF_EVT_FEE_EXP_UPDATED       CONSTANT VARCHAR2(70):= 'oracle.apps.okl.la.lease_contract.fee_expense_updated';
5242 G_WF_EVT_FEE_PASS_UPDATED      CONSTANT VARCHAR2(70):= 'oracle.apps.okl.la.lease_contract.fee_passthrough_updated';
5243 G_WF_ITM_FEE_LINE_ID  CONSTANT VARCHAR2(30)       := 'FEE_LINE_ID';
5244 G_WF_ITM_SERV_CHR_ID  CONSTANT VARCHAR2(30)       := 'SERVICE_CONTRACT_ID';
5245 G_WF_ITM_SERV_CLE_ID  CONSTANT VARCHAR2(30)       := 'SERVICE_CONTRACT_LINE_ID';
5246 
5247 G_WF_EVT_SERV_PASS_UPDATED     CONSTANT VARCHAR2(70):= 'oracle.apps.okl.la.lease_contract.service_fee_passthrough_updated';
5248 G_WF_EVT_ASSET_PROPTAX_UPDATED CONSTANT VARCHAR2(70):= 'oracle.apps.okl.la.lease_contract.asset_property_tax_updated';
5249 G_WF_EVT_ASSET_FILING_UPDATED  CONSTANT VARCHAR2(70):= 'oracle.apps.okl.la.lease_contract.asset_filing_updated';
5250 G_WF_EVT_CONTRACT_TERM_UPDATED CONSTANT VARCHAR2(70):= 'oracle.apps.okl.la.lease_contract.asset_filing_terms_updated';
5251 G_WF_ITM_TERMS_ID CONSTANT VARCHAR2(30)           := 'TERMS_ID';
5252 
5253 G_WF_EVT_ASSET_SUP_INV_CRTD CONSTANT VARCHAR2(65)   := 'oracle.apps.okl.la.lease_contract.asset_supplier_invoice_created';
5254 G_WF_EVT_ASSETTAX_DPRN_CRTD CONSTANT VARCHAR2(65) := 'oracle.apps.okl.la.lease_contract.asset_tax_depreciation_created';
5255 G_WF_EVT_ASSETBOOK_DPRN_CRTD CONSTANT VARCHAR2(65)   := 'oracle.apps.okl.la.lease_contract.asset_book_depreciation_created';
5256 G_WF_EVT_CR_LMT_CREATED CONSTANT VARCHAR2(50) := 'oracle.apps.okl.la.credit_limit.created';
5257 --G_WF_EVT_CR_LMT_UPDATED CONSTANT VARCHAR2(50) := 'oracle.apps.okl.la.credit_limit.updated';
5258 --G_WF_EVT_CR_LMT_REMOVED CONSTANT VARCHAR2(50) := 'oracle.apps.okl.la.credit_limit.remove';
5259 G_WF_EVT_ASSET_CREATED CONSTANT VARCHAR2(50) := 'oracle.apps.okl.la.lease_contract.asset_created';
5260 --G_WF_EVT_ASSET_UPDATED CONSTANT VARCHAR2(50) := 'oracle.apps.okl.la.lease_contract.asset_updated';
5261 --G_WF_EVT_ASSET_REMOVED CONSTANT VARCHAR2(50) := 'oracle.apps.okl.la.lease_contract.remove_asset';
5262 G_WF_EVT_SERVICE_CREATED CONSTANT VARCHAR2(60) := 'oracle.apps.okl.la.lease_contract.service_fee_created';
5263 --G_WF_EVT_SERVICE_UPDATED CONSTANT VARCHAR2(60) := 'oracle.apps.okl.la.lease_contract.service_fee_updated';
5264 G_WF_EVT_ASSET_SUBSIDY_CRTD CONSTANT VARCHAR2(65)   := 'oracle.apps.okl.la.lease_contract.asset_subsidy_created';
5265 
5266 G_WF_EVT_ASSET_SERIAL_CRTD CONSTANT VARCHAR2(65) := 'oracle.apps.okl.la.lease_contract.asset_serial_numbers_created';
5267 G_WF_ITM_SERIAL_NUM CONSTANT VARCHAR2(30)         := 'SERIAL_NUMBER';
5268 G_WF_ITM_CR_LINE_ID CONSTANT VARCHAR2(30) := 'CREDIT_LINE_ID';
5269 G_WF_ITM_CR_LMT_ID CONSTANT VARCHAR2(30) := 'CREDIT_LIMIT_ID';
5270 G_WF_ITM_CONTRACT_ID CONSTANT VARCHAR2(30) := 'CONTRACT_ID';
5271 G_WF_ITM_ASSET_ID CONSTANT VARCHAR2(30) := 'ASSET_ID';
5272 G_WF_ITM_CONTRACT_PROCESS CONSTANT VARCHAR2(20) := 'CONTRACT_PROCESS';
5273 G_WF_ITM_SRV_LINE_ID CONSTANT VARCHAR2(30) := 'SERVICE_LINE_ID';
5274 G_WF_ITM_SERVICE_KHR_ID CONSTANT VARCHAR2(30) := 'SERVICE_CONTRACT_ID';
5275 G_WF_ITM_SERVICE_CLE_ID CONSTANT VARCHAR2(30) := 'SERVICE_CONTRACT_LINE_ID';
5276 G_WF_ITM_SUBSIDY_ID CONSTANT VARCHAR2(30)           := 'SUBSIDY_ID';
5277 G_WF_ITM_SERV_LINE_ID CONSTANT VARCHAR2(30) := 'SERVICE_LINE_ID';
5278 
5279 G_WF_ITM_PARTY_ID CONSTANT VARCHAR2(15)    := 'PARTY_ID';
5280 G_WF_ITM_PARTY_ROLE_ID CONSTANT VARCHAR2(15)    := 'PARTY_ROLE_ID';
5281 
5282 G_WF_EVT_KHR_PARTY_CREATED CONSTANT VARCHAR2(50) := 'oracle.apps.okl.la.lease_contract.party_created';
5283 G_WF_EVT_ASSET_FEE_CREATED CONSTANT VARCHAR2(60) := 'oracle.apps.okl.la.lease_contract.asset_fee_created';
5284 G_WF_EVT_ASSET_SERV_FEE_CRTD CONSTANT VARCHAR2(65) := 'oracle.apps.okl.la.lease_contract.asset_service_fee_created';
5285 
5286 G_WF_EVT_FEE_CREATED CONSTANT VARCHAR2(50) := 'oracle.apps.okl.la.lease_contract.fee_created';
5287 --G_WF_EVT_FEE_UPDATED CONSTANT VARCHAR2(50) := 'oracle.apps.okl.la.lease_contract.fee_updated';
5288 --G_WF_ITM_FEE_LINE_ID CONSTANT VARCHAR2(30) := 'FEE_LINE_ID';
5289 
5290    --G_WF_ITM_CONTRACT_ID CONSTANT VARCHAR2(30)        := 'CONTRACT_ID';
5291    --G_WF_ITM_ASSET_ID CONSTANT VARCHAR2(30)           := 'ASSET_ID';
5292    G_WF_ITM_BOOK_CODE CONSTANT VARCHAR2(30)          := 'BOOK_CODE';
5293    --G_WF_ITM_CONTRACT_PROCESS CONSTANT VARCHAR2(30)   := 'CONTRACT_PROCESS';
5294 
5295 l_inventory_org_id NUMBER;
5296 l_curr_pos VARCHAR2(80);
5297 l_message VARCHAR2(30) ;
5298 l_new_mapping_id NUMBER;
5299 l_hstv_rec okc_k_history_pvt.hstv_rec_type;
5300 x_hstv_rec okc_k_history_pvt.hstv_rec_type;
5301 l_serv_contract_id okc_k_headers_b.id%TYPE;
5302 l_service_top_line_id okc_k_lines_b.id%TYPE;
5303 l_deal_type okl_k_headers.deal_type%TYPE;
5304 l_queried BOOLEAN := FALSE;
5305 l_line_style okc_k_lines_b.lse_id%TYPE;
5306 l_terms_id NUMBER;
5307 l_vendor_id VARCHAR2(40);
5308 l_tal_kle_cle_id NUMBER;
5309 l_new_object1_id1 VARCHAR2(40);
5310 l_contract_process    VARCHAR2(30);
5311     l_parameter_list        wf_parameter_list_t;
5312     l_event_name            wf_events.name%TYPE := NULL;
5313     l_raise_business_event  VARCHAR2(1) := OKL_API.G_FALSE;
5314     l_business_event_name  wf_events.name%TYPE := NULL;
5315 
5316 l_contract_number okc_k_headers_b.contract_number%TYPE;
5317 l_copied_id NUMBER;
5318 l_gov_id NUMBER;
5319 l_capital_amount NUMBER;
5320 l_contract_currency okc_k_headers_b.currency_code%TYPE;
5321 l_contract_start_date okc_k_headers_b.start_date%TYPE;
5322 l_conversion_type okc_k_headers_b.CONVERSION_TYPE%TYPE;
5323 l_conversion_rate okc_k_headers_b.CONVERSION_RATE%TYPE;
5324 l_conversion_rate_date okc_k_headers_b.CONVERSION_RATE_DATE%TYPE;
5325 l_template_yn okc_k_headers_b.TEMPLATE_YN%TYPE;
5326 l_trx_assets_counter4 NUMBER := 1;
5327 l_tal_to_kle_counter NUMBER := 1;
5328 l_trx_assets_counter6 NUMBER := 1;
5329 l_okl_k_lines_counter NUMBER := 1;
5330 l_try_id NUMBER;
5331 CURSOR c1(p_chr_id NUMBER) IS
5332   SELECT * FROM okc_k_headers_b
5333   WHERE id=p_chr_id;
5334 
5335 CURSOR c2(p_chr_id NUMBER) IS
5336   SELECT * FROM okc_governances
5337   WHERE  dnz_chr_id = p_chr_id;
5338 
5339 -- okc_governances_h is not needed
5340 /*
5341 cursor c3(p_chr_id number) is
5342   select * from okc_governances_h
5343   where  dnz_chr_id = p_chr_id; */
5344 
5345 CURSOR c4(p_chr_id NUMBER) IS
5346   SELECT
5347        a.id, a.line_number, a.chr_id,
5348        a.cle_id, a.cle_id_renewed, a.dnz_chr_id,
5349        a.display_sequence, a.sts_code, a.trn_code,
5350        a.lse_id, a.exception_yn, a.object_version_number,
5351        a.created_by, a.creation_date, a.last_updated_by,
5352        a.last_update_date, a.hidden_ind, a.price_negotiated,
5353        a.price_level_ind, a.price_unit, a.price_unit_percent,
5354        a.invoice_line_level_ind, a.dpas_rating, a.template_used,
5355        a.price_type, a.currency_code, a.last_update_login,
5356        a.date_terminated, a.start_date, a.end_date,
5357        a.attribute_category, a.attribute1, a.attribute2,
5358        a.attribute3, a.attribute4, a.attribute5,
5359        a.attribute6, a.attribute7, a.attribute8,
5360        a.attribute9, a.attribute10, a.attribute11,
5361        a.attribute12, a.attribute13, a.attribute14,
5362        a.attribute15, a.security_group_id, a.cle_id_renewed_to,
5363        a.price_negotiated_renewed, a.currency_code_renewed, a.upg_orig_system_ref,
5364        a.upg_orig_system_ref_id, a.date_renewed, a.orig_system_source_code,
5365        a.orig_system_id1, a.orig_system_reference1, a.program_application_id,
5366        a.program_id, a.program_update_date, a.request_id,
5367        a.price_list_id, a.price_list_line_id, a.line_list_price,
5368        a.item_to_price_yn, a.pricing_date, a.price_basis_yn,
5369        a.config_header_id, a.config_revision_number, a.config_complete_yn,
5370        a.config_valid_yn, a.config_top_model_line_id, a.config_item_type,
5371        a.config_item_id, a.service_item_yn, a.ph_pricing_type,
5372        a.ph_price_break_basis, a.ph_min_qty, a.ph_min_amt,
5373        a.ph_qp_reference_id, a.ph_value, a.ph_enforce_price_list_yn,
5374        a.ph_adjustment, a.ph_integrated_with_qp, a.cust_acct_id,
5375        a.bill_to_site_use_id, a.inv_rule_id, a.line_renewal_type_code,
5376        a.ship_to_site_use_id, a.payment_term_id, b.fee_type,
5377        c.name
5378   FROM okc_k_lines_b a,
5379        okl_k_lines b,
5380        okc_k_lines_tl c
5381   WHERE  a.dnz_chr_id = p_chr_id
5382   AND    a.id = b.id
5383   AND    a.id = c.id
5384   AND    c.LANGUAGE = USERENV('LANG');
5385 
5386 CURSOR c29(p_id NUMBER) IS
5387     SELECT rlobj.cle_id, rlobj.object1_id1
5388       FROM okc_k_rel_objs_v rlobj
5389      WHERE rlobj.chr_id = p_id
5390        --AND rlobj.cle_id = p_line_id
5391        AND rlobj.rty_code = 'OKLSRV'
5392        AND rlobj.jtot_object1_code = 'OKL_SERVICE_LINE';
5393 
5394 -- Bug 4738057
5395 CURSOR contract_exists_csr(p_contract_number IN VARCHAR2) IS
5396        SELECT ID
5397        FROM   OKC_K_HEADERS_B
5398        WHERE  CONTRACT_NUMBER = p_contract_number;
5399 
5400     TYPE l_subsidy_id_type IS TABLE OF okl_k_lines.subsidy_id%TYPE INDEX BY BINARY_INTEGER;
5401 
5402     TYPE l_id_type IS TABLE OF okc_k_lines_b.id%TYPE INDEX BY BINARY_INTEGER;
5403     TYPE l_line_number_type IS TABLE OF okc_k_lines_b.line_number%TYPE INDEX BY BINARY_INTEGER;
5404     TYPE l_chr_id_type IS TABLE OF okc_k_lines_b.chr_id%TYPE INDEX BY BINARY_INTEGER;
5405     TYPE l_cle_id_type IS TABLE OF okc_k_lines_b.cle_id%TYPE INDEX BY BINARY_INTEGER;
5406     TYPE l_cle_id_renewed_type IS TABLE OF okc_k_lines_b.cle_id_renewed%TYPE INDEX BY BINARY_INTEGER;
5407     TYPE l_dnz_chr_id_type IS TABLE OF okc_k_lines_b.dnz_chr_id%TYPE INDEX BY BINARY_INTEGER;
5408     TYPE l_display_sequence_type IS TABLE OF okc_k_lines_b.display_sequence%TYPE INDEX BY BINARY_INTEGER;
5409     TYPE l_sts_code_type IS TABLE OF okc_k_lines_b.sts_code%TYPE INDEX BY BINARY_INTEGER;
5410     TYPE l_trn_code_type IS TABLE OF okc_k_lines_b.trn_code%TYPE INDEX BY BINARY_INTEGER;
5411     TYPE l_lse_id_type IS TABLE OF okc_k_lines_b.lse_id%TYPE INDEX BY BINARY_INTEGER;
5412     --avsingh: Bug 5710213: start
5413     TYPE l_lty_code_type IS TABLE OF okc_line_styles_b.lty_code%TYPE INDEX BY BINARY_INTEGER;
5414     --avsingh: Bug 5710213: end
5415     TYPE l_exception_yn_type IS TABLE OF okc_k_lines_b.exception_yn%TYPE INDEX BY BINARY_INTEGER;
5416     TYPE l_object_version_number_type IS TABLE OF okc_k_lines_b.object_version_number%TYPE INDEX BY BINARY_INTEGER;
5417     TYPE l_created_by_type IS TABLE OF okc_k_lines_b.created_by%TYPE INDEX BY BINARY_INTEGER;
5418     TYPE l_creation_date_type IS TABLE OF okc_k_lines_b.creation_date%TYPE INDEX BY BINARY_INTEGER;
5419     TYPE l_last_updated_by_type IS TABLE OF okc_k_lines_b.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
5420     TYPE l_last_update_date_type IS TABLE OF okc_k_lines_b.last_update_date%TYPE INDEX BY BINARY_INTEGER;
5421     TYPE l_hidden_ind_type IS TABLE OF okc_k_lines_b.hidden_ind%TYPE INDEX BY BINARY_INTEGER;
5422     TYPE l_price_negotiated_type IS TABLE OF okc_k_lines_b.price_negotiated%TYPE INDEX BY BINARY_INTEGER;
5423     TYPE l_price_level_ind_type IS TABLE OF okc_k_lines_b.price_level_ind%TYPE INDEX BY BINARY_INTEGER;
5424     TYPE l_price_unit_type IS TABLE OF okc_k_lines_b.price_unit%TYPE INDEX BY BINARY_INTEGER;
5425     TYPE l_price_unit_percent_type IS TABLE OF okc_k_lines_b.price_unit_percent%TYPE INDEX BY BINARY_INTEGER;
5426     TYPE l_invoice_line_level_ind_type IS TABLE OF okc_k_lines_b.invoice_line_level_ind%TYPE INDEX BY BINARY_INTEGER;
5427     TYPE l_dpas_rating_type IS TABLE OF okc_k_lines_b.dpas_rating%TYPE INDEX BY BINARY_INTEGER;
5428     TYPE l_template_used_type IS TABLE OF okc_k_lines_b.template_used%TYPE INDEX BY BINARY_INTEGER;
5429     TYPE l_price_type_type IS TABLE OF okc_k_lines_b.price_type%TYPE INDEX BY BINARY_INTEGER;
5430     TYPE l_currency_code_type IS TABLE OF okc_k_lines_b.currency_code%TYPE INDEX BY BINARY_INTEGER;
5431     TYPE l_last_update_login_type IS TABLE OF okc_k_lines_b.last_update_login%TYPE INDEX BY BINARY_INTEGER;
5432     TYPE l_date_terminated_type IS TABLE OF okc_k_lines_b.date_terminated%TYPE INDEX BY BINARY_INTEGER;
5433     TYPE l_start_date_type IS TABLE OF okc_k_lines_b.start_date%TYPE INDEX BY BINARY_INTEGER;
5434     TYPE l_end_date_type IS TABLE OF okc_k_lines_b.end_date%TYPE INDEX BY BINARY_INTEGER;
5435     TYPE l_attribute_category_type IS TABLE OF okc_k_lines_b.attribute_category%TYPE INDEX BY BINARY_INTEGER;
5436     TYPE l_attribute1_type IS TABLE OF okc_k_lines_b.attribute1%TYPE INDEX BY BINARY_INTEGER;
5437     TYPE l_attribute2_type IS TABLE OF okc_k_lines_b.attribute2%TYPE INDEX BY BINARY_INTEGER;
5438     TYPE l_attribute3_type IS TABLE OF okc_k_lines_b.attribute3%TYPE INDEX BY BINARY_INTEGER;
5439     TYPE l_attribute4_type IS TABLE OF okc_k_lines_b.attribute4%TYPE INDEX BY BINARY_INTEGER;
5440     TYPE l_attribute5_type IS TABLE OF okc_k_lines_b.attribute5%TYPE INDEX BY BINARY_INTEGER;
5441     TYPE l_attribute6_type IS TABLE OF okc_k_lines_b.attribute6%TYPE INDEX BY BINARY_INTEGER;
5442     TYPE l_attribute7_type IS TABLE OF okc_k_lines_b.attribute7%TYPE INDEX BY BINARY_INTEGER;
5443     TYPE l_attribute8_type IS TABLE OF okc_k_lines_b.attribute8%TYPE INDEX BY BINARY_INTEGER;
5444     TYPE l_attribute9_type IS TABLE OF okc_k_lines_b.attribute9%TYPE INDEX BY BINARY_INTEGER;
5445     TYPE l_attribute10_type IS TABLE OF okc_k_lines_b.attribute10%TYPE INDEX BY BINARY_INTEGER;
5446     TYPE l_attribute11_type IS TABLE OF okc_k_lines_b.attribute11%TYPE INDEX BY BINARY_INTEGER;
5447     TYPE l_attribute12_type IS TABLE OF okc_k_lines_b.attribute12%TYPE INDEX BY BINARY_INTEGER;
5448     TYPE l_attribute13_type IS TABLE OF okc_k_lines_b.attribute13%TYPE INDEX BY BINARY_INTEGER;
5449     TYPE l_attribute14_type IS TABLE OF okc_k_lines_b.attribute14%TYPE INDEX BY BINARY_INTEGER;
5450     TYPE l_attribute15_type IS TABLE OF okc_k_lines_b.attribute15%TYPE INDEX BY BINARY_INTEGER;
5451     TYPE l_security_group_id_type IS TABLE OF okc_k_lines_b.security_group_id%TYPE INDEX BY BINARY_INTEGER;
5452     TYPE l_cle_id_renewed_to_type IS TABLE OF okc_k_lines_b.cle_id_renewed_to%TYPE INDEX BY BINARY_INTEGER;
5453     TYPE l_price_negotiated_renewed_typ IS TABLE OF okc_k_lines_b.price_negotiated_renewed%TYPE INDEX BY BINARY_INTEGER;
5454     TYPE l_currency_code_renewed_type IS TABLE OF okc_k_lines_b.currency_code_renewed%TYPE INDEX BY BINARY_INTEGER;
5455     TYPE l_upg_orig_system_ref_type IS TABLE OF okc_k_lines_b.upg_orig_system_ref%TYPE INDEX BY BINARY_INTEGER;
5456     TYPE l_upg_orig_system_ref_id_type IS TABLE OF okc_k_lines_b.upg_orig_system_ref_id%TYPE INDEX BY BINARY_INTEGER;
5457     TYPE l_date_renewed_type IS TABLE OF okc_k_lines_b.date_renewed%TYPE INDEX BY BINARY_INTEGER;
5458     TYPE l_orig_system_source_code_type IS TABLE OF okc_k_lines_b.orig_system_source_code%TYPE INDEX BY BINARY_INTEGER;
5459     TYPE l_orig_system_id1_type IS TABLE OF okc_k_lines_b.orig_system_id1%TYPE INDEX BY BINARY_INTEGER;
5460     TYPE l_orig_system_reference1_type IS TABLE OF okc_k_lines_b.orig_system_reference1%TYPE INDEX BY BINARY_INTEGER;
5461     TYPE l_program_application_id_type IS TABLE OF okc_k_lines_b.program_application_id%TYPE INDEX BY BINARY_INTEGER;
5462     TYPE l_program_id_type IS TABLE OF okc_k_lines_b.program_id%TYPE INDEX BY BINARY_INTEGER;
5463     TYPE l_program_update_date_type IS TABLE OF okc_k_lines_b.program_update_date%TYPE INDEX BY BINARY_INTEGER;
5464     TYPE l_request_id_type IS TABLE OF okc_k_lines_b.request_id%TYPE INDEX BY BINARY_INTEGER;
5465     TYPE l_price_list_id_type IS TABLE OF okc_k_lines_b.price_list_id%TYPE INDEX BY BINARY_INTEGER;
5466     TYPE l_price_list_line_id_type IS TABLE OF okc_k_lines_b.price_list_line_id%TYPE INDEX BY BINARY_INTEGER;
5467     TYPE l_line_list_price_type IS TABLE OF okc_k_lines_b.line_list_price%TYPE INDEX BY BINARY_INTEGER;
5468     TYPE l_item_to_price_yn_type IS TABLE OF okc_k_lines_b.item_to_price_yn%TYPE INDEX BY BINARY_INTEGER;
5469     TYPE l_pricing_date_type IS TABLE OF okc_k_lines_b.pricing_date%TYPE INDEX BY BINARY_INTEGER;
5470     TYPE l_price_basis_yn_type IS TABLE OF okc_k_lines_b.price_basis_yn%TYPE INDEX BY BINARY_INTEGER;
5471     TYPE l_config_header_id_type IS TABLE OF okc_k_lines_b.config_header_id%TYPE INDEX BY BINARY_INTEGER;
5472     TYPE l_config_revision_number_type IS TABLE OF okc_k_lines_b.config_revision_number%TYPE INDEX BY BINARY_INTEGER;
5473     TYPE l_config_complete_yn_type IS TABLE OF okc_k_lines_b.config_complete_yn%TYPE INDEX BY BINARY_INTEGER;
5474     TYPE l_config_valid_yn_type IS TABLE OF okc_k_lines_b.config_valid_yn%TYPE INDEX BY BINARY_INTEGER;
5475     TYPE l_config_top_model_line_id_typ IS TABLE OF okc_k_lines_b.config_top_model_line_id%TYPE INDEX BY BINARY_INTEGER;
5476     TYPE l_config_item_type_type IS TABLE OF okc_k_lines_b.config_item_type%TYPE INDEX BY BINARY_INTEGER;
5477     TYPE l_config_item_id_type IS TABLE OF okc_k_lines_b.config_item_id%TYPE INDEX BY BINARY_INTEGER;
5478     TYPE l_service_item_yn_type IS TABLE OF okc_k_lines_b.service_item_yn%TYPE INDEX BY BINARY_INTEGER;
5479     TYPE l_ph_pricing_type_type IS TABLE OF okc_k_lines_b.ph_pricing_type%TYPE INDEX BY BINARY_INTEGER;
5480     TYPE l_ph_price_break_basis_type IS TABLE OF okc_k_lines_b.ph_price_break_basis%TYPE INDEX BY BINARY_INTEGER;
5481     TYPE l_ph_min_qty_type IS TABLE OF okc_k_lines_b.ph_min_qty%TYPE INDEX BY BINARY_INTEGER;
5482     TYPE l_ph_min_amt_type IS TABLE OF okc_k_lines_b.ph_min_amt%TYPE INDEX BY BINARY_INTEGER;
5483     TYPE l_ph_qp_reference_id_type IS TABLE OF okc_k_lines_b.ph_qp_reference_id%TYPE INDEX BY BINARY_INTEGER;
5484     TYPE l_ph_value_type IS TABLE OF okc_k_lines_b.ph_value%TYPE INDEX BY BINARY_INTEGER;
5485     TYPE l_ph_enforce_price_list_yn_typ IS TABLE OF okc_k_lines_b.ph_enforce_price_list_yn%TYPE INDEX BY BINARY_INTEGER;
5486     TYPE l_ph_adjustment_type IS TABLE OF okc_k_lines_b.ph_adjustment%TYPE INDEX BY BINARY_INTEGER;
5487     TYPE l_ph_integrated_with_qp_type IS TABLE OF okc_k_lines_b.ph_integrated_with_qp%TYPE INDEX BY BINARY_INTEGER;
5488     TYPE l_cust_acct_id_type IS TABLE OF okc_k_lines_b.cust_acct_id%TYPE INDEX BY BINARY_INTEGER;
5489     TYPE l_bill_to_site_use_id_type IS TABLE OF okc_k_lines_b.bill_to_site_use_id%TYPE INDEX BY BINARY_INTEGER;
5490     TYPE l_inv_rule_id_type IS TABLE OF okc_k_lines_b.inv_rule_id%TYPE INDEX BY BINARY_INTEGER;
5491     TYPE l_line_renewal_type_code_type IS TABLE OF okc_k_lines_b.line_renewal_type_code%TYPE INDEX BY BINARY_INTEGER;
5492     TYPE l_ship_to_site_use_id_type IS TABLE OF okc_k_lines_b.ship_to_site_use_id%TYPE INDEX BY BINARY_INTEGER;
5493     TYPE l_payment_term_id_type IS TABLE OF okc_k_lines_b.payment_term_id%TYPE INDEX BY BINARY_INTEGER;
5494     TYPE l_fee_type_type IS TABLE OF okl_k_lines.fee_type%TYPE INDEX BY BINARY_INTEGER;
5495     TYPE l_name_type IS TABLE OF okc_k_lines_tl.name%TYPE INDEX BY BINARY_INTEGER;
5496 
5497     -- For okl_k_lines whole record
5498     TYPE l_okl_k_lines_rec_type IS RECORD (
5499       --id okl_k_lines.id%type := OKC_API.G_MISS_NUM,
5500       id NUMBER := OKC_API.G_MISS_NUM,
5501       oec okl_k_lines.oec%TYPE,
5502       year_built okl_k_lines.year_built%TYPE,
5503       item_description okc_k_lines_tl.item_description%TYPE := OKC_API.G_MISS_CHAR
5504     );
5505     /*
5506     TYPE lines_rec_type is record (
5507       id okl_k_lines.id%type := OKC_API.G_MISS_NUM,
5508       oec okl_k_lines.oec%type
5509     );
5510     TYPE lines_tbl_type is TABLE OF lines_rec_type
5511                 index by binary_integer; */
5512 
5513     TYPE l_okl_k_lines_rec_tab IS TABLE OF l_okl_k_lines_rec_type
5514                 INDEX BY BINARY_INTEGER;
5515     -- For okl_k_lines whole record
5516 
5517     -- For okc_k_items whole record
5518     TYPE l_okc_k_items_rec_type IS RECORD (
5519       id okc_k_items.cle_id%TYPE := OKC_API.G_MISS_NUM,
5520       number_of_items okc_k_items.number_of_items%TYPE := OKC_API.G_MISS_NUM,
5521       object1_id1 okc_k_items.object1_id1%TYPE := OKC_API.G_MISS_CHAR,
5522       object1_id2 okc_k_items.object1_id2%TYPE := OKC_API.G_MISS_CHAR
5523     );
5524     TYPE l_okc_k_items_rec_tab IS TABLE OF l_okc_k_items_rec_type INDEX BY BINARY_INTEGER;
5525     -- For okc_k_items whole record
5526 
5527 
5528     TYPE l_bid_mapping_type IS RECORD (old_id okc_k_lines_b.id%TYPE := OKC_API.G_MISS_NUM, new_id okc_k_lines_tl.name%TYPE := OKC_API.G_MISS_CHAR);
5529     TYPE l_cle_lse_mapping_type IS RECORD (cle_id okc_k_lines_b.id%TYPE := OKC_API.G_MISS_NUM, lse_id NUMBER := OKC_API.G_MISS_NUM, id okc_k_lines_b.id%TYPE := OKC_API.G_MISS_NUM);
5530     TYPE l_ssid_mapping_type IS RECORD (cle_id okc_k_lines_b.id%TYPE := OKC_API.G_MISS_NUM, object1_id1 okc_k_rel_objs_v.object1_id1%TYPE := OKC_API.G_MISS_CHAR);
5531     TYPE l_sid_mapping_type IS RECORD (id okc_k_lines_b.id%TYPE := OKC_API.G_MISS_NUM, lse_id okc_k_lines_b.lse_id%TYPE := OKC_API.G_MISS_NUM);
5532     TYPE l_tid_mapping_type IS RECORD (rgd_code okc_rule_groups_b.rgd_code%TYPE := OKC_API.G_MISS_CHAR, id okc_rule_groups_b.id%TYPE := OKC_API.G_MISS_NUM);
5533     TYPE l_vid_mapping_type IS RECORD (cle_id okc_k_party_roles_b.cle_id%TYPE := OKC_API.G_MISS_NUM, object1_id1 okc_k_party_roles_b.object1_id1%TYPE := OKC_API.G_MISS_CHAR);
5534     TYPE l_dbid_mapping_type IS RECORD (tal_id okl_txl_assets_b.id%TYPE := OKC_API.G_MISS_NUM, kle_id okl_txl_assets_b.kle_id%TYPE := OKC_API.G_MISS_NUM);
5535     TYPE l_osid_mapping_type IS RECORD (id okl_k_lines.id%TYPE := OKC_API.G_MISS_NUM, subsidy_id okl_k_lines.subsidy_id%TYPE := OKC_API.G_MISS_NUM);
5536     TYPE l_cid_mapping_type IS RECORD (old_id okc_k_lines_b.id%TYPE := OKC_API.G_MISS_NUM, new_id okc_k_lines_b.cle_id%TYPE := OKC_API.G_MISS_NUM);
5537     TYPE l_rid_mapping_type IS RECORD (old_id okc_rule_groups_b.id%TYPE := OKC_API.G_MISS_NUM, new_id okc_rule_groups_b.id%TYPE := OKC_API.G_MISS_NUM);
5538     TYPE l_id_mapping_type IS RECORD (old_id okc_k_lines_b.id%TYPE := OKC_API.G_MISS_NUM, new_id okc_k_lines_b.id%TYPE := OKC_API.G_MISS_NUM);
5539     TYPE l_orig_system_rec_type IS RECORD (orig_system_id1 okc_k_lines_b.orig_system_id1%TYPE := OKC_API.G_MISS_NUM, id okc_k_lines_b.id%TYPE := OKC_API.G_MISS_NUM);
5540     TYPE l_rrid_mapping_type IS RECORD (old_id okc_rules_b.id%TYPE := OKC_API.G_MISS_NUM, new_id okc_rules_b.id%TYPE := OKC_API.G_MISS_NUM);
5541     TYPE l_aid_mapping_type IS RECORD (old_id okc_k_lines_tl.name%TYPE := OKC_API.G_MISS_CHAR, new_id okc_k_lines_tl.name%TYPE := OKC_API.G_MISS_CHAR);
5542     TYPE l_oid_mapping_type IS RECORD (cle_id okc_k_items.cle_id%TYPE := OKC_API.G_MISS_NUM, object1_id1 okc_k_items.object1_id1%TYPE := OKC_API.G_MISS_CHAR);
5543     TYPE l_cle_mapping_type IS RECORD (old_id okc_k_lines_b.id%TYPE := OKC_API.G_MISS_NUM, new_id okl_trx_assets.id%TYPE := OKC_API.G_MISS_NUM, line_number NUMBER := OKC_API.G_MISS_NUM);
5544     TYPE l_cle_mapping_type2 IS RECORD (old_id okc_k_lines_b.id%TYPE := OKC_API.G_MISS_NUM, new_id okl_trx_assets.id%TYPE := OKC_API.G_MISS_NUM);
5545 
5546     TYPE l_bid_mapping_tab_type IS TABLE OF l_bid_mapping_type INDEX BY BINARY_INTEGER;
5547     TYPE l_cle_lse_mapping_tab_type IS TABLE OF l_cle_lse_mapping_type INDEX BY BINARY_INTEGER;
5548     TYPE l_ssid_mapping_tab_type IS TABLE OF l_ssid_mapping_type INDEX BY BINARY_INTEGER;
5549     TYPE l_sid_mapping_tab_type IS TABLE OF l_sid_mapping_type INDEX BY BINARY_INTEGER;
5550     TYPE l_tid_mapping_tab_type IS TABLE OF l_tid_mapping_type INDEX BY BINARY_INTEGER;
5551     TYPE l_vid_mapping_tab_type IS TABLE OF l_vid_mapping_type INDEX BY BINARY_INTEGER;
5552     TYPE l_dbid_mapping_tab_type IS TABLE OF l_dbid_mapping_type INDEX BY BINARY_INTEGER;
5553     TYPE l_osid_mapping_tab_type IS TABLE OF l_osid_mapping_type INDEX BY BINARY_INTEGER;
5554     TYPE l_cid_mapping_tab_type IS TABLE OF l_cid_mapping_type INDEX BY BINARY_INTEGER;
5555     TYPE l_rid_mapping_tab_type IS TABLE OF l_rid_mapping_type INDEX BY BINARY_INTEGER;
5556     TYPE l_id_mapping_tab_type IS TABLE OF l_id_mapping_type INDEX BY BINARY_INTEGER;
5557     TYPE l_orig_system_tab_type IS TABLE OF l_orig_system_rec_type INDEX BY BINARY_INTEGER;
5558     TYPE l_rrid_mapping_tab_type IS TABLE OF l_rrid_mapping_type INDEX BY BINARY_INTEGER;
5559     TYPE l_aid_mapping_tab_type IS TABLE OF l_aid_mapping_type INDEX BY BINARY_INTEGER;
5560     TYPE l_oid_mapping_tab_type IS TABLE OF l_oid_mapping_type INDEX BY BINARY_INTEGER;
5561     TYPE l_cle_mapping_tab_type IS TABLE OF l_cle_mapping_type INDEX BY BINARY_INTEGER;
5562     TYPE l_cle_mapping_tab_type2 IS TABLE OF l_cle_mapping_type2 INDEX BY BINARY_INTEGER;
5563 
5564     TYPE l_party_id_mapping_type IS RECORD (old_id okc_k_party_roles_b.id%TYPE := OKC_API.G_MISS_NUM, new_id okc_k_party_roles_b.id%TYPE := OKC_API.G_MISS_NUM);
5565     TYPE l_party_id_mapping_tab_type IS TABLE OF l_party_id_mapping_type INDEX BY BINARY_INTEGER;
5566 
5567     TYPE l_trx_id_mapping_type IS RECORD (old_id okl_trx_assets.id%TYPE := OKC_API.G_MISS_NUM, new_id okl_trx_assets.id%TYPE := OKC_API.G_MISS_NUM);
5568     TYPE l_trx_id_mapping_tab_type IS TABLE OF l_trx_id_mapping_type INDEX BY BINARY_INTEGER;
5569 
5570     TYPE l_txl_id_mapping_type IS RECORD (old_id okl_txl_assets_b.id%TYPE := OKC_API.G_MISS_NUM, new_id okl_txl_assets_b.id%TYPE := OKC_API.G_MISS_NUM);
5571     TYPE l_txl_id_mapping_tab_type IS TABLE OF l_txl_id_mapping_type INDEX BY BINARY_INTEGER;
5572 
5573     -- For okl_k_party_roles begin
5574     TYPE l_plid_type is table of okl_k_party_roles.id%TYPE index by binary_integer;
5575     TYPE l_plobject_version_number_type is table of okl_k_party_roles.object_version_number%TYPE index by binary_integer;
5576     TYPE l_plattribute_category_type is table of okl_k_party_roles.attribute_category%TYPE index by binary_integer;
5577     TYPE l_plattribute1_type is table of okl_k_party_roles.attribute1%TYPE index by binary_integer;
5578     TYPE l_plattribute2_type is table of okl_k_party_roles.attribute2%TYPE index by binary_integer;
5579     TYPE l_plattribute3_type is table of okl_k_party_roles.attribute3%TYPE index by binary_integer;
5580     TYPE l_plattribute4_type is table of okl_k_party_roles.attribute4%TYPE index by binary_integer;
5581     TYPE l_plattribute5_type is table of okl_k_party_roles.attribute5%TYPE index by binary_integer;
5582     TYPE l_plattribute6_type is table of okl_k_party_roles.attribute6%TYPE index by binary_integer;
5583     TYPE l_plattribute7_type is table of okl_k_party_roles.attribute7%TYPE index by binary_integer;
5584     TYPE l_plattribute8_type is table of okl_k_party_roles.attribute8%TYPE index by binary_integer;
5585     TYPE l_plattribute9_type is table of okl_k_party_roles.attribute9%TYPE index by binary_integer;
5586     TYPE l_plattribute10_type is table of okl_k_party_roles.attribute10%TYPE index by binary_integer;
5587     TYPE l_plattribute11_type is table of okl_k_party_roles.attribute11%TYPE index by binary_integer;
5588     TYPE l_plattribute12_type is table of okl_k_party_roles.attribute12%TYPE index by binary_integer;
5589     TYPE l_plattribute13_type is table of okl_k_party_roles.attribute13%TYPE index by binary_integer;
5590     TYPE l_plattribute14_type is table of okl_k_party_roles.attribute14%TYPE index by binary_integer;
5591     TYPE l_plattribute15_type is table of okl_k_party_roles.attribute15%TYPE index by binary_integer;
5592     -- For okl_k_party_roles end
5593 
5594     -- For party_roles_tl Begin
5595     TYPE l_pid_type IS TABLE OF okc_k_party_roles_tl.id%TYPE INDEX BY BINARY_INTEGER;
5596     TYPE l_planguage_type IS TABLE OF okc_k_party_roles_tl.LANGUAGE%TYPE INDEX BY BINARY_INTEGER;
5597     TYPE l_psource_lang_type IS TABLE OF okc_k_party_roles_tl.source_lang%TYPE INDEX BY BINARY_INTEGER;
5598     TYPE l_psfwt_flag_type IS TABLE OF okc_k_party_roles_tl.sfwt_flag%TYPE INDEX BY BINARY_INTEGER;
5599     TYPE l_pcreated_by_type IS TABLE OF okc_k_party_roles_tl.created_by%TYPE INDEX BY BINARY_INTEGER;
5600     TYPE l_pcreation_date_type IS TABLE OF okc_k_party_roles_tl.creation_date%TYPE INDEX BY BINARY_INTEGER;
5601     TYPE l_plast_updated_by_type IS TABLE OF okc_k_party_roles_tl.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
5602     TYPE l_plast_update_date_type IS TABLE OF okc_k_party_roles_tl.last_update_date%TYPE INDEX BY BINARY_INTEGER;
5603     TYPE l_pcognomen_type IS TABLE OF okc_k_party_roles_tl.cognomen%TYPE INDEX BY BINARY_INTEGER;
5604     TYPE l_palias_type IS TABLE OF okc_k_party_roles_tl.alias%TYPE INDEX BY BINARY_INTEGER;
5605     TYPE l_plast_update_login_type IS TABLE OF okc_k_party_roles_tl.last_update_login%TYPE INDEX BY BINARY_INTEGER;
5606     TYPE l_psecurity_group_id_type IS TABLE OF okc_k_party_roles_tl.security_group_id%TYPE INDEX BY BINARY_INTEGER;
5607     -- For party_roles_tl End
5608 
5609     -- For okl_supp_invoice_dtls Begin
5610     TYPE l_osid_type IS TABLE OF okl_supp_invoice_dtls.id%TYPE INDEX BY BINARY_INTEGER;
5611     TYPE l_osobject_version_number_type IS TABLE OF okl_supp_invoice_dtls.object_version_number%TYPE INDEX BY BINARY_INTEGER;
5612     TYPE l_oscle_id_type IS TABLE OF okl_supp_invoice_dtls.cle_id%TYPE INDEX BY BINARY_INTEGER;
5613     TYPE l_osfa_cle_id_type IS TABLE OF okl_supp_invoice_dtls.fa_cle_id%TYPE INDEX BY BINARY_INTEGER;
5614     TYPE l_osinvoice_number_type IS TABLE OF okl_supp_invoice_dtls.invoice_number%TYPE INDEX BY BINARY_INTEGER;
5615     TYPE l_osdate_invoiced_type IS TABLE OF okl_supp_invoice_dtls.date_invoiced%TYPE INDEX BY BINARY_INTEGER;
5616     TYPE l_osdate_due_type IS TABLE OF okl_supp_invoice_dtls.date_due%TYPE INDEX BY BINARY_INTEGER;
5617     TYPE l_osshipping_address_id1_type IS TABLE OF okl_supp_invoice_dtls.shipping_address_id1%TYPE INDEX BY BINARY_INTEGER;
5618     TYPE l_osshipping_address_id2_type IS TABLE OF okl_supp_invoice_dtls.shipping_address_id2%TYPE INDEX BY BINARY_INTEGER;
5619     TYPE l_osshipping_address_code_type IS TABLE OF okl_supp_invoice_dtls.shipping_address_code%TYPE INDEX BY BINARY_INTEGER;
5620     TYPE l_osattribute_category_type IS TABLE OF okl_supp_invoice_dtls.attribute_category%TYPE INDEX BY BINARY_INTEGER;
5621     TYPE l_osattribute1_type IS TABLE OF okl_supp_invoice_dtls.attribute1%TYPE INDEX BY BINARY_INTEGER;
5622     TYPE l_osattribute2_type IS TABLE OF okl_supp_invoice_dtls.attribute2%TYPE INDEX BY BINARY_INTEGER;
5623     TYPE l_osattribute3_type IS TABLE OF okl_supp_invoice_dtls.attribute3%TYPE INDEX BY BINARY_INTEGER;
5624     TYPE l_osattribute4_type IS TABLE OF okl_supp_invoice_dtls.attribute4%TYPE INDEX BY BINARY_INTEGER;
5625     TYPE l_osattribute5_type IS TABLE OF okl_supp_invoice_dtls.attribute5%TYPE INDEX BY BINARY_INTEGER;
5626     TYPE l_osattribute6_type IS TABLE OF okl_supp_invoice_dtls.attribute6%TYPE INDEX BY BINARY_INTEGER;
5627     TYPE l_osattribute7_type IS TABLE OF okl_supp_invoice_dtls.attribute7%TYPE INDEX BY BINARY_INTEGER;
5628     TYPE l_osattribute8_type IS TABLE OF okl_supp_invoice_dtls.attribute8%TYPE INDEX BY BINARY_INTEGER;
5629     TYPE l_osattribute9_type IS TABLE OF okl_supp_invoice_dtls.attribute9%TYPE INDEX BY BINARY_INTEGER;
5630     TYPE l_osattribute10_type IS TABLE OF okl_supp_invoice_dtls.attribute10%TYPE INDEX BY BINARY_INTEGER;
5631     TYPE l_osattribute11_type IS TABLE OF okl_supp_invoice_dtls.attribute11%TYPE INDEX BY BINARY_INTEGER;
5632     TYPE l_osattribute12_type IS TABLE OF okl_supp_invoice_dtls.attribute12%TYPE INDEX BY BINARY_INTEGER;
5633     TYPE l_osattribute13_type IS TABLE OF okl_supp_invoice_dtls.attribute13%TYPE INDEX BY BINARY_INTEGER;
5634     TYPE l_osattribute14_type IS TABLE OF okl_supp_invoice_dtls.attribute14%TYPE INDEX BY BINARY_INTEGER;
5635     TYPE l_osattribute15_type IS TABLE OF okl_supp_invoice_dtls.attribute15%TYPE INDEX BY BINARY_INTEGER;
5636     TYPE l_oscreated_by_type IS TABLE OF okl_supp_invoice_dtls.created_by%TYPE INDEX BY BINARY_INTEGER;
5637     TYPE l_oscreation_date_type IS TABLE OF okl_supp_invoice_dtls.creation_date%TYPE INDEX BY BINARY_INTEGER;
5638     TYPE l_oslast_updated_by_type IS TABLE OF okl_supp_invoice_dtls.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
5639     TYPE l_oslast_update_date_type IS TABLE OF okl_supp_invoice_dtls.last_update_date%TYPE INDEX BY BINARY_INTEGER;
5640     TYPE l_oslast_update_login_type IS TABLE OF okl_supp_invoice_dtls.last_update_login%TYPE INDEX BY BINARY_INTEGER;
5641     -- For okl_supp_invoice_dtls End
5642 
5643     TYPE l_misc_object1_id1 IS TABLE OF VARCHAR2(40) INDEX BY BINARY_INTEGER;
5644     -- For okc_contacts Begin
5645 
5646     TYPE l_cid_type IS TABLE OF okc_contacts.id%TYPE INDEX BY BINARY_INTEGER;
5647     TYPE l_ccpl_id_type IS TABLE OF okc_contacts.cpl_id%TYPE INDEX BY BINARY_INTEGER;
5648     TYPE l_ccro_code_type IS TABLE OF okc_contacts.cro_code%TYPE INDEX BY BINARY_INTEGER;
5649     TYPE l_cdnz_chr_id_type IS TABLE OF okc_contacts.dnz_chr_id%TYPE INDEX BY BINARY_INTEGER;
5650     TYPE l_cobject1_id1_type IS TABLE OF okc_contacts.object1_id1%TYPE INDEX BY BINARY_INTEGER;
5651     TYPE l_cobject1_id2_type IS TABLE OF okc_contacts.object1_id2%TYPE INDEX BY BINARY_INTEGER;
5652     TYPE l_cjtot_object1_code_type IS TABLE OF okc_contacts.jtot_object1_code%TYPE INDEX BY BINARY_INTEGER;
5653     TYPE l_cobject_version_number_type IS TABLE OF okc_contacts.object_version_number%TYPE INDEX BY BINARY_INTEGER;
5654     TYPE l_ccreated_by_type IS TABLE OF okc_contacts.created_by%TYPE INDEX BY BINARY_INTEGER;
5655     TYPE l_ccreation_date_type IS TABLE OF okc_contacts.creation_date%TYPE INDEX BY BINARY_INTEGER;
5656     TYPE l_clast_updated_by_type IS TABLE OF okc_contacts.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
5657     TYPE l_clast_update_date_type IS TABLE OF okc_contacts.last_update_date%TYPE INDEX BY BINARY_INTEGER;
5658     TYPE l_ccontact_sequence_type IS TABLE OF okc_contacts.contact_sequence%TYPE INDEX BY BINARY_INTEGER;
5659     TYPE l_clast_update_login_type IS TABLE OF okc_contacts.last_update_login%TYPE INDEX BY BINARY_INTEGER;
5660     TYPE l_cattribute_category_type IS TABLE OF okc_contacts.attribute_category%TYPE INDEX BY BINARY_INTEGER;
5661     TYPE l_cattribute1_type IS TABLE OF okc_contacts.attribute1%TYPE INDEX BY BINARY_INTEGER;
5662     TYPE l_cattribute2_type IS TABLE OF okc_contacts.attribute2%TYPE INDEX BY BINARY_INTEGER;
5663     TYPE l_cattribute3_type IS TABLE OF okc_contacts.attribute3%TYPE INDEX BY BINARY_INTEGER;
5664     TYPE l_cattribute4_type IS TABLE OF okc_contacts.attribute4%TYPE INDEX BY BINARY_INTEGER;
5665     TYPE l_cattribute5_type IS TABLE OF okc_contacts.attribute5%TYPE INDEX BY BINARY_INTEGER;
5666     TYPE l_cattribute6_type IS TABLE OF okc_contacts.attribute6%TYPE INDEX BY BINARY_INTEGER;
5667     TYPE l_cattribute7_type IS TABLE OF okc_contacts.attribute7%TYPE INDEX BY BINARY_INTEGER;
5668     TYPE l_cattribute8_type IS TABLE OF okc_contacts.attribute8%TYPE INDEX BY BINARY_INTEGER;
5669     TYPE l_cattribute9_type IS TABLE OF okc_contacts.attribute9%TYPE INDEX BY BINARY_INTEGER;
5670     TYPE l_cattribute10_type IS TABLE OF okc_contacts.attribute10%TYPE INDEX BY BINARY_INTEGER;
5671     TYPE l_cattribute11_type IS TABLE OF okc_contacts.attribute11%TYPE INDEX BY BINARY_INTEGER;
5672     TYPE l_cattribute12_type IS TABLE OF okc_contacts.attribute12%TYPE INDEX BY BINARY_INTEGER;
5673     TYPE l_cattribute13_type IS TABLE OF okc_contacts.attribute13%TYPE INDEX BY BINARY_INTEGER;
5674     TYPE l_cattribute14_type IS TABLE OF okc_contacts.attribute14%TYPE INDEX BY BINARY_INTEGER;
5675     TYPE l_cattribute15_type IS TABLE OF okc_contacts.attribute15%TYPE INDEX BY BINARY_INTEGER;
5676     TYPE l_csecurity_group_id_type IS TABLE OF okc_contacts.security_group_id%TYPE INDEX BY BINARY_INTEGER;
5677     TYPE l_cstart_date_type IS TABLE OF okc_contacts.start_date%TYPE INDEX BY BINARY_INTEGER;
5678     TYPE l_cend_date_type IS TABLE OF okc_contacts.end_date%TYPE INDEX BY BINARY_INTEGER;
5679     TYPE l_cprimary_yn_type IS TABLE OF okc_contacts.primary_yn%TYPE INDEX BY BINARY_INTEGER;
5680     TYPE l_cresource_class_type IS TABLE OF okc_contacts.resource_class%TYPE INDEX BY BINARY_INTEGER;
5681 
5682     -- For okc_contacts End
5683 
5684     -- For okc_rule_groups_b Begin
5685 
5686     TYPE l_rid_type IS TABLE OF okc_rule_groups_b.id%TYPE INDEX BY BINARY_INTEGER;
5687     TYPE l_rrgd_code_type IS TABLE OF okc_rule_groups_b.rgd_code%TYPE INDEX BY BINARY_INTEGER;
5688     TYPE l_rchr_id_type IS TABLE OF okc_rule_groups_b.chr_id%TYPE INDEX BY BINARY_INTEGER;
5689     TYPE l_rcle_id_type IS TABLE OF okc_rule_groups_b.cle_id%TYPE INDEX BY BINARY_INTEGER;
5690     TYPE l_rdnz_chr_id_type IS TABLE OF okc_rule_groups_b.dnz_chr_id%TYPE INDEX BY BINARY_INTEGER;
5691     TYPE l_rparent_rgp_id_type IS TABLE OF okc_rule_groups_b.parent_rgp_id%TYPE INDEX BY BINARY_INTEGER;
5692     TYPE l_rsat_code_type IS TABLE OF okc_rule_groups_b.sat_code%TYPE INDEX BY BINARY_INTEGER;
5693     TYPE l_robject_version_number_type IS TABLE OF okc_rule_groups_b.object_version_number%TYPE INDEX BY BINARY_INTEGER;
5694     TYPE l_rrgp_type_type IS TABLE OF okc_rule_groups_b.rgp_type%TYPE INDEX BY BINARY_INTEGER;
5695     TYPE l_rcreated_by_type IS TABLE OF okc_rule_groups_b.created_by%TYPE INDEX BY BINARY_INTEGER;
5696     TYPE l_rcreation_date_type IS TABLE OF okc_rule_groups_b.creation_date%TYPE INDEX BY BINARY_INTEGER;
5697     TYPE l_rlast_updated_by_type IS TABLE OF okc_rule_groups_b.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
5698     TYPE l_rlast_update_date_type IS TABLE OF okc_rule_groups_b.last_update_date%TYPE INDEX BY BINARY_INTEGER;
5699     TYPE l_rlast_update_login_type IS TABLE OF okc_rule_groups_b.last_update_login%TYPE INDEX BY BINARY_INTEGER;
5700     TYPE l_rattribute_category_type IS TABLE OF okc_rule_groups_b.attribute_category%TYPE INDEX BY BINARY_INTEGER;
5701     TYPE l_rattribute1_type IS TABLE OF okc_rule_groups_b.attribute1%TYPE INDEX BY BINARY_INTEGER;
5702     TYPE l_rattribute2_type IS TABLE OF okc_rule_groups_b.attribute2%TYPE INDEX BY BINARY_INTEGER;
5703     TYPE l_rattribute3_type IS TABLE OF okc_rule_groups_b.attribute3%TYPE INDEX BY BINARY_INTEGER;
5704     TYPE l_rattribute4_type IS TABLE OF okc_rule_groups_b.attribute4%TYPE INDEX BY BINARY_INTEGER;
5705     TYPE l_rattribute5_type IS TABLE OF okc_rule_groups_b.attribute5%TYPE INDEX BY BINARY_INTEGER;
5706     TYPE l_rattribute6_type IS TABLE OF okc_rule_groups_b.attribute6%TYPE INDEX BY BINARY_INTEGER;
5707     TYPE l_rattribute7_type IS TABLE OF okc_rule_groups_b.attribute7%TYPE INDEX BY BINARY_INTEGER;
5708     TYPE l_rattribute8_type IS TABLE OF okc_rule_groups_b.attribute8%TYPE INDEX BY BINARY_INTEGER;
5709     TYPE l_rattribute9_type IS TABLE OF okc_rule_groups_b.attribute9%TYPE INDEX BY BINARY_INTEGER;
5710     TYPE l_rattribute10_type IS TABLE OF okc_rule_groups_b.attribute10%TYPE INDEX BY BINARY_INTEGER;
5711     TYPE l_rattribute11_type IS TABLE OF okc_rule_groups_b.attribute11%TYPE INDEX BY BINARY_INTEGER;
5712     TYPE l_rattribute12_type IS TABLE OF okc_rule_groups_b.attribute12%TYPE INDEX BY BINARY_INTEGER;
5713     TYPE l_rattribute13_type IS TABLE OF okc_rule_groups_b.attribute13%TYPE INDEX BY BINARY_INTEGER;
5714     TYPE l_rattribute14_type IS TABLE OF okc_rule_groups_b.attribute14%TYPE INDEX BY BINARY_INTEGER;
5715     TYPE l_rattribute15_type IS TABLE OF okc_rule_groups_b.attribute15%TYPE INDEX BY BINARY_INTEGER;
5716     TYPE l_rsecurity_group_id_type IS TABLE OF okc_rule_groups_b.security_group_id%TYPE INDEX BY BINARY_INTEGER;
5717 
5718     -- For okc_rule_groups_b End
5719 
5720     -- For okc_rule_groups_tl Begin
5721     TYPE l_rtid_type IS TABLE OF okc_rule_groups_tl.id%TYPE INDEX BY BINARY_INTEGER;
5722     TYPE l_rtlanguage_type IS TABLE OF okc_rule_groups_tl.LANGUAGE%TYPE INDEX BY BINARY_INTEGER;
5723     TYPE l_rtsource_lang_type IS TABLE OF okc_rule_groups_tl.source_lang%TYPE INDEX BY BINARY_INTEGER;
5724     TYPE l_rtsfwt_flag_type IS TABLE OF okc_rule_groups_tl.sfwt_flag%TYPE INDEX BY BINARY_INTEGER;
5725     TYPE l_rtcomments_type IS TABLE OF okc_rule_groups_tl.comments%TYPE INDEX BY BINARY_INTEGER;
5726     TYPE l_rtcreated_by_type IS TABLE OF okc_rule_groups_tl.created_by%TYPE INDEX BY BINARY_INTEGER;
5727     TYPE l_rtcreation_date_type IS TABLE OF okc_rule_groups_tl.creation_date%TYPE INDEX BY BINARY_INTEGER;
5728     TYPE l_rtlast_updated_by_type IS TABLE OF okc_rule_groups_tl.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
5729     TYPE l_rtlast_update_date_type IS TABLE OF okc_rule_groups_tl.last_update_date%TYPE INDEX BY BINARY_INTEGER;
5730     TYPE l_rtlast_update_login_type IS TABLE OF okc_rule_groups_tl.last_update_login%TYPE INDEX BY BINARY_INTEGER;
5731     TYPE l_rtsecurity_group_id_type IS TABLE OF okc_rule_groups_tl.security_group_id%TYPE INDEX BY BINARY_INTEGER;
5732 
5733     -- For okc_rule_groups_tl End
5734 
5735     -- For okc_rules_b Begin
5736     TYPE l_rrid_type IS TABLE OF okc_rules_b.id%TYPE INDEX BY BINARY_INTEGER;
5737     TYPE l_rrrgp_id_type IS TABLE OF okc_rules_b.rgp_id%TYPE INDEX BY BINARY_INTEGER;
5738     TYPE l_rrobject1_id1_type IS TABLE OF okc_rules_b.object1_id1%TYPE INDEX BY BINARY_INTEGER;
5739     TYPE l_rrobject2_id1_type IS TABLE OF okc_rules_b.object2_id1%TYPE INDEX BY BINARY_INTEGER;
5740     TYPE l_rrobject3_id1_type IS TABLE OF okc_rules_b.object3_id1%TYPE INDEX BY BINARY_INTEGER;
5741     TYPE l_rrobject1_id2_type IS TABLE OF okc_rules_b.object1_id2%TYPE INDEX BY BINARY_INTEGER;
5742     TYPE l_rrobject2_id2_type IS TABLE OF okc_rules_b.object2_id2%TYPE INDEX BY BINARY_INTEGER;
5743     TYPE l_rrobject3_id2_type IS TABLE OF okc_rules_b.object3_id2%TYPE INDEX BY BINARY_INTEGER;
5744     TYPE l_rrjtot_object1_code_type IS TABLE OF okc_rules_b.jtot_object1_code%TYPE INDEX BY BINARY_INTEGER;
5745     TYPE l_rrjtot_object2_code_type IS TABLE OF okc_rules_b.jtot_object2_code%TYPE INDEX BY BINARY_INTEGER;
5746     TYPE l_rrjtot_object3_code_type IS TABLE OF okc_rules_b.jtot_object3_code%TYPE INDEX BY BINARY_INTEGER;
5747     TYPE l_rrdnz_chr_id_type IS TABLE OF okc_rules_b.dnz_chr_id%TYPE INDEX BY BINARY_INTEGER;
5748     TYPE l_rrstd_template_yn_type IS TABLE OF okc_rules_b.std_template_yn%TYPE INDEX BY BINARY_INTEGER;
5749     TYPE l_rrwarn_yn_type IS TABLE OF okc_rules_b.warn_yn%TYPE INDEX BY BINARY_INTEGER;
5750     TYPE l_rrpriority_type IS TABLE OF okc_rules_b.priority%TYPE INDEX BY BINARY_INTEGER;
5751     TYPE l_rrobject_version_number_type IS TABLE OF okc_rules_b.object_version_number%TYPE INDEX BY BINARY_INTEGER;
5752     TYPE l_rrcreated_by_type IS TABLE OF okc_rules_b.created_by%TYPE INDEX BY BINARY_INTEGER;
5753     TYPE l_rrcreation_date_type IS TABLE OF okc_rules_b.creation_date%TYPE INDEX BY BINARY_INTEGER;
5754     TYPE l_rrlast_updated_by_type IS TABLE OF okc_rules_b.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
5755     TYPE l_rrlast_update_date_type IS TABLE OF okc_rules_b.last_update_date%TYPE INDEX BY BINARY_INTEGER;
5756     TYPE l_rrlast_update_login_type IS TABLE OF okc_rules_b.last_update_login%TYPE INDEX BY BINARY_INTEGER;
5757     TYPE l_rrattribute_category_type IS TABLE OF okc_rules_b.attribute_category%TYPE INDEX BY BINARY_INTEGER;
5758     TYPE l_rrattribute1_type IS TABLE OF okc_rules_b.attribute1%TYPE INDEX BY BINARY_INTEGER;
5759     TYPE l_rrattribute2_type IS TABLE OF okc_rules_b.attribute2%TYPE INDEX BY BINARY_INTEGER;
5760     TYPE l_rrattribute3_type IS TABLE OF okc_rules_b.attribute3%TYPE INDEX BY BINARY_INTEGER;
5761     TYPE l_rrattribute4_type IS TABLE OF okc_rules_b.attribute4%TYPE INDEX BY BINARY_INTEGER;
5762     TYPE l_rrattribute5_type IS TABLE OF okc_rules_b.attribute5%TYPE INDEX BY BINARY_INTEGER;
5763     TYPE l_rrattribute6_type IS TABLE OF okc_rules_b.attribute6%TYPE INDEX BY BINARY_INTEGER;
5764     TYPE l_rrattribute7_type IS TABLE OF okc_rules_b.attribute7%TYPE INDEX BY BINARY_INTEGER;
5765     TYPE l_rrattribute8_type IS TABLE OF okc_rules_b.attribute8%TYPE INDEX BY BINARY_INTEGER;
5766     TYPE l_rrattribute9_type IS TABLE OF okc_rules_b.attribute9%TYPE INDEX BY BINARY_INTEGER;
5767     TYPE l_rrattribute10_type IS TABLE OF okc_rules_b.attribute10%TYPE INDEX BY BINARY_INTEGER;
5768     TYPE l_rrattribute11_type IS TABLE OF okc_rules_b.attribute11%TYPE INDEX BY BINARY_INTEGER;
5769     TYPE l_rrattribute12_type IS TABLE OF okc_rules_b.attribute12%TYPE INDEX BY BINARY_INTEGER;
5770     TYPE l_rrattribute13_type IS TABLE OF okc_rules_b.attribute13%TYPE INDEX BY BINARY_INTEGER;
5771     TYPE l_rrattribute14_type IS TABLE OF okc_rules_b.attribute14%TYPE INDEX BY BINARY_INTEGER;
5772     TYPE l_rrattribute15_type IS TABLE OF okc_rules_b.attribute15%TYPE INDEX BY BINARY_INTEGER;
5773     TYPE l_rrrule_information_cate_type IS TABLE OF okc_rules_b.rule_information_category%TYPE INDEX BY BINARY_INTEGER;
5774     TYPE l_rrrule_information1_type IS TABLE OF okc_rules_b.rule_information1%TYPE INDEX BY BINARY_INTEGER;
5775     TYPE l_rrrule_information2_type IS TABLE OF okc_rules_b.rule_information2%TYPE INDEX BY BINARY_INTEGER;
5776     TYPE l_rrrule_information3_type IS TABLE OF okc_rules_b.rule_information3%TYPE INDEX BY BINARY_INTEGER;
5777     TYPE l_rrrule_information4_type IS TABLE OF okc_rules_b.rule_information4%TYPE INDEX BY BINARY_INTEGER;
5778     TYPE l_rrrule_information5_type IS TABLE OF okc_rules_b.rule_information5%TYPE INDEX BY BINARY_INTEGER;
5779     TYPE l_rrrule_information6_type IS TABLE OF okc_rules_b.rule_information6%TYPE INDEX BY BINARY_INTEGER;
5780     TYPE l_rrrule_information7_type IS TABLE OF okc_rules_b.rule_information7%TYPE INDEX BY BINARY_INTEGER;
5781     TYPE l_rrrule_information8_type IS TABLE OF okc_rules_b.rule_information8%TYPE INDEX BY BINARY_INTEGER;
5782     TYPE l_rrrule_information9_type IS TABLE OF okc_rules_b.rule_information9%TYPE INDEX BY BINARY_INTEGER;
5783     TYPE l_rrrule_information10_type IS TABLE OF okc_rules_b.rule_information10%TYPE INDEX BY BINARY_INTEGER;
5784     TYPE l_rrrule_information11_type IS TABLE OF okc_rules_b.rule_information11%TYPE INDEX BY BINARY_INTEGER;
5785     TYPE l_rrrule_information12_type IS TABLE OF okc_rules_b.rule_information12%TYPE INDEX BY BINARY_INTEGER;
5786     TYPE l_rrrule_information13_type IS TABLE OF okc_rules_b.rule_information13%TYPE INDEX BY BINARY_INTEGER;
5787     TYPE l_rrrule_information14_type IS TABLE OF okc_rules_b.rule_information14%TYPE INDEX BY BINARY_INTEGER;
5788     TYPE l_rrrule_information15_type IS TABLE OF okc_rules_b.rule_information15%TYPE INDEX BY BINARY_INTEGER;
5789     TYPE l_rrsecurity_group_id_type IS TABLE OF okc_rules_b.security_group_id%TYPE INDEX BY BINARY_INTEGER;
5790     TYPE l_rrtemplate_yn_type IS TABLE OF okc_rules_b.template_yn%TYPE INDEX BY BINARY_INTEGER;
5791     TYPE l_rrans_set_jtot_object_c_type IS TABLE OF okc_rules_b.ans_set_jtot_object_code%TYPE INDEX BY BINARY_INTEGER;
5792     TYPE l_rrans_set_jtot_object_1_type IS TABLE OF okc_rules_b.ans_set_jtot_object_id1%TYPE INDEX BY BINARY_INTEGER;
5793     TYPE l_rrans_set_jtot_object_2_type IS TABLE OF okc_rules_b.ans_set_jtot_object_id2%TYPE INDEX BY BINARY_INTEGER;
5794     TYPE l_rrdisplay_sequence_type IS TABLE OF okc_rules_b.display_sequence%TYPE INDEX BY BINARY_INTEGER;
5795     TYPE l_rrcomments_type IS TABLE OF okc_rules_b.comments%TYPE INDEX BY BINARY_INTEGER;
5796 
5797     -- For okc_rules_b End
5798 
5799     -- For okc_rules_tl Begin
5800 
5801     TYPE l_trid_type IS TABLE OF okc_rules_tl.id%TYPE INDEX BY BINARY_INTEGER;
5802     TYPE l_trlanguage_type IS TABLE OF okc_rules_tl.LANGUAGE%TYPE INDEX BY BINARY_INTEGER;
5803     TYPE l_trsource_lang_type IS TABLE OF okc_rules_tl.source_lang%TYPE INDEX BY BINARY_INTEGER;
5804     TYPE l_trsfwt_flag_type IS TABLE OF okc_rules_tl.sfwt_flag%TYPE INDEX BY BINARY_INTEGER;
5805     TYPE l_trcomments_type IS TABLE OF okc_rules_tl.comments%TYPE INDEX BY BINARY_INTEGER;
5806     TYPE l_trtext_type IS TABLE OF okc_rules_tl.text%TYPE INDEX BY BINARY_INTEGER;
5807     TYPE l_trcreated_by_type IS TABLE OF okc_rules_tl.created_by%TYPE INDEX BY BINARY_INTEGER;
5808     TYPE l_trcreation_date_type IS TABLE OF okc_rules_tl.creation_date%TYPE INDEX BY BINARY_INTEGER;
5809     TYPE l_trlast_updated_by_type IS TABLE OF okc_rules_tl.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
5810     TYPE l_trlast_update_date_type IS TABLE OF okc_rules_tl.last_update_date%TYPE INDEX BY BINARY_INTEGER;
5811     TYPE l_trlast_update_login_type IS TABLE OF okc_rules_tl.last_update_login%TYPE INDEX BY BINARY_INTEGER;
5812     TYPE l_trsecurity_group_id_type IS TABLE OF okc_rules_tl.security_group_id%TYPE INDEX BY BINARY_INTEGER;
5813 
5814     -- For okc_rules_tl End
5815 
5816     -- For okc_k_items Begin
5817 
5818     TYPE l_iid_type IS TABLE OF okc_k_items.id%TYPE INDEX BY BINARY_INTEGER;
5819     TYPE l_icle_id_type IS TABLE OF okc_k_items.cle_id%TYPE INDEX BY BINARY_INTEGER;
5820     TYPE l_ichr_id_type IS TABLE OF okc_k_items.chr_id%TYPE INDEX BY BINARY_INTEGER;
5821     TYPE l_icle_id_for_type IS TABLE OF okc_k_items.cle_id_for%TYPE INDEX BY BINARY_INTEGER;
5822     TYPE l_idnz_chr_id_type IS TABLE OF okc_k_items.dnz_chr_id%TYPE INDEX BY BINARY_INTEGER;
5823     TYPE l_iobject1_id1_type IS TABLE OF okc_k_items.object1_id1%TYPE INDEX BY BINARY_INTEGER;
5824     TYPE l_iobject1_id2_type IS TABLE OF okc_k_items.object1_id2%TYPE INDEX BY BINARY_INTEGER;
5825     TYPE l_ijtot_object1_code_type IS TABLE OF okc_k_items.jtot_object1_code%TYPE INDEX BY BINARY_INTEGER;
5826     TYPE l_iuom_code_type IS TABLE OF okc_k_items.uom_code%TYPE INDEX BY BINARY_INTEGER;
5827     TYPE l_iexception_yn_type IS TABLE OF okc_k_items.exception_yn%TYPE INDEX BY BINARY_INTEGER;
5828     TYPE l_inumber_of_items_type IS TABLE OF okc_k_items.number_of_items%TYPE INDEX BY BINARY_INTEGER;
5829     TYPE l_ipriced_item_yn_type IS TABLE OF okc_k_items.priced_item_yn%TYPE INDEX BY BINARY_INTEGER;
5830     TYPE l_iobject_version_number_type IS TABLE OF okc_k_items.object_version_number%TYPE INDEX BY BINARY_INTEGER;
5831     TYPE l_icreated_by_type IS TABLE OF okc_k_items.created_by%TYPE INDEX BY BINARY_INTEGER;
5832     TYPE l_icreation_date_type IS TABLE OF okc_k_items.creation_date%TYPE INDEX BY BINARY_INTEGER;
5833     TYPE l_ilast_updated_by_type IS TABLE OF okc_k_items.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
5834     TYPE l_ilast_update_date_type IS TABLE OF okc_k_items.last_update_date%TYPE INDEX BY BINARY_INTEGER;
5835     TYPE l_ilast_update_login_type IS TABLE OF okc_k_items.last_update_login%TYPE INDEX BY BINARY_INTEGER;
5836     TYPE l_isecurity_group_id_type IS TABLE OF okc_k_items.security_group_id%TYPE INDEX BY BINARY_INTEGER;
5837     TYPE l_iupg_orig_system_ref_type IS TABLE OF okc_k_items.upg_orig_system_ref%TYPE INDEX BY BINARY_INTEGER;
5838     TYPE l_iupg_orig_system_ref_id_type IS TABLE OF okc_k_items.upg_orig_system_ref_id%TYPE INDEX BY BINARY_INTEGER;
5839     TYPE l_iprogram_application_id_type IS TABLE OF okc_k_items.program_application_id%TYPE INDEX BY BINARY_INTEGER;
5840     TYPE l_iprogram_id_type IS TABLE OF okc_k_items.program_id%TYPE INDEX BY BINARY_INTEGER;
5841     TYPE l_iprogram_update_date_type IS TABLE OF okc_k_items.program_update_date%TYPE INDEX BY BINARY_INTEGER;
5842     TYPE l_irequest_id_type IS TABLE OF okc_k_items.request_id%TYPE INDEX BY BINARY_INTEGER;
5843 
5844     -- For okc_k_items End
5845 
5846     -- For okl_trx_assets Begin (42)
5847 
5848     TYPE l_tid_type IS TABLE OF okl_trx_assets.id%TYPE INDEX BY BINARY_INTEGER;
5849     TYPE l_tica_id_type IS TABLE OF okl_trx_assets.ica_id%TYPE INDEX BY BINARY_INTEGER;
5850     TYPE l_ttas_type_type IS TABLE OF okl_trx_assets.tas_type%TYPE INDEX BY BINARY_INTEGER;
5851     TYPE l_tobject_version_number_type IS TABLE OF okl_trx_assets.object_version_number%TYPE INDEX BY BINARY_INTEGER;
5852     TYPE l_tattribute_category_type IS TABLE OF okl_trx_assets.attribute_category%TYPE INDEX BY BINARY_INTEGER;
5853     TYPE l_tattribute1_type IS TABLE OF okl_trx_assets.attribute1%TYPE INDEX BY BINARY_INTEGER;
5854     TYPE l_tattribute2_type IS TABLE OF okl_trx_assets.attribute2%TYPE INDEX BY BINARY_INTEGER;
5855     TYPE l_tattribute3_type IS TABLE OF okl_trx_assets.attribute3%TYPE INDEX BY BINARY_INTEGER;
5856     TYPE l_tattribute4_type IS TABLE OF okl_trx_assets.attribute4%TYPE INDEX BY BINARY_INTEGER;
5857     TYPE l_tattribute5_type IS TABLE OF okl_trx_assets.attribute5%TYPE INDEX BY BINARY_INTEGER;
5858     TYPE l_tattribute6_type IS TABLE OF okl_trx_assets.attribute6%TYPE INDEX BY BINARY_INTEGER;
5859     TYPE l_tattribute7_type IS TABLE OF okl_trx_assets.attribute7%TYPE INDEX BY BINARY_INTEGER;
5860     TYPE l_tattribute8_type IS TABLE OF okl_trx_assets.attribute8%TYPE INDEX BY BINARY_INTEGER;
5861     TYPE l_tattribute9_type IS TABLE OF okl_trx_assets.attribute9%TYPE INDEX BY BINARY_INTEGER;
5862     TYPE l_tattribute10_type IS TABLE OF okl_trx_assets.attribute10%TYPE INDEX BY BINARY_INTEGER;
5863     TYPE l_tattribute11_type IS TABLE OF okl_trx_assets.attribute11%TYPE INDEX BY BINARY_INTEGER;
5864     TYPE l_tattribute12_type IS TABLE OF okl_trx_assets.attribute12%TYPE INDEX BY BINARY_INTEGER;
5865     TYPE l_tattribute13_type IS TABLE OF okl_trx_assets.attribute13%TYPE INDEX BY BINARY_INTEGER;
5866     TYPE l_tattribute14_type IS TABLE OF okl_trx_assets.attribute14%TYPE INDEX BY BINARY_INTEGER;
5867     TYPE l_tattribute15_type IS TABLE OF okl_trx_assets.attribute15%TYPE INDEX BY BINARY_INTEGER;
5868     TYPE l_tcreated_by_type IS TABLE OF okl_trx_assets.created_by%TYPE INDEX BY BINARY_INTEGER;
5869     TYPE l_tcreation_date_type IS TABLE OF okl_trx_assets.creation_date%TYPE INDEX BY BINARY_INTEGER;
5870     TYPE l_tlast_updated_by_type IS TABLE OF okl_trx_assets.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
5871     TYPE l_tlast_update_date_type IS TABLE OF okl_trx_assets.last_update_date%TYPE INDEX BY BINARY_INTEGER;
5872     TYPE l_tlast_update_login_type IS TABLE OF okl_trx_assets.last_update_login%TYPE INDEX BY BINARY_INTEGER;
5873     TYPE l_ttsu_code_type IS TABLE OF okl_trx_assets.tsu_code%TYPE INDEX BY BINARY_INTEGER;
5874     TYPE l_ttry_id_type IS TABLE OF okl_trx_assets.try_id%TYPE INDEX BY BINARY_INTEGER;
5875     TYPE l_tdate_trans_occurred_type IS TABLE OF okl_trx_assets.date_trans_occurred%TYPE INDEX BY BINARY_INTEGER;
5876     TYPE l_ttrans_number_type IS TABLE OF okl_trx_assets.trans_number%TYPE INDEX BY BINARY_INTEGER;
5877     TYPE l_tcomments_type IS TABLE OF okl_trx_assets.comments%TYPE INDEX BY BINARY_INTEGER;
5878     TYPE l_treq_asset_id_type IS TABLE OF okl_trx_assets.req_asset_id%TYPE INDEX BY BINARY_INTEGER;
5879     TYPE l_ttotal_match_amount_type IS TABLE OF okl_trx_assets.total_match_amount%TYPE INDEX BY BINARY_INTEGER;
5880     TYPE l_torg_id_type IS TABLE OF okl_trx_assets.org_id%TYPE INDEX BY BINARY_INTEGER;
5881     TYPE l_tlegal_entity_id_type IS TABLE OF okl_trx_assets.legal_entity_id%TYPE INDEX BY BINARY_INTEGER;
5882 
5883     -- For okl_trx_assets End (42)
5884 
5885     -- For okl_trx_assets Begin (45)
5886     TYPE l_t2id_type IS TABLE OF okl_trx_assets.id%TYPE INDEX BY BINARY_INTEGER;
5887     TYPE l_t2ica_id_type IS TABLE OF okl_trx_assets.ica_id%TYPE INDEX BY BINARY_INTEGER;
5888     TYPE l_t2tas_type_type IS TABLE OF okl_trx_assets.tas_type%TYPE INDEX BY BINARY_INTEGER;
5889     TYPE l_t2object_version_number_type IS TABLE OF okl_trx_assets.object_version_number%TYPE INDEX BY BINARY_INTEGER;
5890     TYPE l_t2attribute_category_type IS TABLE OF okl_trx_assets.attribute_category%TYPE INDEX BY BINARY_INTEGER;
5891     TYPE l_t2attribute1_type IS TABLE OF okl_trx_assets.attribute1%TYPE INDEX BY BINARY_INTEGER;
5892     TYPE l_t2attribute2_type IS TABLE OF okl_trx_assets.attribute2%TYPE INDEX BY BINARY_INTEGER;
5893     TYPE l_t2attribute3_type IS TABLE OF okl_trx_assets.attribute3%TYPE INDEX BY BINARY_INTEGER;
5894     TYPE l_t2attribute4_type IS TABLE OF okl_trx_assets.attribute4%TYPE INDEX BY BINARY_INTEGER;
5895     TYPE l_t2attribute5_type IS TABLE OF okl_trx_assets.attribute5%TYPE INDEX BY BINARY_INTEGER;
5896     TYPE l_t2attribute6_type IS TABLE OF okl_trx_assets.attribute6%TYPE INDEX BY BINARY_INTEGER;
5897     TYPE l_t2attribute7_type IS TABLE OF okl_trx_assets.attribute7%TYPE INDEX BY BINARY_INTEGER;
5898     TYPE l_t2attribute8_type IS TABLE OF okl_trx_assets.attribute8%TYPE INDEX BY BINARY_INTEGER;
5899     TYPE l_t2attribute9_type IS TABLE OF okl_trx_assets.attribute9%TYPE INDEX BY BINARY_INTEGER;
5900     TYPE l_t2attribute10_type IS TABLE OF okl_trx_assets.attribute10%TYPE INDEX BY BINARY_INTEGER;
5901     TYPE l_t2attribute11_type IS TABLE OF okl_trx_assets.attribute11%TYPE INDEX BY BINARY_INTEGER;
5902     TYPE l_t2attribute12_type IS TABLE OF okl_trx_assets.attribute12%TYPE INDEX BY BINARY_INTEGER;
5903     TYPE l_t2attribute13_type IS TABLE OF okl_trx_assets.attribute13%TYPE INDEX BY BINARY_INTEGER;
5904     TYPE l_t2attribute14_type IS TABLE OF okl_trx_assets.attribute14%TYPE INDEX BY BINARY_INTEGER;
5905     TYPE l_t2attribute15_type IS TABLE OF okl_trx_assets.attribute15%TYPE INDEX BY BINARY_INTEGER;
5906     TYPE l_t2created_by_type IS TABLE OF okl_trx_assets.created_by%TYPE INDEX BY BINARY_INTEGER;
5907     TYPE l_t2creation_date_type IS TABLE OF okl_trx_assets.creation_date%TYPE INDEX BY BINARY_INTEGER;
5908     TYPE l_t2last_updated_by_type IS TABLE OF okl_trx_assets.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
5909     TYPE l_t2last_update_date_type IS TABLE OF okl_trx_assets.last_update_date%TYPE INDEX BY BINARY_INTEGER;
5910     TYPE l_t2last_update_login_type IS TABLE OF okl_trx_assets.last_update_login%TYPE INDEX BY BINARY_INTEGER;
5911     TYPE l_t2tsu_code_type IS TABLE OF okl_trx_assets.tsu_code%TYPE INDEX BY BINARY_INTEGER;
5912     TYPE l_t2try_id_type IS TABLE OF okl_trx_assets.try_id%TYPE INDEX BY BINARY_INTEGER;
5913     TYPE l_t2date_trans_occurred_type IS TABLE OF okl_trx_assets.date_trans_occurred%TYPE INDEX BY BINARY_INTEGER;
5914     TYPE l_t2trans_number_type IS TABLE OF okl_trx_assets.trans_number%TYPE INDEX BY BINARY_INTEGER;
5915     TYPE l_t2comments_type IS TABLE OF okl_trx_assets.comments%TYPE INDEX BY BINARY_INTEGER;
5916     TYPE l_t2req_asset_id_type IS TABLE OF okl_trx_assets.req_asset_id%TYPE INDEX BY BINARY_INTEGER;
5917     TYPE l_t2total_match_amount_type IS TABLE OF okl_trx_assets.total_match_amount%TYPE INDEX BY BINARY_INTEGER;
5918     TYPE l_t2org_id_type IS TABLE OF okl_trx_assets.org_id%TYPE INDEX BY BINARY_INTEGER;
5919     TYPE l_t2legal_entity_id_type IS TABLE OF okl_trx_assets.legal_entity_id%TYPE INDEX BY BINARY_INTEGER;
5920 
5921     -- For okl_trx_assets End (45)
5922 
5923     -- For okl_txl_assets_b Begin
5924 
5925     TYPE l_tbid_type IS TABLE OF okl_txl_assets_b.id%TYPE INDEX BY BINARY_INTEGER;
5926     TYPE l_tbobject_version_number_type IS TABLE OF okl_txl_assets_b.object_version_number%TYPE INDEX BY BINARY_INTEGER;
5927     TYPE l_tbtas_id_type IS TABLE OF okl_txl_assets_b.tas_id%TYPE INDEX BY BINARY_INTEGER;
5928     TYPE l_tbilo_id_type IS TABLE OF okl_txl_assets_b.ilo_id%TYPE INDEX BY BINARY_INTEGER;
5929     TYPE l_tbilo_id_old_type IS TABLE OF okl_txl_assets_b.ilo_id_old%TYPE INDEX BY BINARY_INTEGER;
5930     TYPE l_tbiay_id_type IS TABLE OF okl_txl_assets_b.iay_id%TYPE INDEX BY BINARY_INTEGER;
5931     TYPE l_tbiay_id_new_type IS TABLE OF okl_txl_assets_b.iay_id_new%TYPE INDEX BY BINARY_INTEGER;
5932     TYPE l_tbkle_id_type IS TABLE OF okl_txl_assets_b.kle_id%TYPE INDEX BY BINARY_INTEGER;
5933     TYPE l_tbdnz_khr_id_type IS TABLE OF okl_txl_assets_b.dnz_khr_id%TYPE INDEX BY BINARY_INTEGER;
5934     TYPE l_tbline_number_type IS TABLE OF okl_txl_assets_b.line_number%TYPE INDEX BY BINARY_INTEGER;
5935     TYPE l_tborg_id_type IS TABLE OF okl_txl_assets_b.org_id%TYPE INDEX BY BINARY_INTEGER;
5936     TYPE l_tbtal_type_type IS TABLE OF okl_txl_assets_b.tal_type%TYPE INDEX BY BINARY_INTEGER;
5937     TYPE l_tbasset_number_type IS TABLE OF okl_txl_assets_b.asset_number%TYPE INDEX BY BINARY_INTEGER;
5938     TYPE l_tbfa_location_id_type IS TABLE OF okl_txl_assets_b.fa_location_id%TYPE INDEX BY BINARY_INTEGER;
5939     TYPE l_tboriginal_cost_type IS TABLE OF okl_txl_assets_b.original_cost%TYPE INDEX BY BINARY_INTEGER;
5940     TYPE l_tbcurrent_units_type IS TABLE OF okl_txl_assets_b.current_units%TYPE INDEX BY BINARY_INTEGER;
5941     TYPE l_tbmanufacturer_name_type IS TABLE OF okl_txl_assets_b.manufacturer_name%TYPE INDEX BY BINARY_INTEGER;
5942     TYPE l_tbyear_manufactured_type IS TABLE OF okl_txl_assets_b.year_manufactured%TYPE INDEX BY BINARY_INTEGER;
5943     TYPE l_tbsupplier_id_type IS TABLE OF okl_txl_assets_b.supplier_id%TYPE INDEX BY BINARY_INTEGER;
5944     TYPE l_tbused_asset_yn_type IS TABLE OF okl_txl_assets_b.used_asset_yn%TYPE INDEX BY BINARY_INTEGER;
5945     TYPE l_tbtag_number_type IS TABLE OF okl_txl_assets_b.tag_number%TYPE INDEX BY BINARY_INTEGER;
5946     TYPE l_tbmodel_number_type IS TABLE OF okl_txl_assets_b.model_number%TYPE INDEX BY BINARY_INTEGER;
5947     TYPE l_tbcorporate_book_type IS TABLE OF okl_txl_assets_b.corporate_book%TYPE INDEX BY BINARY_INTEGER;
5948     TYPE l_tbdate_purchased_type IS TABLE OF okl_txl_assets_b.date_purchased%TYPE INDEX BY BINARY_INTEGER;
5949     TYPE l_tbdate_delivery_type IS TABLE OF okl_txl_assets_b.date_delivery%TYPE INDEX BY BINARY_INTEGER;
5950     TYPE l_tbin_service_date_type IS TABLE OF okl_txl_assets_b.in_service_date%TYPE INDEX BY BINARY_INTEGER;
5951     TYPE l_tblife_in_months_type IS TABLE OF okl_txl_assets_b.life_in_months%TYPE INDEX BY BINARY_INTEGER;
5952     TYPE l_tbdepreciation_id_type IS TABLE OF okl_txl_assets_b.depreciation_id%TYPE INDEX BY BINARY_INTEGER;
5953     TYPE l_tbdepreciation_cost_type IS TABLE OF okl_txl_assets_b.depreciation_cost%TYPE INDEX BY BINARY_INTEGER;
5954     TYPE l_tbdeprn_method_type IS TABLE OF okl_txl_assets_b.deprn_method%TYPE INDEX BY BINARY_INTEGER;
5955     TYPE l_tbdeprn_rate_type IS TABLE OF okl_txl_assets_b.deprn_rate%TYPE INDEX BY BINARY_INTEGER;
5956     TYPE l_tbsalvage_value_type IS TABLE OF okl_txl_assets_b.salvage_value%TYPE INDEX BY BINARY_INTEGER;
5957     TYPE l_tbpercent_salvage_value_type IS TABLE OF okl_txl_assets_b.percent_salvage_value%TYPE INDEX BY BINARY_INTEGER;
5958     TYPE l_tbattribute_category_type IS TABLE OF okl_txl_assets_b.attribute_category%TYPE INDEX BY BINARY_INTEGER;
5959     TYPE l_tbattribute1_type IS TABLE OF okl_txl_assets_b.attribute1%TYPE INDEX BY BINARY_INTEGER;
5960     TYPE l_tbattribute2_type IS TABLE OF okl_txl_assets_b.attribute2%TYPE INDEX BY BINARY_INTEGER;
5961     TYPE l_tbattribute3_type IS TABLE OF okl_txl_assets_b.attribute3%TYPE INDEX BY BINARY_INTEGER;
5962     TYPE l_tbattribute4_type IS TABLE OF okl_txl_assets_b.attribute4%TYPE INDEX BY BINARY_INTEGER;
5963     TYPE l_tbattribute5_type IS TABLE OF okl_txl_assets_b.attribute5%TYPE INDEX BY BINARY_INTEGER;
5964     TYPE l_tbattribute6_type IS TABLE OF okl_txl_assets_b.attribute6%TYPE INDEX BY BINARY_INTEGER;
5965     TYPE l_tbattribute7_type IS TABLE OF okl_txl_assets_b.attribute7%TYPE INDEX BY BINARY_INTEGER;
5966     TYPE l_tbattribute8_type IS TABLE OF okl_txl_assets_b.attribute8%TYPE INDEX BY BINARY_INTEGER;
5967     TYPE l_tbattribute9_type IS TABLE OF okl_txl_assets_b.attribute9%TYPE INDEX BY BINARY_INTEGER;
5968     TYPE l_tbattribute10_type IS TABLE OF okl_txl_assets_b.attribute10%TYPE INDEX BY BINARY_INTEGER;
5969     TYPE l_tbattribute11_type IS TABLE OF okl_txl_assets_b.attribute11%TYPE INDEX BY BINARY_INTEGER;
5970     TYPE l_tbattribute12_type IS TABLE OF okl_txl_assets_b.attribute12%TYPE INDEX BY BINARY_INTEGER;
5971     TYPE l_tbattribute13_type IS TABLE OF okl_txl_assets_b.attribute13%TYPE INDEX BY BINARY_INTEGER;
5972     TYPE l_tbattribute14_type IS TABLE OF okl_txl_assets_b.attribute14%TYPE INDEX BY BINARY_INTEGER;
5973     TYPE l_tbattribute15_type IS TABLE OF okl_txl_assets_b.attribute15%TYPE INDEX BY BINARY_INTEGER;
5974     TYPE l_tbcreated_by_type IS TABLE OF okl_txl_assets_b.created_by%TYPE INDEX BY BINARY_INTEGER;
5975     TYPE l_tbcreation_date_type IS TABLE OF okl_txl_assets_b.creation_date%TYPE INDEX BY BINARY_INTEGER;
5976     TYPE l_tblast_updated_by_type IS TABLE OF okl_txl_assets_b.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
5977     TYPE l_tblast_update_date_type IS TABLE OF okl_txl_assets_b.last_update_date%TYPE INDEX BY BINARY_INTEGER;
5978     TYPE l_tblast_update_login_type IS TABLE OF okl_txl_assets_b.last_update_login%TYPE INDEX BY BINARY_INTEGER;
5979     TYPE l_tbdepreciate_yn_type IS TABLE OF okl_txl_assets_b.depreciate_yn%TYPE INDEX BY BINARY_INTEGER;
5980     TYPE l_tbhold_period_days_type IS TABLE OF okl_txl_assets_b.hold_period_days%TYPE INDEX BY BINARY_INTEGER;
5981     TYPE l_tbold_salvage_value_type IS TABLE OF okl_txl_assets_b.old_salvage_value%TYPE INDEX BY BINARY_INTEGER;
5982     TYPE l_tbnew_residual_value_type IS TABLE OF okl_txl_assets_b.new_residual_value%TYPE INDEX BY BINARY_INTEGER;
5983     TYPE l_tbold_residual_value_type IS TABLE OF okl_txl_assets_b.old_residual_value%TYPE INDEX BY BINARY_INTEGER;
5984     TYPE l_tbunits_retired_type IS TABLE OF okl_txl_assets_b.units_retired%TYPE INDEX BY BINARY_INTEGER;
5985     TYPE l_tbcost_retired_type IS TABLE OF okl_txl_assets_b.cost_retired%TYPE INDEX BY BINARY_INTEGER;
5986     TYPE l_tbsale_proceeds_type IS TABLE OF okl_txl_assets_b.sale_proceeds%TYPE INDEX BY BINARY_INTEGER;
5987     TYPE l_tbremoval_cost_type IS TABLE OF okl_txl_assets_b.removal_cost%TYPE INDEX BY BINARY_INTEGER;
5988     TYPE l_tbdnz_asset_id_type IS TABLE OF okl_txl_assets_b.dnz_asset_id%TYPE INDEX BY BINARY_INTEGER;
5989     TYPE l_tbdate_due_type IS TABLE OF okl_txl_assets_b.date_due%TYPE INDEX BY BINARY_INTEGER;
5990     TYPE l_tbrep_asset_id_type IS TABLE OF okl_txl_assets_b.rep_asset_id%TYPE INDEX BY BINARY_INTEGER;
5991     TYPE l_tblke_asset_id_type IS TABLE OF okl_txl_assets_b.lke_asset_id%TYPE INDEX BY BINARY_INTEGER;
5992     TYPE l_tbmatch_amount_type IS TABLE OF okl_txl_assets_b.match_amount%TYPE INDEX BY BINARY_INTEGER;
5993     TYPE l_tbsplit_into_singles_fl_type IS TABLE OF okl_txl_assets_b.split_into_singles_flag%TYPE INDEX BY BINARY_INTEGER;
5994     TYPE l_tbsplit_into_units_type IS TABLE OF okl_txl_assets_b.split_into_units%TYPE INDEX BY BINARY_INTEGER;
5995     TYPE l_tbcurrency_code_type IS TABLE OF okl_txl_assets_b.currency_code%TYPE INDEX BY BINARY_INTEGER;
5996     TYPE l_tbcurrency_convers_type_type IS TABLE OF okl_txl_assets_b.currency_conversion_type%TYPE INDEX BY BINARY_INTEGER;
5997     TYPE l_tbcurrency_convers_rate_type IS TABLE OF okl_txl_assets_b.currency_conversion_rate%TYPE INDEX BY BINARY_INTEGER;
5998     TYPE l_tbcurrency_convers_date_type IS TABLE OF okl_txl_assets_b.currency_conversion_date%TYPE INDEX BY BINARY_INTEGER;
5999     TYPE l_tbasset_key_id_type IS TABLE OF okl_txl_assets_b.asset_key_id%TYPE INDEX BY BINARY_INTEGER;
6000     TYPE l_tbfa_trx_date_type IS TABLE OF okl_txl_assets_b.fa_trx_date%TYPE INDEX BY BINARY_INTEGER;
6001     TYPE l_tbfa_cost_type IS TABLE OF okl_txl_assets_b.fa_cost%TYPE INDEX BY BINARY_INTEGER;
6002 
6003     -- For okl_txl_assets_b End
6004 
6005 
6006     -- For okl_txl_assets_tl Begin
6007 
6008     TYPE l_tlid_type IS TABLE OF okl_txl_assets_tl.id%TYPE INDEX BY BINARY_INTEGER;
6009     TYPE l_tllanguage_type IS TABLE OF okl_txl_assets_tl.LANGUAGE%TYPE INDEX BY BINARY_INTEGER;
6010     TYPE l_tlsource_lang_type IS TABLE OF okl_txl_assets_tl.source_lang%TYPE INDEX BY BINARY_INTEGER;
6011     TYPE l_tlsfwt_flag_type IS TABLE OF okl_txl_assets_tl.sfwt_flag%TYPE INDEX BY BINARY_INTEGER;
6012     TYPE l_tldescription_type IS TABLE OF okl_txl_assets_tl.description%TYPE INDEX BY BINARY_INTEGER;
6013     TYPE l_tlcreated_by_type IS TABLE OF okl_txl_assets_tl.created_by%TYPE INDEX BY BINARY_INTEGER;
6014     TYPE l_tlcreation_date_type IS TABLE OF okl_txl_assets_tl.creation_date%TYPE INDEX BY BINARY_INTEGER;
6015     TYPE l_tllast_updated_by_type IS TABLE OF okl_txl_assets_tl.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
6016     TYPE l_tllast_update_date_type IS TABLE OF okl_txl_assets_tl.last_update_date%TYPE INDEX BY BINARY_INTEGER;
6017     TYPE l_tllast_update_login_type IS TABLE OF okl_txl_assets_tl.last_update_login%TYPE INDEX BY BINARY_INTEGER;
6018 
6019     -- For okl_txl_assets_tl End
6020 
6021     -- For okl_txd_assets_b Begin
6022 
6023     TYPE l_dbid_type IS TABLE OF okl_txd_assets_b.id%TYPE INDEX BY BINARY_INTEGER;
6024     TYPE l_dbobject_version_number_type IS TABLE OF okl_txd_assets_b.object_version_number%TYPE INDEX BY BINARY_INTEGER;
6025     TYPE l_dbtal_id_type IS TABLE OF okl_txd_assets_b.tal_id%TYPE INDEX BY BINARY_INTEGER;
6026     TYPE l_dbtarget_kle_id_type IS TABLE OF okl_txd_assets_b.target_kle_id%TYPE INDEX BY BINARY_INTEGER;
6027     TYPE l_dbline_detail_number_type IS TABLE OF okl_txd_assets_b.line_detail_number%TYPE INDEX BY BINARY_INTEGER;
6028     TYPE l_dbasset_number_type IS TABLE OF okl_txd_assets_b.asset_number%TYPE INDEX BY BINARY_INTEGER;
6029     TYPE l_dbquantity_type IS TABLE OF okl_txd_assets_b.quantity%TYPE INDEX BY BINARY_INTEGER;
6030     TYPE l_dbcost_type IS TABLE OF okl_txd_assets_b.cost%TYPE INDEX BY BINARY_INTEGER;
6031     TYPE l_dbtax_book_type IS TABLE OF okl_txd_assets_b.tax_book%TYPE INDEX BY BINARY_INTEGER;
6032     TYPE l_dblife_in_months_tax_type IS TABLE OF okl_txd_assets_b.life_in_months_tax%TYPE INDEX BY BINARY_INTEGER;
6033     TYPE l_dbdeprn_method_tax_type IS TABLE OF okl_txd_assets_b.deprn_method_tax%TYPE INDEX BY BINARY_INTEGER;
6034     TYPE l_dbdeprn_rate_tax_type IS TABLE OF okl_txd_assets_b.deprn_rate_tax%TYPE INDEX BY BINARY_INTEGER;
6035     TYPE l_dbsalvage_value_type IS TABLE OF okl_txd_assets_b.salvage_value%TYPE INDEX BY BINARY_INTEGER;
6036     TYPE l_dbsplit_percent_type IS TABLE OF okl_txd_assets_b.split_percent%TYPE INDEX BY BINARY_INTEGER;
6037     TYPE l_dbinventory_item_id_type IS TABLE OF okl_txd_assets_b.inventory_item_id%TYPE INDEX BY BINARY_INTEGER;
6038     TYPE l_dbattribute_category_type IS TABLE OF okl_txd_assets_b.attribute_category%TYPE INDEX BY BINARY_INTEGER;
6039     TYPE l_dbattribute1_type IS TABLE OF okl_txd_assets_b.attribute1%TYPE INDEX BY BINARY_INTEGER;
6040     TYPE l_dbattribute2_type IS TABLE OF okl_txd_assets_b.attribute2%TYPE INDEX BY BINARY_INTEGER;
6041     TYPE l_dbattribute3_type IS TABLE OF okl_txd_assets_b.attribute3%TYPE INDEX BY BINARY_INTEGER;
6042     TYPE l_dbattribute4_type IS TABLE OF okl_txd_assets_b.attribute4%TYPE INDEX BY BINARY_INTEGER;
6043     TYPE l_dbattribute5_type IS TABLE OF okl_txd_assets_b.attribute5%TYPE INDEX BY BINARY_INTEGER;
6044     TYPE l_dbattribute6_type IS TABLE OF okl_txd_assets_b.attribute6%TYPE INDEX BY BINARY_INTEGER;
6045     TYPE l_dbattribute7_type IS TABLE OF okl_txd_assets_b.attribute7%TYPE INDEX BY BINARY_INTEGER;
6046     TYPE l_dbattribute8_type IS TABLE OF okl_txd_assets_b.attribute8%TYPE INDEX BY BINARY_INTEGER;
6047     TYPE l_dbattribute9_type IS TABLE OF okl_txd_assets_b.attribute9%TYPE INDEX BY BINARY_INTEGER;
6048     TYPE l_dbattribute10_type IS TABLE OF okl_txd_assets_b.attribute10%TYPE INDEX BY BINARY_INTEGER;
6049     TYPE l_dbattribute11_type IS TABLE OF okl_txd_assets_b.attribute11%TYPE INDEX BY BINARY_INTEGER;
6050     TYPE l_dbattribute12_type IS TABLE OF okl_txd_assets_b.attribute12%TYPE INDEX BY BINARY_INTEGER;
6051     TYPE l_dbattribute13_type IS TABLE OF okl_txd_assets_b.attribute13%TYPE INDEX BY BINARY_INTEGER;
6052     TYPE l_dbattribute14_type IS TABLE OF okl_txd_assets_b.attribute14%TYPE INDEX BY BINARY_INTEGER;
6053     TYPE l_dbattribute15_type IS TABLE OF okl_txd_assets_b.attribute15%TYPE INDEX BY BINARY_INTEGER;
6054     TYPE l_dbcreated_by_type IS TABLE OF okl_txd_assets_b.created_by%TYPE INDEX BY BINARY_INTEGER;
6055     TYPE l_dbcreation_date_type IS TABLE OF okl_txd_assets_b.creation_date%TYPE INDEX BY BINARY_INTEGER;
6056     TYPE l_dblast_updated_by_type IS TABLE OF okl_txd_assets_b.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
6057     TYPE l_dblast_update_date_type IS TABLE OF okl_txd_assets_b.last_update_date%TYPE INDEX BY BINARY_INTEGER;
6058     TYPE l_dblast_update_login_type IS TABLE OF okl_txd_assets_b.last_update_login%TYPE INDEX BY BINARY_INTEGER;
6059     TYPE l_dbcurrency_code_type IS TABLE OF okl_txd_assets_b.currency_code%TYPE INDEX BY BINARY_INTEGER;
6060     TYPE l_dbcurrency_convers_type_type IS TABLE OF okl_txd_assets_b.currency_conversion_type%TYPE INDEX BY BINARY_INTEGER;
6061     TYPE l_dbcurrency_convers_rate_type IS TABLE OF okl_txd_assets_b.currency_conversion_rate%TYPE INDEX BY BINARY_INTEGER;
6062     TYPE l_dbcurrency_convers_date_type IS TABLE OF okl_txd_assets_b.currency_conversion_date%TYPE INDEX BY BINARY_INTEGER;
6063 
6064     -- For okl_txd_assets_b End
6065 
6066     -- For okl_txd_assets_tl Begin
6067 
6068     TYPE l_dlid_type IS TABLE OF okl_txd_assets_tl.id%TYPE INDEX BY BINARY_INTEGER;
6069     TYPE l_dllanguage_type IS TABLE OF okl_txd_assets_tl.LANGUAGE%TYPE INDEX BY BINARY_INTEGER;
6070     TYPE l_dlsource_lang_type IS TABLE OF okl_txd_assets_tl.source_lang%TYPE INDEX BY BINARY_INTEGER;
6071     TYPE l_dlsfwt_flag_type IS TABLE OF okl_txd_assets_tl.sfwt_flag%TYPE INDEX BY BINARY_INTEGER;
6072     TYPE l_dldescription_type IS TABLE OF okl_txd_assets_tl.description%TYPE INDEX BY BINARY_INTEGER;
6073     TYPE l_dlcreated_by_type IS TABLE OF okl_txd_assets_tl.created_by%TYPE INDEX BY BINARY_INTEGER;
6074     TYPE l_dlcreation_date_type IS TABLE OF okl_txd_assets_tl.creation_date%TYPE INDEX BY BINARY_INTEGER;
6075     TYPE l_dllast_updated_by_type IS TABLE OF okl_txd_assets_tl.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
6076     TYPE l_dllast_update_date_type IS TABLE OF okl_txd_assets_tl.last_update_date%TYPE INDEX BY BINARY_INTEGER;
6077     TYPE l_dllast_update_login_type IS TABLE OF okl_txd_assets_tl.last_update_login%TYPE INDEX BY BINARY_INTEGER;
6078 
6079     -- For okl_txd_assets_tl End
6080 
6081     -- For okl_txl_itm_insts Begin
6082 
6083     TYPE l_tiid_type IS TABLE OF okl_txl_itm_insts.id%TYPE INDEX BY BINARY_INTEGER;
6084     TYPE l_tiobject_version_number_type IS TABLE OF okl_txl_itm_insts.object_version_number%TYPE INDEX BY BINARY_INTEGER;
6085     TYPE l_titas_id_type IS TABLE OF okl_txl_itm_insts.tas_id%TYPE INDEX BY BINARY_INTEGER;
6086     TYPE l_tital_id_type IS TABLE OF okl_txl_itm_insts.tal_id%TYPE INDEX BY BINARY_INTEGER;
6087     TYPE l_tikle_id_type IS TABLE OF okl_txl_itm_insts.kle_id%TYPE INDEX BY BINARY_INTEGER;
6088     TYPE l_tital_type_type IS TABLE OF okl_txl_itm_insts.tal_type%TYPE INDEX BY BINARY_INTEGER;
6089     TYPE l_tiline_number_type IS TABLE OF okl_txl_itm_insts.line_number%TYPE INDEX BY BINARY_INTEGER;
6090     TYPE l_tiinstance_number_ib_type IS TABLE OF okl_txl_itm_insts.instance_number_ib%TYPE INDEX BY BINARY_INTEGER;
6091     TYPE l_tiobject_id1_new_type IS TABLE OF okl_txl_itm_insts.object_id1_new%TYPE INDEX BY BINARY_INTEGER;
6092     TYPE l_tiobject_id2_new_type IS TABLE OF okl_txl_itm_insts.object_id2_new%TYPE INDEX BY BINARY_INTEGER;
6093     TYPE l_tijtot_object_code_new_type IS TABLE OF okl_txl_itm_insts.jtot_object_code_new%TYPE INDEX BY BINARY_INTEGER;
6094     TYPE l_tiobject_id1_old_type IS TABLE OF okl_txl_itm_insts.object_id1_old%TYPE INDEX BY BINARY_INTEGER;
6095     TYPE l_tiobject_id2_old_type IS TABLE OF okl_txl_itm_insts.object_id2_old%TYPE INDEX BY BINARY_INTEGER;
6096     TYPE l_tijtot_object_code_old_type IS TABLE OF okl_txl_itm_insts.jtot_object_code_old%TYPE INDEX BY BINARY_INTEGER;
6097     TYPE l_tiinventory_org_id_type IS TABLE OF okl_txl_itm_insts.inventory_org_id%TYPE INDEX BY BINARY_INTEGER;
6098     TYPE l_tiserial_number_type IS TABLE OF okl_txl_itm_insts.serial_number%TYPE INDEX BY BINARY_INTEGER;
6099     TYPE l_timfg_serial_number_yn_type IS TABLE OF okl_txl_itm_insts.mfg_serial_number_yn%TYPE INDEX BY BINARY_INTEGER;
6100     TYPE l_tiinventory_item_id_type IS TABLE OF okl_txl_itm_insts.inventory_item_id%TYPE INDEX BY BINARY_INTEGER;
6101     TYPE l_tiinv_master_org_id_type IS TABLE OF okl_txl_itm_insts.inv_master_org_id%TYPE INDEX BY BINARY_INTEGER;
6102     TYPE l_tiattribute_category_type IS TABLE OF okl_txl_itm_insts.attribute_category%TYPE INDEX BY BINARY_INTEGER;
6103     TYPE l_tiattribute1_type IS TABLE OF okl_txl_itm_insts.attribute1%TYPE INDEX BY BINARY_INTEGER;
6104     TYPE l_tiattribute2_type IS TABLE OF okl_txl_itm_insts.attribute2%TYPE INDEX BY BINARY_INTEGER;
6105     TYPE l_tiattribute3_type IS TABLE OF okl_txl_itm_insts.attribute3%TYPE INDEX BY BINARY_INTEGER;
6106     TYPE l_tiattribute4_type IS TABLE OF okl_txl_itm_insts.attribute4%TYPE INDEX BY BINARY_INTEGER;
6107     TYPE l_tiattribute5_type IS TABLE OF okl_txl_itm_insts.attribute5%TYPE INDEX BY BINARY_INTEGER;
6108     TYPE l_tiattribute6_type IS TABLE OF okl_txl_itm_insts.attribute6%TYPE INDEX BY BINARY_INTEGER;
6109     TYPE l_tiattribute7_type IS TABLE OF okl_txl_itm_insts.attribute7%TYPE INDEX BY BINARY_INTEGER;
6110     TYPE l_tiattribute8_type IS TABLE OF okl_txl_itm_insts.attribute8%TYPE INDEX BY BINARY_INTEGER;
6111     TYPE l_tiattribute9_type IS TABLE OF okl_txl_itm_insts.attribute9%TYPE INDEX BY BINARY_INTEGER;
6112     TYPE l_tiattribute10_type IS TABLE OF okl_txl_itm_insts.attribute10%TYPE INDEX BY BINARY_INTEGER;
6113     TYPE l_tiattribute11_type IS TABLE OF okl_txl_itm_insts.attribute11%TYPE INDEX BY BINARY_INTEGER;
6114     TYPE l_tiattribute12_type IS TABLE OF okl_txl_itm_insts.attribute12%TYPE INDEX BY BINARY_INTEGER;
6115     TYPE l_tiattribute13_type IS TABLE OF okl_txl_itm_insts.attribute13%TYPE INDEX BY BINARY_INTEGER;
6116     TYPE l_tiattribute14_type IS TABLE OF okl_txl_itm_insts.attribute14%TYPE INDEX BY BINARY_INTEGER;
6117     TYPE l_tiattribute15_type IS TABLE OF okl_txl_itm_insts.attribute15%TYPE INDEX BY BINARY_INTEGER;
6118     TYPE l_ticreated_by_type IS TABLE OF okl_txl_itm_insts.created_by%TYPE INDEX BY BINARY_INTEGER;
6119     TYPE l_ticreation_date_type IS TABLE OF okl_txl_itm_insts.creation_date%TYPE INDEX BY BINARY_INTEGER;
6120     TYPE l_tilast_updated_by_type IS TABLE OF okl_txl_itm_insts.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
6121     TYPE l_tilast_update_date_type IS TABLE OF okl_txl_itm_insts.last_update_date%TYPE INDEX BY BINARY_INTEGER;
6122     TYPE l_tilast_update_login_type IS TABLE OF okl_txl_itm_insts.last_update_login%TYPE INDEX BY BINARY_INTEGER;
6123     TYPE l_tidnz_cle_id_type IS TABLE OF okl_txl_itm_insts.dnz_cle_id%TYPE INDEX BY BINARY_INTEGER;
6124     TYPE l_tiinstance_id_type IS TABLE OF okl_txl_itm_insts.instance_id%TYPE INDEX BY BINARY_INTEGER;
6125     TYPE l_tiselected_for_split_fl_type IS TABLE OF okl_txl_itm_insts.selected_for_split_flag%TYPE INDEX BY BINARY_INTEGER;
6126     TYPE l_tiasd_id_type IS TABLE OF okl_txl_itm_insts.asd_id%TYPE INDEX BY BINARY_INTEGER;
6127 
6128     -- For okl_txl_itm_insts End
6129 
6130     -- For okl_party_payment_dtls Begin
6131 
6132     TYPE l_ppid_type IS TABLE OF okl_party_payment_dtls.id%TYPE INDEX BY BINARY_INTEGER;
6133     TYPE l_ppobject_version_number_type IS TABLE OF okl_party_payment_dtls.object_version_number%TYPE INDEX BY BINARY_INTEGER;
6134     TYPE l_ppcpl_id_type IS TABLE OF okl_party_payment_dtls.cpl_id%TYPE INDEX BY BINARY_INTEGER;
6135     TYPE l_ppvendor_id_type IS TABLE OF okl_party_payment_dtls.vendor_id%TYPE INDEX BY BINARY_INTEGER;
6136     TYPE l_pppay_site_id_type IS TABLE OF okl_party_payment_dtls.pay_site_id%TYPE INDEX BY BINARY_INTEGER;
6137     TYPE l_pppayment_term_id_type IS TABLE OF okl_party_payment_dtls.payment_term_id%TYPE INDEX BY BINARY_INTEGER;
6138     TYPE l_pppayment_method_code_type IS TABLE OF okl_party_payment_dtls.payment_method_code%TYPE INDEX BY BINARY_INTEGER;
6139     TYPE l_pppay_group_code_type IS TABLE OF okl_party_payment_dtls.pay_group_code%TYPE INDEX BY BINARY_INTEGER;
6140     TYPE l_ppattribute_category_type IS TABLE OF okl_party_payment_dtls.attribute_category%TYPE INDEX BY BINARY_INTEGER;
6141     TYPE l_ppattribute1_type IS TABLE OF okl_party_payment_dtls.attribute1%TYPE INDEX BY BINARY_INTEGER;
6142     TYPE l_ppattribute2_type IS TABLE OF okl_party_payment_dtls.attribute2%TYPE INDEX BY BINARY_INTEGER;
6143     TYPE l_ppattribute3_type IS TABLE OF okl_party_payment_dtls.attribute3%TYPE INDEX BY BINARY_INTEGER;
6144     TYPE l_ppattribute4_type IS TABLE OF okl_party_payment_dtls.attribute4%TYPE INDEX BY BINARY_INTEGER;
6145     TYPE l_ppattribute5_type IS TABLE OF okl_party_payment_dtls.attribute5%TYPE INDEX BY BINARY_INTEGER;
6146     TYPE l_ppattribute6_type IS TABLE OF okl_party_payment_dtls.attribute6%TYPE INDEX BY BINARY_INTEGER;
6147     TYPE l_ppattribute7_type IS TABLE OF okl_party_payment_dtls.attribute7%TYPE INDEX BY BINARY_INTEGER;
6148     TYPE l_ppattribute8_type IS TABLE OF okl_party_payment_dtls.attribute8%TYPE INDEX BY BINARY_INTEGER;
6149     TYPE l_ppattribute9_type IS TABLE OF okl_party_payment_dtls.attribute9%TYPE INDEX BY BINARY_INTEGER;
6150     TYPE l_ppattribute10_type IS TABLE OF okl_party_payment_dtls.attribute10%TYPE INDEX BY BINARY_INTEGER;
6151     TYPE l_ppattribute11_type IS TABLE OF okl_party_payment_dtls.attribute11%TYPE INDEX BY BINARY_INTEGER;
6152     TYPE l_ppattribute12_type IS TABLE OF okl_party_payment_dtls.attribute12%TYPE INDEX BY BINARY_INTEGER;
6153     TYPE l_ppattribute13_type IS TABLE OF okl_party_payment_dtls.attribute13%TYPE INDEX BY BINARY_INTEGER;
6154     TYPE l_ppattribute14_type IS TABLE OF okl_party_payment_dtls.attribute14%TYPE INDEX BY BINARY_INTEGER;
6155     TYPE l_ppattribute15_type IS TABLE OF okl_party_payment_dtls.attribute15%TYPE INDEX BY BINARY_INTEGER;
6156     TYPE l_ppcreated_by_type IS TABLE OF okl_party_payment_dtls.created_by%TYPE INDEX BY BINARY_INTEGER;
6157     TYPE l_ppcreation_date_type IS TABLE OF okl_party_payment_dtls.creation_date%TYPE INDEX BY BINARY_INTEGER;
6158     TYPE l_pplast_updated_by_type IS TABLE OF okl_party_payment_dtls.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
6159     TYPE l_pplast_update_date_type IS TABLE OF okl_party_payment_dtls.last_update_date%TYPE INDEX BY BINARY_INTEGER;
6160     TYPE l_pplast_update_login_type IS TABLE OF okl_party_payment_dtls.last_update_login%TYPE INDEX BY BINARY_INTEGER;
6161     TYPE l_pppayment_hdr_id_type is table of okl_party_payment_dtls.payment_hdr_id%TYPE index by binary_integer;
6162     TYPE l_pppayment_start_date_type is table of okl_party_payment_dtls.payment_start_date%TYPE index by binary_integer;
6163     TYPE l_pppayment_frequency_type is table of okl_party_payment_dtls.payment_frequency%TYPE index by binary_integer;
6164     TYPE l_ppremit_days_type is table of okl_party_payment_dtls.remit_days%TYPE index by binary_integer;
6165     TYPE l_ppdisbursement_basis_type is table of okl_party_payment_dtls.disbursement_basis%TYPE index by binary_integer;
6166     TYPE l_ppdisbursement_fixed_am_type is table of okl_party_payment_dtls.disbursement_fixed_amount%TYPE index by binary_integer;
6167     TYPE l_ppdisbursement_percent_type is table of okl_party_payment_dtls.disbursement_percent%TYPE index by binary_integer;
6168     TYPE l_ppprocessing_fee_basis_type is table of okl_party_payment_dtls.processing_fee_basis%TYPE index by binary_integer;
6169     TYPE l_ppprocessing_fee_fixedt_type is table of okl_party_payment_dtls.processing_fee_fixed_amount%TYPE index by binary_integer;
6170     TYPE l_ppprocessing_fee_percen_type is table of okl_party_payment_dtls.processing_fee_percent%TYPE index by binary_integer;
6171     TYPE l_pppayment_basis_type is table of okl_party_payment_dtls.payment_basis%TYPE index by binary_integer;
6172 
6173     --sechawla 8677460 21-Jul-09 : ESG PRB Enhancements
6174     TYPE l_ppORIG_CONTRACT_LINE_ID_type is table of okl_party_payment_dtls.ORIG_CONTRACT_LINE_ID%TYPE index by binary_integer;
6175 
6176 
6177     -- For okl_party_payment_dtls End
6178 
6179     -- For okl_slctd_optns Begin
6180 
6181     TYPE l_sid_type IS TABLE OF okl_slctd_optns.id%TYPE INDEX BY BINARY_INTEGER;
6182     TYPE l_spov_id_type IS TABLE OF okl_slctd_optns.pov_id%TYPE INDEX BY BINARY_INTEGER;
6183     TYPE l_skhr_id_type IS TABLE OF okl_slctd_optns.khr_id%TYPE INDEX BY BINARY_INTEGER;
6184     TYPE l_sobject_version_number_type IS TABLE OF okl_slctd_optns.object_version_number%TYPE INDEX BY BINARY_INTEGER;
6185     TYPE l_sattribute_category_type IS TABLE OF okl_slctd_optns.attribute_category%TYPE INDEX BY BINARY_INTEGER;
6186     TYPE l_sattribute1_type IS TABLE OF okl_slctd_optns.attribute1%TYPE INDEX BY BINARY_INTEGER;
6187     TYPE l_sattribute2_type IS TABLE OF okl_slctd_optns.attribute2%TYPE INDEX BY BINARY_INTEGER;
6188     TYPE l_sattribute3_type IS TABLE OF okl_slctd_optns.attribute3%TYPE INDEX BY BINARY_INTEGER;
6189     TYPE l_sattribute4_type IS TABLE OF okl_slctd_optns.attribute4%TYPE INDEX BY BINARY_INTEGER;
6190     TYPE l_sattribute5_type IS TABLE OF okl_slctd_optns.attribute5%TYPE INDEX BY BINARY_INTEGER;
6191     TYPE l_sattribute6_type IS TABLE OF okl_slctd_optns.attribute6%TYPE INDEX BY BINARY_INTEGER;
6192     TYPE l_sattribute7_type IS TABLE OF okl_slctd_optns.attribute7%TYPE INDEX BY BINARY_INTEGER;
6193     TYPE l_sattribute8_type IS TABLE OF okl_slctd_optns.attribute8%TYPE INDEX BY BINARY_INTEGER;
6194     TYPE l_sattribute9_type IS TABLE OF okl_slctd_optns.attribute9%TYPE INDEX BY BINARY_INTEGER;
6195     TYPE l_sattribute10_type IS TABLE OF okl_slctd_optns.attribute10%TYPE INDEX BY BINARY_INTEGER;
6196     TYPE l_sattribute11_type IS TABLE OF okl_slctd_optns.attribute11%TYPE INDEX BY BINARY_INTEGER;
6197     TYPE l_sattribute12_type IS TABLE OF okl_slctd_optns.attribute12%TYPE INDEX BY BINARY_INTEGER;
6198     TYPE l_sattribute13_type IS TABLE OF okl_slctd_optns.attribute13%TYPE INDEX BY BINARY_INTEGER;
6199     TYPE l_sattribute14_type IS TABLE OF okl_slctd_optns.attribute14%TYPE INDEX BY BINARY_INTEGER;
6200     TYPE l_sattribute15_type IS TABLE OF okl_slctd_optns.attribute15%TYPE INDEX BY BINARY_INTEGER;
6201     TYPE l_screated_by_type IS TABLE OF okl_slctd_optns.created_by%TYPE INDEX BY BINARY_INTEGER;
6202     TYPE l_screation_date_type IS TABLE OF okl_slctd_optns.creation_date%TYPE INDEX BY BINARY_INTEGER;
6203     TYPE l_slast_updated_by_type IS TABLE OF okl_slctd_optns.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
6204     TYPE l_slast_update_date_type IS TABLE OF okl_slctd_optns.last_update_date%TYPE INDEX BY BINARY_INTEGER;
6205     TYPE l_slast_update_login_type IS TABLE OF okl_slctd_optns.last_update_login%TYPE INDEX BY BINARY_INTEGER;
6206 
6207     -- For okl_slctd_optns End
6208 
6209     -- For okc_rg_party_roles Begin
6210 
6211     TYPE l_gid_type IS TABLE OF okc_rg_party_roles.id%TYPE INDEX BY BINARY_INTEGER;
6212     TYPE l_grgp_id_type IS TABLE OF okc_rg_party_roles.rgp_id%TYPE INDEX BY BINARY_INTEGER;
6213     TYPE l_grrd_id_type IS TABLE OF okc_rg_party_roles.rrd_id%TYPE INDEX BY BINARY_INTEGER;
6214     TYPE l_gcpl_id_type IS TABLE OF okc_rg_party_roles.cpl_id%TYPE INDEX BY BINARY_INTEGER;
6215     TYPE l_gdnz_chr_id_type IS TABLE OF okc_rg_party_roles.dnz_chr_id%TYPE INDEX BY BINARY_INTEGER;
6216     TYPE l_gobject_version_number_type IS TABLE OF okc_rg_party_roles.object_version_number%TYPE INDEX BY BINARY_INTEGER;
6217     TYPE l_gcreated_by_type IS TABLE OF okc_rg_party_roles.created_by%TYPE INDEX BY BINARY_INTEGER;
6218     TYPE l_gcreation_date_type IS TABLE OF okc_rg_party_roles.creation_date%TYPE INDEX BY BINARY_INTEGER;
6219     TYPE l_glast_updated_by_type IS TABLE OF okc_rg_party_roles.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
6220     TYPE l_glast_update_date_type IS TABLE OF okc_rg_party_roles.last_update_date%TYPE INDEX BY BINARY_INTEGER;
6221     TYPE l_glast_update_login_type IS TABLE OF okc_rg_party_roles.last_update_login%TYPE INDEX BY BINARY_INTEGER;
6222     TYPE l_gsecurity_group_id_type IS TABLE OF okc_rg_party_roles.security_group_id%TYPE INDEX BY BINARY_INTEGER;
6223 
6224     -- For okc_rg_party_roles End
6225 
6226     -- For okc_k_lines_tl begin
6227 
6228     TYPE l_olid_type IS TABLE OF okc_k_lines_tl.id%TYPE INDEX BY BINARY_INTEGER;
6229     TYPE l_ollanguage_type IS TABLE OF okc_k_lines_tl.LANGUAGE%TYPE INDEX BY BINARY_INTEGER;
6230     TYPE l_olsource_lang_type IS TABLE OF okc_k_lines_tl.source_lang%TYPE INDEX BY BINARY_INTEGER;
6231     TYPE l_olsfwt_flag_type IS TABLE OF okc_k_lines_tl.sfwt_flag%TYPE INDEX BY BINARY_INTEGER;
6232     TYPE l_olname_type IS TABLE OF okc_k_lines_tl.name%TYPE INDEX BY BINARY_INTEGER;
6233     TYPE l_olcomments_type IS TABLE OF okc_k_lines_tl.comments%TYPE INDEX BY BINARY_INTEGER;
6234     TYPE l_olitem_description_type IS TABLE OF okc_k_lines_tl.item_description%TYPE INDEX BY BINARY_INTEGER;
6235     TYPE l_olblock23text_type IS TABLE OF okc_k_lines_tl.block23text%TYPE INDEX BY BINARY_INTEGER;
6236     TYPE l_olcreated_by_type IS TABLE OF okc_k_lines_tl.created_by%TYPE INDEX BY BINARY_INTEGER;
6237     TYPE l_olcreation_date_type IS TABLE OF okc_k_lines_tl.creation_date%TYPE INDEX BY BINARY_INTEGER;
6238     TYPE l_ollast_updated_by_type IS TABLE OF okc_k_lines_tl.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
6239     TYPE l_ollast_update_date_type IS TABLE OF okc_k_lines_tl.last_update_date%TYPE INDEX BY BINARY_INTEGER;
6240     TYPE l_ollast_update_login_type IS TABLE OF okc_k_lines_tl.last_update_login%TYPE INDEX BY BINARY_INTEGER;
6241     TYPE l_olsecurity_group_id_type IS TABLE OF okc_k_lines_tl.security_group_id%TYPE INDEX BY BINARY_INTEGER;
6242     TYPE l_oloke_boe_description_type IS TABLE OF okc_k_lines_tl.oke_boe_description%TYPE INDEX BY BINARY_INTEGER;
6243     TYPE l_olcognomen_type IS TABLE OF okc_k_lines_tl.cognomen%TYPE INDEX BY BINARY_INTEGER;
6244     -- For okc_k_lines_tl End
6245 
6246     -- okc_k_party_roles_b Begin
6247     TYPE l_prid_type IS TABLE OF okc_k_party_roles_b.id%TYPE INDEX BY BINARY_INTEGER;
6248     TYPE l_probject1_id1_type IS TABLE OF okc_k_party_roles_b.object1_id1%TYPE INDEX BY BINARY_INTEGER;
6249     -- okc_k_party_roles_b End
6250 
6251     -- For okl_supp_invlice_dtls Begin
6252     l_osid_tab l_osid_type;
6253     l_osobject_version_number_tab l_osobject_version_number_type;
6254     l_oscle_id_tab l_oscle_id_type;
6255     l_osfa_cle_id_tab l_osfa_cle_id_type;
6256     l_osinvoice_number_tab l_osinvoice_number_type;
6257     l_osdate_invoiced_tab l_osdate_invoiced_type;
6258     l_osdate_due_tab l_osdate_due_type;
6259     l_osshipping_address_id1_tab l_osshipping_address_id1_type;
6260     l_osshipping_address_id2_tab l_osshipping_address_id2_type;
6261     l_osshipping_address_code_tab l_osshipping_address_code_type;
6262     l_osattribute_category_tab l_osattribute_category_type;
6263     l_osattribute1_tab l_osattribute1_type;
6264     l_osattribute2_tab l_osattribute2_type;
6265     l_osattribute3_tab l_osattribute3_type;
6266     l_osattribute4_tab l_osattribute4_type;
6267     l_osattribute5_tab l_osattribute5_type;
6268     l_osattribute6_tab l_osattribute6_type;
6269     l_osattribute7_tab l_osattribute7_type;
6270     l_osattribute8_tab l_osattribute8_type;
6271     l_osattribute9_tab l_osattribute9_type;
6272     l_osattribute10_tab l_osattribute10_type;
6273     l_osattribute11_tab l_osattribute11_type;
6274     l_osattribute12_tab l_osattribute12_type;
6275     l_osattribute13_tab l_osattribute13_type;
6276     l_osattribute14_tab l_osattribute14_type;
6277     l_osattribute15_tab l_osattribute15_type;
6278     l_oscreated_by_tab l_oscreated_by_type;
6279     l_oscreation_date_tab l_oscreation_date_type;
6280     l_oslast_updated_by_tab l_oslast_updated_by_type;
6281     l_oslast_update_date_tab l_oslast_update_date_type;
6282     l_oslast_update_login_tab l_oslast_update_login_type;
6283 
6284     l_supp_invoice_dtls_counter NUMBER := 1;
6285 
6286     -- For okl_supp_invlice_dtls End
6287 
6288     -- For okl_k_party_roles Begin
6289     l_plid_tab l_plid_type;
6290     l_plobject_version_number_tab l_plobject_version_number_type;
6291     l_plattribute_category_tab l_plattribute_category_type;
6292     l_plattribute1_tab l_plattribute1_type;
6293     l_plattribute2_tab l_plattribute2_type;
6294     l_plattribute3_tab l_plattribute3_type;
6295     l_plattribute4_tab l_plattribute4_type;
6296     l_plattribute5_tab l_plattribute5_type;
6297     l_plattribute6_tab l_plattribute6_type;
6298     l_plattribute7_tab l_plattribute7_type;
6299     l_plattribute8_tab l_plattribute8_type;
6300     l_plattribute9_tab l_plattribute9_type;
6301     l_plattribute10_tab l_plattribute10_type;
6302     l_plattribute11_tab l_plattribute11_type;
6303     l_plattribute12_tab l_plattribute12_type;
6304     l_plattribute13_tab l_plattribute13_type;
6305     l_plattribute14_tab l_plattribute14_type;
6306     l_plattribute15_tab l_plattribute15_type;
6307 
6308     l_okl_k_party_roles_counter number := 1;
6309 
6310     -- For okl_k_party_roles End
6311 
6312     -- For party_roles_tl Begin
6313     l_pid_tab l_pid_type;
6314     l_planguage_tab l_planguage_type;
6315     l_psource_lang_tab l_psource_lang_type;
6316     l_psfwt_flag_tab l_psfwt_flag_type;
6317     l_pcreated_by_tab l_pcreated_by_type;
6318     l_pcreation_date_tab l_pcreation_date_type;
6319     l_plast_updated_by_tab l_plast_updated_by_type;
6320     l_plast_update_date_tab l_plast_update_date_type;
6321     l_pcognomen_tab l_pcognomen_type;
6322     l_palias_tab l_palias_type;
6323     l_plast_update_login_tab l_plast_update_login_type;
6324     l_psecurity_group_id_tab l_psecurity_group_id_type;
6325 
6326     l_party_roles_tl_counter NUMBER := 1;
6327     -- For party_roles_tl End
6328 
6329     -- For okc_contacts Begin
6330 
6331     l_cid_tab l_cid_type;
6332     l_ccpl_id_tab l_ccpl_id_type;
6333     l_ccro_code_tab l_ccro_code_type;
6334     l_cdnz_chr_id_tab l_cdnz_chr_id_type;
6335     l_cobject1_id1_tab l_cobject1_id1_type;
6336     l_cobject1_id2_tab l_cobject1_id2_type;
6337     l_cjtot_object1_code_tab l_cjtot_object1_code_type;
6338     l_cobject_version_number_tab l_cobject_version_number_type;
6339     l_ccreated_by_tab l_ccreated_by_type;
6340     l_ccreation_date_tab l_ccreation_date_type;
6341     l_clast_updated_by_tab l_clast_updated_by_type;
6342     l_clast_update_date_tab l_clast_update_date_type;
6343     l_ccontact_sequence_tab l_ccontact_sequence_type;
6344     l_clast_update_login_tab l_clast_update_login_type;
6345     l_cattribute_category_tab l_cattribute_category_type;
6346     l_cattribute1_tab l_cattribute1_type;
6347     l_cattribute2_tab l_cattribute2_type;
6348     l_cattribute3_tab l_cattribute3_type;
6349     l_cattribute4_tab l_cattribute4_type;
6350     l_cattribute5_tab l_cattribute5_type;
6351     l_cattribute6_tab l_cattribute6_type;
6352     l_cattribute7_tab l_cattribute7_type;
6353     l_cattribute8_tab l_cattribute8_type;
6354     l_cattribute9_tab l_cattribute9_type;
6355     l_cattribute10_tab l_cattribute10_type;
6356     l_cattribute11_tab l_cattribute11_type;
6357     l_cattribute12_tab l_cattribute12_type;
6358     l_cattribute13_tab l_cattribute13_type;
6359     l_cattribute14_tab l_cattribute14_type;
6360     l_cattribute15_tab l_cattribute15_type;
6361     l_csecurity_group_id_tab l_csecurity_group_id_type;
6362     l_cstart_date_tab l_cstart_date_type;
6363     l_cend_date_tab l_cend_date_type;
6364     l_cprimary_yn_tab l_cprimary_yn_type;
6365     l_cresource_class_tab l_cresource_class_type;
6366 
6367     l_contacts_counter NUMBER := 1;
6368     -- For okc_contacts End
6369 
6370     -- For okc_rule_groups_b Begin
6371     l_rid_tab3 l_rid_type;
6372 
6373     l_rid_tab l_rid_type;
6374     l_rrgd_code_tab l_rrgd_code_type;
6375     l_rchr_id_tab l_rchr_id_type;
6376     l_rcle_id_tab l_rcle_id_type;
6377     l_rdnz_chr_id_tab l_rdnz_chr_id_type;
6378     l_rparent_rgp_id_tab l_rparent_rgp_id_type;
6379     l_rsat_code_tab l_rsat_code_type;
6380     l_robject_version_number_tab l_robject_version_number_type;
6381     l_rrgp_type_tab l_rrgp_type_type;
6382     l_rcreated_by_tab l_rcreated_by_type;
6383     l_rcreation_date_tab l_rcreation_date_type;
6384     l_rlast_updated_by_tab l_rlast_updated_by_type;
6385     l_rlast_update_date_tab l_rlast_update_date_type;
6386     l_rlast_update_login_tab l_rlast_update_login_type;
6387     l_rattribute_category_tab l_rattribute_category_type;
6388     l_rattribute1_tab l_rattribute1_type;
6389     l_rattribute2_tab l_rattribute2_type;
6390     l_rattribute3_tab l_rattribute3_type;
6391     l_rattribute4_tab l_rattribute4_type;
6392     l_rattribute5_tab l_rattribute5_type;
6393     l_rattribute6_tab l_rattribute6_type;
6394     l_rattribute7_tab l_rattribute7_type;
6395     l_rattribute8_tab l_rattribute8_type;
6396     l_rattribute9_tab l_rattribute9_type;
6397     l_rattribute10_tab l_rattribute10_type;
6398     l_rattribute11_tab l_rattribute11_type;
6399     l_rattribute12_tab l_rattribute12_type;
6400     l_rattribute13_tab l_rattribute13_type;
6401     l_rattribute14_tab l_rattribute14_type;
6402     l_rattribute15_tab l_rattribute15_type;
6403     l_rsecurity_group_id_tab l_rsecurity_group_id_type;
6404 
6405     l_rule_groups_b_counter NUMBER := 1;
6406     -- For okc_rule_groups_b End
6407 
6408     -- For okc_rule_groups_tl Begin
6409 
6410     l_rtid_tab l_rtid_type;
6411     l_rtlanguage_tab l_rtlanguage_type;
6412     l_rtsource_lang_tab l_rtsource_lang_type;
6413     l_rtsfwt_flag_tab l_rtsfwt_flag_type;
6414     l_rtcomments_tab l_rtcomments_type;
6415     l_rtcreated_by_tab l_rtcreated_by_type;
6416     l_rtcreation_date_tab l_rtcreation_date_type;
6417     l_rtlast_updated_by_tab l_rtlast_updated_by_type;
6418     l_rtlast_update_date_tab l_rtlast_update_date_type;
6419     l_rtlast_update_login_tab l_rtlast_update_login_type;
6420     l_rtsecurity_group_id_tab l_rtsecurity_group_id_type;
6421 
6422     l_rule_groups_tl_counter NUMBER := 1;
6423     -- For okc_rule_groups_tl End
6424 
6425     -- For okc_rules_b Begin
6426 
6427     l_rrid_tab3 l_rrid_type;
6428 
6429     l_rrid_tab l_rrid_type;
6430     l_rrrgp_id_tab l_rrrgp_id_type;
6431     l_rrobject1_id1_tab l_rrobject1_id1_type;
6432     l_rrobject2_id1_tab l_rrobject2_id1_type;
6433     l_rrobject3_id1_tab l_rrobject3_id1_type;
6434     l_rrobject1_id2_tab l_rrobject1_id2_type;
6435     l_rrobject2_id2_tab l_rrobject2_id2_type;
6436     l_rrobject3_id2_tab l_rrobject3_id2_type;
6437     l_rrjtot_object1_code_tab l_rrjtot_object1_code_type;
6438     l_rrjtot_object2_code_tab l_rrjtot_object2_code_type;
6439     l_rrjtot_object3_code_tab l_rrjtot_object3_code_type;
6440     l_rrdnz_chr_id_tab l_rrdnz_chr_id_type;
6441     l_rrstd_template_yn_tab l_rrstd_template_yn_type;
6442     l_rrwarn_yn_tab l_rrwarn_yn_type;
6443     l_rrpriority_tab l_rrpriority_type;
6444     l_rrobject_version_number_tab l_rrobject_version_number_type;
6445     l_rrcreated_by_tab l_rrcreated_by_type;
6446     l_rrcreation_date_tab l_rrcreation_date_type;
6447     l_rrlast_updated_by_tab l_rrlast_updated_by_type;
6448     l_rrlast_update_date_tab l_rrlast_update_date_type;
6449     l_rrlast_update_login_tab l_rrlast_update_login_type;
6450     l_rrattribute_category_tab l_rrattribute_category_type;
6451     l_rrattribute1_tab l_rrattribute1_type;
6452     l_rrattribute2_tab l_rrattribute2_type;
6453     l_rrattribute3_tab l_rrattribute3_type;
6454     l_rrattribute4_tab l_rrattribute4_type;
6455     l_rrattribute5_tab l_rrattribute5_type;
6456     l_rrattribute6_tab l_rrattribute6_type;
6457     l_rrattribute7_tab l_rrattribute7_type;
6458     l_rrattribute8_tab l_rrattribute8_type;
6459     l_rrattribute9_tab l_rrattribute9_type;
6460     l_rrattribute10_tab l_rrattribute10_type;
6461     l_rrattribute11_tab l_rrattribute11_type;
6462     l_rrattribute12_tab l_rrattribute12_type;
6463     l_rrattribute13_tab l_rrattribute13_type;
6464     l_rrattribute14_tab l_rrattribute14_type;
6465     l_rrattribute15_tab l_rrattribute15_type;
6466     l_rrrule_information_cate_tab l_rrrule_information_cate_type;
6467     l_rrrule_information1_tab l_rrrule_information1_type;
6468     l_rrrule_information2_tab l_rrrule_information2_type;
6469     l_rrrule_information3_tab l_rrrule_information3_type;
6470     l_rrrule_information4_tab l_rrrule_information4_type;
6471     l_rrrule_information5_tab l_rrrule_information5_type;
6472     l_rrrule_information6_tab l_rrrule_information6_type;
6473     l_rrrule_information7_tab l_rrrule_information7_type;
6474     l_rrrule_information8_tab l_rrrule_information8_type;
6475     l_rrrule_information9_tab l_rrrule_information9_type;
6476     l_rrrule_information10_tab l_rrrule_information10_type;
6477     l_rrrule_information11_tab l_rrrule_information11_type;
6478     l_rrrule_information12_tab l_rrrule_information12_type;
6479     l_rrrule_information13_tab l_rrrule_information13_type;
6480     l_rrrule_information14_tab l_rrrule_information14_type;
6481     l_rrrule_information15_tab l_rrrule_information15_type;
6482     l_rrsecurity_group_id_tab l_rrsecurity_group_id_type;
6483     l_rrtemplate_yn_tab l_rrtemplate_yn_type;
6484     l_rrans_set_jtot_object_c_tab l_rrans_set_jtot_object_c_type;
6485     l_rrans_set_jtot_object_1_tab l_rrans_set_jtot_object_1_type;
6486     l_rrans_set_jtot_object_2_tab l_rrans_set_jtot_object_2_type;
6487     l_rrdisplay_sequence_tab l_rrdisplay_sequence_type;
6488     l_rrcomments_tab l_rrcomments_type;
6489 
6490     l_rules_b_counter NUMBER := 1;
6491     -- For okc_rules_b End
6492 
6493     -- For okc_rules_tl Begin
6494 
6495     l_trid_tab l_trid_type;
6496     l_trlanguage_tab l_trlanguage_type;
6497     l_trsource_lang_tab l_trsource_lang_type;
6498     l_trsfwt_flag_tab l_trsfwt_flag_type;
6499     l_trcomments_tab l_trcomments_type;
6500     l_trtext_tab l_trtext_type;
6501     l_trcreated_by_tab l_trcreated_by_type;
6502     l_trcreation_date_tab l_trcreation_date_type;
6503     l_trlast_updated_by_tab l_trlast_updated_by_type;
6504     l_trlast_update_date_tab l_trlast_update_date_type;
6505     l_trlast_update_login_tab l_trlast_update_login_type;
6506     l_trsecurity_group_id_tab l_trsecurity_group_id_type;
6507 
6508     l_rules_tl_counter NUMBER := 1;
6509     -- For okc_rules_tl End
6510 
6511     -- For okc_k_items Begin
6512 
6513     l_iid_tab l_iid_type;
6514     l_icle_id_tab l_icle_id_type;
6515     l_ichr_id_tab l_ichr_id_type;
6516     l_icle_id_for_tab l_icle_id_for_type;
6517     l_idnz_chr_id_tab l_idnz_chr_id_type;
6518     l_iobject1_id1_tab l_iobject1_id1_type;
6519     l_iobject1_id2_tab l_iobject1_id2_type;
6520     l_ijtot_object1_code_tab l_ijtot_object1_code_type;
6521     l_iuom_code_tab l_iuom_code_type;
6522     l_iexception_yn_tab l_iexception_yn_type;
6523     l_inumber_of_items_tab l_inumber_of_items_type;
6524     l_ipriced_item_yn_tab l_ipriced_item_yn_type;
6525     l_iobject_version_number_tab l_iobject_version_number_type;
6526     l_icreated_by_tab l_icreated_by_type;
6527     l_icreation_date_tab l_icreation_date_type;
6528     l_ilast_updated_by_tab l_ilast_updated_by_type;
6529     l_ilast_update_date_tab l_ilast_update_date_type;
6530     l_ilast_update_login_tab l_ilast_update_login_type;
6531     l_isecurity_group_id_tab l_isecurity_group_id_type;
6532     l_iupg_orig_system_ref_tab l_iupg_orig_system_ref_type;
6533     l_iupg_orig_system_ref_id_tab l_iupg_orig_system_ref_id_type;
6534     l_iprogram_application_id_tab l_iprogram_application_id_type;
6535     l_iprogram_id_tab l_iprogram_id_type;
6536     l_iprogram_update_date_tab l_iprogram_update_date_type;
6537     l_irequest_id_tab l_irequest_id_type;
6538 
6539     l_items_counter NUMBER := 1;
6540     -- For okc_k_items End
6541 
6542     -- For okl_trx_assets Begin (42)
6543 
6544     l_tid_tab l_tid_type;
6545     l_tica_id_tab l_tica_id_type;
6546     l_ttas_type_tab l_ttas_type_type;
6547     l_tobject_version_number_tab l_tobject_version_number_type;
6548     l_tattribute_category_tab l_tattribute_category_type;
6549     l_tattribute1_tab l_tattribute1_type;
6550     l_tattribute2_tab l_tattribute2_type;
6551     l_tattribute3_tab l_tattribute3_type;
6552     l_tattribute4_tab l_tattribute4_type;
6553     l_tattribute5_tab l_tattribute5_type;
6554     l_tattribute6_tab l_tattribute6_type;
6555     l_tattribute7_tab l_tattribute7_type;
6556     l_tattribute8_tab l_tattribute8_type;
6557     l_tattribute9_tab l_tattribute9_type;
6558     l_tattribute10_tab l_tattribute10_type;
6559     l_tattribute11_tab l_tattribute11_type;
6560     l_tattribute12_tab l_tattribute12_type;
6561     l_tattribute13_tab l_tattribute13_type;
6562     l_tattribute14_tab l_tattribute14_type;
6563     l_tattribute15_tab l_tattribute15_type;
6564     l_tcreated_by_tab l_tcreated_by_type;
6565     l_tcreation_date_tab l_tcreation_date_type;
6566     l_tlast_updated_by_tab l_tlast_updated_by_type;
6567     l_tlast_update_date_tab l_tlast_update_date_type;
6568     l_tlast_update_login_tab l_tlast_update_login_type;
6569     l_ttsu_code_tab l_ttsu_code_type;
6570     l_ttry_id_tab l_ttry_id_type;
6571     l_tdate_trans_occurred_tab l_tdate_trans_occurred_type;
6572     l_ttrans_number_tab l_ttrans_number_type;
6573     l_tcomments_tab l_tcomments_type;
6574     l_treq_asset_id_tab l_treq_asset_id_type;
6575     l_ttotal_match_amount_tab l_ttotal_match_amount_type;
6576     l_torg_id_tab l_torg_id_type;
6577     l_tlegal_entity_id_tab l_tlegal_entity_id_type;
6578 
6579     l_trx_assets_counter NUMBER := 1;
6580     -- For okl_trx_assets End (42)
6581 
6582     -- For okl_trx_assets Begin (45)
6583 
6584     l_t2id_tab l_t2id_type;
6585     l_t2ica_id_tab l_t2ica_id_type;
6586     l_t2tas_type_tab l_t2tas_type_type;
6587     l_t2object_version_number_tab l_t2object_version_number_type;
6588     l_t2attribute_category_tab l_t2attribute_category_type;
6589     l_t2attribute1_tab l_t2attribute1_type;
6590     l_t2attribute2_tab l_t2attribute2_type;
6591     l_t2attribute3_tab l_t2attribute3_type;
6592     l_t2attribute4_tab l_t2attribute4_type;
6593     l_t2attribute5_tab l_t2attribute5_type;
6594     l_t2attribute6_tab l_t2attribute6_type;
6595     l_t2attribute7_tab l_t2attribute7_type;
6596     l_t2attribute8_tab l_t2attribute8_type;
6597     l_t2attribute9_tab l_t2attribute9_type;
6598     l_t2attribute10_tab l_t2attribute10_type;
6599     l_t2attribute11_tab l_t2attribute11_type;
6600     l_t2attribute12_tab l_t2attribute12_type;
6601     l_t2attribute13_tab l_t2attribute13_type;
6602     l_t2attribute14_tab l_t2attribute14_type;
6603     l_t2attribute15_tab l_t2attribute15_type;
6604     l_t2created_by_tab l_t2created_by_type;
6605     l_t2creation_date_tab l_t2creation_date_type;
6606     l_t2last_updated_by_tab l_t2last_updated_by_type;
6607     l_t2last_update_date_tab l_t2last_update_date_type;
6608     l_t2last_update_login_tab l_t2last_update_login_type;
6609     l_t2tsu_code_tab l_t2tsu_code_type;
6610     l_t2try_id_tab l_t2try_id_type;
6611     l_t2date_trans_occurred_tab l_t2date_trans_occurred_type;
6612     l_t2trans_number_tab l_t2trans_number_type;
6613     l_t2comments_tab l_t2comments_type;
6614     l_t2req_asset_id_tab l_t2req_asset_id_type;
6615     l_t2total_match_amount_tab l_t2total_match_amount_type;
6616     l_t2org_id_tab l_t2org_id_type;
6617     l_t2legal_entity_id_tab l_t2legal_entity_id_type;
6618 
6619     l_trx_assets_counter2 NUMBER := 1;
6620 
6621     -- For okl_trx_assets End (45)
6622 
6623     -- For okl_txl_assets_b Begin
6624 
6625     l_tbid_tab3 l_tbid_type;
6626 
6627     l_tbid_tab l_tbid_type;
6628     l_tbobject_version_number_tab l_tbobject_version_number_type;
6629     l_tbtas_id_tab l_tbtas_id_type;
6630     l_tbilo_id_tab l_tbilo_id_type;
6631     l_tbilo_id_old_tab l_tbilo_id_old_type;
6632     l_tbiay_id_tab l_tbiay_id_type;
6633     l_tbiay_id_new_tab l_tbiay_id_new_type;
6634     l_tbkle_id_tab l_tbkle_id_type;
6635     l_tbdnz_khr_id_tab l_tbdnz_khr_id_type;
6636     l_tbline_number_tab l_tbline_number_type;
6637     l_tborg_id_tab l_tborg_id_type;
6638     l_tbtal_type_tab l_tbtal_type_type;
6639     l_tbasset_number_tab l_tbasset_number_type;
6640     l_tbfa_location_id_tab l_tbfa_location_id_type;
6641     l_tboriginal_cost_tab l_tboriginal_cost_type;
6642     l_tbcurrent_units_tab l_tbcurrent_units_type;
6643     l_tbmanufacturer_name_tab l_tbmanufacturer_name_type;
6644     l_tbyear_manufactured_tab l_tbyear_manufactured_type;
6645     l_tbsupplier_id_tab l_tbsupplier_id_type;
6646     l_tbused_asset_yn_tab l_tbused_asset_yn_type;
6647     l_tbtag_number_tab l_tbtag_number_type;
6648     l_tbmodel_number_tab l_tbmodel_number_type;
6649     l_tbcorporate_book_tab l_tbcorporate_book_type;
6650     l_tbdate_purchased_tab l_tbdate_purchased_type;
6651     l_tbdate_delivery_tab l_tbdate_delivery_type;
6652     l_tbin_service_date_tab l_tbin_service_date_type;
6653     l_tblife_in_months_tab l_tblife_in_months_type;
6654     l_tbdepreciation_id_tab l_tbdepreciation_id_type;
6655     l_tbdepreciation_cost_tab l_tbdepreciation_cost_type;
6656     l_tbdeprn_method_tab l_tbdeprn_method_type;
6657     l_tbdeprn_rate_tab l_tbdeprn_rate_type;
6658     l_tbsalvage_value_tab l_tbsalvage_value_type;
6659     l_tbpercent_salvage_value_tab l_tbpercent_salvage_value_type;
6660     l_tbattribute_category_tab l_tbattribute_category_type;
6661     l_tbattribute1_tab l_tbattribute1_type;
6662     l_tbattribute2_tab l_tbattribute2_type;
6663     l_tbattribute3_tab l_tbattribute3_type;
6664     l_tbattribute4_tab l_tbattribute4_type;
6665     l_tbattribute5_tab l_tbattribute5_type;
6666     l_tbattribute6_tab l_tbattribute6_type;
6667     l_tbattribute7_tab l_tbattribute7_type;
6668     l_tbattribute8_tab l_tbattribute8_type;
6669     l_tbattribute9_tab l_tbattribute9_type;
6670     l_tbattribute10_tab l_tbattribute10_type;
6671     l_tbattribute11_tab l_tbattribute11_type;
6672     l_tbattribute12_tab l_tbattribute12_type;
6673     l_tbattribute13_tab l_tbattribute13_type;
6674     l_tbattribute14_tab l_tbattribute14_type;
6675     l_tbattribute15_tab l_tbattribute15_type;
6676     l_tbcreated_by_tab l_tbcreated_by_type;
6677     l_tbcreation_date_tab l_tbcreation_date_type;
6678     l_tblast_updated_by_tab l_tblast_updated_by_type;
6679     l_tblast_update_date_tab l_tblast_update_date_type;
6680     l_tblast_update_login_tab l_tblast_update_login_type;
6681     l_tbdepreciate_yn_tab l_tbdepreciate_yn_type;
6682     l_tbhold_period_days_tab l_tbhold_period_days_type;
6683     l_tbold_salvage_value_tab l_tbold_salvage_value_type;
6684     l_tbnew_residual_value_tab l_tbnew_residual_value_type;
6685     l_tbold_residual_value_tab l_tbold_residual_value_type;
6686     l_tbunits_retired_tab l_tbunits_retired_type;
6687     l_tbcost_retired_tab l_tbcost_retired_type;
6688     l_tbsale_proceeds_tab l_tbsale_proceeds_type;
6689     l_tbremoval_cost_tab l_tbremoval_cost_type;
6690     l_tbdnz_asset_id_tab l_tbdnz_asset_id_type;
6691     l_tbdate_due_tab l_tbdate_due_type;
6692     l_tbrep_asset_id_tab l_tbrep_asset_id_type;
6693     l_tblke_asset_id_tab l_tblke_asset_id_type;
6694     l_tbmatch_amount_tab l_tbmatch_amount_type;
6695     l_tbsplit_into_singles_fl_tab l_tbsplit_into_singles_fl_type;
6696     l_tbsplit_into_units_tab l_tbsplit_into_units_type;
6697     l_tbcurrency_code_tab l_tbcurrency_code_type;
6698     l_tbcurrency_convers_type_tab l_tbcurrency_convers_type_type;
6699     l_tbcurrency_convers_rate_tab l_tbcurrency_convers_rate_type;
6700     l_tbcurrency_convers_date_tab l_tbcurrency_convers_date_type;
6701     l_tbasset_key_id_tab l_tbasset_key_id_type;
6702     l_tbfa_trx_date_tab l_tbfa_trx_date_type;
6703 
6704     l_txl_assets_b_counter NUMBER := 1;
6705 
6706     l_tb2id_tab l_tbid_type;
6707     l_tb2object_version_number_tab l_tbobject_version_number_type;
6708     l_tb2tas_id_tab l_tbtas_id_type;
6709     l_tb2ilo_id_tab l_tbilo_id_type;
6710     l_tb2ilo_id_old_tab l_tbilo_id_old_type;
6711     l_tb2iay_id_tab l_tbiay_id_type;
6712     l_tb2iay_id_new_tab l_tbiay_id_new_type;
6713     l_tb2kle_id_tab l_tbkle_id_type;
6714     l_tb2dnz_khr_id_tab l_tbdnz_khr_id_type;
6715     l_tb2line_number_tab l_tbline_number_type;
6716     l_tb2org_id_tab l_tborg_id_type;
6717     l_tb2tal_type_tab l_tbtal_type_type;
6718     l_tb2asset_number_tab l_tbasset_number_type;
6719     l_tb2fa_location_id_tab l_tbfa_location_id_type;
6720     l_tb2original_cost_tab l_tboriginal_cost_type;
6721     l_tb2current_units_tab l_tbcurrent_units_type;
6722     l_tb2manufacturer_name_tab l_tbmanufacturer_name_type;
6723     l_tb2year_manufactured_tab l_tbyear_manufactured_type;
6724     l_tb2supplier_id_tab l_tbsupplier_id_type;
6725     l_tb2used_asset_yn_tab l_tbused_asset_yn_type;
6726     l_tb2tag_number_tab l_tbtag_number_type;
6727     l_tb2model_number_tab l_tbmodel_number_type;
6728     l_tb2corporate_book_tab l_tbcorporate_book_type;
6729     l_tb2date_purchased_tab l_tbdate_purchased_type;
6730     l_tb2date_delivery_tab l_tbdate_delivery_type;
6731     l_tb2in_service_date_tab l_tbin_service_date_type;
6732     l_tb2life_in_months_tab l_tblife_in_months_type;
6733     l_tb2depreciation_id_tab l_tbdepreciation_id_type;
6734     l_tb2depreciation_cost_tab l_tbdepreciation_cost_type;
6735     l_tb2deprn_method_tab l_tbdeprn_method_type;
6736     l_tb2deprn_rate_tab l_tbdeprn_rate_type;
6737     l_tb2salvage_value_tab l_tbsalvage_value_type;
6738     l_tb2percent_salvage_value_tab l_tbpercent_salvage_value_type;
6739     l_tb2attribute_category_tab l_tbattribute_category_type;
6740     l_tb2attribute1_tab l_tbattribute1_type;
6741     l_tb2attribute2_tab l_tbattribute2_type;
6742     l_tb2attribute3_tab l_tbattribute3_type;
6743     l_tb2attribute4_tab l_tbattribute4_type;
6744     l_tb2attribute5_tab l_tbattribute5_type;
6745     l_tb2attribute6_tab l_tbattribute6_type;
6746     l_tb2attribute7_tab l_tbattribute7_type;
6747     l_tb2attribute8_tab l_tbattribute8_type;
6748     l_tb2attribute9_tab l_tbattribute9_type;
6749     l_tb2attribute10_tab l_tbattribute10_type;
6750     l_tb2attribute11_tab l_tbattribute11_type;
6751     l_tb2attribute12_tab l_tbattribute12_type;
6752     l_tb2attribute13_tab l_tbattribute13_type;
6753     l_tb2attribute14_tab l_tbattribute14_type;
6754     l_tb2attribute15_tab l_tbattribute15_type;
6755     l_tb2created_by_tab l_tbcreated_by_type;
6756     l_tb2creation_date_tab l_tbcreation_date_type;
6757     l_tb2last_updated_by_tab l_tblast_updated_by_type;
6758     l_tb2last_update_date_tab l_tblast_update_date_type;
6759     l_tb2last_update_login_tab l_tblast_update_login_type;
6760     l_tb2depreciate_yn_tab l_tbdepreciate_yn_type;
6761     l_tb2hold_period_days_tab l_tbhold_period_days_type;
6762     l_tb2old_salvage_value_tab l_tbold_salvage_value_type;
6763     l_tb2new_residual_value_tab l_tbnew_residual_value_type;
6764     l_tb2old_residual_value_tab l_tbold_residual_value_type;
6765     l_tb2units_retired_tab l_tbunits_retired_type;
6766     l_tb2cost_retired_tab l_tbcost_retired_type;
6767     l_tb2sale_proceeds_tab l_tbsale_proceeds_type;
6768     l_tb2removal_cost_tab l_tbremoval_cost_type;
6769     l_tb2dnz_asset_id_tab l_tbdnz_asset_id_type;
6770     l_tb2date_due_tab l_tbdate_due_type;
6771     l_tb2rep_asset_id_tab l_tbrep_asset_id_type;
6772     l_tb2lke_asset_id_tab l_tblke_asset_id_type;
6773     l_tb2match_amount_tab l_tbmatch_amount_type;
6774     l_tb2split_into_units_tab l_tbsplit_into_units_type;
6775     l_tb2currency_code_tab l_tbcurrency_code_type;
6776     l_tb2asset_key_id_tab l_tbasset_key_id_type;
6777     l_tb2fa_trx_date_tab l_tbfa_trx_date_type;
6778     l_tb2fa_cost_tab l_tbfa_cost_type;
6779 
6780     -- For okl_txl_assets_b End
6781 
6782     -- For okl_txl_assets_tl Begin
6783 
6784     l_tlid_tab l_tlid_type;
6785     l_tllanguage_tab l_tllanguage_type;
6786     l_tlsource_lang_tab l_tlsource_lang_type;
6787     l_tlsfwt_flag_tab l_tlsfwt_flag_type;
6788     l_tldescription_tab l_tldescription_type;
6789     l_tlcreated_by_tab l_tlcreated_by_type;
6790     l_tlcreation_date_tab l_tlcreation_date_type;
6791     l_tllast_updated_by_tab l_tllast_updated_by_type;
6792     l_tllast_update_date_tab l_tllast_update_date_type;
6793     l_tllast_update_login_tab l_tllast_update_login_type;
6794 
6795     l_txl_assets_tl_counter NUMBER := 1;
6796 
6797     -- For okl_txl_assets_tl End
6798 
6799     -- For okl_txd_assets_b Begin
6800 
6801     l_dbid_tab3 l_dbid_type;
6802     l_dbid_tab l_dbid_type;
6803     l_dbobject_version_number_tab l_dbobject_version_number_type;
6804     l_dbtal_id_tab l_dbtal_id_type;
6805     l_dbtarget_kle_id_tab l_dbtarget_kle_id_type;
6806     l_dbline_detail_number_tab l_dbline_detail_number_type;
6807     l_dbasset_number_tab l_dbasset_number_type;
6808     l_dbquantity_tab l_dbquantity_type;
6809     l_dbcost_tab l_dbcost_type;
6810     l_dbtax_book_tab l_dbtax_book_type;
6811     l_dblife_in_months_tax_tab l_dblife_in_months_tax_type;
6812     l_dbdeprn_method_tax_tab l_dbdeprn_method_tax_type;
6813     l_dbdeprn_rate_tax_tab l_dbdeprn_rate_tax_type;
6814     l_dbsalvage_value_tab l_dbsalvage_value_type;
6815     l_dbsplit_percent_tab l_dbsplit_percent_type;
6816     l_dbinventory_item_id_tab l_dbinventory_item_id_type;
6817     l_dbattribute_category_tab l_dbattribute_category_type;
6818     l_dbattribute1_tab l_dbattribute1_type;
6819     l_dbattribute2_tab l_dbattribute2_type;
6820     l_dbattribute3_tab l_dbattribute3_type;
6821     l_dbattribute4_tab l_dbattribute4_type;
6822     l_dbattribute5_tab l_dbattribute5_type;
6823     l_dbattribute6_tab l_dbattribute6_type;
6824     l_dbattribute7_tab l_dbattribute7_type;
6825     l_dbattribute8_tab l_dbattribute8_type;
6826     l_dbattribute9_tab l_dbattribute9_type;
6827     l_dbattribute10_tab l_dbattribute10_type;
6828     l_dbattribute11_tab l_dbattribute11_type;
6829     l_dbattribute12_tab l_dbattribute12_type;
6830     l_dbattribute13_tab l_dbattribute13_type;
6831     l_dbattribute14_tab l_dbattribute14_type;
6832     l_dbattribute15_tab l_dbattribute15_type;
6833     l_dbcreated_by_tab l_dbcreated_by_type;
6834     l_dbcreation_date_tab l_dbcreation_date_type;
6835     l_dblast_updated_by_tab l_dblast_updated_by_type;
6836     l_dblast_update_date_tab l_dblast_update_date_type;
6837     l_dblast_update_login_tab l_dblast_update_login_type;
6838     l_dbcurrency_code_tab l_dbcurrency_code_type;
6839     l_dbcurrency_convers_type_tab l_dbcurrency_convers_type_type;
6840     l_dbcurrency_convers_rate_tab l_dbcurrency_convers_rate_type;
6841     l_dbcurrency_convers_date_tab l_dbcurrency_convers_date_type;
6842 
6843     l_txd_assets_b_counter NUMBER := 1;
6844 
6845     -- For okl_txd_assets_b End
6846 
6847     -- For okl_txd_assets_tl Begin
6848 
6849     l_dlid_tab l_dlid_type;
6850     l_dllanguage_tab l_dllanguage_type;
6851     l_dlsource_lang_tab l_dlsource_lang_type;
6852     l_dlsfwt_flag_tab l_dlsfwt_flag_type;
6853     l_dldescription_tab l_dldescription_type;
6854     l_dlcreated_by_tab l_dlcreated_by_type;
6855     l_dlcreation_date_tab l_dlcreation_date_type;
6856     l_dllast_updated_by_tab l_dllast_updated_by_type;
6857     l_dllast_update_date_tab l_dllast_update_date_type;
6858     l_dllast_update_login_tab l_dllast_update_login_type;
6859 
6860     l_txd_assets_tl_counter NUMBER := 1;
6861 
6862     -- For okl_txd_assets_tl End
6863 
6864     -- For okl_txl_itm_insts Begin
6865 
6866     l_tiid_tab l_tiid_type;
6867     l_tiobject_version_number_tab l_tiobject_version_number_type;
6868     l_titas_id_tab l_titas_id_type;
6869     l_tital_id_tab l_tital_id_type;
6870     l_tikle_id_tab l_tikle_id_type;
6871     l_tital_type_tab l_tital_type_type;
6872     l_tiline_number_tab l_tiline_number_type;
6873     l_tiinstance_number_ib_tab l_tiinstance_number_ib_type;
6874     l_tiobject_id1_new_tab l_tiobject_id1_new_type;
6875     l_tiobject_id2_new_tab l_tiobject_id2_new_type;
6876     l_tijtot_object_code_new_tab l_tijtot_object_code_new_type;
6877     l_tiobject_id1_old_tab l_tiobject_id1_old_type;
6878     l_tiobject_id2_old_tab l_tiobject_id2_old_type;
6879     l_tijtot_object_code_old_tab l_tijtot_object_code_old_type;
6880     l_tiinventory_org_id_tab l_tiinventory_org_id_type;
6881     l_tiserial_number_tab l_tiserial_number_type;
6882     l_timfg_serial_number_yn_tab l_timfg_serial_number_yn_type;
6883     l_tiinventory_item_id_tab l_tiinventory_item_id_type;
6884     l_tiinv_master_org_id_tab l_tiinv_master_org_id_type;
6885     l_tiattribute_category_tab l_tiattribute_category_type;
6886     l_tiattribute1_tab l_tiattribute1_type;
6887     l_tiattribute2_tab l_tiattribute2_type;
6888     l_tiattribute3_tab l_tiattribute3_type;
6889     l_tiattribute4_tab l_tiattribute4_type;
6890     l_tiattribute5_tab l_tiattribute5_type;
6891     l_tiattribute6_tab l_tiattribute6_type;
6892     l_tiattribute7_tab l_tiattribute7_type;
6893     l_tiattribute8_tab l_tiattribute8_type;
6894     l_tiattribute9_tab l_tiattribute9_type;
6895     l_tiattribute10_tab l_tiattribute10_type;
6896     l_tiattribute11_tab l_tiattribute11_type;
6897     l_tiattribute12_tab l_tiattribute12_type;
6898     l_tiattribute13_tab l_tiattribute13_type;
6899     l_tiattribute14_tab l_tiattribute14_type;
6900     l_tiattribute15_tab l_tiattribute15_type;
6901     l_ticreated_by_tab l_ticreated_by_type;
6902     l_ticreation_date_tab l_ticreation_date_type;
6903     l_tilast_updated_by_tab l_tilast_updated_by_type;
6904     l_tilast_update_date_tab l_tilast_update_date_type;
6905     l_tilast_update_login_tab l_tilast_update_login_type;
6906     l_tidnz_cle_id_tab l_tidnz_cle_id_type;
6907     l_tiinstance_id_tab l_tiinstance_id_type;
6908     l_tiselected_for_split_fl_tab l_tiselected_for_split_fl_type;
6909     l_tiasd_id_tab l_tiasd_id_type;
6910 
6911     l_txl_itm_insts_counter NUMBER := 1;
6912 
6913     -- okl_txl_itm_insts
6914     l_ti2id_tab l_tiid_type;
6915     l_ti2tas_id_tab l_titas_id_type;
6916     l_ti2kle_id_tab l_tikle_id_type;
6917     l_ti2line_number_tab l_tiline_number_type;
6918     l_ti2instance_number_ib_tab l_tiinstance_number_ib_type;
6919     l_ti2object_id1_new_tab l_tiobject_id1_new_type;
6920     l_ti2object_id2_new_tab l_tiobject_id2_new_type;
6921     l_ti2jtot_object_code_new_tab l_tijtot_object_code_new_type;
6922     l_ti2dnz_cle_id_tab l_tidnz_cle_id_type;
6923     l_ti2inventory_item_id_tab l_tiinventory_item_id_type;
6924     l_ti2inv_master_org_id_tab l_tiinv_master_org_id_type;
6925     l_ti2inventory_org_id_tab l_tiinventory_org_id_type;
6926     l_ti2serial_number_tab l_tiserial_number_type;
6927     l_ti2mfg_serial_number_yn_tab l_timfg_serial_number_yn_type;
6928 
6929     l_txl_itm_insts_counter2 NUMBER := 1;
6930 
6931     -- For okl_txl_itm_insts End
6932 
6933     -- For okc_k_lines_tl Begin
6934 
6935     l_olid_tab l_olid_type;
6936     l_ollanguage_tab l_ollanguage_type;
6937     l_olsource_lang_tab l_olsource_lang_type;
6938     l_olsfwt_flag_tab l_olsfwt_flag_type;
6939     l_olname_tab l_olname_type;
6940     l_olcomments_tab l_olcomments_type;
6941     l_olitem_description_tab l_olitem_description_type;
6942     l_olblock23text_tab l_olblock23text_type;
6943     l_olcreated_by_tab l_olcreated_by_type;
6944     l_olcreation_date_tab l_olcreation_date_type;
6945     l_ollast_updated_by_tab l_ollast_updated_by_type;
6946     l_ollast_update_date_tab l_ollast_update_date_type;
6947     l_ollast_update_login_tab l_ollast_update_login_type;
6948     l_olsecurity_group_id_tab l_olsecurity_group_id_type;
6949     l_oloke_boe_description_tab l_oloke_boe_description_type;
6950     l_olcognomen_tab l_olcognomen_type;
6951 
6952     l_ollse_id_tab l_lse_id_type;
6953 --avsingh: Bug 5710213: start
6954     l_ollty_code_tab l_lty_code_type;
6955 --avsingh: Bug 5710213: end
6956     l_olsts_code_tab l_sts_code_type;
6957     l_olfee_type_tab l_fee_type_type;
6958 
6959     l_okc_k_lines_tl_counter NUMBER := 1;
6960     -- For okc_k_lines_tl End
6961 
6962     -- For okl_party_payment_dtls Begin
6963 
6964     l_ppid_tab l_ppid_type;
6965     l_ppobject_version_number_tab l_ppobject_version_number_type;
6966     l_ppcpl_id_tab l_ppcpl_id_type;
6967     l_ppvendor_id_tab l_ppvendor_id_type;
6968     l_pppay_site_id_tab l_pppay_site_id_type;
6969     l_pppayment_term_id_tab l_pppayment_term_id_type;
6970     l_pppayment_method_code_tab l_pppayment_method_code_type;
6971     l_pppay_group_code_tab l_pppay_group_code_type;
6972     l_ppattribute_category_tab l_ppattribute_category_type;
6973     l_ppattribute1_tab l_ppattribute1_type;
6974     l_ppattribute2_tab l_ppattribute2_type;
6975     l_ppattribute3_tab l_ppattribute3_type;
6976     l_ppattribute4_tab l_ppattribute4_type;
6977     l_ppattribute5_tab l_ppattribute5_type;
6978     l_ppattribute6_tab l_ppattribute6_type;
6979     l_ppattribute7_tab l_ppattribute7_type;
6980     l_ppattribute8_tab l_ppattribute8_type;
6981     l_ppattribute9_tab l_ppattribute9_type;
6982     l_ppattribute10_tab l_ppattribute10_type;
6983     l_ppattribute11_tab l_ppattribute11_type;
6984     l_ppattribute12_tab l_ppattribute12_type;
6985     l_ppattribute13_tab l_ppattribute13_type;
6986     l_ppattribute14_tab l_ppattribute14_type;
6987     l_ppattribute15_tab l_ppattribute15_type;
6988     l_ppcreated_by_tab l_ppcreated_by_type;
6989     l_ppcreation_date_tab l_ppcreation_date_type;
6990     l_pplast_updated_by_tab l_pplast_updated_by_type;
6991     l_pplast_update_date_tab l_pplast_update_date_type;
6992     l_pplast_update_login_tab l_pplast_update_login_type;
6993     l_pppayment_hdr_id_tab l_pppayment_hdr_id_type;
6994     l_pppayment_start_date_tab l_pppayment_start_date_type;
6995     l_pppayment_frequency_tab l_pppayment_frequency_type;
6996     l_ppremit_days_tab l_ppremit_days_type;
6997     l_ppdisbursement_basis_tab l_ppdisbursement_basis_type;
6998     l_ppdisbursement_fixed_am_tab l_ppdisbursement_fixed_am_type;
6999     l_ppdisbursement_percent_tab l_ppdisbursement_percent_type;
7000     l_ppprocessing_fee_basis_tab l_ppprocessing_fee_basis_type;
7001     l_ppprocessing_fee_fixedt_tab l_ppprocessing_fee_fixedt_type;
7002     l_ppprocessing_fee_percen_tab l_ppprocessing_fee_percen_type;
7003     l_pppayment_basis_tab l_pppayment_basis_type;
7004 
7005     l_ppORIG_CONTRACT_LINE_ID_tab l_ppORIG_CONTRACT_LINE_ID_type; --sechawla 21-jul-09 8677460 : PRB ESG enhancements
7006 
7007     l_party_payment_dtls_counter NUMBER := 1;
7008 
7009     -- For okl_party_payment_dtls End
7010 
7011     -- For okl_slctd_optns Begin
7012 
7013     l_sid_tab l_sid_type;
7014     l_spov_id_tab l_spov_id_type;
7015     l_skhr_id_tab l_skhr_id_type;
7016     l_sobject_version_number_tab l_sobject_version_number_type;
7017     l_sattribute_category_tab l_sattribute_category_type;
7018     l_sattribute1_tab l_sattribute1_type;
7019     l_sattribute2_tab l_sattribute2_type;
7020     l_sattribute3_tab l_sattribute3_type;
7021     l_sattribute4_tab l_sattribute4_type;
7022     l_sattribute5_tab l_sattribute5_type;
7023     l_sattribute6_tab l_sattribute6_type;
7024     l_sattribute7_tab l_sattribute7_type;
7025     l_sattribute8_tab l_sattribute8_type;
7026     l_sattribute9_tab l_sattribute9_type;
7027     l_sattribute10_tab l_sattribute10_type;
7028     l_sattribute11_tab l_sattribute11_type;
7029     l_sattribute12_tab l_sattribute12_type;
7030     l_sattribute13_tab l_sattribute13_type;
7031     l_sattribute14_tab l_sattribute14_type;
7032     l_sattribute15_tab l_sattribute15_type;
7033     l_screated_by_tab l_screated_by_type;
7034     l_screation_date_tab l_screation_date_type;
7035     l_slast_updated_by_tab l_slast_updated_by_type;
7036     l_slast_update_date_tab l_slast_update_date_type;
7037     l_slast_update_login_tab l_slast_update_login_type;
7038 
7039     l_slctd_optns_counter NUMBER := 1;
7040 
7041     -- For okl_slctd_optns End
7042 
7043     -- For okc_rg_party_roles Begin
7044 
7045     l_gid_tab l_gid_type;
7046     l_grgp_id_tab l_grgp_id_type;
7047     l_grrd_id_tab l_grrd_id_type;
7048     l_gcpl_id_tab l_gcpl_id_type;
7049     l_gdnz_chr_id_tab l_gdnz_chr_id_type;
7050     l_gobject_version_number_tab l_gobject_version_number_type;
7051     l_gcreated_by_tab l_gcreated_by_type;
7052     l_gcreation_date_tab l_gcreation_date_type;
7053     l_glast_updated_by_tab l_glast_updated_by_type;
7054     l_glast_update_date_tab l_glast_update_date_type;
7055     l_glast_update_login_tab l_glast_update_login_type;
7056     l_gsecurity_group_id_tab l_gsecurity_group_id_type;
7057 
7058     l_rg_party_roles_counter NUMBER := 1;
7059 
7060     -- For okc_rg_party_roles End
7061 
7062     --l_okl_k_lines_rec2 lines_tbl_type;
7063     l_okl_k_lines_rec l_okl_k_lines_rec_tab;
7064     l_okl_k_lines_rec_counter NUMBER := 1;
7065     l_okc_k_items_rec l_okc_k_items_rec_tab;
7066     l_okc_k_items_rec_counter NUMBER := 1;
7067 
7068     l_bid_mapping_tab l_bid_mapping_tab_type;
7069     l_cle_lse_mapping_tab l_cle_lse_mapping_tab_type;
7070     l_orig_system_tab l_orig_system_tab_type;
7071     l_id_mapping_tab l_id_mapping_tab_type;
7072     l_party_id_mapping_tab l_party_id_mapping_tab_type;
7073     l_ssid_mapping_tab l_ssid_mapping_tab_type;
7074     l_sid_mapping_tab l_sid_mapping_tab_type;
7075     l_tid_mapping_tab l_tid_mapping_tab_type;
7076     l_vid_mapping_tab l_vid_mapping_tab_type;
7077     l_dbid_mapping_tab l_dbid_mapping_tab_type;
7078     l_osid_mapping_tab l_osid_mapping_tab_type;
7079     l_cid_mapping_tab l_cid_mapping_tab_type;
7080     l_rid_mapping_tab l_rid_mapping_tab_type;
7081     l_rrid_mapping_tab l_rrid_mapping_tab_type;
7082     l_trx_id_mapping_tab l_trx_id_mapping_tab_type;
7083     l_trx_id_mapping_tab2 l_trx_id_mapping_tab_type;
7084     l_txl_id_mapping_tab l_txl_id_mapping_tab_type;
7085     l_aid_mapping_tab l_aid_mapping_tab_type;
7086     l_oid_mapping_tab l_oid_mapping_tab_type;
7087     l_cle_mapping_tab l_cle_mapping_tab_type;
7088     l_cle_mapping_tab2 l_cle_mapping_tab_type2;
7089     l_asset_counter NUMBER := 1;
7090     l_vid_counter NUMBER := 1;
7091     l_tid_counter NUMBER := 1;
7092     l_ssid_counter NUMBER := 1;
7093     l_s2cle_id_tab l_id_type;
7094     l_s2object1_id1_tab l_misc_object1_id1;
7095 
7096     l_entered_id_tab l_id_type;
7097     l_entered_sts_code_tab l_sts_code_type; -- Bug 4872258
7098     l_entered_counter NUMBER := 1;
7099     l_delete_id_tab l_id_type;
7100     l_delete_counter NUMBER := 1;
7101     l_line_count NUMBER := 0; --5207066
7102 
7103     l_id2_tab_counter NUMBER := 1;
7104     l_id2_tab l_id_type;
7105     l_id_tab l_id_type;
7106     l_line_number_tab l_line_number_type;
7107     l_chr_id_tab l_chr_id_type;
7108     l_cle_id_tab l_cle_id_type;
7109     l_cle_id_renewed_tab l_cle_id_renewed_type;
7110     l_dnz_chr_id_tab l_dnz_chr_id_type;
7111     l_display_sequence_tab l_display_sequence_type;
7112     l_sts_code_tab l_sts_code_type;
7113     l_trn_code_tab l_trn_code_type;
7114     l_lse_id2_tab l_lse_id_type;
7115     l_lse_id_tab l_lse_id_type;
7116 --avsingh: Bug 5710213: start
7117     l_lty_code_tab l_lty_code_type;
7118 --avsingh: Bug 5710213: end
7119     l_exception_yn_tab l_exception_yn_type;
7120     l_object_version_number_tab l_object_version_number_type;
7121     l_created_by_tab l_created_by_type;
7122     l_creation_date_tab l_creation_date_type;
7123     l_last_updated_by_tab l_last_updated_by_type;
7124     l_last_update_date_tab l_last_update_date_type;
7125     l_hidden_ind_tab l_hidden_ind_type;
7126     l_price_negotiated_tab l_price_negotiated_type;
7127     l_price_level_ind_tab l_price_level_ind_type;
7128     l_price_unit_tab l_price_unit_type;
7129     l_price_unit_percent_tab l_price_unit_percent_type;
7130     l_invoice_line_level_ind_tab l_invoice_line_level_ind_type;
7131     l_dpas_rating_tab l_dpas_rating_type;
7132     l_template_used_tab l_template_used_type;
7133     l_price_type_tab l_price_type_type;
7134     l_currency_code_tab l_currency_code_type;
7135     l_last_update_login_tab l_last_update_login_type;
7136     l_date_terminated_tab l_date_terminated_type;
7137     l_start_date_tab l_start_date_type;
7138     l_end_date_tab l_end_date_type;
7139     l_attribute_category_tab l_attribute_category_type;
7140     l_attribute1_tab l_attribute1_type;
7141     l_attribute2_tab l_attribute2_type;
7142     l_attribute3_tab l_attribute3_type;
7143     l_attribute4_tab l_attribute4_type;
7144     l_attribute5_tab l_attribute5_type;
7145     l_attribute6_tab l_attribute6_type;
7146     l_attribute7_tab l_attribute7_type;
7147     l_attribute8_tab l_attribute8_type;
7148     l_attribute9_tab l_attribute9_type;
7149     l_attribute10_tab l_attribute10_type;
7150     l_attribute11_tab l_attribute11_type;
7151     l_attribute12_tab l_attribute12_type;
7152     l_attribute13_tab l_attribute13_type;
7153     l_attribute14_tab l_attribute14_type;
7154     l_attribute15_tab l_attribute15_type;
7155     l_security_group_id_tab l_security_group_id_type;
7156     l_cle_id_renewed_to_tab l_cle_id_renewed_to_type;
7157     l_price_negotiated_renewed_tab l_price_negotiated_renewed_typ;
7158     l_currency_code_renewed_tab l_currency_code_renewed_type;
7159     l_upg_orig_system_ref_tab l_upg_orig_system_ref_type;
7160     l_upg_orig_system_ref_id_tab l_upg_orig_system_ref_id_type;
7161     l_date_renewed_tab l_date_renewed_type;
7162     l_orig_system_source_code_tab l_orig_system_source_code_type;
7163     l_orig_system_id1_tab l_orig_system_id1_type;
7164     l_orig_system_reference1_tab l_orig_system_reference1_type;
7165     l_program_application_id_tab l_program_application_id_type;
7166     l_program_id_tab l_program_id_type;
7167     l_program_update_date_tab l_program_update_date_type;
7168     l_request_id_tab l_request_id_type;
7169     l_price_list_id_tab l_price_list_id_type;
7170     l_price_list_line_id_tab l_price_list_line_id_type;
7171     l_line_list_price_tab l_line_list_price_type;
7172     l_item_to_price_yn_tab l_item_to_price_yn_type;
7173     l_pricing_date_tab l_pricing_date_type;
7174     l_price_basis_yn_tab l_price_basis_yn_type;
7175     l_config_header_id_tab l_config_header_id_type;
7176     l_config_revision_number_tab l_config_revision_number_type;
7177     l_config_complete_yn_tab l_config_complete_yn_type;
7178     l_config_valid_yn_tab l_config_valid_yn_type;
7179     l_config_top_model_line_id_tab l_config_top_model_line_id_typ;
7180     l_config_item_type_tab l_config_item_type_type;
7181     l_config_item_id_tab l_config_item_id_type;
7182     l_service_item_yn_tab l_service_item_yn_type;
7183     l_ph_pricing_type_tab l_ph_pricing_type_type;
7184     l_ph_price_break_basis_tab l_ph_price_break_basis_type;
7185     l_ph_min_qty_tab l_ph_min_qty_type;
7186     l_ph_min_amt_tab l_ph_min_amt_type;
7187     l_ph_qp_reference_id_tab l_ph_qp_reference_id_type;
7188     l_ph_value_tab l_ph_value_type;
7189     l_ph_enforce_price_list_yn_tab l_ph_enforce_price_list_yn_typ;
7190     l_ph_adjustment_tab l_ph_adjustment_type;
7191     l_ph_integrated_with_qp_tab l_ph_integrated_with_qp_type;
7192     l_cust_acct_id_tab l_cust_acct_id_type;
7193     l_bill_to_site_use_id_tab l_bill_to_site_use_id_type;
7194     l_inv_rule_id_tab l_inv_rule_id_type;
7195     l_line_renewal_type_code_tab l_line_renewal_type_code_type;
7196     l_ship_to_site_use_id_tab l_ship_to_site_use_id_type;
7197     l_payment_term_id_tab l_payment_term_id_type;
7198     l_fee_type_tab l_fee_type_type;
7199     l_name_tab l_name_type;
7200 
7201     l_id_tab3 l_id_type;
7202     l_id_tab2 l_id_type;
7203     l_line_number_tab2 l_line_number_type;
7204     l_chr_id_tab2 l_chr_id_type;
7205     l_cle_id_tab2 l_cle_id_type;
7206     l_cle_id_renewed_tab2 l_cle_id_renewed_type;
7207     l_dnz_chr_id_tab2 l_dnz_chr_id_type;
7208     l_display_sequence_tab2 l_display_sequence_type;
7209     l_sts_code_tab2 l_sts_code_type;
7210     l_trn_code_tab2 l_trn_code_type;
7211     l_lse_id_tab2 l_lse_id_type;
7212 --avsingh: Bug 5710213: start
7213     l_lty_code_tab2 l_lty_code_type;
7214 --avsingh: Bug 5710213: end
7215     l_exception_yn_tab2 l_exception_yn_type;
7216     l_object_version_number_tab2 l_object_version_number_type;
7217     l_created_by_tab2 l_created_by_type;
7218     l_creation_date_tab2 l_creation_date_type;
7219     l_last_updated_by_tab2 l_last_updated_by_type;
7220     l_last_update_date_tab2 l_last_update_date_type;
7221     l_hidden_ind_tab2 l_hidden_ind_type;
7222     l_price_negotiated_tab2 l_price_negotiated_type;
7223     l_price_level_ind_tab2 l_price_level_ind_type;
7224     l_price_unit_tab2 l_price_unit_type;
7225     l_price_unit_percent_tab2 l_price_unit_percent_type;
7226     l_invoice_line_level_ind_tab2 l_invoice_line_level_ind_type;
7227     l_dpas_rating_tab2 l_dpas_rating_type;
7228     l_template_used_tab2 l_template_used_type;
7229     l_price_type_tab2 l_price_type_type;
7230     l_currency_code_tab2 l_currency_code_type;
7231     l_last_update_login_tab2 l_last_update_login_type;
7232     l_date_terminated_tab2 l_date_terminated_type;
7233     l_start_date_tab2 l_start_date_type;
7234     l_end_date_tab2 l_end_date_type;
7235     l_attribute_category_tab2 l_attribute_category_type;
7236     l_attribute1_tab2 l_attribute1_type;
7237     l_attribute2_tab2 l_attribute2_type;
7238     l_attribute3_tab2 l_attribute3_type;
7239     l_attribute4_tab2 l_attribute4_type;
7240     l_attribute5_tab2 l_attribute5_type;
7241     l_attribute6_tab2 l_attribute6_type;
7242     l_attribute7_tab2 l_attribute7_type;
7243     l_attribute8_tab2 l_attribute8_type;
7244     l_attribute9_tab2 l_attribute9_type;
7245     l_attribute10_tab2 l_attribute10_type;
7246     l_attribute11_tab2 l_attribute11_type;
7247     l_attribute12_tab2 l_attribute12_type;
7248     l_attribute13_tab2 l_attribute13_type;
7249     l_attribute14_tab2 l_attribute14_type;
7250     l_attribute15_tab2 l_attribute15_type;
7251     l_security_group_id_tab2 l_security_group_id_type;
7252     l_cle_id_renewed_to_tab2 l_cle_id_renewed_to_type;
7253     l_price_negotiated_renewed_tb2 l_price_negotiated_renewed_typ;
7254     l_currency_code_renewed_tab2 l_currency_code_renewed_type;
7255     l_upg_orig_system_ref_tab2 l_upg_orig_system_ref_type;
7256     l_upg_orig_system_ref_id_tab2 l_upg_orig_system_ref_id_type;
7257     l_date_renewed_tab2 l_date_renewed_type;
7258     l_orig_system_source_code_tab2 l_orig_system_source_code_type;
7259     l_orig_system_id1_tab2 l_orig_system_id1_type;
7260     l_orig_system_reference1_tab2 l_orig_system_reference1_type;
7261     l_program_application_id_tab2 l_program_application_id_type;
7262     l_program_id_tab2 l_program_id_type;
7263     l_program_update_date_tab2 l_program_update_date_type;
7264     l_request_id_tab2 l_request_id_type;
7265     l_price_list_id_tab2 l_price_list_id_type;
7266     l_price_list_line_id_tab2 l_price_list_line_id_type;
7267     l_line_list_price_tab2 l_line_list_price_type;
7268     l_item_to_price_yn_tab2 l_item_to_price_yn_type;
7269     l_pricing_date_tab2 l_pricing_date_type;
7270     l_price_basis_yn_tab2 l_price_basis_yn_type;
7271     l_config_header_id_tab2 l_config_header_id_type;
7272     l_config_revision_number_tab2 l_config_revision_number_type;
7273     l_config_complete_yn_tab2 l_config_complete_yn_type;
7274     l_config_valid_yn_tab2 l_config_valid_yn_type;
7275     l_config_top_model_line_id_tb2 l_config_top_model_line_id_typ;
7276     l_config_item_type_tab2 l_config_item_type_type;
7277     l_config_item_id_tab2 l_config_item_id_type;
7278     l_service_item_yn_tab2 l_service_item_yn_type;
7279     l_ph_pricing_type_tab2 l_ph_pricing_type_type;
7280     l_ph_price_break_basis_tab2 l_ph_price_break_basis_type;
7281     l_ph_min_qty_tab2 l_ph_min_qty_type;
7282     l_ph_min_amt_tab2 l_ph_min_amt_type;
7283     l_ph_qp_reference_id_tab2 l_ph_qp_reference_id_type;
7284     l_ph_value_tab2 l_ph_value_type;
7285     l_ph_enforce_price_list_yn_tb2 l_ph_enforce_price_list_yn_typ;
7286     l_ph_adjustment_tab2 l_ph_adjustment_type;
7287     l_ph_integrated_with_qp_tab2 l_ph_integrated_with_qp_type;
7288     l_cust_acct_id_tab2 l_cust_acct_id_type;
7289     l_bill_to_site_use_id_tab2 l_bill_to_site_use_id_type;
7290     l_inv_rule_id_tab2 l_inv_rule_id_type;
7291     l_line_renewal_type_code_tab2 l_line_renewal_type_code_type;
7292     l_ship_to_site_use_id_tab2 l_ship_to_site_use_id_type;
7293     l_payment_term_id_tab2 l_payment_term_id_type;
7294     l_fee_type_tab2 l_fee_type_type;
7295     l_name_tab2 l_name_type;
7296 
7297     l_counter NUMBER;
7298     l_cid_counter NUMBER := 1;
7299     l_cle_lse_counter NUMBER := 1;
7300     l_new_id NUMBER;
7301     l_party_counter NUMBER := 1;
7302     l_prid_tab  l_prid_type;
7303     l_probject1_id1_tab l_probject1_id1_type;
7304 
7305     l_orig_system_source_code okc_k_headers_b.orig_system_source_code%TYPE;
7306     l_sts_code okc_k_headers_b.sts_code%TYPE;
7307     l_sts_code_orig okc_k_headers_b.sts_code%TYPE;
7308 
7309     --Bug# 16425139: Changing the global variables to local variables
7310     l_created_by NUMBER := fnd_global.user_id;
7311     l_last_updated_by NUMBER := fnd_global.user_id;
7312     l_last_update_login NUMBER := fnd_global.login_id;
7313 
7314 PROCEDURE validate_currency_code(
7315        x_return_status OUT NOCOPY   VARCHAR2,
7316        p_ccy_code      IN    okc_k_headers_b.currency_code%TYPE) IS
7317 
7318   l_dummy_var   VARCHAR2(1) := '?';
7319   CURSOR l_fndv_csr IS
7320   		SELECT 'x'
7321 		FROM FND_CURRENCIES_VL
7322 		WHERE currency_code = p_ccy_code
7323 		AND SYSDATE BETWEEN NVL(start_date_active,SYSDATE)
7324 					 AND NVL(end_date_active,SYSDATE);
7325 BEGIN
7326 
7327     -- initialize return status
7328     x_return_status := OKC_API.G_RET_STS_SUCCESS;
7329 
7330     -- check that data exists
7331     IF (p_ccy_code = OKC_API.G_MISS_CHAR OR
7332   	   p_ccy_code IS NULL)
7333     THEN
7334   	  OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
7335 					  p_msg_name		=> g_required_value,
7336 					  p_token1		=> g_col_name_token,
7337 					  p_token1_value	=> 'Currency Code');
7338 	   -- notify caller of an error
7339         x_return_status := OKC_API.G_RET_STS_ERROR;
7340 
7341 	   -- halt validation
7342 	   RAISE G_EXCEPTION_HALT_VALIDATION;
7343     END IF;
7344 
7345     -- check data is in lookup table
7346       OPEN l_fndv_csr;
7347       FETCH l_fndv_csr INTO l_dummy_var;
7348       CLOSE l_fndv_csr;
7349 
7350       -- if l_dummy_var still set to default, data was not found
7351       IF (l_dummy_var = '?') THEN
7352   	    OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
7353 					    p_msg_name		=> 'OKL_NO_PARENT_RECORD',
7354 					    p_token1		=> g_col_name_token,
7355 					    p_token1_value	=> 'currency_code',
7356 					    p_token2		=> g_child_table_token,
7357 					    p_token2_value	=> 'OKL_TRX_AP_INVOICES_V',
7358 					    p_token3		=> g_parent_table_token,
7359 					    p_token3_value	=> 'FND_CURRENCIES');
7360 	    -- notify caller of an error
7361          x_return_status := OKC_API.G_RET_STS_ERROR;
7362       END IF;
7363 
7364 
7365   EXCEPTION
7366     WHEN G_EXCEPTION_HALT_VALIDATION THEN
7367 
7368 
7369       -- no processing necessary; validation can continue with next column
7370       NULL;
7371 
7372     WHEN OTHERS THEN
7373 
7374 
7375 	  -- store SQL error message on message stack
7376   	  OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
7377 					  p_msg_name		=> g_unexpected_error,
7378 					  p_token1		=> g_sqlcode_token,
7379 					  p_token1_value	=> SQLCODE,
7380 					  p_token2		=> g_sqlerrm_token,
7381 					  p_token2_value	=> SQLERRM);
7382 	   -- notify caller of an error as UNEXPETED error
7383         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
7384 
7385         -- verify that cursor was closed
7386         IF l_fndv_csr%ISOPEN THEN
7387 	      CLOSE l_fndv_csr;
7388         END IF;
7389 
7390 
7391 END validate_currency_code;
7392 
7393 PROCEDURE validate_orig_sys_code
7394  (x_return_status OUT NOCOPY   VARCHAR2,
7395   p_orig_system_source_code  IN    okc_k_headers_b.orig_system_source_code%TYPE
7396  ) IS
7397   BEGIN
7398 
7399 
7400     -- initialize return status
7401     x_return_status := OKC_API.G_RET_STS_SUCCESS;
7402 
7403     -- enforce foreign key if data exists
7404     IF (p_orig_system_source_code <> OKC_API.G_MISS_CHAR AND
7405 	   p_orig_system_source_code IS NOT NULL)
7406     THEN
7407       -- Check if the value is a valid code from lookup table
7408       x_return_status := OKC_UTIL.check_lookup_code('OKC_CONTRACT_SOURCES',
7409 				     p_orig_system_source_code);
7410       IF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7411 	    --set error message in message stack
7412 	    OKC_API.SET_MESSAGE(
7413 			p_app_name	=> G_APP_NAME,
7414 			p_msg_name	=> G_INVALID_VALUE,
7415 			p_token1		=> G_COL_NAME_TOKEN,
7416 			p_token1_value => 'ORIG_SYSTEM_SOURCE_CODE');
7417 	    RAISE G_EXCEPTION_HALT_VALIDATION;
7418       ELSIF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7419 	    RAISE G_EXCEPTION_HALT_VALIDATION;
7420       END IF;
7421     END IF;
7422 
7423 
7424   EXCEPTION
7425     WHEN OTHERS THEN
7426 
7427 
7428 	  -- store SQL error message on message stack
7429   	  OKC_API.SET_MESSAGE(p_app_name	=> g_app_name,
7430 					  p_msg_name	=> g_unexpected_error,
7431 					  p_token1	=> g_sqlcode_token,
7432 					  p_token1_value=> SQLCODE,
7433 					  p_token2	=> g_sqlerrm_token,
7434 					  p_token2_value=> SQLERRM);
7435 	   -- notify caller of an error as UNEXPETED error
7436         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
7437 
7438   END validate_orig_sys_code;
7439 
7440  PROCEDURE validate_currency_conv_type
7441   (x_return_status OUT NOCOPY   VARCHAR2,
7442    p_currency_conversion_type IN    okc_k_headers_b.conversion_type%TYPE) IS
7443 
7444   --cursor to chk currency type fk
7445   CURSOR curr_conv_type_csr (p_curr_cotyp IN VARCHAR2) IS
7446   SELECT '!'
7447   FROM   gl_daily_conversion_types
7448   WHERE  conversion_type = p_curr_cotyp;
7449 
7450   l_valid_convert_type VARCHAR2(1) DEFAULT '?';
7451   BEGIN
7452     -- initialize return status
7453     x_return_status := OKC_API.G_RET_STS_SUCCESS;
7454     IF (p_CURRENCY_CONVERSION_TYPE <> OKC_API.G_MISS_CHAR AND
7455   	   p_CURRENCY_CONVERSION_TYPE IS NOT NULL)
7456     THEN
7457       -- check allowed values
7458       l_valid_convert_type := '?';
7459       OPEN curr_conv_type_csr(p_curr_cotyp => p_CURRENCY_CONVERSION_TYPE);
7460       FETCH  curr_conv_type_csr INTO l_valid_convert_type;
7461       IF curr_conv_type_csr%NOTFOUND THEN
7462           NULL;
7463       END IF;
7464       CLOSE curr_conv_type_csr;
7465 
7466       IF (l_valid_convert_type = '?')  THEN
7467   	    OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
7468 				p_msg_name		=> g_invalid_value,
7469 				p_token1		=> g_col_name_token,
7470 				p_token1_value	=> 'CURRENCY_CONVERSION_TYPE');
7471 	     -- notify caller of an error
7472           x_return_status := OKC_API.G_RET_STS_ERROR;
7473       END IF;
7474     END IF;
7475   EXCEPTION
7476     WHEN OTHERS THEN
7477 	  -- store SQL error message on message stack
7478   	  OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
7479 					  p_msg_name		=> g_unexpected_error,
7480 					  p_token1		=> g_sqlcode_token,
7481 					  p_token1_value	=> SQLCODE,
7482 					  p_token2		=> g_sqlerrm_token,
7483 					  p_token2_value	=> SQLERRM);
7484 	   -- notify caller of an error as UNEXPETED error
7485         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
7486   END validate_CURRENCY_CONV_TYPE;
7487 
7488 PROCEDURE validate_amd_code(x_return_status OUT NOCOPY   VARCHAR2,
7489                             p_amd_code IN okl_k_headers.amd_code%TYPE) IS
7490   BEGIN
7491     -- initialize return status
7492     x_return_status := OKC_API.G_RET_STS_SUCCESS;
7493 
7494     -- enforce foreign key if data exists
7495     IF (p_AMD_CODE <> OKC_API.G_MISS_CHAR AND
7496 	   p_AMD_CODE IS NOT NULL)
7497     THEN
7498       -- Check if the value is a valid code from lookup table
7499       x_return_status := OKC_UTIL.check_lookup_code('OKL_ACCEPTANCE_METHOD',
7500 						    p_AMD_CODE);
7501       IF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7502 	    --set error message in message stack
7503 	    OKC_API.SET_MESSAGE(
7504 			p_app_name	=> G_APP_NAME,
7505 			p_msg_name	=> G_INVALID_VALUE,
7506 			p_token1		=> G_COL_NAME_TOKEN,
7507 			p_token1_value => 'ACCEPTANCE_METHOD');
7508 	    RAISE G_EXCEPTION_HALT_VALIDATION;
7509       ELSIF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7510 	    RAISE G_EXCEPTION_HALT_VALIDATION;
7511       END IF;
7512     END IF;
7513   EXCEPTION
7514     WHEN OTHERS THEN
7515 	  -- store SQL error message on message stack
7516   	  OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
7517 					  p_msg_name		=> g_unexpected_error,
7518 					  p_token1		=> g_sqlcode_token,
7519 					  p_token1_value	=> SQLCODE,
7520 					  p_token2		=> g_sqlerrm_token,
7521 					  p_token2_value	=> SQLERRM);
7522 	   -- notify caller of an error as UNEXPETED error
7523         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
7524   END validate_AMD_CODE;
7525 /*
7526 */
7527 
7528 FUNCTION find_bid_mapping_id(p_id IN NUMBER, p_lse_id IN NUMBER) RETURN VARCHAR2 IS
7529 hi NUMBER;
7530 lo NUMBER;
7531 m NUMBER;
7532 l_id NUMBER;
7533 BEGIN
7534   --l_id := p_id*100 + p_lse_id ;
7535   l_id := p_id;
7536   lo := 1;
7537   hi := l_counter - 1;
7538   WHILE (lo <= hi) LOOP
7539     m := FLOOR((hi + lo)/2);
7540     IF (l_bid_mapping_tab(m).old_id = l_id) THEN
7541       RETURN l_bid_mapping_tab(m).new_id;
7542     ELSIF (l_bid_mapping_tab(m).old_id > l_id) THEN
7543       hi := m - 1;
7544     ELSE
7545       lo := m + 1;
7546     END IF;
7547   END LOOP;
7548   RETURN '-1';
7549 END;  /* find_bid_mapping_id */
7550 
7551 PROCEDURE sort_bid_mapping_tab IS
7552   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
7553   --a numtabtype;
7554   l_stack numtabtype;
7555   l_stack_index NUMBER := 0;
7556   N NUMBER;
7557   R NUMBER;
7558   L NUMBER;
7559   P NUMBER;
7560   W NUMBER;
7561   W2 VARCHAR2(150);
7562   X NUMBER;
7563   I NUMBER;
7564   J NUMBER;
7565 BEGIN
7566   IF (G_DEBUG_ENABLED = 'Y') THEN
7567     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
7568   END IF;
7569   NULL;
7570 
7571   N := l_counter - 1;
7572   IF (N < 2) THEN
7573     RETURN;
7574   END IF;
7575   l_stack_index := l_stack_index + 1;
7576   l_stack(l_stack_index) := 1;
7577   l_stack_index := l_stack_index + 1;
7578   l_stack(l_stack_index) := N;
7579 
7580   --dbms_output.put_line('l_stack_index=' || l_stack_index);
7581   WHILE l_stack_index > 0
7582   LOOP
7583     R := l_stack(l_stack_index);
7584     l_stack_index := l_stack_index - 1;
7585     L := l_stack(l_stack_index);
7586     l_stack_index := l_stack_index - 1;
7587     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
7588     WHILE 1=1
7589     LOOP -- loop until L >= R
7590       I := L;
7591       J := R;
7592       P := FLOOR((L+R)/2);
7593       --if (a(L) > a(P)) then
7594       IF (l_bid_mapping_tab(L).old_id > l_bid_mapping_tab(P).old_id)
7595       THEN
7596         W := l_bid_mapping_tab(L).old_id;
7597         W2 := l_bid_mapping_tab(L).new_id;
7598         l_bid_mapping_tab(L).old_id :=l_bid_mapping_tab(P).old_id;
7599         l_bid_mapping_tab(L).new_id :=l_bid_mapping_tab(P).new_id;
7600         l_bid_mapping_tab(P).old_id := W;
7601         l_bid_mapping_tab(P).new_id := W2;
7602       END IF;
7603       --if (a(L) > a(R)) then
7604       IF (l_bid_mapping_tab(L).old_id > l_bid_mapping_tab(R).old_id)
7605       THEN
7606         W := l_bid_mapping_tab(L).old_id;
7607         W2 := l_bid_mapping_tab(L).new_id;
7608         l_bid_mapping_tab(L).old_id :=l_bid_mapping_tab(R).old_id;
7609         l_bid_mapping_tab(L).new_id :=l_bid_mapping_tab(R).new_id;
7610         l_bid_mapping_tab(R).old_id := W;
7611         l_bid_mapping_tab(R).new_id := W2;
7612       END IF;
7613       --if (a(P) > a(R)) then
7614       IF (l_bid_mapping_tab(P).old_id > l_bid_mapping_tab(R).old_id)
7615       THEN
7616         W := l_bid_mapping_tab(P).old_id;
7617         W2 := l_bid_mapping_tab(P).new_id;
7618         l_bid_mapping_tab(P).old_id :=l_bid_mapping_tab(R).old_id;
7619         l_bid_mapping_tab(P).new_id :=l_bid_mapping_tab(R).new_id;
7620         l_bid_mapping_tab(R).old_id := W;
7621         l_bid_mapping_tab(R).new_id := W2;
7622       END IF;
7623       --X := a(P);
7624       X := l_bid_mapping_tab(P).old_id;
7625       WHILE 1=1
7626       LOOP    -- until I > J
7627         --while (a(I) < X) loop
7628         WHILE (l_bid_mapping_tab(I).old_id < X) LOOP
7629           I := I + 1;
7630         END LOOP;
7631         WHILE (X < l_bid_mapping_tab(J).old_id) LOOP
7632           J := J - 1;
7633         END LOOP;
7634         IF (I <= J) THEN
7635           W := l_bid_mapping_tab(I).old_id;
7636           W2 := l_bid_mapping_tab(I).new_id;
7637           l_bid_mapping_tab(I).old_id :=l_bid_mapping_tab(J).old_id;
7638           l_bid_mapping_tab(I).new_id :=l_bid_mapping_tab(J).new_id;
7639           l_bid_mapping_tab(J).old_id := W;
7640           l_bid_mapping_tab(J).new_id := W2;
7641           I := I + 1;
7642           J := J - 1;
7643         END IF;
7644         EXIT WHEN I > J;
7645       END LOOP;
7646       IF (J - L < R - I) THEN
7647         IF (I < R) THEN
7648           --push(I); push(R);
7649           l_stack_index := l_stack_index + 1;
7650           l_stack(l_stack_index) := I;
7651           l_stack_index := l_stack_index + 1;
7652           l_stack(l_stack_index) := R;
7653           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
7654         END IF;
7655         R := J;
7656       ELSE
7657         IF (L < J) THEN
7658           --push(L); push(J);
7659           l_stack_index := l_stack_index + 1;
7660           l_stack(l_stack_index) := L;
7661           l_stack_index := l_stack_index + 1;
7662           l_stack(l_stack_index) := J;
7663           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
7664         END IF;
7665         L := I;
7666       END IF;
7667 
7668       EXIT WHEN (L >= R);
7669     END LOOP;
7670   END LOOP;
7671 
7672 EXCEPTION WHEN OTHERS THEN
7673 
7674   x_return_status := OKL_API.G_RET_STS_ERROR;
7675   /*OKL_API.set_message(p_app_name => 'OKL',
7676                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
7677                       p_token1 => 'ASSET_NUMBER',
7678                       p_token1_value => 'sort_bid_mapping_tab');*/
7679     /* DEBUG */
7680   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7681       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
7682     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_bid_mapping_tab:l_bid_mapping_tab N=' || N || ' ...');
7683   END IF;
7684 
7685   --print array
7686   FOR i IN 1..N
7687   LOOP
7688     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7689           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_bid_mapping_tab('||i||')=' || l_bid_mapping_tab(i).old_id || ':' || l_bid_mapping_tab(i).new_id);
7690     END IF;
7691   END LOOP;
7692 
7693   RAISE OKC_API.G_EXCEPTION_ERROR;
7694 
7695 END;  /* sort_bid_mapping_tab */
7696 
7697 FUNCTION find_cle_lse_mapping_id(p_cle_id IN NUMBER, p_lse_id IN NUMBER) RETURN NUMBER IS
7698 hi NUMBER;
7699 lo NUMBER;
7700 m NUMBER;
7701 l_start NUMBER;
7702 l_found BOOLEAN;
7703 l_orig_cle_id NUMBER;
7704 l_curr_cle_id NUMBER;
7705 BEGIN
7706   lo := 1;
7707   hi := l_cle_lse_counter - 1;
7708   WHILE (lo <= hi) LOOP
7709     m := FLOOR((hi + lo)/2);
7710     --print('Searching at m=' || m);
7711     IF (l_cle_lse_mapping_tab(m).cle_id = p_cle_id) THEN
7712       --print('Found at m=' || m);
7713       IF (l_cle_lse_mapping_tab(m).lse_id = p_lse_id) THEN
7714         --print('Returning value from index m=' || m);
7715         RETURN l_cle_lse_mapping_tab(m).id;
7716       ELSE
7717          -- Loop thru sequentially from m below until lse_id matches
7718         --print('Going down...');
7719         l_found := FALSE;
7720         l_orig_cle_id := l_cle_lse_mapping_tab(m).cle_id;
7721         l_start := m;
7722         l_curr_cle_id := l_cle_lse_mapping_tab(l_start).cle_id;
7723         WHILE (NOT(l_found) AND (l_curr_cle_id = l_orig_cle_id))
7724         LOOP
7725           IF (l_cle_lse_mapping_tab(l_start).lse_id = p_lse_id) THEN
7726             l_found := TRUE;
7727           ELSE
7728             l_start := l_start + 1;
7729             EXIT WHEN l_start > hi;
7730             l_curr_cle_id := l_cle_lse_mapping_tab(l_start).cle_id;
7731           END IF;
7732         END LOOP;
7733         IF (l_found) THEN
7734           --print('Found at down... l_start'||l_start);
7735           RETURN l_cle_lse_mapping_tab(l_start).id;
7736         END IF;
7737 
7738          -- Loop thru sequentially from m above until lse_id matches
7739         --print('Going up...');
7740         l_found := FALSE;
7741         l_orig_cle_id := l_cle_lse_mapping_tab(m).cle_id;
7742         l_start := m;
7743         l_curr_cle_id := l_cle_lse_mapping_tab(l_start).cle_id;
7744         WHILE (NOT(l_found) AND (l_curr_cle_id = l_orig_cle_id))
7745         LOOP
7746           IF (l_cle_lse_mapping_tab(l_start).lse_id = p_lse_id) THEN
7747             l_found := TRUE;
7748           ELSE
7749             l_start := l_start - 1;
7750             EXIT WHEN l_start < lo;
7751             l_curr_cle_id := l_cle_lse_mapping_tab(l_start).cle_id;
7752           END IF;
7753         END LOOP;
7754         IF (l_found) THEN
7755           --print('Found at up... l_start='||l_start);
7756           RETURN l_cle_lse_mapping_tab(l_start).id;
7757         END IF;
7758 
7759         RETURN -1;
7760       END IF;
7761     ELSIF (l_cle_lse_mapping_tab(m).cle_id > p_cle_id) THEN
7762       hi := m - 1;
7763     ELSE
7764       lo := m + 1;
7765     END IF;
7766   END LOOP;
7767   RETURN -1;
7768 END;  /* find_cle_lse_mapping_id */
7769 
7770 PROCEDURE sort_cle_lse_mapping_tab IS
7771   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
7772   --a numtabtype;
7773   l_stack numtabtype;
7774   l_stack_index NUMBER := 0;
7775   N NUMBER;
7776   R NUMBER;
7777   L NUMBER;
7778   P NUMBER;
7779   W NUMBER;
7780   W2 NUMBER;
7781   W3 NUMBER;
7782   X NUMBER;
7783   I NUMBER;
7784   J NUMBER;
7785 BEGIN
7786   IF (G_DEBUG_ENABLED = 'Y') THEN
7787     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
7788   END IF;
7789   NULL;
7790 
7791   N := l_cle_lse_counter - 1;
7792   IF (N < 2) THEN
7793     RETURN;
7794   END IF;
7795   l_stack_index := l_stack_index + 1;
7796   l_stack(l_stack_index) := 1;
7797   l_stack_index := l_stack_index + 1;
7798   l_stack(l_stack_index) := N;
7799 
7800   --dbms_output.put_line('l_stack_index=' || l_stack_index);
7801   WHILE l_stack_index > 0
7802   LOOP
7803     R := l_stack(l_stack_index);
7804     l_stack_index := l_stack_index - 1;
7805     L := l_stack(l_stack_index);
7806     l_stack_index := l_stack_index - 1;
7807     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
7808     WHILE 1=1
7809     LOOP -- loop until L >= R
7810       I := L;
7811       J := R;
7812       P := FLOOR((L+R)/2);
7813       --if (a(L) > a(P)) then
7814       IF (l_cle_lse_mapping_tab(L).cle_id > l_cle_lse_mapping_tab(P).cle_id)
7815       THEN
7816         W := l_cle_lse_mapping_tab(L).cle_id;
7817         W2 := l_cle_lse_mapping_tab(L).id;
7818         W3 := l_cle_lse_mapping_tab(L).lse_id;
7819         l_cle_lse_mapping_tab(L).cle_id :=l_cle_lse_mapping_tab(P).cle_id;
7820         l_cle_lse_mapping_tab(L).id :=l_cle_lse_mapping_tab(P).id;
7821         l_cle_lse_mapping_tab(L).lse_id :=l_cle_lse_mapping_tab(P).lse_id;
7822         l_cle_lse_mapping_tab(P).cle_id := W;
7823         l_cle_lse_mapping_tab(P).id := W2;
7824         l_cle_lse_mapping_tab(P).lse_id := W3;
7825       END IF;
7826       --if (a(L) > a(R)) then
7827       IF (l_cle_lse_mapping_tab(L).cle_id > l_cle_lse_mapping_tab(R).cle_id)
7828       THEN
7829         W := l_cle_lse_mapping_tab(L).cle_id;
7830         W2 := l_cle_lse_mapping_tab(L).id;
7831         W3 := l_cle_lse_mapping_tab(L).lse_id;
7832         l_cle_lse_mapping_tab(L).cle_id :=l_cle_lse_mapping_tab(R).cle_id;
7833         l_cle_lse_mapping_tab(L).id :=l_cle_lse_mapping_tab(R).id;
7834         l_cle_lse_mapping_tab(L).lse_id :=l_cle_lse_mapping_tab(R).lse_id;
7835         l_cle_lse_mapping_tab(R).cle_id := W;
7836         l_cle_lse_mapping_tab(R).id := W2;
7837         l_cle_lse_mapping_tab(R).lse_id := W3;
7838       END IF;
7839       --if (a(P) > a(R)) then
7840       IF (l_cle_lse_mapping_tab(P).cle_id > l_cle_lse_mapping_tab(R).cle_id)
7841       THEN
7842         W := l_cle_lse_mapping_tab(P).cle_id;
7843         W2 := l_cle_lse_mapping_tab(P).id;
7844         W3 := l_cle_lse_mapping_tab(P).lse_id;
7845         l_cle_lse_mapping_tab(P).cle_id :=l_cle_lse_mapping_tab(R).cle_id;
7846         l_cle_lse_mapping_tab(P).id :=l_cle_lse_mapping_tab(R).id;
7847         l_cle_lse_mapping_tab(P).lse_id :=l_cle_lse_mapping_tab(R).lse_id;
7848         l_cle_lse_mapping_tab(R).cle_id := W;
7849         l_cle_lse_mapping_tab(R).id := W2;
7850         l_cle_lse_mapping_tab(R).lse_id := W3;
7851       END IF;
7852       --X := a(P);
7853       X := l_cle_lse_mapping_tab(P).cle_id;
7854       WHILE 1=1
7855       LOOP    -- until I > J
7856         --while (a(I) < X) loop
7857         WHILE (l_cle_lse_mapping_tab(I).cle_id < X) LOOP
7858           I := I + 1;
7859         END LOOP;
7860         WHILE (X < l_cle_lse_mapping_tab(J).cle_id) LOOP
7861           J := J - 1;
7862         END LOOP;
7863         IF (I <= J) THEN
7864           W := l_cle_lse_mapping_tab(I).cle_id;
7865           W2 := l_cle_lse_mapping_tab(I).id;
7866           W3 := l_cle_lse_mapping_tab(I).lse_id;
7867           l_cle_lse_mapping_tab(I).cle_id :=l_cle_lse_mapping_tab(J).cle_id;
7868           l_cle_lse_mapping_tab(I).id :=l_cle_lse_mapping_tab(J).id;
7869           l_cle_lse_mapping_tab(I).lse_id :=l_cle_lse_mapping_tab(J).lse_id;
7870           l_cle_lse_mapping_tab(J).cle_id := W;
7871           l_cle_lse_mapping_tab(J).id := W2;
7872           l_cle_lse_mapping_tab(J).lse_id := W3;
7873           I := I + 1;
7874           J := J - 1;
7875         END IF;
7876         EXIT WHEN I > J;
7877       END LOOP;
7878       IF (J - L < R - I) THEN
7879         IF (I < R) THEN
7880           --push(I); push(R);
7881           l_stack_index := l_stack_index + 1;
7882           l_stack(l_stack_index) := I;
7883           l_stack_index := l_stack_index + 1;
7884           l_stack(l_stack_index) := R;
7885           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
7886         END IF;
7887         R := J;
7888       ELSE
7889         IF (L < J) THEN
7890           --push(L); push(J);
7891           l_stack_index := l_stack_index + 1;
7892           l_stack(l_stack_index) := L;
7893           l_stack_index := l_stack_index + 1;
7894           l_stack(l_stack_index) := J;
7895           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
7896         END IF;
7897         L := I;
7898       END IF;
7899 
7900       EXIT WHEN (L >= R);
7901     END LOOP;
7902   END LOOP;
7903 
7904   /*print('Now printing cle_lse_mapping_tab...');
7905   for i in 1..N
7906   loop
7907     print('l_cle_lse_mapping_tab('||i||')=' || l_cle_lse_mapping_tab(i).cle_id || ':' || l_cle_lse_mapping_tab(i).lse_id || ':' ||l_cle_lse_mapping_tab(i).id);
7908   end loop;*/
7909 
7910 EXCEPTION WHEN OTHERS THEN
7911 
7912   x_return_status := OKL_API.G_RET_STS_ERROR;
7913   /*OKL_API.set_message(p_app_name => 'OKL',
7914                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
7915                       p_token1 => 'ASSET_NUMBER',
7916                       p_token1_value => 'sort_cle_lse_mapping_tab');*/
7917   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7918       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
7919     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_cle_lse_mapping_tab:l_cle_lse_mapping_tab N=' || N || ' ...');
7920   END IF;
7921 
7922   --print array
7923   FOR i IN 1..N
7924   LOOP
7925     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7926           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cle_lse_mapping_tab('||i||')=' || l_cle_lse_mapping_tab(i).cle_id || ':' || l_cle_lse_mapping_tab(i).id);
7927     END IF;
7928   END LOOP;
7929 
7930   RAISE OKC_API.G_EXCEPTION_ERROR;
7931 
7932 END;  /* sort_cle_lse_mapping_tab */
7933 
7934 
7935 FUNCTION find_cid_mapping_id(p_id IN NUMBER) RETURN NUMBER IS
7936 hi NUMBER;
7937 lo NUMBER;
7938 m NUMBER;
7939 BEGIN
7940   lo := 1;
7941   hi := l_cid_counter - 1;
7942   WHILE (lo <= hi) LOOP
7943     m := FLOOR((hi + lo)/2);
7944     IF (l_cid_mapping_tab(m).old_id = p_id) THEN
7945       RETURN l_cid_mapping_tab(m).new_id;
7946     ELSIF (l_cid_mapping_tab(m).old_id > p_id) THEN
7947       hi := m - 1;
7948     ELSE
7949       lo := m + 1;
7950     END IF;
7951   END LOOP;
7952   RETURN -1;
7953 END;  /* find_cid_mapping_id */
7954 
7955 PROCEDURE sort_cid_mapping_tab IS
7956   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
7957   --a numtabtype;
7958   l_stack numtabtype;
7959   l_stack_index NUMBER := 0;
7960   N NUMBER;
7961   R NUMBER;
7962   L NUMBER;
7963   P NUMBER;
7964   W NUMBER;
7965   W2 NUMBER;
7966   X NUMBER;
7967   I NUMBER;
7968   J NUMBER;
7969 BEGIN
7970   IF (G_DEBUG_ENABLED = 'Y') THEN
7971     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
7972   END IF;
7973   NULL;
7974 
7975   N := l_cid_counter - 1;
7976   IF (N < 2) THEN
7977     RETURN;
7978   END IF;
7979   l_stack_index := l_stack_index + 1;
7980   l_stack(l_stack_index) := 1;
7981   l_stack_index := l_stack_index + 1;
7982   l_stack(l_stack_index) := N;
7983 
7984   --dbms_output.put_line('l_stack_index=' || l_stack_index);
7985   WHILE l_stack_index > 0
7986   LOOP
7987     R := l_stack(l_stack_index);
7988     l_stack_index := l_stack_index - 1;
7989     L := l_stack(l_stack_index);
7990     l_stack_index := l_stack_index - 1;
7991     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
7992     WHILE 1=1
7993     LOOP -- loop until L >= R
7994       I := L;
7995       J := R;
7996       P := FLOOR((L+R)/2);
7997       --if (a(L) > a(P)) then
7998       IF (l_cid_mapping_tab(L).old_id > l_cid_mapping_tab(P).old_id)
7999       THEN
8000         W := l_cid_mapping_tab(L).old_id;
8001         W2 := l_cid_mapping_tab(L).new_id;
8002         l_cid_mapping_tab(L).old_id :=l_cid_mapping_tab(P).old_id;
8003         l_cid_mapping_tab(L).new_id :=l_cid_mapping_tab(P).new_id;
8004         l_cid_mapping_tab(P).old_id := W;
8005         l_cid_mapping_tab(P).new_id := W2;
8006       END IF;
8007       --if (a(L) > a(R)) then
8008       IF (l_cid_mapping_tab(L).old_id > l_cid_mapping_tab(R).old_id)
8009       THEN
8010         W := l_cid_mapping_tab(L).old_id;
8011         W2 := l_cid_mapping_tab(L).new_id;
8012         l_cid_mapping_tab(L).old_id :=l_cid_mapping_tab(R).old_id;
8013         l_cid_mapping_tab(L).new_id :=l_cid_mapping_tab(R).new_id;
8014         l_cid_mapping_tab(R).old_id := W;
8015         l_cid_mapping_tab(R).new_id := W2;
8016       END IF;
8017       --if (a(P) > a(R)) then
8018       IF (l_cid_mapping_tab(P).old_id > l_cid_mapping_tab(R).old_id)
8019       THEN
8020         W := l_cid_mapping_tab(P).old_id;
8021         W2 := l_cid_mapping_tab(P).new_id;
8022         l_cid_mapping_tab(P).old_id :=l_cid_mapping_tab(R).old_id;
8023         l_cid_mapping_tab(P).new_id :=l_cid_mapping_tab(R).new_id;
8024         l_cid_mapping_tab(R).old_id := W;
8025         l_cid_mapping_tab(R).new_id := W2;
8026       END IF;
8027       --X := a(P);
8028       X := l_cid_mapping_tab(P).old_id;
8029       WHILE 1=1
8030       LOOP    -- until I > J
8031         --while (a(I) < X) loop
8032         WHILE (l_cid_mapping_tab(I).old_id < X) LOOP
8033           I := I + 1;
8034         END LOOP;
8035         WHILE (X < l_cid_mapping_tab(J).old_id) LOOP
8036           J := J - 1;
8037         END LOOP;
8038         IF (I <= J) THEN
8039           W := l_cid_mapping_tab(I).old_id;
8040           W2 := l_cid_mapping_tab(I).new_id;
8041           l_cid_mapping_tab(I).old_id :=l_cid_mapping_tab(J).old_id;
8042           l_cid_mapping_tab(I).new_id :=l_cid_mapping_tab(J).new_id;
8043           l_cid_mapping_tab(J).old_id := W;
8044           l_cid_mapping_tab(J).new_id := W2;
8045           I := I + 1;
8046           J := J - 1;
8047         END IF;
8048         EXIT WHEN I > J;
8049       END LOOP;
8050       IF (J - L < R - I) THEN
8051         IF (I < R) THEN
8052           --push(I); push(R);
8053           l_stack_index := l_stack_index + 1;
8054           l_stack(l_stack_index) := I;
8055           l_stack_index := l_stack_index + 1;
8056           l_stack(l_stack_index) := R;
8057           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
8058         END IF;
8059         R := J;
8060       ELSE
8061         IF (L < J) THEN
8062           --push(L); push(J);
8063           l_stack_index := l_stack_index + 1;
8064           l_stack(l_stack_index) := L;
8065           l_stack_index := l_stack_index + 1;
8066           l_stack(l_stack_index) := J;
8067           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
8068         END IF;
8069         L := I;
8070       END IF;
8071 
8072       EXIT WHEN (L >= R);
8073     END LOOP;
8074   END LOOP;
8075 
8076 EXCEPTION WHEN OTHERS THEN
8077 
8078   x_return_status := OKL_API.G_RET_STS_ERROR;
8079   /*OKL_API.set_message(p_app_name => 'OKL',
8080                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
8081                       p_token1 => 'ASSET_NUMBER',
8082                       p_token1_value => 'sort_cid_mapping_tab');*/
8083     /* DEBUG */
8084   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8085       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
8086     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_cid_mapping_tab:l_cid_mapping_tab N=' || N || ' ...');
8087   END IF;
8088 
8089   --print array
8090   FOR i IN 1..N
8091   LOOP
8092     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8093           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cid_mapping_tab('||i||')=' || l_cid_mapping_tab(i).old_id || ':' || l_cid_mapping_tab(i).new_id);
8094     END IF;
8095   END LOOP;
8096 
8097   RAISE OKC_API.G_EXCEPTION_ERROR;
8098 
8099 END;  /* sort_cid_mapping_tab */
8100 
8101 PROCEDURE do_sort IS
8102   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
8103   --a numtabtype;
8104   l_stack numtabtype;
8105   l_stack_index NUMBER := 0;
8106   N NUMBER;
8107   R NUMBER;
8108   L NUMBER;
8109   P NUMBER;
8110   W NUMBER;
8111   W2 NUMBER;
8112   X NUMBER;
8113   I NUMBER;
8114   J NUMBER;
8115 BEGIN
8116   IF (G_DEBUG_ENABLED = 'Y') THEN
8117     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
8118   END IF;
8119   NULL;
8120   /*a(1) := 10;
8121   a(2) := 50;
8122   a(3) := 27;
8123   a(4) := 5;
8124   a(5) := 100;
8125   a(6) := 50;
8126   a(7) := 35;
8127   a(8) := 41;
8128   a(9) := 75;
8129   a(10) := 20;
8130 
8131   N := 10;
8132   */
8133 
8134   N := l_counter - 1;
8135   IF (N < 2) THEN
8136     RETURN;
8137   END IF;
8138   l_stack_index := l_stack_index + 1;
8139   l_stack(l_stack_index) := 1;
8140   l_stack_index := l_stack_index + 1;
8141   l_stack(l_stack_index) := N;
8142 
8143   --dbms_output.put_line('l_stack_index=' || l_stack_index);
8144   WHILE l_stack_index > 0
8145   LOOP
8146     R := l_stack(l_stack_index);
8147     l_stack_index := l_stack_index - 1;
8148     L := l_stack(l_stack_index);
8149     l_stack_index := l_stack_index - 1;
8150     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
8151     WHILE 1=1
8152     LOOP -- loop until L >= R
8153       I := L;
8154       J := R;
8155       P := FLOOR((L+R)/2);
8156       --if (a(L) > a(P)) then
8157       IF (l_orig_system_tab(L).orig_system_id1 > l_orig_system_tab(P).orig_system_id1)
8158       THEN
8159         /*W := a(L);
8160         a(L) := a(P);
8161         a(P) := W;*/
8162 
8163         W := l_orig_system_tab(L).orig_system_id1;
8164         W2 := l_orig_system_tab(L).id;
8165         l_orig_system_tab(L).orig_system_id1 :=l_orig_system_tab(P).orig_system_id1;
8166         l_orig_system_tab(L).id :=l_orig_system_tab(P).id;
8167         l_orig_system_tab(P).orig_system_id1 := W;
8168         l_orig_system_tab(P).id := W2;
8169       END IF;
8170       --if (a(L) > a(R)) then
8171       IF (l_orig_system_tab(L).orig_system_id1 > l_orig_system_tab(R).orig_system_id1)
8172       THEN
8173         /*W := a(L);
8174         a(L) := a(R);
8175         a(R) := W;*/
8176         W := l_orig_system_tab(L).orig_system_id1;
8177         W2 := l_orig_system_tab(L).id;
8178         l_orig_system_tab(L).orig_system_id1 :=l_orig_system_tab(R).orig_system_id1;
8179         l_orig_system_tab(L).id :=l_orig_system_tab(R).id;
8180         l_orig_system_tab(R).orig_system_id1 := W;
8181         l_orig_system_tab(R).id := W2;
8182       END IF;
8183       --if (a(P) > a(R)) then
8184       IF (l_orig_system_tab(P).orig_system_id1 > l_orig_system_tab(R).orig_system_id1)
8185       THEN
8186         /*W := a(P);
8187         a(P) := a(R);
8188         a(R) := W; */
8189         W := l_orig_system_tab(P).orig_system_id1;
8190         W2 := l_orig_system_tab(P).id;
8191         l_orig_system_tab(P).orig_system_id1 :=l_orig_system_tab(R).orig_system_id1;
8192         l_orig_system_tab(P).id :=l_orig_system_tab(R).id;
8193         l_orig_system_tab(R).orig_system_id1 := W;
8194         l_orig_system_tab(R).id := W2;
8195       END IF;
8196       --X := a(P);
8197       X := l_orig_system_tab(P).orig_system_id1;
8198       WHILE 1=1
8199       LOOP    -- until I > J
8200         --while (a(I) < X) loop
8201         WHILE (l_orig_system_tab(I).orig_system_id1 < X) LOOP
8202           I := I + 1;
8203         END LOOP;
8204         WHILE (X < l_orig_system_tab(J).orig_system_id1) LOOP
8205           J := J - 1;
8206         END LOOP;
8207         IF (I <= J) THEN
8208           /*W := a(I);
8209           a(I) := a(J);
8210           a(J) := W;*/
8211           W := l_orig_system_tab(I).orig_system_id1;
8212           W2 := l_orig_system_tab(I).id;
8213           l_orig_system_tab(I).orig_system_id1 :=l_orig_system_tab(J).orig_system_id1;
8214           l_orig_system_tab(I).id :=l_orig_system_tab(J).id;
8215           l_orig_system_tab(J).orig_system_id1 := W;
8216           l_orig_system_tab(J).id := W2;
8217           I := I + 1;
8218           J := J - 1;
8219         END IF;
8220         EXIT WHEN I > J;
8221       END LOOP;
8222       IF (J - L < R - I) THEN
8223         IF (I < R) THEN
8224           --push(I); push(R);
8225           l_stack_index := l_stack_index + 1;
8226           l_stack(l_stack_index) := I;
8227           l_stack_index := l_stack_index + 1;
8228           l_stack(l_stack_index) := R;
8229           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
8230         END IF;
8231         R := J;
8232       ELSE
8233         IF (L < J) THEN
8234           --push(L); push(J);
8235           l_stack_index := l_stack_index + 1;
8236           l_stack(l_stack_index) := L;
8237           l_stack_index := l_stack_index + 1;
8238           l_stack(l_stack_index) := J;
8239           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
8240         END IF;
8241         L := I;
8242       END IF;
8243 
8244       EXIT WHEN (L >= R);
8245     END LOOP;
8246   END LOOP;
8247 
8248 
8249 EXCEPTION WHEN OTHERS THEN
8250 
8251   x_return_status := OKL_API.G_RET_STS_ERROR;
8252   /*OKL_API.set_message(p_app_name => 'OKL',
8253                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
8254                       p_token1 => 'ASSET_NUMBER',
8255                       p_token1_value => 'do_sort');*/
8256     /* DEBUG */
8257   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8258       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
8259     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing do_sort:l_orig_system_tab N=' || N || ' ...');
8260   END IF;
8261 
8262   --print array
8263   FOR i IN 1..N
8264   LOOP
8265     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8266           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_orig_system_tab('||i||')=' || l_orig_system_tab(i).orig_system_id1 || ':' || l_orig_system_tab(i).id);
8267     END IF;
8268   END LOOP;
8269 
8270   RAISE OKC_API.G_EXCEPTION_ERROR;
8271 
8272 END;  /* do_sort */
8273 
8274 FUNCTION find_id(p_id IN NUMBER) RETURN NUMBER IS
8275 hi NUMBER;
8276 lo NUMBER;
8277 m NUMBER;
8278 BEGIN
8279   lo := 1;
8280   hi := l_counter - 1;
8281   WHILE (lo <= hi) LOOP
8282     m := FLOOR((hi + lo)/2);
8283     IF (l_orig_system_tab(m).orig_system_id1 = p_id) THEN
8284       RETURN l_orig_system_tab(m).id;
8285     ELSIF (l_orig_system_tab(m).orig_system_id1 > p_id) THEN
8286       hi := m - 1;
8287     ELSE
8288       lo := m + 1;
8289     END IF;
8290   END LOOP;
8291   RETURN -1;
8292 END;  /* find_id */
8293 
8294 /* AKP To do: Delete this procedure from here.
8295               After the spec in okl_copy_asset_pvt spec has been changed to
8296               expose this function */
8297   FUNCTION generate_asset_number(x_asset_number OUT NOCOPY OKL_TXL_ASSETS_V.ASSET_NUMBER%TYPE)
8298   RETURN VARCHAR2 IS
8299     x_return_status            VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
8300     ln_dummy1                  NUMBER := 0;
8301     ln_dummy2                  NUMBER := 0;
8302     ln_dummy3                  NUMBER := 0;
8303     lv_asset_number            OKX_ASSETS_V.ASSET_NUMBER%TYPE;
8304     G_APP_NAME                    CONSTANT  VARCHAR2(3)   :=  OKL_API.G_APP_NAME;
8305     G_UNEXPECTED_ERROR            CONSTANT  VARCHAR2(200) := 'OKL_CONTRACTS_UNEXP_ERROR';
8306     G_SQLCODE_TOKEN               CONSTANT  VARCHAR2(200) := 'SQLcode';
8307     G_SQLERRM_TOKEN               CONSTANT  VARCHAR2(200) := 'SQLerrm';
8308 
8309     -- cursor to get sequence number for asset number
8310     CURSOR c_asset_no IS
8311     SELECT 'OKL'||OKL_FAN_SEQ.NEXTVAL
8312     FROM dual;
8313 
8314     -- cursor to get check the existence of asset number
8315     CURSOR c_txl_asset_number(p_asset_number OKX_ASSETS_V.ASSET_NUMBER%TYPE)
8316     IS
8317     SELECT 1
8318     FROM DUAL
8319     WHERE EXISTS (SELECT '1'
8320                   FROM OKL_TXL_ASSETS_B
8321                   WHERE asset_number = p_asset_number);
8322 
8323     CURSOR c_okx_asset_lines_v(p_asset_number OKX_ASSETS_V.ASSET_NUMBER%TYPE) IS
8324     SELECT 1
8325     FROM DUAL
8326     WHERE EXISTS (SELECT '1'
8327                   FROM OKX_ASSET_LINES_V
8328                   WHERE asset_number = p_asset_number);
8329 
8330     CURSOR c_okx_assets_v(p_asset_number OKX_ASSETS_V.ASSET_NUMBER%TYPE) IS
8331     SELECT 1
8332     FROM DUAL
8333     WHERE EXISTS (SELECT '1'
8334                   FROM OKX_ASSETS_V
8335                   WHERE asset_number = p_asset_number);
8336 
8337   BEGIN
8338     OPEN  c_asset_no;
8339     FETCH c_asset_no INTO x_asset_number;
8340     IF (c_asset_no%NOTFOUND) THEN
8341       x_return_status := OKC_API.G_RET_STS_ERROR;
8342       OKL_API.SET_MESSAGE(p_app_name 	   => g_app_name,
8343                           p_msg_name	   => g_unexpected_error,
8344                           p_token1	   => g_sqlcode_token,
8345                           p_token1_value => SQLCODE,
8346            			      p_token2	   => g_sqlerrm_token,
8347               			  p_token2_value => SQLERRM);
8348     END IF;
8349     CLOSE c_asset_no;
8350 
8351     LOOP
8352       lv_asset_number := x_asset_number;
8353 
8354       OPEN  c_txl_asset_number(lv_asset_number);
8355       FETCH c_txl_asset_number INTO ln_dummy1;
8356       IF c_txl_asset_number%NOTFOUND THEN
8357         ln_dummy1 := 0;
8358       END IF;
8359       CLOSE c_txl_asset_number;
8360 
8361       OPEN c_okx_asset_lines_v(lv_asset_number);
8362       FETCH c_okx_asset_lines_v INTO ln_dummy2;
8363       IF c_okx_asset_lines_v%NOTFOUND THEN
8364         ln_dummy2 := 0;
8365       END IF;
8366       CLOSE c_okx_asset_lines_v;
8367 
8368       OPEN c_okx_assets_v(lv_asset_number);
8369       FETCH c_okx_assets_v INTO ln_dummy3;
8370       IF c_okx_assets_v%NOTFOUND THEN
8371         ln_dummy3 := 0;
8372       END IF;
8373       CLOSE c_okx_assets_v;
8374 
8375       IF ln_dummy1 = 1 OR
8376          ln_dummy2 = 1 OR
8377          ln_dummy3 = 1 THEN
8378         OPEN  c_asset_no;
8379         FETCH c_asset_no INTO x_asset_number;
8380         IF (c_asset_no%NOTFOUND) THEN
8381           x_return_status := OKC_API.G_RET_STS_ERROR;
8382           OKL_API.SET_MESSAGE(p_app_name 	   => g_app_name,
8383                               p_msg_name	   => g_unexpected_error,
8384                               p_token1	       => g_sqlcode_token,
8385                               p_token1_value   => SQLCODE,
8386            			          p_token2	       => g_sqlerrm_token,
8387                  			  p_token2_value   => SQLERRM);
8388         END IF;
8389         CLOSE c_asset_no;
8390       ELSE
8391         EXIT;
8392       END IF;
8393     END LOOP;
8394 
8395     RETURN x_return_status;
8396   EXCEPTION
8397     WHEN OTHERS THEN
8398       IF c_asset_no%ISOPEN THEN
8399         CLOSE c_asset_no;
8400       END IF;
8401       IF c_txl_asset_number%ISOPEN THEN
8402         CLOSE c_txl_asset_number;
8403       END IF;
8404       IF c_okx_asset_lines_v%ISOPEN THEN
8405         CLOSE c_okx_asset_lines_v;
8406       END IF;
8407       IF c_okx_assets_v%ISOPEN THEN
8408         CLOSE c_okx_assets_v;
8409       END IF;
8410       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
8411       OKL_API.SET_MESSAGE(p_app_name 	 => g_app_name,
8412                           p_msg_name	 => g_unexpected_error,
8413                           p_token1	 => g_sqlcode_token,
8414                           p_token1_value => SQLCODE,
8415 			  p_token2	 => g_sqlerrm_token,
8416 			  p_token2_value => SQLERRM);
8417     RETURN x_return_status;
8418   END generate_asset_number;
8419 
8420 FUNCTION find_cle_line_number2(p_id IN NUMBER) RETURN NUMBER IS
8421 hi NUMBER;
8422 lo NUMBER;
8423 m NUMBER;
8424 l_curr_val NUMBER;
8425 BEGIN
8426   lo := 1;
8427   hi := l_trx_assets_counter6 - 1;
8428   WHILE (lo <= hi) LOOP
8429     m := FLOOR((hi + lo)/2);
8430     IF (l_cle_mapping_tab2(m).old_id = p_id) THEN
8431       l_curr_val := l_cle_mapping_tab2(m).new_id;
8432       l_cle_mapping_tab2(m).new_id := l_curr_val + 1;
8433       RETURN (l_curr_val + 1);
8434     ELSIF (l_cle_mapping_tab2(m).old_id > p_id) THEN
8435       hi := m - 1;
8436     ELSE
8437       lo := m + 1;
8438     END IF;
8439   END LOOP;
8440   RETURN -1;
8441 END;  /* find_cle_line_number2 */
8442 
8443 FUNCTION find_cle_line_number(p_id IN NUMBER) RETURN NUMBER IS
8444 hi NUMBER;
8445 lo NUMBER;
8446 m NUMBER;
8447 l_curr_val NUMBER;
8448 BEGIN
8449   lo := 1;
8450   hi := l_trx_assets_counter4 - 1;
8451   WHILE (lo <= hi) LOOP
8452     m := FLOOR((hi + lo)/2);
8453     IF (l_cle_mapping_tab(m).old_id = p_id) THEN
8454       l_curr_val := l_cle_mapping_tab(m).line_number;
8455       l_cle_mapping_tab(m).line_number := l_curr_val + 1;
8456       RETURN l_curr_val;
8457     ELSIF (l_cle_mapping_tab(m).old_id > p_id) THEN
8458       hi := m - 1;
8459     ELSE
8460       lo := m + 1;
8461     END IF;
8462   END LOOP;
8463   RETURN -1;
8464 END;  /* find_cle_line_number */
8465 
8466 FUNCTION find_cle_mapping_id(p_id IN NUMBER) RETURN NUMBER IS
8467 hi NUMBER;
8468 lo NUMBER;
8469 m NUMBER;
8470 BEGIN
8471   lo := 1;
8472   hi := l_trx_assets_counter4 - 1;
8473   WHILE (lo <= hi) LOOP
8474     m := FLOOR((hi + lo)/2);
8475     IF (l_cle_mapping_tab(m).old_id = p_id) THEN
8476       RETURN l_cle_mapping_tab(m).new_id;
8477     ELSIF (l_cle_mapping_tab(m).old_id > p_id) THEN
8478       hi := m - 1;
8479     ELSE
8480       lo := m + 1;
8481     END IF;
8482   END LOOP;
8483   RETURN -1;
8484 END;  /* find_cle_mapping_id */
8485 
8486 PROCEDURE sort_cle_mapping_tab IS
8487   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
8488   --a numtabtype;
8489   l_stack numtabtype;
8490   l_stack_index NUMBER := 0;
8491   N NUMBER;
8492   R NUMBER;
8493   L NUMBER;
8494   P NUMBER;
8495   W NUMBER;
8496   W2 NUMBER;
8497   X NUMBER;
8498   I NUMBER;
8499   J NUMBER;
8500 BEGIN
8501   IF (G_DEBUG_ENABLED = 'Y') THEN
8502     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
8503   END IF;
8504   NULL;
8505 
8506   N := l_trx_assets_counter4 - 1;
8507   IF (N < 2) THEN
8508     RETURN;
8509   END IF;
8510   l_stack_index := l_stack_index + 1;
8511   l_stack(l_stack_index) := 1;
8512   l_stack_index := l_stack_index + 1;
8513   l_stack(l_stack_index) := N;
8514 
8515   --dbms_output.put_line('l_stack_index=' || l_stack_index);
8516   WHILE l_stack_index > 0
8517   LOOP
8518     R := l_stack(l_stack_index);
8519     l_stack_index := l_stack_index - 1;
8520     L := l_stack(l_stack_index);
8521     l_stack_index := l_stack_index - 1;
8522     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
8523     WHILE 1=1
8524     LOOP -- loop until L >= R
8525       I := L;
8526       J := R;
8527       P := FLOOR((L+R)/2);
8528       --if (a(L) > a(P)) then
8529       IF (l_cle_mapping_tab(L).old_id > l_cle_mapping_tab(P).old_id)
8530       THEN
8531         W := l_cle_mapping_tab(L).old_id;
8532         W2 := l_cle_mapping_tab(L).new_id;
8533         l_cle_mapping_tab(L).old_id :=l_cle_mapping_tab(P).old_id;
8534         l_cle_mapping_tab(L).new_id :=l_cle_mapping_tab(P).new_id;
8535         l_cle_mapping_tab(P).old_id := W;
8536         l_cle_mapping_tab(P).new_id := W2;
8537       END IF;
8538       --if (a(L) > a(R)) then
8539       IF (l_cle_mapping_tab(L).old_id > l_cle_mapping_tab(R).old_id)
8540       THEN
8541         W := l_cle_mapping_tab(L).old_id;
8542         W2 := l_cle_mapping_tab(L).new_id;
8543         l_cle_mapping_tab(L).old_id :=l_cle_mapping_tab(R).old_id;
8544         l_cle_mapping_tab(L).new_id :=l_cle_mapping_tab(R).new_id;
8545         l_cle_mapping_tab(R).old_id := W;
8546         l_cle_mapping_tab(R).new_id := W2;
8547       END IF;
8548       --if (a(P) > a(R)) then
8549       IF (l_cle_mapping_tab(P).old_id > l_cle_mapping_tab(R).old_id)
8550       THEN
8551         W := l_cle_mapping_tab(P).old_id;
8552         W2 := l_cle_mapping_tab(P).new_id;
8553         l_cle_mapping_tab(P).old_id :=l_cle_mapping_tab(R).old_id;
8554         l_cle_mapping_tab(P).new_id :=l_cle_mapping_tab(R).new_id;
8555         l_cle_mapping_tab(R).old_id := W;
8556         l_cle_mapping_tab(R).new_id := W2;
8557       END IF;
8558       --X := a(P);
8559       X := l_cle_mapping_tab(P).old_id;
8560       WHILE 1=1
8561       LOOP    -- until I > J
8562         --while (a(I) < X) loop
8563         WHILE (l_cle_mapping_tab(I).old_id < X) LOOP
8564           I := I + 1;
8565         END LOOP;
8566         WHILE (X < l_cle_mapping_tab(J).old_id) LOOP
8567           J := J - 1;
8568         END LOOP;
8569         IF (I <= J) THEN
8570           W := l_cle_mapping_tab(I).old_id;
8571           W2 := l_cle_mapping_tab(I).new_id;
8572           l_cle_mapping_tab(I).old_id :=l_cle_mapping_tab(J).old_id;
8573           l_cle_mapping_tab(I).new_id :=l_cle_mapping_tab(J).new_id;
8574           l_cle_mapping_tab(J).old_id := W;
8575           l_cle_mapping_tab(J).new_id := W2;
8576           I := I + 1;
8577           J := J - 1;
8578         END IF;
8579         EXIT WHEN I > J;
8580       END LOOP;
8581       IF (J - L < R - I) THEN
8582         IF (I < R) THEN
8583           --push(I); push(R);
8584           l_stack_index := l_stack_index + 1;
8585           l_stack(l_stack_index) := I;
8586           l_stack_index := l_stack_index + 1;
8587           l_stack(l_stack_index) := R;
8588           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
8589         END IF;
8590         R := J;
8591       ELSE
8592         IF (L < J) THEN
8593           --push(L); push(J);
8594           l_stack_index := l_stack_index + 1;
8595           l_stack(l_stack_index) := L;
8596           l_stack_index := l_stack_index + 1;
8597           l_stack(l_stack_index) := J;
8598           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
8599         END IF;
8600         L := I;
8601       END IF;
8602 
8603       EXIT WHEN (L >= R);
8604     END LOOP;
8605   END LOOP;
8606 
8607   /*for i in 1..N
8608   loop
8609     print('l_cle_mapping_tab('||i||')=' || l_cle_mapping_tab(i).old_id || ':' || l_cle_mapping_tab(i).new_id);
8610   end loop; */
8611 
8612 EXCEPTION WHEN OTHERS THEN
8613 
8614   x_return_status := OKL_API.G_RET_STS_ERROR;
8615   /*OKL_API.set_message(p_app_name => 'OKL',
8616                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
8617                       p_token1 => 'ASSET_NUMBER',
8618                       p_token1_value => 'sort_cle_mapping_tab');*/
8619     /* DEBUG */
8620   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8621       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
8622     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_cle_mapping_tab:l_cle_mapping_tab N=' || N || ' ...');
8623   END IF;
8624   --print array
8625   FOR i IN 1..N
8626   LOOP
8627     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8628           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cle_mapping_tab('||i||')=' || l_cle_mapping_tab(i).old_id || ':' || l_cle_mapping_tab(i).new_id);
8629     END IF;
8630   END LOOP;
8631 
8632   RAISE OKC_API.G_EXCEPTION_ERROR;
8633 
8634 END;  /* sort_cle_mapping_tab */
8635 
8636 
8637 FUNCTION find_aid_mapping_id(p_id IN VARCHAR2) RETURN VARCHAR2 IS
8638 hi NUMBER;
8639 lo NUMBER;
8640 m NUMBER;
8641 p VARCHAR2(2) := '-1';
8642 BEGIN
8643   lo := 1;
8644   hi := l_asset_counter - 1;
8645   WHILE (lo <= hi) LOOP
8646     m := FLOOR((hi + lo)/2);
8647     IF (l_aid_mapping_tab(m).old_id = p_id) THEN
8648       RETURN l_aid_mapping_tab(m).new_id;
8649     ELSIF (l_aid_mapping_tab(m).old_id > p_id) THEN
8650       hi := m - 1;
8651     ELSE
8652       lo := m + 1;
8653     END IF;
8654   END LOOP;
8655   RETURN p;
8656 END;  /* find_aid_mapping_id */
8657 
8658 PROCEDURE sort_aid_mapping_tab IS
8659   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
8660   --a numtabtype;
8661   l_stack numtabtype;
8662   l_stack_index NUMBER := 0;
8663   N NUMBER;
8664   R NUMBER;
8665   L NUMBER;
8666   P NUMBER;
8667 
8668   W VARCHAR2(150);
8669   W2 VARCHAR2(150);
8670   X VARCHAR2(150);
8671   I NUMBER;
8672   J NUMBER;
8673 BEGIN
8674   IF (G_DEBUG_ENABLED = 'Y') THEN
8675     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
8676   END IF;
8677   NULL;
8678 
8679   N := l_asset_counter - 1;
8680   IF (N < 2) THEN
8681     RETURN;
8682   END IF;
8683   l_stack_index := l_stack_index + 1;
8684   l_stack(l_stack_index) := 1;
8685   l_stack_index := l_stack_index + 1;
8686   l_stack(l_stack_index) := N;
8687 
8688   --dbms_output.put_line('l_stack_index=' || l_stack_index);
8689   WHILE l_stack_index > 0
8690   LOOP
8691     R := l_stack(l_stack_index);
8692     l_stack_index := l_stack_index - 1;
8693     L := l_stack(l_stack_index);
8694     l_stack_index := l_stack_index - 1;
8695     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
8696     WHILE 1=1
8697     LOOP -- loop until L >= R
8698       I := L;
8699       J := R;
8700       P := FLOOR((L+R)/2);
8701       --if (a(L) > a(P)) then
8702       IF (l_aid_mapping_tab(L).old_id > l_aid_mapping_tab(P).old_id)
8703       THEN
8704         W := l_aid_mapping_tab(L).old_id;
8705         W2 := l_aid_mapping_tab(L).new_id;
8706         l_aid_mapping_tab(L).old_id :=l_aid_mapping_tab(P).old_id;
8707         l_aid_mapping_tab(L).new_id :=l_aid_mapping_tab(P).new_id;
8708         l_aid_mapping_tab(P).old_id := W;
8709         l_aid_mapping_tab(P).new_id := W2;
8710       END IF;
8711       --if (a(L) > a(R)) then
8712       IF (l_aid_mapping_tab(L).old_id > l_aid_mapping_tab(R).old_id)
8713       THEN
8714         W := l_aid_mapping_tab(L).old_id;
8715         W2 := l_aid_mapping_tab(L).new_id;
8716         l_aid_mapping_tab(L).old_id :=l_aid_mapping_tab(R).old_id;
8717         l_aid_mapping_tab(L).new_id :=l_aid_mapping_tab(R).new_id;
8718         l_aid_mapping_tab(R).old_id := W;
8719         l_aid_mapping_tab(R).new_id := W2;
8720       END IF;
8721       --if (a(P) > a(R)) then
8722       IF (l_aid_mapping_tab(P).old_id > l_aid_mapping_tab(R).old_id)
8723       THEN
8724         W := l_aid_mapping_tab(P).old_id;
8725         W2 := l_aid_mapping_tab(P).new_id;
8726         l_aid_mapping_tab(P).old_id :=l_aid_mapping_tab(R).old_id;
8727         l_aid_mapping_tab(P).new_id :=l_aid_mapping_tab(R).new_id;
8728         l_aid_mapping_tab(R).old_id := W;
8729         l_aid_mapping_tab(R).new_id := W2;
8730       END IF;
8731       --X := a(P);
8732       X := l_aid_mapping_tab(P).old_id;
8733       WHILE 1=1
8734       LOOP    -- until I > J
8735         --while (a(I) < X) loop
8736         WHILE (l_aid_mapping_tab(I).old_id < X) LOOP
8737           I := I + 1;
8738         END LOOP;
8739         WHILE (X < l_aid_mapping_tab(J).old_id) LOOP
8740           J := J - 1;
8741         END LOOP;
8742         IF (I <= J) THEN
8743           W := l_aid_mapping_tab(I).old_id;
8744           W2 := l_aid_mapping_tab(I).new_id;
8745           l_aid_mapping_tab(I).old_id :=l_aid_mapping_tab(J).old_id;
8746           l_aid_mapping_tab(I).new_id :=l_aid_mapping_tab(J).new_id;
8747           l_aid_mapping_tab(J).old_id := W;
8748           l_aid_mapping_tab(J).new_id := W2;
8749           I := I + 1;
8750           J := J - 1;
8751         END IF;
8752         EXIT WHEN I > J;
8753       END LOOP;
8754       IF (J - L < R - I) THEN
8755         IF (I < R) THEN
8756           --push(I); push(R);
8757           l_stack_index := l_stack_index + 1;
8758           l_stack(l_stack_index) := I;
8759           l_stack_index := l_stack_index + 1;
8760           l_stack(l_stack_index) := R;
8761           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
8762         END IF;
8763         R := J;
8764       ELSE
8765         IF (L < J) THEN
8766           --push(L); push(J);
8767           l_stack_index := l_stack_index + 1;
8768           l_stack(l_stack_index) := L;
8769           l_stack_index := l_stack_index + 1;
8770           l_stack(l_stack_index) := J;
8771           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
8772         END IF;
8773         L := I;
8774       END IF;
8775 
8776       EXIT WHEN (L >= R);
8777     END LOOP;
8778   END LOOP;
8779 
8780 EXCEPTION WHEN OTHERS THEN
8781 
8782   x_return_status := OKL_API.G_RET_STS_ERROR;
8783   /*OKL_API.set_message(p_app_name => 'OKL',
8784                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
8785                       p_token1 => 'ASSET_NUMBER',
8786                       p_token1_value => 'sort_aid_mapping_tab');*/
8787     /* DEBUG */
8788   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8789       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
8790     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_aid_mapping_tab:l_aid_mapping_tab N=' || N || ' ...');
8791   END IF;
8792 
8793   --print array
8794   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8795       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'In sort_aid_mapping_tab:N='|| N);
8796   END IF;
8797   FOR i IN 1..N
8798   LOOP
8799     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8800           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_aid_mapping_tab('||i||')=' || l_aid_mapping_tab(i).old_id || ':' || l_aid_mapping_tab(i).new_id);
8801     END IF;
8802   END LOOP;
8803 
8804   RAISE OKC_API.G_EXCEPTION_ERROR;
8805 
8806 END;  /* sort_aid_mapping_tab */
8807 
8808 PROCEDURE do_id_mapping_sort IS
8809   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
8810   --a numtabtype;
8811   l_stack numtabtype;
8812   l_stack_index NUMBER := 0;
8813   N NUMBER;
8814   R NUMBER;
8815   L NUMBER;
8816   P NUMBER;
8817   W NUMBER;
8818   W2 NUMBER;
8819   X NUMBER;
8820   I NUMBER;
8821   J NUMBER;
8822 BEGIN
8823   IF (G_DEBUG_ENABLED = 'Y') THEN
8824     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
8825   END IF;
8826   NULL;
8827   /*a(1) := 10;
8828   a(2) := 50;
8829   a(3) := 27;
8830   a(4) := 5;
8831   a(5) := 100;
8832   a(6) := 50;
8833   a(7) := 35;
8834   a(8) := 41;
8835   a(9) := 75;
8836   a(10) := 20;
8837 
8838   N := 10;
8839   */
8840 
8841   N := l_counter - 1;
8842   IF (N < 2) THEN
8843     RETURN;
8844   END IF;
8845   l_stack_index := l_stack_index + 1;
8846   l_stack(l_stack_index) := 1;
8847   l_stack_index := l_stack_index + 1;
8848   l_stack(l_stack_index) := N;
8849 
8850   --dbms_output.put_line('l_stack_index=' || l_stack_index);
8851   WHILE l_stack_index > 0
8852   LOOP
8853     R := l_stack(l_stack_index);
8854     l_stack_index := l_stack_index - 1;
8855     L := l_stack(l_stack_index);
8856     l_stack_index := l_stack_index - 1;
8857     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
8858     WHILE 1=1
8859     LOOP -- loop until L >= R
8860       I := L;
8861       J := R;
8862       P := FLOOR((L+R)/2);
8863       --if (a(L) > a(P)) then
8864       IF (l_id_mapping_tab(L).old_id > l_id_mapping_tab(P).old_id)
8865       THEN
8866         /*W := a(L);
8867         a(L) := a(P);
8868         a(P) := W;*/
8869 
8870         W := l_id_mapping_tab(L).old_id;
8871         W2 := l_id_mapping_tab(L).new_id;
8872         l_id_mapping_tab(L).old_id :=l_id_mapping_tab(P).old_id;
8873         l_id_mapping_tab(L).new_id :=l_id_mapping_tab(P).new_id;
8874         l_id_mapping_tab(P).old_id := W;
8875         l_id_mapping_tab(P).new_id := W2;
8876       END IF;
8877       --if (a(L) > a(R)) then
8878       IF (l_id_mapping_tab(L).old_id > l_id_mapping_tab(R).old_id)
8879       THEN
8880         /*W := a(L);
8881         a(L) := a(R);
8882         a(R) := W;*/
8883         W := l_id_mapping_tab(L).old_id;
8884         W2 := l_id_mapping_tab(L).new_id;
8885         l_id_mapping_tab(L).old_id :=l_id_mapping_tab(R).old_id;
8886         l_id_mapping_tab(L).new_id :=l_id_mapping_tab(R).new_id;
8887         l_id_mapping_tab(R).old_id := W;
8888         l_id_mapping_tab(R).new_id := W2;
8889       END IF;
8890       --if (a(P) > a(R)) then
8891       IF (l_id_mapping_tab(P).old_id > l_id_mapping_tab(R).old_id)
8892       THEN
8893         /*W := a(P);
8894         a(P) := a(R);
8895         a(R) := W; */
8896         W := l_id_mapping_tab(P).old_id;
8897         W2 := l_id_mapping_tab(P).new_id;
8898         l_id_mapping_tab(P).old_id :=l_id_mapping_tab(R).old_id;
8899         l_id_mapping_tab(P).new_id :=l_id_mapping_tab(R).new_id;
8900         l_id_mapping_tab(R).old_id := W;
8901         l_id_mapping_tab(R).new_id := W2;
8902       END IF;
8903       --X := a(P);
8904       X := l_id_mapping_tab(P).old_id;
8905       WHILE 1=1
8906       LOOP    -- until I > J
8907         --while (a(I) < X) loop
8908         WHILE (l_id_mapping_tab(I).old_id < X) LOOP
8909           I := I + 1;
8910         END LOOP;
8911         WHILE (X < l_id_mapping_tab(J).old_id) LOOP
8912           J := J - 1;
8913         END LOOP;
8914         IF (I <= J) THEN
8915           /*W := a(I);
8916           a(I) := a(J);
8917           a(J) := W;*/
8918           W := l_id_mapping_tab(I).old_id;
8919           W2 := l_id_mapping_tab(I).new_id;
8920           l_id_mapping_tab(I).old_id :=l_id_mapping_tab(J).old_id;
8921           l_id_mapping_tab(I).new_id :=l_id_mapping_tab(J).new_id;
8922           l_id_mapping_tab(J).old_id := W;
8923           l_id_mapping_tab(J).new_id := W2;
8924           I := I + 1;
8925           J := J - 1;
8926         END IF;
8927         EXIT WHEN I > J;
8928       END LOOP;
8929       IF (J - L < R - I) THEN
8930         IF (I < R) THEN
8931           --push(I); push(R);
8932           l_stack_index := l_stack_index + 1;
8933           l_stack(l_stack_index) := I;
8934           l_stack_index := l_stack_index + 1;
8935           l_stack(l_stack_index) := R;
8936           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
8937         END IF;
8938         R := J;
8939       ELSE
8940         IF (L < J) THEN
8941           --push(L); push(J);
8942           l_stack_index := l_stack_index + 1;
8943           l_stack(l_stack_index) := L;
8944           l_stack_index := l_stack_index + 1;
8945           l_stack(l_stack_index) := J;
8946           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
8947         END IF;
8948         L := I;
8949       END IF;
8950 
8951       EXIT WHEN (L >= R);
8952     END LOOP;
8953   END LOOP;
8954 
8955 EXCEPTION WHEN OTHERS THEN
8956 
8957   x_return_status := OKL_API.G_RET_STS_ERROR;
8958   /*OKL_API.set_message(p_app_name => 'OKL',
8959                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
8960                       p_token1 => 'ASSET_NUMBER',
8961                       p_token1_value => 'do_id_mapping_sort');*/
8962     /* DEBUG */
8963   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8964       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
8965     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing do_id_mapping_sort:l_id_mapping_tab N=' || N || ' ...');
8966   END IF;
8967 
8968   --print array
8969   FOR i IN 1..N
8970   LOOP
8971     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8972           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_id_mapping_tab('||i||')=' || l_id_mapping_tab(i).old_id || ':' || l_id_mapping_tab(i).new_id);
8973     END IF;
8974   END LOOP;
8975 
8976   RAISE OKC_API.G_EXCEPTION_ERROR;
8977 
8978 END;  /* do_id_mapping_sort */
8979 
8980 FUNCTION find_mapping_id(p_id IN NUMBER) RETURN NUMBER IS
8981 hi NUMBER;
8982 lo NUMBER;
8983 m NUMBER;
8984 BEGIN
8985   lo := 1;
8986   hi := l_counter - 1;
8987   WHILE (lo <= hi) LOOP
8988     m := FLOOR((hi + lo)/2);
8989     IF (l_id_mapping_tab(m).old_id = p_id) THEN
8990       RETURN l_id_mapping_tab(m).new_id;
8991     ELSIF (l_id_mapping_tab(m).old_id > p_id) THEN
8992       hi := m - 1;
8993     ELSE
8994       lo := m + 1;
8995     END IF;
8996   END LOOP;
8997   RETURN -1;
8998 END;  /* find_mapping_id */
8999 
9000 PROCEDURE insert_okc_k_lines_tl(p_old_id IN okc_k_lines_b.id%TYPE) IS
9001 CURSOR c5(p_id NUMBER) IS
9002 SELECT
9003        a.id, a.LANGUAGE, a.source_lang,
9004        a.sfwt_flag, a.name, a.comments,
9005        a.item_description, a.block23text, a.created_by,
9006        a.creation_date, a.last_updated_by, a.last_update_date,
9007        a.last_update_login, a.security_group_id, a.oke_boe_description,
9008        a.cognomen, b.lse_id, b.sts_code, c.fee_type
9009 --avsingh: Bug 5710213: start
9010         , lsb.lty_code
9011 --avsingh: Bug 5710213: end
9012 FROM okc_k_lines_tl a,
9013      okc_k_lines_b b,
9014      okl_k_lines c,
9015      fnd_languages d
9016 --avsingh: Bug 5710213: start
9017     , okc_line_styles_b lsb
9018 --avsingh: Bug 5710213: end
9019 WHERE a.id = b.id
9020 AND   b.id = c.id
9021 AND   a.id = c.id
9022 AND   b.dnz_chr_id = p_id
9023 AND   a.LANGUAGE = d.language_code
9024 AND   d.installed_flag = 'B'
9025 --avsingh: Bug 5710213: start
9026     AND b.lse_id = lsb.id
9027 --avsingh: Bug 5710213: end
9028 ;
9029 
9030 
9031 CURSOR c6 IS
9032 SELECT language_code
9033 FROM   fnd_languages
9034 WHERE installed_flag IN ('B', 'I');
9035 
9036 CURSOR c7(p_id NUMBER) IS
9037 SELECT DISTINCT a.name
9038 FROM   okc_k_lines_tl a,
9039        okc_k_lines_b b
9040 WHERE  a.id = b.id
9041 AND    b.dnz_chr_id = p_id
9042 -- gboomina Bug 6353660 - Start
9043 -- excluding NULL values to get valid asset numbers
9044 -- which is used down the line to replace asset numbers.
9045 AND    a.name IS NOT NULL
9046 -- gboomina Bug 6353660 - End
9047 AND    a.LANGUAGE = USERENV('LANG');
9048 --and    b.lse_id in (33, 42)
9049 --and    p_trans_type not in ('CRB', 'CRL', 'CSP', 'CRV', 'ALI');
9050 
9051 
9052     l_olid_tab2 l_olid_type;
9053     l_ollanguage_tab2 l_ollanguage_type;
9054     l_olsource_lang_tab2 l_olsource_lang_type;
9055     l_olsfwt_flag_tab2 l_olsfwt_flag_type;
9056     l_olname_tab2 l_olname_type;
9057     l_olcomments_tab2 l_olcomments_type;
9058     l_olitem_description_tab2 l_olitem_description_type;
9059     l_olblock23text_tab2 l_olblock23text_type;
9060     l_olcreated_by_tab2 l_olcreated_by_type;
9061     l_olcreation_date_tab2 l_olcreation_date_type;
9062     l_ollast_updated_by_tab2 l_ollast_updated_by_type;
9063     l_ollast_update_date_tab2 l_ollast_update_date_type;
9064     l_ollast_update_login_tab2 l_ollast_update_login_type;
9065     l_olsecurity_group_id_tab2 l_olsecurity_group_id_type;
9066     l_oloke_boe_description_tab2 l_oloke_boe_description_type;
9067     l_olcognomen_tab2 l_olcognomen_type;
9068 
9069     l_ollse_id_tab2 l_lse_id_type;
9070 --avsingh: Bug 5710213: start
9071     l_ollty_code_tab2 l_lty_code_type;
9072 --avsingh: Bug 5710213: end
9073     l_olsts_code_tab2 l_sts_code_type;
9074     l_olfee_type_tab2 l_fee_type_type;
9075 
9076   l_olname_tab3 l_olname_type;
9077   l_ret_status VARCHAR2(30);
9078   l_new_asset_name VARCHAR2(150);
9079   l_new_id NUMBER;
9080 
9081 BEGIN
9082   OPEN c5(p_old_id);
9083   LOOP
9084     FETCH c5 bulk collect INTO
9085      l_olid_tab2, l_ollanguage_tab2, l_olsource_lang_tab2,
9086      l_olsfwt_flag_tab2, l_olname_tab2, l_olcomments_tab2,
9087      l_olitem_description_tab2, l_olblock23text_tab2, l_olcreated_by_tab2,
9088      l_olcreation_date_tab2, l_ollast_updated_by_tab2, l_ollast_update_date_tab2,
9089      l_ollast_update_login_tab2, l_olsecurity_group_id_tab2, l_oloke_boe_description_tab2,
9090      l_olcognomen_tab2, l_ollse_id_tab2, l_olsts_code_tab2, l_olfee_type_tab2
9091 --avsingh: Bug 5710213: start
9092     , l_ollty_code_tab2
9093 --avsingh: Bug 5710213: end
9094     limit G_BULK_SIZE;
9095     EXIT WHEN l_olid_tab2.COUNT = 0;
9096     FOR i IN l_olid_tab2.first..l_olid_tab2.last
9097     LOOP
9098       --if ( (l_olfee_type_tab2(i) = 'ROLLOVER' and
9099                 --l_ollse_id_tab2(i) = 52 and
9100                 --p_trans_type = 'CFA') or
9101              --(l_olsts_code_tab2(i) = 'ABANDONED') or
9102              --(l_ollse_id_tab2(i) = 47) ) then
9103           --null;
9104       --else
9105         l_olid_tab(l_okc_k_lines_tl_counter) := l_olid_tab2(i);
9106         -- Change id
9107         l_new_id := find_mapping_id(l_olid_tab(l_okc_k_lines_tl_counter));
9108         --print('okc_k_lines_tl:l_new_id=' || l_new_id);
9109         l_olid_tab(l_okc_k_lines_tl_counter) := l_new_id;
9110 
9111         l_ollanguage_tab(l_okc_k_lines_tl_counter) := l_ollanguage_tab2(i);
9112         l_olsource_lang_tab(l_okc_k_lines_tl_counter) := l_olsource_lang_tab2(i);
9113         l_olsfwt_flag_tab(l_okc_k_lines_tl_counter) := l_olsfwt_flag_tab2(i);
9114         l_olname_tab(l_okc_k_lines_tl_counter) := l_olname_tab2(i);
9115         l_olcomments_tab(l_okc_k_lines_tl_counter) := l_olcomments_tab2(i);
9116         l_olitem_description_tab(l_okc_k_lines_tl_counter) := l_olitem_description_tab2(i);
9117         l_olblock23text_tab(l_okc_k_lines_tl_counter) := l_olblock23text_tab2(i);
9118         l_olcreated_by_tab(l_okc_k_lines_tl_counter) := l_olcreated_by_tab2(i);
9119         l_olcreation_date_tab(l_okc_k_lines_tl_counter) := l_olcreation_date_tab2(i);
9120         l_ollast_updated_by_tab(l_okc_k_lines_tl_counter) := l_ollast_updated_by_tab2(i);
9121         l_ollast_update_date_tab(l_okc_k_lines_tl_counter) := l_ollast_update_date_tab2(i);
9122         l_ollast_update_login_tab(l_okc_k_lines_tl_counter) := l_ollast_update_login_tab2(i);
9123         l_olsecurity_group_id_tab(l_okc_k_lines_tl_counter) := l_olsecurity_group_id_tab2(i);
9124         l_oloke_boe_description_tab(l_okc_k_lines_tl_counter) := l_oloke_boe_description_tab2(i);
9125         l_olcognomen_tab(l_okc_k_lines_tl_counter) := l_olcognomen_tab2(i);
9126 
9127         l_ollse_id_tab(l_okc_k_lines_tl_counter) := l_ollse_id_tab2(i);
9128 --avsingh: Bug 5710213: start
9129         l_ollty_code_tab(l_okc_k_lines_tl_counter) :=  l_ollty_code_tab2(i);
9130 --avsingh: Bug 5710213: end
9131         l_olsts_code_tab(l_okc_k_lines_tl_counter) := l_olsts_code_tab2(i);
9132         l_olfee_type_tab(l_okc_k_lines_tl_counter) := l_olfee_type_tab2(i);
9133 
9134         l_okc_k_lines_tl_counter := l_okc_k_lines_tl_counter + 1;
9135 
9136       --end if;
9137     END LOOP;
9138   END LOOP;
9139   CLOSE c5;
9140 
9141   IF (l_okc_k_lines_tl_counter < 2) THEN
9142     RETURN;
9143   END IF;
9144 
9145   --print('Opening c7 with p_old_id=' || p_old_id);
9146   OPEN c7(p_old_id);
9147   LOOP
9148     FETCH c7 bulk collect INTO
9149       l_olname_tab3
9150     limit G_BULK_SIZE;
9151     --print('l_olname_tab3.count=' || l_olname_tab3.count);
9152     EXIT WHEN l_olname_tab3.COUNT = 0;
9153     FOR i IN l_olname_tab3.first..l_olname_tab3.last
9154     LOOP
9155       -- Populate l_aid_mapping_tab
9156       l_aid_mapping_tab(l_asset_counter).old_id := l_olname_tab3(i);
9157       l_ret_status := generate_asset_number(l_new_asset_name);
9158       IF l_ret_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9159         RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9160       ELSIF l_ret_status = OKL_API.G_RET_STS_ERROR THEN
9161         RAISE OKL_API.G_EXCEPTION_ERROR;
9162       END IF;
9163 
9164       l_aid_mapping_tab(l_asset_counter).new_id := l_new_asset_name;
9165 
9166       l_asset_counter := l_asset_counter + 1;
9167     END LOOP;
9168   END LOOP;
9169   CLOSE c7;
9170   sort_aid_mapping_tab;
9171   /* Debug only */
9172   /*
9173   print('Printing insert_okc_k_lines_tl:l_olid_tab ...');
9174   for i in l_olid_tab.first..l_olid_tab.last
9175   loop
9176     print('l_olid_tab('||i||')=' || l_olid_tab(i));
9177     print('l_olfee_type_tab('||i||')=' || l_olfee_type_tab(i));
9178     print('l_ollse_id_tab('||i||')=' || l_ollse_id_tab(i));
9179     print('l_olsts_code_tab('||i||')=' || l_olsts_code_tab(i));
9180     print('l_olsource_lang_tab('||i||')=' || l_olsource_lang_tab(i));
9181     print('l_olname_tab('||i||')=' || l_olname_tab(i));
9182     print('l_olcomments_tab('||i||')=' || l_olcomments_tab(i));
9183     print('l_olitem_description_tab('||i||')=' || l_olitem_description_tab(i));
9184     print('l_olblock23text_tab('||i||')=' || l_olblock23text_tab(i));
9185     print('l_olsecurity_group_id_tab('||i||')=' || l_olsecurity_group_id_tab(i));
9186     print('l_oloke_boe_description_tab('||i||')=' || l_oloke_boe_description_tab(i));
9187     print('l_olcognomen_tab('||i||')=' || l_olcognomen_tab(i));
9188   end loop;
9189   */
9190 
9191   -- Now replace name
9192   IF (l_olid_tab.COUNT > 0) THEN
9193   FOR i IN l_olid_tab.first..l_olid_tab.last
9194   LOOP
9195 --avsingh: Bug 5710213: start
9196     IF ( l_ollty_code_tab(i) IN ('FREE_FORM1', 'FIXED_ASSET', 'LINK_FEE_ASSET', 'LINK_SERV_ASSET' ) AND -- added by zrehman for Bug#5920670
9197     --IF ( l_ollse_id_tab(i) IN (33, 42) AND
9198 --avsingh: Bug 5710213: end
9199          p_trans_type NOT IN ('CRB', 'CRL', 'CSP', 'CRV', 'ALI')
9200         ) THEN
9201       l_new_asset_name := find_aid_mapping_id(l_olname_tab(i));
9202       IF (l_new_asset_name <> '-1') THEN
9203         l_olname_tab(i) := l_new_asset_name;
9204       END IF;
9205     END IF;
9206   END LOOP;
9207   END IF;
9208 
9209   IF (l_okc_k_lines_tl_counter > 1) THEN
9210   FOR r IN c6
9211   LOOP
9212     --print('r.language_code=' || r.language_code);
9213     forall i IN l_olid_tab.first..l_olid_tab.last
9214       INSERT INTO okc_k_lines_tl (
9215              id, LANGUAGE, source_lang,
9216              sfwt_flag, name, comments,
9217              item_description, block23text, created_by,
9218              creation_date, last_updated_by, last_update_date,
9219              last_update_login, security_group_id, oke_boe_description,
9220              cognomen
9221           ) VALUES (
9222            l_olid_tab(i), r.language_code, l_olsource_lang_tab(i),
9223            'N', l_olname_tab(i), l_olcomments_tab(i),
9224            l_olitem_description_tab(i), l_olblock23text_tab(i), l_created_by,
9225            SYSDATE,l_last_updated_by,SYSDATE,
9226            l_last_update_login,l_olsecurity_group_id_tab(i),l_oloke_boe_description_tab(i),
9227            l_olcognomen_tab(i)
9228           );
9229   END LOOP;
9230   END IF;
9231 
9232 EXCEPTION WHEN OTHERS THEN
9233 
9234   x_return_status := OKL_API.G_RET_STS_ERROR;
9235   /*OKL_API.set_message(p_app_name => 'OKL',
9236                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
9237                       p_token1 => 'ASSET_NUMBER',
9238                       p_token1_value => 'insert_okc_k_lines_tl');*/
9239     /* DEBUG */
9240   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9241       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
9242     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing insert_okc_k_lines_tl:l_olid_tab.count=' || l_olid_tab.COUNT || ' ...');
9243   END IF;
9244   IF (l_olid_tab.COUNT > 0) THEN
9245   FOR i IN l_olid_tab.first..l_olid_tab.last
9246   LOOP
9247     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9248           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_olid_tab('||i||')=' || l_olid_tab(i));
9249       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_olsource_lang_tab('||i||')=' || l_olsource_lang_tab(i));
9250       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_olname_tab('||i||')=' || l_olname_tab(i));
9251       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_olcomments_tab('||i||')=' || l_olcomments_tab(i));
9252       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_olitem_description_tab('||i||')=' || l_olitem_description_tab(i));
9253       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_olblock23text_tab('||i||')=' || l_olblock23text_tab(i));
9254       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_olsecurity_group_id_tab('||i||')=' || l_olsecurity_group_id_tab(i));
9255       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_oloke_boe_description_tab('||i||')=' || l_oloke_boe_description_tab(i));
9256       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_olcognomen_tab('||i||')=' || l_olcognomen_tab(i));
9257     END IF;
9258   END LOOP;
9259   END IF;
9260 
9261 
9262   RAISE OKC_API.G_EXCEPTION_ERROR;
9263 
9264 END; /* insert okc_k_lines_tl */
9265 
9266 PROCEDURE insert_okc_k_lines_tl_old(p_old_id IN okc_k_lines_b.id%TYPE,
9267                                 p_new_id IN okc_k_lines_b.id%TYPE,
9268                                 p_flush IN VARCHAR2 ) IS
9269 CURSOR c5(p_id okc_k_lines_b.id%TYPE) IS
9270   SELECT
9271        a.id, a.LANGUAGE, a.source_lang,
9272        a.sfwt_flag, a.name, a.comments,
9273        a.item_description, a.block23text, a.created_by,
9274        a.creation_date, a.last_updated_by, a.last_update_date,
9275        a.last_update_login, a.security_group_id, a.oke_boe_description,
9276        a.cognomen, b.lse_id
9277     FROM okc_k_lines_tl a,
9278          okc_k_lines_b b
9279     WHERE a.id = p_id
9280     AND   a.id = b.id;
9281 
9282     TYPE l_ollse_id_type IS TABLE OF okc_k_lines_b.lse_id%TYPE INDEX BY BINARY_INTEGER;
9283     l_olid_tab2 l_olid_type;
9284     l_ollanguage_tab2 l_ollanguage_type;
9285     l_olsource_lang_tab2 l_olsource_lang_type;
9286     l_olsfwt_flag_tab2 l_olsfwt_flag_type;
9287     l_olname_tab2 l_olname_type;
9288     l_olcomments_tab2 l_olcomments_type;
9289     l_olitem_description_tab2 l_olitem_description_type;
9290     l_olblock23text_tab2 l_olblock23text_type;
9291     l_olcreated_by_tab2 l_olcreated_by_type;
9292     l_olcreation_date_tab2 l_olcreation_date_type;
9293     l_ollast_updated_by_tab2 l_ollast_updated_by_type;
9294     l_ollast_update_date_tab2 l_ollast_update_date_type;
9295     l_ollast_update_login_tab2 l_ollast_update_login_type;
9296     l_olsecurity_group_id_tab2 l_olsecurity_group_id_type;
9297     l_oloke_boe_description_tab2 l_oloke_boe_description_type;
9298     l_olcognomen_tab2 l_olcognomen_type;
9299     l_ollse_id_tab2 l_ollse_id_type;
9300 
9301   l_ret_status VARCHAR2(30);
9302   l_new_asset_name VARCHAR2(150);
9303   l_done_generating BOOLEAN := FALSE;
9304   l_old_asset_name VARCHAR2(150);
9305 BEGIN
9306   IF (G_DEBUG_ENABLED = 'Y') THEN
9307     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
9308   END IF;
9309   NULL;
9310   OPEN c5(p_old_id);
9311   FETCH c5 bulk collect INTO
9312     l_olid_tab2, l_ollanguage_tab2, l_olsource_lang_tab2,
9313     l_olsfwt_flag_tab2, l_olname_tab2, l_olcomments_tab2,
9314     l_olitem_description_tab2, l_olblock23text_tab2, l_olcreated_by_tab2,
9315     l_olcreation_date_tab2, l_ollast_updated_by_tab2, l_ollast_update_date_tab2,
9316     l_ollast_update_login_tab2,l_olsecurity_group_id_tab2, l_oloke_boe_description_tab2,
9317     l_olcognomen_tab2, l_ollse_id_tab2
9318   limit G_BULK_SIZE;
9319   CLOSE c5;
9320   --print('okc_k_lines_tab:l_id_tab.count='||l_id_tab.count);
9321   FOR i IN l_olid_tab2.first..l_olid_tab2.last LOOP
9322       -- Change id
9323       l_olid_tab2(i) := p_new_id;
9324       l_olid_tab(l_okc_k_lines_tl_counter) := l_olid_tab2(i);
9325 
9326       l_ollanguage_tab(l_okc_k_lines_tl_counter) := l_ollanguage_tab2(i);
9327       l_olsource_lang_tab(l_okc_k_lines_tl_counter) := l_olsource_lang_tab2(i);
9328       l_olsfwt_flag_tab(l_okc_k_lines_tl_counter) := l_olsfwt_flag_tab2(i);
9329       l_olname_tab(l_okc_k_lines_tl_counter) := l_olname_tab2(i);
9330 
9331       /* AKP - to do: Put okl_copy_asset_pvt.generate_asset_number as public api
9332         Call okl_copy_asset_pvt.generate_asset_number instead of local procedure      */
9333       IF (p_trans_type NOT IN ('CRB','CRL','CSP','CRV','ALI') AND
9334           l_ollse_id_tab2(i) IN (33, 42) ) THEN
9335         -- Generate asset_number
9336         --l_ret_status := okl_copy_asset_pvt.generate_asset_number(
9337         IF (NOT(l_done_generating)) THEN
9338           IF (l_asset_counter > 1) THEN
9339             l_new_asset_name := find_aid_mapping_id(l_olname_tab(l_okc_k_lines_tl_counter));
9340             IF (l_new_asset_name = '-1') THEN
9341               l_ret_status := generate_asset_number(
9342                               l_new_asset_name
9343                             );
9344               IF l_ret_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9345                 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9346               ELSIF l_ret_status = OKL_API.G_RET_STS_ERROR THEN
9347                 RAISE OKL_API.G_EXCEPTION_ERROR;
9348               END IF;
9349             END IF;
9350           ELSE
9351               l_ret_status := generate_asset_number(
9352                               l_new_asset_name
9353                             );
9354               IF l_ret_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9355                 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9356               ELSIF l_ret_status = OKL_API.G_RET_STS_ERROR THEN
9357                 RAISE OKL_API.G_EXCEPTION_ERROR;
9358               END IF;
9359           END IF;
9360           l_done_generating := TRUE;
9361         END IF;
9362         l_old_asset_name := l_olname_tab(l_okc_k_lines_tl_counter);
9363         l_olname_tab(l_okc_k_lines_tl_counter) := l_new_asset_name;
9364         --print('Old Asset=' || l_old_asset_name);
9365         --print('New Asset=' || l_new_asset_name);
9366 
9367         -- Store line id to asset_number mapping
9368         l_aid_mapping_tab(l_asset_counter).old_id := l_old_asset_name;
9369         l_aid_mapping_tab(l_asset_counter).new_id := l_new_asset_name;
9370 
9371         l_asset_counter := l_asset_counter + 1;
9372 
9373       END IF;
9374 
9375       IF (l_asset_counter > 1) THEN
9376         sort_aid_mapping_tab;
9377       END IF;
9378       l_olcomments_tab(l_okc_k_lines_tl_counter) := l_olcomments_tab2(i);
9379       l_olitem_description_tab(l_okc_k_lines_tl_counter) := l_olitem_description_tab2(i);
9380       l_olblock23text_tab(l_okc_k_lines_tl_counter) := l_olblock23text_tab2(i);
9381       l_olcreated_by_tab(l_okc_k_lines_tl_counter) := l_olcreated_by_tab2(i);
9382       l_olcreation_date_tab(l_okc_k_lines_tl_counter) := l_olcreation_date_tab2(i);
9383       l_ollast_updated_by_tab(l_okc_k_lines_tl_counter) := l_ollast_updated_by_tab2(i);
9384       l_ollast_update_date_tab(l_okc_k_lines_tl_counter) := l_ollast_update_date_tab2(i);
9385       l_ollast_update_login_tab(l_okc_k_lines_tl_counter) := l_ollast_update_login_tab2(i);
9386       l_olsecurity_group_id_tab(l_okc_k_lines_tl_counter) := l_olsecurity_group_id_tab2(i);
9387       l_oloke_boe_description_tab(l_okc_k_lines_tl_counter) := l_oloke_boe_description_tab2(i);
9388       l_olcognomen_tab(l_okc_k_lines_tl_counter) := l_olcognomen_tab2(i);
9389 
9390       l_okc_k_lines_tl_counter := l_okc_k_lines_tl_counter + 1;
9391 
9392   END LOOP;
9393 
9394   IF (p_flush = 'Y') THEN
9395     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9396           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_okc_k_lines_tl_counter='|| l_okc_k_lines_tl_counter || ' l_olid_tab.count=' || l_olid_tab.COUNT);
9397     END IF;
9398     IF (l_okc_k_lines_tl_counter > 1) THEN
9399       forall i IN l_olid_tab.first..l_olid_tab.last
9400         INSERT INTO okc_k_lines_tl (
9401            id, LANGUAGE, source_lang,
9402            sfwt_flag, name, comments,
9403            item_description, block23text, created_by,
9404            creation_date, last_updated_by, last_update_date,
9405            last_update_login, security_group_id, oke_boe_description,
9406            cognomen
9407         ) VALUES (
9408          l_olid_tab(i), l_ollanguage_tab(i), l_olsource_lang_tab(i),
9409          'N', l_olname_tab(i), l_olcomments_tab(i),
9410          l_olitem_description_tab(i), l_olblock23text_tab(i), l_created_by,
9411          SYSDATE,l_last_updated_by,SYSDATE,
9412          l_last_update_login,l_olsecurity_group_id_tab(i),l_oloke_boe_description_tab(i),
9413          l_olcognomen_tab(i)
9414     );
9415   END IF;
9416   END IF;
9417 
9418 
9419 END; /* insert_okc_k_lines_tl_old */
9420 
9421 
9422 PROCEDURE insert_okc_k_headers_tl(p_old_id IN okc_k_headers_tl.id%TYPE,
9423                                   p_new_id IN okc_k_headers_tl.id%TYPE) IS
9424 CURSOR c6(p_id okc_k_headers_tl.id%TYPE) IS
9425   SELECT
9426      id, LANGUAGE, source_lang,
9427      sfwt_flag, short_description, comments,
9428      description, cognomen, non_response_reason,
9429      non_response_explain, set_aside_reason, created_by,
9430      creation_date, last_updated_by, last_update_date,
9431      last_update_login, security_group_id
9432   FROM okc_k_headers_tl
9433   WHERE id = p_id;
9434 
9435   TYPE l_id_type IS TABLE OF okc_k_headers_tl.id%TYPE INDEX BY BINARY_INTEGER;
9436   TYPE l_language_type IS TABLE OF okc_k_headers_tl.LANGUAGE%TYPE INDEX BY BINARY_INTEGER;
9437   TYPE l_source_lang_type IS TABLE OF okc_k_headers_tl.source_lang%TYPE INDEX BY BINARY_INTEGER;
9438   TYPE l_sfwt_flag_type IS TABLE OF okc_k_headers_tl.sfwt_flag%TYPE INDEX BY BINARY_INTEGER;
9439   TYPE l_short_description_type IS TABLE OF okc_k_headers_tl.short_description%TYPE INDEX BY BINARY_INTEGER;
9440   TYPE l_comments_type IS TABLE OF okc_k_headers_tl.comments%TYPE INDEX BY BINARY_INTEGER;
9441   TYPE l_description_type IS TABLE OF okc_k_headers_tl.description%TYPE INDEX BY BINARY_INTEGER;
9442   TYPE l_cognomen_type IS TABLE OF okc_k_headers_tl.cognomen%TYPE INDEX BY BINARY_INTEGER;
9443   TYPE l_non_response_reason_type IS TABLE OF okc_k_headers_tl.non_response_reason%TYPE INDEX BY BINARY_INTEGER;
9444   TYPE l_non_response_explain_type IS TABLE OF okc_k_headers_tl.non_response_explain%TYPE INDEX BY BINARY_INTEGER;
9445   TYPE l_set_aside_reason_type IS TABLE OF okc_k_headers_tl.set_aside_reason%TYPE INDEX BY BINARY_INTEGER;
9446   TYPE l_created_by_type IS TABLE OF okc_k_headers_tl.created_by%TYPE INDEX BY BINARY_INTEGER;
9447   TYPE l_creation_date_type IS TABLE OF okc_k_headers_tl.creation_date%TYPE INDEX BY BINARY_INTEGER;
9448   TYPE l_last_updated_by_type IS TABLE OF okc_k_headers_tl.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
9449   TYPE l_last_update_date_type IS TABLE OF okc_k_headers_tl.last_update_date%TYPE INDEX BY BINARY_INTEGER;
9450   TYPE l_last_update_login_type IS TABLE OF okc_k_headers_tl.last_update_login%TYPE INDEX BY BINARY_INTEGER;
9451   TYPE l_security_group_id_type IS TABLE OF okc_k_headers_tl.security_group_id%TYPE INDEX BY BINARY_INTEGER;
9452 
9453   l_id_tab l_id_type;
9454   l_language_tab l_language_type;
9455   l_source_lang_tab l_source_lang_type;
9456   l_sfwt_flag_tab l_sfwt_flag_type;
9457   l_short_description_tab l_short_description_type;
9458   l_comments_tab l_comments_type;
9459   l_description_tab l_description_type;
9460   l_cognomen_tab l_cognomen_type;
9461   l_non_response_reason_tab l_non_response_reason_type;
9462   l_non_response_explain_tab l_non_response_explain_type;
9463   l_set_aside_reason_tab l_set_aside_reason_type;
9464   l_created_by_tab l_created_by_type;
9465   l_creation_date_tab l_creation_date_type;
9466   l_last_updated_by_tab l_last_updated_by_type;
9467   l_last_update_date_tab l_last_update_date_type;
9468   l_last_update_login_tab l_last_update_login_type;
9469   l_security_group_id_tab l_security_group_id_type;
9470 
9471 
9472 BEGIN
9473   IF (G_DEBUG_ENABLED = 'Y') THEN
9474     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
9475   END IF;
9476   NULL;
9477   OPEN c6(p_old_id);
9478   FETCH c6 bulk collect INTO
9479     l_id_tab, l_language_tab, l_source_lang_tab,
9480     l_sfwt_flag_tab, l_short_description_tab, l_comments_tab,
9481     l_description_tab, l_cognomen_tab, l_non_response_reason_tab,
9482     l_non_response_explain_tab, l_set_aside_reason_tab, l_created_by_tab,
9483     l_creation_date_tab, l_last_updated_by_tab, l_last_update_date_tab,
9484     l_last_update_login_tab, l_security_group_id_tab
9485   limit G_BULK_SIZE;
9486   CLOSE c6;
9487 
9488   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9489       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'okc_k_headers_tl_tab:l_id_tab.count='||l_id_tab.COUNT);
9490   END IF;
9491   IF (l_id_tab.COUNT > 0) THEN
9492   FOR i IN l_id_tab.first..l_id_tab.last LOOP
9493     l_id_tab(i) := p_new_id;
9494   END LOOP;
9495 
9496   forall i IN l_id_tab.first..l_id_tab.last
9497     INSERT INTO okc_k_headers_tl (
9498        id, LANGUAGE, source_lang,
9499        sfwt_flag, short_description, comments,
9500        description, cognomen, non_response_reason,
9501        non_response_explain, set_aside_reason, created_by,
9502        creation_date, last_updated_by, last_update_date,
9503        last_update_login, security_group_id
9504     ) VALUES (
9505        l_id_tab(i), l_language_tab(i), l_source_lang_tab(i),
9506        'N', l_short_description_tab(i), l_comments_tab(i),
9507        l_description_tab(i), l_cognomen_tab(i), NULL,
9508        NULL, NULL, l_created_by,
9509        SYSDATE, l_last_updated_by, SYSDATE,
9510        l_last_update_login, l_security_group_id_tab(i)
9511     );
9512   END IF;
9513 
9514 EXCEPTION WHEN OTHERS THEN
9515 
9516   x_return_status := OKL_API.G_RET_STS_ERROR;
9517   /*OKL_API.set_message(p_app_name => 'OKL',
9518                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
9519                       p_token1 => 'ASSET_NUMBER',
9520                       p_token1_value => 'insert_okc_k_headers_tl');*/
9521     /* DEBUG */
9522   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9523       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
9524     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing okc_k_headers_tl:l_id_tab.coun=' || l_id_tab.COUNT || ' ...');
9525   END IF;
9526   IF (l_id_tab.COUNT > 0) THEN
9527   FOR i IN l_id_tab.first..l_id_tab.last
9528   LOOP
9529     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9530           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_id_tab('||i||')=' || l_id_tab(i));
9531       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_language_tab('||i||')=' || l_language_tab(i));
9532       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_source_lang_tab('||i||')=' || l_source_lang_tab(i));
9533       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_short_description_tab('||i||')=' || l_short_description_tab(i));
9534       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_comments_tab('||i||')=' || l_comments_tab(i));
9535       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_description_tab('||i||')=' || l_description_tab(i));
9536       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cognomen_tab('||i||')=' || l_cognomen_tab(i));
9537       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_security_group_id_tab('||i||')=' || l_security_group_id_tab(i));
9538     END IF;
9539   END LOOP;
9540   END IF;
9541 
9542   RAISE OKC_API.G_EXCEPTION_ERROR;
9543 
9544 END; /* insert_okc_k_headers_tl */
9545 
9546 PROCEDURE insert_okl_k_headers(p_old_id IN okc_k_headers_tl.id%TYPE,
9547                                p_new_id IN okc_k_headers_tl.id%TYPE) IS
9548 CURSOR c7(p_id okl_k_headers.id%TYPE) IS
9549   SELECT
9550      id, isg_id, khr_id,
9551      pdt_id, object_version_number, date_first_activity,
9552      syndicatable_yn, salestype_yn, date_refinanced,
9553      date_conversion_effective, date_deal_transferred, term_duration,
9554      datetime_proposal_effective, datetime_proposal_ineffective, date_proposal_accepted,
9555      attribute_category, attribute1, attribute2,
9556      attribute3, attribute4, attribute5,
9557      attribute6, attribute7, attribute8,
9558      attribute9, attribute10, attribute11,
9559      attribute12, attribute13, attribute14,
9560      attribute15, created_by, creation_date,
9561      last_updated_by, last_update_date, last_update_login,
9562      amd_code, generate_accrual_yn, generate_accrual_override_yn,
9563      credit_act_yn, converted_account_yn, pre_tax_yield,
9564      after_tax_yield, implicit_interest_rate, implicit_non_idc_interest_rate,
9565      target_pre_tax_yield, target_after_tax_yield, target_implicit_interest_rate,
9566      target_implicit_nonidc_intrate, date_last_interim_interest_cal, deal_type,
9567      pre_tax_irr, after_tax_irr, expected_delivery_date,
9568      accepted_date, prefunding_eligible_yn, revolving_credit_yn,
9569      currency_conversion_type, currency_conversion_rate, currency_conversion_date,
9570      multi_gaap_yn, recourse_code, lessor_serv_org_code,
9571      assignable_yn, securitized_code, securitization_type,
9572      sub_pre_tax_yield, sub_after_tax_yield, sub_impl_interest_rate,
9573      sub_impl_non_idc_int_rate, sub_pre_tax_irr, sub_after_tax_irr,
9574      tot_cl_transfer_amt, tot_cl_net_transfer_amt, tot_cl_limit,
9575      tot_cl_funding_amt, crs_id, template_type_code,
9576      tradein_description, date_funding_expected, tradein_amount,
9577      date_tradein,
9578      legal_entity_id
9579   FROM okl_k_headers
9580   WHERE id = p_id;
9581 
9582     TYPE l_id_type IS TABLE OF okl_k_headers.id%TYPE INDEX BY BINARY_INTEGER;
9583     TYPE l_isg_id_type IS TABLE OF okl_k_headers.isg_id%TYPE INDEX BY BINARY_INTEGER;
9584     TYPE l_khr_id_type IS TABLE OF okl_k_headers.khr_id%TYPE INDEX BY BINARY_INTEGER;
9585     TYPE l_pdt_id_type IS TABLE OF okl_k_headers.pdt_id%TYPE INDEX BY BINARY_INTEGER;
9586     TYPE l_object_version_number_type IS TABLE OF okl_k_headers.object_version_number%TYPE INDEX BY BINARY_INTEGER;
9587     TYPE l_date_first_activity_type IS TABLE OF okl_k_headers.date_first_activity%TYPE INDEX BY BINARY_INTEGER;
9588     TYPE l_syndicatable_yn_type IS TABLE OF okl_k_headers.syndicatable_yn%TYPE INDEX BY BINARY_INTEGER;
9589     TYPE l_salestype_yn_type IS TABLE OF okl_k_headers.salestype_yn%TYPE INDEX BY BINARY_INTEGER;
9590     TYPE l_date_refinanced_type IS TABLE OF okl_k_headers.date_refinanced%TYPE INDEX BY BINARY_INTEGER;
9591     TYPE l_date_conversion_effective_ty IS TABLE OF okl_k_headers.date_conversion_effective%TYPE INDEX BY BINARY_INTEGER;
9592     TYPE l_date_deal_transferred_type IS TABLE OF okl_k_headers.date_deal_transferred%TYPE INDEX BY BINARY_INTEGER;
9593     TYPE l_term_duration_type IS TABLE OF okl_k_headers.term_duration%TYPE INDEX BY BINARY_INTEGER;
9594     TYPE l_datetime_proposal_effec_type IS TABLE OF okl_k_headers.datetime_proposal_effective%TYPE INDEX BY BINARY_INTEGER;
9595     TYPE l_datetime_proposal_ineff_type IS TABLE OF okl_k_headers.datetime_proposal_ineffective%TYPE INDEX BY BINARY_INTEGER;
9596     TYPE l_date_proposal_accepted_type IS TABLE OF okl_k_headers.date_proposal_accepted%TYPE INDEX BY BINARY_INTEGER;
9597     TYPE l_attribute_category_type IS TABLE OF okl_k_headers.attribute_category%TYPE INDEX BY BINARY_INTEGER;
9598     TYPE l_attribute1_type IS TABLE OF okl_k_headers.attribute1%TYPE INDEX BY BINARY_INTEGER;
9599     TYPE l_attribute2_type IS TABLE OF okl_k_headers.attribute2%TYPE INDEX BY BINARY_INTEGER;
9600     TYPE l_attribute3_type IS TABLE OF okl_k_headers.attribute3%TYPE INDEX BY BINARY_INTEGER;
9601     TYPE l_attribute4_type IS TABLE OF okl_k_headers.attribute4%TYPE INDEX BY BINARY_INTEGER;
9602     TYPE l_attribute5_type IS TABLE OF okl_k_headers.attribute5%TYPE INDEX BY BINARY_INTEGER;
9603     TYPE l_attribute6_type IS TABLE OF okl_k_headers.attribute6%TYPE INDEX BY BINARY_INTEGER;
9604     TYPE l_attribute7_type IS TABLE OF okl_k_headers.attribute7%TYPE INDEX BY BINARY_INTEGER;
9605     TYPE l_attribute8_type IS TABLE OF okl_k_headers.attribute8%TYPE INDEX BY BINARY_INTEGER;
9606     TYPE l_attribute9_type IS TABLE OF okl_k_headers.attribute9%TYPE INDEX BY BINARY_INTEGER;
9607     TYPE l_attribute10_type IS TABLE OF okl_k_headers.attribute10%TYPE INDEX BY BINARY_INTEGER;
9608     TYPE l_attribute11_type IS TABLE OF okl_k_headers.attribute11%TYPE INDEX BY BINARY_INTEGER;
9609     TYPE l_attribute12_type IS TABLE OF okl_k_headers.attribute12%TYPE INDEX BY BINARY_INTEGER;
9610     TYPE l_attribute13_type IS TABLE OF okl_k_headers.attribute13%TYPE INDEX BY BINARY_INTEGER;
9611     TYPE l_attribute14_type IS TABLE OF okl_k_headers.attribute14%TYPE INDEX BY BINARY_INTEGER;
9612     TYPE l_attribute15_type IS TABLE OF okl_k_headers.attribute15%TYPE INDEX BY BINARY_INTEGER;
9613     TYPE l_created_by_type IS TABLE OF okl_k_headers.created_by%TYPE INDEX BY BINARY_INTEGER;
9614     TYPE l_creation_date_type IS TABLE OF okl_k_headers.creation_date%TYPE INDEX BY BINARY_INTEGER;
9615     TYPE l_last_updated_by_type IS TABLE OF okl_k_headers.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
9616     TYPE l_last_update_date_type IS TABLE OF okl_k_headers.last_update_date%TYPE INDEX BY BINARY_INTEGER;
9617     TYPE l_last_update_login_type IS TABLE OF okl_k_headers.last_update_login%TYPE INDEX BY BINARY_INTEGER;
9618     TYPE l_amd_code_type IS TABLE OF okl_k_headers.amd_code%TYPE INDEX BY BINARY_INTEGER;
9619     TYPE l_generate_accrual_yn_type IS TABLE OF okl_k_headers.generate_accrual_yn%TYPE INDEX BY BINARY_INTEGER;
9620     TYPE l_generate_ac_override_yn_type IS TABLE OF okl_k_headers.generate_accrual_override_yn%TYPE INDEX BY BINARY_INTEGER;
9621     TYPE l_credit_act_yn_type IS TABLE OF okl_k_headers.credit_act_yn%TYPE INDEX BY BINARY_INTEGER;
9622     TYPE l_converted_account_yn_type IS TABLE OF okl_k_headers.converted_account_yn%TYPE INDEX BY BINARY_INTEGER;
9623     TYPE l_pre_tax_yield_type IS TABLE OF okl_k_headers.pre_tax_yield%TYPE INDEX BY BINARY_INTEGER;
9624     TYPE l_after_tax_yield_type IS TABLE OF okl_k_headers.after_tax_yield%TYPE INDEX BY BINARY_INTEGER;
9625     TYPE l_implicit_interest_rate_type IS TABLE OF okl_k_headers.implicit_interest_rate%TYPE INDEX BY BINARY_INTEGER;
9626     TYPE l_implicit_non_idc_i_rate_type IS TABLE OF okl_k_headers.implicit_non_idc_interest_rate%TYPE INDEX BY BINARY_INTEGER;
9627     TYPE l_target_pre_tax_yield_type IS TABLE OF okl_k_headers.target_pre_tax_yield%TYPE INDEX BY BINARY_INTEGER;
9628     TYPE l_target_after_tax_yield_type IS TABLE OF okl_k_headers.target_after_tax_yield%TYPE INDEX BY BINARY_INTEGER;
9629     TYPE l_target_implicit_in_rate_type IS TABLE OF okl_k_headers.target_implicit_interest_rate%TYPE INDEX BY BINARY_INTEGER;
9630     TYPE l_target_i_nonidc_intrate_type IS TABLE OF okl_k_headers.target_implicit_nonidc_intrate%TYPE INDEX BY BINARY_INTEGER;
9631     TYPE l_date_last_interim_i_cal_type IS TABLE OF okl_k_headers.date_last_interim_interest_cal%TYPE INDEX BY BINARY_INTEGER;
9632     TYPE l_deal_type_type IS TABLE OF okl_k_headers.deal_type%TYPE INDEX BY BINARY_INTEGER;
9633     TYPE l_pre_tax_irr_type IS TABLE OF okl_k_headers.pre_tax_irr%TYPE INDEX BY BINARY_INTEGER;
9634     TYPE l_after_tax_irr_type IS TABLE OF okl_k_headers.after_tax_irr%TYPE INDEX BY BINARY_INTEGER;
9635     TYPE l_expected_delivery_date_type IS TABLE OF okl_k_headers.expected_delivery_date%TYPE INDEX BY BINARY_INTEGER;
9636     TYPE l_accepted_date_type IS TABLE OF okl_k_headers.accepted_date%TYPE INDEX BY BINARY_INTEGER;
9637     TYPE l_prefunding_eligible_yn_type IS TABLE OF okl_k_headers.prefunding_eligible_yn%TYPE INDEX BY BINARY_INTEGER;
9638     TYPE l_revolving_credit_yn_type IS TABLE OF okl_k_headers.revolving_credit_yn%TYPE INDEX BY BINARY_INTEGER;
9639     TYPE l_currency_conversion_type_typ IS TABLE OF okl_k_headers.currency_conversion_type%TYPE INDEX BY BINARY_INTEGER;
9640     TYPE l_currency_conversion_rate_typ IS TABLE OF okl_k_headers.currency_conversion_rate%TYPE INDEX BY BINARY_INTEGER;
9641     TYPE l_currency_conversion_date_typ IS TABLE OF okl_k_headers.currency_conversion_date%TYPE INDEX BY BINARY_INTEGER;
9642     TYPE l_multi_gaap_yn_type IS TABLE OF okl_k_headers.multi_gaap_yn%TYPE INDEX BY BINARY_INTEGER;
9643     TYPE l_recourse_code_type IS TABLE OF okl_k_headers.recourse_code%TYPE INDEX BY BINARY_INTEGER;
9644     TYPE l_lessor_serv_org_code_type IS TABLE OF okl_k_headers.lessor_serv_org_code%TYPE INDEX BY BINARY_INTEGER;
9645     TYPE l_assignable_yn_type IS TABLE OF okl_k_headers.assignable_yn%TYPE INDEX BY BINARY_INTEGER;
9646     TYPE l_securitized_code_type IS TABLE OF okl_k_headers.securitized_code%TYPE INDEX BY BINARY_INTEGER;
9647     TYPE l_securitization_type_type IS TABLE OF okl_k_headers.securitization_type%TYPE INDEX BY BINARY_INTEGER;
9648     TYPE l_sub_pre_tax_yield_type IS TABLE OF okl_k_headers.sub_pre_tax_yield%TYPE INDEX BY BINARY_INTEGER;
9649     TYPE l_sub_after_tax_yield_type IS TABLE OF okl_k_headers.sub_after_tax_yield%TYPE INDEX BY BINARY_INTEGER;
9650     TYPE l_sub_impl_interest_rate_type IS TABLE OF okl_k_headers.sub_impl_interest_rate%TYPE INDEX BY BINARY_INTEGER;
9651     TYPE l_sub_impl_non_idc_int_ra_type IS TABLE OF okl_k_headers.sub_impl_non_idc_int_rate%TYPE INDEX BY BINARY_INTEGER;
9652     TYPE l_sub_pre_tax_irr_type IS TABLE OF okl_k_headers.sub_pre_tax_irr%TYPE INDEX BY BINARY_INTEGER;
9653     TYPE l_sub_after_tax_irr_type IS TABLE OF okl_k_headers.sub_after_tax_irr%TYPE INDEX BY BINARY_INTEGER;
9654     TYPE l_tot_cl_transfer_amt_type IS TABLE OF okl_k_headers.tot_cl_transfer_amt%TYPE INDEX BY BINARY_INTEGER;
9655     TYPE l_tot_cl_net_transfer_amt_type IS TABLE OF okl_k_headers.tot_cl_net_transfer_amt%TYPE INDEX BY BINARY_INTEGER;
9656     TYPE l_tot_cl_limit_type IS TABLE OF okl_k_headers.tot_cl_limit%TYPE INDEX BY BINARY_INTEGER;
9657     TYPE l_tot_cl_funding_amt_type IS TABLE OF okl_k_headers.tot_cl_funding_amt%TYPE INDEX BY BINARY_INTEGER;
9658     TYPE l_crs_id_type is table of okl_k_headers.crs_id%TYPE index by binary_integer;
9659     TYPE l_template_type_code_type is table of okl_k_headers.template_type_code%TYPE index by binary_integer;
9660     TYPE l_tradein_description_type is table of okl_k_headers.tradein_description%TYPE index by binary_integer;
9661     TYPE l_date_funding_expected_type is table of okl_k_headers.date_funding_expected%TYPE index by binary_integer;
9662     TYPE l_tradein_amount_type is table of okl_k_headers.tradein_amount%TYPE index by binary_integer;
9663     TYPE l_date_tradein_type is table of okl_k_headers.date_tradein%TYPE index by binary_integer;
9664     --Added by dpsingh for LE Uptake
9665     TYPE l_legal_entity_id_type is table of okl_k_headers.legal_entity_id%TYPE index by binary_integer;
9666 
9667     l_id_tab l_id_type;
9668     l_isg_id_tab l_isg_id_type;
9669     l_khr_id_tab l_khr_id_type;
9670     l_pdt_id_tab l_pdt_id_type;
9671     l_object_version_number_tab l_object_version_number_type;
9672     l_date_first_activity_tab l_date_first_activity_type;
9673     l_syndicatable_yn_tab l_syndicatable_yn_type;
9674     l_salestype_yn_tab l_salestype_yn_type;
9675     l_date_refinanced_tab l_date_refinanced_type;
9676     l_date_conversion_effectiv_tab l_date_conversion_effective_ty;
9677     l_date_deal_transferred_tab l_date_deal_transferred_type;
9678     l_term_duration_tab l_term_duration_type;
9679     l_datetime_proposal_effec_tab l_datetime_proposal_effec_type;
9680     l_datetime_proposal_ineff_tab l_datetime_proposal_ineff_type;
9681     l_date_proposal_accepted_tab l_date_proposal_accepted_type;
9682     l_attribute_category_tab l_attribute_category_type;
9683     l_attribute1_tab l_attribute1_type;
9684     l_attribute2_tab l_attribute2_type;
9685     l_attribute3_tab l_attribute3_type;
9686     l_attribute4_tab l_attribute4_type;
9687     l_attribute5_tab l_attribute5_type;
9688     l_attribute6_tab l_attribute6_type;
9689     l_attribute7_tab l_attribute7_type;
9690     l_attribute8_tab l_attribute8_type;
9691     l_attribute9_tab l_attribute9_type;
9692     l_attribute10_tab l_attribute10_type;
9693     l_attribute11_tab l_attribute11_type;
9694     l_attribute12_tab l_attribute12_type;
9695     l_attribute13_tab l_attribute13_type;
9696     l_attribute14_tab l_attribute14_type;
9697     l_attribute15_tab l_attribute15_type;
9698     l_created_by_tab l_created_by_type;
9699     l_creation_date_tab l_creation_date_type;
9700     l_last_updated_by_tab l_last_updated_by_type;
9701     l_last_update_date_tab l_last_update_date_type;
9702     l_last_update_login_tab l_last_update_login_type;
9703     l_amd_code_tab l_amd_code_type;
9704     l_generate_accrual_yn_tab l_generate_accrual_yn_type;
9705     l_generate_ac_override_yn_tab l_generate_ac_override_yn_type;
9706     l_credit_act_yn_tab l_credit_act_yn_type;
9707     l_converted_account_yn_tab l_converted_account_yn_type;
9708     l_pre_tax_yield_tab l_pre_tax_yield_type;
9709     l_after_tax_yield_tab l_after_tax_yield_type;
9710     l_implicit_interest_rate_tab l_implicit_interest_rate_type;
9711     l_implicit_non_idc_i_rate_tab l_implicit_non_idc_i_rate_type;
9712     l_target_pre_tax_yield_tab l_target_pre_tax_yield_type;
9713     l_target_after_tax_yield_tab l_target_after_tax_yield_type;
9714     l_target_implicit_in_rate_tab l_target_implicit_in_rate_type;
9715     l_target_i_nonidc_intrate_tab l_target_i_nonidc_intrate_type;
9716     l_date_last_interim_i_cal_tab l_date_last_interim_i_cal_type;
9717     l_deal_type_tab l_deal_type_type;
9718     l_pre_tax_irr_tab l_pre_tax_irr_type;
9719     l_after_tax_irr_tab l_after_tax_irr_type;
9720     l_expected_delivery_date_tab l_expected_delivery_date_type;
9721     l_accepted_date_tab l_accepted_date_type;
9722     l_prefunding_eligible_yn_tab l_prefunding_eligible_yn_type;
9723     l_revolving_credit_yn_tab l_revolving_credit_yn_type;
9724     l_currency_conversion_type_tab l_currency_conversion_type_typ;
9725     l_currency_conversion_rate_tab l_currency_conversion_rate_typ;
9726     l_currency_conversion_date_tab l_currency_conversion_date_typ;
9727     l_multi_gaap_yn_tab l_multi_gaap_yn_type;
9728     l_recourse_code_tab l_recourse_code_type;
9729     l_lessor_serv_org_code_tab l_lessor_serv_org_code_type;
9730     l_assignable_yn_tab l_assignable_yn_type;
9731     l_securitized_code_tab l_securitized_code_type;
9732     l_securitization_type_tab l_securitization_type_type;
9733     l_sub_pre_tax_yield_tab l_sub_pre_tax_yield_type;
9734     l_sub_after_tax_yield_tab l_sub_after_tax_yield_type;
9735     l_sub_impl_interest_rate_tab l_sub_impl_interest_rate_type;
9736     l_sub_impl_non_idc_int_ra_tab l_sub_impl_non_idc_int_ra_type;
9737     l_sub_pre_tax_irr_tab l_sub_pre_tax_irr_type;
9738     l_sub_after_tax_irr_tab l_sub_after_tax_irr_type;
9739     l_tot_cl_transfer_amt_tab l_tot_cl_transfer_amt_type;
9740     l_tot_cl_net_transfer_amt_tab l_tot_cl_net_transfer_amt_type;
9741     l_tot_cl_limit_tab l_tot_cl_limit_type;
9742     l_tot_cl_funding_amt_tab l_tot_cl_funding_amt_type;
9743     l_crs_id_tab l_crs_id_type;
9744     l_template_type_code_tab l_template_type_code_type;
9745     l_tradein_description_tab l_tradein_description_type;
9746     l_date_funding_expected_tab l_date_funding_expected_type;
9747     l_tradein_amount_tab l_tradein_amount_type;
9748     l_date_tradein_tab l_date_tradein_type;
9749     l_legal_entity_id_tab  l_legal_entity_id_type;
9750 
9751 BEGIN
9752   IF (G_DEBUG_ENABLED = 'Y') THEN
9753     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
9754   END IF;
9755   NULL;
9756   OPEN c7(p_old_id);
9757   FETCH c7 bulk collect INTO
9758   l_id_tab, l_isg_id_tab, l_khr_id_tab,
9759   l_pdt_id_tab, l_object_version_number_tab, l_date_first_activity_tab,
9760   l_syndicatable_yn_tab, l_salestype_yn_tab, l_date_refinanced_tab,
9761   l_date_conversion_effectiv_tab, l_date_deal_transferred_tab, l_term_duration_tab,
9762   l_datetime_proposal_effec_tab, l_datetime_proposal_ineff_tab, l_date_proposal_accepted_tab,
9763   l_attribute_category_tab, l_attribute1_tab, l_attribute2_tab,
9764   l_attribute3_tab, l_attribute4_tab, l_attribute5_tab,
9765   l_attribute6_tab, l_attribute7_tab, l_attribute8_tab,
9766   l_attribute9_tab, l_attribute10_tab, l_attribute11_tab,
9767   l_attribute12_tab, l_attribute13_tab, l_attribute14_tab,
9768   l_attribute15_tab, l_created_by_tab, l_creation_date_tab,
9769   l_last_updated_by_tab, l_last_update_date_tab, l_last_update_login_tab,
9770   l_amd_code_tab, l_generate_accrual_yn_tab, l_generate_ac_override_yn_tab,
9771   l_credit_act_yn_tab, l_converted_account_yn_tab, l_pre_tax_yield_tab,
9772   l_after_tax_yield_tab, l_implicit_interest_rate_tab, l_implicit_non_idc_i_rate_tab,
9773   l_target_pre_tax_yield_tab, l_target_after_tax_yield_tab, l_target_implicit_in_rate_tab,
9774   l_target_i_nonidc_intrate_tab, l_date_last_interim_i_cal_tab, l_deal_type_tab,
9775   l_pre_tax_irr_tab, l_after_tax_irr_tab, l_expected_delivery_date_tab,
9776   l_accepted_date_tab, l_prefunding_eligible_yn_tab, l_revolving_credit_yn_tab,
9777   l_currency_conversion_type_tab, l_currency_conversion_rate_tab, l_currency_conversion_date_tab,
9778   l_multi_gaap_yn_tab, l_recourse_code_tab, l_lessor_serv_org_code_tab,
9779   l_assignable_yn_tab, l_securitized_code_tab, l_securitization_type_tab,
9780   l_sub_pre_tax_yield_tab, l_sub_after_tax_yield_tab, l_sub_impl_interest_rate_tab,
9781   l_sub_impl_non_idc_int_ra_tab, l_sub_pre_tax_irr_tab, l_sub_after_tax_irr_tab,
9782   l_tot_cl_transfer_amt_tab, l_tot_cl_net_transfer_amt_tab, l_tot_cl_limit_tab,
9783   l_tot_cl_funding_amt_tab, l_crs_id_tab, l_template_type_code_tab,
9784   l_tradein_description_tab, l_date_funding_expected_tab, l_tradein_amount_tab,
9785   l_date_tradein_tab,l_legal_entity_id_tab
9786   limit G_BULK_SIZE;
9787   CLOSE c7;
9788 
9789   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9790       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'okl_k_headers_tab:l_id_tab.count='||l_id_tab.COUNT);
9791   END IF;
9792   IF (l_id_tab.COUNT > 0) THEN
9793   l_deal_type := l_deal_type_tab(1);
9794   FOR i IN l_id_tab.first..l_id_tab.last LOOP
9795     l_id_tab(i) := p_new_id;
9796 
9797     validate_amd_code(x_return_status, l_amd_code_tab(i));
9798     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
9799       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9800     END IF;
9801 
9802   END LOOP;
9803 
9804   forall i IN l_id_tab.first..l_id_tab.last
9805     INSERT INTO okl_k_headers (
9806      id, isg_id, khr_id,
9807      pdt_id, object_version_number, date_first_activity,
9808      syndicatable_yn, salestype_yn, date_refinanced,
9809      date_conversion_effective, date_deal_transferred, term_duration,
9810      datetime_proposal_effective, datetime_proposal_ineffective, date_proposal_accepted,
9811      attribute_category, attribute1, attribute2,
9812      attribute3, attribute4, attribute5,
9813      attribute6, attribute7, attribute8,
9814      attribute9, attribute10, attribute11,
9815      attribute12, attribute13, attribute14,
9816      attribute15, created_by, creation_date,
9817      last_updated_by, last_update_date, last_update_login,
9818      amd_code, generate_accrual_yn, generate_accrual_override_yn,
9819      credit_act_yn, converted_account_yn, pre_tax_yield,
9820      after_tax_yield, implicit_interest_rate, implicit_non_idc_interest_rate,
9821      target_pre_tax_yield, target_after_tax_yield, target_implicit_interest_rate,
9822      target_implicit_nonidc_intrate, date_last_interim_interest_cal, deal_type,
9823      pre_tax_irr, after_tax_irr, expected_delivery_date,
9824      accepted_date, prefunding_eligible_yn, revolving_credit_yn,
9825      currency_conversion_type, currency_conversion_rate, currency_conversion_date,
9826      multi_gaap_yn, recourse_code, lessor_serv_org_code,
9827      assignable_yn, securitized_code, securitization_type,
9828      sub_pre_tax_yield, sub_after_tax_yield, sub_impl_interest_rate,
9829      sub_impl_non_idc_int_rate, sub_pre_tax_irr, sub_after_tax_irr,
9830      tot_cl_transfer_amt, tot_cl_net_transfer_amt, tot_cl_limit,
9831      tot_cl_funding_amt, crs_id, template_type_code,
9832      tradein_description, date_funding_expected, tradein_amount,
9833      date_tradein,legal_entity_id
9834     ) VALUES (
9835      l_id_tab(i), l_isg_id_tab(i), l_khr_id_tab(i),
9836      l_pdt_id_tab(i), 1, l_date_first_activity_tab(i),
9837      l_syndicatable_yn_tab(i), l_salestype_yn_tab(i), l_date_refinanced_tab(i),
9838      l_date_conversion_effectiv_tab(i), l_date_deal_transferred_tab(i), l_term_duration_tab(i),
9839      l_datetime_proposal_effec_tab(i), l_datetime_proposal_ineff_tab(i), l_date_proposal_accepted_tab(i),
9840      l_attribute_category_tab(i), l_attribute1_tab(i), l_attribute2_tab(i),
9841      l_attribute3_tab(i), l_attribute4_tab(i), l_attribute5_tab(i),
9842      l_attribute6_tab(i), l_attribute7_tab(i), l_attribute8_tab(i),
9843      l_attribute9_tab(i), l_attribute10_tab(i), l_attribute11_tab(i),
9844      l_attribute12_tab(i), l_attribute13_tab(i), l_attribute14_tab(i),
9845      l_attribute15_tab(i), l_created_by, SYSDATE,
9846      l_last_updated_by, SYSDATE, l_last_update_login,
9847      l_amd_code_tab(i), l_generate_accrual_yn_tab(i), l_generate_ac_override_yn_tab(i),
9848      l_credit_act_yn_tab(i), l_converted_account_yn_tab(i), DECODE(p_trans_type, 'CFA', NULL, 'CRL', NULL, l_pre_tax_yield_tab(i)),
9849      DECODE(p_trans_type, 'CFA',NULL, 'CRL',NULL, l_after_tax_yield_tab(i)), DECODE(p_trans_type, 'CFA',NULL, 'CRL',NULL, l_implicit_interest_rate_tab(i)), DECODE(p_trans_type, 'CFA',NULL, 'CRL',NULL, l_implicit_non_idc_i_rate_tab(i)),
9850      l_target_pre_tax_yield_tab(i), l_target_after_tax_yield_tab(i), l_target_implicit_in_rate_tab(i),
9851      l_target_i_nonidc_intrate_tab(i), DECODE(p_trans_type, 'CFA',NULL, 'CRL',NULL, l_date_last_interim_i_cal_tab(i)), l_deal_type_tab(i),
9852      DECODE(p_trans_type, 'CFA',NULL, 'CRL',NULL, l_pre_tax_irr_tab(i)), DECODE(p_trans_type, 'CFA',NULL, 'CRL',NULL, l_after_tax_irr_tab(i)), l_expected_delivery_date_tab(i),
9853      l_accepted_date_tab(i), l_prefunding_eligible_yn_tab(i), l_revolving_credit_yn_tab(i),
9854      l_currency_conversion_type_tab(i), l_currency_conversion_rate_tab(i), l_currency_conversion_date_tab(i),
9855      l_multi_gaap_yn_tab(i), l_recourse_code_tab(i), l_lessor_serv_org_code_tab(i),
9856      --l_assignable_yn_tab(i), l_securitized_code_tab(i), l_securitization_type_tab(i),
9857      --Fix bug 4381642 to nullify securitized_code
9858      l_assignable_yn_tab(i), NULL, l_securitization_type_tab(i),
9859      DECODE(p_trans_type, 'CFA',NULL, 'CRL',NULL, l_sub_pre_tax_yield_tab(i)), DECODE(p_trans_type, 'CFA',NULL, 'CRL',NULL, l_sub_after_tax_yield_tab(i)), DECODE(p_trans_type, 'CFA',NULL, 'CRL',NULL,l_sub_impl_interest_rate_tab(i)),
9860      DECODE(p_trans_type, 'CFA',NULL, 'CRL',NULL, l_sub_impl_non_idc_int_ra_tab(i)), DECODE(p_trans_type, 'CFA',NULL, 'CRL',NULL,l_sub_pre_tax_irr_tab(i)), DECODE(p_trans_type, 'CFA',NULL, 'CRL',NULL, l_sub_after_tax_irr_tab(i)),
9861      DECODE(p_trans_type, 'CFA',NULL, 'CRL',NULL, l_tot_cl_transfer_amt_tab(i)), DECODE(p_trans_type, 'CFA',NULL, 'CRL',NULL, l_tot_cl_net_transfer_amt_tab(i)), DECODE(p_trans_type, 'CFA',NULL, 'CRL',NULL, l_tot_cl_limit_tab(i)),
9862      DECODE(p_trans_type, 'CFA',NULL, 'CRL',NULL, l_tot_cl_funding_amt_tab(i)),
9863      l_crs_id_tab(i), l_template_type_code_tab(i),l_tradein_description_tab(i),
9864      l_date_funding_expected_tab(i), l_tradein_amount_tab(i), l_date_tradein_tab(i),l_legal_entity_id_tab(i)
9865     );
9866   END IF;
9867 
9868 EXCEPTION WHEN OTHERS THEN
9869 
9870   x_return_status := OKL_API.G_RET_STS_ERROR;
9871   /*OKL_API.set_message(p_app_name => 'OKL',
9872                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
9873                       p_token1 => 'ASSET_NUMBER',
9874                       p_token1_value => 'insert_okl_k_headers');*/
9875     /* DEBUG */
9876   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9877       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
9878     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing insert_okl_k_headers:l_id_tab=' || l_id_tab.COUNT || ' ...');
9879   END IF;
9880   --print('p_trans_type=' || p_trans_type);
9881   IF (l_id_tab.COUNT > 0) THEN
9882   FOR i IN l_id_tab.first..l_id_tab.last
9883   LOOP
9884     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9885           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_id_tab('||i||')=' || l_id_tab(i));
9886       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_isg_id_tab('||i||')=' || l_isg_id_tab(i));
9887       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_khr_id_tab('||i||')=' || l_khr_id_tab(i));
9888       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_pdt_id_tab('||i||')=' || l_pdt_id_tab(i));
9889       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_first_activity_tab('||i||')=' || l_date_first_activity_tab(i));
9890       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_syndicatable_yn_tab('||i||')=' || l_syndicatable_yn_tab(i));
9891       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_salestype_yn_tab('||i||')=' || l_salestype_yn_tab(i));
9892       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_refinanced_tab('||i||')=' || l_date_refinanced_tab(i));
9893       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_conversion_effectiv_tab('||i||')=' || l_date_conversion_effectiv_tab(i));
9894       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_deal_transferred_tab('||i||')=' || l_date_deal_transferred_tab(i));
9895       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_term_duration_tab('||i||')=' || l_term_duration_tab(i));
9896       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_datetime_proposal_effec_tab('||i||')=' || l_datetime_proposal_effec_tab(i));
9897       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_datetime_proposal_ineff_tab('||i||')=' || l_datetime_proposal_ineff_tab(i));
9898       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_proposal_accepted_tab('||i||')=' || l_date_proposal_accepted_tab(i));
9899       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute_category_tab('||i||')=' || l_attribute_category_tab(i));
9900       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute1_tab('||i||')=' || l_attribute1_tab(i));
9901       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute2_tab('||i||')=' || l_attribute2_tab(i));
9902       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute3_tab('||i||')=' || l_attribute3_tab(i));
9903       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute4_tab('||i||')=' || l_attribute4_tab(i));
9904       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute5_tab('||i||')=' || l_attribute5_tab(i));
9905       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute6_tab('||i||')=' || l_attribute6_tab(i));
9906       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute7_tab('||i||')=' || l_attribute7_tab(i));
9907       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute8_tab('||i||')=' || l_attribute8_tab(i));
9908       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute9_tab('||i||')=' || l_attribute9_tab(i));
9909       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute10_tab('||i||')=' || l_attribute10_tab(i));
9910       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute11_tab('||i||')=' || l_attribute11_tab(i));
9911       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute12_tab('||i||')=' || l_attribute12_tab(i));
9912       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute13_tab('||i||')=' || l_attribute13_tab(i));
9913       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute14_tab('||i||')=' || l_attribute14_tab(i));
9914       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute15_tab('||i||')=' || l_attribute15_tab(i));
9915       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_amd_code_tab('||i||')=' || l_amd_code_tab(i));
9916       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_generate_accrual_yn_tab('||i||')=' || l_generate_accrual_yn_tab(i));
9917       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_generate_ac_override_yn_tab('||i||')=' || l_generate_ac_override_yn_tab(i));
9918       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_credit_act_yn_tab('||i||')=' || l_credit_act_yn_tab(i));
9919       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_converted_account_yn_tab('||i||')=' || l_converted_account_yn_tab(i));
9920       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_pre_tax_yield_tab('||i||')=' || l_pre_tax_yield_tab(i));
9921       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_after_tax_yield_tab('||i||')=' || l_after_tax_yield_tab(i));
9922       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_implicit_interest_rate_tab('||i||')=' || l_implicit_interest_rate_tab(i));
9923       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_implicit_non_idc_i_rate_tab('||i||')=' || l_implicit_non_idc_i_rate_tab(i));
9924       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_target_pre_tax_yield_tab('||i||')=' || l_target_pre_tax_yield_tab(i));
9925       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_target_after_tax_yield_tab('||i||')=' || l_target_after_tax_yield_tab(i));
9926       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_target_implicit_in_rate_tab('||i||')=' || l_target_implicit_in_rate_tab(i));
9927       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_target_i_nonidc_intrate_tab('||i||')=' || l_target_i_nonidc_intrate_tab(i));
9928       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_last_interim_i_cal_tab('||i||')=' || l_date_last_interim_i_cal_tab(i));
9929       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_deal_type_tab('||i||')=' || l_deal_type_tab(i));
9930       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_pre_tax_irr_tab('||i||')=' || l_pre_tax_irr_tab(i));
9931       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_after_tax_irr_tab('||i||')=' || l_after_tax_irr_tab(i));
9932       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_expected_delivery_date_tab('||i||')=' || l_expected_delivery_date_tab(i));
9933       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_accepted_date_tab('||i||')=' || l_accepted_date_tab(i));
9934       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_prefunding_eligible_yn_tab('||i||')=' || l_prefunding_eligible_yn_tab(i));
9935       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_revolving_credit_yn_tab('||i||')=' || l_revolving_credit_yn_tab(i));
9936       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_currency_conversion_type_tab('||i||')=' || l_currency_conversion_type_tab(i));
9937       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_currency_conversion_rate_tab('||i||')=' || l_currency_conversion_rate_tab(i));
9938       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_currency_conversion_date_tab('||i||')=' || l_currency_conversion_date_tab(i));
9939       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_multi_gaap_yn_tab('||i||')=' || l_multi_gaap_yn_tab(i));
9940       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_recourse_code_tab('||i||')=' || l_recourse_code_tab(i));
9941       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_lessor_serv_org_code_tab('||i||')=' || l_lessor_serv_org_code_tab(i));
9942       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_assignable_yn_tab('||i||')=' || l_assignable_yn_tab(i));
9943       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_securitized_code_tab('||i||')=' || l_securitized_code_tab(i));
9944       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_securitization_type_tab('||i||')=' || l_securitization_type_tab(i));
9945       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sub_pre_tax_yield_tab('||i||')=' || l_sub_pre_tax_yield_tab(i));
9946       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sub_after_tax_yield_tab('||i||')=' || l_sub_after_tax_yield_tab(i));
9947       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sub_impl_interest_rate_tab('||i||')=' || l_sub_impl_interest_rate_tab(i));
9948       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sub_impl_non_idc_int_ra_tab('||i||')=' || l_sub_impl_non_idc_int_ra_tab(i));
9949       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sub_pre_tax_irr_tab('||i||')=' || l_sub_pre_tax_irr_tab(i));
9950       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sub_after_tax_irr_tab('||i||')=' || l_sub_after_tax_irr_tab(i));
9951       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tot_cl_transfer_amt_tab('||i||')=' || l_tot_cl_transfer_amt_tab(i));
9952       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tot_cl_net_transfer_amt_tab('||i||')=' || l_tot_cl_net_transfer_amt_tab(i));
9953       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tot_cl_limit_tab('||i||')=' || l_tot_cl_limit_tab(i));
9954       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tot_cl_funding_amt_tab('||i||')=' || l_tot_cl_funding_amt_tab(i));
9955       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_crs_id_tab('||i||')=' || l_crs_id_tab(i));
9956       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_template_type_code_tab('||i||')=' || l_template_type_code_tab(i));
9957       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tradein_description_tab('||i||')=' || l_tradein_description_tab(i));
9958       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_funding_expected_tab('||i||')=' || l_date_funding_expected_tab(i));
9959       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tradein_amount_tab('||i||')=' || l_tradein_amount_tab(i));
9960       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_tradein_tab('||i||')=' || l_date_tradein_tab(i));
9961     END IF;
9962   END LOOP;
9963   END IF;
9964 
9965 
9966   RAISE OKC_API.G_EXCEPTION_ERROR;
9967 
9968 END; /* insert_okl_k_headers */
9969 
9970 PROCEDURE insert_okl_slctd_optns(p_old_id IN okc_k_headers_tl.id%TYPE,
9971                                  p_new_id IN okc_k_headers_tl.id%TYPE) IS
9972 CURSOR c24(p_id NUMBER) IS
9973 SELECT
9974      id, pov_id, khr_id,
9975      object_version_number, attribute_category, attribute1,
9976      attribute2, attribute3, attribute4,
9977      attribute5, attribute6, attribute7,
9978      attribute8, attribute9, attribute10,
9979      attribute11, attribute12, attribute13,
9980      attribute14, attribute15, created_by,
9981      creation_date, last_updated_by, last_update_date,
9982      last_update_login
9983 FROM okl_slctd_optns
9984 WHERE khr_id = p_id;
9985 
9986     l_sid_tab2 l_sid_type;
9987     l_spov_id_tab2 l_spov_id_type;
9988     l_skhr_id_tab2 l_skhr_id_type;
9989     l_sobject_version_number_tab2 l_sobject_version_number_type;
9990     l_sattribute_category_tab2 l_sattribute_category_type;
9991     l_sattribute1_tab2 l_sattribute1_type;
9992     l_sattribute2_tab2 l_sattribute2_type;
9993     l_sattribute3_tab2 l_sattribute3_type;
9994     l_sattribute4_tab2 l_sattribute4_type;
9995     l_sattribute5_tab2 l_sattribute5_type;
9996     l_sattribute6_tab2 l_sattribute6_type;
9997     l_sattribute7_tab2 l_sattribute7_type;
9998     l_sattribute8_tab2 l_sattribute8_type;
9999     l_sattribute9_tab2 l_sattribute9_type;
10000     l_sattribute10_tab2 l_sattribute10_type;
10001     l_sattribute11_tab2 l_sattribute11_type;
10002     l_sattribute12_tab2 l_sattribute12_type;
10003     l_sattribute13_tab2 l_sattribute13_type;
10004     l_sattribute14_tab2 l_sattribute14_type;
10005     l_sattribute15_tab2 l_sattribute15_type;
10006     l_screated_by_tab2 l_screated_by_type;
10007     l_screation_date_tab2 l_screation_date_type;
10008     l_slast_updated_by_tab2 l_slast_updated_by_type;
10009     l_slast_update_date_tab2 l_slast_update_date_type;
10010     l_slast_update_login_tab2 l_slast_update_login_type;
10011 
10012   l_quote_chr_id NUMBER;
10013   l_return_status VARCHAR2(30);
10014 
10015 BEGIN
10016   IF (G_DEBUG_ENABLED = 'Y') THEN
10017     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
10018   END IF;
10019   OPEN c24(p_old_id);
10020   LOOP
10021     FETCH c24 bulk collect INTO
10022      l_sid_tab2, l_spov_id_tab2, l_skhr_id_tab2,
10023      l_sobject_version_number_tab2, l_sattribute_category_tab2, l_sattribute1_tab2,
10024      l_sattribute2_tab2, l_sattribute3_tab2, l_sattribute4_tab2,
10025      l_sattribute5_tab2, l_sattribute6_tab2, l_sattribute7_tab2,
10026      l_sattribute8_tab2, l_sattribute9_tab2, l_sattribute10_tab2,
10027      l_sattribute11_tab2, l_sattribute12_tab2, l_sattribute13_tab2,
10028      l_sattribute14_tab2, l_sattribute15_tab2, l_screated_by_tab2,
10029      l_screation_date_tab2, l_slast_updated_by_tab2, l_slast_update_date_tab2,
10030      l_slast_update_login_tab2
10031     limit G_BULK_SIZE;
10032     EXIT WHEN l_sid_tab2.COUNT = 0;
10033     FOR i IN l_sid_tab2.first..l_sid_tab2.last
10034     LOOP
10035       l_sid_tab(l_slctd_optns_counter) := l_sid_tab2(i);
10036       -- Change id
10037       l_sid_tab(l_slctd_optns_counter) := okc_p_util.raw_to_number(sys_guid());
10038 
10039       l_spov_id_tab(l_slctd_optns_counter) := l_spov_id_tab2(i);
10040       l_skhr_id_tab(l_slctd_optns_counter) := l_skhr_id_tab2(i);
10041       -- Change khr_id
10042       l_skhr_id_tab(l_slctd_optns_counter) := p_new_id;
10043 
10044       l_sobject_version_number_tab(l_slctd_optns_counter) := l_sobject_version_number_tab2(i);
10045       l_sattribute_category_tab(l_slctd_optns_counter) := l_sattribute_category_tab2(i);
10046       l_sattribute1_tab(l_slctd_optns_counter) := l_sattribute1_tab2(i);
10047       l_sattribute2_tab(l_slctd_optns_counter) := l_sattribute2_tab2(i);
10048       l_sattribute3_tab(l_slctd_optns_counter) := l_sattribute3_tab2(i);
10049       l_sattribute4_tab(l_slctd_optns_counter) := l_sattribute4_tab2(i);
10050       l_sattribute5_tab(l_slctd_optns_counter) := l_sattribute5_tab2(i);
10051       l_sattribute6_tab(l_slctd_optns_counter) := l_sattribute6_tab2(i);
10052       l_sattribute7_tab(l_slctd_optns_counter) := l_sattribute7_tab2(i);
10053       l_sattribute8_tab(l_slctd_optns_counter) := l_sattribute8_tab2(i);
10054       l_sattribute9_tab(l_slctd_optns_counter) := l_sattribute9_tab2(i);
10055       l_sattribute10_tab(l_slctd_optns_counter) := l_sattribute10_tab2(i);
10056       l_sattribute11_tab(l_slctd_optns_counter) := l_sattribute11_tab2(i);
10057       l_sattribute12_tab(l_slctd_optns_counter) := l_sattribute12_tab2(i);
10058       l_sattribute13_tab(l_slctd_optns_counter) := l_sattribute13_tab2(i);
10059       l_sattribute14_tab(l_slctd_optns_counter) := l_sattribute14_tab2(i);
10060       l_sattribute15_tab(l_slctd_optns_counter) := l_sattribute15_tab2(i);
10061       l_screated_by_tab(l_slctd_optns_counter) := l_screated_by_tab2(i);
10062       l_screation_date_tab(l_slctd_optns_counter) := l_screation_date_tab2(i);
10063       l_slast_updated_by_tab(l_slctd_optns_counter) := l_slast_updated_by_tab2(i);
10064       l_slast_update_date_tab(l_slctd_optns_counter) := l_slast_update_date_tab2(i);
10065       l_slast_update_login_tab(l_slctd_optns_counter) := l_slast_update_login_tab2(i);
10066 
10067       l_slctd_optns_counter := l_slctd_optns_counter + 1;
10068 
10069     END LOOP;
10070   END LOOP;
10071   CLOSE c24;
10072 
10073   IF (l_slctd_optns_counter > 1) THEN
10074     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10075           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_slctd_optns_counter=' || l_slctd_optns_counter || ' l_sid_tab.count=' || l_sid_tab.COUNT);
10076     END IF;
10077     forall i IN l_sid_tab.first..l_sid_tab.last
10078       INSERT INTO okl_slctd_optns (
10079        id, pov_id, khr_id,
10080        object_version_number, attribute_category, attribute1,
10081        attribute2, attribute3, attribute4,
10082        attribute5, attribute6, attribute7,
10083        attribute8, attribute9, attribute10,
10084        attribute11, attribute12, attribute13,
10085        attribute14, attribute15, created_by,
10086        creation_date, last_updated_by, last_update_date,
10087        last_update_login
10088       ) VALUES (
10089        l_sid_tab(i), l_spov_id_tab(i), l_skhr_id_tab(i),
10090        l_sobject_version_number_tab(i), l_sattribute_category_tab(i), l_sattribute1_tab(i),
10091        l_sattribute2_tab(i), l_sattribute3_tab(i), l_sattribute4_tab(i),
10092        l_sattribute5_tab(i), l_sattribute6_tab(i), l_sattribute7_tab(i),
10093        l_sattribute8_tab(i), l_sattribute9_tab(i), l_sattribute10_tab(i),
10094        l_sattribute11_tab(i), l_sattribute12_tab(i), l_sattribute13_tab(i),
10095        l_sattribute14_tab(i), l_sattribute15_tab(i), l_created_by,
10096        SYSDATE, l_last_updated_by, SYSDATE,
10097        l_last_update_login
10098       );
10099     --Bug# 5591688 - commenting as package has been stubbed in R12
10100     /*
10101     okl_quote_plans_pvt.modify_quote_structure(
10102       p_api_version => p_api_version,
10103       p_init_msg_list => p_init_msg_list,
10104       p_transaction_control => OKL_API.G_FALSE,
10105       p_chr_id => p_new_id,
10106       p_modify_reason_code => 'COPY_QUOTE',
10107       x_chr_id => l_quote_chr_id,
10108       x_return_status => l_return_status,
10109       x_msg_count => x_msg_count,
10110       x_msg_data => x_msg_data
10111     );
10112     IF l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10113       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10114     ELSIF l_return_status = OKL_API.G_RET_STS_ERROR THEN
10115       RAISE OKL_API.G_EXCEPTION_ERROR;
10116     END IF;
10117     */
10118 
10119   END IF;
10120 EXCEPTION WHEN OTHERS THEN
10121 
10122   x_return_status := OKL_API.G_RET_STS_ERROR;
10123   /*OKL_API.set_message(p_app_name => 'OKL',
10124                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
10125                       p_token1 => 'ASSET_NUMBER',
10126                       p_token1_value => 'insert_okl_slctd_optns');*/
10127     /* DEBUG */
10128   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10129       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
10130     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing insert_okl_slctd_optns:l_sid_tab=' || l_sid_tab.COUNT || ' ...');
10131   END IF;
10132   IF (l_sid_tab.COUNT > 0) THEN
10133   FOR i IN l_sid_tab.first..l_sid_tab.last
10134   LOOP
10135     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10136           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sid_tab('||i||')=' || l_sid_tab(i));
10137       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_spov_id_tab('||i||')=' || l_spov_id_tab(i));
10138       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_skhr_id_tab('||i||')=' || l_skhr_id_tab(i));
10139       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sobject_version_number_tab('||i||')=' || l_sobject_version_number_tab(i));
10140       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute_category_tab('||i||')=' || l_sattribute_category_tab(i));
10141       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute1_tab('||i||')=' || l_sattribute1_tab(i));
10142       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute2_tab('||i||')=' || l_sattribute2_tab(i));
10143       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute3_tab('||i||')=' || l_sattribute3_tab(i));
10144       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute4_tab('||i||')=' || l_sattribute4_tab(i));
10145       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute5_tab('||i||')=' || l_sattribute5_tab(i));
10146       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute6_tab('||i||')=' || l_sattribute6_tab(i));
10147       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute7_tab('||i||')=' || l_sattribute7_tab(i));
10148       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute8_tab('||i||')=' || l_sattribute8_tab(i));
10149       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute9_tab('||i||')=' || l_sattribute9_tab(i));
10150       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute10_tab('||i||')=' || l_sattribute10_tab(i));
10151       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute11_tab('||i||')=' || l_sattribute11_tab(i));
10152       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute12_tab('||i||')=' || l_sattribute12_tab(i));
10153       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute13_tab('||i||')=' || l_sattribute13_tab(i));
10154       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute14_tab('||i||')=' || l_sattribute14_tab(i));
10155       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute15_tab('||i||')=' || l_sattribute15_tab(i));
10156     END IF;
10157   END LOOP;
10158   END IF;
10159 
10160   RAISE OKC_API.G_EXCEPTION_ERROR;
10161 
10162 END; /* insert_okl_slctd_optns */
10163 
10164 FUNCTION find_osid_mapping_id(p_id IN NUMBER) RETURN NUMBER IS
10165 hi NUMBER;
10166 lo NUMBER;
10167 m NUMBER;
10168 BEGIN
10169   lo := 1;
10170   hi := l_okl_k_lines_counter - 1;
10171   WHILE (lo <= hi) LOOP
10172     m := FLOOR((hi + lo)/2);
10173     IF (l_osid_mapping_tab(m).id = p_id) THEN
10174       RETURN l_osid_mapping_tab(m).subsidy_id;
10175     ELSIF (l_osid_mapping_tab(m).id > p_id) THEN
10176       hi := m - 1;
10177     ELSE
10178       lo := m + 1;
10179     END IF;
10180   END LOOP;
10181   RETURN -1;
10182 END;  /* find_osid_mapping_id */
10183 
10184 PROCEDURE sort_osid_mapping_tab IS
10185   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
10186   --a numtabtype;
10187   l_stack numtabtype;
10188   l_stack_index NUMBER := 0;
10189   N NUMBER;
10190   R NUMBER;
10191   L NUMBER;
10192   P NUMBER;
10193   W NUMBER;
10194   W2 NUMBER;
10195   X NUMBER;
10196   I NUMBER;
10197   J NUMBER;
10198 BEGIN
10199   IF (G_DEBUG_ENABLED = 'Y') THEN
10200     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
10201   END IF;
10202   NULL;
10203 
10204   N := l_okl_k_lines_counter - 1;
10205   IF (N < 2) THEN
10206     RETURN;
10207   END IF;
10208   l_stack_index := l_stack_index + 1;
10209   l_stack(l_stack_index) := 1;
10210   l_stack_index := l_stack_index + 1;
10211   l_stack(l_stack_index) := N;
10212 
10213   --dbms_output.put_line('l_stack_index=' || l_stack_index);
10214   WHILE l_stack_index > 0
10215   LOOP
10216     R := l_stack(l_stack_index);
10217     l_stack_index := l_stack_index - 1;
10218     L := l_stack(l_stack_index);
10219     l_stack_index := l_stack_index - 1;
10220     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
10221     WHILE 1=1
10222     LOOP -- loop until L >= R
10223       I := L;
10224       J := R;
10225       P := FLOOR((L+R)/2);
10226       --if (a(L) > a(P)) then
10227       IF (l_osid_mapping_tab(L).id > l_osid_mapping_tab(P).id)
10228       THEN
10229         W := l_osid_mapping_tab(L).id;
10230         W2 := l_osid_mapping_tab(L).subsidy_id;
10231         l_osid_mapping_tab(L).id :=l_osid_mapping_tab(P).id;
10232         l_osid_mapping_tab(L).subsidy_id :=l_osid_mapping_tab(P).subsidy_id;
10233         l_osid_mapping_tab(P).id := W;
10234         l_osid_mapping_tab(P).subsidy_id := W2;
10235       END IF;
10236       --if (a(L) > a(R)) then
10237       IF (l_osid_mapping_tab(L).id > l_osid_mapping_tab(R).id)
10238       THEN
10239         W := l_osid_mapping_tab(L).id;
10240         W2 := l_osid_mapping_tab(L).subsidy_id;
10241         l_osid_mapping_tab(L).id :=l_osid_mapping_tab(R).id;
10242         l_osid_mapping_tab(L).subsidy_id :=l_osid_mapping_tab(R).subsidy_id;
10243         l_osid_mapping_tab(R).id := W;
10244         l_osid_mapping_tab(R).subsidy_id := W2;
10245       END IF;
10246       --if (a(P) > a(R)) then
10247       IF (l_osid_mapping_tab(P).id > l_osid_mapping_tab(R).id)
10248       THEN
10249         W := l_osid_mapping_tab(P).id;
10250         W2 := l_osid_mapping_tab(P).subsidy_id;
10251         l_osid_mapping_tab(P).id :=l_osid_mapping_tab(R).id;
10252         l_osid_mapping_tab(P).subsidy_id :=l_osid_mapping_tab(R).subsidy_id;
10253         l_osid_mapping_tab(R).id := W;
10254         l_osid_mapping_tab(R).subsidy_id := W2;
10255       END IF;
10256       --X := a(P);
10257       X := l_osid_mapping_tab(P).id;
10258       WHILE 1=1
10259       LOOP    -- until I > J
10260         --while (a(I) < X) loop
10261         WHILE (l_osid_mapping_tab(I).id < X) LOOP
10262           I := I + 1;
10263         END LOOP;
10264         WHILE (X < l_osid_mapping_tab(J).id) LOOP
10265           J := J - 1;
10266         END LOOP;
10267         IF (I <= J) THEN
10268           W := l_osid_mapping_tab(I).id;
10269           W2 := l_osid_mapping_tab(I).subsidy_id;
10270           l_osid_mapping_tab(I).id :=l_osid_mapping_tab(J).id;
10271           l_osid_mapping_tab(I).subsidy_id :=l_osid_mapping_tab(J).subsidy_id;
10272           l_osid_mapping_tab(J).id := W;
10273           l_osid_mapping_tab(J).subsidy_id := W2;
10274           I := I + 1;
10275           J := J - 1;
10276         END IF;
10277         EXIT WHEN I > J;
10278       END LOOP;
10279       IF (J - L < R - I) THEN
10280         IF (I < R) THEN
10281           --push(I); push(R);
10282           l_stack_index := l_stack_index + 1;
10283           l_stack(l_stack_index) := I;
10284           l_stack_index := l_stack_index + 1;
10285           l_stack(l_stack_index) := R;
10286           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
10287         END IF;
10288         R := J;
10289       ELSE
10290         IF (L < J) THEN
10291           --push(L); push(J);
10292           l_stack_index := l_stack_index + 1;
10293           l_stack(l_stack_index) := L;
10294           l_stack_index := l_stack_index + 1;
10295           l_stack(l_stack_index) := J;
10296           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
10297         END IF;
10298         L := I;
10299       END IF;
10300 
10301       EXIT WHEN (L >= R);
10302     END LOOP;
10303   END LOOP;
10304 
10305 EXCEPTION WHEN OTHERS THEN
10306 
10307   x_return_status := OKL_API.G_RET_STS_ERROR;
10308   /*OKL_API.set_message(p_app_name => 'OKL',
10309                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
10310                       p_token1 => 'ASSET_NUMBER',
10311                       p_token1_value => 'sort_osid_mapping_tab');*/
10312     /* DEBUG */
10313   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10314       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
10315     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_osid_mapping_tab:l_osid_mapping_tab N=' || N || ' ...');
10316   END IF;
10317 
10318   --print array
10319   FOR i IN 1..N
10320   LOOP
10321     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10322           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osid_mapping_tab('||i||')=' || l_osid_mapping_tab(i).id || ':' || l_osid_mapping_tab(i).subsidy_id);
10323     END IF;
10324   END LOOP;
10325 
10326   RAISE OKC_API.G_EXCEPTION_ERROR;
10327 
10328 END;  /* sort_osid_mapping_tab */
10329 
10330 FUNCTION find_okl_k_lines_rec(p_id IN NUMBER) RETURN l_okl_k_lines_rec_type IS
10331 hi NUMBER;
10332 lo NUMBER;
10333 m NUMBER;
10334 l_tmp_rec l_okl_k_lines_rec_type;
10335 BEGIN
10336   lo := 1;
10337   hi := l_okl_k_lines_rec_counter - 1;
10338   WHILE (lo <= hi) LOOP
10339     m := FLOOR((hi + lo)/2);
10340     IF (l_okl_k_lines_rec(m).id = p_id) THEN
10341       RETURN l_okl_k_lines_rec(m);
10342     ELSIF (l_okl_k_lines_rec(m).id > p_id) THEN
10343       hi := m - 1;
10344     ELSE
10345       lo := m + 1;
10346     END IF;
10347   END LOOP;
10348   RETURN l_tmp_rec;
10349 END;  /* find_okl_k_lines_rec */
10350 
10351 PROCEDURE sort_okl_k_lines_rec IS
10352   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
10353   --a numtabtype;
10354   l_stack numtabtype;
10355   l_stack_index NUMBER := 0;
10356   N NUMBER;
10357   R NUMBER;
10358   L NUMBER;
10359   P NUMBER;
10360   W NUMBER;
10361   W2 NUMBER;
10362   W3 NUMBER;
10363   W4 okc_k_lines_tl.item_description%TYPE;
10364   X NUMBER;
10365   I NUMBER;
10366   J NUMBER;
10367 BEGIN
10368   IF (G_DEBUG_ENABLED = 'Y') THEN
10369     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
10370   END IF;
10371   NULL;
10372 
10373   N := l_okl_k_lines_rec_counter - 1;
10374   IF (N < 2) THEN
10375     RETURN;
10376   END IF;
10377   l_stack_index := l_stack_index + 1;
10378   l_stack(l_stack_index) := 1;
10379   l_stack_index := l_stack_index + 1;
10380   l_stack(l_stack_index) := N;
10381 
10382   --dbms_output.put_line('l_stack_index=' || l_stack_index);
10383   WHILE l_stack_index > 0
10384   LOOP
10385     R := l_stack(l_stack_index);
10386     l_stack_index := l_stack_index - 1;
10387     L := l_stack(l_stack_index);
10388     l_stack_index := l_stack_index - 1;
10389     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
10390     WHILE 1=1
10391     LOOP -- loop until L >= R
10392       I := L;
10393       J := R;
10394       P := FLOOR((L+R)/2);
10395       --if (a(L) > a(P)) then
10396       IF (l_okl_k_lines_rec(L).id > l_okl_k_lines_rec(P).id)
10397       THEN
10398         W := l_okl_k_lines_rec(L).id;
10399         W2 := l_okl_k_lines_rec(L).oec;
10400         W3 := l_okl_k_lines_rec(L).year_built;
10401         W4 := l_okl_k_lines_rec(L).item_description;
10402         l_okl_k_lines_rec(L).id :=l_okl_k_lines_rec(P).id;
10403         l_okl_k_lines_rec(L).oec :=l_okl_k_lines_rec(P).oec;
10404         l_okl_k_lines_rec(L).year_built :=l_okl_k_lines_rec(P).year_built;
10405         l_okl_k_lines_rec(L).item_description :=l_okl_k_lines_rec(P).item_description;
10406         l_okl_k_lines_rec(P).id := W;
10407         l_okl_k_lines_rec(P).oec := W2;
10408         l_okl_k_lines_rec(P).year_built := W3;
10409         l_okl_k_lines_rec(P).item_description := W4;
10410       END IF;
10411       --if (a(L) > a(R)) then
10412       IF (l_okl_k_lines_rec(L).id > l_okl_k_lines_rec(R).id)
10413       THEN
10414         W := l_okl_k_lines_rec(L).id;
10415         W2 := l_okl_k_lines_rec(L).oec;
10416         W3 := l_okl_k_lines_rec(L).year_built;
10417         W4 := l_okl_k_lines_rec(L).item_description;
10418         l_okl_k_lines_rec(L).id :=l_okl_k_lines_rec(R).id;
10419         l_okl_k_lines_rec(L).oec :=l_okl_k_lines_rec(R).oec;
10420         l_okl_k_lines_rec(L).year_built :=l_okl_k_lines_rec(R).year_built;
10421         l_okl_k_lines_rec(L).item_description :=l_okl_k_lines_rec(R).item_description;
10422         l_okl_k_lines_rec(R).id := W;
10423         l_okl_k_lines_rec(R).oec := W2;
10424         l_okl_k_lines_rec(R).year_built := W3;
10425         l_okl_k_lines_rec(R).item_description := W4;
10426       END IF;
10427       --if (a(P) > a(R)) then
10428       IF (l_okl_k_lines_rec(P).id > l_okl_k_lines_rec(R).id)
10429       THEN
10430         W := l_okl_k_lines_rec(P).id;
10431         W2 := l_okl_k_lines_rec(P).oec;
10432         W3 := l_okl_k_lines_rec(P).year_built;
10433         W4 := l_okl_k_lines_rec(P).item_description;
10434         l_okl_k_lines_rec(P).id :=l_okl_k_lines_rec(R).id;
10435         l_okl_k_lines_rec(P).oec :=l_okl_k_lines_rec(R).oec;
10436         l_okl_k_lines_rec(P).year_built :=l_okl_k_lines_rec(R).year_built;
10437         l_okl_k_lines_rec(P).item_description :=l_okl_k_lines_rec(R).item_description;
10438         l_okl_k_lines_rec(R).id := W;
10439         l_okl_k_lines_rec(R).oec := W2;
10440         l_okl_k_lines_rec(R).year_built := W3;
10441         l_okl_k_lines_rec(R).item_description := W4;
10442       END IF;
10443       --X := a(P);
10444       X := l_okl_k_lines_rec(P).id;
10445       WHILE 1=1
10446       LOOP    -- until I > J
10447         --while (a(I) < X) loop
10448         WHILE (l_okl_k_lines_rec(I).id < X) LOOP
10449           I := I + 1;
10450         END LOOP;
10451         WHILE (X < l_okl_k_lines_rec(J).id) LOOP
10452           J := J - 1;
10453         END LOOP;
10454         IF (I <= J) THEN
10455           W := l_okl_k_lines_rec(I).id;
10456           W2 := l_okl_k_lines_rec(I).oec;
10457           W3 := l_okl_k_lines_rec(I).year_built;
10458           W4 := l_okl_k_lines_rec(I).item_description;
10459           l_okl_k_lines_rec(I).id :=l_okl_k_lines_rec(J).id;
10460           l_okl_k_lines_rec(I).oec :=l_okl_k_lines_rec(J).oec;
10461           l_okl_k_lines_rec(I).year_built :=l_okl_k_lines_rec(J).year_built;
10462           l_okl_k_lines_rec(I).item_description :=l_okl_k_lines_rec(J).item_description;
10463           l_okl_k_lines_rec(J).id := W;
10464           l_okl_k_lines_rec(J).oec := W2;
10465           l_okl_k_lines_rec(J).year_built := W3;
10466           l_okl_k_lines_rec(J).item_description := W4;
10467           I := I + 1;
10468           J := J - 1;
10469         END IF;
10470         EXIT WHEN I > J;
10471       END LOOP;
10472       IF (J - L < R - I) THEN
10473         IF (I < R) THEN
10474           --push(I); push(R);
10475           l_stack_index := l_stack_index + 1;
10476           l_stack(l_stack_index) := I;
10477           l_stack_index := l_stack_index + 1;
10478           l_stack(l_stack_index) := R;
10479           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
10480         END IF;
10481         R := J;
10482       ELSE
10483         IF (L < J) THEN
10484           --push(L); push(J);
10485           l_stack_index := l_stack_index + 1;
10486           l_stack(l_stack_index) := L;
10487           l_stack_index := l_stack_index + 1;
10488           l_stack(l_stack_index) := J;
10489           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
10490         END IF;
10491         L := I;
10492       END IF;
10493 
10494       EXIT WHEN (L >= R);
10495     END LOOP;
10496   END LOOP;
10497 
10498 EXCEPTION WHEN OTHERS THEN
10499 
10500   x_return_status := OKL_API.G_RET_STS_ERROR;
10501   /*OKL_API.set_message(p_app_name => 'OKL',
10502                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
10503                       p_token1 => 'ASSET_NUMBER',
10504                       p_token1_value => 'sort_okl_k_lines_rec');*/
10505     /* DEBUG */
10506   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10507       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
10508     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_okl_k_lines_rec:l_okl_k_lines_rec N=' || N || ' ...');
10509   END IF;
10510 
10511   --print array
10512   FOR i IN 1..N
10513   LOOP
10514     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10515           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_okl_k_lines_rec('||i||')=' || l_okl_k_lines_rec(i).id || ':' || l_okl_k_lines_rec(i).oec || ':' || l_okl_k_lines_rec(i).year_built || ':' || l_okl_k_lines_rec(i).item_description );
10516     END IF;
10517   END LOOP;
10518 
10519   RAISE OKC_API.G_EXCEPTION_ERROR;
10520 
10521 END;  /* sort_okl_k_lines_rec */
10522 
10523 
10524 PROCEDURE insert_okl_k_lines IS
10525 CURSOR c8(p_id NUMBER) IS
10526 SELECT
10527        a.id, a.kle_id, a.sty_id,
10528        a.object_version_number, a.lao_amount, a.fee_charge,
10529        a.title_date, a.date_residual_last_review, a.date_last_reamortisation,
10530        a.termination_purchase_amount, a.date_last_cleanup, a.remarketed_amount,
10531        a.date_remarketed, a.remarket_margin, a.repurchased_amount,
10532        a.date_repurchased, a.gain_loss, a.floor_amount,
10533        a.previous_contract, a.tracked_residual, a.date_title_received,
10534        a.estimated_oec, a.residual_percentage, a.capital_reduction,
10535        a.vendor_advance_paid, a.tradein_amount, a.delivered_date,
10536        a.year_of_manufacture, a.initial_direct_cost, a.occupancy,
10537        a.date_last_inspection, a.date_next_inspection_due, a.weighted_average_life,
10538        a.bond_equivalent_yield, a.refinance_amount, a.year_built,
10539        a.coverage_ratio, a.gross_square_footage, a.net_rentable,
10540        a.date_letter_acceptance, a.date_commitment_expiration, a.date_appraisal,
10541        a.appraisal_value, a.residual_value, a.percent,
10542        a.coverage, a.lrv_amount, a.amount,
10543        a.lrs_percent, a.evergreen_percent, a.percent_stake,
10544        a.amount_stake, a.date_sold, a.sty_id_for,
10545        a.attribute_category, a.attribute1, a.attribute2,
10546        a.attribute3, a.attribute4, a.attribute5,
10547        a.attribute6, a.attribute7, a.attribute8,
10548        a.attribute9, a.attribute10, a.attribute11,
10549        a.attribute12, a.attribute13, a.attribute14,
10550        a.attribute15, a.created_by, a.creation_date,
10551        a.last_updated_by, a.last_update_date, a.last_update_login,
10552        a.nty_code, a.fcg_code, a.prc_code,
10553        a.re_lease_yn, a.prescribed_asset_yn, a.credit_tenant_yn,
10554        a.secured_deal_yn, a.clg_id, a.date_funding,
10555        a.date_funding_required, a.date_accepted, a.date_delivery_expected,
10556        a.oec, a.capital_amount, a.residual_grnty_amount,
10557        a.residual_code, a.rvi_premium, a.credit_nature,
10558        a.capitalized_interest, a.capital_reduction_percent, a.date_pay_investor_start,
10559        a.pay_investor_frequency, a.pay_investor_event, a.pay_investor_remittance_days,
10560        a.fee_type, a.subsidy_id, a.subsidy_override_amount,
10561        a.pre_tax_yield, a.after_tax_yield, a.implicit_interest_rate,
10562        a.implicit_non_idc_interest_rate, a.pre_tax_irr, a.after_tax_irr,
10563        a.sub_pre_tax_yield, a.sub_after_tax_yield, a.sub_impl_interest_rate,
10564        a.sub_impl_non_idc_int_rate, a.sub_pre_tax_irr, a.sub_after_tax_irr,
10565        a.item_insurance_category, a.qte_id, a.funding_date,
10566        a.stream_type_subclass, b.lse_id, c.item_description,
10567        a.fee_purpose_code, a.date_funding_expected, a.manufacturer_name,
10568        a.model_number, a.down_payment_receiver_code, a.capitalize_down_payment_yn,
10569 	   a.ORIG_CONTRACT_LINE_ID --sechawla 17-Jul-09 PRB ESG enhancements : added this column
10570        ,a.origination_income   -- Bug 12938353 : RGOOTY: End
10571 FROM okl_k_lines a,
10572      okc_k_lines_b b,
10573      okc_k_lines_tl c
10574 WHERE b.id = a.id
10575 AND   b.dnz_chr_id = p_id
10576 AND   b.id = c.id
10577 AND   c.LANGUAGE = USERENV('LANG');
10578 
10579     TYPE l_id_type IS TABLE OF okl_k_lines.id%TYPE INDEX BY BINARY_INTEGER;
10580     TYPE l_kle_id_type IS TABLE OF okl_k_lines.kle_id%TYPE INDEX BY BINARY_INTEGER;
10581     TYPE l_sty_id_type IS TABLE OF okl_k_lines.sty_id%TYPE INDEX BY BINARY_INTEGER;
10582     TYPE l_object_version_number_type IS TABLE OF okl_k_lines.object_version_number%TYPE INDEX BY BINARY_INTEGER;
10583     TYPE l_lao_amount_type IS TABLE OF okl_k_lines.lao_amount%TYPE INDEX BY BINARY_INTEGER;
10584     TYPE l_fee_charge_type IS TABLE OF okl_k_lines.fee_charge%TYPE INDEX BY BINARY_INTEGER;
10585     TYPE l_title_date_type IS TABLE OF okl_k_lines.title_date%TYPE INDEX BY BINARY_INTEGER;
10586     TYPE l_date_residual_last_revi_type IS TABLE OF okl_k_lines.date_residual_last_review%TYPE INDEX BY BINARY_INTEGER;
10587     TYPE l_date_last_reamortisatio_type IS TABLE OF okl_k_lines.date_last_reamortisation%TYPE INDEX BY BINARY_INTEGER;
10588     TYPE l_termination_purchase_am_type IS TABLE OF okl_k_lines.termination_purchase_amount%TYPE INDEX BY BINARY_INTEGER;
10589     TYPE l_date_last_cleanup_type IS TABLE OF okl_k_lines.date_last_cleanup%TYPE INDEX BY BINARY_INTEGER;
10590     TYPE l_remarketed_amount_type IS TABLE OF okl_k_lines.remarketed_amount%TYPE INDEX BY BINARY_INTEGER;
10591     TYPE l_date_remarketed_type IS TABLE OF okl_k_lines.date_remarketed%TYPE INDEX BY BINARY_INTEGER;
10592     TYPE l_remarket_margin_type IS TABLE OF okl_k_lines.remarket_margin%TYPE INDEX BY BINARY_INTEGER;
10593     TYPE l_repurchased_amount_type IS TABLE OF okl_k_lines.repurchased_amount%TYPE INDEX BY BINARY_INTEGER;
10594     TYPE l_date_repurchased_type IS TABLE OF okl_k_lines.date_repurchased%TYPE INDEX BY BINARY_INTEGER;
10595     TYPE l_gain_loss_type IS TABLE OF okl_k_lines.gain_loss%TYPE INDEX BY BINARY_INTEGER;
10596     TYPE l_floor_amount_type IS TABLE OF okl_k_lines.floor_amount%TYPE INDEX BY BINARY_INTEGER;
10597     TYPE l_previous_contract_type IS TABLE OF okl_k_lines.previous_contract%TYPE INDEX BY BINARY_INTEGER;
10598     TYPE l_tracked_residual_type IS TABLE OF okl_k_lines.tracked_residual%TYPE INDEX BY BINARY_INTEGER;
10599     TYPE l_date_title_received_type IS TABLE OF okl_k_lines.date_title_received%TYPE INDEX BY BINARY_INTEGER;
10600     TYPE l_estimated_oec_type IS TABLE OF okl_k_lines.estimated_oec%TYPE INDEX BY BINARY_INTEGER;
10601     TYPE l_residual_percentage_type IS TABLE OF okl_k_lines.residual_percentage%TYPE INDEX BY BINARY_INTEGER;
10602     TYPE l_capital_reduction_type IS TABLE OF okl_k_lines.capital_reduction%TYPE INDEX BY BINARY_INTEGER;
10603     TYPE l_vendor_advance_paid_type IS TABLE OF okl_k_lines.vendor_advance_paid%TYPE INDEX BY BINARY_INTEGER;
10604     TYPE l_tradein_amount_type IS TABLE OF okl_k_lines.tradein_amount%TYPE INDEX BY BINARY_INTEGER;
10605     TYPE l_delivered_date_type IS TABLE OF okl_k_lines.delivered_date%TYPE INDEX BY BINARY_INTEGER;
10606     TYPE l_year_of_manufacture_type IS TABLE OF okl_k_lines.year_of_manufacture%TYPE INDEX BY BINARY_INTEGER;
10607     TYPE l_initial_direct_cost_type IS TABLE OF okl_k_lines.initial_direct_cost%TYPE INDEX BY BINARY_INTEGER;
10608     TYPE l_occupancy_type IS TABLE OF okl_k_lines.occupancy%TYPE INDEX BY BINARY_INTEGER;
10609     TYPE l_date_last_inspection_type IS TABLE OF okl_k_lines.date_last_inspection%TYPE INDEX BY BINARY_INTEGER;
10610     TYPE l_date_next_inspection_du_type IS TABLE OF okl_k_lines.date_next_inspection_due%TYPE INDEX BY BINARY_INTEGER;
10611     TYPE l_weighted_average_life_type IS TABLE OF okl_k_lines.weighted_average_life%TYPE INDEX BY BINARY_INTEGER;
10612     TYPE l_bond_equivalent_yield_type IS TABLE OF okl_k_lines.bond_equivalent_yield%TYPE INDEX BY BINARY_INTEGER;
10613     TYPE l_refinance_amount_type IS TABLE OF okl_k_lines.refinance_amount%TYPE INDEX BY BINARY_INTEGER;
10614     TYPE l_year_built_type IS TABLE OF okl_k_lines.year_built%TYPE INDEX BY BINARY_INTEGER;
10615     TYPE l_coverage_ratio_type IS TABLE OF okl_k_lines.coverage_ratio%TYPE INDEX BY BINARY_INTEGER;
10616     TYPE l_gross_square_footage_type IS TABLE OF okl_k_lines.gross_square_footage%TYPE INDEX BY BINARY_INTEGER;
10617     TYPE l_net_rentable_type IS TABLE OF okl_k_lines.net_rentable%TYPE INDEX BY BINARY_INTEGER;
10618     TYPE l_date_letter_acceptance_type IS TABLE OF okl_k_lines.date_letter_acceptance%TYPE INDEX BY BINARY_INTEGER;
10619     TYPE l_date_commitment_expirat_type IS TABLE OF okl_k_lines.date_commitment_expiration%TYPE INDEX BY BINARY_INTEGER;
10620     TYPE l_date_appraisal_type IS TABLE OF okl_k_lines.date_appraisal%TYPE INDEX BY BINARY_INTEGER;
10621     TYPE l_appraisal_value_type IS TABLE OF okl_k_lines.appraisal_value%TYPE INDEX BY BINARY_INTEGER;
10622     TYPE l_residual_value_type IS TABLE OF okl_k_lines.residual_value%TYPE INDEX BY BINARY_INTEGER;
10623     TYPE l_percent_type IS TABLE OF okl_k_lines.percent%TYPE INDEX BY BINARY_INTEGER;
10624     TYPE l_coverage_type IS TABLE OF okl_k_lines.coverage%TYPE INDEX BY BINARY_INTEGER;
10625     TYPE l_lrv_amount_type IS TABLE OF okl_k_lines.lrv_amount%TYPE INDEX BY BINARY_INTEGER;
10626     TYPE l_amount_type IS TABLE OF okl_k_lines.amount%TYPE INDEX BY BINARY_INTEGER;
10627     -- Bug 12938353: RGOOTY: Start
10628     TYPE l_origination_income_type IS TABLE OF okl_k_lines.origination_income%TYPE INDEX BY BINARY_INTEGER;
10629     -- Bug 12938353: RGOOTY: End
10630     TYPE l_lrs_percent_type IS TABLE OF okl_k_lines.lrs_percent%TYPE INDEX BY BINARY_INTEGER;
10631     TYPE l_evergreen_percent_type IS TABLE OF okl_k_lines.evergreen_percent%TYPE INDEX BY BINARY_INTEGER;
10632     TYPE l_percent_stake_type IS TABLE OF okl_k_lines.percent_stake%TYPE INDEX BY BINARY_INTEGER;
10633     TYPE l_amount_stake_type IS TABLE OF okl_k_lines.amount_stake%TYPE INDEX BY BINARY_INTEGER;
10634     TYPE l_date_sold_type IS TABLE OF okl_k_lines.date_sold%TYPE INDEX BY BINARY_INTEGER;
10635     TYPE l_sty_id_for_type IS TABLE OF okl_k_lines.sty_id_for%TYPE INDEX BY BINARY_INTEGER;
10636     TYPE l_attribute_category_type IS TABLE OF okl_k_lines.attribute_category%TYPE INDEX BY BINARY_INTEGER;
10637     TYPE l_attribute1_type IS TABLE OF okl_k_lines.attribute1%TYPE INDEX BY BINARY_INTEGER;
10638     TYPE l_attribute2_type IS TABLE OF okl_k_lines.attribute2%TYPE INDEX BY BINARY_INTEGER;
10639     TYPE l_attribute3_type IS TABLE OF okl_k_lines.attribute3%TYPE INDEX BY BINARY_INTEGER;
10640     TYPE l_attribute4_type IS TABLE OF okl_k_lines.attribute4%TYPE INDEX BY BINARY_INTEGER;
10641     TYPE l_attribute5_type IS TABLE OF okl_k_lines.attribute5%TYPE INDEX BY BINARY_INTEGER;
10642     TYPE l_attribute6_type IS TABLE OF okl_k_lines.attribute6%TYPE INDEX BY BINARY_INTEGER;
10643     TYPE l_attribute7_type IS TABLE OF okl_k_lines.attribute7%TYPE INDEX BY BINARY_INTEGER;
10644     TYPE l_attribute8_type IS TABLE OF okl_k_lines.attribute8%TYPE INDEX BY BINARY_INTEGER;
10645     TYPE l_attribute9_type IS TABLE OF okl_k_lines.attribute9%TYPE INDEX BY BINARY_INTEGER;
10646     TYPE l_attribute10_type IS TABLE OF okl_k_lines.attribute10%TYPE INDEX BY BINARY_INTEGER;
10647     TYPE l_attribute11_type IS TABLE OF okl_k_lines.attribute11%TYPE INDEX BY BINARY_INTEGER;
10648     TYPE l_attribute12_type IS TABLE OF okl_k_lines.attribute12%TYPE INDEX BY BINARY_INTEGER;
10649     TYPE l_attribute13_type IS TABLE OF okl_k_lines.attribute13%TYPE INDEX BY BINARY_INTEGER;
10650     TYPE l_attribute14_type IS TABLE OF okl_k_lines.attribute14%TYPE INDEX BY BINARY_INTEGER;
10651     TYPE l_attribute15_type IS TABLE OF okl_k_lines.attribute15%TYPE INDEX BY BINARY_INTEGER;
10652     TYPE l_created_by_type IS TABLE OF okl_k_lines.created_by%TYPE INDEX BY BINARY_INTEGER;
10653     TYPE l_creation_date_type IS TABLE OF okl_k_lines.creation_date%TYPE INDEX BY BINARY_INTEGER;
10654     TYPE l_last_updated_by_type IS TABLE OF okl_k_lines.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
10655     TYPE l_last_update_date_type IS TABLE OF okl_k_lines.last_update_date%TYPE INDEX BY BINARY_INTEGER;
10656     TYPE l_last_update_login_type IS TABLE OF okl_k_lines.last_update_login%TYPE INDEX BY BINARY_INTEGER;
10657     TYPE l_nty_code_type IS TABLE OF okl_k_lines.nty_code%TYPE INDEX BY BINARY_INTEGER;
10658     TYPE l_fcg_code_type IS TABLE OF okl_k_lines.fcg_code%TYPE INDEX BY BINARY_INTEGER;
10659     TYPE l_prc_code_type IS TABLE OF okl_k_lines.prc_code%TYPE INDEX BY BINARY_INTEGER;
10660     TYPE l_re_lease_yn_type IS TABLE OF okl_k_lines.re_lease_yn%TYPE INDEX BY BINARY_INTEGER;
10661     TYPE l_prescribed_asset_yn_type IS TABLE OF okl_k_lines.prescribed_asset_yn%TYPE INDEX BY BINARY_INTEGER;
10662     TYPE l_credit_tenant_yn_type IS TABLE OF okl_k_lines.credit_tenant_yn%TYPE INDEX BY BINARY_INTEGER;
10663     TYPE l_secured_deal_yn_type IS TABLE OF okl_k_lines.secured_deal_yn%TYPE INDEX BY BINARY_INTEGER;
10664     TYPE l_clg_id_type IS TABLE OF okl_k_lines.clg_id%TYPE INDEX BY BINARY_INTEGER;
10665     TYPE l_date_funding_type IS TABLE OF okl_k_lines.date_funding%TYPE INDEX BY BINARY_INTEGER;
10666     TYPE l_date_funding_required_type IS TABLE OF okl_k_lines.date_funding_required%TYPE INDEX BY BINARY_INTEGER;
10667     TYPE l_date_accepted_type IS TABLE OF okl_k_lines.date_accepted%TYPE INDEX BY BINARY_INTEGER;
10668     TYPE l_date_delivery_expected_type IS TABLE OF okl_k_lines.date_delivery_expected%TYPE INDEX BY BINARY_INTEGER;
10669     TYPE l_oec_type IS TABLE OF okl_k_lines.oec%TYPE INDEX BY BINARY_INTEGER;
10670     TYPE l_capital_amount_type IS TABLE OF okl_k_lines.capital_amount%TYPE INDEX BY BINARY_INTEGER;
10671     TYPE l_residual_grnty_amount_type IS TABLE OF okl_k_lines.residual_grnty_amount%TYPE INDEX BY BINARY_INTEGER;
10672     TYPE l_residual_code_type IS TABLE OF okl_k_lines.residual_code%TYPE INDEX BY BINARY_INTEGER;
10673     TYPE l_rvi_premium_type IS TABLE OF okl_k_lines.rvi_premium%TYPE INDEX BY BINARY_INTEGER;
10674     TYPE l_credit_nature_type IS TABLE OF okl_k_lines.credit_nature%TYPE INDEX BY BINARY_INTEGER;
10675     TYPE l_capitalized_interest_type IS TABLE OF okl_k_lines.capitalized_interest%TYPE INDEX BY BINARY_INTEGER;
10676     TYPE l_capital_reduction_perce_type IS TABLE OF okl_k_lines.capital_reduction_percent%TYPE INDEX BY BINARY_INTEGER;
10677     TYPE l_date_pay_investor_start_type IS TABLE OF okl_k_lines.date_pay_investor_start%TYPE INDEX BY BINARY_INTEGER;
10678     TYPE l_pay_investor_frequency_type IS TABLE OF okl_k_lines.pay_investor_frequency%TYPE INDEX BY BINARY_INTEGER;
10679     TYPE l_pay_investor_event_type IS TABLE OF okl_k_lines.pay_investor_event%TYPE INDEX BY BINARY_INTEGER;
10680     TYPE l_pay_investor_remit_days_type IS TABLE OF okl_k_lines.pay_investor_remittance_days%TYPE INDEX BY BINARY_INTEGER;
10681     TYPE l_fee_type_type IS TABLE OF okl_k_lines.fee_type%TYPE INDEX BY BINARY_INTEGER;
10682     TYPE l_subsidy_id_type IS TABLE OF okl_k_lines.subsidy_id%TYPE INDEX BY BINARY_INTEGER;
10683     TYPE l_subsidy_override_amount_type IS TABLE OF okl_k_lines.subsidy_override_amount%TYPE INDEX BY BINARY_INTEGER;
10684     TYPE l_pre_tax_yield_type IS TABLE OF okl_k_lines.pre_tax_yield%TYPE INDEX BY BINARY_INTEGER;
10685     TYPE l_after_tax_yield_type IS TABLE OF okl_k_lines.after_tax_yield%TYPE INDEX BY BINARY_INTEGER;
10686     TYPE l_implicit_interest_rate_type IS TABLE OF okl_k_lines.implicit_interest_rate%TYPE INDEX BY BINARY_INTEGER;
10687     TYPE l_implicit_non_idc_i_rate_type IS TABLE OF okl_k_lines.implicit_non_idc_interest_rate%TYPE INDEX BY BINARY_INTEGER;
10688     TYPE l_pre_tax_irr_type IS TABLE OF okl_k_lines.pre_tax_irr%TYPE INDEX BY BINARY_INTEGER;
10689     TYPE l_after_tax_irr_type IS TABLE OF okl_k_lines.after_tax_irr%TYPE INDEX BY BINARY_INTEGER;
10690     TYPE l_sub_pre_tax_yield_type IS TABLE OF okl_k_lines.sub_pre_tax_yield%TYPE INDEX BY BINARY_INTEGER;
10691     TYPE l_sub_after_tax_yield_type IS TABLE OF okl_k_lines.sub_after_tax_yield%TYPE INDEX BY BINARY_INTEGER;
10692     TYPE l_sub_impl_interest_rate_type IS TABLE OF okl_k_lines.sub_impl_interest_rate%TYPE INDEX BY BINARY_INTEGER;
10693     TYPE l_sub_impl_non_idc_int_ra_type IS TABLE OF okl_k_lines.sub_impl_non_idc_int_rate%TYPE INDEX BY BINARY_INTEGER;
10694     TYPE l_sub_pre_tax_irr_type IS TABLE OF okl_k_lines.sub_pre_tax_irr%TYPE INDEX BY BINARY_INTEGER;
10695     TYPE l_sub_after_tax_irr_type IS TABLE OF okl_k_lines.sub_after_tax_irr%TYPE INDEX BY BINARY_INTEGER;
10696     TYPE l_item_insurance_category_type IS TABLE OF okl_k_lines.item_insurance_category%TYPE INDEX BY BINARY_INTEGER;
10697     TYPE l_qte_id_type IS TABLE OF okl_k_lines.qte_id%TYPE INDEX BY BINARY_INTEGER;
10698     TYPE l_funding_date_type IS TABLE OF okl_k_lines.funding_date%TYPE INDEX BY BINARY_INTEGER;
10699     TYPE l_stream_type_subclass_type IS TABLE OF okl_k_lines.stream_type_subclass%TYPE INDEX BY BINARY_INTEGER;
10700     TYPE l_lse_id_type IS TABLE OF okc_k_lines_b.lse_id%TYPE INDEX BY BINARY_INTEGER;
10701     TYPE l_item_description_type IS TABLE OF okc_k_lines_tl.item_description%TYPE INDEX BY BINARY_INTEGER;
10702     TYPE l_fee_purpose_code_type IS TABLE OF okl_k_lines.fee_purpose_code%TYPE INDEX BY BINARY_INTEGER;
10703     TYPE l_date_funding_expected_type is table of okl_k_lines.date_funding_expected%TYPE index by binary_integer;
10704     TYPE l_manufacturer_name_type is table of okl_k_lines.manufacturer_name%TYPE index by binary_integer;
10705     TYPE l_model_number_type is table of okl_k_lines.model_number%TYPE index by binary_integer;
10706     TYPE l_down_payment_recei_code_type is table of okl_k_lines.down_payment_receiver_code%TYPE index by binary_integer;
10707     TYPE l_capitalize_down_paym_yn_type is table of okl_k_lines.capitalize_down_payment_yn%TYPE index by binary_integer;
10708 
10709     --sechawla 17-Jul-09 PRB ESG Enhancements : added new column ORIG_CONTRACT_LINE_ID in okl_k_lines
10710     TYPE l_ORIG_CONTRACT_LINE_ID_type is table of okl_k_lines.ORIG_CONTRACT_LINE_ID%TYPE index by binary_integer;
10711 
10712     l_id_tab l_id_type;
10713     l_kle_id_tab l_kle_id_type;
10714     l_sty_id_tab l_sty_id_type;
10715     l_object_version_number_tab l_object_version_number_type;
10716     l_lao_amount_tab l_lao_amount_type;
10717     l_fee_charge_tab l_fee_charge_type;
10718     l_title_date_tab l_title_date_type;
10719     l_date_residual_last_revi_tab l_date_residual_last_revi_type;
10720     l_date_last_reamortisatio_tab l_date_last_reamortisatio_type;
10721     l_termination_purchase_am_tab l_termination_purchase_am_type;
10722     l_date_last_cleanup_tab l_date_last_cleanup_type;
10723     l_remarketed_amount_tab l_remarketed_amount_type;
10724     l_date_remarketed_tab l_date_remarketed_type;
10725     l_remarket_margin_tab l_remarket_margin_type;
10726     l_repurchased_amount_tab l_repurchased_amount_type;
10727     l_date_repurchased_tab l_date_repurchased_type;
10728     l_gain_loss_tab l_gain_loss_type;
10729     l_floor_amount_tab l_floor_amount_type;
10730     l_previous_contract_tab l_previous_contract_type;
10731     l_tracked_residual_tab l_tracked_residual_type;
10732     l_date_title_received_tab l_date_title_received_type;
10733     l_estimated_oec_tab l_estimated_oec_type;
10734     l_residual_percentage_tab l_residual_percentage_type;
10735     l_capital_reduction_tab l_capital_reduction_type;
10736     l_vendor_advance_paid_tab l_vendor_advance_paid_type;
10737     l_tradein_amount_tab l_tradein_amount_type;
10738     l_delivered_date_tab l_delivered_date_type;
10739     l_year_of_manufacture_tab l_year_of_manufacture_type;
10740     l_initial_direct_cost_tab l_initial_direct_cost_type;
10741     l_occupancy_tab l_occupancy_type;
10742     l_date_last_inspection_tab l_date_last_inspection_type;
10743     l_date_next_inspection_du_tab l_date_next_inspection_du_type;
10744     l_weighted_average_life_tab l_weighted_average_life_type;
10745     l_bond_equivalent_yield_tab l_bond_equivalent_yield_type;
10746     l_refinance_amount_tab l_refinance_amount_type;
10747     l_year_built_tab l_year_built_type;
10748     l_coverage_ratio_tab l_coverage_ratio_type;
10749     l_gross_square_footage_tab l_gross_square_footage_type;
10750     l_net_rentable_tab l_net_rentable_type;
10751     l_date_letter_acceptance_tab l_date_letter_acceptance_type;
10752     l_date_commitment_expirat_tab l_date_commitment_expirat_type;
10753     l_date_appraisal_tab l_date_appraisal_type;
10754     l_appraisal_value_tab l_appraisal_value_type;
10755     l_residual_value_tab l_residual_value_type;
10756     l_percent_tab l_percent_type;
10757     l_coverage_tab l_coverage_type;
10758     l_lrv_amount_tab l_lrv_amount_type;
10759     l_amount_tab l_amount_type;
10760     -- Bug 12938353 : RGOOTY: Start
10761     l_origination_income_tab l_origination_income_type;
10762     -- Bug 12938353 : RGOOTY: End
10763     l_lrs_percent_tab l_lrs_percent_type;
10764     l_evergreen_percent_tab l_evergreen_percent_type;
10765     l_percent_stake_tab l_percent_stake_type;
10766     l_amount_stake_tab l_amount_stake_type;
10767     l_date_sold_tab l_date_sold_type;
10768     l_sty_id_for_tab l_sty_id_for_type;
10769     l_attribute_category_tab l_attribute_category_type;
10770     l_attribute1_tab l_attribute1_type;
10771     l_attribute2_tab l_attribute2_type;
10772     l_attribute3_tab l_attribute3_type;
10773     l_attribute4_tab l_attribute4_type;
10774     l_attribute5_tab l_attribute5_type;
10775     l_attribute6_tab l_attribute6_type;
10776     l_attribute7_tab l_attribute7_type;
10777     l_attribute8_tab l_attribute8_type;
10778     l_attribute9_tab l_attribute9_type;
10779     l_attribute10_tab l_attribute10_type;
10780     l_attribute11_tab l_attribute11_type;
10781     l_attribute12_tab l_attribute12_type;
10782     l_attribute13_tab l_attribute13_type;
10783     l_attribute14_tab l_attribute14_type;
10784     l_attribute15_tab l_attribute15_type;
10785     l_created_by_tab l_created_by_type;
10786     l_creation_date_tab l_creation_date_type;
10787     l_last_updated_by_tab l_last_updated_by_type;
10788     l_last_update_date_tab l_last_update_date_type;
10789     l_last_update_login_tab l_last_update_login_type;
10790     l_nty_code_tab l_nty_code_type;
10791     l_fcg_code_tab l_fcg_code_type;
10792     l_prc_code_tab l_prc_code_type;
10793     l_re_lease_yn_tab l_re_lease_yn_type;
10794     l_prescribed_asset_yn_tab l_prescribed_asset_yn_type;
10795     l_credit_tenant_yn_tab l_credit_tenant_yn_type;
10796     l_secured_deal_yn_tab l_secured_deal_yn_type;
10797     l_clg_id_tab l_clg_id_type;
10798     l_date_funding_tab l_date_funding_type;
10799     l_date_funding_required_tab l_date_funding_required_type;
10800     l_date_accepted_tab l_date_accepted_type;
10801     l_date_delivery_expected_tab l_date_delivery_expected_type;
10802     l_oec_tab l_oec_type;
10803     l_capital_amount_tab l_capital_amount_type;
10804     l_residual_grnty_amount_tab l_residual_grnty_amount_type;
10805     l_residual_code_tab l_residual_code_type;
10806     l_rvi_premium_tab l_rvi_premium_type;
10807     l_credit_nature_tab l_credit_nature_type;
10808     l_capitalized_interest_tab l_capitalized_interest_type;
10809     l_capital_reduction_perce_tab l_capital_reduction_perce_type;
10810     l_date_pay_investor_start_tab l_date_pay_investor_start_type;
10811     l_pay_investor_frequency_tab l_pay_investor_frequency_type;
10812     l_pay_investor_event_tab l_pay_investor_event_type;
10813     l_pay_investor_remit_days_tab l_pay_investor_remit_days_type;
10814     l_fee_type_tab l_fee_type_type;
10815     l_subsidy_id_tab l_subsidy_id_type;
10816     l_subsidy_override_amount_tab l_subsidy_override_amount_type;
10817     l_pre_tax_yield_tab l_pre_tax_yield_type;
10818     l_after_tax_yield_tab l_after_tax_yield_type;
10819     l_implicit_interest_rate_tab l_implicit_interest_rate_type;
10820     l_implicit_non_idc_i_rate_tab l_implicit_non_idc_i_rate_type;
10821     l_pre_tax_irr_tab l_pre_tax_irr_type;
10822     l_after_tax_irr_tab l_after_tax_irr_type;
10823     l_sub_pre_tax_yield_tab l_sub_pre_tax_yield_type;
10824     l_sub_after_tax_yield_tab l_sub_after_tax_yield_type;
10825     l_sub_impl_interest_rate_tab l_sub_impl_interest_rate_type;
10826     l_sub_impl_non_idc_int_ra_tab l_sub_impl_non_idc_int_ra_type;
10827     l_sub_pre_tax_irr_tab l_sub_pre_tax_irr_type;
10828     l_sub_after_tax_irr_tab l_sub_after_tax_irr_type;
10829     l_item_insurance_category_tab l_item_insurance_category_type;
10830     l_qte_id_tab l_qte_id_type;
10831     l_funding_date_tab l_funding_date_type;
10832     l_stream_type_subclass_tab l_stream_type_subclass_type;
10833     l_item_description_tab l_item_description_type;
10834     l_fee_purpose_code_tab l_fee_purpose_code_type;
10835     l_date_funding_expected_tab l_date_funding_expected_type;
10836     l_manufacturer_name_tab l_manufacturer_name_type;
10837     l_model_number_tab l_model_number_type;
10838     l_down_payment_recei_code_tab l_down_payment_recei_code_type;
10839     l_capitalize_down_paym_yn_tab l_capitalize_down_paym_yn_type;
10840 
10841     --sechawla 17-Jul-09 PRB ESG Enhancements : added new column ORIG_CONTRACT_LINE_ID in okl_k_lines
10842     l_ORIG_CONTRACT_LINE_ID_tab   l_ORIG_CONTRACT_LINE_ID_type;
10843 
10844 
10845     l_id_tab2 l_id_type;
10846     l_kle_id_tab2 l_kle_id_type;
10847     l_sty_id_tab2 l_sty_id_type;
10848     l_object_version_number_tab2 l_object_version_number_type;
10849     l_lao_amount_tab2 l_lao_amount_type;
10850     l_fee_charge_tab2 l_fee_charge_type;
10851     l_title_date_tab2 l_title_date_type;
10852     l_date_residual_last_revi_tab2 l_date_residual_last_revi_type;
10853     l_date_last_reamortisatio_tab2 l_date_last_reamortisatio_type;
10854     l_termination_purchase_am_tab2 l_termination_purchase_am_type;
10855     l_date_last_cleanup_tab2 l_date_last_cleanup_type;
10856     l_remarketed_amount_tab2 l_remarketed_amount_type;
10857     l_date_remarketed_tab2 l_date_remarketed_type;
10858     l_remarket_margin_tab2 l_remarket_margin_type;
10859     l_repurchased_amount_tab2 l_repurchased_amount_type;
10860     l_date_repurchased_tab2 l_date_repurchased_type;
10861     l_gain_loss_tab2 l_gain_loss_type;
10862     l_floor_amount_tab2 l_floor_amount_type;
10863     l_previous_contract_tab2 l_previous_contract_type;
10864     l_tracked_residual_tab2 l_tracked_residual_type;
10865     l_date_title_received_tab2 l_date_title_received_type;
10866     l_estimated_oec_tab2 l_estimated_oec_type;
10867     l_residual_percentage_tab2 l_residual_percentage_type;
10868     l_capital_reduction_tab2 l_capital_reduction_type;
10869     l_vendor_advance_paid_tab2 l_vendor_advance_paid_type;
10870     l_tradein_amount_tab2 l_tradein_amount_type;
10871     l_delivered_date_tab2 l_delivered_date_type;
10872     l_year_of_manufacture_tab2 l_year_of_manufacture_type;
10873     l_initial_direct_cost_tab2 l_initial_direct_cost_type;
10874     l_occupancy_tab2 l_occupancy_type;
10875     l_date_last_inspection_tab2 l_date_last_inspection_type;
10876     l_date_next_inspection_du_tab2 l_date_next_inspection_du_type;
10877     l_weighted_average_life_tab2 l_weighted_average_life_type;
10878     l_bond_equivalent_yield_tab2 l_bond_equivalent_yield_type;
10879     l_refinance_amount_tab2 l_refinance_amount_type;
10880     l_year_built_tab2 l_year_built_type;
10881     l_coverage_ratio_tab2 l_coverage_ratio_type;
10882     l_gross_square_footage_tab2 l_gross_square_footage_type;
10883     l_net_rentable_tab2 l_net_rentable_type;
10884     l_date_letter_acceptance_tab2 l_date_letter_acceptance_type;
10885     l_date_commitment_expirat_tab2 l_date_commitment_expirat_type;
10886     l_date_appraisal_tab2 l_date_appraisal_type;
10887     l_appraisal_value_tab2 l_appraisal_value_type;
10888     l_residual_value_tab2 l_residual_value_type;
10889     l_percent_tab2 l_percent_type;
10890     l_coverage_tab2 l_coverage_type;
10891     l_lrv_amount_tab2 l_lrv_amount_type;
10892     l_amount_tab2 l_amount_type;
10893     -- Bug 12938353 : RGOOTY: Start
10894     l_origination_income_tab2 l_origination_income_type;
10895     -- Bug 12938353 : RGOOTY: End
10896     l_lrs_percent_tab2 l_lrs_percent_type;
10897     l_evergreen_percent_tab2 l_evergreen_percent_type;
10898     l_percent_stake_tab2 l_percent_stake_type;
10899     l_amount_stake_tab2 l_amount_stake_type;
10900     l_date_sold_tab2 l_date_sold_type;
10901     l_sty_id_for_tab2 l_sty_id_for_type;
10902     l_attribute_category_tab2 l_attribute_category_type;
10903     l_attribute1_tab2 l_attribute1_type;
10904     l_attribute2_tab2 l_attribute2_type;
10905     l_attribute3_tab2 l_attribute3_type;
10906     l_attribute4_tab2 l_attribute4_type;
10907     l_attribute5_tab2 l_attribute5_type;
10908     l_attribute6_tab2 l_attribute6_type;
10909     l_attribute7_tab2 l_attribute7_type;
10910     l_attribute8_tab2 l_attribute8_type;
10911     l_attribute9_tab2 l_attribute9_type;
10912     l_attribute10_tab2 l_attribute10_type;
10913     l_attribute11_tab2 l_attribute11_type;
10914     l_attribute12_tab2 l_attribute12_type;
10915     l_attribute13_tab2 l_attribute13_type;
10916     l_attribute14_tab2 l_attribute14_type;
10917     l_attribute15_tab2 l_attribute15_type;
10918     l_created_by_tab2 l_created_by_type;
10919     l_creation_date_tab2 l_creation_date_type;
10920     l_last_updated_by_tab2 l_last_updated_by_type;
10921     l_last_update_date_tab2 l_last_update_date_type;
10922     l_last_update_login_tab2 l_last_update_login_type;
10923     l_nty_code_tab2 l_nty_code_type;
10924     l_fcg_code_tab2 l_fcg_code_type;
10925     l_prc_code_tab2 l_prc_code_type;
10926     l_re_lease_yn_tab2 l_re_lease_yn_type;
10927     l_prescribed_asset_yn_tab2 l_prescribed_asset_yn_type;
10928     l_credit_tenant_yn_tab2 l_credit_tenant_yn_type;
10929     l_secured_deal_yn_tab2 l_secured_deal_yn_type;
10930     l_clg_id_tab2 l_clg_id_type;
10931     l_date_funding_tab2 l_date_funding_type;
10932     l_date_funding_required_tab2 l_date_funding_required_type;
10933     l_date_accepted_tab2 l_date_accepted_type;
10934     l_date_delivery_expected_tab2 l_date_delivery_expected_type;
10935     l_oec_tab2 l_oec_type;
10936     l_capital_amount_tab2 l_capital_amount_type;
10937     l_residual_grnty_amount_tab2 l_residual_grnty_amount_type;
10938     l_residual_code_tab2 l_residual_code_type;
10939     l_rvi_premium_tab2 l_rvi_premium_type;
10940     l_credit_nature_tab2 l_credit_nature_type;
10941     l_capitalized_interest_tab2 l_capitalized_interest_type;
10942     l_capital_reduction_perce_tab2 l_capital_reduction_perce_type;
10943     l_date_pay_investor_start_tab2 l_date_pay_investor_start_type;
10944     l_pay_investor_frequency_tab2 l_pay_investor_frequency_type;
10945     l_pay_investor_event_tab2 l_pay_investor_event_type;
10946     l_pay_investor_remit_days_tab2 l_pay_investor_remit_days_type;
10947     l_fee_type_tab2 l_fee_type_type;
10948     l_subsidy_id_tab2 l_subsidy_id_type;
10949     l_subsidy_override_amount_tab2 l_subsidy_override_amount_type;
10950     l_pre_tax_yield_tab2 l_pre_tax_yield_type;
10951     l_after_tax_yield_tab2 l_after_tax_yield_type;
10952     l_implicit_interest_rate_tab2 l_implicit_interest_rate_type;
10953     l_implicit_non_idc_i_rate_tab2 l_implicit_non_idc_i_rate_type;
10954     l_pre_tax_irr_tab2 l_pre_tax_irr_type;
10955     l_after_tax_irr_tab2 l_after_tax_irr_type;
10956     l_sub_pre_tax_yield_tab2 l_sub_pre_tax_yield_type;
10957     l_sub_after_tax_yield_tab2 l_sub_after_tax_yield_type;
10958     l_sub_impl_interest_rate_tab2 l_sub_impl_interest_rate_type;
10959     l_sub_impl_non_idc_int_ra_tab2 l_sub_impl_non_idc_int_ra_type;
10960     l_sub_pre_tax_irr_tab2 l_sub_pre_tax_irr_type;
10961     l_sub_after_tax_irr_tab2 l_sub_after_tax_irr_type;
10962     l_item_insurance_category_tab2 l_item_insurance_category_type;
10963     l_qte_id_tab2 l_qte_id_type;
10964     l_funding_date_tab2 l_funding_date_type;
10965     l_stream_type_subclass_tab2 l_stream_type_subclass_type;
10966     l_lse_id_tab2 l_lse_id_type;
10967     l_item_description_tab2 l_item_description_type;
10968     l_fee_purpose_code_tab2 l_fee_purpose_code_type;
10969     l_date_funding_expected_tab2 l_date_funding_expected_type;
10970     l_manufacturer_name_tab2 l_manufacturer_name_type;
10971     l_model_number_tab2 l_model_number_type;
10972     l_down_payment_recei_code_tab2 l_down_payment_recei_code_type;
10973     l_capitalize_down_paym_yn_tab2 l_capitalize_down_paym_yn_type;
10974 
10975     --sechawla 17-Jul-09 PRB ESG Enhancements : added new column ORIG_CONTRACT_LINE_ID in okl_k_lines
10976     l_ORIG_CONTRACT_LINE_ID_tab2   l_ORIG_CONTRACT_LINE_ID_type;
10977 
10978   l_new_id NUMBER;
10979   l_new_kle_id NUMBER;
10980   l_curr_id NUMBER;
10981   l_asset_category_id NUMBER;
10982   l_34_id NUMBER;
10983 --l_okl_k_lines_rec2 lines_tbl_type;
10984 
10985 BEGIN
10986   IF (G_DEBUG_ENABLED = 'Y') THEN
10987     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
10988   END IF;
10989   NULL;
10990   OPEN c8(p_chr_id);
10991   LOOP
10992     FETCH c8 bulk collect INTO
10993       l_id_tab2, l_kle_id_tab2, l_sty_id_tab2,
10994       l_object_version_number_tab2, l_lao_amount_tab2, l_fee_charge_tab2,
10995       l_title_date_tab2, l_date_residual_last_revi_tab2, l_date_last_reamortisatio_tab2,
10996       l_termination_purchase_am_tab2, l_date_last_cleanup_tab2, l_remarketed_amount_tab2,
10997       l_date_remarketed_tab2, l_remarket_margin_tab2, l_repurchased_amount_tab2,
10998       l_date_repurchased_tab2, l_gain_loss_tab2, l_floor_amount_tab2,
10999       l_previous_contract_tab2, l_tracked_residual_tab2, l_date_title_received_tab2,
11000       l_estimated_oec_tab2, l_residual_percentage_tab2, l_capital_reduction_tab2,
11001       l_vendor_advance_paid_tab2, l_tradein_amount_tab2, l_delivered_date_tab2,
11002       l_year_of_manufacture_tab2, l_initial_direct_cost_tab2, l_occupancy_tab2,
11003       l_date_last_inspection_tab2, l_date_next_inspection_du_tab2, l_weighted_average_life_tab2,
11004       l_bond_equivalent_yield_tab2, l_refinance_amount_tab2, l_year_built_tab2,
11005       l_coverage_ratio_tab2, l_gross_square_footage_tab2, l_net_rentable_tab2,
11006       l_date_letter_acceptance_tab2, l_date_commitment_expirat_tab2, l_date_appraisal_tab2,
11007       l_appraisal_value_tab2, l_residual_value_tab2, l_percent_tab2,
11008       l_coverage_tab2, l_lrv_amount_tab2, l_amount_tab2,
11009       l_lrs_percent_tab2, l_evergreen_percent_tab2, l_percent_stake_tab2,
11010       l_amount_stake_tab2, l_date_sold_tab2, l_sty_id_for_tab2,
11011       l_attribute_category_tab2, l_attribute1_tab2, l_attribute2_tab2,
11012       l_attribute3_tab2, l_attribute4_tab2, l_attribute5_tab2,
11013       l_attribute6_tab2, l_attribute7_tab2, l_attribute8_tab2,
11014       l_attribute9_tab2, l_attribute10_tab2, l_attribute11_tab2,
11015       l_attribute12_tab2, l_attribute13_tab2, l_attribute14_tab2,
11016       l_attribute15_tab2, l_created_by_tab2, l_creation_date_tab2,
11017       l_last_updated_by_tab2, l_last_update_date_tab2, l_last_update_login_tab2,
11018       l_nty_code_tab2, l_fcg_code_tab2, l_prc_code_tab2,
11019       l_re_lease_yn_tab2, l_prescribed_asset_yn_tab2, l_credit_tenant_yn_tab2,
11020       l_secured_deal_yn_tab2, l_clg_id_tab2, l_date_funding_tab2,
11021       l_date_funding_required_tab2, l_date_accepted_tab2, l_date_delivery_expected_tab2,
11022       l_oec_tab2, l_capital_amount_tab2, l_residual_grnty_amount_tab2,
11023       l_residual_code_tab2, l_rvi_premium_tab2, l_credit_nature_tab2,
11024       l_capitalized_interest_tab2, l_capital_reduction_perce_tab2, l_date_pay_investor_start_tab2,
11025       l_pay_investor_frequency_tab2, l_pay_investor_event_tab2, l_pay_investor_remit_days_tab2,
11026       l_fee_type_tab2, l_subsidy_id_tab2, l_subsidy_override_amount_tab2,
11027       l_pre_tax_yield_tab2, l_after_tax_yield_tab2, l_implicit_interest_rate_tab2,
11028       l_implicit_non_idc_i_rate_tab2, l_pre_tax_irr_tab2, l_after_tax_irr_tab2,
11029       l_sub_pre_tax_yield_tab2, l_sub_after_tax_yield_tab2, l_sub_impl_interest_rate_tab2,
11030       l_sub_impl_non_idc_int_ra_tab2, l_sub_pre_tax_irr_tab2, l_sub_after_tax_irr_tab2,
11031       l_item_insurance_category_tab2, l_qte_id_tab2, l_funding_date_tab2,
11032       l_stream_type_subclass_tab2, l_lse_id_tab2, l_item_description_tab2,
11033       l_fee_purpose_code_tab2, l_date_funding_expected_tab2, l_manufacturer_name_tab2,
11034       l_model_number_tab2, l_down_payment_recei_code_tab2, l_capitalize_down_paym_yn_tab2,
11035 
11036       --sechawla 17-Jul-09 PRB ESG Enhancements : added new column ORIG_CONTRACT_LINE_ID in okl_k_lines
11037       l_ORIG_CONTRACT_LINE_ID_tab2
11038       -- Bug 12938353 : RGOOTY: Start
11039       ,l_origination_income_tab2
11040       -- Bug 12938353 : RGOOTY: End
11041     limit G_BULK_SIZE;
11042     EXIT WHEN l_id_tab2.COUNT = 0;
11043 
11044     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11045           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_id_tab2.count=' || l_id_tab2.COUNT);
11046     END IF;
11047     FOR i IN l_id_tab2.first..l_id_tab2.last
11048     LOOP
11049 
11050       --print('Processing record ' || i);
11051       l_id_tab(l_okl_k_lines_counter) := l_id_tab2(i);
11052       -- Change id
11053       --print('l_okl_k_lines_counter='|| l_okl_k_lines_counter || ' id=' || l_id_tab(l_okl_k_lines_counter));
11054       l_new_id := find_mapping_id(l_id_tab(l_okl_k_lines_counter));
11055       IF (l_new_id = -1) THEN
11056         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11057                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR : Mapping id not found for ' || l_id_tab(l_okl_k_lines_counter));
11058         END IF;
11059         RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11060         --raise_application_error(-20001, 'Can not find mapping id');
11061       END IF;
11062       l_id_tab(l_okl_k_lines_counter) := l_new_id;
11063       l_osid_mapping_tab(l_okl_k_lines_counter).id := l_id_tab(l_okl_k_lines_counter);
11064 
11065       l_kle_id_tab(l_okl_k_lines_counter) := l_kle_id_tab2(i);
11066       -- Change kle_id ??? AKP. No, Leave it alone
11067       /*if (l_kle_id_tab(l_okl_k_lines_counter) is not null) then
11068         l_new_kle_id := find_mapping_id(l_kle_id_tab(l_okl_k_lines_counter));
11069         if (l_new_kle_id = -1) then
11070           print('ERROR : Mapping kle_id not found for ' || l_kle_id_tab(l_okl_k_lines_counter));
11071           raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11072         end if;
11073         l_kle_id_tab(l_okl_k_lines_counter) := l_new_kle_id;
11074       end if; */
11075 
11076       --print('Before assigning sty_id');
11077       l_sty_id_tab(l_okl_k_lines_counter) := l_sty_id_tab2(i);
11078       l_object_version_number_tab(l_okl_k_lines_counter) := l_object_version_number_tab2(i);
11079       l_lao_amount_tab(l_okl_k_lines_counter) := l_lao_amount_tab2(i);
11080       l_fee_charge_tab(l_okl_k_lines_counter) := l_fee_charge_tab2(i);
11081       l_title_date_tab(l_okl_k_lines_counter) := l_title_date_tab2(i);
11082       l_date_residual_last_revi_tab(l_okl_k_lines_counter) := l_date_residual_last_revi_tab2(i);
11083       l_date_last_reamortisatio_tab(l_okl_k_lines_counter) := l_date_last_reamortisatio_tab2(i);
11084       l_termination_purchase_am_tab(l_okl_k_lines_counter) := l_termination_purchase_am_tab2(i);
11085       l_date_last_cleanup_tab(l_okl_k_lines_counter) := l_date_last_cleanup_tab2(i);
11086       l_remarketed_amount_tab(l_okl_k_lines_counter) := l_remarketed_amount_tab2(i);
11087       l_date_remarketed_tab(l_okl_k_lines_counter) := l_date_remarketed_tab2(i);
11088       l_remarket_margin_tab(l_okl_k_lines_counter) := l_remarket_margin_tab2(i);
11089       l_repurchased_amount_tab(l_okl_k_lines_counter) := l_repurchased_amount_tab2(i);
11090       l_date_repurchased_tab(l_okl_k_lines_counter) := l_date_repurchased_tab2(i);
11091       l_gain_loss_tab(l_okl_k_lines_counter) := l_gain_loss_tab2(i);
11092       l_floor_amount_tab(l_okl_k_lines_counter) := l_floor_amount_tab2(i);
11093       l_previous_contract_tab(l_okl_k_lines_counter) := l_previous_contract_tab2(i);
11094       l_tracked_residual_tab(l_okl_k_lines_counter) := l_tracked_residual_tab2(i);
11095       l_date_title_received_tab(l_okl_k_lines_counter) := l_date_title_received_tab2(i);
11096       l_estimated_oec_tab(l_okl_k_lines_counter) := l_estimated_oec_tab2(i);
11097       l_residual_percentage_tab(l_okl_k_lines_counter) := l_residual_percentage_tab2(i);
11098       l_capital_reduction_tab(l_okl_k_lines_counter) := l_capital_reduction_tab2(i);
11099       l_vendor_advance_paid_tab(l_okl_k_lines_counter) := l_vendor_advance_paid_tab2(i);
11100       l_tradein_amount_tab(l_okl_k_lines_counter) := l_tradein_amount_tab2(i);
11101       l_delivered_date_tab(l_okl_k_lines_counter) := l_delivered_date_tab2(i);
11102       l_year_of_manufacture_tab(l_okl_k_lines_counter) := l_year_of_manufacture_tab2(i);
11103       l_initial_direct_cost_tab(l_okl_k_lines_counter) := l_initial_direct_cost_tab2(i);
11104       l_occupancy_tab(l_okl_k_lines_counter) := l_occupancy_tab2(i);
11105       l_date_last_inspection_tab(l_okl_k_lines_counter) := l_date_last_inspection_tab2(i);
11106       l_date_next_inspection_du_tab(l_okl_k_lines_counter) := l_date_next_inspection_du_tab2(i);
11107       l_weighted_average_life_tab(l_okl_k_lines_counter) := l_weighted_average_life_tab2(i);
11108       l_bond_equivalent_yield_tab(l_okl_k_lines_counter) := l_bond_equivalent_yield_tab2(i);
11109       l_refinance_amount_tab(l_okl_k_lines_counter) := l_refinance_amount_tab2(i);
11110       l_year_built_tab(l_okl_k_lines_counter) := l_year_built_tab2(i);
11111       l_coverage_ratio_tab(l_okl_k_lines_counter) := l_coverage_ratio_tab2(i);
11112       l_gross_square_footage_tab(l_okl_k_lines_counter) := l_gross_square_footage_tab2(i);
11113       l_net_rentable_tab(l_okl_k_lines_counter) := l_net_rentable_tab2(i);
11114       l_date_letter_acceptance_tab(l_okl_k_lines_counter) := l_date_letter_acceptance_tab2(i);
11115       l_date_commitment_expirat_tab(l_okl_k_lines_counter) := l_date_commitment_expirat_tab2(i);
11116       l_date_appraisal_tab(l_okl_k_lines_counter) := l_date_appraisal_tab2(i);
11117       l_appraisal_value_tab(l_okl_k_lines_counter) := l_appraisal_value_tab2(i);
11118       l_residual_value_tab(l_okl_k_lines_counter) := l_residual_value_tab2(i);
11119       l_percent_tab(l_okl_k_lines_counter) := l_percent_tab2(i);
11120       l_coverage_tab(l_okl_k_lines_counter) := l_coverage_tab2(i);
11121       l_lrv_amount_tab(l_okl_k_lines_counter) := l_lrv_amount_tab2(i);
11122       l_amount_tab(l_okl_k_lines_counter) := l_amount_tab2(i);
11123       -- Bug 12938353 : RGOOTY: Start
11124       l_origination_income_tab(l_okl_k_lines_counter) := l_origination_income_tab2(i);
11125       -- Bug 12938353 : RGOOTY: End
11126       l_lrs_percent_tab(l_okl_k_lines_counter) := l_lrs_percent_tab2(i);
11127       l_evergreen_percent_tab(l_okl_k_lines_counter) := l_evergreen_percent_tab2(i);
11128       l_percent_stake_tab(l_okl_k_lines_counter) := l_percent_stake_tab2(i);
11129       l_amount_stake_tab(l_okl_k_lines_counter) := l_amount_stake_tab2(i);
11130       l_date_sold_tab(l_okl_k_lines_counter) := l_date_sold_tab2(i);
11131       l_sty_id_for_tab(l_okl_k_lines_counter) := l_sty_id_for_tab2(i);
11132       l_attribute_category_tab(l_okl_k_lines_counter) := l_attribute_category_tab2(i);
11133       l_attribute1_tab(l_okl_k_lines_counter) := l_attribute1_tab2(i);
11134       l_attribute2_tab(l_okl_k_lines_counter) := l_attribute2_tab2(i);
11135       l_attribute3_tab(l_okl_k_lines_counter) := l_attribute3_tab2(i);
11136       l_attribute4_tab(l_okl_k_lines_counter) := l_attribute4_tab2(i);
11137       l_attribute5_tab(l_okl_k_lines_counter) := l_attribute5_tab2(i);
11138       l_attribute6_tab(l_okl_k_lines_counter) := l_attribute6_tab2(i);
11139       l_attribute7_tab(l_okl_k_lines_counter) := l_attribute7_tab2(i);
11140       l_attribute8_tab(l_okl_k_lines_counter) := l_attribute8_tab2(i);
11141       l_attribute9_tab(l_okl_k_lines_counter) := l_attribute9_tab2(i);
11142       l_attribute10_tab(l_okl_k_lines_counter) := l_attribute10_tab2(i);
11143       l_attribute11_tab(l_okl_k_lines_counter) := l_attribute11_tab2(i);
11144       l_attribute12_tab(l_okl_k_lines_counter) := l_attribute12_tab2(i);
11145       l_attribute13_tab(l_okl_k_lines_counter) := l_attribute13_tab2(i);
11146       l_attribute14_tab(l_okl_k_lines_counter) := l_attribute14_tab2(i);
11147       l_attribute15_tab(l_okl_k_lines_counter) := l_attribute15_tab2(i);
11148       l_created_by_tab(l_okl_k_lines_counter) := l_created_by_tab2(i);
11149       l_creation_date_tab(l_okl_k_lines_counter) := l_creation_date_tab2(i);
11150       l_last_updated_by_tab(l_okl_k_lines_counter) := l_last_updated_by_tab2(i);
11151       l_last_update_date_tab(l_okl_k_lines_counter) := l_last_update_date_tab2(i);
11152       l_last_update_login_tab(l_okl_k_lines_counter) := l_last_update_login_tab2(i);
11153       l_nty_code_tab(l_okl_k_lines_counter) := l_nty_code_tab2(i);
11154       l_fcg_code_tab(l_okl_k_lines_counter) := l_fcg_code_tab2(i);
11155       l_prc_code_tab(l_okl_k_lines_counter) := l_prc_code_tab2(i);
11156 
11157       -- Bug #15992711 - Start of modifications
11158       -- Bug #16464698
11159       IF p_trans_type = 'CRL' AND (l_lse_id_tab2(i)=33) THEN
11160             l_re_lease_yn_tab(l_okl_k_lines_counter) := 'Y';
11161       ELSIF p_trans_type = 'CRB' THEN
11162            l_re_lease_yn_tab(l_okl_k_lines_counter) := l_re_lease_yn_tab2(i);
11163       ELSE
11164             l_re_lease_yn_tab(l_okl_k_lines_counter) := NULL;
11165       END IF;
11166       -- Bug #16464698
11167       --l_re_lease_yn_tab(l_okl_k_lines_counter) := l_re_lease_yn_tab2(i);
11168       -- Bug #15992711 - End of modifications
11169 
11170       l_prescribed_asset_yn_tab(l_okl_k_lines_counter) := l_prescribed_asset_yn_tab2(i);
11171       l_credit_tenant_yn_tab(l_okl_k_lines_counter) := l_credit_tenant_yn_tab2(i);
11172       l_secured_deal_yn_tab(l_okl_k_lines_counter) := l_secured_deal_yn_tab2(i);
11173       l_clg_id_tab(l_okl_k_lines_counter) := l_clg_id_tab2(i);
11174       l_date_funding_tab(l_okl_k_lines_counter) := l_date_funding_tab2(i);
11175       l_date_funding_required_tab(l_okl_k_lines_counter) := l_date_funding_required_tab2(i);
11176       l_date_accepted_tab(l_okl_k_lines_counter) := l_date_accepted_tab2(i);
11177       l_date_delivery_expected_tab(l_okl_k_lines_counter) := l_date_delivery_expected_tab2(i);
11178       l_oec_tab(l_okl_k_lines_counter) := l_oec_tab2(i);
11179       l_capital_amount_tab(l_okl_k_lines_counter) := l_capital_amount_tab2(i);
11180       l_residual_grnty_amount_tab(l_okl_k_lines_counter) := l_residual_grnty_amount_tab2(i);
11181       l_residual_code_tab(l_okl_k_lines_counter) := l_residual_code_tab2(i);
11182       l_rvi_premium_tab(l_okl_k_lines_counter) := l_rvi_premium_tab2(i);
11183       l_credit_nature_tab(l_okl_k_lines_counter) := l_credit_nature_tab2(i);
11184       l_capitalized_interest_tab(l_okl_k_lines_counter) := l_capitalized_interest_tab2(i);
11185       l_capital_reduction_perce_tab(l_okl_k_lines_counter) := l_capital_reduction_perce_tab2(i);
11186       l_date_pay_investor_start_tab(l_okl_k_lines_counter) := l_date_pay_investor_start_tab2(i);
11187       l_pay_investor_frequency_tab(l_okl_k_lines_counter) := l_pay_investor_frequency_tab2(i);
11188       l_pay_investor_event_tab(l_okl_k_lines_counter) := l_pay_investor_event_tab2(i);
11189       l_pay_investor_remit_days_tab(l_okl_k_lines_counter) := l_pay_investor_remit_days_tab2(i);
11190       l_fee_type_tab(l_okl_k_lines_counter) := l_fee_type_tab2(i);
11191       l_subsidy_id_tab(l_okl_k_lines_counter) := l_subsidy_id_tab2(i);
11192       -- Store subsidy id in global
11193       l_osid_mapping_tab(l_okl_k_lines_counter).subsidy_id := l_subsidy_id_tab2(i);
11194       l_subsidy_override_amount_tab(l_okl_k_lines_counter) := l_subsidy_override_amount_tab2(i);
11195       l_pre_tax_yield_tab(l_okl_k_lines_counter) := l_pre_tax_yield_tab2(i);
11196       l_after_tax_yield_tab(l_okl_k_lines_counter) := l_after_tax_yield_tab2(i);
11197       l_implicit_interest_rate_tab(l_okl_k_lines_counter) := l_implicit_interest_rate_tab2(i);
11198       l_implicit_non_idc_i_rate_tab(l_okl_k_lines_counter) := l_implicit_non_idc_i_rate_tab2(i);
11199       l_pre_tax_irr_tab(l_okl_k_lines_counter) := l_pre_tax_irr_tab2(i);
11200       l_after_tax_irr_tab(l_okl_k_lines_counter) := l_after_tax_irr_tab2(i);
11201       l_sub_pre_tax_yield_tab(l_okl_k_lines_counter) := l_sub_pre_tax_yield_tab2(i);
11202       l_sub_after_tax_yield_tab(l_okl_k_lines_counter) := l_sub_after_tax_yield_tab2(i);
11203       l_sub_impl_interest_rate_tab(l_okl_k_lines_counter) := l_sub_impl_interest_rate_tab2(i);
11204       l_sub_impl_non_idc_int_ra_tab(l_okl_k_lines_counter) := l_sub_impl_non_idc_int_ra_tab2(i);
11205       l_sub_pre_tax_irr_tab(l_okl_k_lines_counter) := l_sub_pre_tax_irr_tab2(i);
11206       l_sub_after_tax_irr_tab(l_okl_k_lines_counter) := l_sub_after_tax_irr_tab2(i);
11207 
11208       --sechawla 17-Jul-09 PRB ESG Enhancements : added new column ORIG_CONTRACT_LINE_ID in okl_k_lines
11209       IF p_trans_type = 'CRB' THEN -- assign ORIG_CONTRACT_LINE_ID only if it is a Rebook copy
11210          l_ORIG_CONTRACT_LINE_ID_tab(l_okl_k_lines_counter) := l_ORIG_CONTRACT_LINE_ID_tab2(i);
11211       ELSE
11212          l_ORIG_CONTRACT_LINE_ID_tab(l_okl_k_lines_counter) := NULL;
11213       END IF;
11214 
11215       IF ( (l_item_insurance_category_tab2(i) IS NULL) AND (l_lse_id_tab2(i)=33) ) THEN
11216         BEGIN
11217           l_curr_id := l_id_tab2(i);
11218           -- Get id for 34
11219           SELECT id INTO l_34_id
11220           FROM   okc_k_lines_b
11221           WHERE  cle_id = l_curr_id
11222           AND    lse_id = 34;
11223           -- Query from mtl_system_items
11224           SELECT a.asset_category_id
11225           INTO   l_asset_category_id
11226           FROM   mtl_system_items a,
11227                  okc_k_items b
11228           WHERE  a.inventory_item_id = TO_NUMBER(b.object1_id1)
11229           AND    a.organization_id = TO_NUMBER(b.object1_id2)
11230           AND    b.cle_id = l_34_id;
11231           --and    b.cle_id = l_curr_id;  previous wrong
11232           l_item_insurance_category_tab(l_okl_k_lines_counter) := l_asset_category_id;
11233           EXCEPTION WHEN OTHERS THEN
11234             l_item_insurance_category_tab(l_okl_k_lines_counter) := NULL;
11235         END;
11236       ELSE
11237         l_item_insurance_category_tab(l_okl_k_lines_counter) := l_item_insurance_category_tab2(i);
11238       END IF;
11239       --print('Before assigning qte_id');
11240       l_qte_id_tab(l_okl_k_lines_counter) := l_qte_id_tab2(i);
11241       l_funding_date_tab(l_okl_k_lines_counter) := l_funding_date_tab2(i);
11242       l_stream_type_subclass_tab(l_okl_k_lines_counter) := l_stream_type_subclass_tab2(i);
11243       l_item_description_tab(l_okl_k_lines_counter) := l_item_description_tab2(i);
11244       l_fee_purpose_code_tab(l_okl_k_lines_counter) := l_fee_purpose_code_tab2(i);
11245       l_date_funding_expected_tab(l_okl_k_lines_counter) := l_date_funding_expected_tab2(i);
11246       l_manufacturer_name_tab(l_okl_k_lines_counter) := l_manufacturer_name_tab2(i);
11247       l_model_number_tab(l_okl_k_lines_counter) := l_model_number_tab2(i);
11248       l_down_payment_recei_code_tab(l_okl_k_lines_counter) := l_down_payment_recei_code_tab2(i);
11249       l_capitalize_down_paym_yn_tab(l_okl_k_lines_counter) := l_capitalize_down_paym_yn_tab2(i);
11250 
11251       --print('Before assigning l_okl_k_lines_rec l_okl_k_lines_rec_counter='|| l_okl_k_lines_rec_counter || ' l_okl_k_lines_counter=' || l_okl_k_lines_counter);
11252 
11253       --print('l_id_tab(' || l_okl_k_lines_counter || ')=' || l_id_tab(l_okl_k_lines_counter));
11254       l_okl_k_lines_rec(l_okl_k_lines_rec_counter).id := l_id_tab(l_okl_k_lines_counter);
11255       --print('Before assigning l_okl_k_lines_rec 1');
11256       --print('l_oec_tab=' || l_oec_tab(l_okl_k_lines_counter));
11257       l_okl_k_lines_rec(l_okl_k_lines_rec_counter).oec := l_oec_tab(l_okl_k_lines_counter);
11258       --print('Before assigning l_okl_k_lines_rec 2');
11259       l_okl_k_lines_rec(l_okl_k_lines_rec_counter).year_built := l_year_built_tab(l_okl_k_lines_counter);
11260       --print('Before assigning l_okl_k_lines_rec 3');
11261       l_okl_k_lines_rec(l_okl_k_lines_rec_counter).item_description := l_item_description_tab(l_okl_k_lines_counter);
11262       l_okl_k_lines_rec_counter := l_okl_k_lines_rec_counter + 1;
11263 
11264       l_okl_k_lines_counter := l_okl_k_lines_counter + 1;
11265 
11266     END LOOP;
11267   END LOOP;
11268   CLOSE c8;
11269   sort_osid_mapping_tab;
11270   sort_okl_k_lines_rec;
11271 
11272   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11273       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_okl_k_lines_counter=' || l_okl_k_lines_counter || ' l_id_tab.count=' || l_id_tab.COUNT);
11274   END IF;
11275   IF (l_okl_k_lines_counter > 1) THEN
11276     --Bug# 16425139: Fixed population of WHO columns to not copy values from previous contract
11277     forall i IN l_id_tab.first..l_id_tab.last
11278       INSERT INTO okl_k_lines (
11279        id, kle_id, sty_id,
11280        object_version_number, lao_amount, fee_charge,
11281        title_date, date_residual_last_review, date_last_reamortisation,
11282        termination_purchase_amount, date_last_cleanup, remarketed_amount,
11283        date_remarketed, remarket_margin, repurchased_amount,
11284        date_repurchased, gain_loss, floor_amount,
11285        previous_contract, tracked_residual, date_title_received,
11286        estimated_oec, residual_percentage, capital_reduction,
11287        vendor_advance_paid, tradein_amount, delivered_date,
11288        year_of_manufacture, initial_direct_cost, occupancy,
11289        date_last_inspection, date_next_inspection_due, weighted_average_life,
11290        bond_equivalent_yield, refinance_amount, year_built,
11291        coverage_ratio, gross_square_footage, net_rentable,
11292        date_letter_acceptance, date_commitment_expiration, date_appraisal,
11293        appraisal_value, residual_value, percent,
11294        coverage, lrv_amount, amount,
11295        lrs_percent, evergreen_percent, percent_stake,
11296        amount_stake, date_sold, sty_id_for,
11297        attribute_category, attribute1, attribute2,
11298        attribute3, attribute4, attribute5,
11299        attribute6, attribute7, attribute8,
11300        attribute9, attribute10, attribute11,
11301        attribute12, attribute13, attribute14,
11302        attribute15, created_by, creation_date,
11303        last_updated_by, last_update_date, last_update_login,
11304        nty_code, fcg_code, prc_code,
11305        re_lease_yn, prescribed_asset_yn, credit_tenant_yn,
11306        secured_deal_yn, clg_id, date_funding,
11307        date_funding_required, date_accepted, date_delivery_expected,
11308        oec, capital_amount, residual_grnty_amount,
11309        residual_code, rvi_premium, credit_nature,
11310        capitalized_interest, capital_reduction_percent,date_pay_investor_start,
11311        pay_investor_frequency, pay_investor_event,pay_investor_remittance_days,
11312        fee_type, subsidy_id, subsidy_override_amount,
11313        pre_tax_yield, after_tax_yield, implicit_interest_rate,
11314        implicit_non_idc_interest_rate, pre_tax_irr, after_tax_irr,
11315        sub_pre_tax_yield, sub_after_tax_yield, sub_impl_interest_rate,
11316        sub_impl_non_idc_int_rate, sub_pre_tax_irr, sub_after_tax_irr,
11317        item_insurance_category, qte_id, funding_date,
11318        stream_type_subclass, fee_purpose_code, date_funding_expected,
11319        manufacturer_name, model_number, down_payment_receiver_code,
11320        capitalize_down_payment_yn,
11321        --sechawla 17-Jul-09 PRB ESG Enhancements : added new column ORIG_CONTRACT_LINE_ID in okl_k_lines
11322        ORIG_CONTRACT_LINE_ID
11323        ,ORIGINATION_INCOME  -- Bug 12938353
11324       ) VALUES (
11325      l_id_tab(i), l_kle_id_tab(i), l_sty_id_tab(i),
11326      l_object_version_number_tab(i), l_lao_amount_tab(i), l_fee_charge_tab(i),
11327      l_title_date_tab(i), l_date_residual_last_revi_tab(i), l_date_last_reamortisatio_tab(i),
11328      l_termination_purchase_am_tab(i), l_date_last_cleanup_tab(i), l_remarketed_amount_tab(i),
11329      l_date_remarketed_tab(i), l_remarket_margin_tab(i), l_repurchased_amount_tab(i),
11330      l_date_repurchased_tab(i), l_gain_loss_tab(i), l_floor_amount_tab(i),
11331      l_previous_contract_tab(i), l_tracked_residual_tab(i), l_date_title_received_tab(i),
11332      l_estimated_oec_tab(i), l_residual_percentage_tab(i), l_capital_reduction_tab(i),
11333      l_vendor_advance_paid_tab(i), l_tradein_amount_tab(i), l_delivered_date_tab(i),
11334      l_year_of_manufacture_tab(i), l_initial_direct_cost_tab(i), l_occupancy_tab(i),
11335      l_date_last_inspection_tab(i), l_date_next_inspection_du_tab(i), l_weighted_average_life_tab(i),
11336      l_bond_equivalent_yield_tab(i), l_refinance_amount_tab(i), l_year_built_tab(i),
11337      l_coverage_ratio_tab(i), l_gross_square_footage_tab(i), l_net_rentable_tab(i),
11338      l_date_letter_acceptance_tab(i), l_date_commitment_expirat_tab(i), l_date_appraisal_tab(i),
11339      l_appraisal_value_tab(i), l_residual_value_tab(i), l_percent_tab(i),
11340      l_coverage_tab(i), l_lrv_amount_tab(i), l_amount_tab(i),
11341      l_lrs_percent_tab(i), l_evergreen_percent_tab(i), l_percent_stake_tab(i),
11342      l_amount_stake_tab(i), l_date_sold_tab(i), l_sty_id_for_tab(i),
11343      l_attribute_category_tab(i), l_attribute1_tab(i), l_attribute2_tab(i),
11344      l_attribute3_tab(i), l_attribute4_tab(i), l_attribute5_tab(i),
11345      l_attribute6_tab(i), l_attribute7_tab(i), l_attribute8_tab(i),
11346      l_attribute9_tab(i), l_attribute10_tab(i), l_attribute11_tab(i),
11347      l_attribute12_tab(i), l_attribute13_tab(i), l_attribute14_tab(i),
11348      l_attribute15_tab(i), l_created_by, SYSDATE,
11349      l_last_updated_by, SYSDATE, l_last_update_login,
11350      l_nty_code_tab(i), l_fcg_code_tab(i), l_prc_code_tab(i),
11351      l_re_lease_yn_tab(i), l_prescribed_asset_yn_tab(i), l_credit_tenant_yn_tab(i),
11352      l_secured_deal_yn_tab(i), l_clg_id_tab(i), l_date_funding_tab(i),
11353      l_date_funding_required_tab(i), l_date_accepted_tab(i), l_date_delivery_expected_tab(i),
11354      l_oec_tab(i), l_capital_amount_tab(i), l_residual_grnty_amount_tab(i),
11355      l_residual_code_tab(i), l_rvi_premium_tab(i), l_credit_nature_tab(i),
11356      l_capitalized_interest_tab(i), l_capital_reduction_perce_tab(i), l_date_pay_investor_start_tab(i),
11357      l_pay_investor_frequency_tab(i), l_pay_investor_event_tab(i), l_pay_investor_remit_days_tab(i),
11358      l_fee_type_tab(i), l_subsidy_id_tab(i), l_subsidy_override_amount_tab(i),
11359      l_pre_tax_yield_tab(i), l_after_tax_yield_tab(i), l_implicit_interest_rate_tab(i),
11360      l_implicit_non_idc_i_rate_tab(i), l_pre_tax_irr_tab(i), l_after_tax_irr_tab(i),
11361      l_sub_pre_tax_yield_tab(i), l_sub_after_tax_yield_tab(i), l_sub_impl_interest_rate_tab(i),
11362      l_sub_impl_non_idc_int_ra_tab(i), l_sub_pre_tax_irr_tab(i), l_sub_after_tax_irr_tab(i),
11363      l_item_insurance_category_tab(i), l_qte_id_tab(i), l_funding_date_tab(i),
11364      l_stream_type_subclass_tab(i), l_fee_purpose_code_tab(i), l_date_funding_expected_tab(i),
11365      l_manufacturer_name_tab(i), l_model_number_tab(i), l_down_payment_recei_code_tab(i),
11366      l_capitalize_down_paym_yn_tab(i),
11367      --sechawla 17-Jul-09 PRB ESG Enhancements : added new column ORIG_CONTRACT_LINE_ID in okl_k_lines
11368      l_ORIG_CONTRACT_LINE_ID_tab(i)
11369      -- Bug 12938353 : RGOOTY: Start
11370      ,l_origination_income_tab(i)
11371      -- Bug 12938353 : RGOOTY: End
11372     );
11373   END IF;
11374 
11375 EXCEPTION WHEN OTHERS THEN
11376 
11377   x_return_status := OKL_API.G_RET_STS_ERROR;
11378   /*OKL_API.set_message(p_app_name => 'OKL',
11379                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
11380                       p_token1 => 'ASSET_NUMBER',
11381                       p_token1_value => 'insert_okl_k_lines');*/
11382     /* DEBUG */
11383   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11384       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
11385     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing insert_okl_k_lines:l_id_tab.count=' || l_id_tab.COUNT || ' ...');
11386   END IF;
11387   IF (l_id_tab.COUNT > 0) THEN
11388   FOR i IN l_id_tab.first..l_id_tab.last
11389   LOOP
11390     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11391           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_id_tab('||i||')=' || l_id_tab(i));
11392       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_kle_id_tab('||i||')=' || l_kle_id_tab(i));
11393       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sty_id_tab('||i||')=' || l_sty_id_tab(i));
11394       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_object_version_number_tab('||i||')=' || l_object_version_number_tab(i));
11395       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_lao_amount_tab('||i||')=' || l_lao_amount_tab(i));
11396       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_fee_charge_tab('||i||')=' || l_fee_charge_tab(i));
11397       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_title_date_tab('||i||')=' || l_title_date_tab(i));
11398       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_residual_last_revi_tab('||i||')=' || l_date_residual_last_revi_tab(i));
11399       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_last_reamortisatio_tab('||i||')=' || l_date_last_reamortisatio_tab(i));
11400       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_termination_purchase_am_tab('||i||')=' || l_termination_purchase_am_tab(i));
11401       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_last_cleanup_tab('||i||')=' || l_date_last_cleanup_tab(i));
11402       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_remarketed_amount_tab('||i||')=' || l_remarketed_amount_tab(i));
11403       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_remarketed_tab('||i||')=' || l_date_remarketed_tab(i));
11404       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_remarket_margin_tab('||i||')=' || l_remarket_margin_tab(i));
11405       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_repurchased_amount_tab('||i||')=' || l_repurchased_amount_tab(i));
11406       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_repurchased_tab('||i||')=' || l_date_repurchased_tab(i));
11407       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_gain_loss_tab('||i||')=' || l_gain_loss_tab(i));
11408       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_floor_amount_tab('||i||')=' || l_floor_amount_tab(i));
11409       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_previous_contract_tab('||i||')=' || l_previous_contract_tab(i));
11410       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tracked_residual_tab('||i||')=' || l_tracked_residual_tab(i));
11411       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_title_received_tab('||i||')=' || l_date_title_received_tab(i));
11412       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_estimated_oec_tab('||i||')=' || l_estimated_oec_tab(i));
11413       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_residual_percentage_tab('||i||')=' || l_residual_percentage_tab(i));
11414       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_capital_reduction_tab('||i||')=' || l_capital_reduction_tab(i));
11415       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_vendor_advance_paid_tab('||i||')=' || l_vendor_advance_paid_tab(i));
11416       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tradein_amount_tab('||i||')=' || l_tradein_amount_tab(i));
11417       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_delivered_date_tab('||i||')=' || l_delivered_date_tab(i));
11418       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_year_of_manufacture_tab('||i||')=' || l_year_of_manufacture_tab(i));
11419       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_initial_direct_cost_tab('||i||')=' || l_initial_direct_cost_tab(i));
11420       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_occupancy_tab('||i||')=' || l_occupancy_tab(i));
11421       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_last_inspection_tab('||i||')=' || l_date_last_inspection_tab(i));
11422       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_next_inspection_du_tab('||i||')=' || l_date_next_inspection_du_tab(i));
11423       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_weighted_average_life_tab('||i||')=' || l_weighted_average_life_tab(i));
11424       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_bond_equivalent_yield_tab('||i||')=' || l_bond_equivalent_yield_tab(i));
11425       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_refinance_amount_tab('||i||')=' || l_refinance_amount_tab(i));
11426       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_year_built_tab('||i||')=' || l_year_built_tab(i));
11427       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_coverage_ratio_tab('||i||')=' || l_coverage_ratio_tab(i));
11428       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_gross_square_footage_tab('||i||')=' || l_gross_square_footage_tab(i));
11429       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_net_rentable_tab('||i||')=' || l_net_rentable_tab(i));
11430       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_letter_acceptance_tab('||i||')=' || l_date_letter_acceptance_tab(i));
11431       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_commitment_expirat_tab('||i||')=' || l_date_commitment_expirat_tab(i));
11432       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_appraisal_tab('||i||')=' || l_date_appraisal_tab(i));
11433       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_appraisal_value_tab('||i||')=' || l_appraisal_value_tab(i));
11434       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_residual_value_tab('||i||')=' || l_residual_value_tab(i));
11435       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_percent_tab('||i||')=' || l_percent_tab(i));
11436       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_coverage_tab('||i||')=' || l_coverage_tab(i));
11437       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_lrv_amount_tab('||i||')=' || l_lrv_amount_tab(i));
11438       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_amount_tab('||i||')=' || l_amount_tab(i));
11439       -- Bug 12938353 : RGOOTY: Start
11440       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_origination_income_tab('||i||')=' || l_origination_income_tab(i));
11441       -- Bug 12938353 : RGOOTY: End
11442       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_lrs_percent_tab('||i||')=' || l_lrs_percent_tab(i));
11443       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_evergreen_percent_tab('||i||')=' || l_evergreen_percent_tab(i));
11444       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_percent_stake_tab('||i||')=' || l_percent_stake_tab(i));
11445       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_amount_stake_tab('||i||')=' || l_amount_stake_tab(i));
11446       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_sold_tab('||i||')=' || l_date_sold_tab(i));
11447       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sty_id_for_tab('||i||')=' || l_sty_id_for_tab(i));
11448       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute_category_tab('||i||')=' || l_attribute_category_tab(i));
11449       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute1_tab('||i||')=' || l_attribute1_tab(i));
11450       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute2_tab('||i||')=' || l_attribute2_tab(i));
11451       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute3_tab('||i||')=' || l_attribute3_tab(i));
11452       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute4_tab('||i||')=' || l_attribute4_tab(i));
11453       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute5_tab('||i||')=' || l_attribute5_tab(i));
11454       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute6_tab('||i||')=' || l_attribute6_tab(i));
11455       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute7_tab('||i||')=' || l_attribute7_tab(i));
11456       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute8_tab('||i||')=' || l_attribute8_tab(i));
11457       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute9_tab('||i||')=' || l_attribute9_tab(i));
11458       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute10_tab('||i||')=' || l_attribute10_tab(i));
11459       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute11_tab('||i||')=' || l_attribute11_tab(i));
11460       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute12_tab('||i||')=' || l_attribute12_tab(i));
11461       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute13_tab('||i||')=' || l_attribute13_tab(i));
11462       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute14_tab('||i||')=' || l_attribute14_tab(i));
11463       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute15_tab('||i||')=' || l_attribute15_tab(i));
11464       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_created_by_tab('||i||')=' || l_created_by_tab(i));
11465       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_creation_date_tab('||i||')=' || l_creation_date_tab(i));
11466       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_last_updated_by_tab('||i||')=' || l_last_updated_by_tab(i));
11467       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_last_update_date_tab('||i||')=' || l_last_update_date_tab(i));
11468       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_last_update_login_tab('||i||')=' || l_last_update_login_tab(i));
11469       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_nty_code_tab('||i||')=' || l_nty_code_tab(i));
11470       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_fcg_code_tab('||i||')=' || l_fcg_code_tab(i));
11471       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_prc_code_tab('||i||')=' || l_prc_code_tab(i));
11472       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_re_lease_yn_tab('||i||')=' || l_re_lease_yn_tab(i));
11473       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_prescribed_asset_yn_tab('||i||')=' || l_prescribed_asset_yn_tab(i));
11474       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_credit_tenant_yn_tab('||i||')=' || l_credit_tenant_yn_tab(i));
11475       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_secured_deal_yn_tab('||i||')=' || l_secured_deal_yn_tab(i));
11476       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_clg_id_tab('||i||')=' || l_clg_id_tab(i));
11477       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_funding_tab('||i||')=' || l_date_funding_tab(i));
11478       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_funding_required_tab('||i||')=' || l_date_funding_required_tab(i));
11479       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_accepted_tab('||i||')=' || l_date_accepted_tab(i));
11480       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_delivery_expected_tab('||i||')=' || l_date_delivery_expected_tab(i));
11481       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_oec_tab('||i||')=' || l_oec_tab(i));
11482       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_capital_amount_tab('||i||')=' || l_capital_amount_tab(i));
11483       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_residual_grnty_amount_tab('||i||')=' || l_residual_grnty_amount_tab(i));
11484       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_residual_code_tab('||i||')=' || l_residual_code_tab(i));
11485       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rvi_premium_tab('||i||')=' || l_rvi_premium_tab(i));
11486       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_credit_nature_tab('||i||')=' || l_credit_nature_tab(i));
11487       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_capitalized_interest_tab('||i||')=' || l_capitalized_interest_tab(i));
11488       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_capital_reduction_perce_tab('||i||')=' || l_capital_reduction_perce_tab(i));
11489       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_pay_investor_start_tab('||i||')=' || l_date_pay_investor_start_tab(i));
11490       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_pay_investor_frequency_tab('||i||')=' || l_pay_investor_frequency_tab(i));
11491       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_pay_investor_event_tab('||i||')=' || l_pay_investor_event_tab(i));
11492       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_pay_investor_remit_days_tab('||i||')=' || l_pay_investor_remit_days_tab(i));
11493       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_fee_type_tab('||i||')=' || l_fee_type_tab(i));
11494       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_subsidy_id_tab('||i||')=' || l_subsidy_id_tab(i));
11495       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_subsidy_override_amount_tab('||i||')=' || l_subsidy_override_amount_tab(i));
11496       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_pre_tax_yield_tab('||i||')=' || l_pre_tax_yield_tab(i));
11497       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_after_tax_yield_tab('||i||')=' || l_after_tax_yield_tab(i));
11498       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_implicit_interest_rate_tab('||i||')=' || l_implicit_interest_rate_tab(i));
11499       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_implicit_non_idc_i_rate_tab('||i||')=' || l_implicit_non_idc_i_rate_tab(i));
11500       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_pre_tax_irr_tab('||i||')=' || l_pre_tax_irr_tab(i));
11501       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_after_tax_irr_tab('||i||')=' || l_after_tax_irr_tab(i));
11502       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sub_pre_tax_yield_tab('||i||')=' || l_sub_pre_tax_yield_tab(i));
11503       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sub_after_tax_yield_tab('||i||')=' || l_sub_after_tax_yield_tab(i));
11504       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sub_impl_interest_rate_tab('||i||')=' || l_sub_impl_interest_rate_tab(i));
11505       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sub_impl_non_idc_int_ra_tab('||i||')=' || l_sub_impl_non_idc_int_ra_tab(i));
11506       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sub_pre_tax_irr_tab('||i||')=' || l_sub_pre_tax_irr_tab(i));
11507       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sub_after_tax_irr_tab('||i||')=' || l_sub_after_tax_irr_tab(i));
11508       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_item_insurance_category_tab('||i||')=' || l_item_insurance_category_tab(i));
11509       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_qte_id_tab('||i||')=' || l_qte_id_tab(i));
11510       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_funding_date_tab('||i||')=' || l_funding_date_tab(i));
11511       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_stream_type_subclass_tab('||i||')=' || l_stream_type_subclass_tab(i));
11512       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_fee_purpose_code_tab('||i||')=' || l_fee_purpose_code_tab(i));
11513       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_funding_expected_tab('||i||')=' || l_date_funding_expected_tab(i));
11514       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_manufacturer_name_tab('||i||')=' || l_manufacturer_name_tab(i));
11515       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_model_number_tab('||i||')=' || l_model_number_tab(i));
11516       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_down_payment_recei_code_tab('||i||')=' || l_down_payment_recei_code_tab(i));
11517       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_capitalize_down_paym_yn_tab('||i||')=' || l_capitalize_down_paym_yn_tab(i));
11518 
11519       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ORIG_CONTRACT_LINE_ID_tab('||i||')=' || l_ORIG_CONTRACT_LINE_ID_tab(i));
11520     END IF;
11521   END LOOP;
11522   END IF;
11523 
11524   RAISE OKC_API.G_EXCEPTION_ERROR;
11525 
11526 END;  /* insert_okl_k_lines */
11527 
11528 PROCEDURE do_sort_party_mapping_id IS
11529   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
11530   --a numtabtype;
11531   l_stack numtabtype;
11532   l_stack_index NUMBER := 0;
11533   N NUMBER;
11534   R NUMBER;
11535   L NUMBER;
11536   P NUMBER;
11537   W NUMBER;
11538   W2 NUMBER;
11539   X NUMBER;
11540   I NUMBER;
11541   J NUMBER;
11542 BEGIN
11543   IF (G_DEBUG_ENABLED = 'Y') THEN
11544     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
11545   END IF;
11546   NULL;
11547   /*a(1) := 10;
11548   a(2) := 50;
11549   a(3) := 27;
11550   a(4) := 5;
11551   a(5) := 100;
11552   a(6) := 50;
11553   a(7) := 35;
11554   a(8) := 41;
11555   a(9) := 75;
11556   a(10) := 20;
11557 
11558   N := 10;
11559   */
11560 
11561   N := l_party_counter - 1;
11562   IF (N < 2) THEN
11563     RETURN;
11564   END IF;
11565   l_stack_index := l_stack_index + 1;
11566   l_stack(l_stack_index) := 1;
11567   l_stack_index := l_stack_index + 1;
11568   l_stack(l_stack_index) := N;
11569 
11570   --dbms_output.put_line('l_stack_index=' || l_stack_index);
11571   WHILE l_stack_index > 0
11572   LOOP
11573     R := l_stack(l_stack_index);
11574     l_stack_index := l_stack_index - 1;
11575     L := l_stack(l_stack_index);
11576     l_stack_index := l_stack_index - 1;
11577     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
11578     WHILE 1=1
11579     LOOP -- loop until L >= R
11580       I := L;
11581       J := R;
11582       P := FLOOR((L+R)/2);
11583       --if (a(L) > a(P)) then
11584       IF (l_party_id_mapping_tab(L).old_id > l_party_id_mapping_tab(P).old_id)
11585       THEN
11586         /*W := a(L);
11587         a(L) := a(P);
11588         a(P) := W;*/
11589 
11590         W := l_party_id_mapping_tab(L).old_id;
11591         W2 := l_party_id_mapping_tab(L).new_id;
11592         l_party_id_mapping_tab(L).old_id :=l_party_id_mapping_tab(P).old_id;
11593         l_party_id_mapping_tab(L).new_id :=l_party_id_mapping_tab(P).new_id;
11594         l_party_id_mapping_tab(P).old_id := W;
11595         l_party_id_mapping_tab(P).new_id := W2;
11596       END IF;
11597       --if (a(L) > a(R)) then
11598       IF (l_party_id_mapping_tab(L).old_id > l_party_id_mapping_tab(R).old_id)
11599       THEN
11600         /*W := a(L);
11601         a(L) := a(R);
11602         a(R) := W;*/
11603         W := l_party_id_mapping_tab(L).old_id;
11604         W2 := l_party_id_mapping_tab(L).new_id;
11605         l_party_id_mapping_tab(L).old_id :=l_party_id_mapping_tab(R).old_id;
11606         l_party_id_mapping_tab(L).new_id :=l_party_id_mapping_tab(R).new_id;
11607         l_party_id_mapping_tab(R).old_id := W;
11608         l_party_id_mapping_tab(R).new_id := W2;
11609       END IF;
11610       --if (a(P) > a(R)) then
11611       IF (l_party_id_mapping_tab(P).old_id > l_party_id_mapping_tab(R).old_id)
11612       THEN
11613         /*W := a(P);
11614         a(P) := a(R);
11615         a(R) := W; */
11616         W := l_party_id_mapping_tab(P).old_id;
11617         W2 := l_party_id_mapping_tab(P).new_id;
11618         l_party_id_mapping_tab(P).old_id :=l_party_id_mapping_tab(R).old_id;
11619         l_party_id_mapping_tab(P).new_id :=l_party_id_mapping_tab(R).new_id;
11620         l_party_id_mapping_tab(R).old_id := W;
11621         l_party_id_mapping_tab(R).new_id := W2;
11622       END IF;
11623       --X := a(P);
11624       X := l_party_id_mapping_tab(P).old_id;
11625       WHILE 1=1
11626       LOOP    -- until I > J
11627         --while (a(I) < X) loop
11628         WHILE (l_party_id_mapping_tab(I).old_id < X) LOOP
11629           I := I + 1;
11630         END LOOP;
11631         WHILE (X < l_party_id_mapping_tab(J).old_id) LOOP
11632           J := J - 1;
11633         END LOOP;
11634         IF (I <= J) THEN
11635           /*W := a(I);
11636           a(I) := a(J);
11637           a(J) := W;*/
11638           W := l_party_id_mapping_tab(I).old_id;
11639           W2 := l_party_id_mapping_tab(I).new_id;
11640           l_party_id_mapping_tab(I).old_id :=l_party_id_mapping_tab(J).old_id;
11641           l_party_id_mapping_tab(I).new_id :=l_party_id_mapping_tab(J).new_id;
11642           l_party_id_mapping_tab(J).old_id := W;
11643           l_party_id_mapping_tab(J).new_id := W2;
11644           I := I + 1;
11645           J := J - 1;
11646         END IF;
11647         EXIT WHEN I > J;
11648       END LOOP;
11649       IF (J - L < R - I) THEN
11650         IF (I < R) THEN
11651           --push(I); push(R);
11652           l_stack_index := l_stack_index + 1;
11653           l_stack(l_stack_index) := I;
11654           l_stack_index := l_stack_index + 1;
11655           l_stack(l_stack_index) := R;
11656           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
11657         END IF;
11658         R := J;
11659       ELSE
11660         IF (L < J) THEN
11661           --push(L); push(J);
11662           l_stack_index := l_stack_index + 1;
11663           l_stack(l_stack_index) := L;
11664           l_stack_index := l_stack_index + 1;
11665           l_stack(l_stack_index) := J;
11666           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
11667         END IF;
11668         L := I;
11669       END IF;
11670 
11671       EXIT WHEN (L >= R);
11672     END LOOP;
11673   END LOOP;
11674 
11675 EXCEPTION WHEN OTHERS THEN
11676 
11677   x_return_status := OKL_API.G_RET_STS_ERROR;
11678   /*OKL_API.set_message(p_app_name => 'OKL',
11679                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
11680                       p_token1 => 'ASSET_NUMBER',
11681                       p_token1_value => 'do_sort_party_mapping_id');*/
11682     /* DEBUG */
11683   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11684       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
11685     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing do_sort_party_mapping:l_party_id_mapping_tab N=' || N || ' ...');
11686   END IF;
11687 
11688   --print array
11689   FOR i IN 1..N
11690   LOOP
11691     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11692           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_party_id_mapping_tab('||i||')=' || l_party_id_mapping_tab(i).old_id || ':' || l_party_id_mapping_tab(i).new_id);
11693     END IF;
11694   END LOOP;
11695 
11696   RAISE OKC_API.G_EXCEPTION_ERROR;
11697 
11698 END;  /* do_sort_party_mapping_id */
11699 
11700 FUNCTION find_party_mapping_id(p_id IN NUMBER) RETURN NUMBER IS
11701 hi NUMBER;
11702 lo NUMBER;
11703 m NUMBER;
11704 BEGIN
11705   lo := 1;
11706   hi := l_party_counter - 1;
11707   WHILE (lo <= hi) LOOP
11708     m := FLOOR((hi + lo)/2);
11709     IF (l_party_id_mapping_tab(m).old_id = p_id) THEN
11710       RETURN l_party_id_mapping_tab(m).new_id;
11711     ELSIF (l_party_id_mapping_tab(m).old_id > p_id) THEN
11712       hi := m - 1;
11713     ELSE
11714       lo := m + 1;
11715     END IF;
11716   END LOOP;
11717   RETURN -1;
11718 END;  /* find_party_mapping_id */
11719 
11720 PROCEDURE prepare_okl_party_roles (p_old_id IN okl_k_party_roles.id%TYPE,
11721                                    p_new_id IN okl_k_party_roles.id%TYPE,
11722                                    p_flush IN VARCHAR2) IS
11723 CURSOR c30(p_id okl_k_party_roles.id%TYPE) IS
11724 SELECT
11725        a.id, a.object_version_number, a.attribute_category,
11726        a.attribute1, a.attribute2, a.attribute3,
11727        a.attribute4, a.attribute5, a.attribute6,
11728        a.attribute7, a.attribute8, a.attribute9,
11729        a.attribute10, a.attribute11, a.attribute12,
11730        a.attribute13, a.attribute14, a.attribute15
11731 FROM okl_k_party_roles a
11732 WHERE id = p_id;
11733 
11734     l_plid_tab2 l_plid_type;
11735     l_plobject_version_number_tab2 l_plobject_version_number_type;
11736     l_plattribute_category_tab2 l_plattribute_category_type;
11737     l_plattribute1_tab2 l_plattribute1_type;
11738     l_plattribute2_tab2 l_plattribute2_type;
11739     l_plattribute3_tab2 l_plattribute3_type;
11740     l_plattribute4_tab2 l_plattribute4_type;
11741     l_plattribute5_tab2 l_plattribute5_type;
11742     l_plattribute6_tab2 l_plattribute6_type;
11743     l_plattribute7_tab2 l_plattribute7_type;
11744     l_plattribute8_tab2 l_plattribute8_type;
11745     l_plattribute9_tab2 l_plattribute9_type;
11746     l_plattribute10_tab2 l_plattribute10_type;
11747     l_plattribute11_tab2 l_plattribute11_type;
11748     l_plattribute12_tab2 l_plattribute12_type;
11749     l_plattribute13_tab2 l_plattribute13_type;
11750     l_plattribute14_tab2 l_plattribute14_type;
11751     l_plattribute15_tab2 l_plattribute15_type;
11752 
11753 BEGIN
11754   IF (G_DEBUG_ENABLED = 'Y') THEN
11755     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
11756   END IF;
11757   --print('In prepare_okl_party_roles p_old_id=' || p_old_id);
11758   --print('In prepare_okl_party_roles p_new_id=' || p_new_id);
11759   OPEN c30(p_old_id);
11760   LOOP
11761     FETCH c30 bulk collect INTO
11762      l_plid_tab2, l_plobject_version_number_tab2, l_plattribute_category_tab2,
11763      l_plattribute1_tab2, l_plattribute2_tab2, l_plattribute3_tab2,
11764      l_plattribute4_tab2, l_plattribute5_tab2, l_plattribute6_tab2,
11765      l_plattribute7_tab2, l_plattribute8_tab2, l_plattribute9_tab2,
11766      l_plattribute10_tab2, l_plattribute11_tab2, l_plattribute12_tab2,
11767      l_plattribute13_tab2, l_plattribute14_tab2, l_plattribute15_tab2
11768     limit G_BULK_SIZE;
11769     EXIT WHEN l_plid_tab2.COUNT = 0;
11770 
11771     FOR i IN l_plid_tab2.first..l_plid_tab2.last
11772     LOOP
11773       l_plid_tab(l_okl_k_party_roles_counter) := l_plid_tab2(i);
11774       -- Replace id
11775       l_plid_tab(l_okl_k_party_roles_counter) := p_new_id;
11776 
11777       l_plobject_version_number_tab(l_okl_k_party_roles_counter) := l_plobject_version_number_tab2(i);
11778       l_plattribute_category_tab(l_okl_k_party_roles_counter) := l_plattribute_category_tab2(i);
11779       l_plattribute1_tab(l_okl_k_party_roles_counter) := l_plattribute1_tab2(i);
11780       l_plattribute2_tab(l_okl_k_party_roles_counter) := l_plattribute2_tab2(i);
11781       l_plattribute3_tab(l_okl_k_party_roles_counter) := l_plattribute3_tab2(i);
11782       l_plattribute4_tab(l_okl_k_party_roles_counter) := l_plattribute4_tab2(i);
11783       l_plattribute5_tab(l_okl_k_party_roles_counter) := l_plattribute5_tab2(i);
11784       l_plattribute6_tab(l_okl_k_party_roles_counter) := l_plattribute6_tab2(i);
11785       l_plattribute7_tab(l_okl_k_party_roles_counter) := l_plattribute7_tab2(i);
11786       l_plattribute8_tab(l_okl_k_party_roles_counter) := l_plattribute8_tab2(i);
11787       l_plattribute9_tab(l_okl_k_party_roles_counter) := l_plattribute9_tab2(i);
11788       l_plattribute10_tab(l_okl_k_party_roles_counter) := l_plattribute10_tab2(i);
11789       l_plattribute11_tab(l_okl_k_party_roles_counter) := l_plattribute11_tab2(i);
11790       l_plattribute12_tab(l_okl_k_party_roles_counter) := l_plattribute12_tab2(i);
11791       l_plattribute13_tab(l_okl_k_party_roles_counter) := l_plattribute13_tab2(i);
11792       l_plattribute14_tab(l_okl_k_party_roles_counter) := l_plattribute14_tab2(i);
11793       l_plattribute15_tab(l_okl_k_party_roles_counter) := l_plattribute15_tab2(i);
11794 
11795       l_okl_k_party_roles_counter := l_okl_k_party_roles_counter + 1;
11796 
11797     END LOOP;
11798 
11799   END LOOP;
11800   CLOSE c30;
11801 
11802   IF (p_flush = 'Y') THEN
11803     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11804           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_okl_k_party_roles_counter='|| l_okl_k_party_roles_counter || ' l_plid_tab.count='|| l_plid_tab.COUNT);
11805     END IF;
11806     IF (l_plid_tab.COUNT > 0) THEN
11807     forall i IN l_plid_tab.first..l_plid_tab.last
11808       INSERT INTO okl_k_party_roles (
11809        id, object_version_number, attribute_category,
11810        attribute1, attribute2, attribute3,
11811        attribute4, attribute5, attribute6,
11812        attribute7, attribute8, attribute9,
11813        attribute10, attribute11, attribute12,
11814        attribute13, attribute14, attribute15,
11815        created_by, creation_date, last_updated_by,
11816        last_update_date, last_update_login
11817       ) VALUES (
11818        l_plid_tab(i), l_plobject_version_number_tab(i), l_plattribute_category_tab(i),
11819        l_plattribute1_tab(i), l_plattribute2_tab(i), l_plattribute3_tab(i),
11820        l_plattribute4_tab(i), l_plattribute5_tab(i), l_plattribute6_tab(i),
11821        l_plattribute7_tab(i), l_plattribute8_tab(i), l_plattribute9_tab(i),
11822        l_plattribute10_tab(i), l_plattribute11_tab(i), l_plattribute12_tab(i),
11823        l_plattribute13_tab(i), l_plattribute14_tab(i), l_plattribute15_tab(i),
11824        l_created_by, SYSDATE, l_last_updated_by,
11825        SYSDATE, l_last_update_login
11826       );
11827     END IF;
11828   END IF;
11829 
11830 EXCEPTION WHEN OTHERS THEN
11831 
11832   x_return_status := OKL_API.G_RET_STS_ERROR;
11833     /* DEBUG */
11834   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11835       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
11836     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing prepare_okl_party_roles:l_plid_tab.count=' || l_plid_tab.COUNT || ' ...');
11837   END IF;
11838   IF (l_plid_tab.COUNT > 0) THEN
11839   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11840       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing l_plid_tab...');
11841   END IF;
11842   FOR i IN l_plid_tab.FIRST..l_plid_tab.LAST
11843   LOOP
11844     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11845           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plid_tab('||i||')=' || l_plid_tab(i));
11846       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plobject_version_number_tab('||i||')=' || l_plobject_version_number_tab(i));
11847       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute_category_tab('||i||')=' || l_plattribute_category_tab(i));
11848       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute1_tab('||i||')=' || l_plattribute1_tab(i));
11849       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute2_tab('||i||')=' || l_plattribute2_tab(i));
11850       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute3_tab('||i||')=' || l_plattribute3_tab(i));
11851       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute4_tab('||i||')=' || l_plattribute4_tab(i));
11852       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute5_tab('||i||')=' || l_plattribute5_tab(i));
11853       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute6_tab('||i||')=' || l_plattribute6_tab(i));
11854       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute7_tab('||i||')=' || l_plattribute7_tab(i));
11855       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute8_tab('||i||')=' || l_plattribute8_tab(i));
11856       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute9_tab('||i||')=' || l_plattribute9_tab(i));
11857       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute10_tab('||i||')=' || l_plattribute10_tab(i));
11858       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute11_tab('||i||')=' || l_plattribute11_tab(i));
11859       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute12_tab('||i||')=' || l_plattribute12_tab(i));
11860       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute13_tab('||i||')=' || l_plattribute13_tab(i));
11861       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute14_tab('||i||')=' || l_plattribute14_tab(i));
11862       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute15_tab('||i||')=' || l_plattribute15_tab(i));
11863     END IF;
11864   END LOOP;
11865 
11866   END IF;
11867 
11868   RAISE OKC_API.G_EXCEPTION_ERROR;
11869 
11870 END;  /* prepare_okl_party_roles */
11871 
11872 PROCEDURE prepare_party_roles_tl (p_old_id IN okc_k_party_roles_b.id%TYPE,
11873                                   p_new_id IN okc_k_party_roles_b.id%TYPE,
11874                                   p_flush IN VARCHAR2) IS
11875 CURSOR c10(p_id okc_k_party_roles_tl.id%TYPE) IS
11876 SELECT
11877      id, LANGUAGE, source_lang,
11878      sfwt_flag, created_by, creation_date,
11879      last_updated_by, last_update_date, cognomen,
11880      alias, last_update_login, security_group_id
11881 FROM okc_k_party_roles_tl
11882 WHERE id = p_id;
11883 
11884     l_pid_tab2 l_pid_type;
11885     l_planguage_tab2 l_planguage_type;
11886     l_psource_lang_tab2 l_psource_lang_type;
11887     l_psfwt_flag_tab2 l_psfwt_flag_type;
11888     l_pcreated_by_tab2 l_pcreated_by_type;
11889     l_pcreation_date_tab2 l_pcreation_date_type;
11890     l_plast_updated_by_tab2 l_plast_updated_by_type;
11891     l_plast_update_date_tab2 l_plast_update_date_type;
11892     l_pcognomen_tab2 l_pcognomen_type;
11893     l_palias_tab2 l_palias_type;
11894     l_plast_update_login_tab2 l_plast_update_login_type;
11895     l_psecurity_group_id_tab2 l_psecurity_group_id_type;
11896 
11897 BEGIN
11898   IF (G_DEBUG_ENABLED = 'Y') THEN
11899     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
11900   END IF;
11901   --print('In prepare_party_roles_tl p_old_id=' || p_old_id);
11902   --print('In prepare_party_roles_tl p_new_id=' || p_new_id);
11903   OPEN c10(p_old_id);
11904   LOOP
11905     FETCH c10 bulk collect INTO
11906       l_pid_tab2, l_planguage_tab2, l_psource_lang_tab2,
11907       l_psfwt_flag_tab2, l_pcreated_by_tab2, l_pcreation_date_tab2,
11908       l_plast_updated_by_tab2, l_plast_update_date_tab2, l_pcognomen_tab2,
11909       l_palias_tab2, l_plast_update_login_tab2, l_psecurity_group_id_tab2
11910     limit G_BULK_SIZE;
11911     EXIT WHEN l_pid_tab2.COUNT = 0;
11912 
11913     FOR i IN l_pid_tab2.first..l_pid_tab2.last
11914     LOOP
11915       l_pid_tab(l_party_roles_tl_counter) := l_pid_tab2(i);
11916 
11917       -- Replace id
11918       l_pid_tab(l_party_roles_tl_counter) := p_new_id;
11919 
11920       l_planguage_tab(l_party_roles_tl_counter) := l_planguage_tab2(i);
11921       l_psource_lang_tab(l_party_roles_tl_counter) := l_psource_lang_tab2(i);
11922       l_psfwt_flag_tab(l_party_roles_tl_counter) := l_psfwt_flag_tab2(i);
11923       l_pcreated_by_tab(l_party_roles_tl_counter) := l_pcreated_by_tab2(i);
11924       l_pcreation_date_tab(l_party_roles_tl_counter) := l_pcreation_date_tab2(i);
11925       l_plast_updated_by_tab(l_party_roles_tl_counter) := l_plast_updated_by_tab2(i);
11926       l_plast_update_date_tab(l_party_roles_tl_counter) := l_plast_update_date_tab2(i);
11927       l_pcognomen_tab(l_party_roles_tl_counter) := l_pcognomen_tab2(i);
11928       l_palias_tab(l_party_roles_tl_counter) := l_palias_tab2(i);
11929       l_plast_update_login_tab(l_party_roles_tl_counter) := l_plast_update_login_tab2(i);
11930       l_psecurity_group_id_tab(l_party_roles_tl_counter) := l_psecurity_group_id_tab2(i);
11931 
11932       l_party_roles_tl_counter := l_party_roles_tl_counter + 1;
11933     END LOOP;
11934 
11935   END LOOP;
11936   CLOSE c10;
11937 
11938   IF (p_flush = 'L') THEN
11939     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11940           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_party_roles_tl_counter='|| l_party_roles_tl_counter || ' l_pid_tab.count='|| l_pid_tab.COUNT);
11941     END IF;
11942     IF (l_pid_tab.COUNT > 0) THEN
11943     forall i IN l_pid_tab.first..l_pid_tab.last
11944       INSERT INTO okc_k_party_roles_tl (
11945         id, LANGUAGE, source_lang,
11946         sfwt_flag, created_by, creation_date,
11947         last_updated_by, last_update_date, cognomen,
11948         alias, last_update_login, security_group_id
11949       ) VALUES (
11950         l_pid_tab(i), l_planguage_tab(i), l_psource_lang_tab(i),
11951         'N', l_created_by, SYSDATE,
11952         l_last_updated_by, SYSDATE,l_pcognomen_tab(i),
11953         l_palias_tab(i),l_last_update_login, l_psecurity_group_id_tab(i)
11954       );
11955     END IF;
11956   END IF;
11957 
11958 EXCEPTION WHEN OTHERS THEN
11959 
11960   x_return_status := OKL_API.G_RET_STS_ERROR;
11961   /*OKL_API.set_message(p_app_name => 'OKL',
11962                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
11963                       p_token1 => 'ASSET_NUMBER',
11964                       p_token1_value => 'prepare_party_roles_tl');*/
11965     /* DEBUG */
11966   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11967       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
11968     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing prepare_party_roles_tl:l_pid_tab.count=' || l_pid_tab.COUNT || ' ...');
11969   END IF;
11970   IF (l_pid_tab.COUNT > 0) THEN
11971   FOR i IN l_pid_tab.first..l_pid_tab.last
11972   LOOP
11973     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11974           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_pid_tab('||i||')=' || l_pid_tab(i));
11975       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_planguage_tab('||i||')=' || l_planguage_tab(i));
11976       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_psource_lang_tab('||i||')=' || l_psource_lang_tab(i));
11977       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_pcognomen_tab('||i||')=' || l_pcognomen_tab(i));
11978       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_palias_tab('||i||')=' || l_palias_tab(i));
11979       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_psecurity_group_id_tab('||i||')=' || l_psecurity_group_id_tab(i));
11980     END IF;
11981   END LOOP;
11982   END IF;
11983 
11984   RAISE OKC_API.G_EXCEPTION_ERROR;
11985 
11986 END;  /* prepare_party_roles_tl */
11987 
11988 PROCEDURE prepare_contacts (p_old_id IN okc_k_party_roles_b.id%TYPE,
11989                                   p_new_id IN okc_k_party_roles_b.id%TYPE,
11990                                   p_flush IN VARCHAR2) IS
11991 CURSOR c11(p_id okc_k_party_roles_tl.id%TYPE) IS
11992 SELECT
11993      id, cpl_id, cro_code,
11994      dnz_chr_id, object1_id1, object1_id2,
11995      jtot_object1_code, object_version_number, created_by,
11996      creation_date, last_updated_by, last_update_date,
11997      contact_sequence, last_update_login, attribute_category,
11998      attribute1, attribute2, attribute3,
11999      attribute4, attribute5, attribute6,
12000      attribute7, attribute8, attribute9,
12001      attribute10, attribute11, attribute12,
12002      attribute13, attribute14, attribute15,
12003      security_group_id, start_date, end_date,
12004      primary_yn, resource_class
12005 FROM okc_contacts
12006 WHERE cpl_id = p_id;
12007 
12008     l_cid_tab2 l_cid_type;
12009     l_ccpl_id_tab2 l_ccpl_id_type;
12010     l_ccro_code_tab2 l_ccro_code_type;
12011     l_cdnz_chr_id_tab2 l_cdnz_chr_id_type;
12012     l_cobject1_id1_tab2 l_cobject1_id1_type;
12013     l_cobject1_id2_tab2 l_cobject1_id2_type;
12014     l_cjtot_object1_code_tab2 l_cjtot_object1_code_type;
12015     l_cobject_version_number_tab2 l_cobject_version_number_type;
12016     l_ccreated_by_tab2 l_ccreated_by_type;
12017     l_ccreation_date_tab2 l_ccreation_date_type;
12018     l_clast_updated_by_tab2 l_clast_updated_by_type;
12019     l_clast_update_date_tab2 l_clast_update_date_type;
12020     l_ccontact_sequence_tab2 l_ccontact_sequence_type;
12021     l_clast_update_login_tab2 l_clast_update_login_type;
12022     l_cattribute_category_tab2 l_cattribute_category_type;
12023     l_cattribute1_tab2 l_cattribute1_type;
12024     l_cattribute2_tab2 l_cattribute2_type;
12025     l_cattribute3_tab2 l_cattribute3_type;
12026     l_cattribute4_tab2 l_cattribute4_type;
12027     l_cattribute5_tab2 l_cattribute5_type;
12028     l_cattribute6_tab2 l_cattribute6_type;
12029     l_cattribute7_tab2 l_cattribute7_type;
12030     l_cattribute8_tab2 l_cattribute8_type;
12031     l_cattribute9_tab2 l_cattribute9_type;
12032     l_cattribute10_tab2 l_cattribute10_type;
12033     l_cattribute11_tab2 l_cattribute11_type;
12034     l_cattribute12_tab2 l_cattribute12_type;
12035     l_cattribute13_tab2 l_cattribute13_type;
12036     l_cattribute14_tab2 l_cattribute14_type;
12037     l_cattribute15_tab2 l_cattribute15_type;
12038     l_csecurity_group_id_tab2 l_csecurity_group_id_type;
12039     l_cstart_date_tab2 l_cstart_date_type;
12040     l_cend_date_tab2 l_cend_date_type;
12041     l_cprimary_yn_tab2 l_cprimary_yn_type;
12042     l_cresource_class_tab2 l_cresource_class_type;
12043 
12044 BEGIN
12045   IF (G_DEBUG_ENABLED = 'Y') THEN
12046     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
12047   END IF;
12048   --print('In prepare_contacts p_old_id=' || p_old_id);
12049   --print('In prepare_contacts p_new_id=' || p_new_id);
12050   OPEN c11(p_old_id);
12051   LOOP
12052     FETCH c11 bulk collect INTO
12053      l_cid_tab2, l_ccpl_id_tab2, l_ccro_code_tab2,
12054      l_cdnz_chr_id_tab2, l_cobject1_id1_tab2, l_cobject1_id2_tab2,
12055      l_cjtot_object1_code_tab2,l_cobject_version_number_tab2,l_ccreated_by_tab2,
12056      l_ccreation_date_tab2, l_clast_updated_by_tab2, l_clast_update_date_tab2,
12057      l_ccontact_sequence_tab2, l_clast_update_login_tab2, l_cattribute_category_tab2,
12058      l_cattribute1_tab2, l_cattribute2_tab2, l_cattribute3_tab2,
12059      l_cattribute4_tab2, l_cattribute5_tab2, l_cattribute6_tab2,
12060      l_cattribute7_tab2, l_cattribute8_tab2, l_cattribute9_tab2,
12061      l_cattribute10_tab2, l_cattribute11_tab2, l_cattribute12_tab2,
12062      l_cattribute13_tab2, l_cattribute14_tab2, l_cattribute15_tab2,
12063      l_csecurity_group_id_tab2, l_cstart_date_tab2, l_cend_date_tab2,
12064      l_cprimary_yn_tab2, l_cresource_class_tab2
12065     limit G_BULK_SIZE;
12066     EXIT WHEN l_cid_tab2.COUNT = 0;
12067 
12068     FOR i IN l_cid_tab2.first..l_cid_tab2.last
12069     LOOP
12070       l_cid_tab(l_contacts_counter) := l_cid_tab2(i);
12071 
12072       -- Replace id
12073       l_cid_tab(l_contacts_counter) := okc_p_util.raw_to_number(sys_guid());
12074 
12075       l_ccpl_id_tab(l_contacts_counter) := l_ccpl_id_tab2(i);
12076       -- Replace cpl_id
12077       l_ccpl_id_tab(l_contacts_counter) := p_new_id;
12078 
12079       l_ccro_code_tab(l_contacts_counter) := l_ccro_code_tab2(i);
12080       l_cdnz_chr_id_tab(l_contacts_counter) := l_cdnz_chr_id_tab2(i);
12081       -- Replace dnz_chr_id
12082       l_cdnz_chr_id_tab(l_contacts_counter) := l_copied_id;
12083 
12084       l_cobject1_id1_tab(l_contacts_counter) := l_cobject1_id1_tab2(i);
12085       l_cobject1_id2_tab(l_contacts_counter) := l_cobject1_id2_tab2(i);
12086       l_cjtot_object1_code_tab(l_contacts_counter) := l_cjtot_object1_code_tab2(i);
12087       l_cobject_version_number_tab(l_contacts_counter) := l_cobject_version_number_tab2(i);
12088       l_ccreated_by_tab(l_contacts_counter) := l_ccreated_by_tab2(i);
12089       l_ccreation_date_tab(l_contacts_counter) := l_ccreation_date_tab2(i);
12090       l_clast_updated_by_tab(l_contacts_counter) := l_clast_updated_by_tab2(i);
12091       l_clast_update_date_tab(l_contacts_counter) := l_clast_update_date_tab2(i);
12092       l_ccontact_sequence_tab(l_contacts_counter) := l_ccontact_sequence_tab2(i);
12093       l_clast_update_login_tab(l_contacts_counter) := l_clast_update_login_tab2(i);
12094       l_cattribute_category_tab(l_contacts_counter) := l_cattribute_category_tab2(i);
12095       l_cattribute1_tab(l_contacts_counter) := l_cattribute1_tab2(i);
12096       l_cattribute2_tab(l_contacts_counter) := l_cattribute2_tab2(i);
12097       l_cattribute3_tab(l_contacts_counter) := l_cattribute3_tab2(i);
12098       l_cattribute4_tab(l_contacts_counter) := l_cattribute4_tab2(i);
12099       l_cattribute5_tab(l_contacts_counter) := l_cattribute5_tab2(i);
12100       l_cattribute6_tab(l_contacts_counter) := l_cattribute6_tab2(i);
12101       l_cattribute7_tab(l_contacts_counter) := l_cattribute7_tab2(i);
12102       l_cattribute8_tab(l_contacts_counter) := l_cattribute8_tab2(i);
12103       l_cattribute9_tab(l_contacts_counter) := l_cattribute9_tab2(i);
12104       l_cattribute10_tab(l_contacts_counter) := l_cattribute10_tab2(i);
12105       l_cattribute11_tab(l_contacts_counter) := l_cattribute11_tab2(i);
12106       l_cattribute12_tab(l_contacts_counter) := l_cattribute12_tab2(i);
12107       l_cattribute13_tab(l_contacts_counter) := l_cattribute13_tab2(i);
12108       l_cattribute14_tab(l_contacts_counter) := l_cattribute14_tab2(i);
12109       l_cattribute15_tab(l_contacts_counter) := l_cattribute15_tab2(i);
12110       l_csecurity_group_id_tab(l_contacts_counter) := l_csecurity_group_id_tab2(i);
12111       l_cstart_date_tab(l_contacts_counter) := l_cstart_date_tab2(i);
12112       l_cend_date_tab(l_contacts_counter) := l_cend_date_tab2(i);
12113       l_cprimary_yn_tab(l_contacts_counter) := l_cprimary_yn_tab2(i);
12114       l_cresource_class_tab(l_contacts_counter) := l_cresource_class_tab2(i);
12115 
12116       l_contacts_counter := l_contacts_counter + 1;
12117     END LOOP;
12118 
12119   END LOOP;
12120   CLOSE c11;
12121 
12122   IF (p_flush = 'L') THEN
12123     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
12124           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_contacts_counter='|| l_contacts_counter || ' l_cid_tab.count='|| l_cid_tab.COUNT);
12125     END IF;
12126     IF (l_contacts_counter > 1) THEN
12127       forall i IN l_cid_tab.first..l_cid_tab.last
12128         INSERT INTO okc_contacts (
12129           id, cpl_id, cro_code,
12130           dnz_chr_id, object1_id1, object1_id2,
12131           jtot_object1_code, object_version_number, created_by,
12132           creation_date, last_updated_by, last_update_date,
12133           contact_sequence, last_update_login, attribute_category,
12134           attribute1, attribute2, attribute3,
12135           attribute4, attribute5, attribute6,
12136           attribute7, attribute8, attribute9,
12137           attribute10, attribute11, attribute12,
12138           attribute13, attribute14, attribute15,
12139           security_group_id, start_date, end_date,
12140           primary_yn, resource_class
12141         ) VALUES (
12142          l_cid_tab(i), l_ccpl_id_tab(i), l_ccro_code_tab(i),
12143          l_cdnz_chr_id_tab(i), l_cobject1_id1_tab(i), l_cobject1_id2_tab(i),
12144          l_cjtot_object1_code_tab(i), 1, l_created_by,
12145          SYSDATE, l_last_updated_by, SYSDATE,
12146          l_ccontact_sequence_tab(i), l_last_update_login, l_cattribute_category_tab(i),
12147          l_cattribute1_tab(i), l_cattribute2_tab(i), l_cattribute3_tab(i),
12148          l_cattribute4_tab(i), l_cattribute5_tab(i), l_cattribute6_tab(i),
12149          l_cattribute7_tab(i), l_cattribute8_tab(i), l_cattribute9_tab(i),
12150          l_cattribute10_tab(i), l_cattribute11_tab(i), l_cattribute12_tab(i),
12151          l_cattribute13_tab(i), l_cattribute14_tab(i), l_cattribute15_tab(i),
12152          l_csecurity_group_id_tab(i), l_cstart_date_tab(i), l_cend_date_tab(i),
12153          l_cprimary_yn_tab(i),l_cresource_class_tab(i)
12154         );
12155     END IF;
12156   END IF;
12157 
12158 EXCEPTION WHEN OTHERS THEN
12159 
12160   x_return_status := OKL_API.G_RET_STS_ERROR;
12161   /*OKL_API.set_message(p_app_name => 'OKL',
12162                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
12163                       p_token1 => 'ASSET_NUMBER',
12164                       p_token1_value => 'prepare_contacts');*/
12165     /* DEBUG */
12166   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
12167       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
12168     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing prepare_contacts:l_cid_tab.count=' || l_cid_tab.COUNT || ' ...');
12169   END IF;
12170   IF (l_cid_tab.COUNT > 0) THEN
12171   FOR i IN l_cid_tab.first..l_cid_tab.last
12172   LOOP
12173     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
12174           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cid_tab('||i||')=' || l_cid_tab(i));
12175       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ccpl_id_tab('||i||')=' || l_ccpl_id_tab(i));
12176       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ccro_code_tab('||i||')=' || l_ccro_code_tab(i));
12177       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cdnz_chr_id_tab('||i||')=' || l_cdnz_chr_id_tab(i));
12178       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cobject1_id1_tab('||i||')=' || l_cobject1_id1_tab(i));
12179       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cobject1_id2_tab('||i||')=' || l_cobject1_id2_tab(i));
12180       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cjtot_object1_code_tab('||i||')=' || l_cjtot_object1_code_tab(i));
12181       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ccontact_sequence_tab('||i||')=' || l_ccontact_sequence_tab(i));
12182       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute_category_tab('||i||')=' || l_cattribute_category_tab(i));
12183       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute1_tab('||i||')=' || l_cattribute1_tab(i));
12184       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute2_tab('||i||')=' || l_cattribute2_tab(i));
12185       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute3_tab('||i||')=' || l_cattribute3_tab(i));
12186       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute4_tab('||i||')=' || l_cattribute4_tab(i));
12187       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute5_tab('||i||')=' || l_cattribute5_tab(i));
12188       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute6_tab('||i||')=' || l_cattribute6_tab(i));
12189       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute7_tab('||i||')=' || l_cattribute7_tab(i));
12190       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute8_tab('||i||')=' || l_cattribute8_tab(i));
12191       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute9_tab('||i||')=' || l_cattribute9_tab(i));
12192       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute10_tab('||i||')=' || l_cattribute10_tab(i));
12193       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute11_tab('||i||')=' || l_cattribute11_tab(i));
12194       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute12_tab('||i||')=' || l_cattribute12_tab(i));
12195       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute13_tab('||i||')=' || l_cattribute13_tab(i));
12196       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute14_tab('||i||')=' || l_cattribute14_tab(i));
12197       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute15_tab('||i||')=' || l_cattribute15_tab(i));
12198       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_csecurity_group_id_tab('||i||')=' || l_csecurity_group_id_tab(i));
12199       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cstart_date_tab('||i||')=' || l_cstart_date_tab(i));
12200       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cend_date_tab('||i||')=' || l_cend_date_tab(i));
12201       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cprimary_yn_tab('||i||')=' || l_cprimary_yn_tab(i));
12202       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cresource_class_tab('||i||')=' || l_cresource_class_tab(i));
12203     END IF;
12204   END LOOP;
12205   END IF;
12206 
12207   RAISE OKC_API.G_EXCEPTION_ERROR;
12208 
12209 END;  /* prepare_contacts */
12210 
12211 FUNCTION find_phid_mapping_id(p_id IN NUMBER) RETURN NUMBER IS
12212 hi NUMBER;
12213 lo NUMBER;
12214 m NUMBER;
12215 BEGIN
12216   lo := 1;
12217   hi := l_party_payment_hdr_counter - 1;
12218   WHILE (lo <= hi) LOOP
12219     m := FLOOR((hi + lo)/2);
12220     IF (l_phid_mapping_tab(m).old_id = p_id) THEN
12221       RETURN l_phid_mapping_tab(m).new_id;
12222     ELSIF (l_phid_mapping_tab(m).old_id > p_id) THEN
12223       hi := m - 1;
12224     ELSE
12225       lo := m + 1;
12226     END IF;
12227   END LOOP;
12228   RETURN -1;
12229 END;  /* find_phid_mapping_id */
12230 
12231 PROCEDURE sort_phid_mapping_tab IS
12232   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
12233   --a numtabtype;
12234   l_stack numtabtype;
12235   l_stack_index NUMBER := 0;
12236   N NUMBER;
12237   R NUMBER;
12238   L NUMBER;
12239   P NUMBER;
12240   W NUMBER;
12241   W2 NUMBER;
12242   X NUMBER;
12243   I NUMBER;
12244   J NUMBER;
12245 BEGIN
12246   IF (G_DEBUG_ENABLED = 'Y') THEN
12247     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
12248   END IF;
12249   NULL;
12250 
12251   N := l_party_payment_hdr_counter - 1;
12252   IF (N < 2) THEN
12253     RETURN;
12254   END IF;
12255   l_stack_index := l_stack_index + 1;
12256   l_stack(l_stack_index) := 1;
12257   l_stack_index := l_stack_index + 1;
12258   l_stack(l_stack_index) := N;
12259 
12260   --dbms_output.put_line('l_stack_index=' || l_stack_index);
12261   WHILE l_stack_index > 0
12262   LOOP
12263     R := l_stack(l_stack_index);
12264     l_stack_index := l_stack_index - 1;
12265     L := l_stack(l_stack_index);
12266     l_stack_index := l_stack_index - 1;
12267     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
12268     WHILE 1=1
12269     LOOP -- loop until L >= R
12270       I := L;
12271       J := R;
12272       P := FLOOR((L+R)/2);
12273       --if (a(L) > a(P)) then
12274       IF (l_phid_mapping_tab(L).old_id > l_phid_mapping_tab(P).old_id)
12275       THEN
12276         W := l_phid_mapping_tab(L).old_id;
12277         W2 := l_phid_mapping_tab(L).new_id;
12278         l_phid_mapping_tab(L).old_id :=l_phid_mapping_tab(P).old_id;
12279         l_phid_mapping_tab(L).new_id :=l_phid_mapping_tab(P).new_id;
12280         l_phid_mapping_tab(P).old_id := W;
12281         l_phid_mapping_tab(P).new_id := W2;
12282       END IF;
12283       --if (a(L) > a(R)) then
12284       IF (l_phid_mapping_tab(L).old_id > l_phid_mapping_tab(R).old_id)
12285       THEN
12286         W := l_phid_mapping_tab(L).old_id;
12287         W2 := l_phid_mapping_tab(L).new_id;
12288         l_phid_mapping_tab(L).old_id :=l_phid_mapping_tab(R).old_id;
12289         l_phid_mapping_tab(L).new_id :=l_phid_mapping_tab(R).new_id;
12290         l_phid_mapping_tab(R).old_id := W;
12291         l_phid_mapping_tab(R).new_id := W2;
12292       END IF;
12293       --if (a(P) > a(R)) then
12294       IF (l_phid_mapping_tab(P).old_id > l_phid_mapping_tab(R).old_id)
12295       THEN
12296         W := l_phid_mapping_tab(P).old_id;
12297         W2 := l_phid_mapping_tab(P).new_id;
12298         l_phid_mapping_tab(P).old_id :=l_phid_mapping_tab(R).old_id;
12299         l_phid_mapping_tab(P).new_id :=l_phid_mapping_tab(R).new_id;
12300         l_phid_mapping_tab(R).old_id := W;
12301         l_phid_mapping_tab(R).new_id := W2;
12302       END IF;
12303       --X := a(P);
12304       X := l_phid_mapping_tab(P).old_id;
12305       WHILE 1=1
12306       LOOP    -- until I > J
12307         --while (a(I) < X) loop
12308         WHILE (l_phid_mapping_tab(I).old_id < X) LOOP
12309           I := I + 1;
12310         END LOOP;
12311         WHILE (X < l_phid_mapping_tab(J).old_id) LOOP
12312           J := J - 1;
12313         END LOOP;
12314         IF (I <= J) THEN
12315           W := l_phid_mapping_tab(I).old_id;
12316           W2 := l_phid_mapping_tab(I).new_id;
12317           l_phid_mapping_tab(I).old_id :=l_phid_mapping_tab(J).old_id;
12318           l_phid_mapping_tab(I).new_id :=l_phid_mapping_tab(J).new_id;
12319           l_phid_mapping_tab(J).old_id := W;
12320           l_phid_mapping_tab(J).new_id := W2;
12321           I := I + 1;
12322           J := J - 1;
12323         END IF;
12324         EXIT WHEN I > J;
12325       END LOOP;
12326       IF (J - L < R - I) THEN
12327         IF (I < R) THEN
12328           --push(I); push(R);
12329           l_stack_index := l_stack_index + 1;
12330           l_stack(l_stack_index) := I;
12331           l_stack_index := l_stack_index + 1;
12332           l_stack(l_stack_index) := R;
12333           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
12334         END IF;
12335         R := J;
12336       ELSE
12337         IF (L < J) THEN
12338           --push(L); push(J);
12339           l_stack_index := l_stack_index + 1;
12340           l_stack(l_stack_index) := L;
12341           l_stack_index := l_stack_index + 1;
12342           l_stack(l_stack_index) := J;
12343           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
12344         END IF;
12345         L := I;
12346       END IF;
12347 
12348       EXIT WHEN (L >= R);
12349     END LOOP;
12350   END LOOP;
12351 
12352 EXCEPTION WHEN OTHERS THEN
12353 
12354   --x_return_status := OKL_API.G_RET_STS_ERROR;
12355     /* DEBUG */
12356   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
12357       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
12358     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_phid_mapping_tab:l_phid_mapping_tab N=' || N || ' ...');
12359   END IF;
12360   --print array
12361   FOR i IN 1..N
12362   LOOP
12363     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
12364           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_phid_mapping_tab('||i||')=' || l_phid_mapping_tab(i).old_id || ':' || l_phid_mapping_tab(i).new_id);
12365     END IF;
12366   END LOOP;
12367 
12368   RAISE OKC_API.G_EXCEPTION_ERROR;
12369 
12370 END;  /* sort_phid_mapping_tab */
12371 
12372 
12373 Procedure copy_party_payment_hdr(p_old_id IN NUMBER,
12374                                  p_new_id IN NUMBER) IS
12375     TYPE l_phid_type is table of okl_party_payment_hdr.id%TYPE index by binary_integer;
12376     TYPE l_phdnz_chr_id_type is table of okl_party_payment_hdr.dnz_chr_id%TYPE index by binary_integer;
12377     TYPE l_phcle_id_type is table of okl_party_payment_hdr.cle_id%TYPE index by binary_integer;
12378     TYPE l_phppl_id_type is table of okl_party_payment_hdr.ppl_id%TYPE index by binary_integer;
12379     TYPE l_phpassthru_start_date_type is table of okl_party_payment_hdr.passthru_start_date%TYPE index by binary_integer;
12380     TYPE l_phpayout_basis_type is table of okl_party_payment_hdr.payout_basis%TYPE index by binary_integer;
12381     TYPE l_pheffective_from_type is table of okl_party_payment_hdr.effective_from%TYPE index by binary_integer;
12382     TYPE l_pheffective_to_type is table of okl_party_payment_hdr.effective_to%TYPE index by binary_integer;
12383     TYPE l_phobject_version_number_type is table of okl_party_payment_hdr.object_version_number%TYPE index by binary_integer;
12384     TYPE l_phpassthru_term_type is table of okl_party_payment_hdr.passthru_term%TYPE index by binary_integer;
12385     TYPE l_phpayout_basis_formula_type is table of okl_party_payment_hdr.payout_basis_formula%TYPE index by binary_integer;
12386     TYPE l_phpassthru_stre_type_id_type is table of okl_party_payment_hdr.passthru_stream_type_id%TYPE index by binary_integer;
12387 
12388     l_phid_tab l_phid_type;
12389     l_phdnz_chr_id_tab l_phdnz_chr_id_type;
12390     l_phcle_id_tab l_phcle_id_type;
12391     l_phppl_id_tab l_phppl_id_type;
12392     l_phpassthru_start_date_tab l_phpassthru_start_date_type;
12393     l_phpayout_basis_tab l_phpayout_basis_type;
12394     l_pheffective_from_tab l_pheffective_from_type;
12395     l_pheffective_to_tab l_pheffective_to_type;
12396     l_phobject_version_number_tab l_phobject_version_number_type;
12397     l_phpassthru_term_tab l_phpassthru_term_type;
12398     l_phpayout_basis_formula_tab l_phpayout_basis_formula_type;
12399     l_phpassthru_stre_type_id_tab l_phpassthru_stre_type_id_type;
12400 
12401     l_phid_tab2 l_phid_type;
12402     l_phdnz_chr_id_tab2 l_phdnz_chr_id_type;
12403     l_phcle_id_tab2 l_phcle_id_type;
12404     l_phppl_id_tab2 l_phppl_id_type;
12405     l_phpassthru_start_date_tab2 l_phpassthru_start_date_type;
12406     l_phpayout_basis_tab2 l_phpayout_basis_type;
12407     l_pheffective_from_tab2 l_pheffective_from_type;
12408     l_pheffective_to_tab2 l_pheffective_to_type;
12409     l_phobject_version_number_tab2 l_phobject_version_number_type;
12410     l_phpassthru_term_tab2 l_phpassthru_term_type;
12411     l_phpayout_basis_formula_tab2 l_phpayout_basis_formula_type;
12412     l_phpassthru_stre_type_id_tab2 l_phpassthru_stre_type_id_type;
12413 
12414 CURSOR C31(p_id NUMBER) IS
12415 SELECT
12416        a.id, a.dnz_chr_id, a.cle_id,
12417        a.ppl_id, a.passthru_start_date, a.payout_basis,
12418        a.effective_from, a.effective_to, a.object_version_number,
12419        a.passthru_term, a.payout_basis_formula, a.passthru_stream_type_id
12420 FROM   okl_party_payment_hdr a
12421 WHERE  a.dnz_chr_id = p_id;
12422 l_new_cle_id NUMBER;
12423 
12424 BEGIN
12425   NULL;
12426   OPEN C31(p_old_id);
12427   LOOP
12428     FETCH C31 BULK COLLECT INTO
12429      l_phid_tab2, l_phdnz_chr_id_tab2, l_phcle_id_tab2,
12430      l_phppl_id_tab2, l_phpassthru_start_date_tab2, l_phpayout_basis_tab2,
12431      l_pheffective_from_tab2, l_pheffective_to_tab2, l_phobject_version_number_tab2,
12432      l_phpassthru_term_tab2, l_phpayout_basis_formula_tab2, l_phpassthru_stre_type_id_tab2
12433     LIMIT G_BULK_SIZE;
12434     EXIT WHEN l_phid_tab2.COUNT = 0;
12435 
12436     FOR i IN l_phid_tab2.FIRST..l_phid_tab2.LAST
12437     LOOP
12438       l_phid_tab(l_party_payment_hdr_counter) := l_phid_tab2(i);
12439       -- Replace id
12440       l_phid_tab(l_party_payment_hdr_counter) := okc_p_util.raw_to_number(sys_guid());
12441 
12442       l_phid_mapping_tab(l_party_payment_hdr_counter).old_id :=
12443             l_phid_tab2(i);
12444       l_phid_mapping_tab(l_party_payment_hdr_counter).new_id :=
12445                                  l_phid_tab(l_party_payment_hdr_counter) ;
12446 
12447       l_phdnz_chr_id_tab(l_party_payment_hdr_counter) := l_phdnz_chr_id_tab2(i);
12448       l_phdnz_chr_id_tab(l_party_payment_hdr_counter) := p_new_id;
12449 
12450       l_phcle_id_tab(l_party_payment_hdr_counter) := l_phcle_id_tab2(i);
12451       l_new_cle_id := find_id(l_phcle_id_tab2(i));
12452 
12453       -- l_phcle_id_tab2 could be null for header evergreen passthru, dedey 11/09
12454       IF (l_phcle_id_tab2(i) IS NOT NULL) THEN
12455          IF (l_new_cle_id = -1) THEN
12456            IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
12457                         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR: CLE_ID to NEW_CLE_ID mapping not found');
12458            END IF;
12459            RAISE OKL_API.G_EXCEPTION_ERROR;
12460          END IF;
12461          l_phcle_id_tab(l_party_payment_hdr_counter) := l_new_cle_id;
12462       END IF;
12463 
12464       l_phppl_id_tab(l_party_payment_hdr_counter) := l_phppl_id_tab2(i);
12465       l_phpassthru_start_date_tab(l_party_payment_hdr_counter) := l_phpassthru_start_date_tab2(i);
12466       l_phpayout_basis_tab(l_party_payment_hdr_counter) := l_phpayout_basis_tab2(i);
12467       l_pheffective_from_tab(l_party_payment_hdr_counter) := l_pheffective_from_tab2(i);
12468       l_pheffective_to_tab(l_party_payment_hdr_counter) := l_pheffective_to_tab2(i);
12469       l_phobject_version_number_tab(l_party_payment_hdr_counter) := l_phobject_version_number_tab2(i);
12470       l_phpassthru_term_tab(l_party_payment_hdr_counter) := l_phpassthru_term_tab2(i);
12471       l_phpayout_basis_formula_tab(l_party_payment_hdr_counter) := l_phpayout_basis_formula_tab2(i);
12472       l_phpassthru_stre_type_id_tab(l_party_payment_hdr_counter) := l_phpassthru_stre_type_id_tab2(i);
12473 
12474       l_party_payment_hdr_counter := l_party_payment_hdr_counter + 1;
12475     END LOOP;
12476   END LOOP;
12477   CLOSE C31;
12478   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
12479       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_party_payment_hdr_counter=' || l_party_payment_hdr_counter);
12480   END IF;
12481   IF (l_party_payment_hdr_counter > 1) THEN
12482     sort_phid_mapping_tab;
12483     FORALL i IN l_phid_tab.FIRST..l_phid_tab.LAST
12484     INSERT INTO okl_party_payment_hdr (
12485        id, dnz_chr_id, cle_id,
12486        ppl_id, passthru_start_date, payout_basis,
12487        effective_from, effective_to, created_by,
12488        creation_date, last_updated_by, last_update_date,
12489        last_update_login, object_version_number, passthru_term,
12490        payout_basis_formula, passthru_stream_type_id
12491     ) VALUES (
12492        l_phid_tab(i), l_phdnz_chr_id_tab(i), l_phcle_id_tab(i),
12493        l_phppl_id_tab(i), l_phpassthru_start_date_tab(i), l_phpayout_basis_tab(i),
12494        l_pheffective_from_tab(i), l_pheffective_to_tab(i), l_created_by,
12495        SYSDATE, l_last_updated_by, SYSDATE,
12496        l_last_update_login, l_phobject_version_number_tab(i), l_phpassthru_term_tab(i),
12497        l_phpayout_basis_formula_tab(i), l_phpassthru_stre_type_id_tab(i)
12498     );
12499   END IF;
12500 
12501 EXCEPTION WHEN OTHERS THEN
12502   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
12503       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing l_phid_tab...l_phid_tab.COUNT=' || l_phid_tab.COUNT);
12504   END IF;
12505   IF (l_phid_tab.COUNT > 0) THEN
12506   for i in l_phID_tab.first..l_phID_tab.last
12507   loop
12508     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
12509           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ID('||i||')=' || l_phID_tab(i));
12510       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'DNZ_CHR_ID('||i||')=' || l_phDNZ_CHR_ID_tab(i));
12511       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'CLE_ID('||i||')=' || l_phCLE_ID_tab(i));
12512       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'PPL_ID('||i||')=' || l_phPPL_ID_tab(i));
12513       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'PASSTHRU_START_DATE('||i||')=' || l_phPASSTHRU_START_DATE_tab(i));
12514       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'PAYOUT_BASIS('||i||')=' || l_phPAYOUT_BASIS_tab(i));
12515       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'EFFECTIVE_FROM('||i||')=' || l_phEFFECTIVE_FROM_tab(i));
12516       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'EFFECTIVE_TO('||i||')=' || l_phEFFECTIVE_TO_tab(i));
12517       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OBJECT_VERSION_NUMBER('||i||')=' || l_phOBJECT_VERSION_NUMBER_tab(i));
12518       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'PASSTHRU_TERM('||i||')=' || l_phPASSTHRU_TERM_tab(i));
12519       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'PAYOUT_BASIS_FORMULA('||i||')=' || l_phPAYOUT_BASIS_FORMULA_tab(i));
12520       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'PASSTHRU_STREAM_TYPE_ID('||i||')=' || l_phPASSTHRU_STRE_TYPE_ID_tab(i));
12521     END IF;
12522   end loop;
12523   END IF;
12524   RAISE OKC_API.G_EXCEPTION_ERROR;
12525 
12526 END;
12527 
12528 PROCEDURE prepare_party_payment_dtls (p_old_id IN okc_k_party_roles_b.id%TYPE,
12529                                       p_new_id IN okc_k_party_roles_b.id%TYPE,
12530                                       p_flush IN VARCHAR2) IS
12531 CURSOR c23(p_id NUMBER) IS
12532 SELECT
12533      id, object_version_number, cpl_id,
12534      vendor_id, pay_site_id, payment_term_id,
12535      payment_method_code, pay_group_code, attribute_category,
12536      attribute1, attribute2, attribute3,
12537      attribute4, attribute5, attribute6,
12538      attribute7, attribute8, attribute9,
12539      attribute10, attribute11, attribute12,
12540      attribute13, attribute14, attribute15,
12541      created_by, creation_date, last_updated_by,
12542      last_update_date, last_update_login, payment_hdr_id,
12543      payment_start_date, payment_frequency, remit_days,
12544      disbursement_basis, disbursement_fixed_amount, disbursement_percent,
12545      processing_fee_basis, processing_fee_fixed_amount, processing_fee_percent,
12546      payment_basis,
12547       ORIG_CONTRACT_LINE_ID --sechawla 8677460  : PRB ESG Enhancements : copy this new column on rebook copy K
12548 FROM okl_party_payment_dtls
12549 WHERE cpl_id = p_id;
12550 
12551     l_ppid_tab2 l_ppid_type;
12552     l_ppobject_version_number_tab2 l_ppobject_version_number_type;
12553     l_ppcpl_id_tab2 l_ppcpl_id_type;
12554     l_ppvendor_id_tab2 l_ppvendor_id_type;
12555     l_pppay_site_id_tab2 l_pppay_site_id_type;
12556     l_pppayment_term_id_tab2 l_pppayment_term_id_type;
12557     l_pppayment_method_code_tab2 l_pppayment_method_code_type;
12558     l_pppay_group_code_tab2 l_pppay_group_code_type;
12559     l_ppattribute_category_tab2 l_ppattribute_category_type;
12560     l_ppattribute1_tab2 l_ppattribute1_type;
12561     l_ppattribute2_tab2 l_ppattribute2_type;
12562     l_ppattribute3_tab2 l_ppattribute3_type;
12563     l_ppattribute4_tab2 l_ppattribute4_type;
12564     l_ppattribute5_tab2 l_ppattribute5_type;
12565     l_ppattribute6_tab2 l_ppattribute6_type;
12566     l_ppattribute7_tab2 l_ppattribute7_type;
12567     l_ppattribute8_tab2 l_ppattribute8_type;
12568     l_ppattribute9_tab2 l_ppattribute9_type;
12569     l_ppattribute10_tab2 l_ppattribute10_type;
12570     l_ppattribute11_tab2 l_ppattribute11_type;
12571     l_ppattribute12_tab2 l_ppattribute12_type;
12572     l_ppattribute13_tab2 l_ppattribute13_type;
12573     l_ppattribute14_tab2 l_ppattribute14_type;
12574     l_ppattribute15_tab2 l_ppattribute15_type;
12575     l_ppcreated_by_tab2 l_ppcreated_by_type;
12576     l_ppcreation_date_tab2 l_ppcreation_date_type;
12577     l_pplast_updated_by_tab2 l_pplast_updated_by_type;
12578     l_pplast_update_date_tab2 l_pplast_update_date_type;
12579     l_pplast_update_login_tab2 l_pplast_update_login_type;
12580     l_pppayment_hdr_id_tab2 l_pppayment_hdr_id_type;
12581     l_pppayment_start_date_tab2 l_pppayment_start_date_type;
12582     l_pppayment_frequency_tab2 l_pppayment_frequency_type;
12583     l_ppremit_days_tab2 l_ppremit_days_type;
12584     l_ppdisbursement_basis_tab2 l_ppdisbursement_basis_type;
12585     l_ppdisbursement_fixed_am_tab2 l_ppdisbursement_fixed_am_type;
12586     l_ppdisbursement_percent_tab2 l_ppdisbursement_percent_type;
12587     l_ppprocessing_fee_basis_tab2 l_ppprocessing_fee_basis_type;
12588     l_ppprocessing_fee_fixedt_tab2 l_ppprocessing_fee_fixedt_type;
12589     l_ppprocessing_fee_percen_tab2 l_ppprocessing_fee_percen_type;
12590     l_pppayment_basis_tab2 l_pppayment_basis_type;
12591 
12592     l_ppORIG_CONTRACT_LINE_ID_tab2  l_ppORIG_CONTRACT_LINE_ID_type; --sechawla 8677460  : PRB ESG Enhancements :
12593     l_new_payment_hdr_id NUMBER;
12594 
12595 BEGIN
12596   IF (G_DEBUG_ENABLED = 'Y') THEN
12597     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
12598   END IF;
12599   OPEN c23(p_old_id);
12600   LOOP
12601     FETCH c23 bulk collect INTO
12602      l_ppid_tab2, l_ppobject_version_number_tab2, l_ppcpl_id_tab2,
12603      l_ppvendor_id_tab2, l_pppay_site_id_tab2, l_pppayment_term_id_tab2,
12604      l_pppayment_method_code_tab2, l_pppay_group_code_tab2, l_ppattribute_category_tab2,
12605      l_ppattribute1_tab2, l_ppattribute2_tab2, l_ppattribute3_tab2,
12606      l_ppattribute4_tab2, l_ppattribute5_tab2, l_ppattribute6_tab2,
12607      l_ppattribute7_tab2, l_ppattribute8_tab2, l_ppattribute9_tab2,
12608      l_ppattribute10_tab2, l_ppattribute11_tab2, l_ppattribute12_tab2,
12609      l_ppattribute13_tab2, l_ppattribute14_tab2, l_ppattribute15_tab2,
12610      l_ppcreated_by_tab2, l_ppcreation_date_tab2, l_pplast_updated_by_tab2,
12611      l_pplast_update_date_tab2, l_pplast_update_login_tab2, l_pppayment_hdr_id_tab2,
12612      l_pppayment_start_date_tab2, l_pppayment_frequency_tab2, l_ppremit_days_tab2,
12613      l_ppdisbursement_basis_tab2, l_ppdisbursement_fixed_am_tab2, l_ppdisbursement_percent_tab2,
12614      l_ppprocessing_fee_basis_tab2, l_ppprocessing_fee_fixedt_tab2, l_ppprocessing_fee_percen_tab2,
12615      l_pppayment_basis_tab2,
12616      l_ppORIG_CONTRACT_LINE_ID_tab2  --sechawla 8677460  : PRB ESG Enhancements
12617     limit G_BULK_SIZE;
12618     EXIT WHEN l_ppid_tab2.COUNT = 0;
12619     FOR i IN l_ppid_tab2.first..l_ppid_tab2.last
12620     LOOP
12621 
12622       l_ppid_tab(l_party_payment_dtls_counter) := l_ppid_tab2(i);
12623       -- Change id
12624       l_ppid_tab(l_party_payment_dtls_counter) := okc_p_util.raw_to_number(sys_guid());
12625 
12626       l_ppobject_version_number_tab(l_party_payment_dtls_counter) := l_ppobject_version_number_tab2(i);
12627       l_ppcpl_id_tab(l_party_payment_dtls_counter) := l_ppcpl_id_tab2(i);
12628       -- Change cpl_id
12629       l_ppcpl_id_tab(l_party_payment_dtls_counter) := p_new_id;
12630 
12631       l_ppvendor_id_tab(l_party_payment_dtls_counter) := l_ppvendor_id_tab2(i);
12632       l_pppay_site_id_tab(l_party_payment_dtls_counter) := l_pppay_site_id_tab2(i);
12633       l_pppayment_term_id_tab(l_party_payment_dtls_counter) := l_pppayment_term_id_tab2(i);
12634       l_pppayment_method_code_tab(l_party_payment_dtls_counter) := l_pppayment_method_code_tab2(i);
12635       l_pppay_group_code_tab(l_party_payment_dtls_counter) := l_pppay_group_code_tab2(i);
12636       l_ppattribute_category_tab(l_party_payment_dtls_counter) := l_ppattribute_category_tab2(i);
12637       l_ppattribute1_tab(l_party_payment_dtls_counter) := l_ppattribute1_tab2(i);
12638       l_ppattribute2_tab(l_party_payment_dtls_counter) := l_ppattribute2_tab2(i);
12639       l_ppattribute3_tab(l_party_payment_dtls_counter) := l_ppattribute3_tab2(i);
12640       l_ppattribute4_tab(l_party_payment_dtls_counter) := l_ppattribute4_tab2(i);
12641       l_ppattribute5_tab(l_party_payment_dtls_counter) := l_ppattribute5_tab2(i);
12642       l_ppattribute6_tab(l_party_payment_dtls_counter) := l_ppattribute6_tab2(i);
12643       l_ppattribute7_tab(l_party_payment_dtls_counter) := l_ppattribute7_tab2(i);
12644       l_ppattribute8_tab(l_party_payment_dtls_counter) := l_ppattribute8_tab2(i);
12645       l_ppattribute9_tab(l_party_payment_dtls_counter) := l_ppattribute9_tab2(i);
12646       l_ppattribute10_tab(l_party_payment_dtls_counter) := l_ppattribute10_tab2(i);
12647       l_ppattribute11_tab(l_party_payment_dtls_counter) := l_ppattribute11_tab2(i);
12648       l_ppattribute12_tab(l_party_payment_dtls_counter) := l_ppattribute12_tab2(i);
12649       l_ppattribute13_tab(l_party_payment_dtls_counter) := l_ppattribute13_tab2(i);
12650       l_ppattribute14_tab(l_party_payment_dtls_counter) := l_ppattribute14_tab2(i);
12651       l_ppattribute15_tab(l_party_payment_dtls_counter) := l_ppattribute15_tab2(i);
12652       l_ppcreated_by_tab(l_party_payment_dtls_counter) := l_ppcreated_by_tab2(i);
12653       l_ppcreation_date_tab(l_party_payment_dtls_counter) := l_ppcreation_date_tab2(i);
12654       l_pplast_updated_by_tab(l_party_payment_dtls_counter) := l_pplast_updated_by_tab2(i);
12655       l_pplast_update_date_tab(l_party_payment_dtls_counter) := l_pplast_update_date_tab2(i);
12656       l_pplast_update_login_tab(l_party_payment_dtls_counter) := l_pplast_update_login_tab2(i);
12657       l_pppayment_hdr_id_tab(l_party_payment_dtls_counter) := l_pppayment_hdr_id_tab2(i);
12658       IF (l_pppayment_hdr_id_tab(l_party_payment_dtls_counter) IS NOT NULL) THEN
12659         l_new_payment_hdr_id := find_phid_mapping_id(
12660                           l_pppayment_hdr_id_tab(l_party_payment_dtls_counter));
12661         l_pppayment_hdr_id_tab(l_party_payment_dtls_counter) := l_new_payment_hdr_id;
12662       END IF;
12663       l_pppayment_start_date_tab(l_party_payment_dtls_counter) := l_pppayment_start_date_tab2(i);
12664       l_pppayment_frequency_tab(l_party_payment_dtls_counter) := l_pppayment_frequency_tab2(i);
12665       l_ppremit_days_tab(l_party_payment_dtls_counter) := l_ppremit_days_tab2(i);
12666       l_ppdisbursement_basis_tab(l_party_payment_dtls_counter) := l_ppdisbursement_basis_tab2(i);
12667       l_ppdisbursement_fixed_am_tab(l_party_payment_dtls_counter) := l_ppdisbursement_fixed_am_tab2(i);
12668       l_ppdisbursement_percent_tab(l_party_payment_dtls_counter) := l_ppdisbursement_percent_tab2(i);
12669       l_ppprocessing_fee_basis_tab(l_party_payment_dtls_counter) := l_ppprocessing_fee_basis_tab2(i);
12670       l_ppprocessing_fee_fixedt_tab(l_party_payment_dtls_counter) := l_ppprocessing_fee_fixedt_tab2(i);
12671       l_ppprocessing_fee_percen_tab(l_party_payment_dtls_counter) := l_ppprocessing_fee_percen_tab2(i);
12672       l_pppayment_basis_tab(l_party_payment_dtls_counter) := l_pppayment_basis_tab2(i);
12673 
12674       --sechawla 8677460  : PRB ESG Enhancements
12675       IF p_trans_type = 'CRB' THEN -- insert orig contract line id only if it is a rebook copy
12676          l_ppORIG_CONTRACT_LINE_ID_tab(l_party_payment_dtls_counter) :=  l_ppORIG_CONTRACT_LINE_ID_tab2(i);
12677       ELSE
12678          l_ppORIG_CONTRACT_LINE_ID_tab(l_party_payment_dtls_counter) := NULL;
12679 	  END IF;
12680 
12681       l_party_payment_dtls_counter := l_party_payment_dtls_counter + 1;
12682 
12683     END LOOP;
12684   END LOOP;
12685   CLOSE c23;
12686 
12687   IF (p_flush = 'Y') THEN
12688     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
12689           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_party_payment_dtls_counter=' || l_party_payment_dtls_counter || ' l_ppid_tab.count=' || l_ppid_tab.COUNT);
12690     END IF;
12691     IF (l_party_payment_dtls_counter > 1) THEN
12692       forall i IN l_ppid_tab.first..l_ppid_tab.last
12693       INSERT INTO okl_party_payment_dtls (
12694        id, object_version_number, cpl_id,
12695        vendor_id, pay_site_id, payment_term_id,
12696        payment_method_code, pay_group_code, attribute_category,
12697        attribute1, attribute2, attribute3,
12698        attribute4, attribute5, attribute6,
12699        attribute7, attribute8, attribute9,
12700        attribute10, attribute11, attribute12,
12701        attribute13, attribute14, attribute15,
12702        created_by, creation_date, last_updated_by,
12703        last_update_date, last_update_login, payment_hdr_id,
12704        payment_start_date, payment_frequency, remit_days,
12705        disbursement_basis, disbursement_fixed_amount, disbursement_percent,
12706        processing_fee_basis, processing_fee_fixed_amount, processing_fee_percent,
12707        payment_basis,
12708        ORIG_CONTRACT_LINE_ID --sechawla 8677460  : PRB ESG Enhancements : copy this new column on rebook copy contract
12709       ) VALUES (
12710        l_ppid_tab(i), l_ppobject_version_number_tab(i), l_ppcpl_id_tab(i),
12711        l_ppvendor_id_tab(i), l_pppay_site_id_tab(i), l_pppayment_term_id_tab(i),
12712        l_pppayment_method_code_tab(i), l_pppay_group_code_tab(i), l_ppattribute_category_tab(i),
12713        l_ppattribute1_tab(i), l_ppattribute2_tab(i), l_ppattribute3_tab(i),
12714        l_ppattribute4_tab(i), l_ppattribute5_tab(i), l_ppattribute6_tab(i),
12715        l_ppattribute7_tab(i), l_ppattribute8_tab(i), l_ppattribute9_tab(i),
12716        l_ppattribute10_tab(i), l_ppattribute11_tab(i), l_ppattribute12_tab(i),
12717        l_ppattribute13_tab(i), l_ppattribute14_tab(i), l_ppattribute15_tab(i),
12718        l_created_by, SYSDATE, l_last_updated_by,
12719        SYSDATE, l_last_update_login, l_pppayment_hdr_id_tab(i),
12720        l_pppayment_start_date_tab(i), l_pppayment_frequency_tab(i), l_ppremit_days_tab(i),
12721        l_ppdisbursement_basis_tab(i), l_ppdisbursement_fixed_am_tab(i), l_ppdisbursement_percent_tab(i),
12722        l_ppprocessing_fee_basis_tab(i), l_ppprocessing_fee_fixedt_tab(i), l_ppprocessing_fee_percen_tab(i),
12723        l_pppayment_basis_tab(i),
12724        l_ppORIG_CONTRACT_LINE_ID_tab(i) --sechawla 8677460  : PRB ESG Enhancements
12725       );
12726     END IF;
12727   END IF;
12728 
12729 EXCEPTION WHEN OTHERS THEN
12730 
12731   x_return_status := OKL_API.G_RET_STS_ERROR;
12732   /*OKL_API.set_message(p_app_name => 'OKL',
12733                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
12734                       p_token1 => 'ASSET_NUMBER',
12735                       p_token1_value => 'prepare_party_payment_dtls');*/
12736     /* DEBUG */
12737   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
12738       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
12739     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing prepare_party_payment_dtls:l_ppid_tab.count=' ||l_ppid_tab.COUNT || ' ...');
12740   END IF;
12741   IF (l_ppid_tab.COUNT > 0) THEN
12742   FOR i IN l_ppid_tab.first..l_ppid_tab.last
12743   LOOP
12744     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
12745           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppid_tab('||i||')=' || l_ppid_tab(i));
12746       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppobject_version_number_tab('||i||')=' || l_ppobject_version_number_tab(i));
12747       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppcpl_id_tab('||i||')=' || l_ppcpl_id_tab(i));
12748       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppvendor_id_tab('||i||')=' || l_ppvendor_id_tab(i));
12749       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_pppay_site_id_tab('||i||')=' || l_pppay_site_id_tab(i));
12750       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_pppayment_term_id_tab('||i||')=' || l_pppayment_term_id_tab(i));
12751       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_pppayment_method_code_tab('||i||')=' || l_pppayment_method_code_tab(i));
12752       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_pppay_group_code_tab('||i||')=' || l_pppay_group_code_tab(i));
12753       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute_category_tab('||i||')=' || l_ppattribute_category_tab(i));
12754       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute1_tab('||i||')=' || l_ppattribute1_tab(i));
12755       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute2_tab('||i||')=' || l_ppattribute2_tab(i));
12756       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute3_tab('||i||')=' || l_ppattribute3_tab(i));
12757       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute4_tab('||i||')=' || l_ppattribute4_tab(i));
12758       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute5_tab('||i||')=' || l_ppattribute5_tab(i));
12759       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute6_tab('||i||')=' || l_ppattribute6_tab(i));
12760       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute7_tab('||i||')=' || l_ppattribute7_tab(i));
12761       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute8_tab('||i||')=' || l_ppattribute8_tab(i));
12762       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute9_tab('||i||')=' || l_ppattribute9_tab(i));
12763       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute10_tab('||i||')=' || l_ppattribute10_tab(i));
12764       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute11_tab('||i||')=' || l_ppattribute11_tab(i));
12765       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute12_tab('||i||')=' || l_ppattribute12_tab(i));
12766       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute13_tab('||i||')=' || l_ppattribute13_tab(i));
12767       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute14_tab('||i||')=' || l_ppattribute14_tab(i));
12768       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute15_tab('||i||')=' || l_ppattribute15_tab(i));
12769       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppPAYMENT_HDR_ID_tab('||i||')=' || l_ppPAYMENT_HDR_ID_tab(i));
12770       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppPAYMENT_START_DATE_tab('||i||')=' || l_ppPAYMENT_START_DATE_tab(i));
12771       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppPAYMENT_FREQUENCY_tab('||i||')=' || l_ppPAYMENT_FREQUENCY_tab(i));
12772       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppREMIT_DAYS_tab('||i||')=' || l_ppREMIT_DAYS_tab(i));
12773       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppDISBURSEMENT_BASIS_tab('||i||')=' || l_ppDISBURSEMENT_BASIS_tab(i));
12774       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppDISBURSEMENT_FIXED_AMOUNT_tab('||i||')=' || l_ppDISBURSEMENT_FIXED_AM_tab(i));
12775       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppDISBURSEMENT_PERCENT_tab('||i||')=' || l_ppDISBURSEMENT_PERCENT_tab(i));
12776       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppPROCESSING_FEE_BASIS_tab('||i||')=' || l_ppPROCESSING_FEE_BASIS_tab(i));
12777       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppPROCESSING_FEE_FIXED_AMOUNT_tab('||i||')=' || l_ppPROCESSING_FEE_FIXEDt_tab(i));
12778       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppPROCESSING_FEE_PERCENT_tab('||i||')=' || l_ppPROCESSING_FEE_PERCEN_tab(i));
12779       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppPAYMENT_BASIS_tab('||i||')=' || l_ppPAYMENT_BASIS_tab(i));
12780     END IF;
12781   END LOOP;
12782   END IF;
12783 
12784   RAISE OKC_API.G_EXCEPTION_ERROR;
12785 
12786 END; /* prepare_party_payment_dtls */
12787 
12788 FUNCTION find_vid_mapping_id(p_id IN NUMBER) RETURN VARCHAR2 IS
12789 hi NUMBER;
12790 lo NUMBER;
12791 m NUMBER;
12792 BEGIN
12793   lo := 1;
12794   hi := l_vid_counter - 1;
12795   WHILE (lo <= hi) LOOP
12796     m := FLOOR((hi + lo)/2);
12797     IF (l_vid_mapping_tab(m).cle_id = p_id) THEN
12798       RETURN l_vid_mapping_tab(m).object1_id1;
12799     ELSIF (l_vid_mapping_tab(m).cle_id > p_id) THEN
12800       hi := m - 1;
12801     ELSE
12802       lo := m + 1;
12803     END IF;
12804   END LOOP;
12805   RETURN NULL;
12806 END;  /* find_vid_mapping_id */
12807 
12808 PROCEDURE sort_vid_mapping_tab IS
12809   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
12810   --a numtabtype;
12811   l_stack numtabtype;
12812   l_stack_index NUMBER := 0;
12813   N NUMBER;
12814   R NUMBER;
12815   L NUMBER;
12816   P NUMBER;
12817   W NUMBER;
12818   W2 VARCHAR2(40);
12819   X NUMBER;
12820   I NUMBER;
12821   J NUMBER;
12822 BEGIN
12823   IF (G_DEBUG_ENABLED = 'Y') THEN
12824     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
12825   END IF;
12826   NULL;
12827 
12828   N := l_vid_counter - 1;
12829   IF (N < 2) THEN
12830     RETURN;
12831   END IF;
12832   l_stack_index := l_stack_index + 1;
12833   l_stack(l_stack_index) := 1;
12834   l_stack_index := l_stack_index + 1;
12835   l_stack(l_stack_index) := N;
12836 
12837   --dbms_output.put_line('l_stack_index=' || l_stack_index);
12838   WHILE l_stack_index > 0
12839   LOOP
12840     R := l_stack(l_stack_index);
12841     l_stack_index := l_stack_index - 1;
12842     L := l_stack(l_stack_index);
12843     l_stack_index := l_stack_index - 1;
12844     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
12845     WHILE 1=1
12846     LOOP -- loop until L >= R
12847       I := L;
12848       J := R;
12849       P := FLOOR((L+R)/2);
12850       --if (a(L) > a(P)) then
12851       IF (l_vid_mapping_tab(L).cle_id > l_vid_mapping_tab(P).cle_id)
12852       THEN
12853         W := l_vid_mapping_tab(L).cle_id;
12854         W2 := l_vid_mapping_tab(L).object1_id1;
12855         l_vid_mapping_tab(L).cle_id :=l_vid_mapping_tab(P).cle_id;
12856         l_vid_mapping_tab(L).object1_id1 :=l_vid_mapping_tab(P).object1_id1;
12857         l_vid_mapping_tab(P).cle_id := W;
12858         l_vid_mapping_tab(P).object1_id1 := W2;
12859       END IF;
12860       --if (a(L) > a(R)) then
12861       IF (l_vid_mapping_tab(L).cle_id > l_vid_mapping_tab(R).cle_id)
12862       THEN
12863         W := l_vid_mapping_tab(L).cle_id;
12864         W2 := l_vid_mapping_tab(L).object1_id1;
12865         l_vid_mapping_tab(L).cle_id :=l_vid_mapping_tab(R).cle_id;
12866         l_vid_mapping_tab(L).object1_id1 :=l_vid_mapping_tab(R).object1_id1;
12867         l_vid_mapping_tab(R).cle_id := W;
12868         l_vid_mapping_tab(R).object1_id1 := W2;
12869       END IF;
12870       --if (a(P) > a(R)) then
12871       IF (l_vid_mapping_tab(P).cle_id > l_vid_mapping_tab(R).cle_id)
12872       THEN
12873         W := l_vid_mapping_tab(P).cle_id;
12874         W2 := l_vid_mapping_tab(P).object1_id1;
12875         l_vid_mapping_tab(P).cle_id :=l_vid_mapping_tab(R).cle_id;
12876         l_vid_mapping_tab(P).object1_id1 :=l_vid_mapping_tab(R).object1_id1;
12877         l_vid_mapping_tab(R).cle_id := W;
12878         l_vid_mapping_tab(R).object1_id1 := W2;
12879       END IF;
12880       --X := a(P);
12881       X := l_vid_mapping_tab(P).cle_id;
12882       WHILE 1=1
12883       LOOP    -- until I > J
12884         --while (a(I) < X) loop
12885         WHILE (l_vid_mapping_tab(I).cle_id < X) LOOP
12886           I := I + 1;
12887         END LOOP;
12888         WHILE (X < l_vid_mapping_tab(J).cle_id) LOOP
12889           J := J - 1;
12890         END LOOP;
12891         IF (I <= J) THEN
12892           W := l_vid_mapping_tab(I).cle_id;
12893           W2 := l_vid_mapping_tab(I).object1_id1;
12894           l_vid_mapping_tab(I).cle_id :=l_vid_mapping_tab(J).cle_id;
12895           l_vid_mapping_tab(I).object1_id1 :=l_vid_mapping_tab(J).object1_id1;
12896           l_vid_mapping_tab(J).cle_id := W;
12897           l_vid_mapping_tab(J).object1_id1 := W2;
12898           I := I + 1;
12899           J := J - 1;
12900         END IF;
12901         EXIT WHEN I > J;
12902       END LOOP;
12903       IF (J - L < R - I) THEN
12904         IF (I < R) THEN
12905           --push(I); push(R);
12906           l_stack_index := l_stack_index + 1;
12907           l_stack(l_stack_index) := I;
12908           l_stack_index := l_stack_index + 1;
12909           l_stack(l_stack_index) := R;
12910           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
12911         END IF;
12912         R := J;
12913       ELSE
12914         IF (L < J) THEN
12915           --push(L); push(J);
12916           l_stack_index := l_stack_index + 1;
12917           l_stack(l_stack_index) := L;
12918           l_stack_index := l_stack_index + 1;
12919           l_stack(l_stack_index) := J;
12920           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
12921         END IF;
12922         L := I;
12923       END IF;
12924 
12925       EXIT WHEN (L >= R);
12926     END LOOP;
12927   END LOOP;
12928 
12929 EXCEPTION WHEN OTHERS THEN
12930 
12931   x_return_status := OKL_API.G_RET_STS_ERROR;
12932   /*OKL_API.set_message(p_app_name => 'OKL',
12933                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
12934                       p_token1 => 'ASSET_NUMBER',
12935                       p_token1_value => 'sort_vid_mapping_tab');*/
12936     /* DEBUG */
12937   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
12938       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
12939     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_vid_mapping_tab:l_vid_mapping_tab N=' || N || ' ...');
12940   END IF;
12941 
12942   --print array
12943   FOR i IN 1..N
12944   LOOP
12945     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
12946           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_vid_mapping_tab('||i||')=' || l_vid_mapping_tab(i).cle_id || ':' || l_vid_mapping_tab(i).object1_id1);
12947     END IF;
12948   END LOOP;
12949 
12950   RAISE OKC_API.G_EXCEPTION_ERROR;
12951 
12952 END;  /* sort_vid_mapping_tab */
12953 
12954 PROCEDURE insert_okc_k_party_roles(p_old_id IN okc_k_headers_b.id%TYPE,
12955                                    p_new_id IN okc_k_headers_b.id%TYPE) IS
12956 CURSOR c9(p_id okc_k_party_roles_b.dnz_chr_id%TYPE) IS
12957 SELECT
12958      id, chr_id, cle_id,
12959      dnz_chr_id, rle_code, object1_id1,
12960      object1_id2, jtot_object1_code, object_version_number,
12961      created_by, creation_date, last_updated_by,
12962      last_update_date, code, facility,
12963      minority_group_lookup_code, small_business_flag, women_owned_flag,
12964      last_update_login, attribute_category, attribute1,
12965      attribute2, attribute3, attribute4,
12966      attribute5, attribute6, attribute7,
12967      attribute8, attribute9, attribute10,
12968      attribute11, attribute12, attribute13,
12969      attribute14, attribute15, security_group_id,
12970      cpl_id, primary_yn, bill_to_site_use_id,
12971      cust_acct_id, id orig_system_id1
12972   FROM okc_k_party_roles_b
12973   WHERE dnz_chr_id = p_id
12974   AND (
12975     chr_id = chr_id
12976     OR (
12977         NVL(p_copy_lines_yn, 'N') = 'Y'
12978         AND cle_id IS NOT NULL
12979        )
12980   );
12981 
12982     TYPE l_id_type IS TABLE OF okc_k_party_roles_b.id%TYPE INDEX BY BINARY_INTEGER;
12983     TYPE l_chr_id_type IS TABLE OF okc_k_party_roles_b.chr_id%TYPE INDEX BY BINARY_INTEGER;
12984     TYPE l_cle_id_type IS TABLE OF okc_k_party_roles_b.cle_id%TYPE INDEX BY BINARY_INTEGER;
12985     TYPE l_dnz_chr_id_type IS TABLE OF okc_k_party_roles_b.dnz_chr_id%TYPE INDEX BY BINARY_INTEGER;
12986     TYPE l_rle_code_type IS TABLE OF okc_k_party_roles_b.rle_code%TYPE INDEX BY BINARY_INTEGER;
12987     TYPE l_object1_id1_type IS TABLE OF okc_k_party_roles_b.object1_id1%TYPE INDEX BY BINARY_INTEGER;
12988     TYPE l_object1_id2_type IS TABLE OF okc_k_party_roles_b.object1_id2%TYPE INDEX BY BINARY_INTEGER;
12989     TYPE l_jtot_object1_code_type IS TABLE OF okc_k_party_roles_b.jtot_object1_code%TYPE INDEX BY BINARY_INTEGER;
12990     TYPE l_object_version_number_type IS TABLE OF okc_k_party_roles_b.object_version_number%TYPE INDEX BY BINARY_INTEGER;
12991     TYPE l_created_by_type IS TABLE OF okc_k_party_roles_b.created_by%TYPE INDEX BY BINARY_INTEGER;
12992     TYPE l_creation_date_type IS TABLE OF okc_k_party_roles_b.creation_date%TYPE INDEX BY BINARY_INTEGER;
12993     TYPE l_last_updated_by_type IS TABLE OF okc_k_party_roles_b.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
12994     TYPE l_last_update_date_type IS TABLE OF okc_k_party_roles_b.last_update_date%TYPE INDEX BY BINARY_INTEGER;
12995     TYPE l_code_type IS TABLE OF okc_k_party_roles_b.code%TYPE INDEX BY BINARY_INTEGER;
12996     TYPE l_facility_type IS TABLE OF okc_k_party_roles_b.facility%TYPE INDEX BY BINARY_INTEGER;
12997     TYPE l_minority_group_lookup_c_type IS TABLE OF okc_k_party_roles_b.minority_group_lookup_code%TYPE INDEX BY BINARY_INTEGER;
12998     TYPE l_small_business_flag_type IS TABLE OF okc_k_party_roles_b.small_business_flag%TYPE INDEX BY BINARY_INTEGER;
12999     TYPE l_women_owned_flag_type IS TABLE OF okc_k_party_roles_b.women_owned_flag%TYPE INDEX BY BINARY_INTEGER;
13000     TYPE l_last_update_login_type IS TABLE OF okc_k_party_roles_b.last_update_login%TYPE INDEX BY BINARY_INTEGER;
13001     TYPE l_attribute_category_type IS TABLE OF okc_k_party_roles_b.attribute_category%TYPE INDEX BY BINARY_INTEGER;
13002     TYPE l_attribute1_type IS TABLE OF okc_k_party_roles_b.attribute1%TYPE INDEX BY BINARY_INTEGER;
13003     TYPE l_attribute2_type IS TABLE OF okc_k_party_roles_b.attribute2%TYPE INDEX BY BINARY_INTEGER;
13004     TYPE l_attribute3_type IS TABLE OF okc_k_party_roles_b.attribute3%TYPE INDEX BY BINARY_INTEGER;
13005     TYPE l_attribute4_type IS TABLE OF okc_k_party_roles_b.attribute4%TYPE INDEX BY BINARY_INTEGER;
13006     TYPE l_attribute5_type IS TABLE OF okc_k_party_roles_b.attribute5%TYPE INDEX BY BINARY_INTEGER;
13007     TYPE l_attribute6_type IS TABLE OF okc_k_party_roles_b.attribute6%TYPE INDEX BY BINARY_INTEGER;
13008     TYPE l_attribute7_type IS TABLE OF okc_k_party_roles_b.attribute7%TYPE INDEX BY BINARY_INTEGER;
13009     TYPE l_attribute8_type IS TABLE OF okc_k_party_roles_b.attribute8%TYPE INDEX BY BINARY_INTEGER;
13010     TYPE l_attribute9_type IS TABLE OF okc_k_party_roles_b.attribute9%TYPE INDEX BY BINARY_INTEGER;
13011     TYPE l_attribute10_type IS TABLE OF okc_k_party_roles_b.attribute10%TYPE INDEX BY BINARY_INTEGER;
13012     TYPE l_attribute11_type IS TABLE OF okc_k_party_roles_b.attribute11%TYPE INDEX BY BINARY_INTEGER;
13013     TYPE l_attribute12_type IS TABLE OF okc_k_party_roles_b.attribute12%TYPE INDEX BY BINARY_INTEGER;
13014     TYPE l_attribute13_type IS TABLE OF okc_k_party_roles_b.attribute13%TYPE INDEX BY BINARY_INTEGER;
13015     TYPE l_attribute14_type IS TABLE OF okc_k_party_roles_b.attribute14%TYPE INDEX BY BINARY_INTEGER;
13016     TYPE l_attribute15_type IS TABLE OF okc_k_party_roles_b.attribute15%TYPE INDEX BY BINARY_INTEGER;
13017     TYPE l_security_group_id_type IS TABLE OF okc_k_party_roles_b.security_group_id%TYPE INDEX BY BINARY_INTEGER;
13018     TYPE l_cpl_id_type IS TABLE OF okc_k_party_roles_b.cpl_id%TYPE INDEX BY BINARY_INTEGER;
13019     TYPE l_primary_yn_type IS TABLE OF okc_k_party_roles_b.primary_yn%TYPE INDEX BY BINARY_INTEGER;
13020     TYPE l_bill_to_site_use_id_type IS TABLE OF okc_k_party_roles_b.bill_to_site_use_id%TYPE INDEX BY BINARY_INTEGER;
13021     TYPE l_cust_acct_id_type IS TABLE OF okc_k_party_roles_b.cust_acct_id%TYPE INDEX BY BINARY_INTEGER;
13022     TYPE l_orig_system_id1_type IS TABLE OF okc_k_party_roles_b.orig_system_id1%TYPE INDEX BY BINARY_INTEGER;
13023 
13024     l_id_tab_old l_id_type;
13025 
13026     l_id_tab l_id_type;
13027     l_chr_id_tab l_chr_id_type;
13028     l_cle_id_tab l_cle_id_type;
13029     l_dnz_chr_id_tab l_dnz_chr_id_type;
13030     l_rle_code_tab l_rle_code_type;
13031     l_object1_id1_tab l_object1_id1_type;
13032     l_object1_id2_tab l_object1_id2_type;
13033     l_jtot_object1_code_tab l_jtot_object1_code_type;
13034     l_object_version_number_tab l_object_version_number_type;
13035     l_created_by_tab l_created_by_type;
13036     l_creation_date_tab l_creation_date_type;
13037     l_last_updated_by_tab l_last_updated_by_type;
13038     l_last_update_date_tab l_last_update_date_type;
13039     l_code_tab l_code_type;
13040     l_facility_tab l_facility_type;
13041     l_minority_group_lookup_c_tab l_minority_group_lookup_c_type;
13042     l_small_business_flag_tab l_small_business_flag_type;
13043     l_women_owned_flag_tab l_women_owned_flag_type;
13044     l_last_update_login_tab l_last_update_login_type;
13045     l_attribute_category_tab l_attribute_category_type;
13046     l_attribute1_tab l_attribute1_type;
13047     l_attribute2_tab l_attribute2_type;
13048     l_attribute3_tab l_attribute3_type;
13049     l_attribute4_tab l_attribute4_type;
13050     l_attribute5_tab l_attribute5_type;
13051     l_attribute6_tab l_attribute6_type;
13052     l_attribute7_tab l_attribute7_type;
13053     l_attribute8_tab l_attribute8_type;
13054     l_attribute9_tab l_attribute9_type;
13055     l_attribute10_tab l_attribute10_type;
13056     l_attribute11_tab l_attribute11_type;
13057     l_attribute12_tab l_attribute12_type;
13058     l_attribute13_tab l_attribute13_type;
13059     l_attribute14_tab l_attribute14_type;
13060     l_attribute15_tab l_attribute15_type;
13061     l_security_group_id_tab l_security_group_id_type;
13062     l_cpl_id_tab l_cpl_id_type;
13063     l_primary_yn_tab l_primary_yn_type;
13064     l_bill_to_site_use_id_tab l_bill_to_site_use_id_type;
13065     l_cust_acct_id_tab l_cust_acct_id_type;
13066     l_orig_system_id1_tab l_orig_system_id1_type;
13067 
13068     l_id_tab2 l_id_type;
13069     l_chr_id_tab2 l_chr_id_type;
13070     l_cle_id_tab2 l_cle_id_type;
13071     l_dnz_chr_id_tab2 l_dnz_chr_id_type;
13072     l_rle_code_tab2 l_rle_code_type;
13073     l_object1_id1_tab2 l_object1_id1_type;
13074     l_object1_id2_tab2 l_object1_id2_type;
13075     l_jtot_object1_code_tab2 l_jtot_object1_code_type;
13076     l_object_version_number_tab2 l_object_version_number_type;
13077     l_created_by_tab2 l_created_by_type;
13078     l_creation_date_tab2 l_creation_date_type;
13079     l_last_updated_by_tab2 l_last_updated_by_type;
13080     l_last_update_date_tab2 l_last_update_date_type;
13081     l_code_tab2 l_code_type;
13082     l_facility_tab2 l_facility_type;
13083     l_minority_group_lookup_c_tab2 l_minority_group_lookup_c_type;
13084     l_small_business_flag_tab2 l_small_business_flag_type;
13085     l_women_owned_flag_tab2 l_women_owned_flag_type;
13086     l_last_update_login_tab2 l_last_update_login_type;
13087     l_attribute_category_tab2 l_attribute_category_type;
13088     l_attribute1_tab2 l_attribute1_type;
13089     l_attribute2_tab2 l_attribute2_type;
13090     l_attribute3_tab2 l_attribute3_type;
13091     l_attribute4_tab2 l_attribute4_type;
13092     l_attribute5_tab2 l_attribute5_type;
13093     l_attribute6_tab2 l_attribute6_type;
13094     l_attribute7_tab2 l_attribute7_type;
13095     l_attribute8_tab2 l_attribute8_type;
13096     l_attribute9_tab2 l_attribute9_type;
13097     l_attribute10_tab2 l_attribute10_type;
13098     l_attribute11_tab2 l_attribute11_type;
13099     l_attribute12_tab2 l_attribute12_type;
13100     l_attribute13_tab2 l_attribute13_type;
13101     l_attribute14_tab2 l_attribute14_type;
13102     l_attribute15_tab2 l_attribute15_type;
13103     l_security_group_id_tab2 l_security_group_id_type;
13104     l_cpl_id_tab2 l_cpl_id_type;
13105     l_primary_yn_tab2 l_primary_yn_type;
13106     l_bill_to_site_use_id_tab2 l_bill_to_site_use_id_type;
13107     l_cust_acct_id_tab2 l_cust_acct_id_type;
13108     l_orig_system_id1_tab2 l_orig_system_id1_type;
13109 
13110     l_loop_counter NUMBER := 0;
13111     l_new_cle_id NUMBER := 0;
13112 
13113 BEGIN
13114   IF (G_DEBUG_ENABLED = 'Y') THEN
13115     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
13116   END IF;
13117   NULL;
13118   OPEN c9(p_old_id);
13119   LOOP
13120     FETCH c9 bulk collect INTO
13121       l_id_tab2, l_chr_id_tab2, l_cle_id_tab2,
13122       l_dnz_chr_id_tab2, l_rle_code_tab2, l_object1_id1_tab2,
13123       l_object1_id2_tab2, l_jtot_object1_code_tab2, l_object_version_number_tab2,
13124       l_created_by_tab2, l_creation_date_tab2, l_last_updated_by_tab2,
13125       l_last_update_date_tab2, l_code_tab2, l_facility_tab2,
13126       l_minority_group_lookup_c_tab2, l_small_business_flag_tab2, l_women_owned_flag_tab2,
13127       l_last_update_login_tab2, l_attribute_category_tab2, l_attribute1_tab2,
13128       l_attribute2_tab2, l_attribute3_tab2, l_attribute4_tab2,
13129       l_attribute5_tab2, l_attribute6_tab2, l_attribute7_tab2,
13130       l_attribute8_tab2, l_attribute9_tab2, l_attribute10_tab2,
13131       l_attribute11_tab2, l_attribute12_tab2, l_attribute13_tab2,
13132       l_attribute14_tab2, l_attribute15_tab2, l_security_group_id_tab2,
13133       l_cpl_id_tab2, l_primary_yn_tab2, l_bill_to_site_use_id_tab2,
13134       l_cust_acct_id_tab2, l_orig_system_id1_tab2
13135     limit G_BULK_SIZE;
13136     EXIT WHEN l_id_tab2.COUNT = 0;
13137 
13138     FOR i IN l_id_tab2.first..l_id_tab2.last
13139     LOOP
13140       l_loop_counter := l_loop_counter + 1;
13141 
13142       -- Store old ids
13143       l_id_tab_old(l_loop_counter) := l_id_tab2(i);
13144 
13145       l_id_tab(l_loop_counter) := l_id_tab2(i);
13146 
13147       -- Store party old_id and new_id in mapping table
13148       l_party_id_mapping_tab(l_party_counter).old_id := l_id_tab2(i);
13149 
13150       -- Replace l_id_tab
13151       l_id_tab(l_loop_counter) := okc_p_util.raw_to_number(sys_guid());
13152       l_prid_tab(l_loop_counter) := l_id_tab(l_loop_counter);
13153 
13154       l_party_id_mapping_tab(l_party_counter).new_id := l_id_tab(l_loop_counter);
13155       l_chr_id_tab(l_loop_counter) := l_chr_id_tab2(i);
13156 
13157       -- Replace l_chr_id_tab
13158       IF (l_chr_id_tab(l_loop_counter) IS NOT NULL) THEN
13159         l_chr_id_tab(l_loop_counter) := p_new_id;
13160       END IF;
13161 
13162       l_cle_id_tab(l_loop_counter) := l_cle_id_tab2(i);
13163 
13164       -- Replace l_cle_id_tab
13165       IF (l_cle_id_tab(l_loop_counter) IS NOT NULL) THEN
13166         l_new_cle_id := find_mapping_id(l_cle_id_tab(l_loop_counter));
13167         IF (l_new_cle_id = -1) THEN
13168           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13169                       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR : Mapping id not found for ' || l_cle_id_tab(l_loop_counter));
13170           END IF;
13171           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13172         END IF;
13173         l_cle_id_tab(l_loop_counter) := l_new_cle_id;
13174       END IF;
13175 
13176       l_dnz_chr_id_tab(l_loop_counter) := l_dnz_chr_id_tab2(i);
13177 
13178       -- Replace dnz_chr_id
13179       l_dnz_chr_id_tab(l_loop_counter) := p_new_id;
13180 
13181       l_rle_code_tab(l_loop_counter) := l_rle_code_tab2(i);
13182 
13183       l_object1_id1_tab(l_loop_counter) := l_object1_id1_tab2(i);
13184       l_probject1_id1_tab(l_loop_counter) := l_object1_id1_tab(l_loop_counter);
13185 
13186       -- Store vendor id mapping for business event processing only
13187       IF (l_rle_code_tab(l_loop_counter) = 'OKL_VENDOR' AND
13188           l_cle_id_tab(l_loop_counter) IS NOT NULL) THEN
13189         l_vid_mapping_tab(l_vid_counter).cle_id :=  l_cle_id_tab(l_loop_counter);
13190         l_vid_mapping_tab(l_vid_counter).object1_id1 :=  l_object1_id1_tab(l_loop_counter);
13191         l_vid_counter := l_vid_counter + 1;
13192       END IF;
13193 
13194 
13195       l_object1_id2_tab(l_loop_counter) := l_object1_id2_tab2(i);
13196       l_jtot_object1_code_tab(l_loop_counter) := l_jtot_object1_code_tab2(i);
13197       l_object_version_number_tab(l_loop_counter) := l_object_version_number_tab2(i);
13198       l_created_by_tab(l_loop_counter) := l_created_by_tab2(i);
13199       l_creation_date_tab(l_loop_counter) := l_creation_date_tab2(i);
13200       l_last_updated_by_tab(l_loop_counter) := l_last_updated_by_tab2(i);
13201       l_last_update_date_tab(l_loop_counter) := l_last_update_date_tab2(i);
13202       l_code_tab(l_loop_counter) := l_code_tab2(i);
13203       l_facility_tab(l_loop_counter) := l_facility_tab2(i);
13204       l_minority_group_lookup_c_tab(l_loop_counter) := l_minority_group_lookup_c_tab2(i);
13205       l_small_business_flag_tab(l_loop_counter) := l_small_business_flag_tab2(i);
13206       l_women_owned_flag_tab(l_loop_counter) := l_women_owned_flag_tab2(i);
13207       l_last_update_login_tab(l_loop_counter) := l_last_update_login_tab2(i);
13208       l_attribute_category_tab(l_loop_counter) := l_attribute_category_tab2(i);
13209       l_attribute1_tab(l_loop_counter) := l_attribute1_tab2(i);
13210       l_attribute2_tab(l_loop_counter) := l_attribute2_tab2(i);
13211       l_attribute3_tab(l_loop_counter) := l_attribute3_tab2(i);
13212       l_attribute4_tab(l_loop_counter) := l_attribute4_tab2(i);
13213       l_attribute5_tab(l_loop_counter) := l_attribute5_tab2(i);
13214       l_attribute6_tab(l_loop_counter) := l_attribute6_tab2(i);
13215       l_attribute7_tab(l_loop_counter) := l_attribute7_tab2(i);
13216       l_attribute8_tab(l_loop_counter) := l_attribute8_tab2(i);
13217       l_attribute9_tab(l_loop_counter) := l_attribute9_tab2(i);
13218       l_attribute10_tab(l_loop_counter) := l_attribute10_tab2(i);
13219       l_attribute11_tab(l_loop_counter) := l_attribute11_tab2(i);
13220       l_attribute12_tab(l_loop_counter) := l_attribute12_tab2(i);
13221       l_attribute13_tab(l_loop_counter) := l_attribute13_tab2(i);
13222       l_attribute14_tab(l_loop_counter) := l_attribute14_tab2(i);
13223       l_attribute15_tab(l_loop_counter) := l_attribute15_tab2(i);
13224       l_security_group_id_tab(l_loop_counter) := l_security_group_id_tab2(i);
13225       l_cpl_id_tab(l_loop_counter) := l_cpl_id_tab2(i);
13226       l_primary_yn_tab(l_loop_counter) := l_primary_yn_tab2(i);
13227       l_bill_to_site_use_id_tab(l_loop_counter) := l_bill_to_site_use_id_tab2(i);
13228       l_cust_acct_id_tab(l_loop_counter) := l_cust_acct_id_tab2(i);
13229       l_orig_system_id1_tab(l_loop_counter) := l_orig_system_id1_tab2(i);
13230 
13231       l_party_counter := l_party_counter + 1;
13232     END LOOP;
13233   END LOOP;
13234   CLOSE c9;
13235   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13236       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_vid_counter=' || l_vid_counter);
13237   END IF;
13238   IF (l_vid_counter > 1) THEN
13239     sort_vid_mapping_tab;
13240   END IF;
13241 
13242   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13243       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_party_counter='||l_party_counter || ' l_id_tab.count='||l_id_tab.COUNT);
13244   END IF;
13245   IF (l_party_counter > 1) THEN
13246     forall i IN l_id_tab.first..l_id_tab.last
13247       INSERT INTO okc_k_party_roles_b (
13248        id, chr_id, cle_id,
13249        dnz_chr_id, rle_code, object1_id1,
13250        object1_id2, jtot_object1_code, object_version_number,
13251        created_by, creation_date, last_updated_by,
13252        last_update_date, code, facility,
13253        minority_group_lookup_code, small_business_flag, women_owned_flag,
13254        last_update_login, attribute_category, attribute1,
13255        attribute2, attribute3, attribute4,
13256        attribute5, attribute6, attribute7,
13257        attribute8, attribute9, attribute10,
13258        attribute11, attribute12, attribute13,
13259        attribute14, attribute15, security_group_id,
13260        cpl_id, primary_yn, bill_to_site_use_id,
13261        cust_acct_id, orig_system_id1
13262      ) VALUES (
13263        l_id_tab(i), l_chr_id_tab(i), l_cle_id_tab(i),
13264        l_dnz_chr_id_tab(i), l_rle_code_tab(i), l_object1_id1_tab(i),
13265        l_object1_id2_tab(i), l_jtot_object1_code_tab(i), 1,
13266        l_created_by, SYSDATE, l_last_updated_by,
13267        SYSDATE, l_code_tab(i), l_facility_tab(i),
13268        l_minority_group_lookup_c_tab(i), l_small_business_flag_tab(i), l_women_owned_flag_tab(i),
13269        l_last_update_login, l_attribute_category_tab(i), l_attribute1_tab(i),
13270        l_attribute2_tab(i), l_attribute3_tab(i), l_attribute4_tab(i),
13271        l_attribute5_tab(i), l_attribute6_tab(i), l_attribute7_tab(i),
13272        l_attribute8_tab(i), l_attribute9_tab(i), l_attribute10_tab(i),
13273        l_attribute11_tab(i), l_attribute12_tab(i), l_attribute13_tab(i),
13274        l_attribute14_tab(i), l_attribute15_tab(i), l_security_group_id_tab(i),
13275        l_cpl_id_tab(i), l_primary_yn_tab(i), l_bill_to_site_use_id_tab(i),
13276        l_cust_acct_id_tab(i), l_orig_system_id1_tab(i)
13277      );
13278 
13279      do_sort_party_mapping_id;
13280 
13281      IF (l_id_tab_old.COUNT > 0) THEN
13282        FOR i IN l_id_tab_old.first..l_id_tab_old.last
13283        LOOP
13284           IF (i = l_id_tab.last)
13285           THEN
13286             prepare_party_roles_tl(l_id_tab_old(i), l_id_tab(i), 'L');
13287           ELSE
13288             prepare_party_roles_tl(l_id_tab_old(i), l_id_tab(i), 'NL');
13289           END IF;
13290        END LOOP;
13291 
13292        l_message := 'OKL_NEW_COPY_KPR_ERROR';
13293        FOR i IN l_id_tab_old.first..l_id_tab_old.last
13294        LOOP
13295           IF (i = l_id_tab.last)
13296           THEN
13297             prepare_okl_party_roles(l_id_tab_old(i), l_id_tab(i), 'Y');
13298           ELSE
13299             prepare_okl_party_roles(l_id_tab_old(i), l_id_tab(i), 'N');
13300           END IF;
13301        END LOOP;
13302 
13303        l_message := 'OKL_NEW_COPY_CRO_ERROR';
13304        FOR i IN l_id_tab_old.first..l_id_tab_old.last
13305        LOOP
13306           IF (i = l_id_tab.last)
13307           THEN
13308             prepare_contacts(l_id_tab_old(i), l_id_tab(i), 'L');
13309           ELSE
13310             prepare_contacts(l_id_tab_old(i), l_id_tab(i), 'NL');
13311           END IF;
13312        END LOOP;
13313 
13314        l_message := 'OKL_NEW_COPY_PHD_ERROR';
13315        IF (p_copy_lines_yn = 'Y') THEN
13316          IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13317                     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Calling party_payment_hdr...');
13318          END IF;
13319          copy_party_payment_hdr(p_old_id, p_new_id);
13320        END IF;
13321 
13322        IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13323                 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Calling party_payment_dtls...');
13324        END IF;
13325        l_message := 'OKL_NEW_COPY_PYD_ERROR';
13326        FOR i IN l_id_tab_old.first..l_id_tab_old.last
13327        LOOP
13328           IF (i = l_id_tab.last)
13329           THEN
13330             prepare_party_payment_dtls(l_id_tab_old(i), l_id_tab(i), 'Y');
13331           ELSE
13332             prepare_party_payment_dtls(l_id_tab_old(i), l_id_tab(i), 'N');
13333           END IF;
13334        END LOOP;
13335      END IF;
13336   END IF;
13337 
13338 EXCEPTION WHEN OTHERS THEN
13339 
13340   x_return_status := OKL_API.G_RET_STS_ERROR;
13341   /*OKL_API.set_message(p_app_name => 'OKL',
13342                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
13343                       p_token1 => 'ASSET_NUMBER',
13344                       p_token1_value => 'insert_okc_k_party_roles');*/
13345     /* DEBUG */
13346   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13347       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
13348     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing insert_okc_k_party_roles:l_id_tab.count=' || l_id_tab.COUNT || ' ...');
13349   END IF;
13350   IF (l_id_tab.COUNT > 0) THEN
13351   FOR i IN l_id_tab.first..l_id_tab.last
13352   LOOP
13353     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13354           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_id_tab('||i||')=' || l_id_tab(i));
13355       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_chr_id_tab('||i||')=' || l_chr_id_tab(i));
13356       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cle_id_tab('||i||')=' || l_cle_id_tab(i));
13357       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dnz_chr_id_tab('||i||')=' || l_dnz_chr_id_tab(i));
13358       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rle_code_tab('||i||')=' || l_rle_code_tab(i));
13359       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_object1_id1_tab('||i||')=' || l_object1_id1_tab(i));
13360       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_object1_id2_tab('||i||')=' || l_object1_id2_tab(i));
13361       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_jtot_object1_code_tab('||i||')=' || l_jtot_object1_code_tab(i));
13362       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_code_tab('||i||')=' || l_code_tab(i));
13363       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_facility_tab('||i||')=' || l_facility_tab(i));
13364       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_minority_group_lookup_c_tab('||i||')=' || l_minority_group_lookup_c_tab(i));
13365       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_small_business_flag_tab('||i||')=' || l_small_business_flag_tab(i));
13366       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_women_owned_flag_tab('||i||')=' || l_women_owned_flag_tab(i));
13367       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute_category_tab('||i||')=' || l_attribute_category_tab(i));
13368       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute1_tab('||i||')=' || l_attribute1_tab(i));
13369       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute2_tab('||i||')=' || l_attribute2_tab(i));
13370       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute3_tab('||i||')=' || l_attribute3_tab(i));
13371       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute4_tab('||i||')=' || l_attribute4_tab(i));
13372       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute5_tab('||i||')=' || l_attribute5_tab(i));
13373       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute6_tab('||i||')=' || l_attribute6_tab(i));
13374       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute7_tab('||i||')=' || l_attribute7_tab(i));
13375       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute8_tab('||i||')=' || l_attribute8_tab(i));
13376       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute9_tab('||i||')=' || l_attribute9_tab(i));
13377       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute10_tab('||i||')=' || l_attribute10_tab(i));
13378       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute11_tab('||i||')=' || l_attribute11_tab(i));
13379       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute12_tab('||i||')=' || l_attribute12_tab(i));
13380       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute13_tab('||i||')=' || l_attribute13_tab(i));
13381       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute14_tab('||i||')=' || l_attribute14_tab(i));
13382       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute15_tab('||i||')=' || l_attribute15_tab(i));
13383       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_security_group_id_tab('||i||')=' || l_security_group_id_tab(i));
13384       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cpl_id_tab('||i||')=' || l_cpl_id_tab(i));
13385       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_primary_yn_tab('||i||')=' || l_primary_yn_tab(i));
13386       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_bill_to_site_use_id_tab('||i||')=' || l_bill_to_site_use_id_tab(i));
13387       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cust_acct_id_tab('||i||')=' || l_cust_acct_id_tab(i));
13388       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_orig_system_id1_tab('||i||')=' || l_orig_system_id1_tab(i));
13389     END IF;
13390   END LOOP;
13391   END IF;
13392 
13393   RAISE OKC_API.G_EXCEPTION_ERROR;
13394 
13395 END; /* insert_okc_k_party_roles */
13396 
13397 FUNCTION find_rid_mapping_id(p_id IN NUMBER) RETURN NUMBER IS
13398 hi NUMBER;
13399 lo NUMBER;
13400 m NUMBER;
13401 BEGIN
13402   lo := 1;
13403   hi := l_rule_groups_b_counter - 1;
13404   WHILE (lo <= hi) LOOP
13405     m := FLOOR((hi + lo)/2);
13406     IF (l_rid_mapping_tab(m).old_id = p_id) THEN
13407       RETURN l_rid_mapping_tab(m).new_id;
13408     ELSIF (l_rid_mapping_tab(m).old_id > p_id) THEN
13409       hi := m - 1;
13410     ELSE
13411       lo := m + 1;
13412     END IF;
13413   END LOOP;
13414   RETURN -1;
13415 END;  /* find_rid_mapping_id */
13416 
13417 PROCEDURE sort_rid_mapping_tab IS
13418   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
13419   --a numtabtype;
13420   l_stack numtabtype;
13421   l_stack_index NUMBER := 0;
13422   N NUMBER;
13423   R NUMBER;
13424   L NUMBER;
13425   P NUMBER;
13426   W NUMBER;
13427   W2 NUMBER;
13428   X NUMBER;
13429   I NUMBER;
13430   J NUMBER;
13431 BEGIN
13432   IF (G_DEBUG_ENABLED = 'Y') THEN
13433     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
13434   END IF;
13435   NULL;
13436 
13437   N := l_rule_groups_b_counter - 1;
13438   IF (N < 2) THEN
13439     RETURN;
13440   END IF;
13441   l_stack_index := l_stack_index + 1;
13442   l_stack(l_stack_index) := 1;
13443   l_stack_index := l_stack_index + 1;
13444   l_stack(l_stack_index) := N;
13445 
13446   --dbms_output.put_line('l_stack_index=' || l_stack_index);
13447   WHILE l_stack_index > 0
13448   LOOP
13449     R := l_stack(l_stack_index);
13450     l_stack_index := l_stack_index - 1;
13451     L := l_stack(l_stack_index);
13452     l_stack_index := l_stack_index - 1;
13453     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
13454     WHILE 1=1
13455     LOOP -- loop until L >= R
13456       I := L;
13457       J := R;
13458       P := FLOOR((L+R)/2);
13459       --if (a(L) > a(P)) then
13460       IF (l_rid_mapping_tab(L).old_id > l_rid_mapping_tab(P).old_id)
13461       THEN
13462         W := l_rid_mapping_tab(L).old_id;
13463         W2 := l_rid_mapping_tab(L).new_id;
13464         l_rid_mapping_tab(L).old_id :=l_rid_mapping_tab(P).old_id;
13465         l_rid_mapping_tab(L).new_id :=l_rid_mapping_tab(P).new_id;
13466         l_rid_mapping_tab(P).old_id := W;
13467         l_rid_mapping_tab(P).new_id := W2;
13468       END IF;
13469       --if (a(L) > a(R)) then
13470       IF (l_rid_mapping_tab(L).old_id > l_rid_mapping_tab(R).old_id)
13471       THEN
13472         W := l_rid_mapping_tab(L).old_id;
13473         W2 := l_rid_mapping_tab(L).new_id;
13474         l_rid_mapping_tab(L).old_id :=l_rid_mapping_tab(R).old_id;
13475         l_rid_mapping_tab(L).new_id :=l_rid_mapping_tab(R).new_id;
13476         l_rid_mapping_tab(R).old_id := W;
13477         l_rid_mapping_tab(R).new_id := W2;
13478       END IF;
13479       --if (a(P) > a(R)) then
13480       IF (l_rid_mapping_tab(P).old_id > l_rid_mapping_tab(R).old_id)
13481       THEN
13482         W := l_rid_mapping_tab(P).old_id;
13483         W2 := l_rid_mapping_tab(P).new_id;
13484         l_rid_mapping_tab(P).old_id :=l_rid_mapping_tab(R).old_id;
13485         l_rid_mapping_tab(P).new_id :=l_rid_mapping_tab(R).new_id;
13486         l_rid_mapping_tab(R).old_id := W;
13487         l_rid_mapping_tab(R).new_id := W2;
13488       END IF;
13489       --X := a(P);
13490       X := l_rid_mapping_tab(P).old_id;
13491       WHILE 1=1
13492       LOOP    -- until I > J
13493         --while (a(I) < X) loop
13494         WHILE (l_rid_mapping_tab(I).old_id < X) LOOP
13495           I := I + 1;
13496         END LOOP;
13497         WHILE (X < l_rid_mapping_tab(J).old_id) LOOP
13498           J := J - 1;
13499         END LOOP;
13500         IF (I <= J) THEN
13501           W := l_rid_mapping_tab(I).old_id;
13502           W2 := l_rid_mapping_tab(I).new_id;
13503           l_rid_mapping_tab(I).old_id :=l_rid_mapping_tab(J).old_id;
13504           l_rid_mapping_tab(I).new_id :=l_rid_mapping_tab(J).new_id;
13505           l_rid_mapping_tab(J).old_id := W;
13506           l_rid_mapping_tab(J).new_id := W2;
13507           I := I + 1;
13508           J := J - 1;
13509         END IF;
13510         EXIT WHEN I > J;
13511       END LOOP;
13512       IF (J - L < R - I) THEN
13513         IF (I < R) THEN
13514           --push(I); push(R);
13515           l_stack_index := l_stack_index + 1;
13516           l_stack(l_stack_index) := I;
13517           l_stack_index := l_stack_index + 1;
13518           l_stack(l_stack_index) := R;
13519           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
13520         END IF;
13521         R := J;
13522       ELSE
13523         IF (L < J) THEN
13524           --push(L); push(J);
13525           l_stack_index := l_stack_index + 1;
13526           l_stack(l_stack_index) := L;
13527           l_stack_index := l_stack_index + 1;
13528           l_stack(l_stack_index) := J;
13529           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
13530         END IF;
13531         L := I;
13532       END IF;
13533 
13534       EXIT WHEN (L >= R);
13535     END LOOP;
13536   END LOOP;
13537 
13538 EXCEPTION WHEN OTHERS THEN
13539 
13540   x_return_status := OKL_API.G_RET_STS_ERROR;
13541   /*OKL_API.set_message(p_app_name => 'OKL',
13542                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
13543                       p_token1 => 'ASSET_NUMBER',
13544                       p_token1_value => 'sort_rid_mapping_tab');*/
13545     /* DEBUG */
13546   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13547       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
13548     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_rid_mapping_tab:l_rid_mapping_tab N=' || N || ' ...');
13549   END IF;
13550 
13551   --print array
13552   FOR i IN 1..N
13553   LOOP
13554     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13555           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rid_mapping_tab('||i||')=' || l_rid_mapping_tab(i).old_id || ':' || l_rid_mapping_tab(i).new_id);
13556     END IF;
13557   END LOOP;
13558 
13559   RAISE OKC_API.G_EXCEPTION_ERROR;
13560 
13561 END;  /* sort_rid_mapping_tab */
13562 
13563 
13564 FUNCTION find_rrid_mapping_id(p_id IN NUMBER) RETURN NUMBER IS
13565 hi NUMBER;
13566 lo NUMBER;
13567 m NUMBER;
13568 BEGIN
13569   lo := 1;
13570   hi := l_rules_b_counter - 1;
13571   WHILE (lo <= hi) LOOP
13572     m := FLOOR((hi + lo)/2);
13573     IF (l_rrid_mapping_tab(m).old_id = p_id) THEN
13574       RETURN l_rrid_mapping_tab(m).new_id;
13575     ELSIF (l_rrid_mapping_tab(m).old_id > p_id) THEN
13576       hi := m - 1;
13577     ELSE
13578       lo := m + 1;
13579     END IF;
13580   END LOOP;
13581   RETURN -1;
13582 END;  /* find_rrid_mapping_id */
13583 
13584 PROCEDURE sort_rrid_mapping_tab IS
13585   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
13586   --a numtabtype;
13587   l_stack numtabtype;
13588   l_stack_index NUMBER := 0;
13589   N NUMBER;
13590   R NUMBER;
13591   L NUMBER;
13592   P NUMBER;
13593   W NUMBER;
13594   W2 NUMBER;
13595   X NUMBER;
13596   I NUMBER;
13597   J NUMBER;
13598 BEGIN
13599   IF (G_DEBUG_ENABLED = 'Y') THEN
13600     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
13601   END IF;
13602   NULL;
13603 
13604   N := l_rules_b_counter - 1;
13605   IF (N < 2) THEN
13606     RETURN;
13607   END IF;
13608   l_stack_index := l_stack_index + 1;
13609   l_stack(l_stack_index) := 1;
13610   l_stack_index := l_stack_index + 1;
13611   l_stack(l_stack_index) := N;
13612 
13613   --dbms_output.put_line('l_stack_index=' || l_stack_index);
13614   WHILE l_stack_index > 0
13615   LOOP
13616     R := l_stack(l_stack_index);
13617     l_stack_index := l_stack_index - 1;
13618     L := l_stack(l_stack_index);
13619     l_stack_index := l_stack_index - 1;
13620     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
13621     WHILE 1=1
13622     LOOP -- loop until L >= R
13623       I := L;
13624       J := R;
13625       P := FLOOR((L+R)/2);
13626       --if (a(L) > a(P)) then
13627       IF (l_rrid_mapping_tab(L).old_id > l_rrid_mapping_tab(P).old_id)
13628       THEN
13629         W := l_rrid_mapping_tab(L).old_id;
13630         W2 := l_rrid_mapping_tab(L).new_id;
13631         l_rrid_mapping_tab(L).old_id :=l_rrid_mapping_tab(P).old_id;
13632         l_rrid_mapping_tab(L).new_id :=l_rrid_mapping_tab(P).new_id;
13633         l_rrid_mapping_tab(P).old_id := W;
13634         l_rrid_mapping_tab(P).new_id := W2;
13635       END IF;
13636       --if (a(L) > a(R)) then
13637       IF (l_rrid_mapping_tab(L).old_id > l_rrid_mapping_tab(R).old_id)
13638       THEN
13639         W := l_rrid_mapping_tab(L).old_id;
13640         W2 := l_rrid_mapping_tab(L).new_id;
13641         l_rrid_mapping_tab(L).old_id :=l_rrid_mapping_tab(R).old_id;
13642         l_rrid_mapping_tab(L).new_id :=l_rrid_mapping_tab(R).new_id;
13643         l_rrid_mapping_tab(R).old_id := W;
13644         l_rrid_mapping_tab(R).new_id := W2;
13645       END IF;
13646       --if (a(P) > a(R)) then
13647       IF (l_rrid_mapping_tab(P).old_id > l_rrid_mapping_tab(R).old_id)
13648       THEN
13649         W := l_rrid_mapping_tab(P).old_id;
13650         W2 := l_rrid_mapping_tab(P).new_id;
13651         l_rrid_mapping_tab(P).old_id :=l_rrid_mapping_tab(R).old_id;
13652         l_rrid_mapping_tab(P).new_id :=l_rrid_mapping_tab(R).new_id;
13653         l_rrid_mapping_tab(R).old_id := W;
13654         l_rrid_mapping_tab(R).new_id := W2;
13655       END IF;
13656       --X := a(P);
13657       X := l_rrid_mapping_tab(P).old_id;
13658       WHILE 1=1
13659       LOOP    -- until I > J
13660         --while (a(I) < X) loop
13661         WHILE (l_rrid_mapping_tab(I).old_id < X) LOOP
13662           I := I + 1;
13663         END LOOP;
13664         WHILE (X < l_rrid_mapping_tab(J).old_id) LOOP
13665           J := J - 1;
13666         END LOOP;
13667         IF (I <= J) THEN
13668           W := l_rrid_mapping_tab(I).old_id;
13669           W2 := l_rrid_mapping_tab(I).new_id;
13670           l_rrid_mapping_tab(I).old_id :=l_rrid_mapping_tab(J).old_id;
13671           l_rrid_mapping_tab(I).new_id :=l_rrid_mapping_tab(J).new_id;
13672           l_rrid_mapping_tab(J).old_id := W;
13673           l_rrid_mapping_tab(J).new_id := W2;
13674           I := I + 1;
13675           J := J - 1;
13676         END IF;
13677         EXIT WHEN I > J;
13678       END LOOP;
13679       IF (J - L < R - I) THEN
13680         IF (I < R) THEN
13681           --push(I); push(R);
13682           l_stack_index := l_stack_index + 1;
13683           l_stack(l_stack_index) := I;
13684           l_stack_index := l_stack_index + 1;
13685           l_stack(l_stack_index) := R;
13686           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
13687         END IF;
13688         R := J;
13689       ELSE
13690         IF (L < J) THEN
13691           --push(L); push(J);
13692           l_stack_index := l_stack_index + 1;
13693           l_stack(l_stack_index) := L;
13694           l_stack_index := l_stack_index + 1;
13695           l_stack(l_stack_index) := J;
13696           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
13697         END IF;
13698         L := I;
13699       END IF;
13700 
13701       EXIT WHEN (L >= R);
13702     END LOOP;
13703   END LOOP;
13704 
13705 EXCEPTION WHEN OTHERS THEN
13706 
13707   x_return_status := OKL_API.G_RET_STS_ERROR;
13708   /*OKL_API.set_message(p_app_name => 'OKL',
13709                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
13710                       p_token1 => 'ASSET_NUMBER',
13711                       p_token1_value => 'sort_rrid_mapping_tab');*/
13712     /* DEBUG */
13713   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13714       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
13715     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_rrid_mapping_tab:l_rrid_mapping_tab N=' || N || ' ...');
13716   END IF;
13717 
13718   --print array
13719   FOR i IN 1..N
13720   LOOP
13721     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13722           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrid_mapping_tab('||i||')=' || l_rrid_mapping_tab(i).old_id || ':' || l_rrid_mapping_tab(i).new_id);
13723     END IF;
13724   END LOOP;
13725 
13726   RAISE OKC_API.G_EXCEPTION_ERROR;
13727 
13728 END;  /* sort_rrid_mapping_tab */
13729 
13730 
13731 PROCEDURE prepare_rule_groups_tl(p_old_id IN okc_rule_groups_b.id%TYPE,
13732                                  p_new_id IN okc_rule_groups_b.id%TYPE,
13733                                  p_flush IN VARCHAR2) IS
13734 CURSOR c13(p_id NUMBER) IS
13735 SELECT
13736      id, LANGUAGE, source_lang,
13737      sfwt_flag, comments, created_by,
13738      creation_date, last_updated_by, last_update_date,
13739      last_update_login, security_group_id
13740 FROM okc_rule_groups_tl
13741 WHERE id = p_id;
13742 
13743     l_rtid_tab2 l_rtid_type;
13744     l_rtlanguage_tab2 l_rtlanguage_type;
13745     l_rtsource_lang_tab2 l_rtsource_lang_type;
13746     l_rtsfwt_flag_tab2 l_rtsfwt_flag_type;
13747     l_rtcomments_tab2 l_rtcomments_type;
13748     l_rtcreated_by_tab2 l_rtcreated_by_type;
13749     l_rtcreation_date_tab2 l_rtcreation_date_type;
13750     l_rtlast_updated_by_tab2 l_rtlast_updated_by_type;
13751     l_rtlast_update_date_tab2 l_rtlast_update_date_type;
13752     l_rtlast_update_login_tab2 l_rtlast_update_login_type;
13753     l_rtsecurity_group_id_tab2 l_rtsecurity_group_id_type;
13754 
13755 BEGIN
13756   IF (G_DEBUG_ENABLED = 'Y') THEN
13757     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
13758   END IF;
13759   NULL;
13760   OPEN c13(p_old_id);
13761   LOOP
13762     FETCH c13 bulk collect INTO
13763       l_rtid_tab2, l_rtlanguage_tab2, l_rtsource_lang_tab2,
13764       l_rtsfwt_flag_tab2, l_rtcomments_tab2, l_rtcreated_by_tab2,
13765       l_rtcreation_date_tab2,l_rtlast_updated_by_tab2,l_rtlast_update_date_tab2,
13766       l_rtlast_update_login_tab2, l_rtsecurity_group_id_tab2
13767     limit G_BULK_SIZE;
13768     EXIT WHEN l_rtid_tab2.COUNT = 0;
13769     FOR i IN l_rtid_tab2.first..l_rtid_tab2.last
13770     LOOP
13771       l_rtid_tab(l_rule_groups_tl_counter) := l_rtid_tab2(i);
13772 
13773       -- Change id
13774       l_rtid_tab(l_rule_groups_tl_counter) := p_new_id;
13775 
13776       l_rtlanguage_tab(l_rule_groups_tl_counter) := l_rtlanguage_tab2(i);
13777       l_rtsource_lang_tab(l_rule_groups_tl_counter) := l_rtsource_lang_tab2(i);
13778       l_rtsfwt_flag_tab(l_rule_groups_tl_counter) := l_rtsfwt_flag_tab2(i);
13779       l_rtcomments_tab(l_rule_groups_tl_counter) := l_rtcomments_tab2(i);
13780       l_rtcreated_by_tab(l_rule_groups_tl_counter) := l_rtcreated_by_tab2(i);
13781       l_rtcreation_date_tab(l_rule_groups_tl_counter) := l_rtcreation_date_tab2(i);
13782       l_rtlast_updated_by_tab(l_rule_groups_tl_counter) := l_rtlast_updated_by_tab2(i);
13783       l_rtlast_update_date_tab(l_rule_groups_tl_counter) := l_rtlast_update_date_tab2(i);
13784       l_rtlast_update_login_tab(l_rule_groups_tl_counter) := l_rtlast_update_login_tab2(i);
13785       l_rtsecurity_group_id_tab(l_rule_groups_tl_counter) := l_rtsecurity_group_id_tab2(i);
13786 
13787       l_rule_groups_tl_counter := l_rule_groups_tl_counter + 1;
13788     END LOOP;
13789   END LOOP;
13790   CLOSE c13;
13791 
13792   IF (p_flush = 'Y') THEN
13793     IF (l_rule_groups_tl_counter > 1) THEN
13794       forall i IN l_rtid_tab.first..l_rtid_tab.last
13795       INSERT INTO okc_rule_groups_tl (
13796         id, LANGUAGE, source_lang,
13797         sfwt_flag, comments, created_by,
13798         creation_date, last_updated_by, last_update_date,
13799         last_update_login, security_group_id
13800       ) VALUES (
13801         l_rtid_tab(i), l_rtlanguage_tab(i), l_rtsource_lang_tab(i),
13802         'N', l_rtcomments_tab(i), l_created_by,
13803         SYSDATE, l_last_updated_by, SYSDATE,
13804         l_last_update_login, l_rtsecurity_group_id_tab(i)
13805       );
13806     END IF;
13807   END IF;
13808 
13809 EXCEPTION WHEN OTHERS THEN
13810 
13811   x_return_status := OKL_API.G_RET_STS_ERROR;
13812   /*OKL_API.set_message(p_app_name => 'OKL',
13813                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
13814                       p_token1 => 'ASSET_NUMBER',
13815                       p_token1_value => 'prepare_rule_groups_tl');*/
13816     /* DEBUG */
13817   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13818       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
13819     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing prepare_rule_groups_tl:l_rtid_tab.count=' || l_rtid_tab.COUNT || ' ...');
13820   END IF;
13821   IF (l_rtid_tab.COUNT > 0) THEN
13822   FOR i IN l_rtid_tab.first..l_rtid_tab.last
13823   LOOP
13824     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13825           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rtid_tab('||i||')=' || l_rtid_tab(i));
13826       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rtlanguage_tab('||i||')=' || l_rtlanguage_tab(i));
13827       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rtsource_lang_tab('||i||')=' || l_rtsource_lang_tab(i));
13828       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rtcomments_tab('||i||')=' || l_rtcomments_tab(i));
13829       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rtsecurity_group_id_tab('||i||')=' || l_rtsecurity_group_id_tab(i));
13830     END IF;
13831   END LOOP;
13832   END IF;
13833 
13834   RAISE OKC_API.G_EXCEPTION_ERROR;
13835 
13836 END;  /* prepare_rule_groups_tl */
13837 
13838 PROCEDURE insert_okc_rules_tl(p_old_id IN okc_rules_b.id%TYPE,
13839                               p_new_id okc_rules_b.id%TYPE,
13840                               p_flush IN VARCHAR2 ) IS
13841 CURSOR c15(p_id okc_rules_b.id%TYPE) IS
13842 SELECT
13843      id, LANGUAGE, source_lang,
13844      sfwt_flag, comments, text,
13845      created_by, creation_date, last_updated_by,
13846      last_update_date, last_update_login, security_group_id
13847 FROM okc_rules_tl
13848 WHERE id = p_id;
13849 
13850     l_trid_tab2 l_trid_type;
13851     l_trlanguage_tab2 l_trlanguage_type;
13852     l_trsource_lang_tab2 l_trsource_lang_type;
13853     l_trsfwt_flag_tab2 l_trsfwt_flag_type;
13854     l_trcomments_tab2 l_trcomments_type;
13855     l_trtext_tab2 l_trtext_type;
13856     l_trcreated_by_tab2 l_trcreated_by_type;
13857     l_trcreation_date_tab2 l_trcreation_date_type;
13858     l_trlast_updated_by_tab2 l_trlast_updated_by_type;
13859     l_trlast_update_date_tab2 l_trlast_update_date_type;
13860     l_trlast_update_login_tab2 l_trlast_update_login_type;
13861     l_trsecurity_group_id_tab2 l_trsecurity_group_id_type;
13862 
13863 BEGIN
13864   IF (G_DEBUG_ENABLED = 'Y') THEN
13865     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
13866   END IF;
13867   OPEN c15(p_old_id);
13868   LOOP
13869     FETCH c15 bulk collect INTO
13870      l_trid_tab2, l_trlanguage_tab2, l_trsource_lang_tab2,
13871      l_trsfwt_flag_tab2, l_trcomments_tab2, l_trtext_tab2,
13872      l_trcreated_by_tab2, l_trcreation_date_tab2, l_trlast_updated_by_tab2,
13873      l_trlast_update_date_tab2, l_trlast_update_login_tab2, l_trsecurity_group_id_tab2
13874     limit G_BULK_SIZE;
13875     EXIT WHEN l_trid_tab2.COUNT = 0;
13876     FOR i IN l_trid_tab2.first..l_trid_tab2.last
13877     LOOP
13878 
13879       l_trid_tab(l_rules_tl_counter) := l_trid_tab2(i);
13880       -- Change id
13881       l_trid_tab(l_rules_tl_counter) := p_new_id;
13882 
13883       l_trlanguage_tab(l_rules_tl_counter) := l_trlanguage_tab2(i);
13884       l_trsource_lang_tab(l_rules_tl_counter) := l_trsource_lang_tab2(i);
13885       l_trsfwt_flag_tab(l_rules_tl_counter) := l_trsfwt_flag_tab2(i);
13886       l_trcomments_tab(l_rules_tl_counter) := l_trcomments_tab2(i);
13887       l_trtext_tab(l_rules_tl_counter) := l_trtext_tab2(i);
13888       l_trcreated_by_tab(l_rules_tl_counter) := l_trcreated_by_tab2(i);
13889       l_trcreation_date_tab(l_rules_tl_counter) := l_trcreation_date_tab2(i);
13890       l_trlast_updated_by_tab(l_rules_tl_counter) := l_trlast_updated_by_tab2(i);
13891       l_trlast_update_date_tab(l_rules_tl_counter) := l_trlast_update_date_tab2(i);
13892       l_trlast_update_login_tab(l_rules_tl_counter) := l_trlast_update_login_tab2(i);
13893       l_trsecurity_group_id_tab(l_rules_tl_counter) := l_trsecurity_group_id_tab2(i);
13894 
13895       l_rules_tl_counter := l_rules_tl_counter + 1;
13896     END LOOP;
13897   END LOOP;
13898   CLOSE c15;
13899 
13900   IF (p_flush = 'Y') THEN
13901     IF (l_rules_tl_counter > 1) THEN
13902       --Bug# 16425139: Fixed population of WHO columns to not copy values from previous contract
13903       forall i IN l_trid_tab.first..l_trid_tab.last
13904       INSERT INTO okc_rules_tl (
13905         id, LANGUAGE, source_lang,
13906         sfwt_flag, comments, text,
13907         created_by, creation_date, last_updated_by,
13908         last_update_date, last_update_login, security_group_id
13909       ) VALUES (
13910         l_trid_tab(i), l_trlanguage_tab(i), l_trsource_lang_tab(i),
13911         l_trsfwt_flag_tab(i), l_trcomments_tab(i), l_trtext_tab(i),
13912         l_created_by, SYSDATE, l_last_updated_by,
13913         SYSDATE, l_last_update_login, l_trsecurity_group_id_tab(i)
13914       );
13915     END IF;
13916   END IF;
13917 
13918 EXCEPTION WHEN OTHERS THEN
13919 
13920   x_return_status := OKL_API.G_RET_STS_ERROR;
13921   /*OKL_API.set_message(p_app_name => 'OKL',
13922                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
13923                       p_token1 => 'ASSET_NUMBER',
13924                       p_token1_value => 'insert_okc_rules_tl');*/
13925     /* DEBUG */
13926   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13927       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
13928     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing insert_okc_rules_tl:l_trid_tab.count=' || l_trid_tab.COUNT || ' ...');
13929   END IF;
13930   IF (l_trid_tab.COUNT > 0 ) THEN
13931   FOR i IN l_trid_tab.first..l_trid_tab.last
13932   LOOP
13933     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13934           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_trid_tab('||i||')=' || l_trid_tab(i));
13935       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_trlanguage_tab('||i||')=' || l_trlanguage_tab(i));
13936       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_trsource_lang_tab('||i||')=' || l_trsource_lang_tab(i));
13937       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_trsfwt_flag_tab('||i||')=' || l_trsfwt_flag_tab(i));
13938       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_trcomments_tab('||i||')=' || l_trcomments_tab(i));
13939       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_trtext_tab('||i||')=' || l_trtext_tab(i));
13940       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_trsecurity_group_id_tab('||i||')=' || l_trsecurity_group_id_tab(i));
13941     END IF;
13942   END LOOP;
13943   END IF;
13944 
13945   RAISE OKC_API.G_EXCEPTION_ERROR;
13946 
13947 END; /* insert_okc_rules_tl */
13948 
13949 PROCEDURE insert_okc_rules_b( p_old_id IN okc_rule_groups_b.id%TYPE,
13950                               p_new_id IN okc_rule_groups_b.id%TYPE) IS
13951 CURSOR c14(p_id okc_rule_groups_b.id%TYPE) IS
13952 SELECT
13953      a.id, a.rgp_id, a.object1_id1,
13954      a.object2_id1, a.object3_id1, a.object1_id2,
13955      a.object2_id2, a.object3_id2, a.jtot_object1_code,
13956      a.jtot_object2_code, a.jtot_object3_code, a.dnz_chr_id,
13957      a.std_template_yn, a.warn_yn, a.priority,
13958      a.object_version_number, a.created_by, a.creation_date,
13959      a.last_updated_by, a.last_update_date, a.last_update_login,
13960      a.attribute_category, a.attribute1, a.attribute2,
13961      a.attribute3, a.attribute4, a.attribute5,
13962      a.attribute6, a.attribute7, a.attribute8,
13963      a.attribute9, a.attribute10, a.attribute11,
13964      a.attribute12, a.attribute13, a.attribute14,
13965      a.attribute15, a.rule_information_category, a.rule_information1,
13966      a.rule_information2, a.rule_information3, a.rule_information4,
13967      a.rule_information5, a.rule_information6, a.rule_information7,
13968      a.rule_information8, a.rule_information9, a.rule_information10,
13969      a.rule_information11, a.rule_information12, a.rule_information13,
13970      a.rule_information14, a.rule_information15, a.security_group_id,
13971      a.template_yn, a.ans_set_jtot_object_code, a.ans_set_jtot_object_id1,
13972      a.ans_set_jtot_object_id2, a.display_sequence, a.comments
13973 FROM okc_rules_b a,
13974      okc_rule_groups_b rgp,
13975      okc_rg_def_rules rgdef
13976 WHERE a.dnz_chr_id=p_id
13977 AND a.rgp_id=rgp.id
13978 AND rgp.rgd_code=rgdef.rgd_code
13979 AND a.rule_information_category = rgdef.rdf_code
13980   AND (
13981     rgp.chr_id = rgp.chr_id
13982     OR (
13983         NVL(p_copy_lines_yn, 'N') = 'Y'
13984         AND rgp.cle_id IS NOT NULL
13985        )
13986   );
13987 
13988     l_rrid_tab2 l_rrid_type;
13989     l_rrrgp_id_tab2 l_rrrgp_id_type;
13990     l_rrobject1_id1_tab2 l_rrobject1_id1_type;
13991     l_rrobject2_id1_tab2 l_rrobject2_id1_type;
13992     l_rrobject3_id1_tab2 l_rrobject3_id1_type;
13993     l_rrobject1_id2_tab2 l_rrobject1_id2_type;
13994     l_rrobject2_id2_tab2 l_rrobject2_id2_type;
13995     l_rrobject3_id2_tab2 l_rrobject3_id2_type;
13996     l_rrjtot_object1_code_tab2 l_rrjtot_object1_code_type;
13997     l_rrjtot_object2_code_tab2 l_rrjtot_object2_code_type;
13998     l_rrjtot_object3_code_tab2 l_rrjtot_object3_code_type;
13999     l_rrdnz_chr_id_tab2 l_rrdnz_chr_id_type;
14000     l_rrstd_template_yn_tab2 l_rrstd_template_yn_type;
14001     l_rrwarn_yn_tab2 l_rrwarn_yn_type;
14002     l_rrpriority_tab2 l_rrpriority_type;
14003     l_rrobject_version_number_tab2 l_rrobject_version_number_type;
14004     l_rrcreated_by_tab2 l_rrcreated_by_type;
14005     l_rrcreation_date_tab2 l_rrcreation_date_type;
14006     l_rrlast_updated_by_tab2 l_rrlast_updated_by_type;
14007     l_rrlast_update_date_tab2 l_rrlast_update_date_type;
14008     l_rrlast_update_login_tab2 l_rrlast_update_login_type;
14009     l_rrattribute_category_tab2 l_rrattribute_category_type;
14010     l_rrattribute1_tab2 l_rrattribute1_type;
14011     l_rrattribute2_tab2 l_rrattribute2_type;
14012     l_rrattribute3_tab2 l_rrattribute3_type;
14013     l_rrattribute4_tab2 l_rrattribute4_type;
14014     l_rrattribute5_tab2 l_rrattribute5_type;
14015     l_rrattribute6_tab2 l_rrattribute6_type;
14016     l_rrattribute7_tab2 l_rrattribute7_type;
14017     l_rrattribute8_tab2 l_rrattribute8_type;
14018     l_rrattribute9_tab2 l_rrattribute9_type;
14019     l_rrattribute10_tab2 l_rrattribute10_type;
14020     l_rrattribute11_tab2 l_rrattribute11_type;
14021     l_rrattribute12_tab2 l_rrattribute12_type;
14022     l_rrattribute13_tab2 l_rrattribute13_type;
14023     l_rrattribute14_tab2 l_rrattribute14_type;
14024     l_rrattribute15_tab2 l_rrattribute15_type;
14025     l_rrrule_information_cate_tab2 l_rrrule_information_cate_type;
14026     l_rrrule_information1_tab2 l_rrrule_information1_type;
14027     l_rrrule_information2_tab2 l_rrrule_information2_type;
14028     l_rrrule_information3_tab2 l_rrrule_information3_type;
14029     l_rrrule_information4_tab2 l_rrrule_information4_type;
14030     l_rrrule_information5_tab2 l_rrrule_information5_type;
14031     l_rrrule_information6_tab2 l_rrrule_information6_type;
14032     l_rrrule_information7_tab2 l_rrrule_information7_type;
14033     l_rrrule_information8_tab2 l_rrrule_information8_type;
14034     l_rrrule_information9_tab2 l_rrrule_information9_type;
14035     l_rrrule_information10_tab2 l_rrrule_information10_type;
14036     l_rrrule_information11_tab2 l_rrrule_information11_type;
14037     l_rrrule_information12_tab2 l_rrrule_information12_type;
14038     l_rrrule_information13_tab2 l_rrrule_information13_type;
14039     l_rrrule_information14_tab2 l_rrrule_information14_type;
14040     l_rrrule_information15_tab2 l_rrrule_information15_type;
14041     l_rrsecurity_group_id_tab2 l_rrsecurity_group_id_type;
14042     l_rrtemplate_yn_tab2 l_rrtemplate_yn_type;
14043     l_rrans_set_jtot_object_c_tab2 l_rrans_set_jtot_object_c_type;
14044     l_rrans_set_jtot_object_1_tab2 l_rrans_set_jtot_object_1_type;
14045     l_rrans_set_jtot_object_2_tab2 l_rrans_set_jtot_object_2_type;
14046     l_rrdisplay_sequence_tab2 l_rrdisplay_sequence_type;
14047     l_rrcomments_tab2 l_rrcomments_type;
14048 
14049     l_new_rgp_id NUMBER;
14050     l_new_id     NUMBER;
14051 
14052     l_return_status2 VARCHAR2(1);
14053     l_unsched_prin_stream_id NUMBER := NULL;
14054     l_unsched_loan_stream_id NUMBER := NULL;
14055     l_proceed_processing BOOLEAN := TRUE;
14056     l_prin_rule_id NUMBER := NULL;
14057     l_loan_rule_id NUMBER := NULL;
14058 BEGIN
14059   IF (G_DEBUG_ENABLED = 'Y') THEN
14060     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
14061   END IF;
14062   NULL;
14063   okl_streams_util.get_dependent_stream_type (
14064        p_khr_id                => p_old_id,
14065        p_primary_sty_purpose   => 'RENT',
14066        p_dependent_sty_purpose => 'UNSCHEDULED_PRINCIPAL_PAYMENT',
14067        x_return_status	       => l_return_status2,
14068        x_dependent_sty_id      => l_unsched_prin_stream_id);
14069   IF (l_return_status2 <> OKC_API.G_RET_STS_SUCCESS) THEN
14070     l_unsched_prin_stream_id := NULL;
14071   END IF;
14072 
14073   okl_streams_util.get_dependent_stream_type (
14074        p_khr_id                => p_old_id,
14075        p_primary_sty_purpose   => 'RENT',
14076        p_dependent_sty_purpose => 'UNSCHEDULED_LOAN_PAYMENT',
14077        x_return_status	       => l_return_status2,
14078        x_dependent_sty_id      => l_unsched_loan_stream_id);
14079   IF (l_return_status2 <> OKC_API.G_RET_STS_SUCCESS) THEN
14080     l_unsched_loan_stream_id := NULL;
14081   END IF;
14082 
14083   --print('AKP:l_unsched_prin_stream_id=' || l_unsched_prin_stream_id);
14084   --print('AKP:l_unsched_loan_stream_id=' || l_unsched_loan_stream_id);
14085   OPEN c14(p_old_id);
14086   LOOP
14087     FETCH c14 bulk collect INTO
14088       l_rrid_tab2, l_rrrgp_id_tab2, l_rrobject1_id1_tab2,
14089       l_rrobject2_id1_tab2, l_rrobject3_id1_tab2, l_rrobject1_id2_tab2,
14090       l_rrobject2_id2_tab2, l_rrobject3_id2_tab2, l_rrjtot_object1_code_tab2,
14091       l_rrjtot_object2_code_tab2, l_rrjtot_object3_code_tab2, l_rrdnz_chr_id_tab2,
14092       l_rrstd_template_yn_tab2, l_rrwarn_yn_tab2, l_rrpriority_tab2,
14093       l_rrobject_version_number_tab2, l_rrcreated_by_tab2, l_rrcreation_date_tab2,
14094       l_rrlast_updated_by_tab2, l_rrlast_update_date_tab2, l_rrlast_update_login_tab2,
14095       l_rrattribute_category_tab2, l_rrattribute1_tab2, l_rrattribute2_tab2,
14096       l_rrattribute3_tab2, l_rrattribute4_tab2, l_rrattribute5_tab2,
14097       l_rrattribute6_tab2, l_rrattribute7_tab2, l_rrattribute8_tab2,
14098       l_rrattribute9_tab2, l_rrattribute10_tab2, l_rrattribute11_tab2,
14099       l_rrattribute12_tab2, l_rrattribute13_tab2, l_rrattribute14_tab2,
14100       l_rrattribute15_tab2, l_rrrule_information_cate_tab2, l_rrrule_information1_tab2,
14101       l_rrrule_information2_tab2, l_rrrule_information3_tab2, l_rrrule_information4_tab2,
14102       l_rrrule_information5_tab2, l_rrrule_information6_tab2, l_rrrule_information7_tab2,
14103       l_rrrule_information8_tab2, l_rrrule_information9_tab2, l_rrrule_information10_tab2,
14104       l_rrrule_information11_tab2, l_rrrule_information12_tab2, l_rrrule_information13_tab2,
14105       l_rrrule_information14_tab2, l_rrrule_information15_tab2, l_rrsecurity_group_id_tab2,
14106       l_rrtemplate_yn_tab2, l_rrans_set_jtot_object_c_tab2, l_rrans_set_jtot_object_1_tab2,
14107       l_rrans_set_jtot_object_2_tab2, l_rrdisplay_sequence_tab2, l_rrcomments_tab2
14108     limit G_BULK_SIZE;
14109     EXIT WHEN l_rrid_tab2.COUNT = 0;
14110     FOR i IN l_rrid_tab2.first..l_rrid_tab2.last
14111     LOOP
14112 
14113       l_proceed_processing := TRUE;
14114       IF p_trans_type not in ('CRB', 'CRL', 'CSP', 'CRV', 'ALI') THEN
14115         IF (l_rrobject1_id1_tab2(i) = to_char(l_unsched_prin_stream_id)) THEN
14116           l_proceed_processing := FALSE;
14117           l_prin_rule_id := l_rrid_tab2(i);
14118           --print('AKP:l_prin_rule_id=' || l_prin_rule_id);
14119         END IF;
14120 
14121         IF (l_rrobject1_id1_tab2(i) = to_char(l_unsched_loan_stream_id)) THEN
14122           l_proceed_processing := FALSE;
14123           l_loan_rule_id := l_rrid_tab2(i);
14124         END IF;
14125 
14126         IF (l_rrobject2_id1_tab2(i) = to_char(l_prin_rule_id)) THEN
14127           l_proceed_processing := FALSE;
14128         END IF;
14129 
14130         IF (l_rrobject2_id1_tab2(i) = to_char(l_loan_rule_id)) THEN
14131           l_proceed_processing := FALSE;
14132         END IF;
14133 
14134       END IF;
14135 
14136       /*IF (l_proceed_processing) THEN
14137       print('AKP: i=' || i || ': l_proceed_processing = TRUE');
14138       ELSE
14139       print('AKP: i=' || i || ': l_proceed_processing = FALSE');
14140       END IF;*/
14141 
14142       IF (l_proceed_processing) THEN
14143       -- Store old in tab3
14144       l_rrid_tab3(l_rules_b_counter) := l_rrid_tab2(i);
14145 
14146       l_rrid_tab(l_rules_b_counter) := l_rrid_tab2(i);
14147       -- Change id
14148       l_rrid_tab(l_rules_b_counter) := okc_p_util.raw_to_number(sys_guid());
14149 
14150       l_rrid_mapping_tab(l_rules_b_counter).old_id := l_rrid_tab3(l_rules_b_counter);
14151       l_rrid_mapping_tab(l_rules_b_counter).new_id := l_rrid_tab(l_rules_b_counter);
14152 
14153       l_rrrgp_id_tab(l_rules_b_counter) := l_rrrgp_id_tab2(i);
14154       -- Change rgp_id
14155       l_new_rgp_id := find_rid_mapping_id(l_rrrgp_id_tab(l_rules_b_counter));
14156       l_rrrgp_id_tab(l_rules_b_counter) := l_new_rgp_id;
14157 
14158       l_rrobject1_id1_tab(l_rules_b_counter) := l_rrobject1_id1_tab2(i);
14159       l_rrobject2_id1_tab(l_rules_b_counter) := l_rrobject2_id1_tab2(i);
14160       l_rrobject3_id1_tab(l_rules_b_counter) := l_rrobject3_id1_tab2(i);
14161       l_rrobject1_id2_tab(l_rules_b_counter) := l_rrobject1_id2_tab2(i);
14162       l_rrobject2_id2_tab(l_rules_b_counter) := l_rrobject2_id2_tab2(i);
14163       l_rrobject3_id2_tab(l_rules_b_counter) := l_rrobject3_id2_tab2(i);
14164       l_rrjtot_object1_code_tab(l_rules_b_counter) := l_rrjtot_object1_code_tab2(i);
14165       l_rrjtot_object2_code_tab(l_rules_b_counter) := l_rrjtot_object2_code_tab2(i);
14166       l_rrjtot_object3_code_tab(l_rules_b_counter) := l_rrjtot_object3_code_tab2(i);
14167       l_rrdnz_chr_id_tab(l_rules_b_counter) := l_rrdnz_chr_id_tab2(i);
14168       -- Change dnz_chr_id
14169       l_rrdnz_chr_id_tab(l_rules_b_counter) := p_new_id;
14170 
14171       l_rrstd_template_yn_tab(l_rules_b_counter) := l_rrstd_template_yn_tab2(i);
14172       l_rrwarn_yn_tab(l_rules_b_counter) := l_rrwarn_yn_tab2(i);
14173       l_rrpriority_tab(l_rules_b_counter) := l_rrpriority_tab2(i);
14174       l_rrobject_version_number_tab(l_rules_b_counter) := l_rrobject_version_number_tab2(i);
14175       l_rrcreated_by_tab(l_rules_b_counter) := l_rrcreated_by_tab2(i);
14176       l_rrcreation_date_tab(l_rules_b_counter) := l_rrcreation_date_tab2(i);
14177       l_rrlast_updated_by_tab(l_rules_b_counter) := l_rrlast_updated_by_tab2(i);
14178       l_rrlast_update_date_tab(l_rules_b_counter) := l_rrlast_update_date_tab2(i);
14179       l_rrlast_update_login_tab(l_rules_b_counter) := l_rrlast_update_login_tab2(i);
14180       l_rrattribute_category_tab(l_rules_b_counter) := l_rrattribute_category_tab2(i);
14181       l_rrattribute1_tab(l_rules_b_counter) := l_rrattribute1_tab2(i);
14182       l_rrattribute2_tab(l_rules_b_counter) := l_rrattribute2_tab2(i);
14183       l_rrattribute3_tab(l_rules_b_counter) := l_rrattribute3_tab2(i);
14184       l_rrattribute4_tab(l_rules_b_counter) := l_rrattribute4_tab2(i);
14185       l_rrattribute5_tab(l_rules_b_counter) := l_rrattribute5_tab2(i);
14186       l_rrattribute6_tab(l_rules_b_counter) := l_rrattribute6_tab2(i);
14187       l_rrattribute7_tab(l_rules_b_counter) := l_rrattribute7_tab2(i);
14188       l_rrattribute8_tab(l_rules_b_counter) := l_rrattribute8_tab2(i);
14189       l_rrattribute9_tab(l_rules_b_counter) := l_rrattribute9_tab2(i);
14190       l_rrattribute10_tab(l_rules_b_counter) := l_rrattribute10_tab2(i);
14191       l_rrattribute11_tab(l_rules_b_counter) := l_rrattribute11_tab2(i);
14192       l_rrattribute12_tab(l_rules_b_counter) := l_rrattribute12_tab2(i);
14193       l_rrattribute13_tab(l_rules_b_counter) := l_rrattribute13_tab2(i);
14194       l_rrattribute14_tab(l_rules_b_counter) := l_rrattribute14_tab2(i);
14195       l_rrattribute15_tab(l_rules_b_counter) := l_rrattribute15_tab2(i);
14196       l_rrrule_information_cate_tab(l_rules_b_counter) := l_rrrule_information_cate_tab2(i);
14197       l_rrrule_information1_tab(l_rules_b_counter) := l_rrrule_information1_tab2(i);
14198       --gboomina Bug 5362977 - Start
14199       -- Do not set Re-lease asset Flag to 'N' for Rebook and Re-lease copy
14200       -- contracts
14201       -- Start : Bug #15992711
14202       -- Do not set Re-lease asset Flag to 'N' for Re-lease copy
14203       /*IF ( NVL(l_orig_system_source_code,OKL_API.G_MISS_CHAR) IN ('OKL_REBOOK','OKL_RELEASE'))
14204       THEN
14205         NULL;
14206       ELSE
14207         IF ( l_rrrule_information_cate_tab(l_rules_b_counter) = 'LARLES') THEN
14208           l_rrrule_information1_tab(l_rules_b_counter) := 'N';
14209         END IF;
14210       END IF;
14211       -- gboomina Bug 5362977 - End*/
14212       IF ( NVL(l_orig_system_source_code,OKL_API.G_MISS_CHAR) IN ('OKL_RELEASE'))
14213       THEN
14214         NULL;
14215       ELSE
14216         IF ( l_rrrule_information_cate_tab(l_rules_b_counter) = 'LARLES') THEN
14217           l_rrrule_information1_tab(l_rules_b_counter) := 'N';
14218         END IF;
14219       END IF;
14220       -- End: Bug #15992711
14221 
14222       l_rrrule_information2_tab(l_rules_b_counter) := l_rrrule_information2_tab2(i);
14223       l_rrrule_information3_tab(l_rules_b_counter) := l_rrrule_information3_tab2(i);
14224       l_rrrule_information4_tab(l_rules_b_counter) := l_rrrule_information4_tab2(i);
14225       l_rrrule_information5_tab(l_rules_b_counter) := l_rrrule_information5_tab2(i);
14226       l_rrrule_information6_tab(l_rules_b_counter) := l_rrrule_information6_tab2(i);
14227       l_rrrule_information7_tab(l_rules_b_counter) := l_rrrule_information7_tab2(i);
14228       l_rrrule_information8_tab(l_rules_b_counter) := l_rrrule_information8_tab2(i);
14229       l_rrrule_information9_tab(l_rules_b_counter) := l_rrrule_information9_tab2(i);
14230       l_rrrule_information10_tab(l_rules_b_counter) := l_rrrule_information10_tab2(i);
14231       l_rrrule_information11_tab(l_rules_b_counter) := l_rrrule_information11_tab2(i);
14232       l_rrrule_information12_tab(l_rules_b_counter) := l_rrrule_information12_tab2(i);
14233       -- bug 6489689 veramach start
14234       IF (l_rrrule_information_cate_tab(l_rules_b_counter) = 'LASLL') THEN
14235         l_rrrule_information13_tab(l_rules_b_counter) := NULL;
14236       ELSE
14237         l_rrrule_information13_tab(l_rules_b_counter) := l_rrrule_information13_tab2(i);
14238       END IF;
14239       -- bug 6489689 veramach end
14240       l_rrrule_information14_tab(l_rules_b_counter) := l_rrrule_information14_tab2(i);
14241       l_rrrule_information15_tab(l_rules_b_counter) := l_rrrule_information15_tab2(i);
14242       l_rrsecurity_group_id_tab(l_rules_b_counter) := l_rrsecurity_group_id_tab2(i);
14243       l_rrtemplate_yn_tab(l_rules_b_counter) := l_rrtemplate_yn_tab2(i);
14244       l_rrans_set_jtot_object_c_tab(l_rules_b_counter) := l_rrans_set_jtot_object_c_tab2(i);
14245       l_rrans_set_jtot_object_1_tab(l_rules_b_counter) := l_rrans_set_jtot_object_1_tab2(i);
14246       l_rrans_set_jtot_object_2_tab(l_rules_b_counter) := l_rrans_set_jtot_object_2_tab2(i);
14247       l_rrdisplay_sequence_tab(l_rules_b_counter) := l_rrdisplay_sequence_tab2(i);
14248       l_rrcomments_tab(l_rules_b_counter) := l_rrcomments_tab2(i);
14249 
14250       l_rules_b_counter := l_rules_b_counter + 1;
14251 
14252       END IF; -- if proceed_processing
14253     END LOOP;
14254   END LOOP;
14255   CLOSE c14;
14256 
14257   IF (l_rules_b_counter > 1) THEN
14258     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
14259           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rules_b_counter='||l_rules_b_counter || ' l_rrid_tab.count='||l_rrid_tab.COUNT);
14260     END IF;
14261     sort_rrid_mapping_tab;
14262     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
14263           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sort_rrid_mapping_tab done...');
14264     END IF;
14265     -- Replace object1_id2
14266     FOR i IN l_rrid_tab.first..l_rrid_tab.last
14267     LOOP
14268        IF ((l_rrobject2_id1_tab(i) IS NOT NULL) AND
14269            --(l_rrobject2_id1_tab(i)  != '#' ) and
14270            (l_rrrule_information_cate_tab(i) = 'LASLL')) THEN
14271          BEGIN
14272          l_new_id := find_rrid_mapping_id(TO_NUMBER(l_rrobject2_id1_tab(i)));
14273          IF (l_new_id = -1) THEN
14274           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
14275                       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR : Mapping id not found for ' || l_rrobject2_id1_tab(i));
14276           END IF;
14277           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14278          END IF;
14279          l_rrobject2_id1_tab(i) := l_new_id;
14280          --print('object2_id1:l_new_id=' || l_new_id);
14281          EXCEPTION WHEN OTHERS THEN
14282            NULL;
14283            --print('l_rrobject2_id1_tab(i)=' || l_rrobject2_id1_tab(i));
14284          END;
14285        END IF;
14286     END LOOP;
14287     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
14288           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'replacing object1_id2 done...');
14289     END IF;
14290 
14291     forall i IN l_rrid_tab.first..l_rrid_tab.last
14292     INSERT INTO okc_rules_b (
14293      id, rgp_id, object1_id1,
14294      object2_id1, object3_id1, object1_id2,
14295      object2_id2, object3_id2, jtot_object1_code,
14296      jtot_object2_code, jtot_object3_code, dnz_chr_id,
14297      std_template_yn, warn_yn, priority,
14298      object_version_number, created_by, creation_date,
14299      last_updated_by, last_update_date, last_update_login,
14300      attribute_category, attribute1, attribute2,
14301      attribute3, attribute4, attribute5,
14302      attribute6, attribute7, attribute8,
14303      attribute9, attribute10, attribute11,
14304      attribute12, attribute13, attribute14,
14305      attribute15, rule_information_category, rule_information1,
14306      rule_information2, rule_information3, rule_information4,
14307      rule_information5, rule_information6, rule_information7,
14308      rule_information8, rule_information9, rule_information10,
14309      rule_information11, rule_information12, rule_information13,
14310      rule_information14, rule_information15, security_group_id,
14311      template_yn, ans_set_jtot_object_code, ans_set_jtot_object_id1,
14312      ans_set_jtot_object_id2, display_sequence, comments
14313     ) VALUES (
14314      l_rrid_tab(i), l_rrrgp_id_tab(i), l_rrobject1_id1_tab(i),
14315      l_rrobject2_id1_tab(i), l_rrobject3_id1_tab(i), l_rrobject1_id2_tab(i),
14316      l_rrobject2_id2_tab(i), l_rrobject3_id2_tab(i), l_rrjtot_object1_code_tab(i),
14317      l_rrjtot_object2_code_tab(i), l_rrjtot_object3_code_tab(i), l_rrdnz_chr_id_tab(i),
14318      l_rrstd_template_yn_tab(i), l_rrwarn_yn_tab(i), l_rrpriority_tab(i),
14319      1, l_created_by, SYSDATE,
14320      l_last_updated_by, SYSDATE, l_last_update_login,
14321      l_rrattribute_category_tab(i), l_rrattribute1_tab(i), l_rrattribute2_tab(i),
14322      l_rrattribute3_tab(i), l_rrattribute4_tab(i), l_rrattribute5_tab(i),
14323      l_rrattribute6_tab(i), l_rrattribute7_tab(i), l_rrattribute8_tab(i),
14324      l_rrattribute9_tab(i), l_rrattribute10_tab(i), l_rrattribute11_tab(i),
14325      l_rrattribute12_tab(i), l_rrattribute13_tab(i), l_rrattribute14_tab(i),
14326      l_rrattribute15_tab(i), l_rrrule_information_cate_tab(i), l_rrrule_information1_tab(i),
14327      l_rrrule_information2_tab(i), l_rrrule_information3_tab(i), l_rrrule_information4_tab(i),
14328      l_rrrule_information5_tab(i), l_rrrule_information6_tab(i), l_rrrule_information7_tab(i),
14329      l_rrrule_information8_tab(i), l_rrrule_information9_tab(i), l_rrrule_information10_tab(i),
14330      l_rrrule_information11_tab(i), l_rrrule_information12_tab(i), l_rrrule_information13_tab(i),
14331      l_rrrule_information14_tab(i), l_rrrule_information15_tab(i), l_rrsecurity_group_id_tab(i),
14332      l_rrtemplate_yn_tab(i), l_rrans_set_jtot_object_c_tab(i), l_rrans_set_jtot_object_1_tab(i),
14333      l_rrans_set_jtot_object_2_tab(i), l_rrdisplay_sequence_tab(i), l_rrcomments_tab(i)
14334     );
14335     -- AKP: Special processing link_slh_sll ???
14336     FOR i IN l_rrid_tab.first..l_rrid_tab.last
14337     LOOP
14338       IF ( i = l_rrid_tab.last) THEN
14339         insert_okc_rules_tl(l_rrid_tab3(i),l_rrid_tab(i), 'Y');
14340       ELSE
14341         insert_okc_rules_tl(l_rrid_tab3(i),l_rrid_tab(i), 'N');
14342       END IF;
14343     END LOOP;
14344 
14345   END IF;
14346 
14347 EXCEPTION WHEN OTHERS THEN
14348 
14349   x_return_status := OKL_API.G_RET_STS_ERROR;
14350   /*OKL_API.set_message(p_app_name => 'OKL',
14351                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
14352                       p_token1 => 'ASSET_NUMBER',
14353                       p_token1_value => 'insert_okc_rules_b');*/
14354     /* DEBUG */
14355   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
14356       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
14357     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing insert_okc_rules_b:l_rrid_tab.count=' || l_rrid_tab.COUNT || ' ...');
14358   END IF;
14359 
14360   IF (l_rrid_tab.COUNT > 0) THEN
14361   FOR i IN l_rrid_tab.first..l_rrid_tab.last
14362   LOOP
14363     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
14364           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrid_tab('||i||')=' || l_rrid_tab(i));
14365       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrgp_id_tab('||i||')=' || l_rrrgp_id_tab(i));
14366       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrobject1_id1_tab('||i||')=' || l_rrobject1_id1_tab(i));
14367       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrobject2_id1_tab('||i||')=' || l_rrobject2_id1_tab(i));
14368       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrobject3_id1_tab('||i||')=' || l_rrobject3_id1_tab(i));
14369       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrobject1_id2_tab('||i||')=' || l_rrobject1_id2_tab(i));
14370       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrobject2_id2_tab('||i||')=' || l_rrobject2_id2_tab(i));
14371       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrobject3_id2_tab('||i||')=' || l_rrobject3_id2_tab(i));
14372       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrjtot_object1_code_tab('||i||')=' || l_rrjtot_object1_code_tab(i));
14373       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrjtot_object2_code_tab('||i||')=' || l_rrjtot_object2_code_tab(i));
14374       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrjtot_object3_code_tab('||i||')=' || l_rrjtot_object3_code_tab(i));
14375       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrdnz_chr_id_tab('||i||')=' || l_rrdnz_chr_id_tab(i));
14376       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrstd_template_yn_tab('||i||')=' || l_rrstd_template_yn_tab(i));
14377       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrwarn_yn_tab('||i||')=' || l_rrwarn_yn_tab(i));
14378       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrpriority_tab('||i||')=' || l_rrpriority_tab(i));
14379       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute_category_tab('||i||')=' || l_rrattribute_category_tab(i));
14380       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute1_tab('||i||')=' || l_rrattribute1_tab(i));
14381       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute2_tab('||i||')=' || l_rrattribute2_tab(i));
14382       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute3_tab('||i||')=' || l_rrattribute3_tab(i));
14383       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute4_tab('||i||')=' || l_rrattribute4_tab(i));
14384       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute5_tab('||i||')=' || l_rrattribute5_tab(i));
14385       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute6_tab('||i||')=' || l_rrattribute6_tab(i));
14386       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute7_tab('||i||')=' || l_rrattribute7_tab(i));
14387       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute8_tab('||i||')=' || l_rrattribute8_tab(i));
14388       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute9_tab('||i||')=' || l_rrattribute9_tab(i));
14389       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute10_tab('||i||')=' || l_rrattribute10_tab(i));
14390       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute11_tab('||i||')=' || l_rrattribute11_tab(i));
14391       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute12_tab('||i||')=' || l_rrattribute12_tab(i));
14392       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute13_tab('||i||')=' || l_rrattribute13_tab(i));
14393       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute14_tab('||i||')=' || l_rrattribute14_tab(i));
14394       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute15_tab('||i||')=' || l_rrattribute15_tab(i));
14395       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information_cate_tab('||i||')=' || l_rrrule_information_cate_tab(i));
14396       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information1_tab('||i||')=' || l_rrrule_information1_tab(i));
14397       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information2_tab('||i||')=' || l_rrrule_information2_tab(i));
14398       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information3_tab('||i||')=' || l_rrrule_information3_tab(i));
14399       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information4_tab('||i||')=' || l_rrrule_information4_tab(i));
14400       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information5_tab('||i||')=' || l_rrrule_information5_tab(i));
14401       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information6_tab('||i||')=' || l_rrrule_information6_tab(i));
14402       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information7_tab('||i||')=' || l_rrrule_information7_tab(i));
14403       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information8_tab('||i||')=' || l_rrrule_information8_tab(i));
14404       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information9_tab('||i||')=' || l_rrrule_information9_tab(i));
14405       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information10_tab('||i||')=' || l_rrrule_information10_tab(i));
14406       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information11_tab('||i||')=' || l_rrrule_information11_tab(i));
14407       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information12_tab('||i||')=' || l_rrrule_information12_tab(i));
14408       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information13_tab('||i||')=' || l_rrrule_information13_tab(i));
14409       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information14_tab('||i||')=' || l_rrrule_information14_tab(i));
14410       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information15_tab('||i||')=' || l_rrrule_information15_tab(i));
14411       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrsecurity_group_id_tab('||i||')=' || l_rrsecurity_group_id_tab(i));
14412       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrtemplate_yn_tab('||i||')=' || l_rrtemplate_yn_tab(i));
14413       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrans_set_jtot_object_c_tab('||i||')=' || l_rrans_set_jtot_object_c_tab(i));
14414       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrans_set_jtot_object_1_tab('||i||')=' || l_rrans_set_jtot_object_1_tab(i));
14415       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrans_set_jtot_object_2_tab('||i||')=' || l_rrans_set_jtot_object_2_tab(i));
14416       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrdisplay_sequence_tab('||i||')=' || l_rrdisplay_sequence_tab(i));
14417       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrcomments_tab('||i||')=' || l_rrcomments_tab(i));
14418     END IF;
14419   END LOOP;
14420   END IF;
14421 
14422   RAISE OKC_API.G_EXCEPTION_ERROR;
14423 
14424 END; /* insert_okc_rules_b */
14425 
14426 FUNCTION find_tid_mapping_id(p_id IN VARCHAR2) RETURN NUMBER IS
14427 hi NUMBER;
14428 lo NUMBER;
14429 m NUMBER;
14430 BEGIN
14431   lo := 1;
14432   hi := l_tid_counter - 1;
14433   WHILE (lo <= hi) LOOP
14434     m := FLOOR((hi + lo)/2);
14435     IF (l_tid_mapping_tab(m).rgd_code = p_id) THEN
14436       RETURN l_tid_mapping_tab(m).id;
14437     ELSIF (l_tid_mapping_tab(m).rgd_code > p_id) THEN
14438       hi := m - 1;
14439     ELSE
14440       lo := m + 1;
14441     END IF;
14442   END LOOP;
14443   RETURN -1;
14444 END;  /* find_tid_mapping_id */
14445 
14446 PROCEDURE sort_tid_mapping_tab IS
14447   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
14448   --a numtabtype;
14449   l_stack numtabtype;
14450   l_stack_index NUMBER := 0;
14451   N NUMBER;
14452   R NUMBER;
14453   L NUMBER;
14454   P NUMBER;
14455   W VARCHAR2(30);
14456   W2 NUMBER;
14457   X VARCHAR2(30);
14458   I NUMBER;
14459   J NUMBER;
14460 BEGIN
14461   IF (G_DEBUG_ENABLED = 'Y') THEN
14462     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
14463   END IF;
14464   NULL;
14465 
14466   N := l_tid_counter - 1;
14467   IF (N < 2) THEN
14468     RETURN;
14469   END IF;
14470   l_stack_index := l_stack_index + 1;
14471   l_stack(l_stack_index) := 1;
14472   l_stack_index := l_stack_index + 1;
14473   l_stack(l_stack_index) := N;
14474 
14475   --dbms_output.put_line('l_stack_index=' || l_stack_index);
14476   WHILE l_stack_index > 0
14477   LOOP
14478     R := l_stack(l_stack_index);
14479     l_stack_index := l_stack_index - 1;
14480     L := l_stack(l_stack_index);
14481     l_stack_index := l_stack_index - 1;
14482     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
14483     WHILE 1=1
14484     LOOP -- loop until L >= R
14485       I := L;
14486       J := R;
14487       P := FLOOR((L+R)/2);
14488       --if (a(L) > a(P)) then
14489       IF (l_tid_mapping_tab(L).rgd_code > l_tid_mapping_tab(P).rgd_code)
14490       THEN
14491         W := l_tid_mapping_tab(L).rgd_code;
14492         W2 := l_tid_mapping_tab(L).id;
14493         l_tid_mapping_tab(L).rgd_code :=l_tid_mapping_tab(P).rgd_code;
14494         l_tid_mapping_tab(L).id :=l_tid_mapping_tab(P).id;
14495         l_tid_mapping_tab(P).rgd_code := W;
14496         l_tid_mapping_tab(P).id := W2;
14497       END IF;
14498       --if (a(L) > a(R)) then
14499       IF (l_tid_mapping_tab(L).rgd_code > l_tid_mapping_tab(R).rgd_code)
14500       THEN
14501         W := l_tid_mapping_tab(L).rgd_code;
14502         W2 := l_tid_mapping_tab(L).id;
14503         l_tid_mapping_tab(L).rgd_code :=l_tid_mapping_tab(R).rgd_code;
14504         l_tid_mapping_tab(L).id :=l_tid_mapping_tab(R).id;
14505         l_tid_mapping_tab(R).rgd_code := W;
14506         l_tid_mapping_tab(R).id := W2;
14507       END IF;
14508       --if (a(P) > a(R)) then
14509       IF (l_tid_mapping_tab(P).rgd_code > l_tid_mapping_tab(R).rgd_code)
14510       THEN
14511         W := l_tid_mapping_tab(P).rgd_code;
14512         W2 := l_tid_mapping_tab(P).id;
14513         l_tid_mapping_tab(P).rgd_code :=l_tid_mapping_tab(R).rgd_code;
14514         l_tid_mapping_tab(P).id :=l_tid_mapping_tab(R).id;
14515         l_tid_mapping_tab(R).rgd_code := W;
14516         l_tid_mapping_tab(R).id := W2;
14517       END IF;
14518       --X := a(P);
14519       X := l_tid_mapping_tab(P).rgd_code;
14520       WHILE 1=1
14521       LOOP    -- until I > J
14522         --while (a(I) < X) loop
14523         WHILE (l_tid_mapping_tab(I).rgd_code < X) LOOP
14524           I := I + 1;
14525         END LOOP;
14526         WHILE (X < l_tid_mapping_tab(J).rgd_code) LOOP
14527           J := J - 1;
14528         END LOOP;
14529         IF (I <= J) THEN
14530           W := l_tid_mapping_tab(I).rgd_code;
14531           W2 := l_tid_mapping_tab(I).id;
14532           l_tid_mapping_tab(I).rgd_code :=l_tid_mapping_tab(J).rgd_code;
14533           l_tid_mapping_tab(I).id :=l_tid_mapping_tab(J).id;
14534           l_tid_mapping_tab(J).rgd_code := W;
14535           l_tid_mapping_tab(J).id := W2;
14536           I := I + 1;
14537           J := J - 1;
14538         END IF;
14539         EXIT WHEN I > J;
14540       END LOOP;
14541       IF (J - L < R - I) THEN
14542         IF (I < R) THEN
14543           --push(I); push(R);
14544           l_stack_index := l_stack_index + 1;
14545           l_stack(l_stack_index) := I;
14546           l_stack_index := l_stack_index + 1;
14547           l_stack(l_stack_index) := R;
14548           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
14549         END IF;
14550         R := J;
14551       ELSE
14552         IF (L < J) THEN
14553           --push(L); push(J);
14554           l_stack_index := l_stack_index + 1;
14555           l_stack(l_stack_index) := L;
14556           l_stack_index := l_stack_index + 1;
14557           l_stack(l_stack_index) := J;
14558           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
14559         END IF;
14560         L := I;
14561       END IF;
14562 
14563       EXIT WHEN (L >= R);
14564     END LOOP;
14565   END LOOP;
14566 
14567 EXCEPTION WHEN OTHERS THEN
14568 
14569   x_return_status := OKL_API.G_RET_STS_ERROR;
14570   /*OKL_API.set_message(p_app_name => 'OKL',
14571                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
14572                       p_token1 => 'ASSET_NUMBER',
14573                       p_token1_value => 'sort_tid_mapping_tab');*/
14574     /* DEBUG */
14575   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
14576       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
14577     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_tid_mapping_tab:l_tid_mapping_tab N=' || N || ' ...');
14578   END IF;
14579 
14580   --print array
14581   FOR i IN 1..N
14582   LOOP
14583     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
14584           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tid_mapping_tab('||i||')=' || l_tid_mapping_tab(i).rgd_code || ':' || l_tid_mapping_tab(i).id);
14585     END IF;
14586   END LOOP;
14587 
14588   RAISE OKC_API.G_EXCEPTION_ERROR;
14589 
14590 END;  /* sort_tid_mapping_tab */
14591 
14592 PROCEDURE insert_okc_rule_groups (p_old_id IN okc_k_headers_b.id%TYPE,
14593                                   p_new_id IN okc_k_headers_b.id%TYPE) IS
14594 CURSOR c12(p_id NUMBER) IS
14595 SELECT
14596      id, rgd_code, chr_id,
14597      cle_id, dnz_chr_id, parent_rgp_id,
14598      sat_code, object_version_number, rgp_type,
14599      created_by, creation_date, last_updated_by,
14600      last_update_date, last_update_login, attribute_category,
14601      attribute1, attribute2, attribute3,
14602      attribute4, attribute5, attribute6,
14603      attribute7, attribute8, attribute9,
14604      attribute10, attribute11, attribute12,
14605      attribute13, attribute14, attribute15,
14606      security_group_id
14607 FROM okc_rule_groups_b
14608 WHERE dnz_chr_id = p_id
14609   AND (
14610     chr_id = chr_id
14611     OR (
14612         NVL(p_copy_lines_yn, 'N') = 'Y'
14613         AND cle_id IS NOT NULL
14614        )
14615   );
14616 
14617     l_rid_tab2 l_rid_type;
14618     l_rrgd_code_tab2 l_rrgd_code_type;
14619     l_rchr_id_tab2 l_rchr_id_type;
14620     l_rcle_id_tab2 l_rcle_id_type;
14621     l_rdnz_chr_id_tab2 l_rdnz_chr_id_type;
14622     l_rparent_rgp_id_tab2 l_rparent_rgp_id_type;
14623     l_rsat_code_tab2 l_rsat_code_type;
14624     l_robject_version_number_tab2 l_robject_version_number_type;
14625     l_rrgp_type_tab2 l_rrgp_type_type;
14626     l_rcreated_by_tab2 l_rcreated_by_type;
14627     l_rcreation_date_tab2 l_rcreation_date_type;
14628     l_rlast_updated_by_tab2 l_rlast_updated_by_type;
14629     l_rlast_update_date_tab2 l_rlast_update_date_type;
14630     l_rlast_update_login_tab2 l_rlast_update_login_type;
14631     l_rattribute_category_tab2 l_rattribute_category_type;
14632     l_rattribute1_tab2 l_rattribute1_type;
14633     l_rattribute2_tab2 l_rattribute2_type;
14634     l_rattribute3_tab2 l_rattribute3_type;
14635     l_rattribute4_tab2 l_rattribute4_type;
14636     l_rattribute5_tab2 l_rattribute5_type;
14637     l_rattribute6_tab2 l_rattribute6_type;
14638     l_rattribute7_tab2 l_rattribute7_type;
14639     l_rattribute8_tab2 l_rattribute8_type;
14640     l_rattribute9_tab2 l_rattribute9_type;
14641     l_rattribute10_tab2 l_rattribute10_type;
14642     l_rattribute11_tab2 l_rattribute11_type;
14643     l_rattribute12_tab2 l_rattribute12_type;
14644     l_rattribute13_tab2 l_rattribute13_type;
14645     l_rattribute14_tab2 l_rattribute14_type;
14646     l_rattribute15_tab2 l_rattribute15_type;
14647     l_rsecurity_group_id_tab2 l_rsecurity_group_id_type;
14648 
14649     l_new_cle_id NUMBER;
14650 BEGIN
14651   IF (G_DEBUG_ENABLED = 'Y') THEN
14652     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
14653   END IF;
14654   NULL;
14655   OPEN c12(p_old_id);
14656   LOOP
14657     FETCH c12 bulk collect INTO
14658      l_rid_tab2, l_rrgd_code_tab2, l_rchr_id_tab2,
14659      l_rcle_id_tab2, l_rdnz_chr_id_tab2, l_rparent_rgp_id_tab2,
14660      l_rsat_code_tab2, l_robject_version_number_tab2, l_rrgp_type_tab2,
14661      l_rcreated_by_tab2, l_rcreation_date_tab2, l_rlast_updated_by_tab2,
14662      l_rlast_update_date_tab2, l_rlast_update_login_tab2, l_rattribute_category_tab2,
14663      l_rattribute1_tab2, l_rattribute2_tab2, l_rattribute3_tab2,
14664      l_rattribute4_tab2, l_rattribute5_tab2, l_rattribute6_tab2,
14665      l_rattribute7_tab2, l_rattribute8_tab2, l_rattribute9_tab2,
14666      l_rattribute10_tab2, l_rattribute11_tab2, l_rattribute12_tab2,
14667      l_rattribute13_tab2, l_rattribute14_tab2, l_rattribute15_tab2,
14668      l_rsecurity_group_id_tab2
14669     limit G_BULK_SIZE;
14670     EXIT WHEN l_rid_tab2.COUNT = 0;
14671     FOR i IN l_rid_tab2.first..l_rid_tab2.last
14672     LOOP
14673 
14674       l_rid_tab(l_rule_groups_b_counter) := l_rid_tab2(i);
14675       -- Store old value in tab3
14676       l_rid_tab3(l_rule_groups_b_counter) := l_rid_tab2(i);
14677       -- Change id
14678       l_rid_tab(l_rule_groups_b_counter) :=okc_p_util.raw_to_number(sys_guid());
14679 
14680       l_rid_mapping_tab(l_rule_groups_b_counter).old_id := l_rid_tab3(l_rule_groups_b_counter);
14681       l_rid_mapping_tab(l_rule_groups_b_counter).new_id := l_rid_tab(l_rule_groups_b_counter);
14682 
14683       l_rrgd_code_tab(l_rule_groups_b_counter) := l_rrgd_code_tab2(i);
14684       l_rchr_id_tab(l_rule_groups_b_counter) := l_rchr_id_tab2(i);
14685       -- Change chr_id
14686       IF (l_rchr_id_tab(l_rule_groups_b_counter) IS NOT NULL) THEN
14687         l_rchr_id_tab(l_rule_groups_b_counter) := p_new_id;
14688       END IF;
14689 
14690       l_rcle_id_tab(l_rule_groups_b_counter) := l_rcle_id_tab2(i);
14691       -- Change cle_id
14692       IF (l_rcle_id_tab(l_rule_groups_b_counter) IS NOT NULL) THEN
14693         l_new_cle_id := find_mapping_id(l_rcle_id_tab(l_rule_groups_b_counter));
14694         IF (l_new_cle_id = -1) THEN
14695           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
14696                       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR : Mapping id not found for ' || l_rcle_id_tab(l_rule_groups_b_counter));
14697           END IF;
14698           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14699         END IF;
14700         l_rcle_id_tab(l_rule_groups_b_counter) := l_new_cle_id;
14701       END IF;
14702 
14703       l_rdnz_chr_id_tab(l_rule_groups_b_counter) := l_rdnz_chr_id_tab2(i);
14704       -- Change dnz_chr_id
14705       IF (l_rdnz_chr_id_tab(l_rule_groups_b_counter) IS NOT NULL) THEN
14706         l_rdnz_chr_id_tab(l_rule_groups_b_counter) := p_new_id;
14707       END IF;
14708 
14709       -- Store terms id for business event processing
14710       IF (l_rcle_id_tab(l_rule_groups_b_counter) IS NULL) THEN
14711         l_tid_mapping_tab(l_tid_counter).rgd_code := l_rrgd_code_tab(l_rule_groups_b_counter);
14712         l_tid_mapping_tab(l_tid_counter).id := l_rid_tab(l_rule_groups_b_counter);
14713         l_tid_counter := l_tid_counter + 1;
14714       END IF;
14715 
14716       l_rparent_rgp_id_tab(l_rule_groups_b_counter) := l_rparent_rgp_id_tab2(i);
14717       -- Change parent_rgp_id ??? AKP
14718 
14719       l_rsat_code_tab(l_rule_groups_b_counter) := l_rsat_code_tab2(i);
14720       l_robject_version_number_tab(l_rule_groups_b_counter) := l_robject_version_number_tab2(i);
14721       l_rrgp_type_tab(l_rule_groups_b_counter) := l_rrgp_type_tab2(i);
14722       l_rcreated_by_tab(l_rule_groups_b_counter) := l_rcreated_by_tab2(i);
14723       l_rcreation_date_tab(l_rule_groups_b_counter) := l_rcreation_date_tab2(i);
14724       l_rlast_updated_by_tab(l_rule_groups_b_counter) := l_rlast_updated_by_tab2(i);
14725       l_rlast_update_date_tab(l_rule_groups_b_counter) := l_rlast_update_date_tab2(i);
14726       l_rlast_update_login_tab(l_rule_groups_b_counter) := l_rlast_update_login_tab2(i);
14727       l_rattribute_category_tab(l_rule_groups_b_counter) := l_rattribute_category_tab2(i);
14728       l_rattribute1_tab(l_rule_groups_b_counter) := l_rattribute1_tab2(i);
14729       l_rattribute2_tab(l_rule_groups_b_counter) := l_rattribute2_tab2(i);
14730       l_rattribute3_tab(l_rule_groups_b_counter) := l_rattribute3_tab2(i);
14731       l_rattribute4_tab(l_rule_groups_b_counter) := l_rattribute4_tab2(i);
14732       l_rattribute5_tab(l_rule_groups_b_counter) := l_rattribute5_tab2(i);
14733       l_rattribute6_tab(l_rule_groups_b_counter) := l_rattribute6_tab2(i);
14734       l_rattribute7_tab(l_rule_groups_b_counter) := l_rattribute7_tab2(i);
14735       l_rattribute8_tab(l_rule_groups_b_counter) := l_rattribute8_tab2(i);
14736       l_rattribute9_tab(l_rule_groups_b_counter) := l_rattribute9_tab2(i);
14737       l_rattribute10_tab(l_rule_groups_b_counter) := l_rattribute10_tab2(i);
14738       l_rattribute11_tab(l_rule_groups_b_counter) := l_rattribute11_tab2(i);
14739       l_rattribute12_tab(l_rule_groups_b_counter) := l_rattribute12_tab2(i);
14740       l_rattribute13_tab(l_rule_groups_b_counter) := l_rattribute13_tab2(i);
14741       l_rattribute14_tab(l_rule_groups_b_counter) := l_rattribute14_tab2(i);
14742       l_rattribute15_tab(l_rule_groups_b_counter) := l_rattribute15_tab2(i);
14743       l_rsecurity_group_id_tab(l_rule_groups_b_counter) := l_rsecurity_group_id_tab2(i);
14744 
14745       l_rule_groups_b_counter := l_rule_groups_b_counter + 1;
14746     END LOOP;
14747   END LOOP;
14748   CLOSE c12;
14749   sort_tid_mapping_tab;
14750 
14751   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
14752       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rule_groups_b_counter='||l_rule_groups_b_counter || ' l_rid_tab.count=' || l_rid_tab.COUNT);
14753   END IF;
14754   IF (l_rule_groups_b_counter > 1) THEN
14755     sort_rid_mapping_tab;
14756 
14757     forall i IN l_rid_tab.first..l_rid_tab.last
14758     INSERT INTO okc_rule_groups_b (
14759      id, rgd_code, chr_id,
14760      cle_id, dnz_chr_id, parent_rgp_id,
14761      sat_code, object_version_number, rgp_type,
14762      created_by, creation_date, last_updated_by,
14763      last_update_date, last_update_login, attribute_category,
14764      attribute1, attribute2, attribute3,
14765      attribute4, attribute5, attribute6,
14766      attribute7, attribute8, attribute9,
14767      attribute10, attribute11, attribute12,
14768      attribute13, attribute14, attribute15,
14769      security_group_id
14770     ) VALUES (
14771      l_rid_tab(i), l_rrgd_code_tab(i), l_rchr_id_tab(i),
14772      l_rcle_id_tab(i), l_rdnz_chr_id_tab(i), l_rparent_rgp_id_tab(i),
14773      l_rsat_code_tab(i), 1, l_rrgp_type_tab(i),
14774      l_created_by, SYSDATE, l_last_updated_by,
14775      SYSDATE, l_last_update_login, l_rattribute_category_tab(i),
14776      l_rattribute1_tab(i), l_rattribute2_tab(i), l_rattribute3_tab(i),
14777      l_rattribute4_tab(i), l_rattribute5_tab(i), l_rattribute6_tab(i),
14778      l_rattribute7_tab(i), l_rattribute8_tab(i), l_rattribute9_tab(i),
14779      l_rattribute10_tab(i), l_rattribute11_tab(i), l_rattribute12_tab(i),
14780      l_rattribute13_tab(i), l_rattribute14_tab(i), l_rattribute15_tab(i),
14781      l_rsecurity_group_id_tab(i)
14782     );
14783    FOR i IN l_rid_tab.first..l_rid_tab.last
14784    LOOP
14785      IF (i = l_rid_tab.last) THEN
14786        prepare_rule_groups_tl(l_rid_tab3(i), l_rid_tab(i), 'Y');
14787      ELSE
14788        prepare_rule_groups_tl(l_rid_tab3(i), l_rid_tab(i), 'N');
14789      END IF;
14790    END LOOP;
14791 
14792   l_message := 'OKL_NEW_COPY_RUL_ERROR';
14793   insert_okc_rules_b(p_chr_id, l_copied_id);
14794 
14795   END IF;
14796 
14797 EXCEPTION WHEN OTHERS THEN
14798 
14799   x_return_status := OKL_API.G_RET_STS_ERROR;
14800   /*OKL_API.set_message(p_app_name => 'OKL',
14801                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
14802                       p_token1 => 'ASSET_NUMBER',
14803                       p_token1_value => 'insert_okc_rule_groups');*/
14804     /* DEBUG */
14805   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
14806       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
14807     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing insert_okc_rule_groups:l_rid_tab.count=' || l_rid_tab.COUNT || ' ...');
14808   END IF;
14809   IF (l_rid_tab.COUNT > 0) THEN
14810   FOR i IN l_rid_tab.first..l_rid_tab.last
14811   LOOP
14812     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
14813           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rid_tab('||i||')=' || l_rid_tab(i));
14814       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrgd_code_tab('||i||')=' || l_rrgd_code_tab(i));
14815       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rchr_id_tab('||i||')=' || l_rchr_id_tab(i));
14816       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rcle_id_tab('||i||')=' || l_rcle_id_tab(i));
14817       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rdnz_chr_id_tab('||i||')=' || l_rdnz_chr_id_tab(i));
14818       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rparent_rgp_id_tab('||i||')=' || l_rparent_rgp_id_tab(i));
14819       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rsat_code_tab('||i||')=' || l_rsat_code_tab(i));
14820       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrgp_type_tab('||i||')=' || l_rrgp_type_tab(i));
14821       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute_category_tab('||i||')=' || l_rattribute_category_tab(i));
14822       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute1_tab('||i||')=' || l_rattribute1_tab(i));
14823       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute2_tab('||i||')=' || l_rattribute2_tab(i));
14824       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute3_tab('||i||')=' || l_rattribute3_tab(i));
14825       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute4_tab('||i||')=' || l_rattribute4_tab(i));
14826       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute5_tab('||i||')=' || l_rattribute5_tab(i));
14827       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute6_tab('||i||')=' || l_rattribute6_tab(i));
14828       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute7_tab('||i||')=' || l_rattribute7_tab(i));
14829       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute8_tab('||i||')=' || l_rattribute8_tab(i));
14830       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute9_tab('||i||')=' || l_rattribute9_tab(i));
14831       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute10_tab('||i||')=' || l_rattribute10_tab(i));
14832       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute11_tab('||i||')=' || l_rattribute11_tab(i));
14833       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute12_tab('||i||')=' || l_rattribute12_tab(i));
14834       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute13_tab('||i||')=' || l_rattribute13_tab(i));
14835       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute14_tab('||i||')=' || l_rattribute14_tab(i));
14836       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute15_tab('||i||')=' || l_rattribute15_tab(i));
14837       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rsecurity_group_id_tab('||i||')=' || l_rsecurity_group_id_tab(i));
14838     END IF;
14839   END LOOP;
14840   END IF;
14841 
14842   RAISE OKC_API.G_EXCEPTION_ERROR;
14843 
14844 END;  /* insert_okc_rule_groups */
14845 
14846 FUNCTION find_oid_mapping_id(p_id IN NUMBER) RETURN VARCHAR2 IS
14847 hi NUMBER;
14848 lo NUMBER;
14849 m NUMBER;
14850 p VARCHAR2(2) := '-1';
14851 BEGIN
14852   lo := 1;
14853   hi := l_items_counter - 1;
14854   WHILE (lo <= hi) LOOP
14855     m := FLOOR((hi + lo)/2);
14856     IF (l_oid_mapping_tab(m).cle_id = p_id) THEN
14857       RETURN l_oid_mapping_tab(m).object1_id1;
14858     ELSIF (l_oid_mapping_tab(m).cle_id > p_id) THEN
14859       hi := m - 1;
14860     ELSE
14861       lo := m + 1;
14862     END IF;
14863   END LOOP;
14864   RETURN p;
14865 END;  /* find_oid_mapping_id */
14866 
14867 PROCEDURE sort_oid_mapping_tab IS
14868   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
14869   --a numtabtype;
14870   l_stack numtabtype;
14871   l_stack_index NUMBER := 0;
14872   N NUMBER;
14873   R NUMBER;
14874   L NUMBER;
14875   P NUMBER;
14876 
14877   W NUMBER;
14878   W2 VARCHAR2(150);
14879   X NUMBER;
14880   I NUMBER;
14881   J NUMBER;
14882 BEGIN
14883   IF (G_DEBUG_ENABLED = 'Y') THEN
14884     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
14885   END IF;
14886   NULL;
14887 
14888   N := l_items_counter - 1;
14889   IF (N < 2) THEN
14890     RETURN;
14891   END IF;
14892   l_stack_index := l_stack_index + 1;
14893   l_stack(l_stack_index) := 1;
14894   l_stack_index := l_stack_index + 1;
14895   l_stack(l_stack_index) := N;
14896 
14897   --dbms_output.put_line('l_stack_index=' || l_stack_index);
14898   WHILE l_stack_index > 0
14899   LOOP
14900     R := l_stack(l_stack_index);
14901     l_stack_index := l_stack_index - 1;
14902     L := l_stack(l_stack_index);
14903     l_stack_index := l_stack_index - 1;
14904     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
14905     WHILE 1=1
14906     LOOP -- loop until L >= R
14907       I := L;
14908       J := R;
14909       P := FLOOR((L+R)/2);
14910       --if (a(L) > a(P)) then
14911       IF (l_oid_mapping_tab(L).cle_id > l_oid_mapping_tab(P).cle_id)
14912       THEN
14913         W := l_oid_mapping_tab(L).cle_id;
14914         W2 := l_oid_mapping_tab(L).object1_id1;
14915         l_oid_mapping_tab(L).cle_id :=l_oid_mapping_tab(P).cle_id;
14916         l_oid_mapping_tab(L).object1_id1 :=l_oid_mapping_tab(P).object1_id1;
14917         l_oid_mapping_tab(P).cle_id := W;
14918         l_oid_mapping_tab(P).object1_id1 := W2;
14919       END IF;
14920       --if (a(L) > a(R)) then
14921       IF (l_oid_mapping_tab(L).cle_id > l_oid_mapping_tab(R).cle_id)
14922       THEN
14923         W := l_oid_mapping_tab(L).cle_id;
14924         W2 := l_oid_mapping_tab(L).object1_id1;
14925         l_oid_mapping_tab(L).cle_id :=l_oid_mapping_tab(R).cle_id;
14926         l_oid_mapping_tab(L).object1_id1 :=l_oid_mapping_tab(R).object1_id1;
14927         l_oid_mapping_tab(R).cle_id := W;
14928         l_oid_mapping_tab(R).object1_id1 := W2;
14929       END IF;
14930       --if (a(P) > a(R)) then
14931       IF (l_oid_mapping_tab(P).cle_id > l_oid_mapping_tab(R).cle_id)
14932       THEN
14933         W := l_oid_mapping_tab(P).cle_id;
14934         W2 := l_oid_mapping_tab(P).object1_id1;
14935         l_oid_mapping_tab(P).cle_id :=l_oid_mapping_tab(R).cle_id;
14936         l_oid_mapping_tab(P).object1_id1 :=l_oid_mapping_tab(R).object1_id1;
14937         l_oid_mapping_tab(R).cle_id := W;
14938         l_oid_mapping_tab(R).object1_id1 := W2;
14939       END IF;
14940       --X := a(P);
14941       X := l_oid_mapping_tab(P).cle_id;
14942       WHILE 1=1
14943       LOOP    -- until I > J
14944         --while (a(I) < X) loop
14945         WHILE (l_oid_mapping_tab(I).cle_id < X) LOOP
14946           I := I + 1;
14947         END LOOP;
14948         WHILE (X < l_oid_mapping_tab(J).cle_id) LOOP
14949           J := J - 1;
14950         END LOOP;
14951         IF (I <= J) THEN
14952           W := l_oid_mapping_tab(I).cle_id;
14953           W2 := l_oid_mapping_tab(I).object1_id1;
14954           l_oid_mapping_tab(I).cle_id :=l_oid_mapping_tab(J).cle_id;
14955           l_oid_mapping_tab(I).object1_id1 :=l_oid_mapping_tab(J).object1_id1;
14956           l_oid_mapping_tab(J).cle_id := W;
14957           l_oid_mapping_tab(J).object1_id1 := W2;
14958           I := I + 1;
14959           J := J - 1;
14960         END IF;
14961         EXIT WHEN I > J;
14962       END LOOP;
14963       IF (J - L < R - I) THEN
14964         IF (I < R) THEN
14965           --push(I); push(R);
14966           l_stack_index := l_stack_index + 1;
14967           l_stack(l_stack_index) := I;
14968           l_stack_index := l_stack_index + 1;
14969           l_stack(l_stack_index) := R;
14970           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
14971         END IF;
14972         R := J;
14973       ELSE
14974         IF (L < J) THEN
14975           --push(L); push(J);
14976           l_stack_index := l_stack_index + 1;
14977           l_stack(l_stack_index) := L;
14978           l_stack_index := l_stack_index + 1;
14979           l_stack(l_stack_index) := J;
14980           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
14981         END IF;
14982         L := I;
14983       END IF;
14984 
14985       EXIT WHEN (L >= R);
14986     END LOOP;
14987   END LOOP;
14988 
14989 EXCEPTION WHEN OTHERS THEN
14990 
14991   x_return_status := OKL_API.G_RET_STS_ERROR;
14992   /*OKL_API.set_message(p_app_name => 'OKL',
14993                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
14994                       p_token1 => 'ASSET_NUMBER',
14995                       p_token1_value => 'sort_oid_mapping_tab');*/
14996     /* DEBUG */
14997   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
14998       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
14999     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_oid_mapping_tab:l_oid_mapping_tab N=' || N || ' ...');
15000   END IF;
15001 
15002   --print array
15003   FOR i IN 1..N
15004   LOOP
15005     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15006           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_oid_mapping_tab('||i||')=' || l_oid_mapping_tab(i).cle_id || ':' || l_oid_mapping_tab(i).object1_id1);
15007     END IF;
15008   END LOOP;
15009 
15010   RAISE OKC_API.G_EXCEPTION_ERROR;
15011 
15012 END;  /* sort_oid_mapping_tab */
15013 
15014 FUNCTION find_okc_k_items_rec(p_id IN NUMBER) RETURN l_okc_k_items_rec_type IS
15015 hi NUMBER;
15016 lo NUMBER;
15017 m NUMBER;
15018 l_dummy_rec l_okc_k_items_rec_type;
15019 BEGIN
15020   lo := 1;
15021   hi := l_okc_k_items_rec_counter - 1;
15022   WHILE (lo <= hi) LOOP
15023     m := FLOOR((hi + lo)/2);
15024     IF (l_okc_k_items_rec(m).id = p_id) THEN
15025       RETURN l_okc_k_items_rec(m);
15026     ELSIF (l_okc_k_items_rec(m).id > p_id) THEN
15027       hi := m - 1;
15028     ELSE
15029       lo := m + 1;
15030     END IF;
15031   END LOOP;
15032   l_dummy_rec.number_of_items := OKC_API.G_MISS_NUM;
15033   RETURN l_dummy_rec;
15034 END;  /* find_okc_k_items_rec */
15035 
15036 PROCEDURE sort_okc_k_items_rec IS
15037   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
15038   --a numtabtype;
15039   l_stack numtabtype;
15040   l_stack_index NUMBER := 0;
15041   N NUMBER;
15042   R NUMBER;
15043   L NUMBER;
15044   P NUMBER;
15045   W NUMBER;
15046   W2 NUMBER;
15047   W3 VARCHAR2(40);
15048   W4 VARCHAR2(200);
15049   X NUMBER;
15050   I NUMBER;
15051   J NUMBER;
15052 BEGIN
15053   IF (G_DEBUG_ENABLED = 'Y') THEN
15054     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
15055   END IF;
15056   NULL;
15057 
15058   N := l_okc_k_items_rec_counter - 1;
15059   IF (N < 2) THEN
15060     RETURN;
15061   END IF;
15062   l_stack_index := l_stack_index + 1;
15063   l_stack(l_stack_index) := 1;
15064   l_stack_index := l_stack_index + 1;
15065   l_stack(l_stack_index) := N;
15066 
15067   --dbms_output.put_line('l_stack_index=' || l_stack_index);
15068   WHILE l_stack_index > 0
15069   LOOP
15070     R := l_stack(l_stack_index);
15071     l_stack_index := l_stack_index - 1;
15072     L := l_stack(l_stack_index);
15073     l_stack_index := l_stack_index - 1;
15074     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
15075     WHILE 1=1
15076     LOOP -- loop until L >= R
15077       I := L;
15078       J := R;
15079       P := FLOOR((L+R)/2);
15080       --if (a(L) > a(P)) then
15081       IF (l_okc_k_items_rec(L).id > l_okc_k_items_rec(P).id)
15082       THEN
15083         W := l_okc_k_items_rec(L).id;
15084         W2 := l_okc_k_items_rec(L).number_of_items;
15085         W3 := l_okc_k_items_rec(L).object1_id1;
15086         W4 := l_okc_k_items_rec(L).object1_id2;
15087         l_okc_k_items_rec(L).id :=l_okc_k_items_rec(P).id;
15088         l_okc_k_items_rec(L).number_of_items :=l_okc_k_items_rec(P).number_of_items;
15089         l_okc_k_items_rec(L).object1_id1 :=l_okc_k_items_rec(P).object1_id1;
15090         l_okc_k_items_rec(L).object1_id2 :=l_okc_k_items_rec(P).object1_id2;
15091         l_okc_k_items_rec(P).id := W;
15092         l_okc_k_items_rec(P).number_of_items := W2;
15093         l_okc_k_items_rec(P).object1_id1 := W3;
15094         l_okc_k_items_rec(P).object1_id2 := W4;
15095       END IF;
15096       --if (a(L) > a(R)) then
15097       IF (l_okc_k_items_rec(L).id > l_okc_k_items_rec(R).id)
15098       THEN
15099         W := l_okc_k_items_rec(L).id;
15100         W2 := l_okc_k_items_rec(L).number_of_items;
15101         W3 := l_okc_k_items_rec(L).object1_id1;
15102         W4 := l_okc_k_items_rec(L).object1_id2;
15103         l_okc_k_items_rec(L).id :=l_okc_k_items_rec(R).id;
15104         l_okc_k_items_rec(L).number_of_items :=l_okc_k_items_rec(R).number_of_items;
15105         l_okc_k_items_rec(L).object1_id1 :=l_okc_k_items_rec(R).object1_id1;
15106         l_okc_k_items_rec(L).object1_id2 :=l_okc_k_items_rec(R).object1_id2;
15107         l_okc_k_items_rec(R).id := W;
15108         l_okc_k_items_rec(R).number_of_items := W2;
15109         l_okc_k_items_rec(R).object1_id1 := W3;
15110         l_okc_k_items_rec(R).object1_id2 := W4;
15111       END IF;
15112       --if (a(P) > a(R)) then
15113       IF (l_okc_k_items_rec(P).id > l_okc_k_items_rec(R).id)
15114       THEN
15115         W := l_okc_k_items_rec(P).id;
15116         W2 := l_okc_k_items_rec(P).number_of_items;
15117         W3 := l_okc_k_items_rec(P).object1_id1;
15118         W4 := l_okc_k_items_rec(P).object1_id2;
15119         l_okc_k_items_rec(P).id :=l_okc_k_items_rec(R).id;
15120         l_okc_k_items_rec(P).number_of_items :=l_okc_k_items_rec(R).number_of_items;
15121         l_okc_k_items_rec(P).object1_id1 :=l_okc_k_items_rec(R).object1_id1;
15122         l_okc_k_items_rec(P).object1_id2 :=l_okc_k_items_rec(R).object1_id2;
15123         l_okc_k_items_rec(R).id := W;
15124         l_okc_k_items_rec(R).number_of_items := W2;
15125         l_okc_k_items_rec(R).object1_id1 := W3;
15126         l_okc_k_items_rec(R).object1_id2 := W4;
15127       END IF;
15128       --X := a(P);
15129       X := l_okc_k_items_rec(P).id;
15130       WHILE 1=1
15131       LOOP    -- until I > J
15132         --while (a(I) < X) loop
15133         WHILE (l_okc_k_items_rec(I).id < X) LOOP
15134           I := I + 1;
15135         END LOOP;
15136         WHILE (X < l_okc_k_items_rec(J).id) LOOP
15137           J := J - 1;
15138         END LOOP;
15139         IF (I <= J) THEN
15140           W := l_okc_k_items_rec(I).id;
15141           W2 := l_okc_k_items_rec(I).number_of_items;
15142           W3 := l_okc_k_items_rec(I).object1_id1;
15143           W4 := l_okc_k_items_rec(I).object1_id2;
15144           l_okc_k_items_rec(I).id :=l_okc_k_items_rec(J).id;
15145           l_okc_k_items_rec(I).number_of_items :=l_okc_k_items_rec(J).number_of_items;
15146           l_okc_k_items_rec(I).object1_id1 :=l_okc_k_items_rec(J).object1_id1;
15147           l_okc_k_items_rec(I).object1_id2 :=l_okc_k_items_rec(J).object1_id2;
15148           l_okc_k_items_rec(J).id := W;
15149           l_okc_k_items_rec(J).number_of_items := W2;
15150           l_okc_k_items_rec(J).object1_id1 := W3;
15151           l_okc_k_items_rec(J).object1_id2 := W4;
15152           I := I + 1;
15153           J := J - 1;
15154         END IF;
15155         EXIT WHEN I > J;
15156       END LOOP;
15157       IF (J - L < R - I) THEN
15158         IF (I < R) THEN
15159           --push(I); push(R);
15160           l_stack_index := l_stack_index + 1;
15161           l_stack(l_stack_index) := I;
15162           l_stack_index := l_stack_index + 1;
15163           l_stack(l_stack_index) := R;
15164           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
15165         END IF;
15166         R := J;
15167       ELSE
15168         IF (L < J) THEN
15169           --push(L); push(J);
15170           l_stack_index := l_stack_index + 1;
15171           l_stack(l_stack_index) := L;
15172           l_stack_index := l_stack_index + 1;
15173           l_stack(l_stack_index) := J;
15174           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
15175         END IF;
15176         L := I;
15177       END IF;
15178 
15179       EXIT WHEN (L >= R);
15180     END LOOP;
15181   END LOOP;
15182   /*print('Now Printing okc_k_items_rec...');
15183   for i in 1..N
15184   loop
15185     print('l_okc_k_items_rec('||i||')=' || l_okc_k_items_rec(i).id || ':' || l_okc_k_items_rec(i).number_of_items || ':' || l_okc_k_items_rec(i).object1_id1 || ':' || l_okc_k_items_rec(i).object1_id2 );
15186   end loop;*/
15187 
15188 
15189 EXCEPTION WHEN OTHERS THEN
15190 
15191   x_return_status := OKL_API.G_RET_STS_ERROR;
15192   /*OKL_API.set_message(p_app_name => 'OKL',
15193                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
15194                       p_token1 => 'ASSET_NUMBER',
15195                       p_token1_value => 'sort_okc_k_items_rec');*/
15196     /* DEBUG */
15197   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15198       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
15199     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_okc_k_items_rec:l_okc_k_items_rec N=' || N || ' ...');
15200   END IF;
15201 
15202   --print array
15203   FOR i IN 1..N
15204   LOOP
15205     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15206           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_okc_k_items_rec('||i||')='
15207 	  || l_okc_k_items_rec(i).id || ':' || l_okc_k_items_rec(i).number_of_items || ':'
15208 	  || l_okc_k_items_rec(i).object1_id1 || ':' || l_okc_k_items_rec(i).object1_id2 );
15209     END IF;
15210   END LOOP;
15211 
15212   RAISE OKC_API.G_EXCEPTION_ERROR;
15213 
15214 END;  /* sort_okc_k_items_rec */
15215 
15216 
15217 
15218 PROCEDURE insert_okc_k_items (p_old_id IN okc_k_headers_b.id%TYPE,
15219                        p_new_id IN okc_k_headers_b.id%TYPE) IS
15220 CURSOR c16(p_id NUMBER) IS
15221 SELECT
15222      a.id, a.cle_id, a.chr_id,
15223      a.cle_id_for, a.dnz_chr_id, a.object1_id1,
15224      a.object1_id2, a.jtot_object1_code, a.uom_code,
15225      a.exception_yn, a.number_of_items, a.priced_item_yn,
15226      a.object_version_number, a.created_by, a.creation_date,
15227      a.last_updated_by, a.last_update_date, a.last_update_login,
15228      a.security_group_id, a.upg_orig_system_ref, a.upg_orig_system_ref_id,
15229      a.program_application_id, a.program_id, a.program_update_date,
15230      a.request_id, b.lse_id
15231 FROM okc_k_items a,
15232      okc_k_lines_b b
15233 WHERE a.dnz_chr_id = p_id
15234 AND   a.cle_id = b.id;
15235 
15236     TYPE l_ilse_id_type IS TABLE OF okc_k_lines_b.lse_id%TYPE INDEX BY BINARY_INTEGER;
15237     l_iid_tab2 l_iid_type;
15238     l_icle_id_tab2 l_icle_id_type;
15239     l_ichr_id_tab2 l_ichr_id_type;
15240     l_icle_id_for_tab2 l_icle_id_for_type;
15241     l_idnz_chr_id_tab2 l_idnz_chr_id_type;
15242     l_iobject1_id1_tab2 l_iobject1_id1_type;
15243     l_iobject1_id2_tab2 l_iobject1_id2_type;
15244     l_ijtot_object1_code_tab2 l_ijtot_object1_code_type;
15245     l_iuom_code_tab2 l_iuom_code_type;
15246     l_iexception_yn_tab2 l_iexception_yn_type;
15247     l_inumber_of_items_tab2 l_inumber_of_items_type;
15248     l_ipriced_item_yn_tab2 l_ipriced_item_yn_type;
15249     l_iobject_version_number_tab2 l_iobject_version_number_type;
15250     l_icreated_by_tab2 l_icreated_by_type;
15251     l_icreation_date_tab2 l_icreation_date_type;
15252     l_ilast_updated_by_tab2 l_ilast_updated_by_type;
15253     l_ilast_update_date_tab2 l_ilast_update_date_type;
15254     l_ilast_update_login_tab2 l_ilast_update_login_type;
15255     l_isecurity_group_id_tab2 l_isecurity_group_id_type;
15256     l_iupg_orig_system_ref_tab2 l_iupg_orig_system_ref_type;
15257     l_iupg_orig_system_ref_id_tab2 l_iupg_orig_system_ref_id_type;
15258     l_iprogram_application_id_tab2 l_iprogram_application_id_type;
15259     l_iprogram_id_tab2 l_iprogram_id_type;
15260     l_iprogram_update_date_tab2 l_iprogram_update_date_type;
15261     l_irequest_id_tab2 l_irequest_id_type;
15262     l_ilse_id_tab2 l_ilse_id_type;
15263 
15264     l_new_cle_id NUMBER;
15265     l_new_object1_id1 NUMBER;
15266 BEGIN
15267 
15268   OPEN c16(p_old_id);
15269   LOOP
15270     FETCH c16 bulk collect INTO
15271      l_iid_tab2, l_icle_id_tab2, l_ichr_id_tab2,
15272      l_icle_id_for_tab2, l_idnz_chr_id_tab2, l_iobject1_id1_tab2,
15273      l_iobject1_id2_tab2, l_ijtot_object1_code_tab2, l_iuom_code_tab2,
15274      l_iexception_yn_tab2, l_inumber_of_items_tab2, l_ipriced_item_yn_tab2,
15275      l_iobject_version_number_tab2, l_icreated_by_tab2, l_icreation_date_tab2,
15276      l_ilast_updated_by_tab2, l_ilast_update_date_tab2, l_ilast_update_login_tab2,
15277      l_isecurity_group_id_tab2, l_iupg_orig_system_ref_tab2, l_iupg_orig_system_ref_id_tab2,
15278      l_iprogram_application_id_tab2, l_iprogram_id_tab2, l_iprogram_update_date_tab2,
15279      l_irequest_id_tab2, l_ilse_id_tab2
15280     limit G_BULK_SIZE;
15281     EXIT WHEN l_iid_tab2.COUNT = 0;
15282     FOR i IN l_iid_tab2.first..l_iid_tab2.last
15283     LOOP
15284 
15285       l_iid_tab(l_items_counter) := l_iid_tab2(i);
15286       -- Change id
15287       l_iid_tab(l_items_counter) := okc_p_util.raw_to_number(sys_guid());
15288 
15289       l_icle_id_tab(l_items_counter) := l_icle_id_tab2(i);
15290       -- Change cle_id
15291       IF (l_icle_id_tab(l_items_counter) IS NOT NULL) THEN
15292         l_new_cle_id := find_mapping_id(l_icle_id_tab(l_items_counter));
15293         IF (l_new_cle_id = -1) THEN
15294           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15295                       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR : Mapping cle id not found for ' || l_icle_id_tab(l_items_counter));
15296           END IF;
15297           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
15298         END IF;
15299         l_icle_id_tab(l_items_counter) := l_new_cle_id;
15300       END IF;
15301 
15302       l_ichr_id_tab(l_items_counter) := l_ichr_id_tab2(i);
15303       -- Change chr_id
15304       IF (l_ichr_id_tab(l_items_counter) IS NOT NULL) THEN
15305         l_ichr_id_tab(l_items_counter):= p_new_id;
15306       END IF;
15307 
15308       l_icle_id_for_tab(l_items_counter) := l_icle_id_for_tab2(i);
15309       -- Change cle_id_for ??? AKP
15310 
15311       l_idnz_chr_id_tab(l_items_counter) := l_idnz_chr_id_tab2(i);
15312       -- Change dnz_chr_id
15313       l_idnz_chr_id_tab(l_items_counter) := p_new_id;
15314 
15315       l_iobject1_id1_tab(l_items_counter) := l_iobject1_id1_tab2(i);
15316       -- Change object1_id1
15317       IF(l_ilse_id_tab2(i) IN (53, 49, 57)) THEN
15318         -- Bug 4891184
15319         IF (l_iobject1_id1_tab(l_items_counter) IS NOT NULL) THEN
15320         l_new_object1_id1 := find_mapping_id(l_iobject1_id1_tab(l_items_counter));
15321         IF (l_new_object1_id1 = -1) THEN
15322           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15323                       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR : Mapping object1_id not found for ' || l_iobject1_id1_tab(l_items_counter));
15324           END IF;
15325           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
15326         END IF;
15327         l_iobject1_id1_tab(l_items_counter) := l_new_object1_id1;
15328         END IF;
15329       END IF;
15330       l_iobject1_id2_tab(l_items_counter) := l_iobject1_id2_tab2(i);
15331       -- Change object1_id1 and object1_id2
15332 
15333       IF (p_trans_type NOT IN ('OKL_REBOOK', 'OKL_RELEASE') AND
15334           l_ilse_id_tab2(i) IN (42, 45)) THEN
15335         l_iobject1_id1_tab(l_items_counter) := NULL;
15336         l_iobject1_id2_tab(l_items_counter) := NULL;
15337       END IF;
15338 
15339       -- Store cle_id to object1_id1 mapping (needed for business function)
15340       l_oid_mapping_tab(l_items_counter).cle_id := l_icle_id_tab(l_items_counter);
15341       l_oid_mapping_tab(l_items_counter).object1_id1 := l_iobject1_id1_tab(l_items_counter);
15342 
15343       l_ijtot_object1_code_tab(l_items_counter) := l_ijtot_object1_code_tab2(i);
15344       l_iuom_code_tab(l_items_counter) := l_iuom_code_tab2(i);
15345       l_iexception_yn_tab(l_items_counter) := l_iexception_yn_tab2(i);
15346       l_inumber_of_items_tab(l_items_counter) := l_inumber_of_items_tab2(i);
15347       l_ipriced_item_yn_tab(l_items_counter) := l_ipriced_item_yn_tab2(i);
15348       l_iobject_version_number_tab(l_items_counter) := l_iobject_version_number_tab2(i);
15349       l_icreated_by_tab(l_items_counter) := l_icreated_by_tab2(i);
15350       l_icreation_date_tab(l_items_counter) := l_icreation_date_tab2(i);
15351       l_ilast_updated_by_tab(l_items_counter) := l_ilast_updated_by_tab2(i);
15352       l_ilast_update_date_tab(l_items_counter) := l_ilast_update_date_tab2(i);
15353       l_ilast_update_login_tab(l_items_counter) := l_ilast_update_login_tab2(i);
15354       l_isecurity_group_id_tab(l_items_counter) := l_isecurity_group_id_tab2(i);
15355       l_iupg_orig_system_ref_tab(l_items_counter) := l_iupg_orig_system_ref_tab2(i);
15356       l_iupg_orig_system_ref_id_tab(l_items_counter) := l_iupg_orig_system_ref_id_tab2(i);
15357       l_iprogram_application_id_tab(l_items_counter) := l_iprogram_application_id_tab2(i);
15358       l_iprogram_id_tab(l_items_counter) := l_iprogram_id_tab2(i);
15359       l_iprogram_update_date_tab(l_items_counter) := l_iprogram_update_date_tab2(i);
15360       l_irequest_id_tab(l_items_counter) := l_irequest_id_tab2(i);
15361 
15362       l_okc_k_items_rec(l_okc_k_items_rec_counter).id := l_icle_id_tab(l_items_counter);
15363       l_okc_k_items_rec(l_okc_k_items_rec_counter).number_of_items := l_inumber_of_items_tab(l_items_counter);
15364       l_okc_k_items_rec(l_okc_k_items_rec_counter).object1_id1 := l_iobject1_id1_tab(l_items_counter);
15365       l_okc_k_items_rec(l_okc_k_items_rec_counter).object1_id2 := l_iobject1_id2_tab(l_items_counter);
15366       l_okc_k_items_rec_counter := l_okc_k_items_rec_counter + 1 ;
15367 
15368       l_items_counter := l_items_counter + 1;
15369     END LOOP;
15370   END LOOP;
15371   CLOSE c16;
15372   sort_oid_mapping_tab;
15373   sort_okc_k_items_rec;
15374 
15375   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15376       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_items_counter=' || l_items_counter || ' l_iid_tab.count=' || l_iid_tab.COUNT);
15377   END IF;
15378   IF (l_items_counter > 1) THEN
15379     --Bug# 16425139: Fixed population of WHO columns to not copy values from previous contract
15380     forall i IN l_iid_tab.first..l_iid_tab.last
15381      INSERT INTO okc_k_items (
15382        id, cle_id, chr_id,
15383        cle_id_for, dnz_chr_id, object1_id1,
15384        object1_id2, jtot_object1_code, uom_code,
15385        exception_yn, number_of_items, priced_item_yn,
15386        object_version_number, created_by, creation_date,
15387        last_updated_by, last_update_date, last_update_login,
15388        security_group_id, upg_orig_system_ref, upg_orig_system_ref_id,
15389        program_application_id, program_id, program_update_date,
15390        request_id
15391      ) VALUES (
15392        l_iid_tab(i), l_icle_id_tab(i), l_ichr_id_tab(i),
15393        l_icle_id_for_tab(i), l_idnz_chr_id_tab(i), l_iobject1_id1_tab(i),
15394        l_iobject1_id2_tab(i), l_ijtot_object1_code_tab(i), l_iuom_code_tab(i),
15395        l_iexception_yn_tab(i), l_inumber_of_items_tab(i), l_ipriced_item_yn_tab(i),
15396        1, l_created_by, SYSDATE,
15397        l_last_updated_by, SYSDATE, l_last_update_login,
15398        l_isecurity_group_id_tab(i), l_iupg_orig_system_ref_tab(i), l_iupg_orig_system_ref_id_tab(i),
15399        l_iprogram_application_id_tab(i), l_iprogram_id_tab(i), l_iprogram_update_date_tab(i),
15400        l_irequest_id_tab(i)
15401      );
15402   END IF;
15403 
15404 EXCEPTION WHEN OTHERS THEN
15405 
15406   x_return_status := OKL_API.G_RET_STS_ERROR;
15407   /*OKL_API.set_message(p_app_name => 'OKL',
15408                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
15409                       p_token1 => 'ASSET_NUMBER',
15410                       p_token1_value => 'insert_okc_k_items');*/
15411     /* DEBUG */
15412   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15413       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
15414     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing insert_okc_k_items:l_iid_tab.count=' || l_iid_tab.COUNT || ' ...');
15415   END IF;
15416   IF (l_iid_tab.COUNT > 0) THEN
15417   FOR i IN l_iid_tab.first..l_iid_tab.last
15418   LOOP
15419     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15420           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_iid_tab('||i||')=' || l_iid_tab(i));
15421       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_icle_id_tab('||i||')=' || l_icle_id_tab(i));
15422       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ichr_id_tab('||i||')=' || l_ichr_id_tab(i));
15423       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_icle_id_for_tab('||i||')=' || l_icle_id_for_tab(i));
15424       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_idnz_chr_id_tab('||i||')=' || l_idnz_chr_id_tab(i));
15425       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_iobject1_id1_tab('||i||')=' || l_iobject1_id1_tab(i));
15426       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_iobject1_id2_tab('||i||')=' || l_iobject1_id2_tab(i));
15427       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ijtot_object1_code_tab('||i||')=' || l_ijtot_object1_code_tab(i));
15428       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_iuom_code_tab('||i||')=' || l_iuom_code_tab(i));
15429       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_iexception_yn_tab('||i||')=' || l_iexception_yn_tab(i));
15430       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_inumber_of_items_tab('||i||')=' || l_inumber_of_items_tab(i));
15431       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ipriced_item_yn_tab('||i||')=' || l_ipriced_item_yn_tab(i));
15432       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_isecurity_group_id_tab('||i||')=' || l_isecurity_group_id_tab(i));
15433       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_iupg_orig_system_ref_tab('||i||')=' || l_iupg_orig_system_ref_tab(i));
15434       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_iupg_orig_system_ref_id_tab('||i||')=' || l_iupg_orig_system_ref_id_tab(i));
15435       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_iprogram_application_id_tab('||i||')=' || l_iprogram_application_id_tab(i));
15436       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_iprogram_id_tab('||i||')=' || l_iprogram_id_tab(i));
15437       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_iprogram_update_date_tab('||i||')=' || l_iprogram_update_date_tab(i));
15438       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_irequest_id_tab('||i||')=' || l_irequest_id_tab(i));
15439     END IF;
15440   END LOOP;
15441   END IF;
15442 
15443   RAISE OKC_API.G_EXCEPTION_ERROR;
15444 
15445 END;  /* insert okc_k_items */
15446 
15447 PROCEDURE sort_trx_id_mapping_tab IS
15448   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
15449   --a numtabtype;
15450   l_stack numtabtype;
15451   l_stack_index NUMBER := 0;
15452   N NUMBER;
15453   R NUMBER;
15454   L NUMBER;
15455   P NUMBER;
15456   W NUMBER;
15457   W2 NUMBER;
15458   X NUMBER;
15459   I NUMBER;
15460   J NUMBER;
15461 BEGIN
15462   IF (G_DEBUG_ENABLED = 'Y') THEN
15463     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
15464   END IF;
15465   NULL;
15466 
15467   N := l_trx_assets_counter - 1;
15468   IF (N < 2) THEN
15469     RETURN;
15470   END IF;
15471   l_stack_index := l_stack_index + 1;
15472   l_stack(l_stack_index) := 1;
15473   l_stack_index := l_stack_index + 1;
15474   l_stack(l_stack_index) := N;
15475 
15476   --dbms_output.put_line('l_stack_index=' || l_stack_index);
15477   WHILE l_stack_index > 0
15478   LOOP
15479     R := l_stack(l_stack_index);
15480     l_stack_index := l_stack_index - 1;
15481     L := l_stack(l_stack_index);
15482     l_stack_index := l_stack_index - 1;
15483     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
15484     WHILE 1=1
15485     LOOP -- loop until L >= R
15486       I := L;
15487       J := R;
15488       P := FLOOR((L+R)/2);
15489       --if (a(L) > a(P)) then
15490       IF (l_trx_id_mapping_tab(L).old_id > l_trx_id_mapping_tab(P).old_id)
15491       THEN
15492         W := l_trx_id_mapping_tab(L).old_id;
15493         W2 := l_trx_id_mapping_tab(L).new_id;
15494         l_trx_id_mapping_tab(L).old_id :=l_trx_id_mapping_tab(P).old_id;
15495         l_trx_id_mapping_tab(L).new_id :=l_trx_id_mapping_tab(P).new_id;
15496         l_trx_id_mapping_tab(P).old_id := W;
15497         l_trx_id_mapping_tab(P).new_id := W2;
15498       END IF;
15499       --if (a(L) > a(R)) then
15500       IF (l_trx_id_mapping_tab(L).old_id > l_trx_id_mapping_tab(R).old_id)
15501       THEN
15502         W := l_trx_id_mapping_tab(L).old_id;
15503         W2 := l_trx_id_mapping_tab(L).new_id;
15504         l_trx_id_mapping_tab(L).old_id :=l_trx_id_mapping_tab(R).old_id;
15505         l_trx_id_mapping_tab(L).new_id :=l_trx_id_mapping_tab(R).new_id;
15506         l_trx_id_mapping_tab(R).old_id := W;
15507         l_trx_id_mapping_tab(R).new_id := W2;
15508       END IF;
15509       --if (a(P) > a(R)) then
15510       IF (l_trx_id_mapping_tab(P).old_id > l_trx_id_mapping_tab(R).old_id)
15511       THEN
15512         W := l_trx_id_mapping_tab(P).old_id;
15513         W2 := l_trx_id_mapping_tab(P).new_id;
15514         l_trx_id_mapping_tab(P).old_id :=l_trx_id_mapping_tab(R).old_id;
15515         l_trx_id_mapping_tab(P).new_id :=l_trx_id_mapping_tab(R).new_id;
15516         l_trx_id_mapping_tab(R).old_id := W;
15517         l_trx_id_mapping_tab(R).new_id := W2;
15518       END IF;
15519       --X := a(P);
15520       X := l_trx_id_mapping_tab(P).old_id;
15521       WHILE 1=1
15522       LOOP    -- until I > J
15523         --while (a(I) < X) loop
15524         WHILE (l_trx_id_mapping_tab(I).old_id < X) LOOP
15525           I := I + 1;
15526         END LOOP;
15527         WHILE (X < l_trx_id_mapping_tab(J).old_id) LOOP
15528           J := J - 1;
15529         END LOOP;
15530         IF (I <= J) THEN
15531           W := l_trx_id_mapping_tab(I).old_id;
15532           W2 := l_trx_id_mapping_tab(I).new_id;
15533           l_trx_id_mapping_tab(I).old_id :=l_trx_id_mapping_tab(J).old_id;
15534           l_trx_id_mapping_tab(I).new_id :=l_trx_id_mapping_tab(J).new_id;
15535           l_trx_id_mapping_tab(J).old_id := W;
15536           l_trx_id_mapping_tab(J).new_id := W2;
15537           I := I + 1;
15538           J := J - 1;
15539         END IF;
15540         EXIT WHEN I > J;
15541       END LOOP;
15542       IF (J - L < R - I) THEN
15543         IF (I < R) THEN
15544           --push(I); push(R);
15545           l_stack_index := l_stack_index + 1;
15546           l_stack(l_stack_index) := I;
15547           l_stack_index := l_stack_index + 1;
15548           l_stack(l_stack_index) := R;
15549           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
15550         END IF;
15551         R := J;
15552       ELSE
15553         IF (L < J) THEN
15554           --push(L); push(J);
15555           l_stack_index := l_stack_index + 1;
15556           l_stack(l_stack_index) := L;
15557           l_stack_index := l_stack_index + 1;
15558           l_stack(l_stack_index) := J;
15559           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
15560         END IF;
15561         L := I;
15562       END IF;
15563 
15564       EXIT WHEN (L >= R);
15565     END LOOP;
15566   END LOOP;
15567 
15568 EXCEPTION WHEN OTHERS THEN
15569 
15570   x_return_status := OKL_API.G_RET_STS_ERROR;
15571   /*OKL_API.set_message(p_app_name => 'OKL',
15572                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
15573                       p_token1 => 'ASSET_NUMBER',
15574                       p_token1_value => 'sort_trx_id_mapping_tab');*/
15575     /* DEBUG */
15576   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15577       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
15578     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_trx_id_mapping_tab:l_trx_id_mapping_tab N=' || N || ' ...');
15579   END IF;
15580 
15581   --print array
15582   FOR i IN 1..N
15583   LOOP
15584     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15585           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_trx_id_mapping_tab('||i||')=' || l_trx_id_mapping_tab(i).old_id || ':' || l_trx_id_mapping_tab(i).new_id);
15586     END IF;
15587   END LOOP;
15588 
15589   RAISE OKC_API.G_EXCEPTION_ERROR;
15590 
15591 END;  /* sort_trx_id_mapping_tab */
15592 
15593 FUNCTION find_trx_mapping_id(p_id IN NUMBER) RETURN NUMBER IS
15594 hi NUMBER;
15595 lo NUMBER;
15596 m NUMBER;
15597 BEGIN
15598   lo := 1;
15599   hi := l_trx_assets_counter - 1;
15600   WHILE (lo <= hi) LOOP
15601     m := FLOOR((hi + lo)/2);
15602     IF (l_trx_id_mapping_tab(m).old_id = p_id) THEN
15603       RETURN l_trx_id_mapping_tab(m).new_id;
15604     ELSIF (l_trx_id_mapping_tab(m).old_id > p_id) THEN
15605       hi := m - 1;
15606     ELSE
15607       lo := m + 1;
15608     END IF;
15609   END LOOP;
15610   RETURN -1;
15611 END;  /* find_trx_mapping_id */
15612 
15613 
15614 PROCEDURE sort_trx_id_mapping_tab2 IS
15615   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
15616   --a numtabtype;
15617   l_stack numtabtype;
15618   l_stack_index NUMBER := 0;
15619   N NUMBER;
15620   R NUMBER;
15621   L NUMBER;
15622   P NUMBER;
15623   W NUMBER;
15624   W2 NUMBER;
15625   X NUMBER;
15626   I NUMBER;
15627   J NUMBER;
15628 BEGIN
15629   IF (G_DEBUG_ENABLED = 'Y') THEN
15630     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
15631   END IF;
15632   NULL;
15633 
15634   N := l_trx_assets_counter2 - 1;
15635   IF (N < 2) THEN
15636     RETURN;
15637   END IF;
15638   l_stack_index := l_stack_index + 1;
15639   l_stack(l_stack_index) := 1;
15640   l_stack_index := l_stack_index + 1;
15641   l_stack(l_stack_index) := N;
15642 
15643   --dbms_output.put_line('l_stack_index=' || l_stack_index);
15644   WHILE l_stack_index > 0
15645   LOOP
15646     R := l_stack(l_stack_index);
15647     l_stack_index := l_stack_index - 1;
15648     L := l_stack(l_stack_index);
15649     l_stack_index := l_stack_index - 1;
15650     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
15651     WHILE 1=1
15652     LOOP -- loop until L >= R
15653       I := L;
15654       J := R;
15655       P := FLOOR((L+R)/2);
15656       --if (a(L) > a(P)) then
15657       IF (l_trx_id_mapping_tab2(L).old_id > l_trx_id_mapping_tab2(P).old_id)
15658       THEN
15659         W := l_trx_id_mapping_tab2(L).old_id;
15660         W2 := l_trx_id_mapping_tab2(L).new_id;
15661         l_trx_id_mapping_tab2(L).old_id :=l_trx_id_mapping_tab2(P).old_id;
15662         l_trx_id_mapping_tab2(L).new_id :=l_trx_id_mapping_tab2(P).new_id;
15663         l_trx_id_mapping_tab2(P).old_id := W;
15664         l_trx_id_mapping_tab2(P).new_id := W2;
15665       END IF;
15666       --if (a(L) > a(R)) then
15667       IF (l_trx_id_mapping_tab2(L).old_id > l_trx_id_mapping_tab2(R).old_id)
15668       THEN
15669         W := l_trx_id_mapping_tab2(L).old_id;
15670         W2 := l_trx_id_mapping_tab2(L).new_id;
15671         l_trx_id_mapping_tab2(L).old_id :=l_trx_id_mapping_tab2(R).old_id;
15672         l_trx_id_mapping_tab2(L).new_id :=l_trx_id_mapping_tab2(R).new_id;
15673         l_trx_id_mapping_tab2(R).old_id := W;
15674         l_trx_id_mapping_tab2(R).new_id := W2;
15675       END IF;
15676       --if (a(P) > a(R)) then
15677       IF (l_trx_id_mapping_tab2(P).old_id > l_trx_id_mapping_tab2(R).old_id)
15678       THEN
15679         W := l_trx_id_mapping_tab2(P).old_id;
15680         W2 := l_trx_id_mapping_tab2(P).new_id;
15681         l_trx_id_mapping_tab2(P).old_id :=l_trx_id_mapping_tab2(R).old_id;
15682         l_trx_id_mapping_tab2(P).new_id :=l_trx_id_mapping_tab2(R).new_id;
15683         l_trx_id_mapping_tab2(R).old_id := W;
15684         l_trx_id_mapping_tab2(R).new_id := W2;
15685       END IF;
15686       --X := a(P);
15687       X := l_trx_id_mapping_tab2(P).old_id;
15688       WHILE 1=1
15689       LOOP    -- until I > J
15690         --while (a(I) < X) loop
15691         WHILE (l_trx_id_mapping_tab2(I).old_id < X) LOOP
15692           I := I + 1;
15693         END LOOP;
15694         WHILE (X < l_trx_id_mapping_tab2(J).old_id) LOOP
15695           J := J - 1;
15696         END LOOP;
15697         IF (I <= J) THEN
15698           W := l_trx_id_mapping_tab2(I).old_id;
15699           W2 := l_trx_id_mapping_tab2(I).new_id;
15700           l_trx_id_mapping_tab2(I).old_id :=l_trx_id_mapping_tab2(J).old_id;
15701           l_trx_id_mapping_tab2(I).new_id :=l_trx_id_mapping_tab2(J).new_id;
15702           l_trx_id_mapping_tab2(J).old_id := W;
15703           l_trx_id_mapping_tab2(J).new_id := W2;
15704           I := I + 1;
15705           J := J - 1;
15706         END IF;
15707         EXIT WHEN I > J;
15708       END LOOP;
15709       IF (J - L < R - I) THEN
15710         IF (I < R) THEN
15711           --push(I); push(R);
15712           l_stack_index := l_stack_index + 1;
15713           l_stack(l_stack_index) := I;
15714           l_stack_index := l_stack_index + 1;
15715           l_stack(l_stack_index) := R;
15716           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
15717         END IF;
15718         R := J;
15719       ELSE
15720         IF (L < J) THEN
15721           --push(L); push(J);
15722           l_stack_index := l_stack_index + 1;
15723           l_stack(l_stack_index) := L;
15724           l_stack_index := l_stack_index + 1;
15725           l_stack(l_stack_index) := J;
15726           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
15727         END IF;
15728         L := I;
15729       END IF;
15730 
15731       EXIT WHEN (L >= R);
15732     END LOOP;
15733   END LOOP;
15734 
15735 EXCEPTION WHEN OTHERS THEN
15736 
15737   x_return_status := OKL_API.G_RET_STS_ERROR;
15738   /*OKL_API.set_message(p_app_name => 'OKL',
15739                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
15740                       p_token1 => 'ASSET_NUMBER',
15741                       p_token1_value => 'sort_trx_id_mapping_tab2');*/
15742     /* DEBUG */
15743   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15744       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
15745     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_trx_id_mapping_tab2:l_trx_id_mapping_tab2 N=' || N || ' ...');
15746   END IF;
15747 
15748   --print array
15749   FOR i IN 1..N
15750   LOOP
15751     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15752           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_trx_id_mapping_tab2('||i||')=' || l_trx_id_mapping_tab2(i).old_id || ':' || l_trx_id_mapping_tab2(i).new_id);
15753     END IF;
15754   END LOOP;
15755 
15756   RAISE OKC_API.G_EXCEPTION_ERROR;
15757 
15758 END;  /* sort_trx_id_mapping_tab2 */
15759 
15760 FUNCTION find_trx_mapping_id2(p_id IN NUMBER) RETURN NUMBER IS
15761 hi NUMBER;
15762 lo NUMBER;
15763 m NUMBER;
15764 BEGIN
15765   lo := 1;
15766   hi := l_trx_assets_counter2 - 1;
15767   WHILE (lo <= hi) LOOP
15768     m := FLOOR((hi + lo)/2);
15769     IF (l_trx_id_mapping_tab2(m).old_id = p_id) THEN
15770       RETURN l_trx_id_mapping_tab2(m).new_id;
15771     ELSIF (l_trx_id_mapping_tab2(m).old_id > p_id) THEN
15772       hi := m - 1;
15773     ELSE
15774       lo := m + 1;
15775     END IF;
15776   END LOOP;
15777   RETURN -1;
15778 END;  /* find_trx_mapping_id2 */
15779 
15780 PROCEDURE sort_txl_id_mapping_tab IS
15781   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
15782   --a numtabtype;
15783   l_stack numtabtype;
15784   l_stack_index NUMBER := 0;
15785   N NUMBER;
15786   R NUMBER;
15787   L NUMBER;
15788   P NUMBER;
15789   W NUMBER;
15790   W2 NUMBER;
15791   X NUMBER;
15792   I NUMBER;
15793   J NUMBER;
15794 BEGIN
15795   IF (G_DEBUG_ENABLED = 'Y') THEN
15796     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
15797   END IF;
15798   NULL;
15799 
15800   N := l_txl_assets_b_counter - 1;
15801   IF (N < 2) THEN
15802     RETURN;
15803   END IF;
15804   l_stack_index := l_stack_index + 1;
15805   l_stack(l_stack_index) := 1;
15806   l_stack_index := l_stack_index + 1;
15807   l_stack(l_stack_index) := N;
15808 
15809   --dbms_output.put_line('l_stack_index=' || l_stack_index);
15810   WHILE l_stack_index > 0
15811   LOOP
15812     R := l_stack(l_stack_index);
15813     l_stack_index := l_stack_index - 1;
15814     L := l_stack(l_stack_index);
15815     l_stack_index := l_stack_index - 1;
15816     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
15817     WHILE 1=1
15818     LOOP -- loop until L >= R
15819       I := L;
15820       J := R;
15821       P := FLOOR((L+R)/2);
15822       --if (a(L) > a(P)) then
15823       IF (l_txl_id_mapping_tab(L).old_id > l_txl_id_mapping_tab(P).old_id)
15824       THEN
15825         W := l_txl_id_mapping_tab(L).old_id;
15826         W2 := l_txl_id_mapping_tab(L).new_id;
15827         l_txl_id_mapping_tab(L).old_id :=l_txl_id_mapping_tab(P).old_id;
15828         l_txl_id_mapping_tab(L).new_id :=l_txl_id_mapping_tab(P).new_id;
15829         l_txl_id_mapping_tab(P).old_id := W;
15830         l_txl_id_mapping_tab(P).new_id := W2;
15831       END IF;
15832       --if (a(L) > a(R)) then
15833       IF (l_txl_id_mapping_tab(L).old_id > l_txl_id_mapping_tab(R).old_id)
15834       THEN
15835         W := l_txl_id_mapping_tab(L).old_id;
15836         W2 := l_txl_id_mapping_tab(L).new_id;
15837         l_txl_id_mapping_tab(L).old_id :=l_txl_id_mapping_tab(R).old_id;
15838         l_txl_id_mapping_tab(L).new_id :=l_txl_id_mapping_tab(R).new_id;
15839         l_txl_id_mapping_tab(R).old_id := W;
15840         l_txl_id_mapping_tab(R).new_id := W2;
15841       END IF;
15842       --if (a(P) > a(R)) then
15843       IF (l_txl_id_mapping_tab(P).old_id > l_txl_id_mapping_tab(R).old_id)
15844       THEN
15845         W := l_txl_id_mapping_tab(P).old_id;
15846         W2 := l_txl_id_mapping_tab(P).new_id;
15847         l_txl_id_mapping_tab(P).old_id :=l_txl_id_mapping_tab(R).old_id;
15848         l_txl_id_mapping_tab(P).new_id :=l_txl_id_mapping_tab(R).new_id;
15849         l_txl_id_mapping_tab(R).old_id := W;
15850         l_txl_id_mapping_tab(R).new_id := W2;
15851       END IF;
15852       --X := a(P);
15853       X := l_txl_id_mapping_tab(P).old_id;
15854       WHILE 1=1
15855       LOOP    -- until I > J
15856         --while (a(I) < X) loop
15857         WHILE (l_txl_id_mapping_tab(I).old_id < X) LOOP
15858           I := I + 1;
15859         END LOOP;
15860         WHILE (X < l_txl_id_mapping_tab(J).old_id) LOOP
15861           J := J - 1;
15862         END LOOP;
15863         IF (I <= J) THEN
15864           W := l_txl_id_mapping_tab(I).old_id;
15865           W2 := l_txl_id_mapping_tab(I).new_id;
15866           l_txl_id_mapping_tab(I).old_id :=l_txl_id_mapping_tab(J).old_id;
15867           l_txl_id_mapping_tab(I).new_id :=l_txl_id_mapping_tab(J).new_id;
15868           l_txl_id_mapping_tab(J).old_id := W;
15869           l_txl_id_mapping_tab(J).new_id := W2;
15870           I := I + 1;
15871           J := J - 1;
15872         END IF;
15873         EXIT WHEN I > J;
15874       END LOOP;
15875       IF (J - L < R - I) THEN
15876         IF (I < R) THEN
15877           --push(I); push(R);
15878           l_stack_index := l_stack_index + 1;
15879           l_stack(l_stack_index) := I;
15880           l_stack_index := l_stack_index + 1;
15881           l_stack(l_stack_index) := R;
15882           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
15883         END IF;
15884         R := J;
15885       ELSE
15886         IF (L < J) THEN
15887           --push(L); push(J);
15888           l_stack_index := l_stack_index + 1;
15889           l_stack(l_stack_index) := L;
15890           l_stack_index := l_stack_index + 1;
15891           l_stack(l_stack_index) := J;
15892           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
15893         END IF;
15894         L := I;
15895       END IF;
15896 
15897       EXIT WHEN (L >= R);
15898     END LOOP;
15899   END LOOP;
15900 
15901 EXCEPTION WHEN OTHERS THEN
15902 
15903   x_return_status := OKL_API.G_RET_STS_ERROR;
15904   /*OKL_API.set_message(p_app_name => 'OKL',
15905                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
15906                       p_token1 => 'ASSET_NUMBER',
15907                       p_token1_value => 'sort_txl_id_mapping_tab');*/
15908     /* DEBUG */
15909   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15910       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
15911     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_txl_id_mapping_tab:l_txl_id_mapping_tab N=' || N || ' ...');
15912   END IF;
15913 
15914   --print array
15915   FOR i IN 1..N
15916   LOOP
15917     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15918           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_txl_id_mapping_tab('||i||')=' || l_txl_id_mapping_tab(i).old_id || ':' || l_txl_id_mapping_tab(i).new_id);
15919     END IF;
15920   END LOOP;
15921 
15922   RAISE OKC_API.G_EXCEPTION_ERROR;
15923 
15924 END;  /* sort_txl_id_mapping_tab */
15925 
15926 FUNCTION find_txl_mapping_id(p_id IN NUMBER) RETURN NUMBER IS
15927 hi NUMBER;
15928 lo NUMBER;
15929 m NUMBER;
15930 BEGIN
15931   lo := 1;
15932   hi := l_txl_assets_b_counter - 1;
15933   WHILE (lo <= hi) LOOP
15934     m := FLOOR((hi + lo)/2);
15935     IF (l_txl_id_mapping_tab(m).old_id = p_id) THEN
15936       RETURN l_txl_id_mapping_tab(m).new_id;
15937     ELSIF (l_txl_id_mapping_tab(m).old_id > p_id) THEN
15938       hi := m - 1;
15939     ELSE
15940       lo := m + 1;
15941     END IF;
15942   END LOOP;
15943   RETURN -1;
15944 END;  /* find_txl_mapping_id */
15945 
15946 PROCEDURE insert_okl_txl_assets_tl(p_old_id IN okl_txl_assets_b.id%TYPE,
15947                                    p_new_id IN okl_txl_assets_b.id%TYPE,
15948                                    p_flush IN VARCHAR2 ) IS
15949 CURSOR c19(p_id NUMBER) IS
15950 SELECT
15951      id, LANGUAGE, source_lang,
15952      sfwt_flag, description, created_by,
15953      creation_date, last_updated_by, last_update_date,
15954      last_update_login
15955 FROM okl_txl_assets_tl
15956 WHERE id = p_id;
15957 
15958     l_tlid_tab2 l_tlid_type;
15959     l_tllanguage_tab2 l_tllanguage_type;
15960     l_tlsource_lang_tab2 l_tlsource_lang_type;
15961     l_tlsfwt_flag_tab2 l_tlsfwt_flag_type;
15962     l_tldescription_tab2 l_tldescription_type;
15963     l_tlcreated_by_tab2 l_tlcreated_by_type;
15964     l_tlcreation_date_tab2 l_tlcreation_date_type;
15965     l_tllast_updated_by_tab2 l_tllast_updated_by_type;
15966     l_tllast_update_date_tab2 l_tllast_update_date_type;
15967     l_tllast_update_login_tab2 l_tllast_update_login_type;
15968 
15969 BEGIN
15970   IF (G_DEBUG_ENABLED = 'Y') THEN
15971     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
15972   END IF;
15973   OPEN c19(p_old_id);
15974   LOOP
15975     FETCH c19 bulk collect INTO
15976      l_tlid_tab2, l_tllanguage_tab2, l_tlsource_lang_tab2,
15977      l_tlsfwt_flag_tab2, l_tldescription_tab2, l_tlcreated_by_tab2,
15978      l_tlcreation_date_tab2, l_tllast_updated_by_tab2, l_tllast_update_date_tab2,
15979      l_tllast_update_login_tab2
15980     limit G_BULK_SIZE;
15981     EXIT WHEN l_tlid_tab2.COUNT=0;
15982     FOR i IN l_tlid_tab2.first..l_tlid_tab2.last
15983     LOOP
15984 
15985       l_tlid_tab(l_txl_assets_tl_counter) := l_tlid_tab2(i);
15986       -- Change id
15987       l_tlid_tab(l_txl_assets_tl_counter) := p_new_id;
15988 
15989       l_tllanguage_tab(l_txl_assets_tl_counter) := l_tllanguage_tab2(i);
15990       l_tlsource_lang_tab(l_txl_assets_tl_counter) := l_tlsource_lang_tab2(i);
15991       l_tlsfwt_flag_tab(l_txl_assets_tl_counter) := l_tlsfwt_flag_tab2(i);
15992       l_tldescription_tab(l_txl_assets_tl_counter) := l_tldescription_tab2(i);
15993       l_tlcreated_by_tab(l_txl_assets_tl_counter) := l_tlcreated_by_tab2(i);
15994       l_tlcreation_date_tab(l_txl_assets_tl_counter) := l_tlcreation_date_tab2(i);
15995       l_tllast_updated_by_tab(l_txl_assets_tl_counter) := l_tllast_updated_by_tab2(i);
15996       l_tllast_update_date_tab(l_txl_assets_tl_counter) := l_tllast_update_date_tab2(i);
15997       l_tllast_update_login_tab(l_txl_assets_tl_counter) := l_tllast_update_login_tab2(i);
15998 
15999       l_txl_assets_tl_counter := l_txl_assets_tl_counter + 1;
16000 
16001     END LOOP;
16002   END LOOP;
16003   CLOSE c19;
16004 
16005   IF (p_flush = 'Y') THEN
16006     IF (l_txl_assets_tl_counter > 1) THEN
16007       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16008               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_txl_assets_tl_counter=' || l_txl_assets_tl_counter || ' l_tlid_tab.count=' || l_tlid_tab.COUNT);
16009       END IF;
16010       forall i IN l_tlid_tab.first..l_tlid_tab.last
16011         INSERT INTO okl_txl_assets_tl (
16012          id, LANGUAGE, source_lang,
16013          sfwt_flag, description, created_by,
16014          creation_date, last_updated_by, last_update_date,
16015          last_update_login
16016         ) VALUES (
16017          l_tlid_tab(i), l_tllanguage_tab(i), l_tlsource_lang_tab(i),
16018          l_tlsfwt_flag_tab(i), l_tldescription_tab(i), l_created_by,
16019          SYSDATE, l_last_updated_by, SYSDATE,
16020          l_last_update_login
16021         );
16022     END IF;
16023   END IF;
16024 
16025 EXCEPTION WHEN OTHERS THEN
16026 
16027   x_return_status := OKL_API.G_RET_STS_ERROR;
16028   /*OKL_API.set_message(p_app_name => 'OKL',
16029                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
16030                       p_token1 => 'ASSET_NUMBER',
16031                       p_token1_value => 'insert_okl_txl_assets_tl');*/
16032     /* DEBUG */
16033   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16034       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
16035     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing insert_okl-txl_assets_tl:l_tlid_tab.count=' || l_tlid_tab.COUNT || ' ...');
16036   END IF;
16037   IF (l_tlid_tab.COUNT > 0) THEN
16038   FOR i IN l_tlid_tab.first..l_tlid_tab.last
16039   LOOP
16040     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16041           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tlid_tab('||i||')=' || l_tlid_tab(i));
16042       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tllanguage_tab('||i||')=' || l_tllanguage_tab(i));
16043       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tlsource_lang_tab('||i||')=' || l_tlsource_lang_tab(i));
16044       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tlsfwt_flag_tab('||i||')=' || l_tlsfwt_flag_tab(i));
16045       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tldescription_tab('||i||')=' || l_tldescription_tab(i));
16046     END IF;
16047   END LOOP;
16048   END IF;
16049 
16050   RAISE OKC_API.G_EXCEPTION_ERROR;
16051 
16052 END;  /* insert_okl_txl_assets_tl */
16053 
16054 PROCEDURE insert_okl_txd_assets_tl(p_old_id IN okc_k_headers_b.id%TYPE,
16055                                    p_new_id IN okc_k_headers_b.id%TYPE,
16056                                    p_flush IN VARCHAR2) IS
16057 CURSOR c21(p_id NUMBER) IS
16058 SELECT
16059      id, LANGUAGE, source_lang,
16060      sfwt_flag, description, created_by,
16061      creation_date, last_updated_by, last_update_date,
16062      last_update_login
16063 FROM okl_txd_assets_tl
16064 WHERE id = p_id
16065 AND id IN (
16066   SELECT b.id FROM okl_txd_assets_b b, okl_txl_assets_b c
16067   WHERE b.id = p_id
16068   AND   b.tal_id = c.id
16069   AND   c.dnz_khr_id = p_chr_id
16070 );
16071 
16072     l_dlid_tab2 l_dlid_type;
16073     l_dllanguage_tab2 l_dllanguage_type;
16074     l_dlsource_lang_tab2 l_dlsource_lang_type;
16075     l_dlsfwt_flag_tab2 l_dlsfwt_flag_type;
16076     l_dldescription_tab2 l_dldescription_type;
16077     l_dlcreated_by_tab2 l_dlcreated_by_type;
16078     l_dlcreation_date_tab2 l_dlcreation_date_type;
16079     l_dllast_updated_by_tab2 l_dllast_updated_by_type;
16080     l_dllast_update_date_tab2 l_dllast_update_date_type;
16081     l_dllast_update_login_tab2 l_dllast_update_login_type;
16082 
16083 BEGIN
16084   IF (G_DEBUG_ENABLED = 'Y') THEN
16085     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
16086   END IF;
16087   OPEN c21(p_old_id);
16088   LOOP
16089     FETCH c21 bulk collect INTO
16090       l_dlid_tab2, l_dllanguage_tab2, l_dlsource_lang_tab2,
16091       l_dlsfwt_flag_tab2, l_dldescription_tab2, l_dlcreated_by_tab2,
16092       l_dlcreation_date_tab2, l_dllast_updated_by_tab2, l_dllast_update_date_tab2,
16093       l_dllast_update_login_tab2
16094     limit G_BULK_SIZE;
16095     EXIT WHEN l_dlid_tab2.COUNT = 0;
16096     FOR i IN l_dlid_tab2.first..l_dlid_tab2.last
16097     LOOP
16098 
16099       l_dlid_tab(l_txd_assets_tl_counter) := l_dlid_tab2(i);
16100       -- Change id
16101       l_dlid_tab(l_txd_assets_tl_counter) := p_new_id;
16102 
16103       l_dllanguage_tab(l_txd_assets_tl_counter) := l_dllanguage_tab2(i);
16104       l_dlsource_lang_tab(l_txd_assets_tl_counter) := l_dlsource_lang_tab2(i);
16105       l_dlsfwt_flag_tab(l_txd_assets_tl_counter) := l_dlsfwt_flag_tab2(i);
16106       l_dldescription_tab(l_txd_assets_tl_counter) := l_dldescription_tab2(i);
16107       l_dlcreated_by_tab(l_txd_assets_tl_counter) := l_dlcreated_by_tab2(i);
16108       l_dlcreation_date_tab(l_txd_assets_tl_counter) := l_dlcreation_date_tab2(i);
16109       l_dllast_updated_by_tab(l_txd_assets_tl_counter) := l_dllast_updated_by_tab2(i);
16110       l_dllast_update_date_tab(l_txd_assets_tl_counter) := l_dllast_update_date_tab2(i);
16111       l_dllast_update_login_tab(l_txd_assets_tl_counter) := l_dllast_update_login_tab2(i);
16112 
16113       l_txd_assets_tl_counter := l_txd_assets_tl_counter + 1;
16114 
16115     END LOOP;
16116   END LOOP;
16117   CLOSE c21;
16118   IF (p_flush = 'Y') THEN
16119     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16120           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_txd_assets_tl_counter=' || l_txd_assets_tl_counter || ' l_dlid_tab.count=' || l_dlid_tab.COUNT);
16121     END IF;
16122     IF (l_txd_assets_tl_counter > 1) THEN
16123       forall i IN l_dlid_tab.first..l_dlid_tab.last
16124       INSERT INTO okl_txd_assets_tl (
16125        id, LANGUAGE, source_lang,
16126        sfwt_flag, description, created_by,
16127        creation_date, last_updated_by, last_update_date,
16128        last_update_login
16129       ) VALUES (
16130        l_dlid_tab(i), l_dllanguage_tab(i), l_dlsource_lang_tab(i),
16131        l_dlsfwt_flag_tab(i), l_dldescription_tab(i), l_created_by,
16132        SYSDATE, l_last_updated_by, SYSDATE,
16133        l_last_update_login
16134       );
16135     END IF;
16136   END IF;
16137 EXCEPTION WHEN OTHERS THEN
16138 
16139   x_return_status := OKL_API.G_RET_STS_ERROR;
16140   /*OKL_API.set_message(p_app_name => 'OKL',
16141                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
16142                       p_token1 => 'ASSET_NUMBER',
16143                       p_token1_value => 'insert_okl_txd_assets_tl');*/
16144     /* DEBUG */
16145   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16146       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
16147     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing insert_okl_txd_assets_tl:l_dlid_tab.count=' || l_dlid_tab.COUNT || ' ...');
16148   END IF;
16149   IF (l_dlid_tab.COUNT > 0) THEN
16150   FOR i IN l_dlid_tab.first..l_dlid_tab.last
16151   LOOP
16152     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16153           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dlid_tab('||i||')=' || l_dlid_tab(i));
16154       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dllanguage_tab('||i||')=' || l_dllanguage_tab(i));
16155       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dlsource_lang_tab('||i||')=' || l_dlsource_lang_tab(i));
16156       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dlsfwt_flag_tab('||i||')=' || l_dlsfwt_flag_tab(i));
16157       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dldescription_tab('||i||')=' || l_dldescription_tab(i));
16158     END IF;
16159   END LOOP;
16160   END IF;
16161 
16162   RAISE OKC_API.G_EXCEPTION_ERROR;
16163 
16164 END;  /* insert_okl_txd_assets_tl */
16165 
16166 PROCEDURE insert_okl_txd_assets_b(p_old_id IN okc_k_headers_b.id%TYPE,
16167                                   p_new_id IN okc_k_headers_b.id%TYPE) IS
16168 CURSOR c20(p_id NUMBER) IS
16169 SELECT
16170      id, object_version_number, tal_id,
16171      target_kle_id, line_detail_number, asset_number,
16172      quantity, cost, tax_book,
16173      life_in_months_tax, deprn_method_tax, deprn_rate_tax,
16174      salvage_value, split_percent, inventory_item_id,
16175      attribute_category, attribute1, attribute2,
16176      attribute3, attribute4, attribute5,
16177      attribute6, attribute7, attribute8,
16178      attribute9, attribute10, attribute11,
16179      attribute12, attribute13, attribute14,
16180      attribute15, created_by, creation_date,
16181      last_updated_by, last_update_date, last_update_login,
16182      currency_code, currency_conversion_type, currency_conversion_rate,
16183      currency_conversion_date
16184 FROM okl_txd_assets_b
16185 WHERE tal_id IN (
16186               SELECT a.id
16187               FROM okl_txl_assets_b a,
16188                         okc_k_lines_b b,
16189                         okc_k_items c
16190                  WHERE  a.dnz_khr_id = p_id
16191                  AND    b.dnz_chr_id = p_id
16192                  AND    c.dnz_chr_id = p_id
16193                  AND    b.lse_id = 42
16194                  AND    a.kle_id = b.id
16195                  AND    a.kle_id = c.cle_id
16196                  AND    c.object1_id1 IS NULL
16197                  AND    c.object1_id2 IS NULL
16198             );
16199 
16200     l_dbid_tab2 l_dbid_type;
16201     l_dbobject_version_number_tab2 l_dbobject_version_number_type;
16202     l_dbtal_id_tab2 l_dbtal_id_type;
16203     l_dbtarget_kle_id_tab2 l_dbtarget_kle_id_type;
16204     l_dbline_detail_number_tab2 l_dbline_detail_number_type;
16205     l_dbasset_number_tab2 l_dbasset_number_type;
16206     l_dbquantity_tab2 l_dbquantity_type;
16207     l_dbcost_tab2 l_dbcost_type;
16208     l_dbtax_book_tab2 l_dbtax_book_type;
16209     l_dblife_in_months_tax_tab2 l_dblife_in_months_tax_type;
16210     l_dbdeprn_method_tax_tab2 l_dbdeprn_method_tax_type;
16211     l_dbdeprn_rate_tax_tab2 l_dbdeprn_rate_tax_type;
16212     l_dbsalvage_value_tab2 l_dbsalvage_value_type;
16213     l_dbsplit_percent_tab2 l_dbsplit_percent_type;
16214     l_dbinventory_item_id_tab2 l_dbinventory_item_id_type;
16215     l_dbattribute_category_tab2 l_dbattribute_category_type;
16216     l_dbattribute1_tab2 l_dbattribute1_type;
16217     l_dbattribute2_tab2 l_dbattribute2_type;
16218     l_dbattribute3_tab2 l_dbattribute3_type;
16219     l_dbattribute4_tab2 l_dbattribute4_type;
16220     l_dbattribute5_tab2 l_dbattribute5_type;
16221     l_dbattribute6_tab2 l_dbattribute6_type;
16222     l_dbattribute7_tab2 l_dbattribute7_type;
16223     l_dbattribute8_tab2 l_dbattribute8_type;
16224     l_dbattribute9_tab2 l_dbattribute9_type;
16225     l_dbattribute10_tab2 l_dbattribute10_type;
16226     l_dbattribute11_tab2 l_dbattribute11_type;
16227     l_dbattribute12_tab2 l_dbattribute12_type;
16228     l_dbattribute13_tab2 l_dbattribute13_type;
16229     l_dbattribute14_tab2 l_dbattribute14_type;
16230     l_dbattribute15_tab2 l_dbattribute15_type;
16231     l_dbcreated_by_tab2 l_dbcreated_by_type;
16232     l_dbcreation_date_tab2 l_dbcreation_date_type;
16233     l_dblast_updated_by_tab2 l_dblast_updated_by_type;
16234     l_dblast_update_date_tab2 l_dblast_update_date_type;
16235     l_dblast_update_login_tab2 l_dblast_update_login_type;
16236     l_dbcurrency_code_tab2 l_dbcurrency_code_type;
16237     l_dbcurrency_convers_type_tab2 l_dbcurrency_convers_type_type;
16238     l_dbcurrency_convers_rate_tab2 l_dbcurrency_convers_rate_type;
16239     l_dbcurrency_convers_date_tab2 l_dbcurrency_convers_date_type;
16240 
16241     l_new_tal_id NUMBER;
16242     l_new_kle_id NUMBER;
16243 
16244 BEGIN
16245   IF (G_DEBUG_ENABLED = 'Y') THEN
16246     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
16247   END IF;
16248   OPEN c20(p_old_id);
16249   LOOP
16250     FETCH c20 bulk collect INTO
16251       l_dbid_tab2, l_dbobject_version_number_tab2, l_dbtal_id_tab2,
16252       l_dbtarget_kle_id_tab2, l_dbline_detail_number_tab2, l_dbasset_number_tab2,
16253       l_dbquantity_tab2, l_dbcost_tab2, l_dbtax_book_tab2,
16254       l_dblife_in_months_tax_tab2, l_dbdeprn_method_tax_tab2, l_dbdeprn_rate_tax_tab2,
16255       l_dbsalvage_value_tab2, l_dbsplit_percent_tab2, l_dbinventory_item_id_tab2,
16256       l_dbattribute_category_tab2, l_dbattribute1_tab2, l_dbattribute2_tab2,
16257       l_dbattribute3_tab2, l_dbattribute4_tab2, l_dbattribute5_tab2,
16258       l_dbattribute6_tab2, l_dbattribute7_tab2, l_dbattribute8_tab2,
16259       l_dbattribute9_tab2, l_dbattribute10_tab2, l_dbattribute11_tab2,
16260       l_dbattribute12_tab2, l_dbattribute13_tab2, l_dbattribute14_tab2,
16261       l_dbattribute15_tab2, l_dbcreated_by_tab2, l_dbcreation_date_tab2,
16262       l_dblast_updated_by_tab2, l_dblast_update_date_tab2, l_dblast_update_login_tab2,
16263       l_dbcurrency_code_tab2, l_dbcurrency_convers_type_tab2, l_dbcurrency_convers_rate_tab2,
16264       l_dbcurrency_convers_date_tab2
16265     limit G_BULK_SIZE;
16266     EXIT WHEN l_dbid_tab2.COUNT = 0;
16267     FOR i IN l_dbid_tab2.first..l_dbid_tab2.last
16268     LOOP
16269 
16270       l_dbid_tab3(l_txd_assets_b_counter) := l_dbid_tab2(i);
16271       l_dbid_tab(l_txd_assets_b_counter) := l_dbid_tab2(i);
16272       -- Change id
16273       l_dbid_tab(l_txd_assets_b_counter) := okc_p_util.raw_to_number(sys_guid());
16274 
16275       l_dbobject_version_number_tab(l_txd_assets_b_counter) := l_dbobject_version_number_tab2(i);
16276       l_dbtal_id_tab(l_txd_assets_b_counter) := l_dbtal_id_tab2(i);
16277       -- Change tal_id
16278       l_new_tal_id := find_txl_mapping_id(l_dbtal_id_tab(l_txd_assets_b_counter));
16279       l_dbtal_id_tab(l_txd_assets_b_counter) := l_new_tal_id;
16280 
16281       l_dbtarget_kle_id_tab(l_txd_assets_b_counter) := l_dbtarget_kle_id_tab2(i);
16282       -- Change target_kle_id ??? AKP
16283       --l_new_kle_id := find_mapping_id(l_dbtarget_kle_id_tab(l_txd_assets_b_counter));
16284       --l_dbtarget_kle_id_tab(l_txd_assets_b_counter) := l_new_kle_id;
16285       l_dbtarget_kle_id_tab(l_txd_assets_b_counter) := NULL;
16286 
16287       l_dbline_detail_number_tab(l_txd_assets_b_counter) := l_dbline_detail_number_tab2(i);
16288       l_dbasset_number_tab(l_txd_assets_b_counter) := l_dbasset_number_tab2(i);
16289       l_dbquantity_tab(l_txd_assets_b_counter) := l_dbquantity_tab2(i);
16290       l_dbcost_tab(l_txd_assets_b_counter) := l_dbcost_tab2(i);
16291       l_dbtax_book_tab(l_txd_assets_b_counter) := l_dbtax_book_tab2(i);
16292       l_dblife_in_months_tax_tab(l_txd_assets_b_counter) := l_dblife_in_months_tax_tab2(i);
16293       l_dbdeprn_method_tax_tab(l_txd_assets_b_counter) := l_dbdeprn_method_tax_tab2(i);
16294       l_dbdeprn_rate_tax_tab(l_txd_assets_b_counter) := l_dbdeprn_rate_tax_tab2(i);
16295       l_dbsalvage_value_tab(l_txd_assets_b_counter) := l_dbsalvage_value_tab2(i);
16296       l_dbsplit_percent_tab(l_txd_assets_b_counter) := l_dbsplit_percent_tab2(i);
16297       l_dbinventory_item_id_tab(l_txd_assets_b_counter) := l_dbinventory_item_id_tab2(i);
16298       l_dbattribute_category_tab(l_txd_assets_b_counter) := l_dbattribute_category_tab2(i);
16299       l_dbattribute1_tab(l_txd_assets_b_counter) := l_dbattribute1_tab2(i);
16300       l_dbattribute2_tab(l_txd_assets_b_counter) := l_dbattribute2_tab2(i);
16301       l_dbattribute3_tab(l_txd_assets_b_counter) := l_dbattribute3_tab2(i);
16302       l_dbattribute4_tab(l_txd_assets_b_counter) := l_dbattribute4_tab2(i);
16303       l_dbattribute5_tab(l_txd_assets_b_counter) := l_dbattribute5_tab2(i);
16304       l_dbattribute6_tab(l_txd_assets_b_counter) := l_dbattribute6_tab2(i);
16305       l_dbattribute7_tab(l_txd_assets_b_counter) := l_dbattribute7_tab2(i);
16306       l_dbattribute8_tab(l_txd_assets_b_counter) := l_dbattribute8_tab2(i);
16307       l_dbattribute9_tab(l_txd_assets_b_counter) := l_dbattribute9_tab2(i);
16308       l_dbattribute10_tab(l_txd_assets_b_counter) := l_dbattribute10_tab2(i);
16309       l_dbattribute11_tab(l_txd_assets_b_counter) := l_dbattribute11_tab2(i);
16310       l_dbattribute12_tab(l_txd_assets_b_counter) := l_dbattribute12_tab2(i);
16311       l_dbattribute13_tab(l_txd_assets_b_counter) := l_dbattribute13_tab2(i);
16312       l_dbattribute14_tab(l_txd_assets_b_counter) := l_dbattribute14_tab2(i);
16313       l_dbattribute15_tab(l_txd_assets_b_counter) := l_dbattribute15_tab2(i);
16314       l_dbcreated_by_tab(l_txd_assets_b_counter) := l_dbcreated_by_tab2(i);
16315       l_dbcreation_date_tab(l_txd_assets_b_counter) := l_dbcreation_date_tab2(i);
16316       l_dblast_updated_by_tab(l_txd_assets_b_counter) := l_dblast_updated_by_tab2(i);
16317       l_dblast_update_date_tab(l_txd_assets_b_counter) := l_dblast_update_date_tab2(i);
16318       l_dblast_update_login_tab(l_txd_assets_b_counter) := l_dblast_update_login_tab2(i);
16319       /*l_dbcurrency_code_tab(l_txd_assets_b_counter) := l_dbcurrency_code_tab2(i);
16320       l_dbcurrency_convers_type_tab(l_txd_assets_b_counter) := l_dbcurrency_convers_type_tab2(i);
16321       l_dbcurrency_convers_rate_tab(l_txd_assets_b_counter) := l_dbcurrency_convers_rate_tab2(i);
16322       l_dbcurrency_convers_date_tab(l_txd_assets_b_counter) := l_dbcurrency_convers_date_tab2(i); */
16323       -- AKP: Default the following four from the contract header
16324       l_dbcurrency_code_tab(l_txd_assets_b_counter) := l_contract_currency;
16325       l_dbcurrency_convers_type_tab(l_txd_assets_b_counter) := l_conversion_type;
16326       l_dbcurrency_convers_rate_tab(l_txd_assets_b_counter) := l_conversion_rate;
16327       l_dbcurrency_convers_date_tab(l_txd_assets_b_counter) := l_conversion_rate_date;
16328 
16329       l_txd_assets_b_counter := l_txd_assets_b_counter + 1;
16330 
16331     END LOOP;
16332   END LOOP;
16333   CLOSE c20;
16334   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16335       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_txd_assets_b_counter=' || l_txd_assets_b_counter || ' l_dbid_tab.count=' || l_dbid_tab.COUNT);
16336   END IF;
16337   IF (l_txd_assets_b_counter > 1) THEN
16338     forall i IN l_dbid_tab.first..l_dbid_tab.last
16339     INSERT INTO okl_txd_assets_b (
16340      id, object_version_number, tal_id,
16341      target_kle_id, line_detail_number, asset_number,
16342      quantity, cost, tax_book,
16343      life_in_months_tax, deprn_method_tax, deprn_rate_tax,
16344      salvage_value, split_percent, inventory_item_id,
16345      attribute_category, attribute1, attribute2,
16346      attribute3, attribute4, attribute5,
16347      attribute6, attribute7, attribute8,
16348      attribute9, attribute10, attribute11,
16349      attribute12, attribute13, attribute14,
16350      attribute15, created_by, creation_date,
16351      last_updated_by, last_update_date, last_update_login,
16352      currency_code, currency_conversion_type, currency_conversion_rate,
16353      currency_conversion_date
16354     ) VALUES (
16355      l_dbid_tab(i), 1, l_dbtal_id_tab(i),
16356      l_dbtarget_kle_id_tab(i), l_dbline_detail_number_tab(i), l_dbasset_number_tab(i),
16357      l_dbquantity_tab(i), l_dbcost_tab(i), l_dbtax_book_tab(i),
16358      l_dblife_in_months_tax_tab(i), l_dbdeprn_method_tax_tab(i), l_dbdeprn_rate_tax_tab(i),
16359      l_dbsalvage_value_tab(i), l_dbsplit_percent_tab(i), l_dbinventory_item_id_tab(i),
16360      l_dbattribute_category_tab(i), l_dbattribute1_tab(i), l_dbattribute2_tab(i),
16361      l_dbattribute3_tab(i), l_dbattribute4_tab(i), l_dbattribute5_tab(i),
16362      l_dbattribute6_tab(i), l_dbattribute7_tab(i), l_dbattribute8_tab(i),
16363      l_dbattribute9_tab(i), l_dbattribute10_tab(i), l_dbattribute11_tab(i),
16364      l_dbattribute12_tab(i), l_dbattribute13_tab(i), l_dbattribute14_tab(i),
16365      l_dbattribute15_tab(i), l_created_by, SYSDATE,
16366      l_last_updated_by, SYSDATE, l_last_update_login,
16367      l_dbcurrency_code_tab(i), l_dbcurrency_convers_type_tab(i), l_dbcurrency_convers_rate_tab(i),
16368      l_dbcurrency_convers_date_tab(i)
16369     );
16370     FOR i IN l_dbid_tab.first..l_dbid_tab.last
16371     LOOP
16372       IF (i = l_dbid_tab.last) THEN
16373         insert_okl_txd_assets_tl(l_dbid_tab3(i),l_dbid_tab(i), 'Y');
16374       ELSE
16375         insert_okl_txd_assets_tl(l_dbid_tab3(i),l_dbid_tab(i), 'N');
16376       END IF;
16377     END LOOP;
16378   END IF;
16379 EXCEPTION WHEN OTHERS THEN
16380 
16381   x_return_status := OKL_API.G_RET_STS_ERROR;
16382   /*OKL_API.set_message(p_app_name => 'OKL',
16383                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
16384                       p_token1 => 'ASSET_NUMBER',
16385                       p_token1_value => 'insert_okl_txd_assets_b');*/
16386     /* DEBUG */
16387   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16388       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
16389     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing insert_okl_txd_assets_b:l_dbid_tab.count=' || l_dbid_tab.COUNT || ' ...');
16390   END IF;
16391   IF (l_dbid_tab.COUNT > 0) THEN
16392   FOR i IN l_dbid_tab.first..l_dbid_tab.last
16393   LOOP
16394     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16395           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbid_tab('||i||')=' || l_dbid_tab(i));
16396       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbtal_id_tab('||i||')=' || l_dbtal_id_tab(i));
16397       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbtarget_kle_id_tab('||i||')=' || l_dbtarget_kle_id_tab(i));
16398       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbline_detail_number_tab('||i||')=' || l_dbline_detail_number_tab(i));
16399       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbasset_number_tab('||i||')=' || l_dbasset_number_tab(i));
16400       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbquantity_tab('||i||')=' || l_dbquantity_tab(i));
16401       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbcost_tab('||i||')=' || l_dbcost_tab(i));
16402       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbtax_book_tab('||i||')=' || l_dbtax_book_tab(i));
16403       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dblife_in_months_tax_tab('||i||')=' || l_dblife_in_months_tax_tab(i));
16404       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbdeprn_method_tax_tab('||i||')=' || l_dbdeprn_method_tax_tab(i));
16405       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbdeprn_rate_tax_tab('||i||')=' || l_dbdeprn_rate_tax_tab(i));
16406       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbsalvage_value_tab('||i||')=' || l_dbsalvage_value_tab(i));
16407       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbsplit_percent_tab('||i||')=' || l_dbsplit_percent_tab(i));
16408       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbinventory_item_id_tab('||i||')=' || l_dbinventory_item_id_tab(i));
16409       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute_category_tab('||i||')=' || l_dbattribute_category_tab(i));
16410       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute1_tab('||i||')=' || l_dbattribute1_tab(i));
16411       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute2_tab('||i||')=' || l_dbattribute2_tab(i));
16412       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute3_tab('||i||')=' || l_dbattribute3_tab(i));
16413       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute4_tab('||i||')=' || l_dbattribute4_tab(i));
16414       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute5_tab('||i||')=' || l_dbattribute5_tab(i));
16415       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute6_tab('||i||')=' || l_dbattribute6_tab(i));
16416       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute7_tab('||i||')=' || l_dbattribute7_tab(i));
16417       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute8_tab('||i||')=' || l_dbattribute8_tab(i));
16418       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute9_tab('||i||')=' || l_dbattribute9_tab(i));
16419       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute10_tab('||i||')=' || l_dbattribute10_tab(i));
16420       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute11_tab('||i||')=' || l_dbattribute11_tab(i));
16421       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute12_tab('||i||')=' || l_dbattribute12_tab(i));
16422       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute13_tab('||i||')=' || l_dbattribute13_tab(i));
16423       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute14_tab('||i||')=' || l_dbattribute14_tab(i));
16424       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute15_tab('||i||')=' || l_dbattribute15_tab(i));
16425       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbcurrency_code_tab('||i||')=' || l_dbcurrency_code_tab(i));
16426       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbcurrency_convers_type_tab('||i||')=' || l_dbcurrency_convers_type_tab(i));
16427       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbcurrency_convers_rate_tab('||i||')=' || l_dbcurrency_convers_rate_tab(i));
16428       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbcurrency_convers_date_tab('||i||')=' || l_dbcurrency_convers_date_tab(i));
16429     END IF;
16430   END LOOP;
16431   END IF;
16432 
16433   RAISE OKC_API.G_EXCEPTION_ERROR;
16434 
16435 END; /* insert_okl_txd_assets_b */
16436 
16437 FUNCTION find_dbid_mapping_id(p_id IN NUMBER) RETURN NUMBER IS
16438 hi NUMBER;
16439 lo NUMBER;
16440 m NUMBER;
16441 BEGIN
16442   lo := 1;
16443   hi := l_tal_to_kle_counter - 1;
16444   WHILE (lo <= hi) LOOP
16445     m := FLOOR((hi + lo)/2);
16446     IF (l_dbid_mapping_tab(m).tal_id = p_id) THEN
16447       RETURN l_dbid_mapping_tab(m).kle_id;
16448     ELSIF (l_dbid_mapping_tab(m).tal_id > p_id) THEN
16449       hi := m - 1;
16450     ELSE
16451       lo := m + 1;
16452     END IF;
16453   END LOOP;
16454   RETURN -1;
16455 END;  /* find_dbid_mapping_id */
16456 
16457 PROCEDURE sort_dbid_mapping_tab IS
16458   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
16459   --a numtabtype;
16460   l_stack numtabtype;
16461   l_stack_index NUMBER := 0;
16462   N NUMBER;
16463   R NUMBER;
16464   L NUMBER;
16465   P NUMBER;
16466   W NUMBER;
16467   W2 NUMBER;
16468   X NUMBER;
16469   I NUMBER;
16470   J NUMBER;
16471 BEGIN
16472   IF (G_DEBUG_ENABLED = 'Y') THEN
16473     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
16474   END IF;
16475   NULL;
16476 
16477   N := l_tal_to_kle_counter - 1;
16478   IF (N < 2) THEN
16479     RETURN;
16480   END IF;
16481   l_stack_index := l_stack_index + 1;
16482   l_stack(l_stack_index) := 1;
16483   l_stack_index := l_stack_index + 1;
16484   l_stack(l_stack_index) := N;
16485 
16486   --dbms_output.put_line('l_stack_index=' || l_stack_index);
16487   WHILE l_stack_index > 0
16488   LOOP
16489     R := l_stack(l_stack_index);
16490     l_stack_index := l_stack_index - 1;
16491     L := l_stack(l_stack_index);
16492     l_stack_index := l_stack_index - 1;
16493     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
16494     WHILE 1=1
16495     LOOP -- loop until L >= R
16496       I := L;
16497       J := R;
16498       P := FLOOR((L+R)/2);
16499       --if (a(L) > a(P)) then
16500       IF (l_dbid_mapping_tab(L).tal_id > l_dbid_mapping_tab(P).tal_id)
16501       THEN
16502         W := l_dbid_mapping_tab(L).tal_id;
16503         W2 := l_dbid_mapping_tab(L).kle_id;
16504         l_dbid_mapping_tab(L).tal_id :=l_dbid_mapping_tab(P).tal_id;
16505         l_dbid_mapping_tab(L).kle_id :=l_dbid_mapping_tab(P).kle_id;
16506         l_dbid_mapping_tab(P).tal_id := W;
16507         l_dbid_mapping_tab(P).kle_id := W2;
16508       END IF;
16509       --if (a(L) > a(R)) then
16510       IF (l_dbid_mapping_tab(L).tal_id > l_dbid_mapping_tab(R).tal_id)
16511       THEN
16512         W := l_dbid_mapping_tab(L).tal_id;
16513         W2 := l_dbid_mapping_tab(L).kle_id;
16514         l_dbid_mapping_tab(L).tal_id :=l_dbid_mapping_tab(R).tal_id;
16515         l_dbid_mapping_tab(L).kle_id :=l_dbid_mapping_tab(R).kle_id;
16516         l_dbid_mapping_tab(R).tal_id := W;
16517         l_dbid_mapping_tab(R).kle_id := W2;
16518       END IF;
16519       --if (a(P) > a(R)) then
16520       IF (l_dbid_mapping_tab(P).tal_id > l_dbid_mapping_tab(R).tal_id)
16521       THEN
16522         W := l_dbid_mapping_tab(P).tal_id;
16523         W2 := l_dbid_mapping_tab(P).kle_id;
16524         l_dbid_mapping_tab(P).tal_id :=l_dbid_mapping_tab(R).tal_id;
16525         l_dbid_mapping_tab(P).kle_id :=l_dbid_mapping_tab(R).kle_id;
16526         l_dbid_mapping_tab(R).tal_id := W;
16527         l_dbid_mapping_tab(R).kle_id := W2;
16528       END IF;
16529       --X := a(P);
16530       X := l_dbid_mapping_tab(P).tal_id;
16531       WHILE 1=1
16532       LOOP    -- until I > J
16533         --while (a(I) < X) loop
16534         WHILE (l_dbid_mapping_tab(I).tal_id < X) LOOP
16535           I := I + 1;
16536         END LOOP;
16537         WHILE (X < l_dbid_mapping_tab(J).tal_id) LOOP
16538           J := J - 1;
16539         END LOOP;
16540         IF (I <= J) THEN
16541           W := l_dbid_mapping_tab(I).tal_id;
16542           W2 := l_dbid_mapping_tab(I).kle_id;
16543           l_dbid_mapping_tab(I).tal_id :=l_dbid_mapping_tab(J).tal_id;
16544           l_dbid_mapping_tab(I).kle_id :=l_dbid_mapping_tab(J).kle_id;
16545           l_dbid_mapping_tab(J).tal_id := W;
16546           l_dbid_mapping_tab(J).kle_id := W2;
16547           I := I + 1;
16548           J := J - 1;
16549         END IF;
16550         EXIT WHEN I > J;
16551       END LOOP;
16552       IF (J - L < R - I) THEN
16553         IF (I < R) THEN
16554           --push(I); push(R);
16555           l_stack_index := l_stack_index + 1;
16556           l_stack(l_stack_index) := I;
16557           l_stack_index := l_stack_index + 1;
16558           l_stack(l_stack_index) := R;
16559           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
16560         END IF;
16561         R := J;
16562       ELSE
16563         IF (L < J) THEN
16564           --push(L); push(J);
16565           l_stack_index := l_stack_index + 1;
16566           l_stack(l_stack_index) := L;
16567           l_stack_index := l_stack_index + 1;
16568           l_stack(l_stack_index) := J;
16569           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
16570         END IF;
16571         L := I;
16572       END IF;
16573 
16574       EXIT WHEN (L >= R);
16575     END LOOP;
16576   END LOOP;
16577 
16578 EXCEPTION WHEN OTHERS THEN
16579 
16580   x_return_status := OKL_API.G_RET_STS_ERROR;
16581   /*OKL_API.set_message(p_app_name => 'OKL',
16582                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
16583                       p_token1 => 'ASSET_NUMBER',
16584                       p_token1_value => 'sort_dbid_mapping_tab');*/
16585     /* DEBUG */
16586   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16587       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
16588     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_dbid_mapping_tab:l_dbid_mapping_tab N=' || N || ' ...');
16589   END IF;
16590 
16591   --print array
16592   FOR i IN 1..N
16593   LOOP
16594     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16595           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbid_mapping_tab('||i||')=' || l_dbid_mapping_tab(i).tal_id || ':' || l_dbid_mapping_tab(i).kle_id);
16596     END IF;
16597   END LOOP;
16598 
16599   RAISE OKC_API.G_EXCEPTION_ERROR;
16600 
16601 END;  /* sort_dbid_mapping_tab */
16602 
16603 PROCEDURE insert_okl_txl_assets_b(p_old_id IN okc_k_headers_b.id%TYPE,
16604                                   p_new_id IN okc_k_headers_b.id%TYPE) IS
16605 CURSOR c18(p_id NUMBER) IS
16606 SELECT
16607        a.id, a.object_version_number, a.tas_id,
16608        a.ilo_id, a.ilo_id_old, a.iay_id,
16609        a.iay_id_new, a.kle_id, a.dnz_khr_id,
16610        a.line_number, a.org_id, a.tal_type,
16611        a.asset_number, a.fa_location_id, a.original_cost,
16612        a.current_units, a.manufacturer_name, a.year_manufactured,
16613        a.supplier_id, a.used_asset_yn, a.tag_number,
16614        a.model_number, a.corporate_book, a.date_purchased,
16615        a.date_delivery, a.in_service_date, a.life_in_months,
16616        a.depreciation_id, a.depreciation_cost, a.deprn_method,
16617        a.deprn_rate, a.salvage_value, a.percent_salvage_value,
16618        a.attribute_category, a.attribute1, a.attribute2,
16619        a.attribute3, a.attribute4, a.attribute5,
16620        a.attribute6, a.attribute7, a.attribute8,
16621        a.attribute9, a.attribute10, a.attribute11,
16622        a.attribute12, a.attribute13, a.attribute14,
16623        a.attribute15, a.created_by, a.creation_date,
16624        a.last_updated_by, a.last_update_date, a.last_update_login,
16625        a.depreciate_yn, a.hold_period_days, a.old_salvage_value,
16626        a.new_residual_value, a.old_residual_value, a.units_retired,
16627        a.cost_retired, a.sale_proceeds, a.removal_cost,
16628        a.dnz_asset_id, a.date_due, a.rep_asset_id,
16629        a.lke_asset_id, a.match_amount, a.split_into_singles_flag,
16630        a.split_into_units, a.currency_code, a.currency_conversion_type,
16631        a.currency_conversion_rate, a.currency_conversion_date, a.asset_key_id,
16632        a.fa_trx_date
16633 FROM okl_txl_assets_b a,
16634           okc_k_lines_b b,
16635           okc_k_items c
16636    WHERE  a.dnz_khr_id = p_id
16637    AND    b.dnz_chr_id = p_id
16638    AND    c.dnz_chr_id = p_id
16639    AND    b.lse_id = 42
16640    AND    a.kle_id = b.id
16641    AND    a.kle_id = c.cle_id
16642    AND    c.object1_id1 IS NULL
16643    AND    c.object1_id2 IS NULL;
16644 
16645     l_tbid_tab2 l_tbid_type;
16646     l_tbobject_version_number_tab2 l_tbobject_version_number_type;
16647     l_tbtas_id_tab2 l_tbtas_id_type;
16648     l_tbilo_id_tab2 l_tbilo_id_type;
16649     l_tbilo_id_old_tab2 l_tbilo_id_old_type;
16650     l_tbiay_id_tab2 l_tbiay_id_type;
16651     l_tbiay_id_new_tab2 l_tbiay_id_new_type;
16652     l_tbkle_id_tab2 l_tbkle_id_type;
16653     l_tbdnz_khr_id_tab2 l_tbdnz_khr_id_type;
16654     l_tbline_number_tab2 l_tbline_number_type;
16655     l_tborg_id_tab2 l_tborg_id_type;
16656     l_tbtal_type_tab2 l_tbtal_type_type;
16657     l_tbasset_number_tab2 l_tbasset_number_type;
16658     l_tbfa_location_id_tab2 l_tbfa_location_id_type;
16659     l_tboriginal_cost_tab2 l_tboriginal_cost_type;
16660     l_tbcurrent_units_tab2 l_tbcurrent_units_type;
16661     l_tbmanufacturer_name_tab2 l_tbmanufacturer_name_type;
16662     l_tbyear_manufactured_tab2 l_tbyear_manufactured_type;
16663     l_tbsupplier_id_tab2 l_tbsupplier_id_type;
16664     l_tbused_asset_yn_tab2 l_tbused_asset_yn_type;
16665     l_tbtag_number_tab2 l_tbtag_number_type;
16666     l_tbmodel_number_tab2 l_tbmodel_number_type;
16667     l_tbcorporate_book_tab2 l_tbcorporate_book_type;
16668     l_tbdate_purchased_tab2 l_tbdate_purchased_type;
16669     l_tbdate_delivery_tab2 l_tbdate_delivery_type;
16670     l_tbin_service_date_tab2 l_tbin_service_date_type;
16671     l_tblife_in_months_tab2 l_tblife_in_months_type;
16672     l_tbdepreciation_id_tab2 l_tbdepreciation_id_type;
16673     l_tbdepreciation_cost_tab2 l_tbdepreciation_cost_type;
16674     l_tbdeprn_method_tab2 l_tbdeprn_method_type;
16675     l_tbdeprn_rate_tab2 l_tbdeprn_rate_type;
16676     l_tbsalvage_value_tab2 l_tbsalvage_value_type;
16677     l_tbpercent_salvage_value_tab2 l_tbpercent_salvage_value_type;
16678     l_tbattribute_category_tab2 l_tbattribute_category_type;
16679     l_tbattribute1_tab2 l_tbattribute1_type;
16680     l_tbattribute2_tab2 l_tbattribute2_type;
16681     l_tbattribute3_tab2 l_tbattribute3_type;
16682     l_tbattribute4_tab2 l_tbattribute4_type;
16683     l_tbattribute5_tab2 l_tbattribute5_type;
16684     l_tbattribute6_tab2 l_tbattribute6_type;
16685     l_tbattribute7_tab2 l_tbattribute7_type;
16686     l_tbattribute8_tab2 l_tbattribute8_type;
16687     l_tbattribute9_tab2 l_tbattribute9_type;
16688     l_tbattribute10_tab2 l_tbattribute10_type;
16689     l_tbattribute11_tab2 l_tbattribute11_type;
16690     l_tbattribute12_tab2 l_tbattribute12_type;
16691     l_tbattribute13_tab2 l_tbattribute13_type;
16692     l_tbattribute14_tab2 l_tbattribute14_type;
16693     l_tbattribute15_tab2 l_tbattribute15_type;
16694     l_tbcreated_by_tab2 l_tbcreated_by_type;
16695     l_tbcreation_date_tab2 l_tbcreation_date_type;
16696     l_tblast_updated_by_tab2 l_tblast_updated_by_type;
16697     l_tblast_update_date_tab2 l_tblast_update_date_type;
16698     l_tblast_update_login_tab2 l_tblast_update_login_type;
16699     l_tbdepreciate_yn_tab2 l_tbdepreciate_yn_type;
16700     l_tbhold_period_days_tab2 l_tbhold_period_days_type;
16701     l_tbold_salvage_value_tab2 l_tbold_salvage_value_type;
16702     l_tbnew_residual_value_tab2 l_tbnew_residual_value_type;
16703     l_tbold_residual_value_tab2 l_tbold_residual_value_type;
16704     l_tbunits_retired_tab2 l_tbunits_retired_type;
16705     l_tbcost_retired_tab2 l_tbcost_retired_type;
16706     l_tbsale_proceeds_tab2 l_tbsale_proceeds_type;
16707     l_tbremoval_cost_tab2 l_tbremoval_cost_type;
16708     l_tbdnz_asset_id_tab2 l_tbdnz_asset_id_type;
16709     l_tbdate_due_tab2 l_tbdate_due_type;
16710     l_tbrep_asset_id_tab2 l_tbrep_asset_id_type;
16711     l_tblke_asset_id_tab2 l_tblke_asset_id_type;
16712     l_tbmatch_amount_tab2 l_tbmatch_amount_type;
16713     l_tbsplit_into_singles_fl_tab2 l_tbsplit_into_singles_fl_type;
16714     l_tbsplit_into_units_tab2 l_tbsplit_into_units_type;
16715     l_tbcurrency_code_tab2 l_tbcurrency_code_type;
16716     l_tbcurrency_convers_type_tab2 l_tbcurrency_convers_type_type;
16717     l_tbcurrency_convers_rate_tab2 l_tbcurrency_convers_rate_type;
16718     l_tbcurrency_convers_date_tab2 l_tbcurrency_convers_date_type;
16719     l_tbasset_key_id_tab2 l_tbasset_key_id_type;
16720     l_tbfa_trx_date_tab2 l_tbfa_trx_date_type;
16721 
16722   l_new_tas_id NUMBER;
16723   l_new_kle_id NUMBER;
16724   l_new_asset_number VARCHAR2(15);
16725 
16726 BEGIN
16727   IF (G_DEBUG_ENABLED = 'Y') THEN
16728     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
16729   END IF;
16730   OPEN c18(p_old_id);
16731   LOOP
16732     FETCH c18 bulk collect INTO
16733       l_tbid_tab2, l_tbobject_version_number_tab2, l_tbtas_id_tab2,
16734       l_tbilo_id_tab2, l_tbilo_id_old_tab2, l_tbiay_id_tab2,
16735       l_tbiay_id_new_tab2, l_tbkle_id_tab2, l_tbdnz_khr_id_tab2,
16736       l_tbline_number_tab2, l_tborg_id_tab2, l_tbtal_type_tab2,
16737       l_tbasset_number_tab2, l_tbfa_location_id_tab2, l_tboriginal_cost_tab2,
16738       l_tbcurrent_units_tab2, l_tbmanufacturer_name_tab2, l_tbyear_manufactured_tab2,
16739       l_tbsupplier_id_tab2, l_tbused_asset_yn_tab2, l_tbtag_number_tab2,
16740       l_tbmodel_number_tab2, l_tbcorporate_book_tab2, l_tbdate_purchased_tab2,
16741       l_tbdate_delivery_tab2, l_tbin_service_date_tab2, l_tblife_in_months_tab2,
16742       l_tbdepreciation_id_tab2, l_tbdepreciation_cost_tab2, l_tbdeprn_method_tab2,
16743       l_tbdeprn_rate_tab2, l_tbsalvage_value_tab2, l_tbpercent_salvage_value_tab2,
16744       l_tbattribute_category_tab2, l_tbattribute1_tab2, l_tbattribute2_tab2,
16745       l_tbattribute3_tab2, l_tbattribute4_tab2, l_tbattribute5_tab2,
16746       l_tbattribute6_tab2, l_tbattribute7_tab2, l_tbattribute8_tab2,
16747       l_tbattribute9_tab2, l_tbattribute10_tab2, l_tbattribute11_tab2,
16748       l_tbattribute12_tab2, l_tbattribute13_tab2, l_tbattribute14_tab2,
16749       l_tbattribute15_tab2, l_tbcreated_by_tab2, l_tbcreation_date_tab2,
16750       l_tblast_updated_by_tab2, l_tblast_update_date_tab2, l_tblast_update_login_tab2,
16751       l_tbdepreciate_yn_tab2, l_tbhold_period_days_tab2, l_tbold_salvage_value_tab2,
16752       l_tbnew_residual_value_tab2, l_tbold_residual_value_tab2, l_tbunits_retired_tab2,
16753       l_tbcost_retired_tab2, l_tbsale_proceeds_tab2, l_tbremoval_cost_tab2,
16754       l_tbdnz_asset_id_tab2, l_tbdate_due_tab2, l_tbrep_asset_id_tab2,
16755       l_tblke_asset_id_tab2, l_tbmatch_amount_tab2, l_tbsplit_into_singles_fl_tab2,
16756       l_tbsplit_into_units_tab2, l_tbcurrency_code_tab2, l_tbcurrency_convers_type_tab2,
16757       l_tbcurrency_convers_rate_tab2, l_tbcurrency_convers_date_tab2, l_tbasset_key_id_tab2,
16758       l_tbfa_trx_date_tab2
16759     limit G_BULK_SIZE;
16760     EXIT WHEN l_tbid_tab2.COUNT = 0;
16761     FOR i IN l_tbid_tab2.first..l_tbid_tab2.last
16762     LOOP
16763 
16764       l_tbid_tab3(l_txl_assets_b_counter) := l_tbid_tab2(i);
16765       l_tbid_tab(l_txl_assets_b_counter) := l_tbid_tab2(i);
16766       -- Change id
16767       l_tbid_tab(l_txl_assets_b_counter) := okc_p_util.raw_to_number(sys_guid());
16768       l_txl_id_mapping_tab(l_txl_assets_b_counter).old_id := l_tbid_tab3(l_txl_assets_b_counter);
16769       l_txl_id_mapping_tab(l_txl_assets_b_counter).new_id := l_tbid_tab(l_txl_assets_b_counter);
16770 
16771       l_tbobject_version_number_tab(l_txl_assets_b_counter) := l_tbobject_version_number_tab2(i);
16772       l_tbtas_id_tab(l_txl_assets_b_counter) := l_tbtas_id_tab2(i);
16773       --Change tas_id
16774       l_new_tas_id := find_trx_mapping_id( l_tbtas_id_tab(l_txl_assets_b_counter));
16775         IF (l_new_tas_id = -1) THEN
16776           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16777                       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR : Mapping id not found for ' || l_tbtas_id_tab(l_txl_assets_b_counter));
16778           END IF;
16779           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
16780         END IF;
16781       l_tbtas_id_tab(l_txl_assets_b_counter) := l_new_tas_id;
16782 
16783       l_tbilo_id_tab(l_txl_assets_b_counter) := l_tbilo_id_tab2(i);
16784       l_tbilo_id_old_tab(l_txl_assets_b_counter) := l_tbilo_id_old_tab2(i);
16785       l_tbiay_id_tab(l_txl_assets_b_counter) := l_tbiay_id_tab2(i);
16786       l_tbiay_id_new_tab(l_txl_assets_b_counter) := l_tbiay_id_new_tab2(i);
16787       l_tbkle_id_tab(l_txl_assets_b_counter) := l_tbkle_id_tab2(i);
16788       -- Change kle_id
16789       IF (l_tbkle_id_tab(l_txl_assets_b_counter) IS NOT NULL) THEN
16790         l_new_kle_id := find_mapping_id(l_tbkle_id_tab(l_txl_assets_b_counter));
16791         IF (l_new_kle_id = -1) THEN
16792           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16793                       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR : Mapping id not found for ' || l_tbkle_id_tab(l_txl_assets_b_counter));
16794           END IF;
16795           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
16796         END IF;
16797         l_tbkle_id_tab(l_txl_assets_b_counter) := l_new_kle_id;
16798       END IF;
16799 
16800       -- Store Tal id to kle_id mapping
16801       l_dbid_mapping_tab(l_tal_to_kle_counter).tal_id := l_tbid_tab(l_txl_assets_b_counter);
16802       l_dbid_mapping_tab(l_tal_to_kle_counter).kle_id := l_tbkle_id_tab(l_txl_assets_b_counter);
16803       l_tal_to_kle_counter := l_tal_to_kle_counter + 1;
16804 
16805       l_tbdnz_khr_id_tab(l_txl_assets_b_counter) := l_tbdnz_khr_id_tab2(i);
16806       -- Change dnz_chr_id
16807       IF (l_tbdnz_khr_id_tab(l_txl_assets_b_counter) IS NOT NULL) THEN
16808         l_tbdnz_khr_id_tab(l_txl_assets_b_counter) := p_new_id;
16809       END IF;
16810 
16811       l_tbline_number_tab(l_txl_assets_b_counter) := l_tbline_number_tab2(i);
16812       l_tborg_id_tab(l_txl_assets_b_counter) := l_tborg_id_tab2(i);
16813       l_tbtal_type_tab(l_txl_assets_b_counter) := l_tbtal_type_tab2(i);
16814       l_tbasset_number_tab(l_txl_assets_b_counter) := l_tbasset_number_tab2(i);
16815       -- Change asset_number
16816       l_new_asset_number := find_aid_mapping_id(l_tbasset_number_tab(l_txl_assets_b_counter));
16817       IF (l_new_asset_number <> '-1') THEN
16818         l_tbasset_number_tab(l_txl_assets_b_counter) := l_new_asset_number;
16819       END IF;
16820 
16821       l_tbfa_location_id_tab(l_txl_assets_b_counter) := l_tbfa_location_id_tab2(i);
16822       l_tboriginal_cost_tab(l_txl_assets_b_counter) := l_tboriginal_cost_tab2(i);
16823       l_tbcurrent_units_tab(l_txl_assets_b_counter) := l_tbcurrent_units_tab2(i);
16824       l_tbmanufacturer_name_tab(l_txl_assets_b_counter) := l_tbmanufacturer_name_tab2(i);
16825       l_tbyear_manufactured_tab(l_txl_assets_b_counter) := l_tbyear_manufactured_tab2(i);
16826       l_tbsupplier_id_tab(l_txl_assets_b_counter) := l_tbsupplier_id_tab2(i);
16827       l_tbused_asset_yn_tab(l_txl_assets_b_counter) := l_tbused_asset_yn_tab2(i);
16828       l_tbtag_number_tab(l_txl_assets_b_counter) := l_tbtag_number_tab2(i);
16829       l_tbmodel_number_tab(l_txl_assets_b_counter) := l_tbmodel_number_tab2(i);
16830       l_tbcorporate_book_tab(l_txl_assets_b_counter) := l_tbcorporate_book_tab2(i);
16831       l_tbdate_purchased_tab(l_txl_assets_b_counter) := l_tbdate_purchased_tab2(i);
16832       l_tbdate_delivery_tab(l_txl_assets_b_counter) := l_tbdate_delivery_tab2(i);
16833       l_tbin_service_date_tab(l_txl_assets_b_counter) := l_tbin_service_date_tab2(i);
16834       l_tblife_in_months_tab(l_txl_assets_b_counter) := l_tblife_in_months_tab2(i);
16835       l_tbdepreciation_id_tab(l_txl_assets_b_counter) := l_tbdepreciation_id_tab2(i);
16836       l_tbdepreciation_cost_tab(l_txl_assets_b_counter) := l_tbdepreciation_cost_tab2(i);
16837       l_tbdeprn_method_tab(l_txl_assets_b_counter) := l_tbdeprn_method_tab2(i);
16838       l_tbdeprn_rate_tab(l_txl_assets_b_counter) := l_tbdeprn_rate_tab2(i);
16839       l_tbsalvage_value_tab(l_txl_assets_b_counter) := l_tbsalvage_value_tab2(i);
16840       l_tbpercent_salvage_value_tab(l_txl_assets_b_counter) := l_tbpercent_salvage_value_tab2(i);
16841       l_tbattribute_category_tab(l_txl_assets_b_counter) := l_tbattribute_category_tab2(i);
16842       l_tbattribute1_tab(l_txl_assets_b_counter) := l_tbattribute1_tab2(i);
16843       l_tbattribute2_tab(l_txl_assets_b_counter) := l_tbattribute2_tab2(i);
16844       l_tbattribute3_tab(l_txl_assets_b_counter) := l_tbattribute3_tab2(i);
16845       l_tbattribute4_tab(l_txl_assets_b_counter) := l_tbattribute4_tab2(i);
16846       l_tbattribute5_tab(l_txl_assets_b_counter) := l_tbattribute5_tab2(i);
16847       l_tbattribute6_tab(l_txl_assets_b_counter) := l_tbattribute6_tab2(i);
16848       l_tbattribute7_tab(l_txl_assets_b_counter) := l_tbattribute7_tab2(i);
16849       l_tbattribute8_tab(l_txl_assets_b_counter) := l_tbattribute8_tab2(i);
16850       l_tbattribute9_tab(l_txl_assets_b_counter) := l_tbattribute9_tab2(i);
16851       l_tbattribute10_tab(l_txl_assets_b_counter) := l_tbattribute10_tab2(i);
16852       l_tbattribute11_tab(l_txl_assets_b_counter) := l_tbattribute11_tab2(i);
16853       l_tbattribute12_tab(l_txl_assets_b_counter) := l_tbattribute12_tab2(i);
16854       l_tbattribute13_tab(l_txl_assets_b_counter) := l_tbattribute13_tab2(i);
16855       l_tbattribute14_tab(l_txl_assets_b_counter) := l_tbattribute14_tab2(i);
16856       l_tbattribute15_tab(l_txl_assets_b_counter) := l_tbattribute15_tab2(i);
16857       l_tbcreated_by_tab(l_txl_assets_b_counter) := l_tbcreated_by_tab2(i);
16858       l_tbcreation_date_tab(l_txl_assets_b_counter) := l_tbcreation_date_tab2(i);
16859       l_tblast_updated_by_tab(l_txl_assets_b_counter) := l_tblast_updated_by_tab2(i);
16860       l_tblast_update_date_tab(l_txl_assets_b_counter) := l_tblast_update_date_tab2(i);
16861       l_tblast_update_login_tab(l_txl_assets_b_counter) := l_tblast_update_login_tab2(i);
16862       l_tbdepreciate_yn_tab(l_txl_assets_b_counter) := l_tbdepreciate_yn_tab2(i);
16863       l_tbhold_period_days_tab(l_txl_assets_b_counter) := l_tbhold_period_days_tab2(i);
16864       l_tbold_salvage_value_tab(l_txl_assets_b_counter) := l_tbold_salvage_value_tab2(i);
16865       l_tbnew_residual_value_tab(l_txl_assets_b_counter) := l_tbnew_residual_value_tab2(i);
16866       l_tbold_residual_value_tab(l_txl_assets_b_counter) := l_tbold_residual_value_tab2(i);
16867       l_tbunits_retired_tab(l_txl_assets_b_counter) := l_tbunits_retired_tab2(i);
16868       l_tbcost_retired_tab(l_txl_assets_b_counter) := l_tbcost_retired_tab2(i);
16869       l_tbsale_proceeds_tab(l_txl_assets_b_counter) := l_tbsale_proceeds_tab2(i);
16870       l_tbremoval_cost_tab(l_txl_assets_b_counter) := l_tbremoval_cost_tab2(i);
16871       l_tbdnz_asset_id_tab(l_txl_assets_b_counter) := l_tbdnz_asset_id_tab2(i);
16872       l_tbdate_due_tab(l_txl_assets_b_counter) := l_tbdate_due_tab2(i);
16873       l_tbrep_asset_id_tab(l_txl_assets_b_counter) := l_tbrep_asset_id_tab2(i);
16874       l_tblke_asset_id_tab(l_txl_assets_b_counter) := l_tblke_asset_id_tab2(i);
16875       l_tbmatch_amount_tab(l_txl_assets_b_counter) := l_tbmatch_amount_tab2(i);
16876       l_tbsplit_into_singles_fl_tab(l_txl_assets_b_counter) := l_tbsplit_into_singles_fl_tab2(i);
16877       l_tbsplit_into_units_tab(l_txl_assets_b_counter) := l_tbsplit_into_units_tab2(i);
16878       /*l_tbcurrency_code_tab(l_txl_assets_b_counter) := l_tbcurrency_code_tab2(i);
16879       l_tbcurrency_convers_type_tab(l_txl_assets_b_counter) := l_tbcurrency_convers_type_tab2(i);
16880       l_tbcurrency_convers_rate_tab(l_txl_assets_b_counter) := l_tbcurrency_convers_rate_tab2(i);
16881       l_tbcurrency_convers_date_tab(l_txl_assets_b_counter) := l_tbcurrency_convers_date_tab2(i);*/
16882       -- AKP: Default the following four from the contract header
16883       l_tbcurrency_code_tab(l_txl_assets_b_counter) := l_contract_currency;
16884       l_tbcurrency_convers_type_tab(l_txl_assets_b_counter) := l_conversion_type;
16885       l_tbcurrency_convers_rate_tab(l_txl_assets_b_counter) := l_conversion_rate;
16886       l_tbcurrency_convers_date_tab(l_txl_assets_b_counter) := l_conversion_rate_date;
16887       l_tbasset_key_id_tab(l_txl_assets_b_counter) := l_tbasset_key_id_tab2(i);
16888       l_tbfa_trx_date_tab(l_txl_assets_b_counter) := l_tbfa_trx_date_tab2(i);
16889 
16890       l_txl_assets_b_counter := l_txl_assets_b_counter + 1;
16891 
16892     END LOOP;
16893   END LOOP;
16894   CLOSE c18;
16895   sort_dbid_mapping_tab;
16896 
16897   IF (l_txl_assets_b_counter > 1) THEN
16898     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16899           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_txl_assets_b_counter=' || l_txl_assets_b_counter || ' l_tbid_tab.count=' || l_tbid_tab.COUNT);
16900     END IF;
16901     forall i IN l_tbid_tab.first..l_tbid_tab.last
16902     INSERT INTO okl_txl_assets_b (
16903      id, object_version_number, tas_id,
16904      ilo_id, ilo_id_old, iay_id,
16905      iay_id_new, kle_id, dnz_khr_id,
16906      line_number, org_id, tal_type,
16907      asset_number, fa_location_id, original_cost,
16908      current_units, manufacturer_name, year_manufactured,
16909      supplier_id, used_asset_yn, tag_number,
16910      model_number, corporate_book, date_purchased,
16911      date_delivery, in_service_date, life_in_months,
16912      depreciation_id, depreciation_cost, deprn_method,
16913      deprn_rate, salvage_value, percent_salvage_value,
16914      attribute_category, attribute1, attribute2,
16915      attribute3, attribute4, attribute5,
16916      attribute6, attribute7, attribute8,
16917      attribute9, attribute10, attribute11,
16918      attribute12, attribute13, attribute14,
16919      attribute15, created_by, creation_date,
16920      last_updated_by, last_update_date, last_update_login,
16921      depreciate_yn, hold_period_days, old_salvage_value,
16922      new_residual_value, old_residual_value, units_retired,
16923      cost_retired, sale_proceeds, removal_cost,
16924      dnz_asset_id, date_due, rep_asset_id,
16925      lke_asset_id, match_amount, split_into_singles_flag,
16926      split_into_units, currency_code, currency_conversion_type,
16927      currency_conversion_rate, currency_conversion_date, asset_key_id,
16928      fa_trx_date
16929     ) VALUES (
16930      l_tbid_tab(i), 1, l_tbtas_id_tab(i),
16931      l_tbilo_id_tab(i), l_tbilo_id_old_tab(i), l_tbiay_id_tab(i),
16932      l_tbiay_id_new_tab(i), l_tbkle_id_tab(i), l_tbdnz_khr_id_tab(i),
16933      l_tbline_number_tab(i), l_tborg_id_tab(i), p_trans_type,
16934      l_tbasset_number_tab(i), l_tbfa_location_id_tab(i), l_tboriginal_cost_tab(i),
16935      l_tbcurrent_units_tab(i), l_tbmanufacturer_name_tab(i), l_tbyear_manufactured_tab(i),
16936      l_tbsupplier_id_tab(i), l_tbused_asset_yn_tab(i), l_tbtag_number_tab(i),
16937      l_tbmodel_number_tab(i), l_tbcorporate_book_tab(i), l_tbdate_purchased_tab(i),
16938      l_tbdate_delivery_tab(i), l_tbin_service_date_tab(i), l_tblife_in_months_tab(i),
16939      l_tbdepreciation_id_tab(i), l_tbdepreciation_cost_tab(i), l_tbdeprn_method_tab(i),
16940      l_tbdeprn_rate_tab(i), l_tbsalvage_value_tab(i), l_tbpercent_salvage_value_tab(i),
16941      l_tbattribute_category_tab(i), l_tbattribute1_tab(i), l_tbattribute2_tab(i),
16942      l_tbattribute3_tab(i), l_tbattribute4_tab(i), l_tbattribute5_tab(i),
16943      l_tbattribute6_tab(i), l_tbattribute7_tab(i), l_tbattribute8_tab(i),
16944      l_tbattribute9_tab(i), l_tbattribute10_tab(i), l_tbattribute11_tab(i),
16945      l_tbattribute12_tab(i), l_tbattribute13_tab(i), l_tbattribute14_tab(i),
16946      l_tbattribute15_tab(i), l_created_by, SYSDATE,
16947      l_last_updated_by, SYSDATE, l_last_update_login,
16948      l_tbdepreciate_yn_tab(i), l_tbhold_period_days_tab(i), l_tbold_salvage_value_tab(i),
16949      l_tbnew_residual_value_tab(i), l_tbold_residual_value_tab(i), l_tbunits_retired_tab(i),
16950      l_tbcost_retired_tab(i), l_tbsale_proceeds_tab(i), l_tbremoval_cost_tab(i),
16951      l_tbdnz_asset_id_tab(i), l_tbdate_due_tab(i), l_tbrep_asset_id_tab(i),
16952      l_tblke_asset_id_tab(i), l_tbmatch_amount_tab(i), l_tbsplit_into_singles_fl_tab(i),
16953      l_tbsplit_into_units_tab(i), l_tbcurrency_code_tab(i), l_tbcurrency_convers_type_tab(i),
16954      l_tbcurrency_convers_rate_tab(i), l_tbcurrency_convers_date_tab(i), l_tbasset_key_id_tab(i),
16955      NULL
16956     );
16957 
16958     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16959           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okl_txl_assets_b done...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
16960     END IF;
16961     sort_txl_id_mapping_tab;
16962     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16963           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okl_txl_assets_tl...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
16964     END IF;
16965     FOR i IN l_tbid_tab.first..l_tbid_tab.last
16966     LOOP
16967       IF (i = l_tbid_tab.last) THEN
16968         insert_okl_txl_assets_tl(l_tbid_tab3(i), l_tbid_tab(i), 'Y');
16969       ELSE
16970         insert_okl_txl_assets_tl(l_tbid_tab3(i), l_tbid_tab(i), 'N');
16971       END IF;
16972     END LOOP;
16973 
16974     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16975           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okl_txd_assets_b ' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
16976     END IF;
16977     l_message := 'OKL_NEW_COPY_ASD_ERROR';
16978     insert_okl_txd_assets_b(p_chr_id, l_copied_id);
16979   END IF;
16980 
16981 EXCEPTION WHEN OTHERS THEN
16982 
16983   x_return_status := OKL_API.G_RET_STS_ERROR;
16984   /*OKL_API.set_message(p_app_name => 'OKL',
16985                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
16986                       p_token1 => 'ASSET_NUMBER',
16987                       p_token1_value => 'insert_okl_txl_assets_b');*/
16988     /* DEBUG */
16989   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16990       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
16991     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing insert_okl_txl_assets_b:l_tbid_tab.count=' || l_tbid_tab.COUNT || ' ...');
16992   END IF;
16993   IF (l_tbid_tab.COUNT > 0) THEN
16994   FOR i IN l_tbid_tab.first..l_tbid_tab.last
16995   LOOP
16996     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16997           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbid_tab('||i||')=' || l_tbid_tab(i));
16998       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbtas_id_tab('||i||')=' || l_tbtas_id_tab(i));
16999       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbilo_id_tab('||i||')=' || l_tbilo_id_tab(i));
17000       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbilo_id_old_tab('||i||')=' || l_tbilo_id_old_tab(i));
17001       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbiay_id_tab('||i||')=' || l_tbiay_id_tab(i));
17002       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbiay_id_new_tab('||i||')=' || l_tbiay_id_new_tab(i));
17003       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbkle_id_tab('||i||')=' || l_tbkle_id_tab(i));
17004       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbdnz_khr_id_tab('||i||')=' || l_tbdnz_khr_id_tab(i));
17005       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbline_number_tab('||i||')=' || l_tbline_number_tab(i));
17006       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tborg_id_tab('||i||')=' || l_tborg_id_tab(i));
17007       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbasset_number_tab('||i||')=' || l_tbasset_number_tab(i));
17008       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbfa_location_id_tab('||i||')=' || l_tbfa_location_id_tab(i));
17009       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tboriginal_cost_tab('||i||')=' || l_tboriginal_cost_tab(i));
17010       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbcurrent_units_tab('||i||')=' || l_tbcurrent_units_tab(i));
17011       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbmanufacturer_name_tab('||i||')=' || l_tbmanufacturer_name_tab(i));
17012       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbyear_manufactured_tab('||i||')=' || l_tbyear_manufactured_tab(i));
17013       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbsupplier_id_tab('||i||')=' || l_tbsupplier_id_tab(i));
17014       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbused_asset_yn_tab('||i||')=' || l_tbused_asset_yn_tab(i));
17015       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbtag_number_tab('||i||')=' || l_tbtag_number_tab(i));
17016       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbmodel_number_tab('||i||')=' || l_tbmodel_number_tab(i));
17017       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbcorporate_book_tab('||i||')=' || l_tbcorporate_book_tab(i));
17018       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbdate_purchased_tab('||i||')=' || l_tbdate_purchased_tab(i));
17019       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbdate_delivery_tab('||i||')=' || l_tbdate_delivery_tab(i));
17020       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbin_service_date_tab('||i||')=' || l_tbin_service_date_tab(i));
17021       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tblife_in_months_tab('||i||')=' || l_tblife_in_months_tab(i));
17022       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbdepreciation_id_tab('||i||')=' || l_tbdepreciation_id_tab(i));
17023       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbdepreciation_cost_tab('||i||')=' || l_tbdepreciation_cost_tab(i));
17024       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbdeprn_method_tab('||i||')=' || l_tbdeprn_method_tab(i));
17025       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbdeprn_rate_tab('||i||')=' || l_tbdeprn_rate_tab(i));
17026       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbsalvage_value_tab('||i||')=' || l_tbsalvage_value_tab(i));
17027       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbpercent_salvage_value_tab('||i||')=' || l_tbpercent_salvage_value_tab(i));
17028       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute_category_tab('||i||')=' || l_tbattribute_category_tab(i));
17029       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute1_tab('||i||')=' || l_tbattribute1_tab(i));
17030       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute2_tab('||i||')=' || l_tbattribute2_tab(i));
17031       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute3_tab('||i||')=' || l_tbattribute3_tab(i));
17032       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute4_tab('||i||')=' || l_tbattribute4_tab(i));
17033       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute5_tab('||i||')=' || l_tbattribute5_tab(i));
17034       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute6_tab('||i||')=' || l_tbattribute6_tab(i));
17035       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute7_tab('||i||')=' || l_tbattribute7_tab(i));
17036       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute8_tab('||i||')=' || l_tbattribute8_tab(i));
17037       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute9_tab('||i||')=' || l_tbattribute9_tab(i));
17038       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute10_tab('||i||')=' || l_tbattribute10_tab(i));
17039       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute11_tab('||i||')=' || l_tbattribute11_tab(i));
17040       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute12_tab('||i||')=' || l_tbattribute12_tab(i));
17041       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute13_tab('||i||')=' || l_tbattribute13_tab(i));
17042       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute14_tab('||i||')=' || l_tbattribute14_tab(i));
17043       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute15_tab('||i||')=' || l_tbattribute15_tab(i));
17044       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbdepreciate_yn_tab('||i||')=' || l_tbdepreciate_yn_tab(i));
17045       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbhold_period_days_tab('||i||')=' || l_tbhold_period_days_tab(i));
17046       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbold_salvage_value_tab('||i||')=' || l_tbold_salvage_value_tab(i));
17047       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbnew_residual_value_tab('||i||')=' || l_tbnew_residual_value_tab(i));
17048       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbold_residual_value_tab('||i||')=' || l_tbold_residual_value_tab(i));
17049       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbunits_retired_tab('||i||')=' || l_tbunits_retired_tab(i));
17050       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbcost_retired_tab('||i||')=' || l_tbcost_retired_tab(i));
17051       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbsale_proceeds_tab('||i||')=' || l_tbsale_proceeds_tab(i));
17052       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbremoval_cost_tab('||i||')=' || l_tbremoval_cost_tab(i));
17053       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbdnz_asset_id_tab('||i||')=' || l_tbdnz_asset_id_tab(i));
17054       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbdate_due_tab('||i||')=' || l_tbdate_due_tab(i));
17055       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbrep_asset_id_tab('||i||')=' || l_tbrep_asset_id_tab(i));
17056       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tblke_asset_id_tab('||i||')=' || l_tblke_asset_id_tab(i));
17057       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbmatch_amount_tab('||i||')=' || l_tbmatch_amount_tab(i));
17058       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbsplit_into_singles_fl_tab('||i||')=' || l_tbsplit_into_singles_fl_tab(i));
17059       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbsplit_into_units_tab('||i||')=' || l_tbsplit_into_units_tab(i));
17060       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbcurrency_code_tab('||i||')=' || l_tbcurrency_code_tab(i));
17061       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbcurrency_convers_type_tab('||i||')=' || l_tbcurrency_convers_type_tab(i));
17062       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbcurrency_convers_rate_tab('||i||')=' || l_tbcurrency_convers_rate_tab(i));
17063       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbcurrency_convers_date_tab('||i||')=' || l_tbcurrency_convers_date_tab(i));
17064       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbasset_key_id_tab('||i||')=' || l_tbasset_key_id_tab(i));
17065     END IF;
17066   END LOOP;
17067   END IF;
17068 
17069   RAISE OKC_API.G_EXCEPTION_ERROR;
17070 
17071 END;  /* insert_okl_txl_assets_b */
17072 
17073 PROCEDURE insert_okl_trx_assets(p_old_id IN okc_k_headers_b.id%TYPE,
17074                                 p_new_id IN okc_k_headers_b.id%TYPE) IS
17075 CURSOR c17(p_id NUMBER) IS
17076 SELECT
17077      id, ica_id, tas_type,
17078      object_version_number, attribute_category, attribute1,
17079      attribute2, attribute3, attribute4,
17080      attribute5, attribute6, attribute7,
17081      attribute8, attribute9, attribute10,
17082      attribute11, attribute12, attribute13,
17083      attribute14, attribute15, created_by,
17084      creation_date, last_updated_by, last_update_date,
17085      last_update_login, tsu_code, try_id,
17086      date_trans_occurred, trans_number, comments,
17087      req_asset_id, total_match_amount, org_id,legal_entity_id
17088 FROM okl_trx_assets
17089 WHERE id IN
17090   (SELECT a.tas_id FROM okl_txl_assets_b a,
17091           okc_k_lines_b b,
17092           okc_k_items c
17093    WHERE  a.dnz_khr_id = p_id
17094    AND    b.dnz_chr_id = p_id
17095    AND    c.dnz_chr_id = p_id
17096    AND    b.lse_id = 42
17097    AND    a.kle_id = b.id
17098    AND    a.kle_id = c.cle_id
17099    AND    c.object1_id1 IS NULL
17100    AND    c.object1_id2 IS NULL);
17101 
17102     l_tid_tab2 l_tid_type;
17103     l_tica_id_tab2 l_tica_id_type;
17104     l_ttas_type_tab2 l_ttas_type_type;
17105     l_tobject_version_number_tab2 l_tobject_version_number_type;
17106     l_tattribute_category_tab2 l_tattribute_category_type;
17107     l_tattribute1_tab2 l_tattribute1_type;
17108     l_tattribute2_tab2 l_tattribute2_type;
17109     l_tattribute3_tab2 l_tattribute3_type;
17110     l_tattribute4_tab2 l_tattribute4_type;
17111     l_tattribute5_tab2 l_tattribute5_type;
17112     l_tattribute6_tab2 l_tattribute6_type;
17113     l_tattribute7_tab2 l_tattribute7_type;
17114     l_tattribute8_tab2 l_tattribute8_type;
17115     l_tattribute9_tab2 l_tattribute9_type;
17116     l_tattribute10_tab2 l_tattribute10_type;
17117     l_tattribute11_tab2 l_tattribute11_type;
17118     l_tattribute12_tab2 l_tattribute12_type;
17119     l_tattribute13_tab2 l_tattribute13_type;
17120     l_tattribute14_tab2 l_tattribute14_type;
17121     l_tattribute15_tab2 l_tattribute15_type;
17122     l_tcreated_by_tab2 l_tcreated_by_type;
17123     l_tcreation_date_tab2 l_tcreation_date_type;
17124     l_tlast_updated_by_tab2 l_tlast_updated_by_type;
17125     l_tlast_update_date_tab2 l_tlast_update_date_type;
17126     l_tlast_update_login_tab2 l_tlast_update_login_type;
17127     l_ttsu_code_tab2 l_ttsu_code_type;
17128     l_ttry_id_tab2 l_ttry_id_type;
17129     l_tdate_trans_occurred_tab2 l_tdate_trans_occurred_type;
17130     l_ttrans_number_tab2 l_ttrans_number_type;
17131     l_tcomments_tab2 l_tcomments_type;
17132     l_treq_asset_id_tab2 l_treq_asset_id_type;
17133     l_ttotal_match_amount_tab2 l_ttotal_match_amount_type;
17134     l_torg_id_tab2 l_torg_id_type;
17135     l_tlegal_entity_id_tab2  l_tlegal_entity_id_type;
17136 
17137 BEGIN
17138   IF (G_DEBUG_ENABLED = 'Y') THEN
17139     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
17140   END IF;
17141   OPEN c17(p_old_id);
17142   LOOP
17143     FETCH c17 bulk collect INTO
17144      l_tid_tab2, l_tica_id_tab2, l_ttas_type_tab2,
17145      l_tobject_version_number_tab2, l_tattribute_category_tab2, l_tattribute1_tab2,
17146      l_tattribute2_tab2, l_tattribute3_tab2, l_tattribute4_tab2,
17147      l_tattribute5_tab2, l_tattribute6_tab2, l_tattribute7_tab2,
17148      l_tattribute8_tab2, l_tattribute9_tab2, l_tattribute10_tab2,
17149      l_tattribute11_tab2, l_tattribute12_tab2, l_tattribute13_tab2,
17150      l_tattribute14_tab2, l_tattribute15_tab2, l_tcreated_by_tab2,
17151      l_tcreation_date_tab2, l_tlast_updated_by_tab2, l_tlast_update_date_tab2,
17152      l_tlast_update_login_tab2, l_ttsu_code_tab2, l_ttry_id_tab2,
17153      l_tdate_trans_occurred_tab2, l_ttrans_number_tab2, l_tcomments_tab2,
17154      l_treq_asset_id_tab2, l_ttotal_match_amount_tab2, l_torg_id_tab2,l_tlegal_entity_id_tab2
17155     limit G_BULK_SIZE;
17156     EXIT WHEN l_tid_tab2.COUNT = 0;
17157     FOR i IN l_tid_tab2.first..l_tid_tab2.last
17158     LOOP
17159 
17160       l_tid_tab(l_trx_assets_counter) := l_tid_tab2(i);
17161       l_trx_id_mapping_tab(l_trx_assets_counter).old_id := l_tid_tab2(i);
17162 
17163       --Change id
17164       l_tid_tab(l_trx_assets_counter) := okc_p_util.raw_to_number(sys_guid());
17165       l_trx_id_mapping_tab(l_trx_assets_counter).new_id := l_tid_tab(l_trx_assets_counter);
17166 
17167       l_tica_id_tab(l_trx_assets_counter) := l_tica_id_tab2(i);
17168       l_ttas_type_tab(l_trx_assets_counter) := l_ttas_type_tab2(i);
17169       l_tobject_version_number_tab(l_trx_assets_counter) := l_tobject_version_number_tab2(i);
17170       l_tattribute_category_tab(l_trx_assets_counter) := l_tattribute_category_tab2(i);
17171       l_tattribute1_tab(l_trx_assets_counter) := l_tattribute1_tab2(i);
17172       l_tattribute2_tab(l_trx_assets_counter) := l_tattribute2_tab2(i);
17173       l_tattribute3_tab(l_trx_assets_counter) := l_tattribute3_tab2(i);
17174       l_tattribute4_tab(l_trx_assets_counter) := l_tattribute4_tab2(i);
17175       l_tattribute5_tab(l_trx_assets_counter) := l_tattribute5_tab2(i);
17176       l_tattribute6_tab(l_trx_assets_counter) := l_tattribute6_tab2(i);
17177       l_tattribute7_tab(l_trx_assets_counter) := l_tattribute7_tab2(i);
17178       l_tattribute8_tab(l_trx_assets_counter) := l_tattribute8_tab2(i);
17179       l_tattribute9_tab(l_trx_assets_counter) := l_tattribute9_tab2(i);
17180       l_tattribute10_tab(l_trx_assets_counter) := l_tattribute10_tab2(i);
17181       l_tattribute11_tab(l_trx_assets_counter) := l_tattribute11_tab2(i);
17182       l_tattribute12_tab(l_trx_assets_counter) := l_tattribute12_tab2(i);
17183       l_tattribute13_tab(l_trx_assets_counter) := l_tattribute13_tab2(i);
17184       l_tattribute14_tab(l_trx_assets_counter) := l_tattribute14_tab2(i);
17185       l_tattribute15_tab(l_trx_assets_counter) := l_tattribute15_tab2(i);
17186       l_tcreated_by_tab(l_trx_assets_counter) := l_tcreated_by_tab2(i);
17187       l_tcreation_date_tab(l_trx_assets_counter) := l_tcreation_date_tab2(i);
17188       l_tlast_updated_by_tab(l_trx_assets_counter) := l_tlast_updated_by_tab2(i);
17189       l_tlast_update_date_tab(l_trx_assets_counter) := l_tlast_update_date_tab2(i);
17190       l_tlast_update_login_tab(l_trx_assets_counter) := l_tlast_update_login_tab2(i);
17191       l_ttsu_code_tab(l_trx_assets_counter) := l_ttsu_code_tab2(i);
17192       l_ttry_id_tab(l_trx_assets_counter) := l_ttry_id_tab2(i);
17193       l_tdate_trans_occurred_tab(l_trx_assets_counter) := l_tdate_trans_occurred_tab2(i);
17194       l_ttrans_number_tab(l_trx_assets_counter) := l_ttrans_number_tab2(i);
17195       l_tcomments_tab(l_trx_assets_counter) := l_tcomments_tab2(i);
17196       l_treq_asset_id_tab(l_trx_assets_counter) := l_treq_asset_id_tab2(i);
17197       l_ttotal_match_amount_tab(l_trx_assets_counter) := l_ttotal_match_amount_tab2(i);
17198       l_torg_id_tab(l_trx_assets_counter) := l_torg_id_tab2(i);
17199       l_tlegal_entity_id_tab(l_trx_assets_counter) := l_tlegal_entity_id_tab2(i);
17200 
17201       l_trx_assets_counter := l_trx_assets_counter + 1;
17202     END LOOP;
17203   END LOOP;
17204   CLOSE c17;
17205 
17206   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
17207       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_trx_assets_counter=' || l_trx_assets_counter || ' l_tid_tab.count=' || l_tid_tab.COUNT);
17208   END IF;
17209   IF (l_trx_assets_counter > 1) THEN
17210     forall i IN l_tid_tab.first..l_tid_tab.last
17211     INSERT INTO okl_trx_assets (
17212      id, ica_id, tas_type,
17213      object_version_number, attribute_category, attribute1,
17214      attribute2, attribute3, attribute4,
17215      attribute5, attribute6, attribute7,
17216      attribute8, attribute9, attribute10,
17217      attribute11, attribute12, attribute13,
17218      attribute14, attribute15, created_by,
17219      creation_date, last_updated_by, last_update_date,
17220      last_update_login, tsu_code, try_id,
17221      date_trans_occurred, trans_number, comments,
17222      req_asset_id, total_match_amount, org_id,legal_entity_id
17223      ,transaction_date
17224     ) VALUES (
17225      l_tid_tab(i), l_tica_id_tab(i), p_trans_type,
17226      1, l_tattribute_category_tab(i), l_tattribute1_tab(i),
17227      l_tattribute2_tab(i), l_tattribute3_tab(i), l_tattribute4_tab(i),
17228      l_tattribute5_tab(i), l_tattribute6_tab(i), l_tattribute7_tab(i),
17229      l_tattribute8_tab(i), l_tattribute9_tab(i), l_tattribute10_tab(i),
17230      l_tattribute11_tab(i), l_tattribute12_tab(i), l_tattribute13_tab(i),
17231      l_tattribute14_tab(i), l_tattribute15_tab(i), l_created_by,
17232      SYSDATE, l_last_updated_by, SYSDATE,
17233      l_last_update_login, 'ENTERED', l_ttry_id_tab(i),
17234      SYSDATE, okl_trn_seq.NEXTVAL, l_tcomments_tab(i),
17235      l_treq_asset_id_tab(i), l_ttotal_match_amount_tab(i), l_torg_id_tab(i),l_tlegal_entity_id_tab(i)
17236      ,SYSDATE
17237     );
17238 
17239     sort_trx_id_mapping_tab;
17240 
17241     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
17242           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okl_txl_assets_b...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
17243     END IF;
17244     l_message := 'OKL_NEW_COPY_TAL_ERROR';
17245     insert_okl_txl_assets_b(p_chr_id, l_copied_id);
17246 
17247   END IF;
17248 EXCEPTION WHEN OTHERS THEN
17249 
17250   x_return_status := OKL_API.G_RET_STS_ERROR;
17251   /*OKL_API.set_message(p_app_name => 'OKL',
17252                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
17253                       p_token1 => 'ASSET_NUMBER',
17254                       p_token1_value => 'insert_okl_trx_assets');*/
17255     /* DEBUG */
17256   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
17257       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
17258     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing insert_okl_trx_assets:l_tid_tab.count=' || l_tid_tab.COUNT || ' ...');
17259   END IF;
17260   IF (l_tid_tab.COUNT > 0) THEN
17261   FOR i IN l_tid_tab.first..l_tid_tab.last
17262   LOOP
17263     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
17264           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tid_tab('||i||')=' || l_tid_tab(i));
17265       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tica_id_tab('||i||')=' || l_tica_id_tab(i));
17266       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute_category_tab('||i||')=' || l_tattribute_category_tab(i));
17267       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute1_tab('||i||')=' || l_tattribute1_tab(i));
17268       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute2_tab('||i||')=' || l_tattribute2_tab(i));
17269       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute3_tab('||i||')=' || l_tattribute3_tab(i));
17270       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute4_tab('||i||')=' || l_tattribute4_tab(i));
17271       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute5_tab('||i||')=' || l_tattribute5_tab(i));
17272       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute6_tab('||i||')=' || l_tattribute6_tab(i));
17273       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute7_tab('||i||')=' || l_tattribute7_tab(i));
17274       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute8_tab('||i||')=' || l_tattribute8_tab(i));
17275       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute9_tab('||i||')=' || l_tattribute9_tab(i));
17276       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute10_tab('||i||')=' || l_tattribute10_tab(i));
17277       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute11_tab('||i||')=' || l_tattribute11_tab(i));
17278       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute12_tab('||i||')=' || l_tattribute12_tab(i));
17279       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute13_tab('||i||')=' || l_tattribute13_tab(i));
17280       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute14_tab('||i||')=' || l_tattribute14_tab(i));
17281       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute15_tab('||i||')=' || l_tattribute15_tab(i));
17282       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ttry_id_tab('||i||')=' || l_ttry_id_tab(i));
17283       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tcomments_tab('||i||')=' || l_tcomments_tab(i));
17284       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_treq_asset_id_tab('||i||')=' || l_treq_asset_id_tab(i));
17285       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ttotal_match_amount_tab('||i||')=' || l_ttotal_match_amount_tab(i));
17286       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_torg_id_tab('||i||')=' || l_torg_id_tab(i));
17287     END IF;
17288   END LOOP;
17289   END IF;
17290 
17291   RAISE OKC_API.G_EXCEPTION_ERROR;
17292 
17293 END;  /* insert_okl_trx_assets */
17294 
17295 PROCEDURE insert_okl_trx_assets_2(p_old_id IN okc_k_headers_b.id%TYPE,
17296                                  p_new_id IN okc_k_headers_b.id%TYPE) IS
17297 CURSOR c17_2(p_id NUMBER) IS
17298 SELECT
17299      id, ica_id, tas_type,
17300      object_version_number, attribute_category, attribute1,
17301      attribute2, attribute3, attribute4,
17302      attribute5, attribute6, attribute7,
17303      attribute8, attribute9, attribute10,
17304      attribute11, attribute12, attribute13,
17305      attribute14, attribute15, created_by,
17306      creation_date, last_updated_by, last_update_date,
17307      last_update_login, tsu_code, try_id,
17308      date_trans_occurred, trans_number, comments,
17309      req_asset_id, total_match_amount, org_id,legal_entity_id
17310 FROM okl_trx_assets
17311 WHERE id IN
17312 (
17313   SELECT tas_id
17314   FROM okl_txl_itm_insts b
17315   WHERE kle_id IN
17316    (SELECT a.id
17317     FROM okc_k_lines_b a,
17318          okc_k_items   c
17319     WHERE   a.dnz_chr_id = p_id
17320     AND c.dnz_chr_id = p_id
17321     AND c.cle_id = a.id
17322     AND    a.lse_id = 45
17323     AND    c.object1_id1 IS NULL
17324     AND    c.object1_id2 IS NULL)
17325 );
17326 
17327     l_t2id_tab2 l_t2id_type;
17328     l_t2ica_id_tab2 l_t2ica_id_type;
17329     l_t2tas_type_tab2 l_t2tas_type_type;
17330     l_t2object_version_number_tab2 l_t2object_version_number_type;
17331     l_t2attribute_category_tab2 l_t2attribute_category_type;
17332     l_t2attribute1_tab2 l_t2attribute1_type;
17333     l_t2attribute2_tab2 l_t2attribute2_type;
17334     l_t2attribute3_tab2 l_t2attribute3_type;
17335     l_t2attribute4_tab2 l_t2attribute4_type;
17336     l_t2attribute5_tab2 l_t2attribute5_type;
17337     l_t2attribute6_tab2 l_t2attribute6_type;
17338     l_t2attribute7_tab2 l_t2attribute7_type;
17339     l_t2attribute8_tab2 l_t2attribute8_type;
17340     l_t2attribute9_tab2 l_t2attribute9_type;
17341     l_t2attribute10_tab2 l_t2attribute10_type;
17342     l_t2attribute11_tab2 l_t2attribute11_type;
17343     l_t2attribute12_tab2 l_t2attribute12_type;
17344     l_t2attribute13_tab2 l_t2attribute13_type;
17345     l_t2attribute14_tab2 l_t2attribute14_type;
17346     l_t2attribute15_tab2 l_t2attribute15_type;
17347     l_t2created_by_tab2 l_t2created_by_type;
17348     l_t2creation_date_tab2 l_t2creation_date_type;
17349     l_t2last_updated_by_tab2 l_t2last_updated_by_type;
17350     l_t2last_update_date_tab2 l_t2last_update_date_type;
17351     l_t2last_update_login_tab2 l_t2last_update_login_type;
17352     l_t2tsu_code_tab2 l_t2tsu_code_type;
17353     l_t2try_id_tab2 l_t2try_id_type;
17354     l_t2date_trans_occurred_tab2 l_t2date_trans_occurred_type;
17355     l_t2trans_number_tab2 l_t2trans_number_type;
17356     l_t2comments_tab2 l_t2comments_type;
17357     l_t2req_asset_id_tab2 l_t2req_asset_id_type;
17358     l_t2total_match_amount_tab2 l_t2total_match_amount_type;
17359     l_t2org_id_tab2 l_t2org_id_type;
17360     l_t2legal_entity_id_tab2 l_t2legal_entity_id_type;
17361 
17362 BEGIN
17363   IF (G_DEBUG_ENABLED = 'Y') THEN
17364     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
17365   END IF;
17366   OPEN c17_2(p_old_id);
17367   LOOP
17368     FETCH c17_2 bulk collect INTO
17369      l_t2id_tab2, l_t2ica_id_tab2, l_t2tas_type_tab2,
17370      l_t2object_version_number_tab2, l_t2attribute_category_tab2, l_t2attribute1_tab2,
17371      l_t2attribute2_tab2, l_t2attribute3_tab2, l_t2attribute4_tab2,
17372      l_t2attribute5_tab2, l_t2attribute6_tab2, l_t2attribute7_tab2,
17373      l_t2attribute8_tab2, l_t2attribute9_tab2, l_t2attribute10_tab2,
17374      l_t2attribute11_tab2, l_t2attribute12_tab2, l_t2attribute13_tab2,
17375      l_t2attribute14_tab2, l_t2attribute15_tab2, l_t2created_by_tab2,
17376      l_t2creation_date_tab2, l_t2last_updated_by_tab2, l_t2last_update_date_tab2,
17377      l_t2last_update_login_tab2, l_t2tsu_code_tab2, l_t2try_id_tab2,
17378      l_t2date_trans_occurred_tab2, l_t2trans_number_tab2, l_t2comments_tab2,
17379      l_t2req_asset_id_tab2, l_t2total_match_amount_tab2, l_t2org_id_tab2,l_t2legal_entity_id_tab2
17380     limit G_BULK_SIZE;
17381     EXIT WHEN l_t2id_tab2.COUNT = 0;
17382     FOR i IN l_t2id_tab2.first..l_t2id_tab2.last
17383     LOOP
17384 
17385       l_t2id_tab(l_trx_assets_counter2) := l_t2id_tab2(i);
17386       l_trx_id_mapping_tab2(l_trx_assets_counter2).old_id := l_t2id_tab2(i);
17387       -- Change id
17388       l_t2id_tab(l_trx_assets_counter2) := okc_p_util.raw_to_number(sys_guid());
17389       l_trx_id_mapping_tab2(l_trx_assets_counter2).new_id := l_t2id_tab(l_trx_assets_counter2);
17390 
17391       l_t2ica_id_tab(l_trx_assets_counter2) := l_t2ica_id_tab2(i);
17392       l_t2tas_type_tab(l_trx_assets_counter2) := l_t2tas_type_tab2(i);
17393       l_t2object_version_number_tab(l_trx_assets_counter2) := l_t2object_version_number_tab2(i);
17394       l_t2attribute_category_tab(l_trx_assets_counter2) := l_t2attribute_category_tab2(i);
17395       l_t2attribute1_tab(l_trx_assets_counter2) := l_t2attribute1_tab2(i);
17396       l_t2attribute2_tab(l_trx_assets_counter2) := l_t2attribute2_tab2(i);
17397       l_t2attribute3_tab(l_trx_assets_counter2) := l_t2attribute3_tab2(i);
17398       l_t2attribute4_tab(l_trx_assets_counter2) := l_t2attribute4_tab2(i);
17399       l_t2attribute5_tab(l_trx_assets_counter2) := l_t2attribute5_tab2(i);
17400       l_t2attribute6_tab(l_trx_assets_counter2) := l_t2attribute6_tab2(i);
17401       l_t2attribute7_tab(l_trx_assets_counter2) := l_t2attribute7_tab2(i);
17402       l_t2attribute8_tab(l_trx_assets_counter2) := l_t2attribute8_tab2(i);
17403       l_t2attribute9_tab(l_trx_assets_counter2) := l_t2attribute9_tab2(i);
17404       l_t2attribute10_tab(l_trx_assets_counter2) := l_t2attribute10_tab2(i);
17405       l_t2attribute11_tab(l_trx_assets_counter2) := l_t2attribute11_tab2(i);
17406       l_t2attribute12_tab(l_trx_assets_counter2) := l_t2attribute12_tab2(i);
17407       l_t2attribute13_tab(l_trx_assets_counter2) := l_t2attribute13_tab2(i);
17408       l_t2attribute14_tab(l_trx_assets_counter2) := l_t2attribute14_tab2(i);
17409       l_t2attribute15_tab(l_trx_assets_counter2) := l_t2attribute15_tab2(i);
17410       l_t2created_by_tab(l_trx_assets_counter2) := l_t2created_by_tab2(i);
17411       l_t2creation_date_tab(l_trx_assets_counter2) := l_t2creation_date_tab2(i);
17412       l_t2last_updated_by_tab(l_trx_assets_counter2) := l_t2last_updated_by_tab2(i);
17413       l_t2last_update_date_tab(l_trx_assets_counter2) := l_t2last_update_date_tab2(i);
17414       l_t2last_update_login_tab(l_trx_assets_counter2) := l_t2last_update_login_tab2(i);
17415       l_t2tsu_code_tab(l_trx_assets_counter2) := l_t2tsu_code_tab2(i);
17416       l_t2try_id_tab(l_trx_assets_counter2) := l_t2try_id_tab2(i);
17417       l_t2date_trans_occurred_tab(l_trx_assets_counter2) := l_t2date_trans_occurred_tab2(i);
17418       l_t2trans_number_tab(l_trx_assets_counter2) := l_t2trans_number_tab2(i);
17419       l_t2comments_tab(l_trx_assets_counter2) := l_t2comments_tab2(i);
17420       l_t2req_asset_id_tab(l_trx_assets_counter2) := l_t2req_asset_id_tab2(i);
17421       l_t2total_match_amount_tab(l_trx_assets_counter2) := l_t2total_match_amount_tab2(i);
17422       l_t2org_id_tab(l_trx_assets_counter2) := l_t2org_id_tab2(i);
17423       l_t2legal_entity_id_tab(l_trx_assets_counter2) := l_t2legal_entity_id_tab2(i);
17424 
17425       l_trx_assets_counter2 := l_trx_assets_counter2 + 1;
17426 
17427     END LOOP;
17428   END LOOP;
17429   CLOSE c17_2;
17430 
17431   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
17432       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_trx_assets_counter2=' || l_trx_assets_counter2 || ' l_t2id_tab.count=' || l_t2id_tab.COUNT);
17433   END IF;
17434   IF (l_trx_assets_counter2 > 1) THEN
17435     forall i IN l_t2id_tab.first..l_t2id_tab.last
17436     INSERT INTO okl_trx_assets (
17437      id, ica_id, tas_type,
17438      object_version_number, attribute_category, attribute1,
17439      attribute2, attribute3, attribute4,
17440      attribute5, attribute6, attribute7,
17441      attribute8, attribute9, attribute10,
17442      attribute11, attribute12, attribute13,
17443      attribute14, attribute15, created_by,
17444      creation_date, last_updated_by, last_update_date,
17445      last_update_login, tsu_code, try_id,
17446      date_trans_occurred, trans_number, comments,
17447      req_asset_id, total_match_amount, org_id,legal_entity_id
17448      ,transaction_date
17449     ) VALUES (
17450      l_t2id_tab(i), l_t2ica_id_tab(i), p_trans_type,
17451      1, l_t2attribute_category_tab(i), l_t2attribute1_tab(i),
17452      l_t2attribute2_tab(i), l_t2attribute3_tab(i), l_t2attribute4_tab(i),
17453      l_t2attribute5_tab(i), l_t2attribute6_tab(i), l_t2attribute7_tab(i),
17454      l_t2attribute8_tab(i), l_t2attribute9_tab(i), l_t2attribute10_tab(i),
17455      l_t2attribute11_tab(i), l_t2attribute12_tab(i), l_t2attribute13_tab(i),
17456      l_t2attribute14_tab(i), l_t2attribute15_tab(i), l_created_by,
17457      SYSDATE, l_last_updated_by, SYSDATE,
17458      l_last_update_login, 'ENTERED', l_t2try_id_tab(i),
17459      SYSDATE, okl_trn_seq.NEXTVAL, l_t2comments_tab(i),
17460      l_t2req_asset_id_tab(i), l_t2total_match_amount_tab(i), l_t2org_id_tab(i),l_t2legal_entity_id_tab(i)
17461      ,SYSDATE
17462     );
17463 
17464     sort_trx_id_mapping_tab2;
17465 
17466   END IF;
17467 EXCEPTION WHEN OTHERS THEN
17468 
17469   x_return_status := OKL_API.G_RET_STS_ERROR;
17470   /*OKL_API.set_message(p_app_name => 'OKL',
17471                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
17472                       p_token1 => 'ASSET_NUMBER',
17473                       p_token1_value => 'insert_okl_trx_assets_2');*/
17474     /* DEBUG */
17475   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
17476       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
17477     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing insert_okl_trx_assets_2:l_t2id_tab.count=' || l_t2id_tab.COUNT || ' ...');
17478   END IF;
17479   IF (l_t2id_tab.COUNT > 0) THEN
17480   FOR i IN l_t2id_tab.first..l_t2id_tab.last
17481   LOOP
17482     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
17483           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2id_tab('||i||')=' || l_t2id_tab(i));
17484       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2ica_id_tab('||i||')=' || l_t2ica_id_tab(i));
17485       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute_category_tab('||i||')=' || l_t2attribute_category_tab(i));
17486       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute1_tab('||i||')=' || l_t2attribute1_tab(i));
17487       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute2_tab('||i||')=' || l_t2attribute2_tab(i));
17488       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute3_tab('||i||')=' || l_t2attribute3_tab(i));
17489       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute4_tab('||i||')=' || l_t2attribute4_tab(i));
17490       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute5_tab('||i||')=' || l_t2attribute5_tab(i));
17491       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute6_tab('||i||')=' || l_t2attribute6_tab(i));
17492       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute7_tab('||i||')=' || l_t2attribute7_tab(i));
17493       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute8_tab('||i||')=' || l_t2attribute8_tab(i));
17494       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute9_tab('||i||')=' || l_t2attribute9_tab(i));
17495       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute10_tab('||i||')=' || l_t2attribute10_tab(i));
17496       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute11_tab('||i||')=' || l_t2attribute11_tab(i));
17497       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute12_tab('||i||')=' || l_t2attribute12_tab(i));
17498       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute13_tab('||i||')=' || l_t2attribute13_tab(i));
17499       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute14_tab('||i||')=' || l_t2attribute14_tab(i));
17500       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute15_tab('||i||')=' || l_t2attribute15_tab(i));
17501       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2try_id_tab('||i||')=' || l_t2try_id_tab(i));
17502       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2comments_tab('||i||')=' || l_t2comments_tab(i));
17503       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2req_asset_id_tab('||i||')=' || l_t2req_asset_id_tab(i));
17504       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2total_match_amount_tab('||i||')=' || l_t2total_match_amount_tab(i));
17505       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2org_id_tab('||i||')=' || l_t2org_id_tab(i));
17506     END IF;
17507   END LOOP;
17508   END IF;
17509 
17510   RAISE OKC_API.G_EXCEPTION_ERROR;
17511 
17512 END;  /* insert_okl_trx_assets_2 */
17513 
17514 -- AKP: Delete this function from here. And use
17515 -- okl_copy_asset_pvt.generate_instance_number_ib instead
17516 
17517   FUNCTION generate_instance_number_ib(x_instance_number_ib  OUT NOCOPY  OKL_TXL_ITM_INSTS_V.INSTANCE_NUMBER_IB%TYPE)
17518   RETURN VARCHAR2 IS
17519     x_return_status            VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
17520     G_APP_NAME                    CONSTANT  VARCHAR2(3)   :=  OKL_API.G_APP_NAME;
17521     G_UNEXPECTED_ERROR            CONSTANT  VARCHAR2(200) := 'OKL_CONTRACTS_UNEXP_ERROR';
17522     G_SQLCODE_TOKEN               CONSTANT  VARCHAR2(200) := 'SQLcode';
17523     G_SQLERRM_TOKEN               CONSTANT  VARCHAR2(200) := 'SQLerrm';
17524     -- cursor to get sequence number for asset number
17525     CURSOR c_instance_no_ib IS
17526     SELECT TO_CHAR(OKL_IBN_SEQ.NEXTVAL)
17527     FROM dual;
17528   BEGIN
17529     OPEN  c_instance_no_ib;
17530     FETCH c_instance_no_ib INTO x_instance_number_ib;
17531     IF (c_instance_no_ib%NOTFOUND) THEN
17532       x_return_status := OKC_API.G_RET_STS_ERROR;
17533       OKL_API.SET_MESSAGE(p_app_name 	 => g_app_name,
17534                           p_msg_name	 => g_unexpected_error,
17535                           p_token1	 => g_sqlcode_token,
17536                           p_token1_value => SQLCODE,
17537 			  p_token2	 => g_sqlerrm_token,
17538 			  p_token2_value => SQLERRM);
17539     END IF;
17540     CLOSE c_instance_no_ib;
17541     RETURN x_return_status;
17542   EXCEPTION
17543     WHEN OTHERS THEN
17544       IF c_instance_no_ib%ISOPEN THEN
17545         CLOSE c_instance_no_ib;
17546       END IF;
17547       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
17548       OKL_API.SET_MESSAGE(p_app_name 	 => g_app_name,
17549                           p_msg_name	 => g_unexpected_error,
17550                           p_token1	 => g_sqlcode_token,
17551                           p_token1_value => SQLCODE,
17552 			  p_token2	 => g_sqlerrm_token,
17553 			  p_token2_value => SQLERRM);
17554     RETURN x_return_status;
17555   END generate_instance_number_ib;
17556 
17557 PROCEDURE insert_okl_txl_itm_insts(p_old_id IN okc_k_headers_b.id%TYPE,
17558                                    p_new_id IN okc_k_headers_b.id%TYPE) IS
17559 CURSOR c22(p_id NUMBER) IS
17560 SELECT
17561      p.id, p.object_version_number, p.tas_id,
17562      p.tal_id, p.kle_id, p.tal_type,
17563      p.line_number, p.instance_number_ib, p.object_id1_new,
17564      p.object_id2_new, p.jtot_object_code_new, p.object_id1_old,
17565      p.object_id2_old, p.jtot_object_code_old, p.inventory_org_id,
17566      p.serial_number, p.mfg_serial_number_yn, p.inventory_item_id,
17567      p.inv_master_org_id, p.attribute_category, p.attribute1,
17568      p.attribute2, p.attribute3, p.attribute4,
17569      p.attribute5, p.attribute6, p.attribute7,
17570      p.attribute8, p.attribute9, p.attribute10,
17571      p.attribute11, p.attribute12, p.attribute13,
17572      p.attribute14, p.attribute15, p.created_by,
17573      p.creation_date, p.last_updated_by, p.last_update_date,
17574      p.last_update_login, p.dnz_cle_id, p.instance_id,
17575      p.selected_for_split_flag, p.asd_id
17576 FROM okl_txl_itm_insts p
17577 WHERE p.kle_id IN
17578 (
17579   SELECT a.id
17580   FROM okc_k_lines_b a,
17581        okc_k_items   c
17582   WHERE   a.dnz_chr_id = p_id
17583   AND c.dnz_chr_id = p_id
17584   AND c.cle_id = a.id
17585   AND    a.lse_id = 45
17586   AND    c.object1_id1 IS NULL
17587   AND    c.object1_id2 IS NULL
17588 );
17589 
17590     l_tiid_tab2 l_tiid_type;
17591     l_tiobject_version_number_tab2 l_tiobject_version_number_type;
17592     l_titas_id_tab2 l_titas_id_type;
17593     l_tital_id_tab2 l_tital_id_type;
17594     l_tikle_id_tab2 l_tikle_id_type;
17595     l_tital_type_tab2 l_tital_type_type;
17596     l_tiline_number_tab2 l_tiline_number_type;
17597     l_tiinstance_number_ib_tab2 l_tiinstance_number_ib_type;
17598     l_tiobject_id1_new_tab2 l_tiobject_id1_new_type;
17599     l_tiobject_id2_new_tab2 l_tiobject_id2_new_type;
17600     l_tijtot_object_code_new_tab2 l_tijtot_object_code_new_type;
17601     l_tiobject_id1_old_tab2 l_tiobject_id1_old_type;
17602     l_tiobject_id2_old_tab2 l_tiobject_id2_old_type;
17603     l_tijtot_object_code_old_tab2 l_tijtot_object_code_old_type;
17604     l_tiinventory_org_id_tab2 l_tiinventory_org_id_type;
17605     l_tiserial_number_tab2 l_tiserial_number_type;
17606     l_timfg_serial_number_yn_tab2 l_timfg_serial_number_yn_type;
17607     l_tiinventory_item_id_tab2 l_tiinventory_item_id_type;
17608     l_tiinv_master_org_id_tab2 l_tiinv_master_org_id_type;
17609     l_tiattribute_category_tab2 l_tiattribute_category_type;
17610     l_tiattribute1_tab2 l_tiattribute1_type;
17611     l_tiattribute2_tab2 l_tiattribute2_type;
17612     l_tiattribute3_tab2 l_tiattribute3_type;
17613     l_tiattribute4_tab2 l_tiattribute4_type;
17614     l_tiattribute5_tab2 l_tiattribute5_type;
17615     l_tiattribute6_tab2 l_tiattribute6_type;
17616     l_tiattribute7_tab2 l_tiattribute7_type;
17617     l_tiattribute8_tab2 l_tiattribute8_type;
17618     l_tiattribute9_tab2 l_tiattribute9_type;
17619     l_tiattribute10_tab2 l_tiattribute10_type;
17620     l_tiattribute11_tab2 l_tiattribute11_type;
17621     l_tiattribute12_tab2 l_tiattribute12_type;
17622     l_tiattribute13_tab2 l_tiattribute13_type;
17623     l_tiattribute14_tab2 l_tiattribute14_type;
17624     l_tiattribute15_tab2 l_tiattribute15_type;
17625     l_ticreated_by_tab2 l_ticreated_by_type;
17626     l_ticreation_date_tab2 l_ticreation_date_type;
17627     l_tilast_updated_by_tab2 l_tilast_updated_by_type;
17628     l_tilast_update_date_tab2 l_tilast_update_date_type;
17629     l_tilast_update_login_tab2 l_tilast_update_login_type;
17630     l_tidnz_cle_id_tab2 l_tidnz_cle_id_type;
17631     l_tiinstance_id_tab2 l_tiinstance_id_type;
17632     l_tiselected_for_split_fl_tab2 l_tiselected_for_split_fl_type;
17633     l_tiasd_id_tab2 l_tiasd_id_type;
17634 
17635     l_new_tas_id NUMBER;
17636     l_new_tal_id NUMBER;
17637     l_new_kle_id NUMBER;
17638     l_new_dnz_cle_id NUMBER;
17639     l_new_asset_name VARCHAR2(150);
17640     l_generated_instance_number_ib NUMBER;
17641   l_return_status VARCHAR2(30);
17642 
17643 BEGIN
17644   IF (G_DEBUG_ENABLED = 'Y') THEN
17645     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
17646   END IF;
17647   OPEN c22(p_old_id);
17648   LOOP
17649     FETCH c22 bulk collect INTO
17650       l_tiid_tab2, l_tiobject_version_number_tab2, l_titas_id_tab2,
17651       l_tital_id_tab2, l_tikle_id_tab2, l_tital_type_tab2,
17652       l_tiline_number_tab2, l_tiinstance_number_ib_tab2, l_tiobject_id1_new_tab2,
17653       l_tiobject_id2_new_tab2, l_tijtot_object_code_new_tab2, l_tiobject_id1_old_tab2,
17654       l_tiobject_id2_old_tab2, l_tijtot_object_code_old_tab2, l_tiinventory_org_id_tab2,
17655       l_tiserial_number_tab2, l_timfg_serial_number_yn_tab2, l_tiinventory_item_id_tab2,
17656       l_tiinv_master_org_id_tab2, l_tiattribute_category_tab2, l_tiattribute1_tab2,
17657       l_tiattribute2_tab2, l_tiattribute3_tab2, l_tiattribute4_tab2,
17658       l_tiattribute5_tab2, l_tiattribute6_tab2, l_tiattribute7_tab2,
17659       l_tiattribute8_tab2, l_tiattribute9_tab2, l_tiattribute10_tab2,
17660       l_tiattribute11_tab2, l_tiattribute12_tab2, l_tiattribute13_tab2,
17661       l_tiattribute14_tab2, l_tiattribute15_tab2, l_ticreated_by_tab2,
17662       l_ticreation_date_tab2, l_tilast_updated_by_tab2, l_tilast_update_date_tab2,
17663       l_tilast_update_login_tab2, l_tidnz_cle_id_tab2, l_tiinstance_id_tab2,
17664       l_tiselected_for_split_fl_tab2, l_tiasd_id_tab2
17665     limit G_BULK_SIZE;
17666     EXIT WHEN l_tiid_tab2.COUNT = 0;
17667     FOR i IN l_tiid_tab2.first..l_tiid_tab2.last
17668     LOOP
17669 
17670       l_tiid_tab(l_txl_itm_insts_counter) := l_tiid_tab2(i);
17671       -- Change id
17672       l_tiid_tab(l_txl_itm_insts_counter) := okc_p_util.raw_to_number(sys_guid());
17673 
17674       l_tiobject_version_number_tab(l_txl_itm_insts_counter) := l_tiobject_version_number_tab2(i);
17675       l_titas_id_tab(l_txl_itm_insts_counter) := l_titas_id_tab2(i);
17676       -- Change tas_id
17677       l_new_tas_id := find_trx_mapping_id2(l_titas_id_tab(l_txl_itm_insts_counter));
17678       l_titas_id_tab(l_txl_itm_insts_counter) := l_new_tas_id;
17679 
17680       l_tital_id_tab(l_txl_itm_insts_counter) := l_tital_id_tab2(i);
17681       -- Change tal_id
17682       --l_new_tal_id := find_txl_mapping_id(l_tital_id_tab(l_txl_itm_insts_counter));
17683       --l_tital_id_tab(l_txl_itm_insts_counter) := l_new_tal_id;
17684       l_new_tal_id := NULL;
17685 
17686       l_tikle_id_tab(l_txl_itm_insts_counter) := l_tikle_id_tab2(i);
17687       -- Change kle_id
17688       l_new_kle_id := find_mapping_id(l_tikle_id_tab(l_txl_itm_insts_counter));
17689         IF (l_new_kle_id = -1) THEN
17690           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
17691                       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR : Mapping id not found for ' || l_tikle_id_tab(l_txl_itm_insts_counter));
17692           END IF;
17693           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
17694         END IF;
17695       l_tikle_id_tab(l_txl_itm_insts_counter) := l_new_kle_id;
17696 
17697       l_tital_type_tab(l_txl_itm_insts_counter) := l_tital_type_tab2(i);
17698       l_tiline_number_tab(l_txl_itm_insts_counter) := l_tiline_number_tab2(i);
17699       l_tiinstance_number_ib_tab(l_txl_itm_insts_counter) := l_tiinstance_number_ib_tab2(i);
17700 
17701       -- Change instance_number_ib
17702       --print('Old asset_name: ' || l_tiinstance_number_ib_tab(l_txl_itm_insts_counter));
17703       --l_new_asset_name := find_aid_mapping_id(l_tiinstance_number_ib_tab(l_txl_itm_insts_counter));
17704       -- To do: expose okl_copy_asset_pvt.generate_instance_number_ib
17705       -- Use the package call instead
17706       l_return_status := generate_instance_number_ib(l_generated_instance_number_ib);
17707       IF l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
17708         RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
17709       ELSIF l_return_status = OKL_API.G_RET_STS_ERROR THEN
17710         RAISE OKL_API.G_EXCEPTION_ERROR;
17711       END IF;
17712 
17713       l_tiinstance_number_ib_tab(l_txl_itm_insts_counter) := l_generated_instance_number_ib;
17714 
17715       l_tiobject_id1_new_tab(l_txl_itm_insts_counter) := l_tiobject_id1_new_tab2(i);
17716       l_tiobject_id2_new_tab(l_txl_itm_insts_counter) := l_tiobject_id2_new_tab2(i);
17717       l_tijtot_object_code_new_tab(l_txl_itm_insts_counter) := l_tijtot_object_code_new_tab2(i);
17718       l_tiobject_id1_old_tab(l_txl_itm_insts_counter) := l_tiobject_id1_old_tab2(i);
17719       l_tiobject_id2_old_tab(l_txl_itm_insts_counter) := l_tiobject_id2_old_tab2(i);
17720       l_tijtot_object_code_old_tab(l_txl_itm_insts_counter) := l_tijtot_object_code_old_tab2(i);
17721       l_tiinventory_org_id_tab(l_txl_itm_insts_counter) := l_tiinventory_org_id_tab2(i);
17722       l_tiserial_number_tab(l_txl_itm_insts_counter) := l_tiserial_number_tab2(i);
17723       l_timfg_serial_number_yn_tab(l_txl_itm_insts_counter) := l_timfg_serial_number_yn_tab2(i);
17724       l_tiinventory_item_id_tab(l_txl_itm_insts_counter) := l_tiinventory_item_id_tab2(i);
17725       l_tiinv_master_org_id_tab(l_txl_itm_insts_counter) := l_tiinv_master_org_id_tab2(i);
17726       l_tiattribute_category_tab(l_txl_itm_insts_counter) := l_tiattribute_category_tab2(i);
17727       l_tiattribute1_tab(l_txl_itm_insts_counter) := l_tiattribute1_tab2(i);
17728       l_tiattribute2_tab(l_txl_itm_insts_counter) := l_tiattribute2_tab2(i);
17729       l_tiattribute3_tab(l_txl_itm_insts_counter) := l_tiattribute3_tab2(i);
17730       l_tiattribute4_tab(l_txl_itm_insts_counter) := l_tiattribute4_tab2(i);
17731       l_tiattribute5_tab(l_txl_itm_insts_counter) := l_tiattribute5_tab2(i);
17732       l_tiattribute6_tab(l_txl_itm_insts_counter) := l_tiattribute6_tab2(i);
17733       l_tiattribute7_tab(l_txl_itm_insts_counter) := l_tiattribute7_tab2(i);
17734       l_tiattribute8_tab(l_txl_itm_insts_counter) := l_tiattribute8_tab2(i);
17735       l_tiattribute9_tab(l_txl_itm_insts_counter) := l_tiattribute9_tab2(i);
17736       l_tiattribute10_tab(l_txl_itm_insts_counter) := l_tiattribute10_tab2(i);
17737       l_tiattribute11_tab(l_txl_itm_insts_counter) := l_tiattribute11_tab2(i);
17738       l_tiattribute12_tab(l_txl_itm_insts_counter) := l_tiattribute12_tab2(i);
17739       l_tiattribute13_tab(l_txl_itm_insts_counter) := l_tiattribute13_tab2(i);
17740       l_tiattribute14_tab(l_txl_itm_insts_counter) := l_tiattribute14_tab2(i);
17741       l_tiattribute15_tab(l_txl_itm_insts_counter) := l_tiattribute15_tab2(i);
17742       l_ticreated_by_tab(l_txl_itm_insts_counter) := l_ticreated_by_tab2(i);
17743       l_ticreation_date_tab(l_txl_itm_insts_counter) := l_ticreation_date_tab2(i);
17744       l_tilast_updated_by_tab(l_txl_itm_insts_counter) := l_tilast_updated_by_tab2(i);
17745       l_tilast_update_date_tab(l_txl_itm_insts_counter) := l_tilast_update_date_tab2(i);
17746       l_tilast_update_login_tab(l_txl_itm_insts_counter) := l_tilast_update_login_tab2(i);
17747       l_tidnz_cle_id_tab(l_txl_itm_insts_counter) := l_tidnz_cle_id_tab2(i);
17748       -- Change dnz_cle_id ??? AKP
17749       l_new_dnz_cle_id := find_mapping_id(l_tidnz_cle_id_tab(l_txl_itm_insts_counter));
17750         /*if (l_new_dnz_cle_id = -1) then
17751           print('ERROR : Mapping id not found for ' || l_tidnz_cle_id_tab(l_txl_itm_insts_counter));
17752           raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
17753         end if;*/
17754       l_tidnz_cle_id_tab(l_txl_itm_insts_counter) := l_new_dnz_cle_id;
17755 
17756       l_tiinstance_id_tab(l_txl_itm_insts_counter) := l_tiinstance_id_tab2(i);
17757       l_tiselected_for_split_fl_tab(l_txl_itm_insts_counter) := l_tiselected_for_split_fl_tab2(i);
17758       l_tiasd_id_tab(l_txl_itm_insts_counter) := l_tiasd_id_tab2(i);
17759 
17760       l_txl_itm_insts_counter := l_txl_itm_insts_counter + 1;
17761 
17762     END LOOP;
17763   END LOOP;
17764   CLOSE c22;
17765 
17766   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
17767       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_txl_itm_insts_counter=' || l_txl_itm_insts_counter || ' l_tiid_tab.count=' || l_tiid_tab.COUNT);
17768   END IF;
17769   IF (l_txl_itm_insts_counter > 1) THEN
17770     forall i IN l_tiid_tab.first..l_tiid_tab.last
17771       INSERT INTO okl_txl_itm_insts (
17772        id, object_version_number, tas_id,
17773        tal_id, kle_id, tal_type,
17774        line_number, instance_number_ib, object_id1_new,
17775        object_id2_new, jtot_object_code_new, object_id1_old,
17776        object_id2_old, jtot_object_code_old, inventory_org_id,
17777        serial_number, mfg_serial_number_yn, inventory_item_id,
17778        inv_master_org_id, attribute_category, attribute1,
17779        attribute2, attribute3, attribute4,
17780        attribute5, attribute6, attribute7,
17781        attribute8, attribute9, attribute10,
17782        attribute11, attribute12, attribute13,
17783        attribute14, attribute15, created_by,
17784        creation_date, last_updated_by, last_update_date,
17785        last_update_login, dnz_cle_id, instance_id,
17786        selected_for_split_flag, asd_id
17787       ) VALUES (
17788        l_tiid_tab(i), 1, l_titas_id_tab(i),
17789        l_tital_id_tab(i), l_tikle_id_tab(i), p_trans_type,
17790        l_tiline_number_tab(i), l_tiinstance_number_ib_tab(i), l_tiobject_id1_new_tab(i),
17791        l_tiobject_id2_new_tab(i), l_tijtot_object_code_new_tab(i), l_tiobject_id1_old_tab(i),
17792        l_tiobject_id2_old_tab(i), l_tijtot_object_code_old_tab(i), l_tiinventory_org_id_tab(i),
17793        l_tiserial_number_tab(i), l_timfg_serial_number_yn_tab(i), l_tiinventory_item_id_tab(i),
17794        l_tiinv_master_org_id_tab(i), l_tiattribute_category_tab(i), l_tiattribute1_tab(i),
17795        l_tiattribute2_tab(i), l_tiattribute3_tab(i), l_tiattribute4_tab(i),
17796        l_tiattribute5_tab(i), l_tiattribute6_tab(i), l_tiattribute7_tab(i),
17797        l_tiattribute8_tab(i), l_tiattribute9_tab(i), l_tiattribute10_tab(i),
17798        l_tiattribute11_tab(i), l_tiattribute12_tab(i), l_tiattribute13_tab(i),
17799        l_tiattribute14_tab(i), l_tiattribute15_tab(i), l_created_by,
17800        SYSDATE, l_last_updated_by, SYSDATE,
17801        l_last_update_login, l_tidnz_cle_id_tab(i), l_tiinstance_id_tab(i),
17802        l_tiselected_for_split_fl_tab(i), l_tiasd_id_tab(i)
17803       );
17804   END IF;
17805 EXCEPTION WHEN OTHERS THEN
17806 
17807   x_return_status := OKL_API.G_RET_STS_ERROR;
17808   /*OKL_API.set_message(p_app_name => 'OKL',
17809                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
17810                       p_token1 => 'ASSET_NUMBER',
17811                       p_token1_value => 'insert_okl_txl_itm_insts');*/
17812     /* DEBUG */
17813   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
17814       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
17815     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing insert_okl_txl_itm_insts:l_tiid_tab.count=' || l_tiid_tab.COUNT || ' ...');
17816   END IF;
17817   IF (l_tiid_tab.COUNT > 0) THEN
17818   FOR i IN l_tiid_tab.first..l_tiid_tab.last
17819   LOOP
17820     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
17821           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiid_tab('||i||')=' || l_tiid_tab(i));
17822       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_titas_id_tab('||i||')=' || l_titas_id_tab(i));
17823       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tital_id_tab('||i||')=' || l_tital_id_tab(i));
17824       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tikle_id_tab('||i||')=' || l_tikle_id_tab(i));
17825       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiline_number_tab('||i||')=' || l_tiline_number_tab(i));
17826       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiinstance_number_ib_tab('||i||')=' || l_tiinstance_number_ib_tab(i));
17827       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiobject_id1_new_tab('||i||')=' || l_tiobject_id1_new_tab(i));
17828       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiobject_id2_new_tab('||i||')=' || l_tiobject_id2_new_tab(i));
17829       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tijtot_object_code_new_tab('||i||')=' || l_tijtot_object_code_new_tab(i));
17830       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiobject_id1_old_tab('||i||')=' || l_tiobject_id1_old_tab(i));
17831       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiobject_id2_old_tab('||i||')=' || l_tiobject_id2_old_tab(i));
17832       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tijtot_object_code_old_tab('||i||')=' || l_tijtot_object_code_old_tab(i));
17833       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiinventory_org_id_tab('||i||')=' || l_tiinventory_org_id_tab(i));
17834       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiserial_number_tab('||i||')=' || l_tiserial_number_tab(i));
17835       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_timfg_serial_number_yn_tab('||i||')=' || l_timfg_serial_number_yn_tab(i));
17836       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiinventory_item_id_tab('||i||')=' || l_tiinventory_item_id_tab(i));
17837       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiinv_master_org_id_tab('||i||')=' || l_tiinv_master_org_id_tab(i));
17838       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute_category_tab('||i||')=' || l_tiattribute_category_tab(i));
17839       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute1_tab('||i||')=' || l_tiattribute1_tab(i));
17840       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute2_tab('||i||')=' || l_tiattribute2_tab(i));
17841       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute3_tab('||i||')=' || l_tiattribute3_tab(i));
17842       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute4_tab('||i||')=' || l_tiattribute4_tab(i));
17843       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute5_tab('||i||')=' || l_tiattribute5_tab(i));
17844       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute6_tab('||i||')=' || l_tiattribute6_tab(i));
17845       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute7_tab('||i||')=' || l_tiattribute7_tab(i));
17846       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute8_tab('||i||')=' || l_tiattribute8_tab(i));
17847       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute9_tab('||i||')=' || l_tiattribute9_tab(i));
17848       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute10_tab('||i||')=' || l_tiattribute10_tab(i));
17849       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute11_tab('||i||')=' || l_tiattribute11_tab(i));
17850       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute12_tab('||i||')=' || l_tiattribute12_tab(i));
17851       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute13_tab('||i||')=' || l_tiattribute13_tab(i));
17852       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute14_tab('||i||')=' || l_tiattribute14_tab(i));
17853       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute15_tab('||i||')=' || l_tiattribute15_tab(i));
17854       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tidnz_cle_id_tab('||i||')=' || l_tidnz_cle_id_tab(i));
17855       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiinstance_id_tab('||i||')=' || l_tiinstance_id_tab(i));
17856       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiselected_for_split_fl_tab('||i||')=' || l_tiselected_for_split_fl_tab(i));
17857       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiasd_id_tab('||i||')=' || l_tiasd_id_tab(i));
17858     END IF;
17859   END LOOP;
17860   END IF;
17861 
17862   RAISE OKC_API.G_EXCEPTION_ERROR;
17863 
17864 END;  /* insert_okl_txl_itm_insts */
17865 
17866 PROCEDURE get_orig_depreciation_cost( p_fa_cost IN NUMBER,
17867                                       x_original_cost OUT NOCOPY NUMBER,
17868                                       x_depreciable_cost OUT NOCOPY NUMBER) IS
17869 l_func_currency             VARCHAR2(15);
17870 l_k_currency                VARCHAR2(15);
17871 x_contract_currency         VARCHAR2(15);
17872 x_currency_conversion_type  okl_txl_assets_b.currency_conversion_type%TYPE;
17873 x_currency_conversion_rate  okl_txl_assets_b.currency_conversion_rate%TYPE;
17874 x_currency_conversion_date  okl_txl_assets_b.currency_conversion_date%TYPE;
17875 l_converted_cost            NUMBER;
17876 BEGIN
17877   IF (G_DEBUG_ENABLED = 'Y') THEN
17878     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
17879   END IF;
17880   l_func_currency := OKL_ACCOUNTING_UTIL.get_func_curr_code;
17881   l_k_currency    := l_contract_currency;
17882 
17883   IF (l_func_currency = l_k_currency)  THEN
17884      x_original_cost := p_fa_cost;
17885      x_depreciable_cost :=  p_fa_cost;
17886   ELSE
17887      IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
17888             OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'p_khr_id='||l_copied_id || ' p_from_currency='||l_func_currency || ' p_transaction_date='||l_contract_start_date);
17889      END IF;
17890      okl_accounting_util.convert_to_contract_currency(
17891                           p_khr_id                    => l_copied_id,
17892                           p_from_currency             => l_func_currency,
17893                           p_transaction_date          => l_contract_start_date,
17894                           p_amount                    => p_fa_cost,
17895                           x_contract_currency         => x_contract_currency,
17896                           x_currency_conversion_type  => x_currency_conversion_type,
17897                           x_currency_conversion_rate  => x_currency_conversion_rate,
17898                           x_currency_conversion_date  => x_currency_conversion_date,
17899                           x_converted_amount          => l_converted_cost);
17900           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
17901                       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'p_fa_cost='|| p_fa_cost || ' l_converted_cost='||l_converted_cost);
17902           END IF;
17903           IF (p_fa_cost >= 0) AND (l_converted_cost < 0) THEN
17904                 --currency conversion rate was not found in Oracle GL
17905                 OKC_API.set_message(p_app_name     => 'OKL_COPY_CONTRACT_PVT',
17906                                p_msg_name     => 'OKL_LLA_CONV_RATE_NOT_FOUND',
17907                                p_token1       => 'FROM_CURRENCY',
17908                                p_token1_value => x_contract_currency,
17909                                p_token2       => 'TO_CURRENCY',
17910                                p_token2_value => l_func_currency,
17911                                p_token3       => 'CONVERSION_TYPE',
17912                                p_token3_value => x_currency_conversion_type,
17913                                p_token4       => 'CONVERSION_DATE',
17914                                p_token4_value => TO_CHAR(x_currency_conversion_date,'DD-MON-YYYY'));
17915                 RAISE OKL_API.G_EXCEPTION_ERROR;
17916           END IF;
17917           x_original_cost := l_converted_cost;
17918           x_depreciable_cost :=  l_converted_cost;
17919     END IF;
17920 
17921 END; /* get_orig_depreciation_cost */
17922 
17923 PROCEDURE get_deprn_details(p_deprn_method_code IN fa_books.deprn_method_code%TYPE,
17924                             p_life_in_months IN fa_books.life_in_months%TYPE,
17925                             p_adjusted_rate IN fa_books.adjusted_rate%TYPE, --vthiruva bug#4439068.
17926                             x_deprn_rate OUT NOCOPY fa_books.adjusted_rate%TYPE,
17927                             x_life_in_months OUT NOCOPY fa_books.life_in_months%TYPE)
17928 IS
17929     --cursors
17930     CURSOR l_life_in_months_csr (p_deprn_method IN VARCHAR2,
17931                                  p_life_in_months IN NUMBER) IS
17932     SELECT 'Y'
17933     FROM   fa_methods
17934     WHERE  method_code = p_deprn_method
17935     AND    life_in_months = p_life_in_months
17936     AND    life_in_months IS NOT NULL;
17937 
17938     CURSOR l_rate_csr (p_deprn_method IN VARCHAR2,
17939                        p_rate         IN NUMBER) IS
17940     SELECT 'Y'
17941     FROM   fa_flat_rates ffr,
17942            fa_methods    fm
17943     WHERE  fm.method_code     = p_deprn_method
17944     AND    ffr.method_id      = fm.method_id
17945     AND    ffr.adjusted_rate  = p_rate
17946     AND    ffr.adjusting_rate  = 0;
17947 
17948     l_life_in_months_exists VARCHAR2(1);
17949 
17950     l_rate_exists VARCHAR2(1);
17951 
17952 BEGIN
17953       --logic
17954       l_life_in_months_exists := 'N';
17955       OPEN l_life_in_months_csr(p_deprn_method   => p_deprn_method_code,
17956                                 p_life_in_months => p_life_in_months);
17957       FETCH l_life_in_months_csr INTO l_life_in_months_exists;
17958       IF l_life_in_months_csr%NOTFOUND THEN
17959           NULL;
17960       END IF;
17961       CLOSE l_life_in_months_csr;
17962 
17963       IF l_life_in_months_exists = 'Y' THEN
17964           x_life_in_months := p_life_in_months;
17965           x_deprn_rate     := NULL;
17966       ELSIF l_life_in_months_exists = 'N' THEN
17967           l_rate_exists := 'N';
17968           OPEN l_rate_csr (p_deprn_method => p_deprn_method_code,
17969                            p_rate         => p_adjusted_rate);
17970           FETCH l_rate_csr INTO l_rate_exists;
17971           IF l_rate_csr%NOTFOUND THEN
17972              NULL;
17973           END IF;
17974           CLOSE l_rate_csr;
17975           IF l_rate_exists = 'Y' THEN
17976               x_deprn_rate     := p_adjusted_rate;
17977               x_life_in_months := NULL;
17978           END IF;
17979       END IF;
17980 
17981 END; /* get_deprn_details */
17982 
17983 PROCEDURE get_salvage_value(
17984         p_salvage_value IN fa_books.salvage_value%TYPE,
17985         p_percent_salvage_value IN fa_books.percent_salvage_value%TYPE,
17986         x_salvage_value OUT NOCOPY fa_books.salvage_value%TYPE,
17987         x_percent_salvage_value OUT NOCOPY fa_books.percent_salvage_value%TYPE) IS
17988 
17989 l_func_currency             VARCHAR2(15);
17990 l_k_currency                VARCHAR2(15);
17991 x_contract_currency         VARCHAR2(15);
17992 x_currency_conversion_type  okl_txl_assets_b.currency_conversion_type%TYPE;
17993 x_currency_conversion_rate  okl_txl_assets_b.currency_conversion_rate%TYPE;
17994 x_currency_conversion_date  okl_txl_assets_b.currency_conversion_date%TYPE;
17995 l_salvage_value            NUMBER;
17996 BEGIN
17997   l_func_currency := OKL_ACCOUNTING_UTIL.get_func_curr_code;
17998   l_k_currency    := l_contract_currency;
17999 
18000   IF (p_percent_salvage_value IS NULL) THEN
18001    IF (l_k_currency <> l_func_currency) THEN
18002      x_salvage_value := NULL;
18003      okl_accounting_util.convert_to_contract_currency(
18004                           p_khr_id                    => l_copied_id,
18005                           p_from_currency             => l_func_currency,
18006                           p_transaction_date          => l_contract_start_date,
18007                           p_amount                    => p_salvage_value,
18008                           x_contract_currency         => x_contract_currency,
18009                           x_currency_conversion_type  => x_currency_conversion_type,
18010                           x_currency_conversion_rate  => x_currency_conversion_rate,
18011                           x_currency_conversion_date  => x_currency_conversion_date,
18012                           x_converted_amount          => l_salvage_value);
18013           IF (p_salvage_value >= 0) AND (l_salvage_value < 0) THEN
18014                 --currency conversion rate was not found in Oracle GL
18015                 OKC_API.set_message(p_app_name     => 'OKL_COPY_CONTRACT_PVT',
18016                                p_msg_name     => 'OKL_LLA_CONV_RATE_NOT_FOUND',
18017                                p_token1       => 'FROM_CURRENCY',
18018                                p_token1_value => x_contract_currency,
18019                                p_token2       => 'TO_CURRENCY',
18020                                p_token2_value => l_func_currency,
18021                                p_token3       => 'CONVERSION_TYPE',
18022                                p_token3_value => x_currency_conversion_type,
18023                                p_token4       => 'CONVERSION_DATE',
18024                                p_token4_value => TO_CHAR(x_currency_conversion_date,'DD-MON-YYYY'));
18025                 RAISE OKL_API.G_EXCEPTION_ERROR;
18026           END IF;
18027           x_salvage_value := l_salvage_value;
18028           --x_percent_salvage_value := null;
18029         ELSE
18030           x_salvage_value :=  p_salvage_value;
18031           --x_percent_salvage_value := null;
18032         END IF;
18033     ELSE
18034      x_percent_salvage_value := p_percent_salvage_value * 100;
18035     END IF;
18036 
18037 END; /* get_salvage_value */
18038 
18039 PROCEDURE insert_okl_trx_assets_3(p_old_id IN okc_k_headers_b.id%TYPE,
18040                            p_new_id IN okc_k_headers_b.id%TYPE) IS
18041 CURSOR c27(p_id NUMBER) IS
18042 SELECT
18043   fa.asset_id ID1,
18044   '#' ID2,
18045   fa.asset_number NAME,
18046   fat.description DESCRIPTION,
18047   fa.Asset_Id ASSET_ID,
18048   fa.Asset_Number ASSET_NUMBER,
18049   fb.book_type_code BOOK_TYPE_CODE,
18050   fb.life_in_months LIFE_IN_MONTHS,
18051   fb.original_cost ORIGINAL_COST,
18052   fb.cost COST,
18053   fb.adjusted_cost ADJUSTED_COST,
18054   fa.tag_number TAG_NUMBER,
18055   fa.current_units CURRENT_UNITS,
18056   fa.serial_number SERIAL_NUMBER,
18057   fb.reval_ceiling REVAL_CEILING,
18058   fa.new_used NEW_USED,
18059   fb.date_placed_in_service IN_SERVICE_DATE,
18060   fa.manufacturer_name MANUFACTURER_NAME,
18061   fa.model_number MODEL_NUMBER,
18062   fa.asset_type ASSET_TYPE,
18063   fb.salvage_value SALVAGE_VALUE,
18064   fb.percent_salvage_value PERCENT_SALVAGE_VALUE,
18065   fa.asset_category_id DEPRECIATION_CATEGORY,
18066   fb.deprn_start_date DEPR_START_DATE,
18067   fb.deprn_method_code DEPRN_METHOD_CODE,
18068   fb.rate_adjustment_factor RATE_ADJUSTMENT_FACTOR,
18069   fb.basic_rate BASIC_RATE,
18070   fb.adjusted_rate ADJUSTED_RATE,
18071   fb.Date_effective START_DATE_ACTIVE,
18072   fb.Date_ineffective END_DATE_ACTIVE,
18073   DECODE(SIGN(TRUNC(SYSDATE)-NVL(fb.date_effective,TRUNC(SYSDATE))),-1,'I', DECODE(SIGN(TRUNC(SYSDATE) - NVL(fb.date_ineffective,TRUNC(SYSDATE))), 1,'I','A ')) STATUS,
18074   NULL PRIMARY_UOM_CODE,
18075   fb.recoverable_cost RECOVERABLE_COST,
18076   fbc.org_id ORG_ID,
18077   fbc.set_of_books_id SET_OF_BOOKS_ID,
18078   fa.property_type_code PROPERTY_TYPE_CODE,
18079   fa.property_1245_1250_code PROPERTY_1245_1250_CODE,
18080   fa.in_use_flag IN_USE_FLAG,
18081   fa.owned_leased OWNED_LEASED,
18082   fa.inventorial INVENTORIAL,
18083   fa.ASSET_KEY_CCID ASSET_KEY_CCID,
18084   fbc.book_class book_class ,
18085   b.id,
18086   b.cle_id
18087 FROM FA_BOOK_CONTROLS FBC,
18088      FA_BOOKS FB,
18089      FA_ADDITIONS_TL FAT,
18090      FA_ADDITIONS_B FA ,
18091      okc_k_items c,
18092      okc_k_lines_b b
18093 WHERE
18094 fbc.book_type_code = fb.book_type_code
18095 AND NVL(fbc.date_ineffective,SYSDATE+1) > SYSDATE
18096 AND fb.asset_id = fa.asset_id
18097 AND fb.transaction_header_id_out IS NULL
18098 AND fat.asset_id = fa.asset_id
18099 AND fat.LANGUAGE = USERENV('LANG')
18100 AND fa.asset_id = TO_CHAR(c.object1_id1) --for LSE_ID = 42
18101 AND c.cle_id = b.id
18102 AND c.object1_id1 IS NOT NULL
18103 AND c.object1_id2 IS NOT NULL
18104 AND b.lse_id = 42
18105 AND b.dnz_chr_id=p_id
18106 AND c.dnz_chr_id=p_id
18107 AND fbc.book_class IN ('CORPORATE', 'TAX')
18108 ORDER BY b.cle_id;
18109 
18110 
18111 
18112 CURSOR c_base_language IS
18113   SELECT language_code
18114   FROM   fnd_languages
18115   WHERE installed_flag = 'B';
18116 
18117 CURSOR c_languages IS
18118   SELECT language_code
18119   FROM   fnd_languages
18120   WHERE installed_flag IN ('B','I');
18121 
18122 -- Bug# 5591618
18123 /*
18124 Changed the cursor to consider the try_id of 'Internal Asset Creation' for US
18125 language. The base language could be different in different instances and
18126 the cursor returns null if the base language is other than U.S lang.
18127 This resulted in try_id turning 1 which is not a valid try_id and therefore
18128 not able to activate a copied contract.
18129 */
18130 
18131 CURSOR c_try_id IS
18132 SELECT id
18133 FROM   okl_trx_types_tl
18134 WHERE  name = 'Internal Asset Creation'
18135 AND    LANGUAGE = 'US';
18136 
18137 --Bug# 5591618
18138 /*
18139 --CURSOR c_try_id IS
18140 --SELECT a.id
18141 --FROM   okl_trx_types_tl a,
18142        --fnd_languages b
18143 --WHERE  a.name = 'Internal Asset Creation'
18144 --AND    a.LANGUAGE = b.language_code
18145 --AND    b.installed_flag = 'B';
18146 */
18147 
18148 CURSOR c_location_id(p_asset_id IN fa_additions_b.asset_id%TYPE,
18149                      p_book_type_code IN fa_books.book_type_code%TYPE) IS
18150 SELECT location_id
18151 FROM   fa_distribution_history
18152 WHERE  asset_id = p_asset_id
18153 AND    book_type_code = p_book_type_code
18154 AND    transaction_header_id_out IS NULL
18155 AND    ROWNUM < 2;
18156 
18157     TYPE l_ID1_type IS TABLE OF fa_additions_b.asset_id%TYPE INDEX BY BINARY_INTEGER;
18158     TYPE l_ID2_type IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
18159     TYPE l_NAME_type IS TABLE OF fa_additions_b.asset_number%TYPE INDEX BY BINARY_INTEGER;
18160     TYPE l_DESCRIPTION_type IS TABLE OF fa_additions_tl.description%TYPE INDEX BY BINARY_INTEGER;
18161     TYPE l_ASSET_ID_type IS TABLE OF fa_additions_b.asset_id%TYPE INDEX BY BINARY_INTEGER;
18162     TYPE l_ASSET_NUMBER_type IS TABLE OF fa_additions_b.asset_number%TYPE INDEX BY BINARY_INTEGER;
18163     TYPE l_BOOK_TYPE_CODE_type IS TABLE OF fa_books.book_type_code%TYPE INDEX BY BINARY_INTEGER;
18164     TYPE l_LIFE_IN_MONTHS_type IS TABLE OF fa_books.life_in_months%TYPE INDEX BY BINARY_INTEGER;
18165     TYPE l_ORIGINAL_COST_type IS TABLE OF fa_books.original_cost%TYPE INDEX BY BINARY_INTEGER;
18166     TYPE l_COST_type IS TABLE OF fa_books.cost%TYPE INDEX BY BINARY_INTEGER;
18167     TYPE l_ADJUSTED_COST_type IS TABLE OF fa_books.adjusted_cost%TYPE INDEX BY BINARY_INTEGER;
18168     TYPE l_TAG_NUMBER_type IS TABLE OF fa_additions_b.tag_number%TYPE INDEX BY BINARY_INTEGER;
18169     TYPE l_CURRENT_UNITS_type IS TABLE OF fa_additions_b.current_units%TYPE INDEX BY BINARY_INTEGER;
18170     TYPE l_SERIAL_NUMBER_type IS TABLE OF fa_additions_b.serial_number%TYPE INDEX BY BINARY_INTEGER;
18171     TYPE l_REVAL_CEILING_type IS TABLE OF fa_books.reval_ceiling%TYPE INDEX BY BINARY_INTEGER;
18172     TYPE l_NEW_USED_type IS TABLE OF fa_additions_b.new_used%TYPE INDEX BY BINARY_INTEGER;
18173     TYPE l_IN_SERVICE_DATE_type IS TABLE OF fa_books.date_placed_in_service%TYPE INDEX BY BINARY_INTEGER;
18174     TYPE l_MANUFACTURER_NAME_type IS TABLE OF fa_additions_b.manufacturer_name%TYPE INDEX BY BINARY_INTEGER;
18175     TYPE l_MODEL_NUMBER_type IS TABLE OF fa_additions_b.model_number%TYPE INDEX BY BINARY_INTEGER;
18176     TYPE l_ASSET_TYPE_type IS TABLE OF fa_additions_b.asset_type%TYPE INDEX BY BINARY_INTEGER;
18177     TYPE l_SALVAGE_VALUE_type IS TABLE OF fa_books.salvage_value%TYPE INDEX BY BINARY_INTEGER;
18178     TYPE l_PERCENT_SALVAGE_VALUE_type IS TABLE OF fa_books.percent_salvage_value%TYPE INDEX BY BINARY_INTEGER;
18179     TYPE l_DEPRECIATION_CATEGORY_type IS TABLE OF fa_additions_b.asset_category_id%TYPE INDEX BY BINARY_INTEGER;
18180     TYPE l_DEPR_START_DATE_type IS TABLE OF fa_books.deprn_start_date%TYPE INDEX BY BINARY_INTEGER;
18181     TYPE l_DEPRN_METHOD_CODE_type IS TABLE OF fa_books.deprn_method_code%TYPE INDEX BY BINARY_INTEGER;
18182     TYPE l_RATE_ADJUSTMENT_FACTOR_type IS TABLE OF fa_books.rate_adjustment_factor%TYPE INDEX BY BINARY_INTEGER;
18183     TYPE l_BASIC_RATE_type IS TABLE OF fa_books.basic_rate%TYPE INDEX BY BINARY_INTEGER;
18184     TYPE l_ADJUSTED_RATE_type IS TABLE OF fa_books.adjusted_rate%TYPE INDEX BY BINARY_INTEGER;
18185     TYPE l_START_DATE_ACTIVE_type IS TABLE OF fa_books.date_effective%TYPE INDEX BY BINARY_INTEGER;
18186     TYPE l_END_DATE_ACTIVE_type IS TABLE OF fa_books.date_ineffective%TYPE INDEX BY BINARY_INTEGER;
18187     TYPE l_STATUS_type IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
18188     TYPE l_PRIMARY_UOM_CODE_type IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
18189     TYPE l_RECOVERABLE_COST_type IS TABLE OF fa_books.recoverable_cost%TYPE INDEX BY BINARY_INTEGER;
18190     TYPE l_ORG_ID_type IS TABLE OF fa_book_controls.org_id%TYPE INDEX BY BINARY_INTEGER;
18191     TYPE l_SET_OF_BOOKS_ID_type IS TABLE OF fa_book_controls.set_of_books_id%TYPE INDEX BY BINARY_INTEGER;
18192     TYPE l_PROPERTY_TYPE_CODE_type IS TABLE OF fa_additions_b.property_type_code%TYPE INDEX BY BINARY_INTEGER;
18193     TYPE l_PROPERTY_1245_1250_CODE_type IS TABLE OF fa_additions_b.property_1245_1250_code%TYPE INDEX BY BINARY_INTEGER;
18194     TYPE l_IN_USE_FLAG_type IS TABLE OF fa_additions_b.in_use_flag%TYPE INDEX BY BINARY_INTEGER;
18195     TYPE l_OWNED_LEASED_type IS TABLE OF fa_additions_b.owned_leased%TYPE INDEX BY BINARY_INTEGER;
18196     TYPE l_INVENTORIAL_type IS TABLE OF fa_additions_b.inventorial%TYPE INDEX BY BINARY_INTEGER;
18197     TYPE l_ASSET_KEY_CCID_type IS TABLE OF fa_additions_b.asset_key_ccid%TYPE INDEX BY BINARY_INTEGER;
18198     TYPE l_book_class_type IS TABLE OF fa_book_controls.book_class%TYPE INDEX BY BINARY_INTEGER;
18199     TYPE l_id_type IS TABLE OF okc_k_lines_b.id%TYPE INDEX BY BINARY_INTEGER;
18200     TYPE l_cle_id_type IS TABLE OF okc_k_lines_b.cle_id%TYPE INDEX BY BINARY_INTEGER;
18201 
18202     TYPE l_lang_tab_type IS TABLE OF fnd_languages.language_code%TYPE INDEX BY BINARY_INTEGER;
18203 
18204     l_ID1_tab l_ID1_type;
18205     l_ID2_tab l_ID2_type;
18206     l_NAME_local_tab l_NAME_type;
18207     l_DESCRIPTION_tab l_DESCRIPTION_type;
18208     l_ASSET_ID_tab l_ASSET_ID_type;
18209     l_ASSET_NUMBER_tab l_ASSET_NUMBER_type;
18210     l_BOOK_TYPE_CODE_tab l_BOOK_TYPE_CODE_type;
18211     l_LIFE_IN_MONTHS_tab l_LIFE_IN_MONTHS_type;
18212     l_ORIGINAL_COST_tab l_ORIGINAL_COST_type;
18213     l_COST_tab l_COST_type;
18214     l_ADJUSTED_COST_tab l_ADJUSTED_COST_type;
18215     l_TAG_NUMBER_tab l_TAG_NUMBER_type;
18216     l_CURRENT_UNITS_tab l_CURRENT_UNITS_type;
18217     l_SERIAL_NUMBER_tab l_SERIAL_NUMBER_type;
18218     l_REVAL_CEILING_tab l_REVAL_CEILING_type;
18219     l_NEW_USED_tab l_NEW_USED_type;
18220     l_IN_SERVICE_DATE_tab l_IN_SERVICE_DATE_type;
18221     l_MANUFACTURER_NAME_tab l_MANUFACTURER_NAME_type;
18222     l_MODEL_NUMBER_tab l_MODEL_NUMBER_type;
18223     l_ASSET_TYPE_tab l_ASSET_TYPE_type;
18224     l_SALVAGE_VALUE_tab l_SALVAGE_VALUE_type;
18225     l_PERCENT_SALVAGE_VALUE_tab l_PERCENT_SALVAGE_VALUE_type;
18226     l_DEPRECIATION_CATEGORY_tab l_DEPRECIATION_CATEGORY_type;
18227     l_DEPR_START_DATE_tab l_DEPR_START_DATE_type;
18228     l_DEPRN_METHOD_CODE_tab l_DEPRN_METHOD_CODE_type;
18229     l_RATE_ADJUSTMENT_FACTOR_tab l_RATE_ADJUSTMENT_FACTOR_type;
18230     l_BASIC_RATE_tab l_BASIC_RATE_type;
18231     l_ADJUSTED_RATE_tab l_ADJUSTED_RATE_type;
18232     l_START_DATE_ACTIVE_tab l_START_DATE_ACTIVE_type;
18233     l_END_DATE_ACTIVE_tab l_END_DATE_ACTIVE_type;
18234     l_STATUS_tab l_STATUS_type;
18235     l_PRIMARY_UOM_CODE_tab l_PRIMARY_UOM_CODE_type;
18236     l_RECOVERABLE_COST_tab l_RECOVERABLE_COST_type;
18237     l_ORG_ID_tab l_ORG_ID_type;
18238     l_SET_OF_BOOKS_ID_tab l_SET_OF_BOOKS_ID_type;
18239     l_PROPERTY_TYPE_CODE_tab l_PROPERTY_TYPE_CODE_type;
18240     l_PROPERTY_1245_1250_CODE_tab l_PROPERTY_1245_1250_CODE_type;
18241     l_IN_USE_FLAG_tab l_IN_USE_FLAG_type;
18242     l_OWNED_LEASED_tab l_OWNED_LEASED_type;
18243     l_INVENTORIAL_tab l_INVENTORIAL_type;
18244     l_ASSET_KEY_CCID_tab l_ASSET_KEY_CCID_type;
18245     l_book_class_tab l_book_class_type;
18246     l_id_local_tab l_id_type;
18247 
18248     l_okl_trx_counter3 NUMBER := 1;
18249 
18250     l_ID1_tab2 l_ID1_type;
18251     l_ID2_tab2 l_ID2_type;
18252     l_NAME_local_tab2 l_NAME_type;
18253     l_DESCRIPTION_tab2 l_DESCRIPTION_type;
18254     l_ASSET_ID_tab2 l_ASSET_ID_type;
18255     l_ASSET_NUMBER_tab2 l_ASSET_NUMBER_type;
18256     l_BOOK_TYPE_CODE_tab2 l_BOOK_TYPE_CODE_type;
18257     l_LIFE_IN_MONTHS_tab2 l_LIFE_IN_MONTHS_type;
18258     l_ORIGINAL_COST_tab2 l_ORIGINAL_COST_type;
18259     l_COST_tab2 l_COST_type;
18260     l_ADJUSTED_COST_tab2 l_ADJUSTED_COST_type;
18261     l_TAG_NUMBER_tab2 l_TAG_NUMBER_type;
18262     l_CURRENT_UNITS_tab2 l_CURRENT_UNITS_type;
18263     l_SERIAL_NUMBER_tab2 l_SERIAL_NUMBER_type;
18264     l_REVAL_CEILING_tab2 l_REVAL_CEILING_type;
18265     l_NEW_USED_tab2 l_NEW_USED_type;
18266     l_IN_SERVICE_DATE_tab2 l_IN_SERVICE_DATE_type;
18267     l_MANUFACTURER_NAME_tab2 l_MANUFACTURER_NAME_type;
18268     l_MODEL_NUMBER_tab2 l_MODEL_NUMBER_type;
18269     l_ASSET_TYPE_tab2 l_ASSET_TYPE_type;
18270     l_SALVAGE_VALUE_tab2 l_SALVAGE_VALUE_type;
18271     l_PERCENT_SALVAGE_VALUE_tab2 l_PERCENT_SALVAGE_VALUE_type;
18272     l_DEPRECIATION_CATEGORY_tab2 l_DEPRECIATION_CATEGORY_type;
18273     l_DEPR_START_DATE_tab2 l_DEPR_START_DATE_type;
18274     l_DEPRN_METHOD_CODE_tab2 l_DEPRN_METHOD_CODE_type;
18275     l_RATE_ADJUSTMENT_FACTOR_tab2 l_RATE_ADJUSTMENT_FACTOR_type;
18276     l_BASIC_RATE_tab2 l_BASIC_RATE_type;
18277     l_ADJUSTED_RATE_tab2 l_ADJUSTED_RATE_type;
18278     l_START_DATE_ACTIVE_tab2 l_START_DATE_ACTIVE_type;
18279     l_END_DATE_ACTIVE_tab2 l_END_DATE_ACTIVE_type;
18280     l_STATUS_tab2 l_STATUS_type;
18281     l_PRIMARY_UOM_CODE_tab2 l_PRIMARY_UOM_CODE_type;
18282     l_RECOVERABLE_COST_tab2 l_RECOVERABLE_COST_type;
18283     l_ORG_ID_tab2 l_ORG_ID_type;
18284     l_SET_OF_BOOKS_ID_tab2 l_SET_OF_BOOKS_ID_type;
18285     l_PROPERTY_TYPE_CODE_tab2 l_PROPERTY_TYPE_CODE_type;
18286     l_PROPERTY_1245_1250_CODE_tab2 l_PROPERTY_1245_1250_CODE_type;
18287     l_IN_USE_FLAG_tab2 l_IN_USE_FLAG_type;
18288     l_OWNED_LEASED_tab2 l_OWNED_LEASED_type;
18289     l_INVENTORIAL_tab2 l_INVENTORIAL_type;
18290     l_ASSET_KEY_CCID_tab2 l_ASSET_KEY_CCID_type;
18291     l_book_class_tab2 l_book_class_type;
18292     l_id_local_tab2 l_id_type;
18293     l_cle_id_tab2 l_cle_id_type;
18294 
18295   l_new_id NUMBER;
18296   l_t3id_tab l_tid_type;
18297 
18298     -- okl_txl_assets_tl
18299     l_tl2id_tab l_tlid_type;
18300     l_tl2description_tab l_tldescription_type;
18301     l_tl2language_tab l_tllanguage_type;
18302 
18303     l_txl_assets_tl_counter4 NUMBER := 1;
18304     l_lang_tab l_lang_tab_type;
18305     l_base_language fnd_languages.language_code%TYPE;
18306 
18307   l_orig_cost NUMBER;
18308   l_depreciable_cost NUMBER;
18309   l_deprn_rate fa_books.adjusted_rate%TYPE;
18310   l_life_in_months fa_books.life_in_months%TYPE;
18311   l_salvage_value fa_books.salvage_value%TYPE;
18312   l_percent_salvage_value fa_books.percent_salvage_value%TYPE;
18313 
18314   --okl_txd_assets_b
18315   l_db2id_tab l_dbid_type;
18316     l_db2tal_id_tab l_dbtal_id_type;
18317     l_db2line_detail_number_tab l_dbline_detail_number_type;
18318     l_db2asset_number_tab l_dbasset_number_type;
18319     l_db2quantity_tab l_dbquantity_type;
18320     l_db2cost_tab l_dbcost_type;
18321     l_db2tax_book_tab l_dbtax_book_type;
18322     l_db2life_in_months_tax_tab l_dblife_in_months_tax_type;
18323     l_db2deprn_method_tax_tab l_dbdeprn_method_tax_type;
18324     l_db2deprn_rate_tax_tab l_dbdeprn_rate_tax_type;
18325     l_db2salvage_value_tab l_dbsalvage_value_type;
18326 
18327     l_txd_assets_b_counter4 NUMBER := 1;
18328   l_new_tal_id NUMBER;
18329   l_new_line_number NUMBER;
18330   l_junk_cost NUMBER;
18331 
18332     -- okl_txd_assets_tl
18333     l_dl2id_tab l_dlid_type;
18334     l_dl2description_tab l_dldescription_type;
18335     l_dl2language_tab l_dllanguage_type;
18336 
18337     l_txd_assets_tl_counter4 NUMBER := 1;
18338 
18339     l_location_id NUMBER;
18340     l_new_asset_number fa_additions_b.asset_number%TYPE;
18341     l_tmp_okl_42_rec l_okl_k_lines_rec_type;
18342     l_tmp_itm_rec l_okc_k_items_rec_type;
18343 
18344     l_cle_id NUMBER;
18345     l_new_33_id NUMBER;
18346     l_tmp_okl_33_rec l_okl_k_lines_rec_type;
18347     l_tmp_okc_34_rec l_okc_k_items_rec_type;
18348     l_new_34_id NUMBER;
18349     l_asset_name_old okc_k_lines_tl.name%TYPE;
18350     l_multi_gaap_profile okl_txd_assets_b.tax_book%TYPE;
18351 
18352    --Added by dpsingh for LE Uptake
18353   CURSOR contract_num_csr (p_ctr_id1 NUMBER) IS
18354   SELECT  contract_number
18355   FROM OKC_K_HEADERS_B
18356   WHERE id = p_ctr_id1;
18357 
18358   l_cntrct_number          OKC_K_HEADERS_B.CONTRACT_NUMBER%TYPE;
18359   l_legal_entity_id NUMBER;
18360 
18361 BEGIN
18362   OPEN c_try_id;
18363   FETCH c_try_id INTO l_try_id;
18364   IF (c_try_id%NOTFOUND) THEN
18365     l_try_id := 1;
18366   END IF;
18367   CLOSE c_try_id;
18368 
18369   OPEN c_languages;
18370   FETCH c_languages bulk collect INTO
18371     l_lang_tab
18372   limit G_BULK_SIZE;
18373   CLOSE c_languages;
18374 
18375   FOR r IN c_base_language
18376   LOOP
18377     l_base_language := r.language_code;
18378   END LOOP;
18379 
18380   OPEN c27(p_old_id);
18381   LOOP
18382     FETCH c27 bulk collect INTO
18383      l_ID1_tab2, l_ID2_tab2, l_NAME_local_tab2,
18384      l_DESCRIPTION_tab2, l_ASSET_ID_tab2, l_ASSET_NUMBER_tab2,
18385      l_BOOK_TYPE_CODE_tab2, l_LIFE_IN_MONTHS_tab2, l_ORIGINAL_COST_tab2,
18386      l_COST_tab2, l_ADJUSTED_COST_tab2, l_TAG_NUMBER_tab2,
18387      l_CURRENT_UNITS_tab2, l_SERIAL_NUMBER_tab2, l_REVAL_CEILING_tab2,
18388      l_NEW_USED_tab2, l_IN_SERVICE_DATE_tab2, l_MANUFACTURER_NAME_tab2,
18389      l_MODEL_NUMBER_tab2, l_ASSET_TYPE_tab2, l_SALVAGE_VALUE_tab2,
18390      l_PERCENT_SALVAGE_VALUE_tab2, l_DEPRECIATION_CATEGORY_tab2, l_DEPR_START_DATE_tab2,
18391      l_DEPRN_METHOD_CODE_tab2, l_RATE_ADJUSTMENT_FACTOR_tab2, l_BASIC_RATE_tab2,
18392      l_ADJUSTED_RATE_tab2, l_START_DATE_ACTIVE_tab2, l_END_DATE_ACTIVE_tab2,
18393      l_STATUS_tab2, l_PRIMARY_UOM_CODE_tab2, l_RECOVERABLE_COST_tab2,
18394      l_ORG_ID_tab2, l_SET_OF_BOOKS_ID_tab2, l_PROPERTY_TYPE_CODE_tab2,
18395      l_PROPERTY_1245_1250_CODE_tab2, l_IN_USE_FLAG_tab2, l_OWNED_LEASED_tab2,
18396      l_INVENTORIAL_tab2, l_ASSET_KEY_CCID_tab2, l_book_class_tab2,
18397      l_id_local_tab2, l_cle_id_tab2
18398     limit G_BULK_SIZE;
18399     EXIT WHEN l_ID1_tab2.COUNT=0;
18400     FOR i IN l_ID1_tab2.first..l_ID1_tab2.last
18401     LOOP
18402       l_ID1_tab(l_okl_trx_counter3) := l_ID1_tab2(i);
18403       l_ID2_tab(l_okl_trx_counter3) := l_ID2_tab2(i);
18404       l_NAME_local_tab(l_okl_trx_counter3) := l_NAME_local_tab2(i);
18405       l_DESCRIPTION_tab(l_okl_trx_counter3) := l_DESCRIPTION_tab2(i);
18406       l_ASSET_ID_tab(l_okl_trx_counter3) := l_ASSET_ID_tab2(i);
18407       l_ASSET_NUMBER_tab(l_okl_trx_counter3) := l_ASSET_NUMBER_tab2(i);
18408       l_BOOK_TYPE_CODE_tab(l_okl_trx_counter3) := l_BOOK_TYPE_CODE_tab2(i);
18409       l_LIFE_IN_MONTHS_tab(l_okl_trx_counter3) := l_LIFE_IN_MONTHS_tab2(i);
18410       l_ORIGINAL_COST_tab(l_okl_trx_counter3) := l_ORIGINAL_COST_tab2(i);
18411       l_COST_tab(l_okl_trx_counter3) := l_COST_tab2(i);
18412       l_ADJUSTED_COST_tab(l_okl_trx_counter3) := l_ADJUSTED_COST_tab2(i);
18413       l_TAG_NUMBER_tab(l_okl_trx_counter3) := l_TAG_NUMBER_tab2(i);
18414       l_CURRENT_UNITS_tab(l_okl_trx_counter3) := l_CURRENT_UNITS_tab2(i);
18415       l_SERIAL_NUMBER_tab(l_okl_trx_counter3) := l_SERIAL_NUMBER_tab2(i);
18416       l_REVAL_CEILING_tab(l_okl_trx_counter3) := l_REVAL_CEILING_tab2(i);
18417       l_NEW_USED_tab(l_okl_trx_counter3) := l_NEW_USED_tab2(i);
18418       l_IN_SERVICE_DATE_tab(l_okl_trx_counter3) := l_IN_SERVICE_DATE_tab2(i);
18419       l_MANUFACTURER_NAME_tab(l_okl_trx_counter3) := l_MANUFACTURER_NAME_tab2(i);
18420       l_MODEL_NUMBER_tab(l_okl_trx_counter3) := l_MODEL_NUMBER_tab2(i);
18421       l_ASSET_TYPE_tab(l_okl_trx_counter3) := l_ASSET_TYPE_tab2(i);
18422       l_SALVAGE_VALUE_tab(l_okl_trx_counter3) := l_SALVAGE_VALUE_tab2(i);
18423       l_PERCENT_SALVAGE_VALUE_tab(l_okl_trx_counter3) := l_PERCENT_SALVAGE_VALUE_tab2(i);
18424       l_DEPRECIATION_CATEGORY_tab(l_okl_trx_counter3) := l_DEPRECIATION_CATEGORY_tab2(i);
18425       l_DEPR_START_DATE_tab(l_okl_trx_counter3) := l_DEPR_START_DATE_tab2(i);
18426       l_DEPRN_METHOD_CODE_tab(l_okl_trx_counter3) := l_DEPRN_METHOD_CODE_tab2(i);
18427       l_RATE_ADJUSTMENT_FACTOR_tab(l_okl_trx_counter3) := l_RATE_ADJUSTMENT_FACTOR_tab2(i);
18428       l_BASIC_RATE_tab(l_okl_trx_counter3) := l_BASIC_RATE_tab2(i);
18429       l_ADJUSTED_RATE_tab(l_okl_trx_counter3) := l_ADJUSTED_RATE_tab2(i);
18430       l_START_DATE_ACTIVE_tab(l_okl_trx_counter3) := l_START_DATE_ACTIVE_tab2(i);
18431       l_END_DATE_ACTIVE_tab(l_okl_trx_counter3) := l_END_DATE_ACTIVE_tab2(i);
18432       l_STATUS_tab(l_okl_trx_counter3) := l_STATUS_tab2(i);
18433       l_PRIMARY_UOM_CODE_tab(l_okl_trx_counter3) := l_PRIMARY_UOM_CODE_tab2(i);
18434       l_RECOVERABLE_COST_tab(l_okl_trx_counter3) := l_RECOVERABLE_COST_tab2(i);
18435       l_ORG_ID_tab(l_okl_trx_counter3) := l_ORG_ID_tab2(i);
18436       l_SET_OF_BOOKS_ID_tab(l_okl_trx_counter3) := l_SET_OF_BOOKS_ID_tab2(i);
18437       l_PROPERTY_TYPE_CODE_tab(l_okl_trx_counter3) := l_PROPERTY_TYPE_CODE_tab2(i);
18438       l_PROPERTY_1245_1250_CODE_tab(l_okl_trx_counter3) := l_PROPERTY_1245_1250_CODE_tab2(i);
18439       l_IN_USE_FLAG_tab(l_okl_trx_counter3) := l_IN_USE_FLAG_tab2(i);
18440       l_OWNED_LEASED_tab(l_okl_trx_counter3) := l_OWNED_LEASED_tab2(i);
18441       l_INVENTORIAL_tab(l_okl_trx_counter3) := l_INVENTORIAL_tab2(i);
18442       l_ASSET_KEY_CCID_tab(l_okl_trx_counter3) := l_ASSET_KEY_CCID_tab2(i);
18443       l_book_class_tab(l_okl_trx_counter3) := l_book_class_tab2(i);
18444       l_ID_local_tab(l_okl_trx_counter3) := l_ID_local_tab2(i);
18445 
18446       -- Change id (which is same as kle_id)
18447       l_new_id := find_mapping_id(l_ID_local_tab(l_okl_trx_counter3));
18448         IF (l_new_id = -1) THEN
18449           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18450                       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR : Mapping id not found for ' || l_ID_local_tab(l_okl_trx_counter3));
18451           END IF;
18452           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
18453         END IF;
18454       l_ID_local_tab(l_okl_trx_counter3) := l_new_id;
18455 
18456       l_okl_trx_counter3 := l_okl_trx_counter3 + 1;
18457 
18458     END LOOP;
18459   END LOOP;
18460   CLOSE c27;
18461   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18462       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ID1_tab.count=' || l_ID1_tab.COUNT);
18463   END IF;
18464   IF (l_ID1_tab.COUNT > 0) THEN
18465   FOR i IN l_ID1_tab.first..l_ID1_tab.last
18466   LOOP
18467     IF (l_book_class_tab(i) = 'CORPORATE') THEN
18468       -- Populate okl_trx_assets
18469       l_t3id_tab(l_trx_assets_counter4) := okc_p_util.raw_to_number(sys_guid());
18470       -- Populate kle to tas_id mapping
18471       l_cle_mapping_tab(l_trx_assets_counter4).old_id := l_ID_local_tab(i); -- kle_id
18472       --l_cle_mapping_tab(l_trx_assets_counter4).new_id :=  l_t3id_tab(l_trx_assets_counter4);
18473       l_cle_mapping_tab(l_trx_assets_counter4).line_number :=  1;
18474 
18475       -- Populate okl_txl_assets_b
18476       l_tb2id_tab(l_trx_assets_counter4) := okc_p_util.raw_to_number(sys_guid());
18477       l_cle_mapping_tab(l_trx_assets_counter4).new_id :=  l_tb2id_tab(l_trx_assets_counter4);
18478       l_tb2object_version_number_tab(l_trx_assets_counter4) := 1;
18479       l_tb2tas_id_tab(l_trx_assets_counter4) := l_t3id_tab(l_trx_assets_counter4);
18480       -- id already changed earlier
18481       l_tb2kle_id_tab(l_trx_assets_counter4) := l_ID_local_tab(i);
18482 
18483       -- Store Tal id to kle_id mapping
18484       l_dbid_mapping_tab(l_tal_to_kle_counter).tal_id := l_tb2id_tab(l_trx_assets_counter4);
18485       l_dbid_mapping_tab(l_tal_to_kle_counter).kle_id := l_tb2kle_id_tab(l_trx_assets_counter4);
18486       l_tal_to_kle_counter := l_tal_to_kle_counter + 1;
18487 
18488       l_tb2dnz_khr_id_tab(l_trx_assets_counter4) := l_copied_id;
18489       l_tb2asset_number_tab(l_trx_assets_counter4) := l_ASSET_NUMBER_tab(i);
18490       -- Change asset_number AKP???
18491       /* Bug 4439068 */
18492       IF p_trans_type not in ('CRB', 'CRL', 'CSP', 'CRV', 'ALI') THEN
18493         l_new_asset_number := find_aid_mapping_id(l_tb2asset_number_tab(l_trx_assets_counter4));
18494         IF (l_new_asset_number <> '-1') THEN
18495           l_tb2asset_number_tab(l_trx_assets_counter4) := l_new_asset_number;
18496         END IF;
18497       END IF;
18498       /* Bug 4439068 */
18499 
18500       l_tb2line_number_tab(l_trx_assets_counter4) := 1;
18501       l_tb2tal_type_tab(l_trx_assets_counter4) := p_trans_type;
18502 
18503       -- Populate location_id
18504       OPEN c_location_id(l_asset_id_tab(i), l_BOOK_TYPE_CODE_tab(i));
18505       FETCH c_location_id
18506       INTO  l_location_id;
18507       IF (c_location_id%NOTFOUND) THEN
18508         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18509                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Location id not found for ' || l_asset_id_tab(i) || ' ' || l_BOOK_TYPE_CODE_tab(i));
18510         END IF;
18511         x_return_status := OKL_API.G_RET_STS_ERROR;
18512         CLOSE c_location_id;
18513         RAISE OKL_API.G_EXCEPTION_ERROR;
18514       END IF;
18515       CLOSE c_location_id;
18516       l_tb2fa_location_id_tab(l_trx_assets_counter4) := l_location_id;
18517 
18518       -- Todo AKP
18519 
18520       get_orig_depreciation_cost(l_COST_tab(i), l_orig_cost, l_depreciable_cost);
18521       l_tb2original_cost_tab(l_trx_assets_counter4) := l_orig_cost;
18522       l_tb2depreciation_cost_tab(l_trx_assets_counter4) := l_depreciable_cost;
18523       -- Bug 4636587
18524       IF (p_trans_type = 'CRB') THEN
18525         l_tb2fa_cost_tab(l_trx_assets_counter4) := l_depreciable_cost;
18526       ELSE
18527         l_tb2fa_cost_tab(l_trx_assets_counter4) := NULL;
18528       END IF;
18529 
18530       l_tb2current_units_tab(l_trx_assets_counter4) := l_CURRENT_UNITS_tab(i);
18531       l_tb2manufacturer_name_tab(l_trx_assets_counter4) := l_MANUFACTURER_NAME_tab(i);
18532       l_tmp_okl_42_rec := find_okl_k_lines_rec(l_id_local_tab(i));
18533       IF (l_tmp_okl_42_rec.year_built = OKC_API.G_MISS_NUM ) THEN
18534         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18535                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR: Mapping okl_k_lines_rec not found for ' || l_id_local_tab(i));
18536         END IF;
18537         RAISE OKL_API.G_EXCEPTION_ERROR;
18538       END IF;
18539 
18540       l_tb2year_manufactured_tab(l_trx_assets_counter4) := l_tmp_okl_42_rec.year_built;
18541       -- Todo AKP
18542 
18543       IF (l_NEW_USED_tab(i) = 'NEW' OR l_NEW_USED_tab(i) IS NULL) THEN
18544         l_tb2used_asset_yn_tab(l_trx_assets_counter4) := NULL;
18545       ELSE
18546         l_tb2used_asset_yn_tab(l_trx_assets_counter4) := 'Y';
18547       END IF;
18548 
18549       l_tb2tag_number_tab(l_trx_assets_counter4) := l_TAG_NUMBER_tab(i);
18550       l_tb2model_number_tab(l_trx_assets_counter4) := l_MODEL_NUMBER_tab(i);
18551       l_tb2corporate_book_tab(l_trx_assets_counter4) := l_BOOK_TYPE_CODE_tab(i);
18552       l_tb2in_service_date_tab(l_trx_assets_counter4) := l_IN_SERVICE_DATE_tab(i);
18553       l_tb2depreciation_id_tab(l_trx_assets_counter4) := l_DEPRECIATION_CATEGORY_tab(i);
18554       l_tb2deprn_method_tab(l_trx_assets_counter4) := l_DEPRN_METHOD_CODE_tab(i);
18555       -- Todo AKP
18556 
18557       get_deprn_details(l_DEPRN_METHOD_CODE_tab(i),
18558                         l_LIFE_IN_MONTHS_tab(i),
18559                         l_ADJUSTED_RATE_tab(i),
18560                         l_deprn_rate,
18561                         l_life_in_months);
18562       l_tb2deprn_rate_tab(l_trx_assets_counter4) := l_deprn_rate;
18563       l_tb2life_in_months_tab(l_trx_assets_counter4) := l_life_in_months;
18564 
18565       get_salvage_value(l_SALVAGE_VALUE_tab(i),
18566                         l_PERCENT_SALVAGE_VALUE_tab(i),
18567                         l_salvage_value,
18568                         l_percent_salvage_value);
18569       l_tb2salvage_value_tab(l_trx_assets_counter4) := l_salvage_value;
18570       l_tb2percent_salvage_value_tab(l_trx_assets_counter4) := l_percent_salvage_value;
18571 
18572       l_tb2asset_key_id_tab(l_trx_assets_counter4) := l_ASSET_KEY_CCID_tab(i);
18573       l_tb2fa_trx_date_tab(l_trx_assets_counter4) := NULL;
18574 
18575       -- Populate okl_trx_assets_tl
18576       FOR j IN l_lang_tab.first..l_lang_tab.last
18577       LOOP
18578         l_tl2id_tab(l_txl_assets_tl_counter4) := l_tb2id_tab(l_trx_assets_counter4);
18579         l_tl2description_tab(l_txl_assets_tl_counter4) := l_DESCRIPTION_tab(i);
18580         l_tl2language_tab(l_txl_assets_tl_counter4) := l_lang_tab(j);
18581 
18582         l_txl_assets_tl_counter4 := l_txl_assets_tl_counter4 + 1;
18583       END LOOP;
18584 
18585       l_trx_assets_counter4 := l_trx_assets_counter4 + 1;
18586     END IF;  /* if CORPORATE */
18587   END LOOP; /* end loop i */
18588   END IF; /* end if l_ID1_tab.count > 0*/
18589   sort_cle_mapping_tab;
18590   sort_dbid_mapping_tab;
18591 
18592   IF (l_ID1_tab.COUNT > 0) THEN
18593   l_multi_gaap_profile := OKL_SYSTEM_PARAMS_ALL_PUB.get_system_param_value(OKL_SYSTEM_PARAMS_ALL_PUB.G_RPT_PROD_BOOK_TYPE_CODE);
18594   IF (l_multi_gaap_profile IS NULL) THEN
18595     l_multi_gaap_profile := ' ';
18596   END IF;
18597   FOR i IN l_ID1_tab.first..l_ID1_tab.last
18598   LOOP
18599     IF (l_book_class_tab(i) = 'TAX') THEN
18600       IF ((l_BOOK_TYPE_CODE_tab(i) = l_multi_gaap_profile) AND
18601           p_trans_type NOT IN ('CRB', 'CRL')) THEN
18602         NULL;
18603       ELSE
18604       l_db2id_tab(l_txd_assets_b_counter4) := okc_p_util.raw_to_number(sys_guid());
18605       l_new_tal_id := find_cle_mapping_id(l_ID_local_tab(i));
18606       IF (l_new_tal_id = -1) THEN
18607         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18608                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR!!!!Mapping tal_id not found');
18609         END IF;
18610         RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
18611       END IF;
18612       l_db2tal_id_tab(l_txd_assets_b_counter4) := l_new_tal_id;
18613       --print('l_new_tal_id='|| l_new_tal_id);
18614       l_db2asset_number_tab(l_txd_assets_b_counter4) := l_ASSET_NUMBER_tab(i);
18615       /* Bug 4439068 */
18616       IF p_trans_type not in ('CRB', 'CRL', 'CSP', 'CRV', 'ALI') THEN
18617       IF (l_db2asset_number_tab(l_txd_assets_b_counter4) IS NOT NULL) THEN
18618         l_new_asset_number := find_aid_mapping_id(l_db2asset_number_tab(l_txd_assets_b_counter4));
18619         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18620                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_new_asset_number=' || l_new_asset_number);
18621         END IF;
18622         IF (l_new_asset_number <> '-1') THEN
18623           l_db2asset_number_tab(l_txd_assets_b_counter4) := l_new_asset_number;
18624         END IF;
18625       END IF;
18626       END IF;
18627       /* Bug 4439068 */
18628 
18629       l_new_line_number := find_cle_line_number(l_ID_local_tab(i));
18630       IF (l_new_line_number = -1) THEN
18631         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18632                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR!!!!Mapping line_number not found');
18633         END IF;
18634         RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
18635       END IF;
18636       l_db2line_detail_number_tab(l_txd_assets_b_counter4) := l_new_line_number;
18637 
18638       l_db2quantity_tab(l_txd_assets_b_counter4) := l_CURRENT_UNITS_tab(i);
18639 
18640       get_orig_depreciation_cost(l_COST_tab(i), l_orig_cost, l_junk_cost);
18641       l_db2cost_tab(l_txd_assets_b_counter4) := l_orig_cost;
18642       l_db2tax_book_tab(l_txd_assets_b_counter4) := l_BOOK_TYPE_CODE_tab(i);
18643       l_db2salvage_value_tab(l_txd_assets_b_counter4) := l_SALVAGE_VALUE_tab(i);
18644       l_db2deprn_method_tax_tab(l_txd_assets_b_counter4) := l_DEPRN_METHOD_CODE_tab(i);
18645 
18646       get_deprn_details(l_DEPRN_METHOD_CODE_tab(i),
18647                         l_LIFE_IN_MONTHS_tab(i),
18648                         l_ADJUSTED_RATE_tab(i),
18649                         l_deprn_rate,
18650                         l_life_in_months);
18651       l_db2deprn_rate_tax_tab(l_txd_assets_b_counter4) := l_deprn_rate;
18652       l_db2life_in_months_tax_tab(l_txd_assets_b_counter4) := l_life_in_months;
18653 
18654       -- Populate okl_txd_assets_tl
18655       FOR j IN l_lang_tab.first..l_lang_tab.last
18656       LOOP
18657         l_dl2id_tab(l_txd_assets_tl_counter4) := l_db2id_tab(l_txd_assets_b_counter4);
18658         l_dl2description_tab(l_txd_assets_tl_counter4) := l_DESCRIPTION_tab(i);
18659         l_dl2language_tab(l_txd_assets_tl_counter4) := l_lang_tab(j);
18660 
18661         l_txd_assets_tl_counter4 := l_txd_assets_tl_counter4 + 1;
18662       END LOOP;
18663 
18664       l_txd_assets_b_counter4 := l_txd_assets_b_counter4 + 1;
18665     END IF; /* if multi-gaap */
18666     END IF;  /* TAX */
18667   END LOOP;
18668   END IF;
18669 
18670   IF (l_ID1_tab.COUNT < 1) THEN
18671     -- LOAN or LOAN-REVOLVING and BOOKED case
18672     --l_loan_booked_condition := false;
18673     --l_loan_booked_condition := check_loan_booked_condition;
18674     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18675           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'In here. l_deal_type=' || l_deal_type || ' l_sts_code_orig=' || l_sts_code_orig);
18676         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_id_tab.count=' || l_id_tab.COUNT || ' l_sts_code_orig=' || l_sts_code_orig);
18677     END IF;
18678     IF (l_deal_type IN ('LOAN', 'LOAN-REVOLVING')
18679         -- 4911174
18680         AND l_sts_code_orig IN ('BOOKED','EVERGREEN','EXPIRED','TERMINATED')) THEN
18681       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18682               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_id_tab.count=' || l_id_tab.COUNT);
18683       END IF;
18684       IF (l_id_tab.count > 0) THEN
18685       FOR i IN l_id_tab.first..l_id_tab.last LOOP
18686         IF (l_lse_id_tab(i) = 42) THEN
18687           --print('Found 42: l_id_tab(' ||i || ')=' || l_id_tab(i) ||' l_name_tab('||i||')=' || l_name_tab(i));
18688           l_tmp_itm_rec := find_okc_k_items_rec(l_id_tab(i));
18689           --print('l_tmp_itm_rec.id object1_id1 object1_id2= ' || l_tmp_itm_rec.id || ':' || l_tmp_itm_rec.object1_id1 || ':' || l_tmp_itm_rec.object1_id2);
18690           IF (l_tmp_itm_rec.number_of_items = OKL_API.G_MISS_NUM ) THEN
18691             IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18692                           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR: Mapping okc_k_items rec not found for ' || l_id_tab(i));
18693             END IF;
18694             RAISE OKL_API.G_EXCEPTION_ERROR;
18695           END IF;
18696           IF ((l_tmp_itm_rec.object1_id1 IS NULL) AND
18697                (l_tmp_itm_rec.object1_id2 IS NULL)) THEN
18698             -- Populate okl_trx_assets
18699             --print('Yes object1_id1 and id2 null...');
18700             l_t3id_tab(l_trx_assets_counter4) := okc_p_util.raw_to_number(sys_guid());
18701             --print('Upto 1...');
18702             -- Populate kle to tas_id mapping
18703             l_cle_mapping_tab(l_trx_assets_counter4).old_id := l_id_tab(i); -- kle_id
18704             l_cle_mapping_tab(l_trx_assets_counter4).line_number :=  1;
18705 
18706             --print('Upto 2...');
18707             -- Populate okl_txl_assets_b
18708             l_tb2id_tab(l_trx_assets_counter4) := okc_p_util.raw_to_number(sys_guid());
18709             l_cle_mapping_tab(l_trx_assets_counter4).new_id :=  l_tb2id_tab(l_trx_assets_counter4);
18710             --print('Upto 3...');
18711             l_tb2object_version_number_tab(l_trx_assets_counter4) := 1;
18712             l_tb2tas_id_tab(l_trx_assets_counter4) := l_t3id_tab(l_trx_assets_counter4);
18713             -- id already changed earlier
18714             l_tb2kle_id_tab(l_trx_assets_counter4) := l_id_tab(i);
18715 
18716             --print('Upto 4...');
18717             -- Store Tal id to kle_id mapping
18718             l_dbid_mapping_tab(l_tal_to_kle_counter).tal_id := l_tb2id_tab(l_trx_assets_counter4);
18719             l_dbid_mapping_tab(l_tal_to_kle_counter).kle_id := l_tb2kle_id_tab(l_trx_assets_counter4);
18720             l_tal_to_kle_counter := l_tal_to_kle_counter + 1;
18721 
18722             --print('Upto asset_number...');
18723             --print('l_trx_assets_counter4=' || l_trx_assets_counter4);
18724             l_tb2dnz_khr_id_tab(l_trx_assets_counter4) := l_copied_id;
18725             --print('Upto asset_number l_name_tab('|| i || ')=' || l_name_tab(i));
18726             l_cle_id := find_cid_mapping_id(l_tb2kle_id_tab(l_trx_assets_counter4));
18727             --print('Upto 6 l_cle_id=' || l_cle_id);
18728             IF (l_cle_id = -1) THEN
18729                 IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18730                                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR: Mapping cle_id not found for id ' || l_tb2kle_id_tab(l_trx_assets_counter4));
18731                 END IF;
18732                 RAISE OKL_API.G_EXCEPTION_ERROR;
18733             END IF;
18734 
18735             l_asset_name_old := find_bid_mapping_id(l_cle_id, 33);
18736             IF (l_asset_name_old = '-1') THEN
18737               IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18738                               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR: Mapping bid_mapping not found for ' || l_cle_id);
18739               END IF;
18740               RAISE OKL_API.G_EXCEPTION_ERROR;
18741             END IF;
18742             IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18743                           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_asset_name_old=' || l_asset_name_old);
18744             END IF;
18745             l_tb2asset_number_tab(l_trx_assets_counter4) := l_asset_name_old; --old asset
18746             --print('Upto asset_number l_name_tab('|| i || ')=' || l_name_tab(i));
18747             IF (l_tb2asset_number_tab(l_trx_assets_counter4) IS NOT NULL) THEN
18748               l_new_asset_number := find_aid_mapping_id(l_tb2asset_number_tab(l_trx_assets_counter4));
18749               IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18750                               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_new_asset_number=' || l_new_asset_number);
18751               END IF;
18752               IF (l_new_asset_number <> '-1') THEN
18753                 l_tb2asset_number_tab(l_trx_assets_counter4) := l_new_asset_number;
18754               END IF;
18755             END IF;
18756 
18757             --print('Upto asset_number...');
18758             l_tb2line_number_tab(l_trx_assets_counter4) := 1;
18759             l_tb2tal_type_tab(l_trx_assets_counter4) := p_trans_type;
18760 
18761             -- Populate location_id
18762             l_tb2fa_location_id_tab(l_trx_assets_counter4) := NULL;
18763 
18764             -- Todo AKP
18765             l_tmp_okl_33_rec := find_okl_k_lines_rec(l_cle_id);
18766             --print('Upto 8...l_tmp_okl_33_rec.oec=' || l_tmp_okl_33_rec.oec);
18767             IF (l_tmp_okl_33_rec.oec = OKL_API.G_MISS_NUM ) THEN
18768               IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18769                               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR: Mapping okl_k_lines_rec not found for ' || l_cle_id );
18770               END IF;
18771               RAISE OKL_API.G_EXCEPTION_ERROR;
18772             END IF;
18773 
18774             --print('Calling find_cle_lse_mapping with ' || l_cle_id || ':34');
18775             l_new_34_id := find_cle_lse_mapping_id(l_cle_id, 34);
18776             --print('Upto 9... l_new_34_id = ' || l_new_34_id);
18777             IF (l_new_34_id = -1) THEN
18778                 IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18779                                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR: Mapping cle_lse_mapping not found for ' || l_cle_id || ':33');
18780                 END IF;
18781                 RAISE OKL_API.G_EXCEPTION_ERROR;
18782             END IF;
18783             l_tmp_okc_34_rec := find_okc_k_items_rec(l_new_34_id);
18784             --print('Upto 10... l_tmp_okc_34_rec.number_of_items='|| l_tmp_okc_34_rec.number_of_items);
18785             IF (l_tmp_okc_34_rec.number_of_items = OKL_API.G_MISS_NUM) THEN
18786               IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18787                               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR: Mapping okl_k_lines_rec not found for ' || l_new_34_id );
18788               END IF;
18789               RAISE OKL_API.G_EXCEPTION_ERROR;
18790             END IF;
18791 
18792             --print('Upto 11...');
18793             l_tb2original_cost_tab(l_trx_assets_counter4) := l_tmp_okl_33_rec.oec;
18794             l_tb2depreciation_cost_tab(l_trx_assets_counter4) := l_tmp_okl_33_rec.oec;
18795             l_tb2current_units_tab(l_trx_assets_counter4) :=  l_tmp_okc_34_rec.number_of_items;
18796             -- Bug 4636587
18797             IF (p_trans_type = 'CRB') THEN
18798               l_tb2fa_cost_tab(l_trx_assets_counter4) := l_tmp_okl_33_rec.oec;
18799             ELSE
18800               l_tb2fa_cost_tab(l_trx_assets_counter4) := NULL;
18801             END IF;
18802             --print('Upto 11.1...');
18803 
18804             --print('Upto 12...');
18805 
18806             l_tmp_okl_42_rec := find_okl_k_lines_rec(l_id_tab(i));
18807             --print('Upto 13 l_tmp_okl_42_rec.year_built=' || l_tmp_okl_42_rec.year_built);
18808             IF (l_tmp_okl_42_rec.year_built = OKL_API.G_MISS_NUM) THEN
18809               IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18810                               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR: Mapping okl_k_lines_rec not found for ' || l_id_tab(i));
18811               END IF;
18812               RAISE OKL_API.G_EXCEPTION_ERROR;
18813             END IF;
18814 
18815             l_tb2year_manufactured_tab(l_trx_assets_counter4) := l_tmp_okl_42_rec.year_built;
18816 
18817             l_tb2manufacturer_name_tab(l_trx_assets_counter4) := NULL;
18818             l_tb2used_asset_yn_tab(l_trx_assets_counter4) := NULL;
18819 
18820 
18821             l_tb2tag_number_tab(l_trx_assets_counter4) := NULL;
18822             l_tb2model_number_tab(l_trx_assets_counter4) := NULL;
18823             l_tb2corporate_book_tab(l_trx_assets_counter4) := NULL;
18824             l_tb2in_service_date_tab(l_trx_assets_counter4) := NULL;
18825             l_tb2depreciation_id_tab(l_trx_assets_counter4) := NULL;
18826             l_tb2deprn_method_tab(l_trx_assets_counter4) := NULL;
18827             l_tb2deprn_rate_tab(l_trx_assets_counter4) := NULL;
18828             l_tb2life_in_months_tab(l_trx_assets_counter4) := NULL;
18829             l_tb2salvage_value_tab(l_trx_assets_counter4) := NULL;
18830             l_tb2percent_salvage_value_tab(l_trx_assets_counter4) := NULL;
18831 
18832             l_tb2asset_key_id_tab(l_trx_assets_counter4) := NULL;
18833             l_tb2fa_trx_date_tab(l_trx_assets_counter4) := NULL;
18834 
18835             --print('Upto 14...');
18836 
18837             -- Populate okl_trx_assets_tl
18838             FOR j IN l_lang_tab.first..l_lang_tab.last
18839             LOOP
18840             --print('Upto 15...');
18841               l_tl2id_tab(l_txl_assets_tl_counter4) := l_tb2id_tab(l_trx_assets_counter4);
18842               l_tl2description_tab(l_txl_assets_tl_counter4) := l_tmp_okl_33_rec.item_description;
18843               l_tl2language_tab(l_txl_assets_tl_counter4) := l_lang_tab(j);
18844 
18845               l_txl_assets_tl_counter4 := l_txl_assets_tl_counter4 + 1;
18846             END LOOP;
18847 
18848             l_trx_assets_counter4 := l_trx_assets_counter4 + 1;
18849 
18850           END IF; /* if object1_id1 is null and object1_id2 is null */
18851 
18852         END IF;  /* if lse_id_tab(i) = 42 */
18853       END LOOP;  /* loop on l_id_tab(i) */
18854       END IF; /* if l_id_tab.count > 0 */
18855 
18856     END IF; /* if loan BOOKED condition */
18857   END IF; /* if l_ID1_tab.count < 1 */
18858 
18859   -- By this time populated everything
18860 
18861   -- Insert into corr tables
18862   IF (l_trx_assets_counter4 > 1) THEN
18863     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18864           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_trx_assets_counter4='||l_trx_assets_counter4 || ' l_t3id_tab.count='||l_t3id_tab.COUNT);
18865     END IF;
18866 
18867    --Added by dpsingh for LE Uptake
18868     l_legal_entity_id  := OKL_LEGAL_ENTITY_UTIL.get_khr_le_id(p_old_id) ;
18869     IF l_legal_entity_id IS NULL THEN
18870         -- get the contract number
18871        OPEN contract_num_csr(p_old_id);
18872        FETCH contract_num_csr INTO l_cntrct_number;
18873        CLOSE contract_num_csr;
18874 	Okl_Api.set_message(p_app_name     => g_app_name,
18875                              p_msg_name     => 'OKL_LE_NOT_EXIST_CNTRCT',
18876 			     p_token1           =>  'CONTRACT_NUMBER',
18877 			     p_token1_value  =>  l_cntrct_number);
18878          RAISE OKL_API.G_EXCEPTION_ERROR;
18879     END IF;
18880     forall i IN l_t3id_tab.first..l_t3id_tab.last
18881       INSERT INTO okl_trx_assets (
18882         id, tas_type, object_version_number,
18883         tsu_code, try_id, date_trans_occurred,
18884         created_by, creation_date, last_updated_by,
18885         last_update_date, last_update_login, trans_number,legal_entity_id
18886         ,transaction_date
18887       ) VALUES (
18888         l_t3id_tab(i), p_trans_type, 1,
18889         'ENTERED', l_try_id, SYSDATE, -- AKP: populate try_id properly
18890         l_created_by, SYSDATE, l_last_updated_by,
18891         SYSDATE, l_last_update_login, okl_trn_seq.NEXTVAL,l_legal_entity_id
18892         ,SYSDATE
18893       );
18894 
18895     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18896           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_trx_assets_counter4='||l_trx_assets_counter4 || ' l_tb2id_tab.count='||l_tb2id_tab.COUNT);
18897     END IF;
18898 
18899     IF (l_tb2id_tab.COUNT > 0) THEN
18900     forall i IN l_tb2id_tab.first..l_tb2id_tab.last
18901       INSERT INTO okl_txl_assets_b (
18902         id, object_version_number, tas_id,
18903         kle_id, dnz_khr_id, line_number,
18904         asset_number, tal_type, original_cost,
18905         depreciation_cost, current_units, manufacturer_name,
18906         used_asset_yn, tag_number, model_number,
18907         corporate_book, in_service_date, depreciation_id,
18908         deprn_method, deprn_rate, life_in_months,
18909         salvage_value, percent_salvage_value, asset_key_id,
18910         fa_trx_date, created_by, creation_date,
18911         last_updated_by, last_update_date, last_update_login,
18912         fa_location_id, currency_code, currency_conversion_type,
18913         currency_conversion_rate, currency_conversion_date, year_manufactured,
18914         fa_cost
18915       ) VALUES (
18916         l_tb2id_tab(i), 1, l_tb2tas_id_tab(i),
18917         l_tb2kle_id_tab(i), l_tb2dnz_khr_id_tab(i), l_tb2line_number_tab(i),
18918         l_tb2asset_number_tab(i), l_tb2tal_type_tab(i), l_tb2original_cost_tab(i),
18919         l_tb2depreciation_cost_tab(i), l_tb2current_units_tab(i), l_tb2manufacturer_name_tab(i),
18920         l_tb2used_asset_yn_tab(i), l_tb2tag_number_tab(i), l_tb2model_number_tab(i),
18921         l_tb2corporate_book_tab(i), l_tb2in_service_date_tab(i), l_tb2depreciation_id_tab(i),
18922         l_tb2deprn_method_tab(i), l_tb2deprn_rate_tab(i), l_tb2life_in_months_tab(i),
18923         l_tb2salvage_value_tab(i), l_tb2percent_salvage_value_tab(i), l_tb2asset_key_id_tab(i),
18924         l_tb2fa_trx_date_tab(i), l_created_by, SYSDATE,
18925         l_last_updated_by, SYSDATE, l_last_update_login,
18926         l_tb2fa_location_id_tab(i), l_contract_currency, l_conversion_type,
18927         l_conversion_rate, l_conversion_rate_date, l_tb2year_manufactured_tab(i),
18928         l_tb2fa_cost_tab(i)
18929       );
18930       END IF;
18931 
18932       IF (l_txl_assets_tl_counter4 > 1) THEN
18933         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18934                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_txl_assets_tl_counter4=' || l_txl_assets_tl_counter4 || ' l_tl2id_tab.count=' || l_tl2id_tab.COUNT);
18935         END IF;
18936         IF (l_tl2id_tab.COUNT > 0) THEN
18937         forall i IN l_tl2id_tab.first..l_tl2id_tab.last
18938           INSERT INTO okl_txl_assets_tl (
18939             id, LANGUAGE, source_lang,
18940             sfwt_flag, description, created_by,
18941             creation_date, last_updated_by, last_update_date,
18942             last_update_login
18943           ) VALUES (
18944             l_tl2id_tab(i), l_tl2language_tab(i), l_base_language,
18945             'N', l_tl2description_tab(i), l_created_by,
18946             SYSDATE, l_last_updated_by, SYSDATE,
18947             l_last_update_login
18948           );
18949          END IF;
18950       END IF;
18951   END IF;
18952 
18953   IF ( l_txd_assets_b_counter4  > 1) THEN
18954     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18955           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_txd_assets_b_counter4='||l_txd_assets_b_counter4 || ' l_db2id_tab.count='||l_db2id_tab.COUNT);
18956     END IF;
18957     IF (l_db2id_tab.COUNT > 0) THEN
18958     forall i IN l_db2id_tab.first..l_db2id_tab.last
18959       INSERT INTO okl_txd_assets_b (
18960         id, object_version_number, tal_id,
18961         asset_number, line_detail_number, quantity,
18962         cost, tax_book, salvage_value,
18963         deprn_method_tax, life_in_months_tax, deprn_rate_tax,
18964         created_by, creation_date, last_updated_by,
18965         last_update_date, last_update_login, currency_code,
18966         currency_conversion_type, currency_conversion_rate, currency_conversion_date
18967       ) VALUES (
18968         l_db2id_tab(i), 1, l_db2tal_id_tab(i),
18969         l_db2asset_number_tab(i), l_db2line_detail_number_tab(i), l_db2quantity_tab(i),
18970         l_db2cost_tab(i), l_db2tax_book_tab(i), l_db2salvage_value_tab(i),
18971         l_db2deprn_method_tax_tab(i), l_db2life_in_months_tax_tab(i), l_db2deprn_rate_tax_tab(i),
18972         l_created_by, SYSDATE, l_last_updated_by,
18973         SYSDATE, l_last_update_login, l_contract_currency,
18974         l_conversion_type, l_conversion_rate, l_conversion_rate_date
18975       );
18976       END IF;
18977 
18978       IF ( l_txd_assets_tl_counter4  > 1) THEN
18979         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18980                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_txd_assets_tl_counter4=' || l_txd_assets_tl_counter4 || ' l_dl2id_tab.count=' || l_dl2id_tab.COUNT);
18981         END IF;
18982         IF (l_dl2id_tab.COUNT > 0) THEN
18983         forall i IN l_dl2id_tab.first..l_dl2id_tab.last
18984           INSERT INTO okl_txd_assets_tl (
18985             id, LANGUAGE, source_lang,
18986             sfwt_flag, description, created_by,
18987             creation_date, last_updated_by, last_update_date,
18988             last_update_login
18989           ) VALUES (
18990             l_dl2id_tab(i), l_dl2language_tab(i), l_base_language,
18991             'N', l_dl2description_tab(i), l_created_by,
18992             SYSDATE, l_last_updated_by, SYSDATE,
18993             l_last_update_login
18994           );
18995         END IF;
18996       END IF;
18997   END IF;
18998 
18999 EXCEPTION WHEN OTHERS THEN
19000   -- AKP: Replace OKL_AM_NO_OLD_SALVAGE_VALUE globally
19001   -- AKP: change p_msg_name to proper name
19002   -- AKP: Change p_token1 to proper token
19003   -- AKP: Change p_token1_value to proper value
19004 
19005   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19006       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
19007   END IF;
19008   x_return_status := OKL_API.G_RET_STS_ERROR;
19009     /* DEBUG */
19010   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19011       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing okl_trx_assets:l_t3id_tab.count=' || l_t3id_tab.COUNT || ' ...');
19012     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_try_id=' || l_try_id);
19013   END IF;
19014   IF (l_t3id_tab.COUNT > 0) THEN
19015   FOR i IN l_t3id_tab.first..l_t3id_tab.last
19016   LOOP
19017     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19018           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t3id_tab('||i||')=' || l_t3id_tab(i));
19019     END IF;
19020   END LOOP;
19021   END IF;
19022 
19023     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19024           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing l_tb2id_tab.count' || l_tb2id_tab.COUNT || ' ...');
19025     END IF;
19026     IF (l_tb2id_tab.COUNT > 0) THEN
19027     FOR i IN l_tb2id_tab.first..l_tb2id_tab.last
19028     LOOP
19029       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19030               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2id_tab('||i||')='|| l_tb2id_tab(i));
19031         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2tas_id_tab('||i||')=' ||  l_tb2tas_id_tab(i));
19032         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2kle_id_tab('||i||')=' ||  l_tb2kle_id_tab(i));
19033         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2dnz_khr_id_tab('||i||')=' ||  l_tb2dnz_khr_id_tab(i));
19034         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2line_number_tab('||i||')=' ||  l_tb2line_number_tab(i));
19035         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2asset_number_tab('||i||')=' ||  l_tb2asset_number_tab(i));
19036         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2tal_type_tab('||i||')=' ||  l_tb2tal_type_tab(i));
19037         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2original_cost_tab('||i||')=' ||  l_tb2original_cost_tab(i));
19038         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2depreciation_cost_tab('||i||')=' ||  l_tb2depreciation_cost_tab(i));
19039         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2current_units_tab('||i||')=' ||  l_tb2current_units_tab(i));
19040         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2manufacturer_name_tab('||i||')=' ||  l_tb2manufacturer_name_tab(i));
19041         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2used_asset_yn_tab('||i||')=' || l_tb2used_asset_yn_tab(i));
19042         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2tag_number_tab('||i||')=' || l_tb2tag_number_tab(i));
19043         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2model_number_tab('||i||')=' || l_tb2model_number_tab(i));
19044         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2corporate_book_tab('||i||')=' || l_tb2corporate_book_tab(i));
19045         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2in_service_date_tab('||i||')=' || l_tb2in_service_date_tab(i));
19046         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2depreciation_id_tab('||i||')=' || l_tb2depreciation_id_tab(i));
19047         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2deprn_method_tab('||i||')=' || l_tb2deprn_method_tab(i));
19048         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2deprn_rate_tab('||i||')=' || l_tb2deprn_rate_tab(i));
19049         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2life_in_months_tab('||i||')=' || l_tb2life_in_months_tab(i));
19050         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2salvage_value_tab('||i||')=' || l_tb2salvage_value_tab(i));
19051         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2percent_salvage_value_tab('||i||')=' || l_tb2percent_salvage_value_tab(i));
19052         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2asset_key_id_tab('||i||')=' || l_tb2asset_key_id_tab(i));
19053         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2fa_trx_date_tab('||i||')=' || l_tb2fa_trx_date_tab(i));
19054         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2fa_location_id_tab('||i||')=' || l_tb2fa_location_id_tab(i));
19055         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2fa_cost_tab('||i||')=' ||  l_tb2fa_cost_tab(i));
19056       END IF;
19057 
19058     END LOOP;
19059     END IF;
19060 
19061   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19062       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing l_tl2id_tab.count=' || l_tl2id_tab.COUNT || ' ...');
19063   END IF;
19064   IF (l_tl2id_tab.COUNT > 0) THEN
19065   FOR i IN l_tl2id_tab.first..l_tl2id_tab.last
19066   LOOP
19067     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19068           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tl2id_tab('||i||')=' || l_tl2id_tab(i));
19069       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tl2language_tab('||i||')=' || l_tl2language_tab(i));
19070       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_base_language('||i||')=' || l_base_language);
19071       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tl2description_tab('||i||')=' || l_tl2description_tab(i));
19072     END IF;
19073   END LOOP;
19074   END IF;
19075 
19076   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19077       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing l_db2id_tab.count=' || l_db2id_tab.COUNT || ' ...');
19078   END IF;
19079   IF (l_db2id_tab.COUNT > 0) THEN
19080   FOR i IN l_db2id_tab.first..l_db2id_tab.last
19081   LOOP
19082     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19083           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_db2id_tab('||i||')=' || l_db2id_tab(i));
19084       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_db2tal_id_tab('||i||')=' || l_db2tal_id_tab(i));
19085       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_db2asset_number_tab('||i||')=' || l_db2asset_number_tab(i));
19086       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_db2line_detail_number_tab('||i||')=' || l_db2line_detail_number_tab(i));
19087       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_db2quantity_tab('||i||')=' || l_db2quantity_tab(i));
19088       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_db2cost_tab('||i||')=' || l_db2cost_tab(i));
19089       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_db2tax_book_tab('||i||')=' || l_db2tax_book_tab(i));
19090       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_db2salvage_value_tab('||i||')=' || l_db2salvage_value_tab(i));
19091       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_db2deprn_method_tax_tab('||i||')=' || l_db2deprn_method_tax_tab(i));
19092       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_db2life_in_months_tax_tab('||i||')=' || l_db2life_in_months_tax_tab(i));
19093       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_db2deprn_rate_tax_tab('||i||')=' || l_db2deprn_rate_tax_tab(i));
19094     END IF;
19095   END LOOP;
19096   END IF;
19097 
19098   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19099       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing l_dl2id_tab.count=' || l_dl2id_tab.COUNT || ' ...');
19100   END IF;
19101   IF (l_dl2id_tab.COUNT > 0) THEN
19102   FOR i IN l_dl2id_tab.first..l_dl2id_tab.last
19103   LOOP
19104     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19105           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dl2id_tab('||i||')=' || l_dl2id_tab(i));
19106       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dl2language_tab('||i||')=' || l_dl2language_tab(i));
19107       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_base_language('||i||')=' || l_base_language);
19108       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dl2description_tab('||i||')=' || l_dl2description_tab(i));
19109     END IF;
19110   END LOOP;
19111   END IF;
19112 
19113   RAISE OKC_API.G_EXCEPTION_ERROR;
19114 END; /* insert okl_trx_assets_3 */
19115 
19116 PROCEDURE insert_okc_rg_party_roles(p_old_id IN okc_k_headers_b.id%TYPE,
19117                                     p_new_id IN okc_k_headers_b.id%TYPE) IS
19118 CURSOR c25(p_id NUMBER) IS
19119 SELECT
19120        a.id, a.rgp_id, a.rrd_id,
19121        a.cpl_id, a.dnz_chr_id, a.object_version_number,
19122        a.created_by, a.creation_date, a.last_updated_by,
19123        a.last_update_date, a.last_update_login, a.security_group_id
19124 FROM okc_rg_party_roles a,
19125      okc_rule_groups_b b
19126 WHERE a.rgp_id = b.id
19127 AND   b.dnz_chr_id = p_id
19128   AND (
19129     b.chr_id = b.chr_id
19130     OR (
19131         NVL(p_trans_type, 'N') = 'Y'
19132         AND b.cle_id IS NOT NULL
19133        )
19134   );
19135 
19136     l_gid_tab2 l_gid_type;
19137     l_grgp_id_tab2 l_grgp_id_type;
19138     l_grrd_id_tab2 l_grrd_id_type;
19139     l_gcpl_id_tab2 l_gcpl_id_type;
19140     l_gdnz_chr_id_tab2 l_gdnz_chr_id_type;
19141     l_gobject_version_number_tab2 l_gobject_version_number_type;
19142     l_gcreated_by_tab2 l_gcreated_by_type;
19143     l_gcreation_date_tab2 l_gcreation_date_type;
19144     l_glast_updated_by_tab2 l_glast_updated_by_type;
19145     l_glast_update_date_tab2 l_glast_update_date_type;
19146     l_glast_update_login_tab2 l_glast_update_login_type;
19147     l_gsecurity_group_id_tab2 l_gsecurity_group_id_type;
19148 
19149   l_new_rgp_id NUMBER;
19150   l_new_cpl_id NUMBER;
19151 
19152 BEGIN
19153   IF (G_DEBUG_ENABLED = 'Y') THEN
19154     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
19155   END IF;
19156   OPEN c25(p_old_id);
19157   LOOP
19158     FETCH c25 bulk collect INTO
19159      l_gid_tab2, l_grgp_id_tab2, l_grrd_id_tab2,
19160      l_gcpl_id_tab2, l_gdnz_chr_id_tab2, l_gobject_version_number_tab2,
19161      l_gcreated_by_tab2, l_gcreation_date_tab2, l_glast_updated_by_tab2,
19162      l_glast_update_date_tab2, l_glast_update_login_tab2, l_gsecurity_group_id_tab2
19163 
19164     limit G_BULK_SIZE;
19165     EXIT WHEN l_gid_tab2.COUNT = 0;
19166     FOR i IN l_gid_tab2.first..l_gid_tab2.last
19167     LOOP
19168       l_gid_tab(l_rg_party_roles_counter) := l_gid_tab2(i);
19169       -- Change id
19170       l_gid_tab(l_rg_party_roles_counter) := okc_p_util.raw_to_number(sys_guid());
19171 
19172       l_grgp_id_tab(l_rg_party_roles_counter) := l_grgp_id_tab2(i);
19173       -- Change rgp_id
19174       l_new_rgp_id := find_rid_mapping_id(l_grgp_id_tab(l_rg_party_roles_counter));
19175         IF (l_new_rgp_id = -1) THEN
19176           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19177                       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR : Mapping id not found for ' || l_grgp_id_tab(l_rg_party_roles_counter));
19178           END IF;
19179           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
19180         END IF;
19181       l_grgp_id_tab(l_rg_party_roles_counter) := l_new_rgp_id;
19182 
19183       l_grrd_id_tab(l_rg_party_roles_counter) := l_grrd_id_tab2(i);
19184       -- Change rrd_id ??? AKP
19185 
19186       l_gcpl_id_tab(l_rg_party_roles_counter) := l_gcpl_id_tab2(i);
19187       -- Change cpl_id
19188       l_new_cpl_id := find_party_mapping_id(l_gcpl_id_tab(l_rg_party_roles_counter));
19189       l_gcpl_id_tab(l_rg_party_roles_counter) := l_new_cpl_id;
19190 
19191       l_gdnz_chr_id_tab(l_rg_party_roles_counter) := l_gdnz_chr_id_tab2(i);
19192       -- Change dnz_chr_id
19193       l_gdnz_chr_id_tab(l_rg_party_roles_counter) := p_new_id;
19194 
19195       l_gobject_version_number_tab(l_rg_party_roles_counter) := l_gobject_version_number_tab2(i);
19196       l_gcreated_by_tab(l_rg_party_roles_counter) := l_gcreated_by_tab2(i);
19197       l_gcreation_date_tab(l_rg_party_roles_counter) := l_gcreation_date_tab2(i);
19198       l_glast_updated_by_tab(l_rg_party_roles_counter) := l_glast_updated_by_tab2(i);
19199       l_glast_update_date_tab(l_rg_party_roles_counter) := l_glast_update_date_tab2(i);
19200       l_glast_update_login_tab(l_rg_party_roles_counter) := l_glast_update_login_tab2(i);
19201       l_gsecurity_group_id_tab(l_rg_party_roles_counter) := l_gsecurity_group_id_tab2(i);
19202 
19203       l_rg_party_roles_counter := l_rg_party_roles_counter + 1;
19204 
19205     END LOOP;
19206   END LOOP;
19207   CLOSE c25;
19208   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19209       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rg_party_roles_counter='||l_rg_party_roles_counter || ' l_gid_tab.count=' || l_gid_tab.COUNT);
19210   END IF;
19211   IF (l_rg_party_roles_counter > 1) THEN
19212     forall i IN l_gid_tab.first..l_gid_tab.last
19213     INSERT INTO okc_rg_party_roles (
19214        id, rgp_id, rrd_id,
19215        cpl_id, dnz_chr_id, object_version_number,
19216        created_by, creation_date, last_updated_by,
19217        last_update_date, last_update_login, security_group_id
19218     ) VALUES (
19219        l_gid_tab(i), l_grgp_id_tab(i), l_grrd_id_tab(i),
19220        l_gcpl_id_tab(i), l_gdnz_chr_id_tab(i), l_gobject_version_number_tab(i),
19221        l_created_by, SYSDATE, l_last_updated_by,
19222        SYSDATE, l_last_update_login, l_gsecurity_group_id_tab(i)
19223     );
19224   END IF;
19225 EXCEPTION WHEN OTHERS THEN
19226 
19227   x_return_status := OKL_API.G_RET_STS_ERROR;
19228   /*OKL_API.set_message(p_app_name => 'OKL',
19229                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
19230                       p_token1 => 'ASSET_NUMBER',
19231                       p_token1_value => 'okc_rg_party_roles');*/
19232     /* DEBUG */
19233   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19234       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
19235     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing okc_rg_party_roles: l_gid_tab.count=' || l_gid_tab.COUNT || ' ...');
19236   END IF;
19237   IF (l_gid_tab.COUNT > 0) THEN
19238   FOR i IN l_gid_tab.first..l_gid_tab.last
19239   LOOP
19240     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19241           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_gid_tab('||i||')=' || l_gid_tab(i));
19242       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_grgp_id_tab('||i||')=' || l_grgp_id_tab(i));
19243       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_grrd_id_tab('||i||')=' || l_grrd_id_tab(i));
19244       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_gcpl_id_tab('||i||')=' || l_gcpl_id_tab(i));
19245       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_gdnz_chr_id_tab('||i||')=' || l_gdnz_chr_id_tab(i));
19246       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_gobject_version_number_tab('||i||')=' || l_gobject_version_number_tab(i));
19247       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_gsecurity_group_id_tab('||i||')=' || l_gsecurity_group_id_tab(i));
19248     END IF;
19249   END LOOP;
19250   END IF;
19251 
19252   RAISE OKC_API.G_EXCEPTION_ERROR;
19253 
19254 END; /* insert_okc_rg_party_roles */
19255 
19256 PROCEDURE insert_okl_supp_invoice_dtls(p_old_id IN okc_k_headers_b.id%TYPE)
19257 IS
19258 CURSOR c26(p_id NUMBER) IS
19259 SELECT
19260        a.id, a.object_version_number, a.cle_id,
19261        a.fa_cle_id, a.invoice_number, a.date_invoiced,
19262        a.date_due, a.shipping_address_id1, a.shipping_address_id2,
19263        a.shipping_address_code, a.attribute_category, a.attribute1,
19264        a.attribute2, a.attribute3, a.attribute4,
19265        a.attribute5, a.attribute6, a.attribute7,
19266        a.attribute8, a.attribute9, a.attribute10,
19267        a.attribute11, a.attribute12, a.attribute13,
19268        a.attribute14, a.attribute15, a.created_by,
19269        a.creation_date, a.last_updated_by, a.last_update_date,
19270        a.last_update_login
19271 FROM okl_supp_invoice_dtls a,
19272      okc_k_lines_b b
19273 WHERE b.dnz_chr_id = p_id
19274 AND (
19275     ( a.cle_id = b.id AND b.lse_id IN (34,44) )
19276     -- Bug (duplicate supp invoice dtls lines because of the OR condition)
19277     --OR
19278     --( a.fa_cle_id = b.id AND b.lse_id = 42 )
19279 );
19280 
19281     -- Commented here. Moved it to make global.
19282     /*
19283     TYPE l_osid_type is table of okl_supp_invoice_dtls.id%TYPE index by binary_integer;
19284     TYPE l_osobject_version_number_type is table of okl_supp_invoice_dtls.object_version_number%TYPE index by binary_integer;
19285     TYPE l_oscle_id_type is table of okl_supp_invoice_dtls.cle_id%TYPE index by binary_integer;
19286     TYPE l_osfa_cle_id_type is table of okl_supp_invoice_dtls.fa_cle_id%TYPE index by binary_integer;
19287     TYPE l_osinvoice_number_type is table of okl_supp_invoice_dtls.invoice_number%TYPE index by binary_integer;
19288     TYPE l_osdate_invoiced_type is table of okl_supp_invoice_dtls.date_invoiced%TYPE index by binary_integer;
19289     TYPE l_osdate_due_type is table of okl_supp_invoice_dtls.date_due%TYPE index by binary_integer;
19290     TYPE l_osshipping_address_id1_type is table of okl_supp_invoice_dtls.shipping_address_id1%TYPE index by binary_integer;
19291     TYPE l_osshipping_address_id2_type is table of okl_supp_invoice_dtls.shipping_address_id2%TYPE index by binary_integer;
19292     TYPE l_osshipping_address_code_type is table of okl_supp_invoice_dtls.shipping_address_code%TYPE index by binary_integer;
19293     TYPE l_osattribute_category_type is table of okl_supp_invoice_dtls.attribute_category%TYPE index by binary_integer;
19294     TYPE l_osattribute1_type is table of okl_supp_invoice_dtls.attribute1%TYPE index by binary_integer;
19295     TYPE l_osattribute2_type is table of okl_supp_invoice_dtls.attribute2%TYPE index by binary_integer;
19296     TYPE l_osattribute3_type is table of okl_supp_invoice_dtls.attribute3%TYPE index by binary_integer;
19297     TYPE l_osattribute4_type is table of okl_supp_invoice_dtls.attribute4%TYPE index by binary_integer;
19298     TYPE l_osattribute5_type is table of okl_supp_invoice_dtls.attribute5%TYPE index by binary_integer;
19299     TYPE l_osattribute6_type is table of okl_supp_invoice_dtls.attribute6%TYPE index by binary_integer;
19300     TYPE l_osattribute7_type is table of okl_supp_invoice_dtls.attribute7%TYPE index by binary_integer;
19301     TYPE l_osattribute8_type is table of okl_supp_invoice_dtls.attribute8%TYPE index by binary_integer;
19302     TYPE l_osattribute9_type is table of okl_supp_invoice_dtls.attribute9%TYPE index by binary_integer;
19303     TYPE l_osattribute10_type is table of okl_supp_invoice_dtls.attribute10%TYPE index by binary_integer;
19304     TYPE l_osattribute11_type is table of okl_supp_invoice_dtls.attribute11%TYPE index by binary_integer;
19305     TYPE l_osattribute12_type is table of okl_supp_invoice_dtls.attribute12%TYPE index by binary_integer;
19306     TYPE l_osattribute13_type is table of okl_supp_invoice_dtls.attribute13%TYPE index by binary_integer;
19307     TYPE l_osattribute14_type is table of okl_supp_invoice_dtls.attribute14%TYPE index by binary_integer;
19308     TYPE l_osattribute15_type is table of okl_supp_invoice_dtls.attribute15%TYPE index by binary_integer;
19309     TYPE l_oscreated_by_type is table of okl_supp_invoice_dtls.created_by%TYPE index by binary_integer;
19310     TYPE l_oscreation_date_type is table of okl_supp_invoice_dtls.creation_date%TYPE index by binary_integer;
19311     TYPE l_oslast_updated_by_type is table of okl_supp_invoice_dtls.last_updated_by%TYPE index by binary_integer;
19312     TYPE l_oslast_update_date_type is table of okl_supp_invoice_dtls.last_update_date%TYPE index by binary_integer;
19313     TYPE l_oslast_update_login_type is table of okl_supp_invoice_dtls.last_update_login%TYPE index by binary_integer;
19314 
19315     l_osid_tab l_osid_type;
19316     l_osobject_version_number_tab l_osobject_version_number_type;
19317     l_oscle_id_tab l_oscle_id_type;
19318     l_osfa_cle_id_tab l_osfa_cle_id_type;
19319     l_osinvoice_number_tab l_osinvoice_number_type;
19320     l_osdate_invoiced_tab l_osdate_invoiced_type;
19321     l_osdate_due_tab l_osdate_due_type;
19322     l_osshipping_address_id1_tab l_osshipping_address_id1_type;
19323     l_osshipping_address_id2_tab l_osshipping_address_id2_type;
19324     l_osshipping_address_code_tab l_osshipping_address_code_type;
19325     l_osattribute_category_tab l_osattribute_category_type;
19326     l_osattribute1_tab l_osattribute1_type;
19327     l_osattribute2_tab l_osattribute2_type;
19328     l_osattribute3_tab l_osattribute3_type;
19329     l_osattribute4_tab l_osattribute4_type;
19330     l_osattribute5_tab l_osattribute5_type;
19331     l_osattribute6_tab l_osattribute6_type;
19332     l_osattribute7_tab l_osattribute7_type;
19333     l_osattribute8_tab l_osattribute8_type;
19334     l_osattribute9_tab l_osattribute9_type;
19335     l_osattribute10_tab l_osattribute10_type;
19336     l_osattribute11_tab l_osattribute11_type;
19337     l_osattribute12_tab l_osattribute12_type;
19338     l_osattribute13_tab l_osattribute13_type;
19339     l_osattribute14_tab l_osattribute14_type;
19340     l_osattribute15_tab l_osattribute15_type;
19341     l_oscreated_by_tab l_oscreated_by_type;
19342     l_oscreation_date_tab l_oscreation_date_type;
19343     l_oslast_updated_by_tab l_oslast_updated_by_type;
19344     l_oslast_update_date_tab l_oslast_update_date_type;
19345     l_oslast_update_login_tab l_oslast_update_login_type;
19346 
19347     l_supp_invoice_dtls_counter number := 1;
19348     */
19349 
19350     l_osid_tab2 l_osid_type;
19351     l_osobject_version_number_tab2 l_osobject_version_number_type;
19352     l_oscle_id_tab2 l_oscle_id_type;
19353     l_osfa_cle_id_tab2 l_osfa_cle_id_type;
19354     l_osinvoice_number_tab2 l_osinvoice_number_type;
19355     l_osdate_invoiced_tab2 l_osdate_invoiced_type;
19356     l_osdate_due_tab2 l_osdate_due_type;
19357     l_osshipping_address_id1_tab2 l_osshipping_address_id1_type;
19358     l_osshipping_address_id2_tab2 l_osshipping_address_id2_type;
19359     l_osshipping_address_code_tab2 l_osshipping_address_code_type;
19360     l_osattribute_category_tab2 l_osattribute_category_type;
19361     l_osattribute1_tab2 l_osattribute1_type;
19362     l_osattribute2_tab2 l_osattribute2_type;
19363     l_osattribute3_tab2 l_osattribute3_type;
19364     l_osattribute4_tab2 l_osattribute4_type;
19365     l_osattribute5_tab2 l_osattribute5_type;
19366     l_osattribute6_tab2 l_osattribute6_type;
19367     l_osattribute7_tab2 l_osattribute7_type;
19368     l_osattribute8_tab2 l_osattribute8_type;
19369     l_osattribute9_tab2 l_osattribute9_type;
19370     l_osattribute10_tab2 l_osattribute10_type;
19371     l_osattribute11_tab2 l_osattribute11_type;
19372     l_osattribute12_tab2 l_osattribute12_type;
19373     l_osattribute13_tab2 l_osattribute13_type;
19374     l_osattribute14_tab2 l_osattribute14_type;
19375     l_osattribute15_tab2 l_osattribute15_type;
19376     l_oscreated_by_tab2 l_oscreated_by_type;
19377     l_oscreation_date_tab2 l_oscreation_date_type;
19378     l_oslast_updated_by_tab2 l_oslast_updated_by_type;
19379     l_oslast_update_date_tab2 l_oslast_update_date_type;
19380     l_oslast_update_login_tab2 l_oslast_update_login_type;
19381 
19382   l_new_cle_id NUMBER;
19383   l_new_fa_cle_id NUMBER;
19384 BEGIN
19385   OPEN c26(p_old_id);
19386   LOOP
19387     FETCH c26 bulk collect INTO
19388      l_osid_tab2, l_osobject_version_number_tab2, l_oscle_id_tab2,
19389      l_osfa_cle_id_tab2, l_osinvoice_number_tab2, l_osdate_invoiced_tab2,
19390      l_osdate_due_tab2, l_osshipping_address_id1_tab2, l_osshipping_address_id2_tab2,
19391      l_osshipping_address_code_tab2, l_osattribute_category_tab2, l_osattribute1_tab2,
19392      l_osattribute2_tab2, l_osattribute3_tab2, l_osattribute4_tab2,
19393      l_osattribute5_tab2, l_osattribute6_tab2, l_osattribute7_tab2,
19394      l_osattribute8_tab2, l_osattribute9_tab2, l_osattribute10_tab2,
19395      l_osattribute11_tab2, l_osattribute12_tab2, l_osattribute13_tab2,
19396      l_osattribute14_tab2, l_osattribute15_tab2, l_oscreated_by_tab2,
19397      l_oscreation_date_tab2, l_oslast_updated_by_tab2, l_oslast_update_date_tab2,
19398      l_oslast_update_login_tab2
19399     limit G_BULK_SIZE;
19400     EXIT WHEN l_osid_tab2.COUNT = 0;
19401     FOR i IN l_osid_tab2.first..l_osid_tab2.last
19402     LOOP
19403       l_osid_tab(l_supp_invoice_dtls_counter) := l_osid_tab2(i);
19404       -- Change id
19405       l_osid_tab(l_supp_invoice_dtls_counter) := okc_p_util.raw_to_number(sys_guid());
19406 
19407       l_osobject_version_number_tab(l_supp_invoice_dtls_counter) := l_osobject_version_number_tab2(i);
19408       l_oscle_id_tab(l_supp_invoice_dtls_counter) := l_oscle_id_tab2(i);
19409       -- Change cle_id
19410       IF (l_oscle_id_tab(l_supp_invoice_dtls_counter) IS NOT NULL) THEN
19411         l_new_cle_id := find_mapping_id(l_oscle_id_tab(l_supp_invoice_dtls_counter));
19412         IF (l_new_cle_id = -1) THEN
19413           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19414                       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR : Mapping id not found for ' || l_oscle_id_tab(l_supp_invoice_dtls_counter));
19415           END IF;
19416           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
19417         END IF;
19418         l_oscle_id_tab(l_supp_invoice_dtls_counter) := l_new_cle_id;
19419       END IF;
19420 
19421       l_osfa_cle_id_tab(l_supp_invoice_dtls_counter) := l_osfa_cle_id_tab2(i);
19422       -- Change fa_cle_id
19423       IF (l_osfa_cle_id_tab(l_supp_invoice_dtls_counter) IS NOT NULL) THEN
19424         l_new_fa_cle_id := find_mapping_id(l_osfa_cle_id_tab(l_supp_invoice_dtls_counter));
19425         l_osfa_cle_id_tab(l_supp_invoice_dtls_counter) := l_new_fa_cle_id;
19426       END IF;
19427 
19428       l_osinvoice_number_tab(l_supp_invoice_dtls_counter) := l_osinvoice_number_tab2(i);
19429       l_osdate_invoiced_tab(l_supp_invoice_dtls_counter) := l_osdate_invoiced_tab2(i);
19430       l_osdate_due_tab(l_supp_invoice_dtls_counter) := l_osdate_due_tab2(i);
19431       l_osshipping_address_id1_tab(l_supp_invoice_dtls_counter) := l_osshipping_address_id1_tab2(i);
19432       l_osshipping_address_id2_tab(l_supp_invoice_dtls_counter) := l_osshipping_address_id2_tab2(i);
19433       l_osshipping_address_code_tab(l_supp_invoice_dtls_counter) := l_osshipping_address_code_tab2(i);
19434       l_osattribute_category_tab(l_supp_invoice_dtls_counter) := l_osattribute_category_tab2(i);
19435       l_osattribute1_tab(l_supp_invoice_dtls_counter) := l_osattribute1_tab2(i);
19436       l_osattribute2_tab(l_supp_invoice_dtls_counter) := l_osattribute2_tab2(i);
19437       l_osattribute3_tab(l_supp_invoice_dtls_counter) := l_osattribute3_tab2(i);
19438       l_osattribute4_tab(l_supp_invoice_dtls_counter) := l_osattribute4_tab2(i);
19439       l_osattribute5_tab(l_supp_invoice_dtls_counter) := l_osattribute5_tab2(i);
19440       l_osattribute6_tab(l_supp_invoice_dtls_counter) := l_osattribute6_tab2(i);
19441       l_osattribute7_tab(l_supp_invoice_dtls_counter) := l_osattribute7_tab2(i);
19442       l_osattribute8_tab(l_supp_invoice_dtls_counter) := l_osattribute8_tab2(i);
19443       l_osattribute9_tab(l_supp_invoice_dtls_counter) := l_osattribute9_tab2(i);
19444       l_osattribute10_tab(l_supp_invoice_dtls_counter) := l_osattribute10_tab2(i);
19445       l_osattribute11_tab(l_supp_invoice_dtls_counter) := l_osattribute11_tab2(i);
19446       l_osattribute12_tab(l_supp_invoice_dtls_counter) := l_osattribute12_tab2(i);
19447       l_osattribute13_tab(l_supp_invoice_dtls_counter) := l_osattribute13_tab2(i);
19448       l_osattribute14_tab(l_supp_invoice_dtls_counter) := l_osattribute14_tab2(i);
19449       l_osattribute15_tab(l_supp_invoice_dtls_counter) := l_osattribute15_tab2(i);
19450       l_oscreated_by_tab(l_supp_invoice_dtls_counter) := l_oscreated_by_tab2(i);
19451       l_oscreation_date_tab(l_supp_invoice_dtls_counter) := l_oscreation_date_tab2(i);
19452       l_oslast_updated_by_tab(l_supp_invoice_dtls_counter) := l_oslast_updated_by_tab2(i);
19453       l_oslast_update_date_tab(l_supp_invoice_dtls_counter) := l_oslast_update_date_tab2(i);
19454       l_oslast_update_login_tab(l_supp_invoice_dtls_counter) := l_oslast_update_login_tab2(i);
19455 
19456       l_supp_invoice_dtls_counter := l_supp_invoice_dtls_counter + 1;
19457 
19458     END LOOP;
19459   END LOOP;
19460   CLOSE c26;
19461   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19462       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_supp_invoice_dtls_counter=' || l_supp_invoice_dtls_counter || ' l_osid_tab.count=' || l_osid_tab.COUNT);
19463   END IF;
19464   IF (l_supp_invoice_dtls_counter > 1) THEN
19465     forall i IN l_osid_tab.first..l_osid_tab.last
19466     INSERT INTO okl_supp_invoice_dtls (
19467        id, object_version_number, cle_id,
19468        fa_cle_id, invoice_number, date_invoiced,
19469        date_due, shipping_address_id1, shipping_address_id2,
19470        shipping_address_code, attribute_category, attribute1,
19471        attribute2, attribute3, attribute4,
19472        attribute5, attribute6, attribute7,
19473        attribute8, attribute9, attribute10,
19474        attribute11, attribute12, attribute13,
19475        attribute14, attribute15, created_by,
19476        creation_date, last_updated_by, last_update_date,
19477        last_update_login
19478     ) VALUES (
19479        l_osid_tab(i), 1, l_oscle_id_tab(i),
19480        l_osfa_cle_id_tab(i), l_osinvoice_number_tab(i), l_osdate_invoiced_tab(i),
19481        l_osdate_due_tab(i), l_osshipping_address_id1_tab(i), l_osshipping_address_id2_tab(i),
19482        l_osshipping_address_code_tab(i), l_osattribute_category_tab(i), l_osattribute1_tab(i),
19483        l_osattribute2_tab(i), l_osattribute3_tab(i), l_osattribute4_tab(i),
19484        l_osattribute5_tab(i), l_osattribute6_tab(i), l_osattribute7_tab(i),
19485        l_osattribute8_tab(i), l_osattribute9_tab(i), l_osattribute10_tab(i),
19486        l_osattribute11_tab(i), l_osattribute12_tab(i), l_osattribute13_tab(i),
19487        l_osattribute14_tab(i), l_osattribute15_tab(i), l_created_by,
19488        SYSDATE, l_last_updated_by, SYSDATE,
19489        l_last_update_login
19490     );
19491   END IF;
19492 
19493 EXCEPTION WHEN OTHERS THEN
19494 
19495   x_return_status := OKL_API.G_RET_STS_ERROR;
19496   /*OKL_API.set_message(p_app_name => 'OKL',
19497                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
19498                       p_token1 => 'ASSET_NUMBER',
19499                       p_token1_value => 'okl_supp_invoice_dtls');*/
19500   /* DEBUG */
19501   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19502       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
19503     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing okl_supp_invoice_dtls: l_osid_tab.count=' || l_osid_tab.COUNT || ' ...');
19504   END IF;
19505   IF (l_osid_tab.COUNT > 0) THEN
19506   FOR i IN l_osid_tab.first..l_osid_tab.last
19507   LOOP
19508     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19509           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osid_tab('||i||')=' || l_osid_tab(i));
19510       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_oscle_id_tab('||i||')=' || l_oscle_id_tab(i));
19511       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osfa_cle_id_tab('||i||')=' || l_osfa_cle_id_tab(i));
19512       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osinvoice_number_tab('||i||')=' || l_osinvoice_number_tab(i));
19513       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osdate_invoiced_tab('||i||')=' || l_osdate_invoiced_tab(i));
19514       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osdate_due_tab('||i||')=' || l_osdate_due_tab(i));
19515       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osshipping_address_id1_tab('||i||')=' || l_osshipping_address_id1_tab(i));
19516       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osshipping_address_id2_tab('||i||')=' || l_osshipping_address_id2_tab(i));
19517       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osshipping_address_code_tab('||i||')=' || l_osshipping_address_code_tab(i));
19518       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute_category_tab('||i||')=' || l_osattribute_category_tab(i));
19519       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute1_tab('||i||')=' || l_osattribute1_tab(i));
19520       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute2_tab('||i||')=' || l_osattribute2_tab(i));
19521       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute3_tab('||i||')=' || l_osattribute3_tab(i));
19522       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute4_tab('||i||')=' || l_osattribute4_tab(i));
19523       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute5_tab('||i||')=' || l_osattribute5_tab(i));
19524       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute6_tab('||i||')=' || l_osattribute6_tab(i));
19525       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute7_tab('||i||')=' || l_osattribute7_tab(i));
19526       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute8_tab('||i||')=' || l_osattribute8_tab(i));
19527       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute9_tab('||i||')=' || l_osattribute9_tab(i));
19528       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute10_tab('||i||')=' || l_osattribute10_tab(i));
19529       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute11_tab('||i||')=' || l_osattribute11_tab(i));
19530       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute12_tab('||i||')=' || l_osattribute12_tab(i));
19531       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute13_tab('||i||')=' || l_osattribute13_tab(i));
19532       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute14_tab('||i||')=' || l_osattribute14_tab(i));
19533       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute15_tab('||i||')=' || l_osattribute15_tab(i));
19534     END IF;
19535   END LOOP;
19536   END IF;
19537 
19538   RAISE OKC_API.G_EXCEPTION_ERROR;
19539 
19540 END;
19541 
19542 PROCEDURE get_object1_id1(p_install_location_type_code IN okx_install_items_v.location_type_code%TYPE,
19543                           p_install_location_id IN okx_install_items_v.location_id%TYPE,
19544                           p_instance_number IN okx_install_items_v.instance_number%TYPE,
19545                           x_object_id1_new OUT NOCOPY NUMBER
19546 ) IS
19547 
19548     --Cursors
19549     CURSOR c_get_iti_object_id1(p_party_site_id HZ_PARTY_SITE_USES.PARTY_SITE_ID%TYPE)
19550     IS
19551     SELECT psu.party_site_use_id
19552     FROM HZ_PARTY_SITE_USES psu,
19553          HZ_PARTY_SITES ps
19554     WHERE ps.party_site_id =   psu.party_site_id
19555     AND psu.site_use_type = 'INSTALL_AT'
19556     AND psu.party_site_id = p_party_site_id;
19557 
19558     CURSOR l_site_use_csr (p_location_id IN NUMBER) IS
19559     SELECT psu.party_site_use_id
19560     FROM   hz_party_site_uses psu,
19561            hz_party_sites     ps
19562     WHERE  psu.party_site_id     = ps.party_site_id
19563     AND    psu.site_use_type     = 'INSTALL_AT'
19564     AND    ps.location_id        = p_location_id;
19565 
19566     l_site_use_rec    l_site_use_csr%ROWTYPE;
19567 
19568     --Cursor to get address for error
19569     CURSOR l_address_csr (pty_site_id IN NUMBER ) IS
19570     SELECT SUBSTR(arp_addr_label_pkg.format_address(NULL,hl.address1,hl.address2,hl.address3, hl.address4,hl.city,hl.county,hl.state,hl.province,hl.postal_code,NULL,hl.country,NULL, NULL,NULL,NULL,NULL,NULL,NULL,'n','n',80,1,1),1,80)
19571     FROM hz_locations hl,
19572          hz_party_sites ps
19573     WHERE hl.location_id = ps.location_id
19574     AND   ps.party_site_id = pty_site_id;
19575 
19576     CURSOR l_address_csr2 (loc_id IN NUMBER) IS
19577     SELECT SUBSTR(arp_addr_label_pkg.format_address(NULL,hl.address1,hl.address2,hl.address3, hl.address4,hl.city,hl.county,hl.state,hl.province,hl.postal_code,NULL,hl.country,NULL, NULL,NULL,NULL,NULL,NULL,NULL,'n','n',80,1,1),1,80)
19578     FROM hz_locations hl
19579     WHERE hl.location_id = loc_id;
19580 
19581     l_address VARCHAR2(80);
19582 
19583 BEGIN
19584     --Logic
19585     IF NVL(p_install_location_type_code,OKL_API.G_MISS_CHAR) NOT IN ('HZ_PARTY_SITES','HZ_LOCATIONS') THEN
19586     --Raise Error
19587     OKL_API.Set_Message(p_app_name     => 'OKL_COPY_CONTRACT_PVT',
19588                         p_msg_name     => 'OKL_INVALID_INSTALL_LOC_TYPE',
19589                         p_token1       => 'LOCATION_TYPE',
19590                         p_token1_value => p_install_location_type_code,
19591                         p_token2       => 'LOCATION_TYPE1',
19592                         p_token2_value => 'HZ_PARTY_SITES',
19593                         p_token3       => 'LOCATION_TYPE2',
19594                         p_token3_value => 'HZ_LOCATIONS');
19595     x_return_status := OKL_API.G_RET_STS_ERROR;
19596     RAISE OKL_API.G_EXCEPTION_ERROR;
19597 
19598     ELSIF NVL(p_install_location_type_code,OKL_API.G_MISS_CHAR) = 'HZ_PARTY_SITES' THEN
19599 
19600                 OPEN  c_get_iti_object_id1(p_install_location_id);
19601                 FETCH c_get_iti_object_id1 INTO x_OBJECT_ID1_NEW;
19602                 IF c_get_iti_object_id1%NOTFOUND THEN
19603                     OPEN l_address_csr(pty_site_id => p_install_location_id);
19604                     FETCH l_address_csr INTO l_address;
19605                     CLOSE l_address_csr;
19606                     --Raise Error : not defined as install_at
19607                     OKL_API.Set_Message
19608                              (p_app_name     => 'OKL_COPY_CONTRACT_PVT',
19609                               p_msg_name     => 'OKL_INSTALL_LOC_MISSING_USAGE',
19610                               p_token1       => 'USAGE_TYPE',
19611                               p_token1_value => 'INSTALL_AT',
19612                               p_token2       => 'ADDRESS',
19613                               p_token2_value => l_address,
19614                               p_token3       => 'INSTANCE_NUMBER',
19615                               p_token3_value => p_instance_number);
19616                     x_return_status := OKL_API.G_RET_STS_ERROR;
19617                     RAISE OKL_API.G_EXCEPTION_ERROR;
19618                 END IF;
19619                 CLOSE c_get_iti_object_id1;
19620 
19621     ELSIF NVL(p_install_location_type_code,OKL_API.G_MISS_CHAR) = 'HZ_LOCATIONS' THEN
19622 
19623                 OPEN  l_site_use_csr(p_install_location_id);
19624                 FETCH l_site_use_csr INTO l_site_use_rec;
19625                 IF l_site_use_csr%NOTFOUND THEN
19626                     OPEN l_address_csr2(loc_id => p_install_location_id);
19627                     FETCH l_address_csr2 INTO l_address;
19628                     CLOSE l_address_csr2;
19629                     --Raise Error : not defined as install_at
19630                     OKL_API.Set_Message(p_app_name  => 'OKL_COPY_CONTRACT_PVT2',
19631                               p_msg_name     => 'OKL_INSTALL_LOC_MISSING_USAGE',
19632                               p_token1       => 'USAGE_TYPE',
19633                               p_token1_value => 'INSTALL_AT',
19634                               p_token2       => 'ADDRESS',
19635                               p_token2_value => l_address,
19636                               p_token3       => 'INSTANCE_NUMBER',
19637                               p_token3_value => p_instance_number);
19638                     x_return_status := OKL_API.G_RET_STS_ERROR;
19639                     RAISE OKL_API.G_EXCEPTION_ERROR;
19640 
19641                 END IF;
19642                 x_object_id1_new := l_site_use_rec.party_site_use_id;
19643                 CLOSE l_site_use_csr;
19644 
19645 
19646     END IF;
19647 
19648 END; /* get_object1_id1 */
19649 
19650 PROCEDURE insert_okl_txl_itm_insts2(p_old_id IN okc_k_headers_b.id%TYPE,
19651                                     p_new_id IN okc_k_headers_b.id%TYPE) IS
19652 CURSOR c28(p_id NUMBER) IS
19653 SELECT csi.inventory_item_id,
19654        csi.inv_master_organization_id,
19655        csi.instance_number,
19656        b.id,
19657        b.cle_id,
19658        c.object1_id1,
19659        csi.location_type_code,
19660        csi.location_id,
19661        csi.serial_number
19662 FROM   okx_install_items_v csi,
19663        okc_k_lines_b b,
19664        okc_k_items c
19665 WHERE  b.dnz_chr_id = p_id
19666 AND    b.lse_id = 45
19667 AND    c.dnz_chr_id = p_id
19668 AND    b.id = c.cle_id
19669 AND    csi.id1 = TO_NUMBER(c.object1_id1);
19670 
19671 CURSOR c_get_cle(p_id NUMBER, p_lse_id NUMBER) IS
19672     SELECT id
19673     FROM okc_k_lines_b
19674     WHERE cle_id = p_id
19675     AND lse_id = p_lse_id;
19676 
19677 /*cursor c_get_object1_id1(p_id number, p_lse_id number) is
19678   select c.object1_id2
19679   from   okc_k_items c,
19680          okc_k_lines_b b
19681   where c.cle_id = b.id
19682   and   b.id = p_id
19683   and b.lse_id = p_lse_id;*/
19684 
19685 TYPE l_inventory_item_id_type IS TABLE OF okx_install_items_v.inventory_item_id%TYPE INDEX BY BINARY_INTEGER;
19686 TYPE l_inv_master_org_id_type IS TABLE OF okx_install_items_v.inv_master_organization_id%TYPE INDEX BY BINARY_INTEGER;
19687 TYPE l_instance_number_type IS TABLE OF okx_install_items_v.instance_number%TYPE INDEX BY BINARY_INTEGER;
19688 TYPE l_id_type IS TABLE OF okc_k_lines_b.id%TYPE INDEX BY BINARY_INTEGER;
19689 TYPE l_cle_id_type IS TABLE OF okc_k_lines_b.cle_id%TYPE INDEX BY BINARY_INTEGER;
19690 TYPE l_object1_id1_type IS TABLE OF okc_k_items.object1_id1%TYPE INDEX BY BINARY_INTEGER;
19691 TYPE l_location_type_code_type IS TABLE OF okx_install_items_v.location_type_code%TYPE INDEX BY BINARY_INTEGER;
19692 TYPE l_location_id_type IS TABLE OF okx_install_items_v.location_id%TYPE INDEX BY BINARY_INTEGER;
19693 TYPE l_serial_number_type IS TABLE OF okx_install_items_v.serial_number%TYPE INDEX BY BINARY_INTEGER;
19694 
19695 l_inventory_item_id_tab2 l_inventory_item_id_type;
19696 l_inv_master_org_id_tab2 l_inv_master_org_id_type;
19697 l_instance_number_tab2 l_instance_number_type;
19698 l_id_tab2 l_id_type;
19699 l_cle_id_tab2 l_cle_id_type;
19700 l_object1_id1_tab2 l_object1_id1_type;
19701 l_location_type_code_tab2 l_location_type_code_type;
19702 l_location_id_tab2 l_location_id_type;
19703 l_serial_number_tab2 l_serial_number_type;
19704 
19705 l_inventory_item_id_tab3 l_inventory_item_id_type;
19706 l_inv_master_org_id_tab3 l_inv_master_org_id_type;
19707 l_instance_number_tab3 l_instance_number_type;
19708 l_id_tab3 l_id_type;
19709 l_cle_id_tab3 l_cle_id_type;
19710 l_object1_id1_tab3 l_object1_id1_type;
19711 l_location_type_code_tab3 l_location_type_code_type;
19712 l_location_id_tab3 l_location_id_type;
19713 l_serial_number_tab3 l_serial_number_type;
19714 
19715 -- okl_trx_assets
19716 l_t4id_tab l_tid_type;
19717 l_trx_assets_counter5 NUMBER := 1;
19718 
19719 /* Commented here. To make it global */
19720 -- okl_txl_itm_insts
19721 /*
19722 l_ti2id_tab l_tiid_type;
19723 l_ti2tas_id_tab l_titas_id_type;
19724 l_ti2kle_id_tab l_tikle_id_type;
19725 l_ti2line_number_tab l_tiline_number_type;
19726 l_ti2instance_number_ib_tab l_tiinstance_number_ib_type;
19727 l_ti2object_id1_new_tab l_tiobject_id1_new_type;
19728 l_ti2object_id2_new_tab l_tiobject_id2_new_type;
19729 l_ti2jtot_object_code_new_tab l_tijtot_object_code_new_type;
19730 l_ti2dnz_cle_id_tab l_tidnz_cle_id_type;
19731 l_ti2inventory_item_id_tab l_tiinventory_item_id_type;
19732 l_ti2inv_master_org_id_tab l_tiinv_master_org_id_type;
19733 l_ti2inventory_org_id_tab l_tiinventory_org_id_type;
19734 l_ti2serial_number_tab l_tiserial_number_type;
19735 l_ti2mfg_serial_number_yn_tab l_timfg_serial_number_yn_type;
19736 
19737 --l_txl_itm_insts_counter2 number := 1;
19738 */
19739 l_instance_counter NUMBER := 1;
19740 l_dnz_cle_id NUMBER;
19741 l_object1_id1 VARCHAR2(40);
19742 l_new_kle_id NUMBER;
19743 l_new_cle_id NUMBER;
19744 l_new_line_number NUMBER;
19745 l_new_dnz_cle_id NUMBER;
19746 l_new_object_id1 VARCHAR2(40);
19747 l_new_id NUMBER;
19748 l_local_cle_id NUMBER;
19749 l_local_cle_id2 NUMBER;
19750 
19751 BEGIN
19752   IF (G_DEBUG_ENABLED = 'Y') THEN
19753     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
19754   END IF;
19755   NULL;
19756   OPEN c28(p_old_id);
19757   LOOP
19758     FETCH c28 bulk collect INTO
19759       l_inventory_item_id_tab2, l_inv_master_org_id_tab2,
19760       l_instance_number_tab2, l_id_tab2,
19761       l_cle_id_tab2, l_object1_id1_tab2,
19762       l_location_type_code_tab2, l_location_id_tab2,
19763       l_serial_number_tab2
19764     limit G_BULK_SIZE;
19765     EXIT WHEN l_inventory_item_id_tab2.COUNT=0;
19766     FOR i IN l_inventory_item_id_tab2.first..l_inventory_item_id_tab2.last
19767     LOOP
19768       l_inventory_item_id_tab3(l_instance_counter) := l_inventory_item_id_tab2(i);
19769       l_inv_master_org_id_tab3(l_instance_counter) := l_inv_master_org_id_tab2(i);
19770       l_instance_number_tab3(l_instance_counter) := l_instance_number_tab2(i);
19771       l_id_tab3(l_instance_counter) := l_id_tab2(i);
19772       l_cle_id_tab3(l_instance_counter) := l_cle_id_tab2(i);
19773       l_object1_id1_tab3(l_instance_counter) := l_object1_id1_tab2(i);
19774       l_location_type_code_tab3(l_instance_counter) := l_location_type_code_tab2(i);
19775       l_location_id_tab3(l_instance_counter) := l_location_id_tab2(i);
19776       l_serial_number_tab3(l_instance_counter) := l_serial_number_tab2(i);
19777 
19778       l_instance_counter := l_instance_counter + 1;
19779     END LOOP;
19780   END LOOP;
19781   CLOSE c28;
19782   IF (l_inventory_item_id_tab3.count > 0) THEN
19783   FOR i IN l_inventory_item_id_tab3.first..l_inventory_item_id_tab3.last
19784   LOOP
19785     l_t4id_tab(l_trx_assets_counter5) := okc_p_util.raw_to_number(sys_guid());
19786 
19787     l_ti2id_tab(l_txl_itm_insts_counter2) := okc_p_util.raw_to_number(sys_guid());
19788     l_ti2tas_id_tab(l_txl_itm_insts_counter2) := l_t4id_tab(l_trx_assets_counter5);
19789     l_ti2kle_id_tab(l_txl_itm_insts_counter2) := l_id_tab3(i);
19790     -- Change kle_id
19791     l_new_kle_id := find_mapping_id(l_ti2kle_id_tab(l_txl_itm_insts_counter2));
19792         IF (l_new_kle_id = -1) THEN
19793           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19794                       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR : Mapping id not found for ' || l_ti2kle_id_tab(l_txl_itm_insts_counter2));
19795           END IF;
19796           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
19797         END IF;
19798     l_ti2kle_id_tab(l_txl_itm_insts_counter2) := l_new_kle_id;
19799 
19800     l_new_cle_id := find_mapping_id(l_cle_id_tab3(i));
19801     l_new_line_number := find_cle_line_number2(l_new_cle_id);
19802     IF (l_new_line_number = -1) THEN
19803       l_cle_mapping_tab2(l_trx_assets_counter6).old_id := l_new_cle_id;
19804       l_cle_mapping_tab2(l_trx_assets_counter6).new_id := 1;
19805 
19806       l_trx_assets_counter6 := l_trx_assets_counter6 + 1;
19807       l_new_line_number := 1;
19808     END IF;
19809     l_ti2line_number_tab(l_txl_itm_insts_counter2) := l_new_line_number;
19810     l_ti2instance_number_ib_tab(l_txl_itm_insts_counter2) := l_instance_number_tab3(i);
19811 
19812     -- AKP: to do
19813     --l_ti2object_id1_new_tab(l_txl_itm_insts_counter2) := null;
19814 
19815     get_object1_id1(l_location_type_code_tab3(i), l_location_id_tab3(i), l_instance_number_tab3(i), l_new_object_id1);
19816     l_ti2object_id1_new_tab(l_txl_itm_insts_counter2) := l_new_object_id1;
19817 
19818     l_ti2object_id2_new_tab(l_txl_itm_insts_counter2) := '#';
19819     l_ti2jtot_object_code_new_tab(l_txl_itm_insts_counter2) := 'OKX_PARTSITE';
19820 
19821     /*print('l_id_tab3(' || i || ')=' || l_id_tab3(i));
19822     for r in c_get_cle(l_id_tab3(i) , 33 )
19823     loop
19824       l_dnz_cle_id := r.id;
19825     end loop;*/
19826     l_new_id := find_id(l_id_tab3(i));
19827     --print('l_new_id=' || l_new_id);
19828     IF (l_new_id = -1) THEN
19829       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19830               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR: OLD_LINE_ID to NEW_LINE_ID mapping not found');
19831       END IF;
19832       RAISE OKL_API.G_EXCEPTION_ERROR;
19833     END IF;
19834     l_local_cle_id := find_cid_mapping_id(l_new_id);
19835     --print('l_local_cle_id=' || l_local_cle_id);
19836     IF (l_local_cle_id = -1) THEN
19837       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19838               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR: ID to CLE_ID mapping not found');
19839       END IF;
19840       RAISE OKL_API.G_EXCEPTION_ERROR;
19841     END IF;
19842     l_local_cle_id2 := find_cid_mapping_id(l_local_cle_id);
19843     --print('l_local_cle_id2=' || l_local_cle_id2);
19844     IF (l_local_cle_id2 = -1) THEN
19845       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19846               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR: ID to CLE_ID mapping not found');
19847       END IF;
19848       RAISE OKL_API.G_EXCEPTION_ERROR;
19849     END IF;
19850 
19851     --l_new_dnz_cle_id := find_mapping_id(l_dnz_cle_id);
19852     l_ti2dnz_cle_id_tab(l_txl_itm_insts_counter2) := l_local_cle_id2;
19853     l_ti2inventory_item_id_tab(l_txl_itm_insts_counter2) := l_inventory_item_id_tab3(i);
19854     l_ti2inv_master_org_id_tab(l_txl_itm_insts_counter2) := l_inv_master_org_id_tab3(i);
19855 
19856     /*print('Before c_get_object1_id1:l_id_tab3(' || i || ')=' || l_id_tab3(i));
19857     for r in c_get_object1_id1(l_id_tab3(i) , 34 )
19858     loop
19859       l_object1_id1 := r.object1_id2;
19860     end loop;
19861     l_ti2inventory_org_id_tab(l_txl_itm_insts_counter2) := to_number(l_object1_id1);*/
19862     l_ti2inventory_org_id_tab(l_txl_itm_insts_counter2) := l_inventory_org_id;
19863 
19864     l_ti2serial_number_tab(l_txl_itm_insts_counter2) := l_serial_number_tab3(i);
19865     IF (l_ti2serial_number_tab(l_txl_itm_insts_counter2) IS NULL) THEN
19866       l_ti2mfg_serial_number_yn_tab(l_txl_itm_insts_counter2) := 'N';
19867     ELSE
19868       l_ti2mfg_serial_number_yn_tab(l_txl_itm_insts_counter2) := 'Y';
19869     END IF;
19870 
19871     l_txl_itm_insts_counter2 := l_txl_itm_insts_counter2 + 1;
19872 
19873     l_trx_assets_counter5 := l_trx_assets_counter5 + 1;
19874   END LOOP;
19875   END IF; /* if l_inventory_item_id_tab3.count > 0 */
19876 
19877   -- Now populate
19878   IF (l_trx_assets_counter5 > 1) THEN
19879     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19880           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_trx_assets_counter5='||l_trx_assets_counter5 || ' l_t4id_tab.count='||l_t4id_tab.COUNT);
19881     END IF;
19882     forall i IN l_t4id_tab.first..l_t4id_tab.last
19883       INSERT INTO okl_trx_assets (
19884         id, tas_type, object_version_number,
19885         tsu_code, try_id, date_trans_occurred,
19886         created_by, creation_date, last_updated_by,
19887         last_update_date, last_update_login, trans_number
19888         ,transaction_date
19889       ) VALUES (
19890         l_t4id_tab(i), p_trans_type, 1,
19891         'ENTERED', l_try_id, SYSDATE, -- AKP: populate try_id properly
19892         l_created_by, SYSDATE, l_last_updated_by,
19893         SYSDATE, l_last_update_login, okl_trn_seq.NEXTVAL
19894         ,SYSDATE
19895       );
19896   END IF;
19897 
19898   IF (l_txl_itm_insts_counter2  > 1) THEN
19899     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19900           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_txl_itm_insts_counter2='||l_txl_itm_insts_counter2 || ' l_ti2id_tab.count='||l_ti2id_tab.COUNT);
19901     END IF;
19902     forall i IN l_ti2id_tab.first..l_ti2id_tab.last
19903     INSERT INTO okl_txl_itm_insts (
19904       id, object_version_number, tas_id,
19905       tal_type, kle_id, line_number,
19906       instance_number_ib, object_id1_new, object_id2_new,
19907       jtot_object_code_new, dnz_cle_id, inventory_item_id,
19908       inv_master_org_id, inventory_org_id, created_by,
19909       creation_date, last_updated_by, last_update_date,
19910       last_update_login, serial_number, mfg_serial_number_yn
19911     ) VALUES (
19912       l_ti2id_tab(i), 1, l_ti2tas_id_tab(i),
19913       p_trans_type, l_ti2kle_id_tab(i), l_ti2line_number_tab(i),
19914       l_ti2instance_number_ib_tab(i), l_ti2object_id1_new_tab(i), l_ti2object_id2_new_tab(i),
19915       l_ti2jtot_object_code_new_tab(i), l_ti2dnz_cle_id_tab(i), l_ti2inventory_item_id_tab(i),
19916       l_ti2inv_master_org_id_tab(i), l_ti2inventory_org_id_tab(i), l_created_by,
19917       SYSDATE, l_last_updated_by, SYSDATE,
19918       l_last_update_login, l_ti2serial_number_tab(i), l_ti2mfg_serial_number_yn_tab(i)
19919     );
19920   END IF;
19921 
19922 EXCEPTION WHEN OTHERS THEN
19923 
19924   x_return_status := OKL_API.G_RET_STS_ERROR;
19925   /*OKL_API.set_message(p_app_name => 'OKL',
19926                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
19927                       p_token1 => 'ASSET_NUMBER',
19928                       p_token1_value => 'insert_okl_txl_itm_instst2');*/
19929     /* DEBUG */
19930   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19931       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
19932     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing okl_trx_assets:l_t4id_tab.count=' || l_t4id_tab.COUNT || ' ...');
19933   END IF;
19934   IF (l_t4id_tab.COUNT > 0) THEN
19935   FOR i IN l_t4id_tab.first..l_t4id_tab.last
19936   LOOP
19937     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19938           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t4id_tab('||i||')=' || l_t4id_tab(i));
19939       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_try_id=' || l_try_id);
19940       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'p_trans_type=' || p_trans_type);
19941     END IF;
19942   END LOOP;
19943   END IF;
19944 
19945   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19946       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing okl_txl_itm_insts:l_ti2id_tab.count=' || l_ti2id_tab.COUNT || ' ...');
19947   END IF;
19948   IF (l_ti2id_tab.COUNT > 0) THEN
19949   FOR i IN l_ti2id_tab.first..l_ti2id_tab.last
19950   LOOP
19951     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19952           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ti2id_tab('||i||')=' || l_ti2id_tab(i));
19953       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ti2tas_id_tab('||i||')=' || l_ti2tas_id_tab(i));
19954       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'p_trans_type=' || p_trans_type);
19955       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ti2kle_id_tab('||i||')=' || l_ti2kle_id_tab(i));
19956       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ti2line_number_tab('||i||')=' || l_ti2line_number_tab(i));
19957       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ti2instance_number_ib_tab('||i||')=' || l_ti2instance_number_ib_tab(i));
19958       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ti2object_id1_new_tab('||i||')=' || l_ti2object_id1_new_tab(i));
19959       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ti2object_id2_new_tab('||i||')=' || l_ti2object_id2_new_tab(i));
19960       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ti2jtot_object_code_new_tab('||i||')=' || l_ti2jtot_object_code_new_tab(i));
19961       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ti2dnz_cle_id_tab('||i||')=' || l_ti2dnz_cle_id_tab(i));
19962       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ti2inventory_item_id_tab('||i||')=' || l_ti2inventory_item_id_tab(i));
19963       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ti2inv_master_org_id_tab('||i||')=' || l_ti2inv_master_org_id_tab(i));
19964       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ti2inventory_org_id_tab('||i||')=' || l_ti2inventory_org_id_tab(i));
19965       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ti2serial_number_tab('||i||')=' || l_ti2serial_number_tab(i));
19966       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ti2mfg_serial_number_yn_tab('||i||')=' || l_ti2mfg_serial_number_yn_tab(i));
19967     END IF;
19968   END LOOP;
19969   END IF;
19970 
19971   RAISE OKC_API.G_EXCEPTION_ERROR;
19972 
19973 END; /* insert_okl_txl_itm_insts2 */
19974 
19975 FUNCTION find_sid_mapping_id(p_id IN NUMBER) RETURN NUMBER IS
19976 hi NUMBER;
19977 lo NUMBER;
19978 m NUMBER;
19979 BEGIN
19980   lo := 1;
19981   hi := l_counter - 1;
19982   WHILE (lo <= hi) LOOP
19983     m := FLOOR((hi + lo)/2);
19984     IF (l_sid_mapping_tab(m).id = p_id) THEN
19985       RETURN l_sid_mapping_tab(m).lse_id;
19986     ELSIF (l_sid_mapping_tab(m).id > p_id) THEN
19987       hi := m - 1;
19988     ELSE
19989       lo := m + 1;
19990     END IF;
19991   END LOOP;
19992   RETURN -1;
19993 END;  /* find_sid_mapping_id */
19994 
19995 PROCEDURE sort_sid_mapping_tab IS
19996   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
19997   --a numtabtype;
19998   l_stack numtabtype;
19999   l_stack_index NUMBER := 0;
20000   N NUMBER;
20001   R NUMBER;
20002   L NUMBER;
20003   P NUMBER;
20004   W NUMBER;
20005   W2 NUMBER;
20006   X NUMBER;
20007   I NUMBER;
20008   J NUMBER;
20009 BEGIN
20010   IF (G_DEBUG_ENABLED = 'Y') THEN
20011     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
20012   END IF;
20013   NULL;
20014 
20015   N := l_counter - 1;
20016   IF (N < 2) THEN
20017     RETURN;
20018   END IF;
20019   l_stack_index := l_stack_index + 1;
20020   l_stack(l_stack_index) := 1;
20021   l_stack_index := l_stack_index + 1;
20022   l_stack(l_stack_index) := N;
20023 
20024   --dbms_output.put_line('l_stack_index=' || l_stack_index);
20025   WHILE l_stack_index > 0
20026   LOOP
20027     R := l_stack(l_stack_index);
20028     l_stack_index := l_stack_index - 1;
20029     L := l_stack(l_stack_index);
20030     l_stack_index := l_stack_index - 1;
20031     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
20032     WHILE 1=1
20033     LOOP -- loop until L >= R
20034       I := L;
20035       J := R;
20036       P := FLOOR((L+R)/2);
20037       --if (a(L) > a(P)) then
20038       IF (l_sid_mapping_tab(L).id > l_sid_mapping_tab(P).id)
20039       THEN
20040         W := l_sid_mapping_tab(L).id;
20041         W2 := l_sid_mapping_tab(L).lse_id;
20042         l_sid_mapping_tab(L).id :=l_sid_mapping_tab(P).id;
20043         l_sid_mapping_tab(L).lse_id :=l_sid_mapping_tab(P).lse_id;
20044         l_sid_mapping_tab(P).id := W;
20045         l_sid_mapping_tab(P).lse_id := W2;
20046       END IF;
20047       --if (a(L) > a(R)) then
20048       IF (l_sid_mapping_tab(L).id > l_sid_mapping_tab(R).id)
20049       THEN
20050         W := l_sid_mapping_tab(L).id;
20051         W2 := l_sid_mapping_tab(L).lse_id;
20052         l_sid_mapping_tab(L).id :=l_sid_mapping_tab(R).id;
20053         l_sid_mapping_tab(L).lse_id :=l_sid_mapping_tab(R).lse_id;
20054         l_sid_mapping_tab(R).id := W;
20055         l_sid_mapping_tab(R).lse_id := W2;
20056       END IF;
20057       --if (a(P) > a(R)) then
20058       IF (l_sid_mapping_tab(P).id > l_sid_mapping_tab(R).id)
20059       THEN
20060         W := l_sid_mapping_tab(P).id;
20061         W2 := l_sid_mapping_tab(P).lse_id;
20062         l_sid_mapping_tab(P).id :=l_sid_mapping_tab(R).id;
20063         l_sid_mapping_tab(P).lse_id :=l_sid_mapping_tab(R).lse_id;
20064         l_sid_mapping_tab(R).id := W;
20065         l_sid_mapping_tab(R).lse_id := W2;
20066       END IF;
20067       --X := a(P);
20068       X := l_sid_mapping_tab(P).id;
20069       WHILE 1=1
20070       LOOP    -- until I > J
20071         --while (a(I) < X) loop
20072         WHILE (l_sid_mapping_tab(I).id < X) LOOP
20073           I := I + 1;
20074         END LOOP;
20075         WHILE (X < l_sid_mapping_tab(J).id) LOOP
20076           J := J - 1;
20077         END LOOP;
20078         IF (I <= J) THEN
20079           W := l_sid_mapping_tab(I).id;
20080           W2 := l_sid_mapping_tab(I).lse_id;
20081           l_sid_mapping_tab(I).id :=l_sid_mapping_tab(J).id;
20082           l_sid_mapping_tab(I).lse_id :=l_sid_mapping_tab(J).lse_id;
20083           l_sid_mapping_tab(J).id := W;
20084           l_sid_mapping_tab(J).lse_id := W2;
20085           I := I + 1;
20086           J := J - 1;
20087         END IF;
20088         EXIT WHEN I > J;
20089       END LOOP;
20090       IF (J - L < R - I) THEN
20091         IF (I < R) THEN
20092           --push(I); push(R);
20093           l_stack_index := l_stack_index + 1;
20094           l_stack(l_stack_index) := I;
20095           l_stack_index := l_stack_index + 1;
20096           l_stack(l_stack_index) := R;
20097           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
20098         END IF;
20099         R := J;
20100       ELSE
20101         IF (L < J) THEN
20102           --push(L); push(J);
20103           l_stack_index := l_stack_index + 1;
20104           l_stack(l_stack_index) := L;
20105           l_stack_index := l_stack_index + 1;
20106           l_stack(l_stack_index) := J;
20107           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
20108         END IF;
20109         L := I;
20110       END IF;
20111 
20112       EXIT WHEN (L >= R);
20113     END LOOP;
20114   END LOOP;
20115 
20116 EXCEPTION WHEN OTHERS THEN
20117 
20118   x_return_status := OKL_API.G_RET_STS_ERROR;
20119   /*OKL_API.set_message(p_app_name => 'OKL',
20120                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
20121                       p_token1 => 'ASSET_NUMBER',
20122                       p_token1_value => 'sort_sid_mapping_tab');*/
20123     /* DEBUG */
20124   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20125       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
20126     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_sid_mapping_tab:l_sid_mapping_tab N=' || N || ' ...');
20127   END IF;
20128 
20129   --print array
20130   FOR i IN 1..N
20131   LOOP
20132     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20133           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sid_mapping_tab('||i||')=' || l_sid_mapping_tab(i).id || ':' || l_sid_mapping_tab(i).lse_id);
20134     END IF;
20135   END LOOP;
20136 
20137   RAISE OKC_API.G_EXCEPTION_ERROR;
20138 
20139 END;  /* sort_sid_mapping_tab */
20140 
20141 PROCEDURE raise_business_event_header(
20142                   p_chr_id IN NUMBER
20143                  ,x_return_status OUT NOCOPY VARCHAR2
20144 )
20145 	IS
20146 	  l_check VARCHAR2(1);
20147           l_parameter_list           wf_parameter_list_t;
20148 BEGIN
20149 
20150   x_return_status := Okc_Api.G_RET_STS_SUCCESS;
20151   -- Our contract is always new. So commented following check
20152   --IF (p_source_code = 'new') THEN
20153    wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID,p_chr_id,l_parameter_list);
20154    OKL_WF_PVT.raise_event (p_api_version    => p_api_version,
20155                                  p_init_msg_list  => p_init_msg_list,
20156 				 x_return_status  => x_return_status,
20157 				 x_msg_count      => x_msg_count,
20158 				 x_msg_data       => x_msg_data,
20159 				 p_event_name     => G_WF_EVT_KHR_CREATED,
20160 				 p_parameters     => l_parameter_list);
20161 
20162   --END IF;
20163 
20164      EXCEPTION
20165      WHEN OTHERS THEN
20166        x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
20167        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20168 END raise_business_event_header;
20169 
20170 PROCEDURE raise_business_event(
20171                 p_api_version       IN NUMBER,
20172                 p_init_msg_list     IN VARCHAR2,
20173                 x_return_status     OUT NOCOPY VARCHAR2,
20174                 x_msg_count         OUT NOCOPY NUMBER,
20175                 x_msg_data          OUT NOCOPY VARCHAR2,
20176                 p_event_name        IN wf_events.name%TYPE,
20177                 p_parameter_list    IN wf_parameter_list_t,
20178                 p_contract_process  IN VARCHAR2) IS
20179 
20180 l_chr_id              okc_k_headers_b.id%TYPE;
20181 --l_contract_process    VARCHAR2(30);
20182 l_parameter_list      WF_PARAMETER_LIST_T := p_parameter_list;
20183 
20184 BEGIN
20185   -- check to see if the the contract_id is not null, this is required since
20186   -- credit limit events do not necessarily pass a contract
20187   l_chr_id := wf_event.GetValueForParameter(G_WF_ITM_CONTRACT_ID,p_parameter_list);
20188   IF(l_chr_id IS NOT NULL)THEN
20189     -- if there exists a contract in context, then derive the contract process status
20190     --l_contract_process := okl_lla_util_pvt.get_contract_process(l_chr_id);
20191     IF(p_contract_process IS NOT NULL)THEN
20192        -- add the contract process status to the parameter list only the value is not null
20193        wf_event.AddParameterToList(G_WF_ITM_CONTRACT_PROCESS,p_contract_process,l_parameter_list);
20194     END IF;
20195   END IF;
20196   OKL_WF_PVT.raise_event (p_api_version    => p_api_version,
20197 			  p_init_msg_list  => p_init_msg_list,
20198 			  x_return_status  => x_return_status,
20199 			  x_msg_count      => x_msg_count,
20200 			  x_msg_data       => x_msg_data,
20201 			  p_event_name     => p_event_name,
20202 			  p_parameters     => l_parameter_list);
20203 
20204   EXCEPTION
20205     WHEN OTHERS THEN
20206       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
20207       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20208 END raise_business_event;
20209 
20210 PROCEDURE raise_business_event_subsidy(p_api_version IN NUMBER,
20211                                  p_init_msg_list IN VARCHAR2,
20212                                  p_chr_id IN okc_k_headers_b.id%TYPE,
20213                                  p_asset_id IN okc_k_lines_b.id%TYPE,
20214                                  p_subsidy_id IN okl_subsidies_b.id%TYPE,
20215                                  p_event_name IN VARCHAR2,
20216                                  p_contract_process IN VARCHAR2,
20217                                  x_return_status OUT NOCOPY VARCHAR2,
20218                                  x_msg_count OUT NOCOPY NUMBER,
20219                                  x_msg_data OUT NOCOPY VARCHAR2
20220                                  ) IS
20221     l_parameter_list wf_parameter_list_t;
20222     l_contract_process VARCHAR2(20);
20223   BEGIN
20224     x_return_status := OKL_API.G_RET_STS_SUCCESS;
20225 
20226     -- wrapper API to get contract process. this API determines in which status the
20227     -- contract in question is.
20228     --l_contract_process := okl_lla_util_pvt.get_contract_process(p_chr_id => p_chr_id);
20229     wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID, p_chr_id, l_parameter_list);
20230     wf_event.AddParameterToList(G_WF_ITM_ASSET_ID, p_asset_id, l_parameter_list);
20231     wf_event.AddParameterToList(G_WF_ITM_SUBSIDY_ID, p_subsidy_id, l_parameter_list);
20232     wf_event.AddParameterToList(G_WF_ITM_CONTRACT_PROCESS, p_contract_process, l_parameter_list);
20233     OKL_WF_PVT.raise_event(p_api_version    => p_api_version,
20234                            p_init_msg_list  => p_init_msg_list,
20235                            x_return_status  => x_return_status,
20236                            x_msg_count      => x_msg_count,
20237                            x_msg_data       => x_msg_data,
20238                            p_event_name     => p_event_name,
20239                            p_parameters     => l_parameter_list);
20240   EXCEPTION
20241     WHEN OTHERS THEN
20242     x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
20243     RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20244 END raise_business_event_subsidy;
20245 
20246 PROCEDURE raise_business_event_itm(
20247         p_api_version      IN NUMBER
20248        ,p_init_msg_list    IN VARCHAR2 DEFAULT OKC_API.G_FALSE
20249 	      ,x_return_status    OUT NOCOPY VARCHAR2
20250        ,x_msg_count        OUT NOCOPY NUMBER
20251        ,x_msg_data         OUT NOCOPY VARCHAR2
20252        ,p_event_name       IN WF_EVENTS.NAME%TYPE
20253        ,p_event_param_list IN WF_PARAMETER_LIST_T
20254        ,p_contract_process IN VARCHAR2
20255     )IS
20256 	    --l_process VARCHAR2(20);
20257      --p_chr_id  okc_k_headers_b.id%TYPE;
20258      l_parameter_list WF_PARAMETER_LIST_T := p_event_param_list;
20259    BEGIN
20260      --p_chr_id := wf_event.GetValueForParameter(G_WF_ITM_CONTRACT_ID,p_event_param_list);
20261      --l_process := Okl_Lla_Util_Pvt.get_contract_process(p_chr_id);
20262      wf_event.AddParameterToList(G_WF_ITM_CONTRACT_PROCESS,p_contract_process,l_parameter_list);
20263 
20264      OKL_WF_PVT.raise_event (p_api_version    => p_api_version,
20265                              p_init_msg_list  => p_init_msg_list,
20266                              x_return_status  => x_return_status,
20267                              x_msg_count      => x_msg_count,
20268                              x_msg_data       => x_msg_data,
20269                              p_event_name     => p_event_name,
20270                              p_parameters     => l_parameter_list);
20271    EXCEPTION
20272    WHEN OTHERS THEN
20273      x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
20274      RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20275 END raise_business_event_itm;
20276 
20277 PROCEDURE raise_business_event_dep(p_api_version IN NUMBER,
20278                                   p_init_msg_list IN VARCHAR2,
20279                                   p_chr_id IN okc_k_headers_b.id%TYPE,
20280                                   p_asset_id IN okc_k_lines_b.id%TYPE,
20281                                   p_book_code IN okl_txl_assets_b.corporate_book%TYPE,
20282                                   p_event_name IN VARCHAR2,
20283                                   p_contract_process IN VARCHAR2,
20284                                   x_return_status OUT NOCOPY VARCHAR2,
20285                                   x_msg_count OUT NOCOPY NUMBER,
20286                                   x_msg_data OUT NOCOPY VARCHAR2
20287                                   ) IS
20288      l_parameter_list wf_parameter_list_t;
20289    BEGIN
20290      x_return_status := OKL_API.G_RET_STS_SUCCESS;
20291 
20292      -- wrapper API to get contract process. this API determines in which status the
20293      -- contract in question is.
20294      --l_contract_process := okl_lla_util_pvt.get_contract_process(p_chr_id => p_chr_id);
20295      wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID, p_chr_id, l_parameter_list);
20296      wf_event.AddParameterToList(G_WF_ITM_ASSET_ID, p_asset_id, l_parameter_list);
20297      wf_event.AddParameterToList(G_WF_ITM_BOOK_CODE, p_book_code, l_parameter_list);
20298      wf_event.AddParameterToList(G_WF_ITM_CONTRACT_PROCESS, p_contract_process, l_parameter_list);
20299      OKL_WF_PVT.raise_event(p_api_version    => p_api_version,
20300                             p_init_msg_list  => p_init_msg_list,
20301                             x_return_status  => x_return_status,
20302                             x_msg_count      => x_msg_count,
20303                             x_msg_data       => x_msg_data,
20304                             p_event_name     => p_event_name,
20305                             p_parameters     => l_parameter_list);
20306 
20307    EXCEPTION
20308      WHEN OTHERS THEN
20309      x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
20310      RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20311 END raise_business_event_dep;
20312 
20313 
20314    PROCEDURE raise_business_event_txd(p_api_version IN NUMBER,
20315                                   p_init_msg_list IN VARCHAR2,
20316                                   p_chr_id IN okc_k_headers_b.id%TYPE,
20317                                   p_asset_id IN okc_k_lines_b.id%TYPE,
20318                                   p_event_name IN VARCHAR2,
20319                                   p_contract_process IN VARCHAR2,
20320                                   x_return_status OUT NOCOPY VARCHAR2,
20321                                   x_msg_count OUT NOCOPY NUMBER,
20322                                   x_msg_data OUT NOCOPY VARCHAR2
20323                                   ) IS
20324      l_parameter_list wf_parameter_list_t;
20325      --l_contract_process VARCHAR2(20);
20326    BEGIN
20327      x_return_status := OKL_API.G_RET_STS_SUCCESS;
20328 
20329      -- wrapper API to get contract process. this API determines in which status the
20330      -- contract in question is.
20331      --l_contract_process := okl_lla_util_pvt.get_contract_process(p_chr_id => p_chr_id);
20332      wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID, p_chr_id, l_parameter_list);
20333      wf_event.AddParameterToList(G_WF_ITM_ASSET_ID, p_asset_id, l_parameter_list);
20334      wf_event.AddParameterToList(G_WF_ITM_CONTRACT_PROCESS, p_contract_process, l_parameter_list);
20335 
20336      OKL_WF_PVT.raise_event(p_api_version    => p_api_version,
20337                             p_init_msg_list  => p_init_msg_list,
20338                             x_return_status  => x_return_status,
20339                             x_msg_count      => x_msg_count,
20340                             x_msg_data       => x_msg_data,
20341                             p_event_name     => p_event_name,
20342                             p_parameters     => l_parameter_list);
20343    EXCEPTION
20344      WHEN OTHERS THEN
20345      x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
20346      RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20347    END raise_business_event_txd;
20348 
20349 PROCEDURE raise_business_event_itm
20350                            (p_api_version IN NUMBER,
20351                             p_init_msg_list IN VARCHAR2,
20352                             p_chr_id IN okc_k_headers_b.id%TYPE,
20353                             p_asset_id IN okc_k_lines_b.id%TYPE,
20354                             p_ser_num IN okl_txl_itm_insts.serial_number%TYPE,
20355                             p_event_name IN VARCHAR2,
20356                             p_contract_process IN VARCHAR2,
20357                             x_return_status OUT NOCOPY VARCHAR2,
20358                             x_msg_count OUT NOCOPY NUMBER,
20359                             x_msg_data OUT NOCOPY VARCHAR2
20360                            ) IS
20361   l_parameter_list wf_parameter_list_t;
20362 BEGIN
20363   x_return_status := OKL_API.G_RET_STS_SUCCESS;
20364 
20365   wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID, p_chr_id, l_parameter_list);
20366   wf_event.AddParameterToList(G_WF_ITM_ASSET_ID, p_asset_id, l_parameter_list);
20367   wf_event.AddParameterToList(G_WF_ITM_SERIAL_NUM, p_ser_num, l_parameter_list);
20368   wf_event.AddParameterToList(G_WF_ITM_CONTRACT_PROCESS, p_contract_process, l_parameter_list);
20369 
20370   OKL_WF_PVT.raise_event(p_api_version    => p_api_version,
20371                          p_init_msg_list  => p_init_msg_list,
20372                          x_return_status  => x_return_status,
20373                          x_msg_count      => x_msg_count,
20374                          x_msg_data       => x_msg_data,
20375                          p_event_name     => p_event_name,
20376                          p_parameters     => l_parameter_list);
20377 EXCEPTION
20378   WHEN OTHERS THEN
20379   x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
20380   RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20381 END raise_business_event_itm;
20382 
20383    PROCEDURE raise_business_event_supp
20384                                  (p_api_version IN NUMBER,
20385                                   p_init_msg_list IN VARCHAR2,
20386                                   p_chr_id IN okc_k_headers_b.id%TYPE,
20387                                   p_asset_id IN okc_k_lines_b.id%TYPE,
20388                                   p_vendor_id IN po_vendors.vendor_id%TYPE,
20389                                   p_event_name IN VARCHAR2,
20390                                   p_contract_process IN VARCHAR2,
20391                                   x_return_status OUT NOCOPY VARCHAR2,
20392                                   x_msg_count OUT NOCOPY NUMBER,
20393                                   x_msg_data OUT NOCOPY VARCHAR2
20394                                   ) IS
20395      l_parameter_list wf_parameter_list_t;
20396    BEGIN
20397      x_return_status := OKL_API.G_RET_STS_SUCCESS;
20398 
20399      -- wrapper API to get contract process. this API determines in which status the
20400      -- contract in question is.
20401      --l_contract_process := okl_lla_util_pvt.get_contract_process(p_chr_id => p_chr_id);
20402      wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID, p_chr_id, l_parameter_list);
20403      wf_event.AddParameterToList(G_WF_ITM_ASSET_ID, p_asset_id, l_parameter_list);
20404      wf_event.AddParameterToList(G_WF_ITM_PARTY_ID, p_vendor_id, l_parameter_list);
20405      wf_event.AddParameterToList(G_WF_ITM_CONTRACT_PROCESS, p_contract_process, l_parameter_list);
20406 
20407      OKL_WF_PVT.raise_event(p_api_version    => p_api_version,
20408                             p_init_msg_list  => p_init_msg_list,
20409                             x_return_status  => x_return_status,
20410                             x_msg_count      => x_msg_count,
20411                             x_msg_data       => x_msg_data,
20412                             p_event_name     => p_event_name,
20413                             p_parameters     => l_parameter_list);
20414    EXCEPTION
20415      WHEN OTHERS THEN
20416      x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
20417      RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20418    END raise_business_event_supp;
20419 
20420 PROCEDURE raise_business_event_rules
20421                           (p_api_version IN NUMBER,
20422                            p_init_msg_list IN VARCHAR2,
20423                            x_return_status OUT NOCOPY VARCHAR2,
20424                            x_msg_count OUT NOCOPY NUMBER,
20425                            x_msg_data OUT NOCOPY VARCHAR2,
20426                            p_event_name IN VARCHAR2,
20427                            p_event_param_list IN WF_PARAMETER_LIST_T,
20428                            p_contract_process IN VARCHAR2
20429                           ) IS
20430   --l_contract_process VARCHAR2(20);
20431   l_event_param_list WF_PARAMETER_LIST_T := p_event_param_list;
20432 BEGIN
20433   x_return_status := OKL_API.G_RET_STS_SUCCESS;
20434 
20435   wf_event.AddParameterToList(G_WF_ITM_CONTRACT_PROCESS, p_contract_process, l_event_param_list);
20436 
20437   OKL_WF_PVT.raise_event(p_api_version    => p_api_version,
20438                          p_init_msg_list  => p_init_msg_list,
20439                          x_return_status  => x_return_status,
20440                          x_msg_count      => x_msg_count,
20441                          x_msg_data       => x_msg_data,
20442                          p_event_name     => p_event_name,
20443                          p_parameters     => l_event_param_list);
20444 EXCEPTION
20445   WHEN OTHERS THEN
20446   x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
20447   RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20448 END raise_business_event_rules;
20449 
20450 FUNCTION find_ssid_mapping_id(p_id IN NUMBER) RETURN VARCHAR2 IS
20451 hi NUMBER;
20452 lo NUMBER;
20453 m NUMBER;
20454 BEGIN
20455   lo := 1;
20456   hi := l_ssid_counter - 1;
20457   WHILE (lo <= hi) LOOP
20458     m := FLOOR((hi + lo)/2);
20459     IF (l_ssid_mapping_tab(m).cle_id = p_id) THEN
20460       RETURN l_ssid_mapping_tab(m).object1_id1;
20461     ELSIF (l_ssid_mapping_tab(m).cle_id > p_id) THEN
20462       hi := m - 1;
20463     ELSE
20464       lo := m + 1;
20465     END IF;
20466   END LOOP;
20467   RETURN NULL;
20468 END;  /* find_ssid_mapping_id */
20469 
20470 PROCEDURE sort_ssid_mapping_tab IS
20471   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
20472   --a numtabtype;
20473   l_stack numtabtype;
20474   l_stack_index NUMBER := 0;
20475   N NUMBER;
20476   R NUMBER;
20477   L NUMBER;
20478   P NUMBER;
20479   W NUMBER;
20480   W2 VARCHAR2(40);
20481   X NUMBER;
20482   I NUMBER;
20483   J NUMBER;
20484 BEGIN
20485   IF (G_DEBUG_ENABLED = 'Y') THEN
20486     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
20487   END IF;
20488   NULL;
20489 
20490   N := l_ssid_counter - 1;
20491   IF (N < 2) THEN
20492     RETURN;
20493   END IF;
20494   l_stack_index := l_stack_index + 1;
20495   l_stack(l_stack_index) := 1;
20496   l_stack_index := l_stack_index + 1;
20497   l_stack(l_stack_index) := N;
20498 
20499   --dbms_output.put_line('l_stack_index=' || l_stack_index);
20500   WHILE l_stack_index > 0
20501   LOOP
20502     R := l_stack(l_stack_index);
20503     l_stack_index := l_stack_index - 1;
20504     L := l_stack(l_stack_index);
20505     l_stack_index := l_stack_index - 1;
20506     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
20507     WHILE 1=1
20508     LOOP -- loop until L >= R
20509       I := L;
20510       J := R;
20511       P := FLOOR((L+R)/2);
20512       --if (a(L) > a(P)) then
20513       IF (l_ssid_mapping_tab(L).cle_id > l_ssid_mapping_tab(P).cle_id)
20514       THEN
20515         W := l_ssid_mapping_tab(L).cle_id;
20516         W2 := l_ssid_mapping_tab(L).object1_id1;
20517         l_ssid_mapping_tab(L).cle_id :=l_ssid_mapping_tab(P).cle_id;
20518         l_ssid_mapping_tab(L).object1_id1 :=l_ssid_mapping_tab(P).object1_id1;
20519         l_ssid_mapping_tab(P).cle_id := W;
20520         l_ssid_mapping_tab(P).object1_id1 := W2;
20521       END IF;
20522       --if (a(L) > a(R)) then
20523       IF (l_ssid_mapping_tab(L).cle_id > l_ssid_mapping_tab(R).cle_id)
20524       THEN
20525         W := l_ssid_mapping_tab(L).cle_id;
20526         W2 := l_ssid_mapping_tab(L).object1_id1;
20527         l_ssid_mapping_tab(L).cle_id :=l_ssid_mapping_tab(R).cle_id;
20528         l_ssid_mapping_tab(L).object1_id1 :=l_ssid_mapping_tab(R).object1_id1;
20529         l_ssid_mapping_tab(R).cle_id := W;
20530         l_ssid_mapping_tab(R).object1_id1 := W2;
20531       END IF;
20532       --if (a(P) > a(R)) then
20533       IF (l_ssid_mapping_tab(P).cle_id > l_ssid_mapping_tab(R).cle_id)
20534       THEN
20535         W := l_ssid_mapping_tab(P).cle_id;
20536         W2 := l_ssid_mapping_tab(P).object1_id1;
20537         l_ssid_mapping_tab(P).cle_id :=l_ssid_mapping_tab(R).cle_id;
20538         l_ssid_mapping_tab(P).object1_id1 :=l_ssid_mapping_tab(R).object1_id1;
20539         l_ssid_mapping_tab(R).cle_id := W;
20540         l_ssid_mapping_tab(R).object1_id1 := W2;
20541       END IF;
20542       --X := a(P);
20543       X := l_ssid_mapping_tab(P).cle_id;
20544       WHILE 1=1
20545       LOOP    -- until I > J
20546         --while (a(I) < X) loop
20547         WHILE (l_ssid_mapping_tab(I).cle_id < X) LOOP
20548           I := I + 1;
20549         END LOOP;
20550         WHILE (X < l_ssid_mapping_tab(J).cle_id) LOOP
20551           J := J - 1;
20552         END LOOP;
20553         IF (I <= J) THEN
20554           W := l_ssid_mapping_tab(I).cle_id;
20555           W2 := l_ssid_mapping_tab(I).object1_id1;
20556           l_ssid_mapping_tab(I).cle_id :=l_ssid_mapping_tab(J).cle_id;
20557           l_ssid_mapping_tab(I).object1_id1 :=l_ssid_mapping_tab(J).object1_id1;
20558           l_ssid_mapping_tab(J).cle_id := W;
20559           l_ssid_mapping_tab(J).object1_id1 := W2;
20560           I := I + 1;
20561           J := J - 1;
20562         END IF;
20563         EXIT WHEN I > J;
20564       END LOOP;
20565       IF (J - L < R - I) THEN
20566         IF (I < R) THEN
20567           --push(I); push(R);
20568           l_stack_index := l_stack_index + 1;
20569           l_stack(l_stack_index) := I;
20570           l_stack_index := l_stack_index + 1;
20571           l_stack(l_stack_index) := R;
20572           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
20573         END IF;
20574         R := J;
20575       ELSE
20576         IF (L < J) THEN
20577           --push(L); push(J);
20578           l_stack_index := l_stack_index + 1;
20579           l_stack(l_stack_index) := L;
20580           l_stack_index := l_stack_index + 1;
20581           l_stack(l_stack_index) := J;
20582           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
20583         END IF;
20584         L := I;
20585       END IF;
20586 
20587       EXIT WHEN (L >= R);
20588     END LOOP;
20589   END LOOP;
20590 
20591 EXCEPTION WHEN OTHERS THEN
20592 
20593   x_return_status := OKL_API.G_RET_STS_ERROR;
20594   /*OKL_API.set_message(p_app_name => 'OKL',
20595                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
20596                       p_token1 => 'ASSET_NUMBER',
20597                       p_token1_value => 'sort_ssid_mapping_tab');*/
20598     /* DEBUG */
20599   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20600       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
20601     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_ssid_mapping_tab:l_ssid_mapping_tab N=' || N || ' ...');
20602   END IF;
20603 
20604   --print array
20605   FOR i IN 1..N
20606   LOOP
20607     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20608           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ssid_mapping_tab('||i||')=' || l_ssid_mapping_tab(i).cle_id || ':' || l_ssid_mapping_tab(i).object1_id1);
20609     END IF;
20610   END LOOP;
20611 
20612   RAISE OKC_API.G_EXCEPTION_ERROR;
20613 
20614 END;  /* sort_ssid_mapping_tab */
20615 
20616 BEGIN
20617 
20618    l_message := 'OKL_NEW_COPY_CHR_ERROR';
20619    l_curr_pos := 'okl_copy_lease_contract:1';
20620    x_return_status      := OKL_API.G_RET_STS_SUCCESS;
20621     -- Call start_activity to create savepoint, check compatibility
20622     -- and initialize message list
20623     x_return_status := OKL_API.START_ACTIVITY (
20624                                l_api_name
20625                                ,p_init_msg_list
20626                                ,'_PVT'
20627                                ,x_return_status);
20628     -- Check if activity started successfully
20629     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
20630        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20631     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
20632        RAISE OKL_API.G_EXCEPTION_ERROR;
20633     END IF;
20634 
20635   l_curr_pos := 'okl_copy_lease_contract:2';
20636   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20637       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'p_trans_type=' || p_trans_type);
20638   END IF;
20639   FOR c1rec IN c1(p_chr_id)
20640   LOOP
20641     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20642           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Source id = ' || c1rec.id || ' processing started:' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
20643     END IF;
20644     l_inventory_org_id := c1rec.inv_organization_id;
20645     l_curr_pos := 'okl_copy_lease_contract:3';
20646     l_orig_system_source_code := 'OKC_HDR';
20647     IF (c1rec.scs_code = 'QUOTE') THEN
20648       l_orig_system_source_code := 'OKL_QUOTE';
20649     END IF;
20650     IF (p_trans_type = 'CRB') THEN
20651      l_orig_system_source_code := 'OKL_REBOOK';
20652     ELSIF (p_trans_type = 'CRL') THEN
20653      l_orig_system_source_code := 'OKL_RELEASE';
20654     ELSIF (p_trans_type = 'SPLC') THEN
20655      l_orig_system_source_code := 'OKL_SPLIT';
20656     END IF;
20657 
20658     l_sts_code := 'NEW'; -- 4716939
20659     IF (c1rec.scs_code = 'LEASE') THEN
20660       l_sts_code := 'NEW';
20661     ELSIF (c1rec.scs_code = 'QUOTE') THEN
20662       IF (c1rec.sts_code = 'NEW') THEN
20663         l_sts_code := 'NEW';
20664       ELSE
20665         l_sts_code := 'INCOMPLETE';
20666       END IF;
20667     END IF;
20668     l_sts_code_orig := c1rec.sts_code;
20669 
20670     l_curr_pos := 'okl_copy_lease_contract:4';
20671 -- kmotepal populating contract id from sys guid instead of using OKC sequence which fixes the bug 4436545 (Reverted back for OKL.H)
20672     SELECT  okc_k_headers_b_s.NEXTVAL INTO l_copied_id FROM dual;
20673     --l_copied_id := okc_p_util.raw_to_number(sys_guid());
20674 
20675     l_contract_currency := c1rec.currency_code;
20676     l_contract_start_date := c1rec.start_date;
20677     l_conversion_type := c1rec.CONVERSION_TYPE;
20678     l_conversion_rate :=  c1rec.CONVERSION_RATE;
20679     l_conversion_rate_date := c1rec.CONVERSION_RATE_DATE;
20680     l_template_yn := c1rec.TEMPLATE_YN;
20681 
20682       -- AKP: what api??
20683     --l_contract_number := p_contract_number;
20684 
20685     l_curr_pos := 'okl_copy_lease_contract:5';
20686     IF (p_contract_number IS NULL) THEN
20687       l_curr_pos := 'okl_copy_lease_contract:6';
20688       okc_contract_pvt.generate_contract_number(
20689         p_scs_code => c1rec.scs_code,
20690         p_modifier => p_contract_number_modifier,
20691         x_return_status => x_return_status,
20692         x_contract_number => l_contract_number);
20693       IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
20694   	     OKC_API.SET_MESSAGE(p_app_name	=> g_app_name,
20695                                  p_msg_name	=> g_unexpected_error,
20696                                  p_token1		=> g_sqlcode_token,
20697                                  p_token1_value	=> SQLCODE,
20698                                  p_token2		=> g_sqlerrm_token,
20699                                  p_token2_value	=> SQLERRM);
20700         RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20701       END IF;
20702     ELSE
20703       l_contract_number := p_contract_number;
20704     END IF;
20705 
20706     --print('l_contract_number=' ||l_contract_number);
20707     --print('c1rec.contract_number=' ||c1rec.contract_number);
20708     -- Bug 4738057
20709     l_contract_exists := FALSE;
20710     FOR contract_exists_rec IN contract_exists_csr(l_contract_number)
20711     LOOP
20712       l_contract_exists := TRUE;
20713     END LOOP;
20714     IF ((l_contract_number = c1rec.contract_number) OR
20715         (l_contract_exists) ) THEN
20716       OKL_API.set_message(p_app_name => 'OKC',
20717                       p_msg_name => 'OKC_CONTRACT_EXISTS',
20718                       p_token1 => 'VALUE1',
20719                       p_token1_value => l_contract_number,
20720                       p_token2 => 'VALUE2',
20721                       p_token2_value => ' ');
20722        x_return_status := OKL_API.HANDLE_EXCEPTIONS(
20723                                   l_api_name,
20724                                   G_PKG_NAME,
20725                                   'OKL_API.G_RET_STS_ERROR',
20726                                   x_msg_count,
20727                                   x_msg_data,
20728                                   '_PVT');
20729        RETURN;
20730       --RAISE OKC_API.G_EXCEPTION_ERROR;
20731     END IF;
20732 
20733     l_curr_pos := 'okl_copy_lease_contract:7';
20734     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20735           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_contract_number=' || l_contract_number);
20736     END IF;
20737 
20738     -- AKP: need to do all validatations here
20739     validate_currency_code(x_return_status, l_contract_currency );
20740     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
20741       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20742     END IF;
20743 
20744     l_curr_pos := 'okl_copy_lease_contract:8';
20745     validate_orig_sys_code(x_return_status, l_orig_system_source_code);
20746     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
20747       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20748     END IF;
20749 
20750     l_curr_pos := 'okl_copy_lease_contract:9';
20751     validate_currency_conv_type(x_return_status, l_conversion_type);
20752     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
20753       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20754     END IF;
20755 
20756     BEGIN
20757       l_curr_pos := 'okl_copy_lease_contract:10';
20758       INSERT INTO okc_k_headers_b (
20759        ID, CONTRACT_NUMBER, AUTHORING_ORG_ID,
20760        CONTRACT_NUMBER_MODIFIER, CHR_ID_RESPONSE, CHR_ID_AWARD,
20761        CHR_ID_RENEWED, INV_ORGANIZATION_ID, STS_CODE,
20762        QCL_ID, SCS_CODE, TRN_CODE,
20763        CURRENCY_CODE, ARCHIVED_YN, DELETED_YN,
20764        TEMPLATE_YN, CHR_TYPE, OBJECT_VERSION_NUMBER,
20765        CREATED_BY, CREATION_DATE, LAST_UPDATED_BY,
20766        CUST_PO_NUMBER_REQ_YN, PRE_PAY_REQ_YN, CUST_PO_NUMBER,
20767        DPAS_RATING, TEMPLATE_USED, DATE_APPROVED,
20768        DATETIME_CANCELLED, AUTO_RENEW_DAYS, DATE_ISSUED,
20769        DATETIME_RESPONDED, RFP_TYPE, KEEP_ON_MAIL_LIST,
20770        SET_ASIDE_PERCENT, RESPONSE_COPIES_REQ, DATE_CLOSE_PROJECTED,
20771        DATETIME_PROPOSED, DATE_SIGNED, DATE_TERMINATED,
20772        DATE_RENEWED, START_DATE, END_DATE,
20773        BUY_OR_SELL, ISSUE_OR_RECEIVE, LAST_UPDATE_LOGIN,
20774        ESTIMATED_AMOUNT, ATTRIBUTE_CATEGORY, LAST_UPDATE_DATE,
20775        ATTRIBUTE1, ATTRIBUTE2, ATTRIBUTE3,
20776        ATTRIBUTE4, ATTRIBUTE5, ATTRIBUTE6,
20777        ATTRIBUTE7, ATTRIBUTE8, ATTRIBUTE9,
20778        ATTRIBUTE10, ATTRIBUTE11, ATTRIBUTE12,
20779        ATTRIBUTE13, ATTRIBUTE14, ATTRIBUTE15,
20780        SECURITY_GROUP_ID, CHR_ID_RENEWED_TO, ESTIMATED_AMOUNT_RENEWED,
20781        CURRENCY_CODE_RENEWED, UPG_ORIG_SYSTEM_REF, UPG_ORIG_SYSTEM_REF_ID,
20782        APPLICATION_ID, RESOLVED_UNTIL, ORIG_SYSTEM_SOURCE_CODE,
20783        ORIG_SYSTEM_ID1, ORIG_SYSTEM_REFERENCE1, PROGRAM_APPLICATION_ID,
20784        PROGRAM_ID, PROGRAM_UPDATE_DATE, REQUEST_ID,
20785        PRICE_LIST_ID, PRICING_DATE, TOTAL_LINE_LIST_PRICE,
20786        SIGN_BY_DATE, USER_ESTIMATED_AMOUNT, GOVERNING_CONTRACT_YN,
20787        CONVERSION_TYPE, CONVERSION_RATE,
20788        CONVERSION_RATE_DATE, CONVERSION_EURO_RATE, CUST_ACCT_ID,
20789        BILL_TO_SITE_USE_ID, INV_RULE_ID, RENEWAL_TYPE_CODE,
20790        RENEWAL_NOTIFY_TO, RENEWAL_END_DATE, SHIP_TO_SITE_USE_ID,
20791        PAYMENT_TERM_ID,
20792        ORG_ID   --MOAC
20793       ) VALUES (
20794        l_copied_id, l_contract_number, c1rec.AUTHORING_ORG_ID,
20795        NULL, NULL, NULL,
20796        c1rec.CHR_ID_RENEWED, c1rec.INV_ORGANIZATION_ID, l_sts_code,
20797        c1rec.QCL_ID, c1rec.SCS_CODE, NULL,
20798        c1rec.CURRENCY_CODE, 'N', 'N',
20799        --Changed by jjuneja for  13337055
20800        p_to_template_yn, c1rec.CHR_TYPE, 1,
20801        l_created_by, SYSDATE, l_last_updated_by,
20802        c1rec.CUST_PO_NUMBER_REQ_YN, c1rec.PRE_PAY_REQ_YN, c1rec.CUST_PO_NUMBER,
20803        c1rec.DPAS_RATING, DECODE(c1rec.template_yn,'Y',c1rec.CONTRACT_NUMBER,NULL), NULL,
20804        NULL, c1rec.AUTO_RENEW_DAYS, NULL,
20805        NULL, NULL, c1rec.KEEP_ON_MAIL_LIST,
20806        NULL, NULL, NULL,
20807        NULL, c1rec.DATE_SIGNED, NULL,
20808        NULL, c1rec.START_DATE, c1rec.END_DATE,
20809        c1rec.BUY_OR_SELL, c1rec.ISSUE_OR_RECEIVE, l_last_update_login,
20810        c1rec.ESTIMATED_AMOUNT, c1rec.ATTRIBUTE_CATEGORY, SYSDATE,
20811        c1rec.ATTRIBUTE1, c1rec.ATTRIBUTE2, c1rec.ATTRIBUTE3,
20812        c1rec.ATTRIBUTE4, c1rec.ATTRIBUTE5, c1rec.ATTRIBUTE6,
20813        c1rec.ATTRIBUTE7, c1rec.ATTRIBUTE8, c1rec.ATTRIBUTE9,
20814        c1rec.ATTRIBUTE10, c1rec.ATTRIBUTE11, c1rec.ATTRIBUTE12,
20815        c1rec.ATTRIBUTE13, c1rec.ATTRIBUTE14, c1rec.ATTRIBUTE15,
20816        c1rec.SECURITY_GROUP_ID, c1rec.CHR_ID_RENEWED_TO, c1rec.ESTIMATED_AMOUNT_RENEWED,
20817        c1rec.CURRENCY_CODE_RENEWED, c1rec.UPG_ORIG_SYSTEM_REF, c1rec.UPG_ORIG_SYSTEM_REF_ID,
20818        c1rec.APPLICATION_ID, c1rec.RESOLVED_UNTIL, l_orig_system_source_code,
20819        --decode(p_trans_type, 'RBK', c1rec.orig_system_id1, c1rec.ID), null, c1rec.PROGRAM_APPLICATION_ID,
20820        c1rec.ID, NULL, c1rec.PROGRAM_APPLICATION_ID,
20821        c1rec.PROGRAM_ID, c1rec.PROGRAM_UPDATE_DATE, c1rec.REQUEST_ID,
20822        c1rec.PRICE_LIST_ID, c1rec.PRICING_DATE, c1rec.TOTAL_LINE_LIST_PRICE,
20823        c1rec.SIGN_BY_DATE, NULL, c1rec.GOVERNING_CONTRACT_YN,
20824        c1rec.CONVERSION_TYPE, c1rec.CONVERSION_RATE,
20825        c1rec.CONVERSION_RATE_DATE, c1rec.CONVERSION_EURO_RATE, c1rec.CUST_ACCT_ID,
20826        c1rec.BILL_TO_SITE_USE_ID, c1rec.INV_RULE_ID, c1rec.RENEWAL_TYPE_CODE,
20827        c1rec.RENEWAL_NOTIFY_TO, c1rec.RENEWAL_END_DATE, c1rec.SHIP_TO_SITE_USE_ID,
20828        c1rec.PAYMENT_TERM_ID,
20829        c1rec.AUTHORING_ORG_ID   --MOAC
20830       );
20831       --) RETURNING ID into l_copied_id;
20832 
20833       EXCEPTION WHEN OTHERS THEN
20834          IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20835                     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
20836            OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR during insert into okc_k_headers_b...');
20837          END IF;
20838          OKL_API.set_message(p_app_name => 'OKL',
20839                       p_msg_name => l_message,
20840                       p_token1 => 'CONTRACT_NUMBER',
20841                       p_token1_value => l_contract_number);
20842          RAISE OKC_API.G_EXCEPTION_ERROR;
20843     END;
20844     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20845           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_copied_id=' || l_copied_id);
20846     END IF;
20847 
20848     l_curr_pos := 'okl_copy_lease_contract:11';
20849     BEGIN
20850        l_hstv_rec.chr_id := l_copied_id;
20851        l_hstv_rec.sts_code_from := NULL;
20852        l_hstv_rec.sts_code_to := l_sts_code;
20853        l_hstv_rec.reason_code := 'CREATE';
20854        l_hstv_rec.opn_code := 'STS_CHG';
20855        l_hstv_rec.manual_yn := 'N';
20856        l_hstv_rec.contract_version := '1.1';
20857 
20858       l_curr_pos := 'okl_copy_lease_contract:12';
20859        OKC_K_HISTORY_PUB.create_k_history(
20860          p_api_version          => p_api_version,
20861          p_init_msg_list        => p_init_msg_list,
20862          x_return_status   	=> x_return_status,
20863          x_msg_count       	=> x_msg_count,
20864          x_msg_data        	=> x_msg_data,
20865          p_hstv_rec             => l_hstv_rec,
20866          x_hstv_rec             => x_hstv_rec);
20867       IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
20868         RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20869       END IF;
20870       EXCEPTION WHEN OTHERS THEN
20871          IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20872                     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
20873            OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR during insert into create_k_history...');
20874          END IF;
20875          RAISE OKC_API.G_EXCEPTION_ERROR;
20876     END;
20877 
20878     BEGIN
20879       l_curr_pos := 'okl_copy_lease_contract:13';
20880       l_message := 'OKL_NEW_COPY_VER_ERROR';
20881       INSERT INTO okc_k_vers_numbers (
20882          chr_id, major_version, minor_version,
20883          object_version_number, created_by, creation_date,
20884          last_updated_by, last_update_date, last_update_login
20885          --security_group_id
20886       ) VALUES (
20887          l_copied_id, 0, 1,
20888          1, l_created_by, SYSDATE,
20889          l_last_updated_by, SYSDATE, l_last_update_login
20890          --FND_GLOBAL.SECURITY_GROUP_ID
20891       );
20892     EXCEPTION WHEN OTHERS THEN
20893        IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20894                 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
20895          OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR during inser into okc_k_vers_numbers...');
20896        END IF;
20897        OKL_API.set_message(p_app_name => 'OKL',
20898                       p_msg_name => l_message,
20899                       p_token1 => 'CONTRACT_NUMBER',
20900                       p_token1_value => l_contract_number);
20901        RAISE OKC_API.G_EXCEPTION_ERROR;
20902     END;
20903 
20904     l_curr_pos := 'okl_copy_lease_contract:14';
20905     l_message := 'OKL_NEW_COPY_CHR_ERROR';
20906     insert_okc_k_headers_tl(p_chr_id, l_copied_id);
20907     l_curr_pos := 'okl_copy_lease_contract:15';
20908     l_message := 'OKL_NEW_COPY_KHR_ERROR';
20909     insert_okl_k_headers(p_chr_id, l_copied_id);
20910     l_message := 'OKL_NEW_COPY_CSP_ERROR';
20911     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20912           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Calling okl_slctd_optns ...');
20913     END IF;
20914     l_curr_pos := 'okl_copy_lease_contract:16';
20915     insert_okl_slctd_optns(p_chr_id, l_copied_id);
20916   /*end loop;*/
20917 
20918     l_curr_pos := 'okl_copy_lease_contract:17';
20919     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20920           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Governances...');
20921     END IF;
20922     FOR c2rec IN c2(p_chr_id)
20923     LOOP
20924       BEGIN
20925         l_curr_pos := 'okl_copy_lease_contract:18';
20926         l_message := 'OKL_NEW_COPY_GVE_ERROR';
20927         INSERT INTO okc_governances (
20928           ID, DNZ_CHR_ID, CHR_ID,
20929           CLE_ID, CHR_ID_REFERRED, CLE_ID_REFERRED,
20930           ISA_AGREEMENT_ID, COPIED_ONLY_YN, OBJECT_VERSION_NUMBER,
20931           CREATED_BY, CREATION_DATE, LAST_UPDATED_BY,
20932           LAST_UPDATE_DATE, LAST_UPDATE_LOGIN, SECURITY_GROUP_ID
20933         ) VALUES (
20934           okc_p_util.raw_to_number(sys_guid()), l_copied_id, l_copied_id,
20935           c2rec.CLE_ID, c2rec.CHR_ID_REFERRED, c2rec.CLE_ID_REFERRED,
20936           c2rec.ISA_AGREEMENT_ID, c2rec.COPIED_ONLY_YN, c2rec.OBJECT_VERSION_NUMBER,
20937           l_created_by, SYSDATE, l_last_updated_by,
20938           SYSDATE, l_last_update_login, c2rec.SECURITY_GROUP_ID
20939         ) RETURNING ID INTO l_gov_id;
20940         EXCEPTION WHEN OTHERS THEN
20941            IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20942                         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
20943              OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR during inser into okc_governances...');
20944            END IF;
20945            RAISE OKC_API.G_EXCEPTION_ERROR;
20946       END;
20947 
20948       l_curr_pos := 'okl_copy_lease_contract:19';
20949       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20950               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_gov_id=' || l_gov_id);
20951       END IF;
20952       /*  AKP: We dont need okc_governances_h
20953       for c3rec in c3(p_chr_id)
20954       loop
20955         l_curr_pos := 'okl_copy_lease_contract:20';
20956         insert into okc_governances_h (
20957           ID, DNZ_CHR_ID, CHR_ID,
20958           CLE_ID, CHR_ID_REFERRED, CLE_ID_REFERRED,
20959           ISA_AGREEMENT_ID, MAJOR_VERSION, OBJECT_VERSION_NUMBER,
20960           COPIED_ONLY_YN, CREATED_BY, CREATION_DATE,
20961           LAST_UPDATED_BY, LAST_UPDATE_DATE, LAST_UPDATE_LOGIN,
20962           SECURITY_GROUP_ID
20963         ) VALUES (
20964           l_gov_id, l_copied_id, l_copied_id,
20965           c3rec.CLE_ID, c3rec.CHR_ID_REFERRED, c3rec.CLE_ID_REFERRED,
20966           c3rec.ISA_AGREEMENT_ID, c3rec.MAJOR_VERSION, c3rec.OBJECT_VERSION_NUMBER,
20967           c3rec.COPIED_ONLY_YN, c3rec.CREATED_BY, SYSDATE,
20968           c3rec.LAST_UPDATED_BY, SYSDATE, c3rec.LAST_UPDATE_LOGIN,
20969           c3rec.SECURITY_GROUP_ID
20970         );
20971       end loop; */
20972     END LOOP;
20973 
20974     l_curr_pos := 'okl_copy_lease_contract:21';
20975     copy_var_int_rate_params(p_chr_id, l_copied_id, l_contract_start_date,
20976                              p_trans_type, p_rbk_date);
20977     l_curr_pos := 'okl_copy_lease_contract:21.1';
20978     IF (NVL(p_copy_lines_yn, 'N') = 'N') THEN
20979       -- Do only header level rules/roles etc
20980       l_curr_pos := 'okl_copy_lease_contract:22';
20981       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20982               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okc_k_party_roles...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
20983       END IF;
20984       l_message := 'OKL_NEW_COPY_CPL_ERROR';
20985       insert_okc_k_party_roles(p_chr_id, l_copied_id); -- _b _tl contacts okl_party_payment_dtls
20986 
20987       l_curr_pos := 'okl_copy_lease_contract:23';
20988       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20989               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okc_rule_groups...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
20990       END IF;
20991       l_message := 'OKL_NEW_COPY_RGP_ERROR';
20992       insert_okc_rule_groups(p_chr_id, l_copied_id); -- _b,_tl and rules(_b,_tl)
20993 
20994       l_curr_pos := 'okl_copy_lease_contract:24';
20995       l_message := 'OKL_NEW_COPY_RGR_ERROR';
20996       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20997               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okc_rg_party_roles...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
20998       END IF;
20999       insert_okc_rg_party_roles(p_chr_id, l_copied_id);
21000     ELSE
21001 
21002       --Copy lines
21003       l_curr_pos := 'okl_copy_lease_contract:25';
21004       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21005               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'okc_k_lines Lines...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21006       END IF;
21007       l_counter := 1;
21008       l_message := 'OKL_NEW_COPY_CLE_ERROR';
21009       OPEN c4(p_chr_id);
21010       LOOP
21011         l_curr_pos := 'okl_copy_lease_contract:26';
21012         FETCH c4 bulk collect INTO
21013         l_id_tab2,l_line_number_tab2,l_chr_id_tab2,
21014         l_cle_id_tab2,l_cle_id_renewed_tab2,l_dnz_chr_id_tab2,
21015         l_display_sequence_tab2,l_sts_code_tab2,l_trn_code_tab2,
21016         l_lse_id_tab2,l_exception_yn_tab2,l_object_version_number_tab2,
21017         l_created_by_tab2,l_creation_date_tab2,l_last_updated_by_tab2,
21018         l_last_update_date_tab2,l_hidden_ind_tab2,l_price_negotiated_tab2,
21019         l_price_level_ind_tab2,l_price_unit_tab2,l_price_unit_percent_tab2,
21020         l_invoice_line_level_ind_tab2,l_dpas_rating_tab2,l_template_used_tab2,
21021         l_price_type_tab2,l_currency_code_tab2,l_last_update_login_tab2,
21022         l_date_terminated_tab2,l_start_date_tab2,l_end_date_tab2,
21023         l_attribute_category_tab2,l_attribute1_tab2,l_attribute2_tab2,
21024         l_attribute3_tab2,l_attribute4_tab2,l_attribute5_tab2,
21025         l_attribute6_tab2,l_attribute7_tab2,l_attribute8_tab2,
21026         l_attribute9_tab2,l_attribute10_tab2,l_attribute11_tab2,
21027         l_attribute12_tab2,l_attribute13_tab2,l_attribute14_tab2,
21028         l_attribute15_tab2,l_security_group_id_tab2,l_cle_id_renewed_to_tab2,
21029         l_price_negotiated_renewed_tb2,l_currency_code_renewed_tab2,l_upg_orig_system_ref_tab2,
21030         l_upg_orig_system_ref_id_tab2,l_date_renewed_tab2,l_orig_system_source_code_tab2,
21031         l_orig_system_id1_tab2,l_orig_system_reference1_tab2,l_program_application_id_tab2,
21032         l_program_id_tab2,l_program_update_date_tab2,l_request_id_tab2,
21033         l_price_list_id_tab2,l_price_list_line_id_tab2,l_line_list_price_tab2,
21034         l_item_to_price_yn_tab2,l_pricing_date_tab2,l_price_basis_yn_tab2,
21035         l_config_header_id_tab2,l_config_revision_number_tab2,l_config_complete_yn_tab2,
21036         l_config_valid_yn_tab2,l_config_top_model_line_id_tb2,l_config_item_type_tab2,
21037         l_config_item_id_tab2,l_service_item_yn_tab2,l_ph_pricing_type_tab2,
21038         l_ph_price_break_basis_tab2,l_ph_min_qty_tab2,l_ph_min_amt_tab2,
21039         l_ph_qp_reference_id_tab2,l_ph_value_tab2,l_ph_enforce_price_list_yn_tb2,
21040         l_ph_adjustment_tab2,l_ph_integrated_with_qp_tab2,l_cust_acct_id_tab2,
21041         l_bill_to_site_use_id_tab2,l_inv_rule_id_tab2,l_line_renewal_type_code_tab2,
21042         l_ship_to_site_use_id_tab2,l_payment_term_id_tab2 , l_fee_type_tab2,
21043         l_name_tab2
21044         limit G_BULK_SIZE;
21045 
21046         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21047                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_id_tab2.count=' || l_id_tab2.COUNT);
21048         END IF;
21049         IF l_id_tab2.COUNT > 0 THEN
21050           NULL;
21051           l_curr_pos := 'okl_copy_lease_contract:27';
21052           FOR i IN l_id_tab2.first..l_id_tab2.last
21053           LOOP
21054             --if ( (l_fee_type_tab2(i) = 'ROLLOVER' and
21055                     --l_lse_id_tab2(i) = 52 and
21056                     --p_trans_type = 'CFA') or
21057                  --(l_sts_code_tab2(i) = 'ABANDONED') or
21058                  --(l_lse_id_tab2(i) = 47) ) then
21059               --null;
21060             --else
21061               l_id_tab3(l_counter) := l_id_tab2(i);
21062               l_id_tab(l_counter) := l_id_tab2(i); -- populate from guid() later
21063               l_line_number_tab(l_counter) := l_line_number_tab2(i);
21064               l_chr_id_tab(l_counter) := l_chr_id_tab2(i);
21065 
21066               -- Change chr_id
21067               IF (l_chr_id_tab(l_counter) IS NOT NULL) THEN
21068                 l_chr_id_tab(l_counter) := l_copied_id;
21069               END IF;
21070 
21071               l_cle_id_tab(l_counter) := l_cle_id_tab2(i);
21072               l_cle_id_renewed_tab(l_counter) := l_cle_id_renewed_tab2(i);
21073 
21074               -- Change dnz_chr_id
21075               --l_dnz_chr_id_tab(l_counter) := l_dnz_chr_id_tab2(i);
21076               l_dnz_chr_id_tab(l_counter) := l_copied_id;
21077 
21078               l_display_sequence_tab(l_counter) := l_display_sequence_tab2(i);
21079               l_sts_code_tab(l_counter) := l_sts_code_tab2(i);
21080               l_trn_code_tab(l_counter) := l_trn_code_tab2(i);
21081               l_lse_id_tab(l_counter) := l_lse_id_tab2(i);
21082               l_exception_yn_tab(l_counter) := l_exception_yn_tab2(i);
21083               l_object_version_number_tab(l_counter) := l_object_version_number_tab2(i);
21084               l_created_by_tab(l_counter) := l_created_by_tab2(i);
21085               l_creation_date_tab(l_counter) := l_creation_date_tab2(i);
21086               l_last_updated_by_tab(l_counter) := l_last_updated_by_tab2(i);
21087               l_last_update_date_tab(l_counter) := l_last_update_date_tab2(i);
21088               l_hidden_ind_tab(l_counter) := l_hidden_ind_tab2(i);
21089               l_price_negotiated_tab(l_counter) := l_price_negotiated_tab2(i);
21090               l_price_level_ind_tab(l_counter) := l_price_level_ind_tab2(i);
21091               l_price_unit_tab(l_counter) := l_price_unit_tab2(i);
21092               l_price_unit_percent_tab(l_counter) := l_price_unit_percent_tab2(i);
21093               l_invoice_line_level_ind_tab(l_counter) := l_invoice_line_level_ind_tab2(i);
21094               l_dpas_rating_tab(l_counter) := l_dpas_rating_tab2(i);
21095               l_template_used_tab(l_counter) := l_template_used_tab2(i);
21096               l_price_type_tab(l_counter) := l_price_type_tab2(i);
21097               l_currency_code_tab(l_counter) := l_currency_code_tab2(i);
21098               l_last_update_login_tab(l_counter) := l_last_update_login_tab2(i);
21099               l_date_terminated_tab(l_counter) := l_date_terminated_tab2(i);
21100               l_start_date_tab(l_counter) := l_start_date_tab2(i);
21101               l_end_date_tab(l_counter) := l_end_date_tab2(i);
21102               l_attribute_category_tab(l_counter) := l_attribute_category_tab2(i);
21103               l_attribute1_tab(l_counter) := l_attribute1_tab2(i);
21104               l_attribute2_tab(l_counter) := l_attribute2_tab2(i);
21105               l_attribute3_tab(l_counter) := l_attribute3_tab2(i);
21106               l_attribute4_tab(l_counter) := l_attribute4_tab2(i);
21107               l_attribute5_tab(l_counter) := l_attribute5_tab2(i);
21108               l_attribute6_tab(l_counter) := l_attribute6_tab2(i);
21109               l_attribute7_tab(l_counter) := l_attribute7_tab2(i);
21110               l_attribute8_tab(l_counter) := l_attribute8_tab2(i);
21111               l_attribute9_tab(l_counter) := l_attribute9_tab2(i);
21112               l_attribute10_tab(l_counter) := l_attribute10_tab2(i);
21113               l_attribute11_tab(l_counter) := l_attribute11_tab2(i);
21114               l_attribute12_tab(l_counter) := l_attribute12_tab2(i);
21115               l_attribute13_tab(l_counter) := l_attribute13_tab2(i);
21116               l_attribute14_tab(l_counter) := l_attribute14_tab2(i);
21117               l_attribute15_tab(l_counter) := l_attribute15_tab2(i);
21118               l_security_group_id_tab(l_counter) := l_security_group_id_tab2(i);
21119               l_cle_id_renewed_to_tab(l_counter) := l_cle_id_renewed_to_tab2(i);
21120               l_price_negotiated_renewed_tab(l_counter) := l_price_negotiated_renewed_tb2(i);
21121               l_currency_code_renewed_tab(l_counter) := l_currency_code_renewed_tab2(i);
21122               l_upg_orig_system_ref_tab(l_counter) := l_upg_orig_system_ref_tab2(i);
21123               l_upg_orig_system_ref_id_tab(l_counter) := l_upg_orig_system_ref_id_tab2(i);
21124               l_date_renewed_tab(l_counter) := l_date_renewed_tab2(i);
21125               l_orig_system_source_code_tab(l_counter) := l_orig_system_source_code_tab2(i);
21126               --l_orig_system_id1_tab(l_counter) := l_orig_system_id1_tab2(i);
21127 
21128               -- Populate proper values
21129               l_orig_system_id1_tab(l_counter) := l_id_tab(l_counter);
21130               l_id_tab(l_counter) := okc_p_util.raw_to_number(sys_guid());
21131               -- Populate proper values done
21132 
21133               -- Store sid mapping for business function processing
21134               l_sid_mapping_tab(l_counter).id := l_id_tab(l_counter);
21135               l_sid_mapping_tab(l_counter).lse_id := l_lse_id_tab(l_counter);
21136 
21137               l_orig_system_reference1_tab(l_counter) := l_orig_system_reference1_tab2(i);
21138               l_program_application_id_tab(l_counter) := l_program_application_id_tab2(i);
21139               l_program_id_tab(l_counter) := l_program_id_tab2(i);
21140               l_program_update_date_tab(l_counter) := l_program_update_date_tab2(i);
21141               l_request_id_tab(l_counter) := l_request_id_tab2(i);
21142               l_price_list_id_tab(l_counter) := l_price_list_id_tab2(i);
21143               l_price_list_line_id_tab(l_counter) := l_price_list_line_id_tab2(i);
21144               l_line_list_price_tab(l_counter) := l_line_list_price_tab2(i);
21145               l_item_to_price_yn_tab(l_counter) := l_item_to_price_yn_tab2(i);
21146               l_pricing_date_tab(l_counter) := l_pricing_date_tab2(i);
21147               l_price_basis_yn_tab(l_counter) := l_price_basis_yn_tab2(i);
21148               l_config_header_id_tab(l_counter) := l_config_header_id_tab2(i);
21149               l_config_revision_number_tab(l_counter) := l_config_revision_number_tab2(i);
21150               l_config_complete_yn_tab(l_counter) := l_config_complete_yn_tab2(i);
21151               l_config_valid_yn_tab(l_counter) := l_config_valid_yn_tab2(i);
21152               l_config_top_model_line_id_tab(l_counter) := l_config_top_model_line_id_tb2(i);
21153               l_config_item_type_tab(l_counter) := l_config_item_type_tab2(i);
21154               l_config_item_id_tab(l_counter) := l_config_item_id_tab2(i);
21155               l_service_item_yn_tab(l_counter) := l_service_item_yn_tab2(i);
21156               l_ph_pricing_type_tab(l_counter) := l_ph_pricing_type_tab2(i);
21157               l_ph_price_break_basis_tab(l_counter) := l_ph_price_break_basis_tab2(i);
21158               l_ph_min_qty_tab(l_counter) := l_ph_min_qty_tab2(i);
21159               l_ph_min_amt_tab(l_counter) := l_ph_min_amt_tab2(i);
21160               l_ph_qp_reference_id_tab(l_counter) := l_ph_qp_reference_id_tab2(i);
21161               l_ph_value_tab(l_counter) := l_ph_value_tab2(i);
21162               l_ph_enforce_price_list_yn_tab(l_counter) := l_ph_enforce_price_list_yn_tb2(i);
21163               l_ph_adjustment_tab(l_counter) := l_ph_adjustment_tab2(i);
21164               l_ph_integrated_with_qp_tab(l_counter) := l_ph_integrated_with_qp_tab2(i);
21165               l_cust_acct_id_tab(l_counter) := l_cust_acct_id_tab2(i);
21166               l_bill_to_site_use_id_tab(l_counter) := l_bill_to_site_use_id_tab2(i);
21167               l_inv_rule_id_tab(l_counter) := l_inv_rule_id_tab2(i);
21168               l_line_renewal_type_code_tab(l_counter) := l_line_renewal_type_code_tab2(i);
21169               l_ship_to_site_use_id_tab(l_counter) := l_ship_to_site_use_id_tab2(i);
21170               l_payment_term_id_tab(l_counter) := l_payment_term_id_tab2(i);
21171               l_name_tab(l_counter) := l_name_tab2(i);
21172               --print('c4:l_name_tab(' || l_counter||')=' || l_name_tab(l_counter) || ' l_lse_id_tab(' || l_counter||')=' || l_lse_id_tab(l_counter));
21173 
21174               -- Another table
21175               l_orig_system_tab(l_counter).orig_system_id1 := l_orig_system_id1_tab(l_counter);
21176               l_orig_system_tab(l_counter).id := l_id_tab(l_counter);
21177 
21178               -- Id Mapping table
21179               l_id_mapping_tab(l_counter).old_id := l_id_tab3(l_counter);
21180               l_id_mapping_tab(l_counter).new_id := l_id_tab(l_counter);
21181 
21182               --l_bid_mapping_tab(l_counter).old_id := l_id_tab(l_counter)*100 + l_lse_id_tab(l_counter);
21183               l_bid_mapping_tab(l_counter).old_id := l_id_tab(l_counter);
21184               l_bid_mapping_tab(l_counter).new_id := l_name_tab(l_counter);
21185 
21186               IF ( (l_fee_type_tab2(i) = 'ROLLOVER' AND
21187                       l_lse_id_tab2(i) = 52 AND
21188                       p_trans_type = 'CFA') OR
21189                    (l_sts_code_tab2(i) = 'ABANDONED') OR
21190                    (l_lse_id_tab2(i) = 47) ) THEN
21191                 IF (l_chr_id_tab(i) IS NOT NULL) THEN
21192                    -- Populate delete id tabs
21193                   l_delete_id_tab(l_delete_counter) := l_id_tab(l_counter);
21194                   l_delete_counter := l_delete_counter + 1;
21195                 ELSE -- Bug 4872258
21196                   IF (l_sts_code_tab2(i) = 'ABANDONED') THEN -- 5127961
21197                     l_delete_id_tab(l_delete_counter) := l_id_tab(l_counter);
21198                     l_delete_counter := l_delete_counter + 1;
21199                   ELSE
21200                   -- Populate 'ENTERED' id tabs
21201                   l_entered_id_tab(l_entered_counter) := l_id_tab(l_counter);
21202                   l_entered_sts_code_tab(l_entered_counter) := 'ENTERED';
21203                   IF (l_sts_code_tab2(i) = 'ABANDONED') THEN
21204                     l_entered_sts_code_tab(l_entered_counter) := 'ABANDONED';
21205                   END IF;
21206                   IF (p_trans_type = 'CRB') THEN  -- Bug 4959361
21207                     IF (l_sts_code_tab2(i) = 'TERMINATED') THEN
21208                       l_entered_sts_code_tab(l_entered_counter) := 'TERMINATED';
21209                     ELSE
21210                       l_date_terminated_tab(l_counter) := NULL;
21211                       l_trn_code_tab(l_counter) := NULL;
21212                     END IF;
21213                   ELSE
21214                       l_date_terminated_tab(l_counter) := NULL;
21215                       l_trn_code_tab(l_counter) := NULL;
21216                   END IF;
21217                   l_entered_counter := l_entered_counter + 1;
21218                   l_id2_tab(l_id2_tab_counter) := l_id_tab(i);
21219                   l_lse_id2_tab(l_id2_tab_counter) := l_lse_id_tab(i);
21220                   l_id2_tab_counter := l_id2_tab_counter + 1;
21221                   END IF; -- 5127961
21222                 END IF;
21223               ELSE
21224                  -- Populate 'ENTERED' id tabs
21225                 l_entered_id_tab(l_entered_counter) := l_id_tab(l_counter);
21226                 l_entered_sts_code_tab(l_entered_counter) := 'ENTERED';
21227                 --IF (l_sts_code_tab2(i) = 'ABANDONED') THEN
21228                   --l_entered_sts_code_tab(l_entered_counter) := 'ABANDONED';
21229                 --END IF;
21230                 --4959361
21231                 IF (p_trans_type = 'CRB') THEN
21232                   IF (l_sts_code_tab2(i) = 'TERMINATED') THEN
21233                     l_entered_sts_code_tab(l_entered_counter) := 'TERMINATED';
21234                   ELSE
21235                       l_date_terminated_tab(l_counter) := NULL;
21236                       l_trn_code_tab(l_counter) := NULL;
21237                   END IF;
21238                 ELSE
21239                       l_date_terminated_tab(l_counter) := NULL;
21240                       l_trn_code_tab(l_counter) := NULL;
21241                 END IF;
21242                 l_entered_counter := l_entered_counter + 1;
21243                 l_id2_tab(l_id2_tab_counter) := l_id_tab(i);
21244                 l_lse_id2_tab(l_id2_tab_counter) := l_lse_id_tab(i);
21245                 l_id2_tab_counter := l_id2_tab_counter + 1;
21246               END IF;
21247 
21248               l_counter := l_counter + 1;
21249             --end if;
21250           END LOOP;
21251         ELSE
21252           EXIT;
21253         END IF;
21254         l_curr_pos := 'okl_copy_lease_contract:28';
21255 
21256       END LOOP;
21257       CLOSE c4;
21258       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21259               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_counter [ For okc_k_lines_b ] =' || l_counter);
21260       END IF;
21261 
21262       -- Sort l_orig_system_tab
21263       l_curr_pos := 'okl_copy_lease_contract:29';
21264       do_sort;
21265       l_curr_pos := 'okl_copy_lease_contract:30';
21266       do_id_mapping_sort;
21267       l_curr_pos := 'okl_copy_lease_contract:31';
21268       sort_sid_mapping_tab;
21269       l_curr_pos := 'okl_copy_lease_contract:32';
21270       sort_bid_mapping_tab;
21271       l_curr_pos := 'okl_copy_lease_contract:33';
21272       --print('Sort done..');
21273 
21274       /*print('Before update values...');
21275       for i in 1..l_counter-1
21276       loop
21277         print('id='||l_id_tab(i) || ' cle_id=' || l_cle_id_tab(i)||' orig_system_id1='||l_orig_system_id1_tab(i));
21278       end loop;
21279       */
21280 
21281       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21282               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Update Started ...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21283       END IF;
21284       -- Update cle_id
21285       FOR i IN 1..l_counter-1
21286       LOOP
21287         IF (l_cle_id_tab(i) IS NOT NULL) THEN
21288           l_new_id := find_id(l_cle_id_tab(i));
21289           IF (l_new_id = -1) THEN
21290             IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21291                           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR!!!!Mapping line id not found');
21292             END IF;
21293             RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
21294           END IF;
21295           l_cle_id_tab(i) := l_new_id;
21296 
21297           l_cle_lse_mapping_tab(l_cle_lse_counter).cle_id := l_cle_id_tab(i);
21298           l_cle_lse_mapping_tab(l_cle_lse_counter).lse_id := l_lse_id_tab(i);
21299           l_cle_lse_mapping_tab(l_cle_lse_counter).id := l_id_tab(i);
21300           l_cle_lse_counter := l_cle_lse_counter + 1;
21301           --print('Storing cle_lse: ' || l_cle_id_tab(i)||':' || l_lse_id_tab(i) || ':' || l_id_tab(i));
21302 
21303           -- Store id to cle_id mapping in l_cid_mapping_tab
21304           l_cid_mapping_tab(l_cid_counter).old_id := l_id_tab(i);
21305           l_cid_mapping_tab(l_cid_counter).new_id := l_cle_id_tab(i);
21306           --print('l_new_id=' || l_new_id);
21307           l_cid_counter := l_cid_counter + 1;
21308         END IF;
21309       END LOOP;
21310       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21311               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Update Finished ...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21312       END IF;
21313       l_curr_pos := 'okl_copy_lease_contract:34';
21314       sort_cid_mapping_tab;
21315       l_curr_pos := 'okl_copy_lease_contract:35';
21316       sort_cle_lse_mapping_tab;
21317 
21318       /*
21319       print('After update values...');
21320       for i in 1..l_counter-1
21321       loop
21322         print('id='||l_id_tab(i) || ' cle_id=' || l_cle_id_tab(i)||' orig_system_id1='||l_orig_system_id1_tab(i));
21323       end loop;
21324       */
21325 
21326       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21327               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Before Inserting okc_k_lines_b...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21328         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_id_tab.count='||l_id_tab.COUNT);
21329       END IF;
21330       IF (l_id_tab.COUNT > 0) THEN
21331       BEGIN
21332         l_curr_pos := 'okl_copy_lease_contract:36';
21333         forall i IN l_id_tab.first..l_id_tab.last
21334         INSERT INTO okc_k_lines_b (
21335          id, line_number, chr_id,
21336          cle_id, cle_id_renewed, dnz_chr_id,
21337          display_sequence, sts_code, trn_code,
21338          lse_id, exception_yn, object_version_number,
21339          created_by, creation_date, last_updated_by,
21340          last_update_date, hidden_ind, price_negotiated,
21341          price_level_ind, price_unit, price_unit_percent,
21342          invoice_line_level_ind, dpas_rating, template_used,
21343          price_type, currency_code, last_update_login,
21344          date_terminated, start_date, end_date,
21345          attribute_category, attribute1, attribute2,
21346          attribute3, attribute4, attribute5,
21347          attribute6, attribute7, attribute8,
21348          attribute9, attribute10, attribute11,
21349          attribute12, attribute13, attribute14,
21350          attribute15, security_group_id, cle_id_renewed_to,
21351          price_negotiated_renewed, currency_code_renewed, upg_orig_system_ref,
21352          upg_orig_system_ref_id, date_renewed, orig_system_source_code,
21353          orig_system_id1, orig_system_reference1, program_application_id,
21354          program_id, program_update_date, request_id,
21355          price_list_id, price_list_line_id, line_list_price,
21356          item_to_price_yn, pricing_date, price_basis_yn,
21357          config_header_id, config_revision_number, config_complete_yn,
21358          config_valid_yn, config_top_model_line_id, config_item_type,
21359          config_item_id, service_item_yn, ph_pricing_type,
21360          ph_price_break_basis, ph_min_qty, ph_min_amt,
21361          ph_qp_reference_id, ph_value, ph_enforce_price_list_yn,
21362          ph_adjustment, ph_integrated_with_qp, cust_acct_id,
21363          bill_to_site_use_id, inv_rule_id, line_renewal_type_code,
21364          ship_to_site_use_id, payment_term_id)
21365         VALUES (
21366          l_id_tab(i), l_line_number_tab(i), l_chr_id_tab(i),
21367          l_cle_id_tab(i), l_cle_id_renewed_tab(i), l_dnz_chr_id_tab(i),
21368          l_display_sequence_tab(i), 'ENTERED', l_trn_code_tab(i), -- Bug 4959361 NULL,
21369          l_lse_id_tab(i), l_exception_yn_tab(i), 1,
21370          l_created_by, SYSDATE, l_last_updated_by,
21371          SYSDATE, l_hidden_ind_tab(i), l_price_negotiated_tab(i),
21372          l_price_level_ind_tab(i), l_price_unit_tab(i), l_price_unit_percent_tab(i),
21373          l_invoice_line_level_ind_tab(i), l_dpas_rating_tab(i), l_template_used_tab(i),
21374          l_price_type_tab(i), l_currency_code_tab(i), l_last_update_login,
21375          -- Bug 4959361 NULL, l_start_date_tab(i), l_end_date_tab(i),
21376          l_date_terminated_tab(i), l_start_date_tab(i), l_end_date_tab(i),
21377          l_attribute_category_tab(i), l_attribute1_tab(i), l_attribute2_tab(i),
21378          l_attribute3_tab(i), l_attribute4_tab(i), l_attribute5_tab(i),
21379          l_attribute6_tab(i), l_attribute7_tab(i), l_attribute8_tab(i),
21380          l_attribute9_tab(i), l_attribute10_tab(i), l_attribute11_tab(i),
21381          l_attribute12_tab(i), l_attribute13_tab(i), l_attribute14_tab(i),
21382          l_attribute15_tab(i), l_security_group_id_tab(i), l_cle_id_renewed_to_tab(i),
21383          l_price_negotiated_renewed_tab(i), l_currency_code_renewed_tab(i), l_upg_orig_system_ref_tab(i),
21384          l_upg_orig_system_ref_id_tab(i), NULL, 'OKC_LINE',
21385          l_id_tab3(i), l_orig_system_reference1_tab(i), l_program_application_id_tab(i),
21386          l_program_id_tab(i), l_program_update_date_tab(i), l_request_id_tab(i),
21387          l_price_list_id_tab(i), l_price_list_line_id_tab(i), l_line_list_price_tab(i),
21388          l_item_to_price_yn_tab(i), l_pricing_date_tab(i), l_price_basis_yn_tab(i),
21389          l_config_header_id_tab(i), l_config_revision_number_tab(i), l_config_complete_yn_tab(i),
21390          l_config_valid_yn_tab(i), l_config_top_model_line_id_tab(i), l_config_item_type_tab(i),
21391          l_config_item_id_tab(i), l_service_item_yn_tab(i), l_ph_pricing_type_tab(i),
21392          l_ph_price_break_basis_tab(i), l_ph_min_qty_tab(i), l_ph_min_amt_tab(i),
21393          NULL, l_ph_value_tab(i), l_ph_enforce_price_list_yn_tab(i),
21394          l_ph_adjustment_tab(i), NULL, l_cust_acct_id_tab(i),
21395          l_bill_to_site_use_id_tab(i), l_inv_rule_id_tab(i), l_line_renewal_type_code_tab(i),
21396          l_ship_to_site_use_id_tab(i), l_payment_term_id_tab(i)
21397         );
21398       EXCEPTION WHEN OTHERS THEN
21399          IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21400                     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
21401            OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR during insert into okc_k_lines_b...');
21402          END IF;
21403          RAISE OKC_API.G_EXCEPTION_ERROR;
21404     END;
21405     END IF;
21406 
21407       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21408               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okc_k_lines_tl...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21409       END IF;
21410       -- Now insert okc_k_lines_tl
21411       /*
21412       for i in 1..l_counter-1 loop
21413         --old id to be used to query, new id to update
21414         -- Store okc_k_lines_b l_id_tab into l_id_tab3 for future reference
21415         if (i = l_counter - 1) then
21416           insert_okc_k_lines_tl_old(l_id_tab3(i), l_id_tab(i), 'Y');
21417         else
21418           insert_okc_k_lines_tl_old(l_id_tab3(i), l_id_tab(i), 'N');
21419         end if;
21420       end loop;
21421       */
21422       l_curr_pos := 'okl_copy_lease_contract:37';
21423       l_message := 'OKL_NEW_COPY_CLE_ERROR';
21424       insert_okc_k_lines_tl(p_chr_id);
21425       --sort_aid_mapping_tab;
21426       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21427               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'After sort_aid_mapping_tab...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21428       END IF;
21429 
21430       l_message := 'OKL_NEW_COPY_KLE_ERROR';
21431       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21432               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okl_k_lines...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21433       END IF;
21434       l_curr_pos := 'okl_copy_lease_contract:38';
21435       insert_okl_k_lines;
21436 
21437       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21438               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okc_k_party_roles...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21439       END IF;
21440       l_curr_pos := 'okl_copy_lease_contract:39';
21441       l_message := 'OKL_NEW_COPY_CPL_ERROR';
21442       insert_okc_k_party_roles(p_chr_id, l_copied_id); -- _b _tl contacts okl_party_payment_dtls
21443 
21444       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21445               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okc_rule_groups...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21446       END IF;
21447       l_curr_pos := 'okl_copy_lease_contract:40';
21448       l_message := 'OKL_NEW_COPY_RGP_ERROR';
21449       insert_okc_rule_groups(p_chr_id, l_copied_id); -- _b,_tl and rules(_b,_tl)
21450 
21451       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21452               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okc_rg_party_roles...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21453       END IF;
21454       l_curr_pos := 'okl_copy_lease_contract:41';
21455       l_message := 'OKL_NEW_COPY_RGR_ERROR';
21456       insert_okc_rg_party_roles(p_chr_id, l_copied_id);
21457 
21458       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21459               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okc_k_items...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21460       END IF;
21461       l_curr_pos := 'okl_copy_lease_contract:42';
21462       l_message := 'OKL_NEW_COPY_CIM_ERROR';
21463       insert_okc_k_items(p_chr_id, l_copied_id);
21464 
21465       IF ((l_sts_code_orig IN (
21466          'APPROVED', 'COMPLETE', 'INCOMPLETE', 'NEW',
21467           'PASSED', 'PENDING_APPROVAL')) OR
21468           (nvl(l_template_yn, 'N') = 'Y' )) THEN
21469         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21470                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okl_trx_assets...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21471         END IF;
21472         l_curr_pos := 'okl_copy_lease_contract:43';
21473         l_message := 'OKL_NEW_COPY_ASSET_TAS_ERROR';
21474         insert_okl_trx_assets(p_chr_id, l_copied_id);
21475 
21476         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21477                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okl_txl_itm_insts...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21478         END IF;
21479         l_curr_pos := 'okl_copy_lease_contract:44';
21480         l_message := 'OKL_NEW_COPY_IB_TAS_ERROR';
21481         insert_okl_trx_assets_2(p_chr_id, l_copied_id);
21482         l_curr_pos := 'okl_copy_lease_contract:45';
21483         l_message := 'OKL_NEW_COPY_ITI_ERROR';
21484         insert_okl_txl_itm_insts(p_chr_id, l_copied_id);
21485       ELSE
21486         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21487                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okl_trx_assets BOOKED...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21488         END IF;
21489         l_curr_pos := 'okl_copy_lease_contract:46';
21490         l_message := 'OKL_NEW_COPY_ASSET_TAS_ERROR';
21491         insert_okl_trx_assets_3(p_chr_id, l_copied_id);
21492         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21493                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okl_txl_itm_insts BOOKED...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21494         END IF;
21495         l_curr_pos := 'okl_copy_lease_contract:47';
21496         l_message := 'OKL_NEW_COPY_IB_TAS_ERROR';
21497         insert_okl_txl_itm_insts2(p_chr_id, l_copied_id);
21498       END IF;
21499 
21500       -- Delete the abandoned/rollover/insurance lines now
21501       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21502               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Delete started ' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21503       END IF;
21504       l_curr_pos := 'okl_copy_lease_contract:48';
21505       IF (l_delete_counter > 1) THEN
21506         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21507                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_delete_counter=' || l_delete_counter);
21508         END IF;
21509         FOR i IN l_delete_id_tab.first..l_delete_id_tab.last
21510         LOOP
21511           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21512                       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_delete_id_tab(' || i || ')=' || l_delete_id_tab(i));
21513           END IF;
21514           select count(1) into l_line_count  -- 5207066
21515           FROM   okc_k_lines_b
21516           where  id = l_delete_id_tab(i);
21517           IF (l_line_count > 0) THEN  -- 5207066
21518           Okl_Contract_Pub.delete_contract_line(
21519               p_api_version    => p_api_version,
21520               p_init_msg_list  => p_init_msg_list,
21521               x_return_status  => x_return_status,
21522               x_msg_count      => x_msg_count,
21523               x_msg_data       => x_msg_data,
21524               p_line_id        => l_delete_id_tab(i));
21525           IF x_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
21526               RAISE G_EXCEPTION_HALT_PROCESS;
21527           END IF;
21528           END IF;
21529 
21530         END LOOP;
21531       END IF;
21532 
21533       -- Update status as ENTERED
21534       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21535               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Update sts_code started ' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21536       END IF;
21537       l_curr_pos := 'okl_copy_lease_contract:49';
21538       IF (l_entered_counter > 1) THEN
21539 
21540         forall i IN l_entered_id_tab.first..l_entered_id_tab.last
21541           UPDATE okc_k_lines_b
21542           SET sts_code = l_entered_sts_code_tab(i) -- Bug 4872258
21543           --SET sts_code = 'ENTERED'
21544           WHERE id = l_entered_id_tab(i);
21545       END IF;
21546 
21547       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21548               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okl_supp_invoice_dtls...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21549       END IF;
21550       l_curr_pos := 'okl_copy_lease_contract:50';
21551       l_message := 'OKL_NEW_COPY_SID_ERROR';
21552       insert_okl_supp_invoice_dtls(p_chr_id);
21553       /* AKP: Commented out for now: it takes lot of time to execute formula
21554       print('Before formula execute x_return_status='||x_return_status || ' ' || to_char(sysdate,'HH24:MI:SS'));
21555 
21556       -- Post Processing (to calculate CAPITAL_AMOUNT)
21557       l_curr_pos := 'okl_copy_lease_contract:51';
21558       if (l_id2_tab.count > 0) then
21559       for i in l_id2_tab.first..l_id2_tab.last
21560       loop
21561         if (l_lse_id2_tab(i) = 33) then
21562           --print('Calling with ' || l_id2_tab(i));
21563           okl_execute_formula_pub.execute(p_api_version=> p_api_version,
21564                         p_init_msg_list => p_init_msg_list,
21565                         x_return_status => x_return_status,
21566                         x_msg_count => x_msg_count,
21567                         x_msg_data => x_msg_data,
21568                         p_formula_name => 'LINE_CAP_AMNT',
21569                         p_contract_id => l_copied_id,
21570                         p_line_id => l_id2_tab(i),
21571                         x_value => l_capital_amount);
21572           if (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
21573             raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
21574           elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
21575             raise OKC_API.G_EXCEPTION_ERROR;
21576           end if;
21577         end if;
21578       end loop;
21579       end if;
21580       */
21581     END IF; /* if copy_lines_yn <> 'N' */
21582     END LOOP; /* for c1rec */
21583       --x_return_status := OKL_API.G_RET_STS_SUCCESS;
21584 
21585     x_chr_id := l_copied_id;
21586     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21587           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'After formula execute x_return_status='||x_return_status || ' ' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21588     END IF;
21589 
21590     -- Now do all the business events processing
21591     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21592           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Doing raise_business_event_header...' );
21593     END IF;
21594     l_curr_pos := 'okl_copy_lease_contract:52';
21595     raise_business_event_header(p_chr_id        => x_chr_id
21596 	                       ,x_return_status => x_return_status);
21597     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
21598        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
21599     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
21600        RAISE OKL_API.G_EXCEPTION_ERROR;
21601     END IF;
21602 
21603     -- For Create Top Line and Subsidy
21604 
21605     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21606           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Doing raise_business_event...' );
21607     END IF;
21608     l_curr_pos := 'okl_copy_lease_contract:53';
21609     l_contract_process := okl_lla_util_pvt.get_contract_process(l_copied_id);
21610 
21611     IF (l_counter > 1) THEN
21612       l_parameter_list := NULL;
21613       l_raise_business_event := OKL_API.G_FALSE;
21614       l_event_name := NULL;
21615       l_curr_pos := 'okl_copy_lease_contract:54';
21616       FOR i IN l_id_tab.first..l_id_tab.last
21617       LOOP
21618         IF l_lse_id_tab(i) = 58 THEN
21619             -- raise the business event for create credit limit, if line style code is FREE_FORM
21620             l_event_name  := G_WF_EVT_CR_LMT_CREATED;
21621             l_raise_business_event := OKL_API.G_TRUE;
21622             wf_event.AddParameterToList(G_WF_ITM_CR_LINE_ID,l_copied_id,l_parameter_list);
21623             wf_event.AddParameterToList(G_WF_ITM_CR_LMT_ID,l_id_tab(i),l_parameter_list);
21624         ELSIF l_lse_id_tab(i) = 33 THEN
21625             -- raise the business event for create asset, if line style code is FREE_FORM1
21626             l_event_name  := G_WF_EVT_ASSET_CREATED;
21627             wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID,l_copied_id,l_parameter_list);
21628             wf_event.AddParameterToList(G_WF_ITM_ASSET_ID,l_id_tab(i),l_parameter_list);
21629         ELSIF l_lse_id_tab(i) = 48 THEN
21630             -- raise the business event for create service, if line style code is SOLD_SERVICE
21631             l_event_name  := G_WF_EVT_SERVICE_CREATED;
21632             wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID,l_copied_id,l_parameter_list);
21633             wf_event.AddParameterToList(G_WF_ITM_SRV_LINE_ID,l_id_tab(i),l_parameter_list);
21634         --create_fee event is raised from here rather than okl_maintain_fee_pvt
21635         --as contract import process does not call okl_maintain_fee_pvt, but directly calls
21636         --okl_contract_pvt
21637         ELSIF l_lse_id_tab(i) = 52 THEN
21638             -- raise the business event for create fee, if line style code is FEE
21639             l_event_name  := G_WF_EVT_FEE_CREATED;
21640             wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID,l_copied_id,l_parameter_list);
21641             wf_event.AddParameterToList(G_WF_ITM_FEE_LINE_ID,l_id_tab(i),l_parameter_list);
21642         END IF;
21643 
21644         -- raise business event only if the contract is a lease contract, the raise_event flag is on and business event
21645         -- name is specified. the event should also be raised if this is a credit limit, in which case is_lease_contract
21646         -- does not hold good
21647         IF(l_raise_business_event = OKL_API.G_TRUE AND l_event_name IS NOT NULL) THEN
21648         	 raise_business_event(p_api_version    => p_api_version,
21649                               p_init_msg_list  => p_init_msg_list,
21650                               x_return_status  => x_return_status,
21651                               x_msg_count      => x_msg_count,
21652                               x_msg_data       => x_msg_data,
21653                               p_event_name     => l_event_name,
21654                               p_parameter_list => l_parameter_list,
21655                               p_contract_process  => l_contract_process );
21656           IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
21657             RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
21658           ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
21659             RAISE OKL_API.G_EXCEPTION_ERROR;
21660           END IF;
21661           l_parameter_list := NULL;
21662           l_raise_business_event := OKL_API.G_FALSE;
21663           l_event_name := NULL;
21664         END IF;
21665 
21666         -- Subsidy
21667         IF (l_lse_id_tab(i) = 70) THEN
21668          raise_business_event_subsidy(p_api_version         => p_api_version,
21669                               p_init_msg_list    => p_init_msg_list,
21670                               p_chr_id           => l_copied_id,
21671                               p_asset_id         => l_cle_id_tab(i),
21672                               p_subsidy_id       => find_osid_mapping_id(l_id_tab(i)),
21673                               p_event_name       => G_WF_EVT_ASSET_SUBSIDY_CRTD,
21674                               p_contract_process => l_contract_process,
21675                               x_return_status    => x_return_status,
21676                               x_msg_count        => x_msg_count,
21677                               x_msg_data         => x_msg_data
21678                              );
21679          IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
21680             RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
21681          ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
21682             RAISE OKL_API.G_EXCEPTION_ERROR;
21683          END IF;
21684 
21685         END IF;
21686       END LOOP;
21687     END IF;
21688 
21689     IF (l_counter > 1) THEN
21690       l_curr_pos := 'okl_copy_lease_contract:55';
21691       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21692               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Doing raise_business_event_itm...' );
21693       END IF;
21694       -- For Create Fee Asset and Create Usage Line and Create Usage Asset
21695       l_parameter_list := NULL;
21696       l_raise_business_event := OKL_API.G_FALSE;
21697       l_business_event_name := NULL;
21698       FOR i IN l_id_tab.first..l_id_tab.last
21699       LOOP
21700 
21701         IF(l_lse_id_tab(i) = 53 ) THEN
21702            l_raise_business_event := OKL_API.G_TRUE;
21703            l_business_event_name  := G_WF_EVT_ASSET_FEE_CREATED;
21704            wf_event.AddParameterToList(G_WF_ITM_FEE_LINE_ID,l_cle_id_tab(i),l_parameter_list);
21705         ELSIF(l_lse_id_tab(i) = 49 ) THEN
21706            l_raise_business_event := OKL_API.G_TRUE;
21707            l_business_event_name  := G_WF_EVT_ASSET_SERV_FEE_CRTD;
21708            wf_event.AddParameterToList(G_WF_ITM_SERV_LINE_ID,l_cle_id_tab(i),l_parameter_list);
21709         END IF;
21710 
21711         IF(l_raise_business_event = OKL_API.G_TRUE AND l_business_event_name IS NOT NULL)THEN
21712       	   wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID,l_copied_id,l_parameter_list);
21713              --Ashish ??? Done
21714       	   --wf_event.AddParameterToList(G_WF_ITM_ASSET_ID,p_cimv_rec.object1_id1,l_parameter_list);
21715              l_new_object1_id1 := find_oid_mapping_id(l_id_tab(i));
21716              IF (l_new_object1_id1 = '-1') THEN
21717                IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21718                                 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Can not find mapping object1_id1 for ' || l_id_tab(i));
21719                END IF;
21720                RAISE OKL_API.G_EXCEPTION_ERROR;
21721              END IF;
21722       	   wf_event.AddParameterToList(G_WF_ITM_ASSET_ID,l_new_object1_id1,l_parameter_list);
21723 
21724     	   raise_business_event_itm(p_api_version      => p_api_version
21725                                ,p_init_msg_list    => p_init_msg_list
21726     	                     ,x_return_status    => x_return_status
21727                                ,x_msg_count        => x_msg_count
21728                                ,x_msg_data         => x_msg_data
21729                                ,p_event_name       => l_business_event_name
21730                                ,p_event_param_list => l_parameter_list
21731                                ,p_contract_process => l_contract_process);
21732           l_raise_business_event := OKL_API.G_FALSE;
21733           l_business_event_name := NULL;
21734           l_parameter_list := NULL;
21735         END IF;
21736 
21737         IF (l_lse_id_tab(i) = 56) THEN
21738           okl_ubb_wf_pvt.raise_create_event (
21739                            p_api_version    => p_api_version,
21740                            p_init_msg_list  => p_init_msg_list,
21741                            x_return_status  => x_return_status,
21742                            x_msg_count      => x_msg_count,
21743                            x_msg_data       => x_msg_data,
21744                            p_chr_id         => l_copied_id,
21745                            p_ubb_id         => l_id_tab(i));
21746           IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
21747             RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
21748           ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
21749             RAISE OKL_API.G_EXCEPTION_ERROR;
21750           END IF;
21751         ELSIF (l_lse_id_tab(i) = 57) THEN
21752           okl_ubb_wf_pvt.raise_add_asset_event (
21753                            p_api_version    => p_api_version,
21754                            p_init_msg_list  => p_init_msg_list,
21755                            x_return_status  => x_return_status,
21756                            x_msg_count      => x_msg_count,
21757                            x_msg_data       => x_msg_data,
21758                            p_chr_id         => l_copied_id,
21759                            p_ubb_id         => l_cle_id_tab(i),
21760                            p_cle_id         => l_id_tab(i));
21761         END IF;
21762 
21763       END LOOP;
21764     END IF;
21765 
21766     IF (l_party_counter > 1) THEN
21767       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21768               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Doing raise_business_event_itm again...' );
21769       END IF;
21770       l_curr_pos := 'okl_copy_lease_contract:56';
21771       -- For create party
21772       l_parameter_list := NULL;
21773       FOR i IN l_prid_tab.first..l_prid_tab.last
21774       LOOP
21775 
21776         wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID,l_copied_id,l_parameter_list);
21777         --vthiruva..04-jan-2004.. Modified to pass object1_id1 as party id and
21778         --added party_role_id to list of paramters passed to raise business event.
21779         --wf_event.AddParameterToList(G_WF_ITM_PARTY_ID,p_cplv_rec.object1_id1,l_parameter_list);
21780         --wf_event.AddParameterToList(G_WF_ITM_PARTY_ROLE_ID,x_cplv_rec.id,l_parameter_list);
21781         wf_event.AddParameterToList(G_WF_ITM_PARTY_ID,l_probject1_id1_tab(i),l_parameter_list);
21782         wf_event.AddParameterToList(G_WF_ITM_PARTY_ROLE_ID,l_prid_tab(i),l_parameter_list);
21783 
21784   	  raise_business_event_itm(p_api_version      => p_api_version
21785                             ,p_init_msg_list    => p_init_msg_list
21786   	                  ,x_return_status    => x_return_status
21787                             ,x_msg_count        => x_msg_count
21788                             ,x_msg_data         => x_msg_data
21789                             ,p_event_name       => G_WF_EVT_KHR_PARTY_CREATED
21790                             ,p_event_param_list => l_parameter_list
21791                             ,p_contract_process => l_contract_process);
21792 
21793         IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
21794            RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
21795         ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
21796            RAISE OKL_API.G_EXCEPTION_ERROR;
21797         END IF;
21798         l_parameter_list := NULL;
21799 
21800       END LOOP;
21801     END IF;
21802 
21803     IF (l_txl_assets_b_counter > 1) THEN
21804       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21805               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Doing raise_business_event_dep...' );
21806       END IF;
21807       l_curr_pos := 'okl_copy_lease_contract:57';
21808       -- For Create book Depreciation
21809       FOR i IN l_tbid_tab.first..l_tbid_tab.last
21810       LOOP
21811         IF (l_tbcorporate_book_tab(i) IS NOT NULL) THEN
21812          raise_business_event_dep
21813                              (p_api_version         => p_api_version,
21814                               p_init_msg_list       => p_init_msg_list,
21815                               p_chr_id              => l_copied_id,
21816                               p_asset_id            => find_cid_mapping_id(l_tbkle_id_tab(i)),
21817                               p_book_code           => l_tbcorporate_book_tab(i),
21818                               p_event_name          => G_WF_EVT_ASSETBOOK_DPRN_CRTD,
21819                               p_contract_process    => l_contract_process,
21820                               x_return_status       => x_return_status,
21821                               x_msg_count           => x_msg_count,
21822                               x_msg_data            => x_msg_data
21823                              );
21824          IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
21825             RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
21826          ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
21827             RAISE OKL_API.G_EXCEPTION_ERROR;
21828          END IF;
21829         END IF;
21830       END LOOP;
21831     END IF;
21832 
21833     IF (l_trx_assets_counter4 > 1) THEN
21834       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21835               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Doing raise_business_event_dep 2...' );
21836       END IF;
21837       l_curr_pos := 'okl_copy_lease_contract:58';
21838       FOR i IN l_tb2id_tab.first..l_tb2id_tab.last
21839       LOOP
21840         IF (l_tb2corporate_book_tab(i) IS NOT NULL) THEN
21841          raise_business_event_dep
21842                              (p_api_version         => p_api_version,
21843                               p_init_msg_list       => p_init_msg_list,
21844                               p_chr_id              => l_copied_id,
21845                               p_asset_id            => find_cid_mapping_id(l_tb2kle_id_tab(i)),
21846                               p_book_code           => l_tb2corporate_book_tab(i),
21847                               p_event_name          => G_WF_EVT_ASSETBOOK_DPRN_CRTD,
21848                               p_contract_process    => l_contract_process,
21849                               x_return_status       => x_return_status,
21850                               x_msg_count           => x_msg_count,
21851                               x_msg_data            => x_msg_data
21852                              );
21853          IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
21854             RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
21855          ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
21856             RAISE OKL_API.G_EXCEPTION_ERROR;
21857          END IF;
21858         END IF;
21859       END LOOP;
21860     END IF;
21861 
21862     -- Create Tax Depreciation
21863     IF (l_tal_to_kle_counter > 1) THEN
21864       l_curr_pos := 'okl_copy_lease_contract:59';
21865       FOR i IN l_dbid_mapping_tab.first..l_dbid_mapping_tab.last
21866       LOOP
21867         l_tal_kle_cle_id := find_cid_mapping_id(l_dbid_mapping_tab(i).kle_id);
21868         IF (l_tal_kle_cle_id = -1) THEN
21869           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21870                       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR: TAL_ID to KLE_ID to CLE_ID mapping not found');
21871           END IF;
21872           RAISE OKL_API.G_EXCEPTION_ERROR;
21873         END IF;
21874         raise_business_event_txd
21875                    ( p_api_version         => p_api_version,
21876                      p_init_msg_list       => p_init_msg_list,
21877                      p_chr_id              => l_copied_id,
21878                      p_asset_id            => l_tal_kle_cle_id,
21879                      p_event_name          => G_WF_EVT_ASSETTAX_DPRN_CRTD,
21880                      p_contract_process    => l_contract_process,
21881                      x_return_status       => x_return_status,
21882                      x_msg_count           => x_msg_count,
21883                      x_msg_data            => x_msg_data
21884                    );
21885         IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
21886           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
21887         ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
21888           RAISE OKL_API.G_EXCEPTION_ERROR;
21889         END IF;
21890       END LOOP;
21891     END IF;
21892 
21893     -- Create Serial Number
21894     IF ( l_txl_itm_insts_counter > 1 ) THEN
21895       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21896               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Doing raise_business_event_itm...');
21897       END IF;
21898       l_curr_pos := 'okl_copy_lease_contract:60';
21899       FOR i IN l_tiid_tab.first..l_tiid_tab.last
21900       LOOP
21901         IF (l_tiserial_number_tab(i) IS NOT NULL) THEN
21902           raise_business_event_itm
21903                     ( p_api_version         => p_api_version,
21904                       p_init_msg_list       => p_init_msg_list,
21905                       p_chr_id              => l_copied_id,
21906                       p_asset_id            => l_tidnz_cle_id_tab(i),
21907                       p_ser_num             => l_tiserial_number_tab(i),
21908                       p_event_name          => G_WF_EVT_ASSET_SERIAL_CRTD,
21909                       p_contract_process    => l_contract_process,
21910                       x_return_status       => x_return_status,
21911                       x_msg_count           => x_msg_count,
21912                       x_msg_data            => x_msg_data
21913                     );
21914        IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
21915           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
21916        ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
21917           RAISE OKL_API.G_EXCEPTION_ERROR;
21918        END IF;
21919         END IF;
21920       END LOOP;
21921     END IF;
21922 
21923     -- Create Serial Number2
21924     IF ( l_txl_itm_insts_counter2 > 1 ) THEN
21925       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21926               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Doing raise_business_event_itm 2...');
21927       END IF;
21928       l_curr_pos := 'okl_copy_lease_contract:61';
21929       FOR i IN l_ti2id_tab.first..l_ti2id_tab.last
21930       LOOP
21931         IF (l_ti2serial_number_tab(i) IS NOT NULL) THEN
21932           raise_business_event_itm
21933                     ( p_api_version         => p_api_version,
21934                       p_init_msg_list       => p_init_msg_list,
21935                       p_chr_id              => l_copied_id,
21936                       p_asset_id            => l_ti2dnz_cle_id_tab(i),
21937                       p_ser_num             => l_ti2serial_number_tab(i),
21938                       p_event_name          => G_WF_EVT_ASSET_SERIAL_CRTD,
21939                       p_contract_process    => l_contract_process,
21940                       x_return_status       => x_return_status,
21941                       x_msg_count           => x_msg_count,
21942                       x_msg_data            => x_msg_data
21943                     );
21944        IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
21945           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
21946        ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
21947           RAISE OKL_API.G_EXCEPTION_ERROR;
21948        END IF;
21949         END IF;
21950       END LOOP;
21951     END IF;
21952 
21953     -- For Create Supplier Invoice Details
21954     IF (l_supp_invoice_dtls_counter > 1) THEN
21955       l_curr_pos := 'okl_copy_lease_contract:62';
21956       FOR i IN l_osid_tab.first..l_osid_tab.last
21957       LOOP
21958         l_vendor_id := NULL;
21959         IF (l_vid_counter > 1) THEN
21960           l_vendor_id  := find_vid_mapping_id(l_oscle_id_tab(i));
21961         END IF;
21962         raise_business_event_supp
21963              ( p_api_version         => p_api_version,
21964                p_init_msg_list       => p_init_msg_list,
21965                p_chr_id              => l_copied_id,
21966                p_asset_id            => l_oscle_id_tab(i),
21967                p_vendor_id           => l_vendor_id,
21968                p_event_name          => G_WF_EVT_ASSET_SUP_INV_CRTD,
21969                p_contract_process    => l_contract_process,
21970                x_return_status       => x_return_status,
21971                x_msg_count           => x_msg_count,
21972                x_msg_data            => x_msg_data
21973              );
21974        IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
21975           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
21976        ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
21977           RAISE OKL_API.G_EXCEPTION_ERROR;
21978        END IF;
21979       END LOOP;
21980     END IF;
21981 
21982     -- For Rule Groups
21983     IF (l_rule_groups_b_counter > 1) THEN
21984       l_raise_business_event := OKL_API.G_FALSE;
21985       l_business_event_name := NULL;
21986       l_curr_pos := 'okl_copy_lease_contract:63';
21987 
21988       FOR i IN l_rid_tab.first..l_rid_tab.last
21989       LOOP
21990 
21991         l_terms_id := NULL;
21992         IF(l_rrgd_code_tab(i) = 'LAAFLG' AND l_rchr_id_tab(i) IS NOT NULL)
21993         THEN
21994           -- raise business event for the Liens and Title for Terms and Conditions for the Contract
21995           l_raise_business_event := OKL_API.G_TRUE;
21996           l_business_event_name := G_WF_EVT_CONTRACT_TERM_UPDATED;
21997           l_terms_id := find_tid_mapping_id(l_rrgd_code_tab(i));
21998           IF(l_terms_id IS NOT NULL)THEN
21999             wf_event.AddParameterToList(G_WF_ITM_TERMS_ID, l_terms_id, l_parameter_list);
22000           END IF;
22001         ELSIF(l_rrgd_code_tab(i) = 'LAAFLG' AND l_rcle_id_tab(i) IS NOT NULL)
22002         THEN
22003           --raise business event for Liens Title and Registration for the Assets
22004           l_raise_business_event := OKL_API.G_TRUE;
22005           l_business_event_name := G_WF_EVT_ASSET_FILING_UPDATED;
22006           wf_event.AddParameterToList(G_WF_ITM_ASSET_ID, l_rcle_id_tab(i), l_parameter_list);
22007         ELSIF(l_rrgd_code_tab(i) = 'LAASTX' AND l_rcle_id_tab(i) IS NOT NULL)
22008         THEN
22009           -- raise business event for tax, property tax updated.
22010           l_raise_business_event := OKL_API.G_TRUE;
22011           l_business_event_name := G_WF_EVT_ASSET_PROPTAX_UPDATED;
22012           wf_event.AddParameterToList(G_WF_ITM_ASSET_ID, l_rcle_id_tab(i), l_parameter_list);
22013         ELSIF(l_rrgd_code_tab(i) = 'LAPSTH' AND l_rcle_id_tab(i) IS NOT NULL)
22014         THEN
22015           l_line_style := find_sid_mapping_id(l_rcle_id_tab(i));
22016           -- raise business event for service line update passthru
22017           IF(l_line_style IS NOT NULL AND l_line_style = 48)THEN
22018             l_raise_business_event := OKL_API.G_TRUE;
22019             l_business_event_name := G_WF_EVT_SERV_PASS_UPDATED;
22020             wf_event.AddParameterToList(G_WF_ITM_SERV_LINE_ID, l_rcle_id_tab(i), l_parameter_list);
22021             -- check if the service line in context has a service contract associated with it
22022             -- if so, pass the service contract id and service contract line id as parameters
22023             IF (NOT(l_queried)) THEN
22024               OPEN c29(l_copied_id);
22025               LOOP
22026                 FETCH c29 bulk collect INTO
22027                 l_s2cle_id_tab, l_s2object1_id1_tab;
22028                 EXIT WHEN l_s2cle_id_tab.COUNT = 0;
22029                 FOR j IN l_s2cle_id_tab.first..l_s2cle_id_tab.last
22030                 LOOP
22031                   -- Store cle_id and object1_id1 for business function only
22032                   l_ssid_mapping_tab(l_ssid_counter).cle_id := l_s2cle_id_tab(j);
22033                   l_ssid_mapping_tab(l_ssid_counter).object1_id1 := l_s2object1_id1_tab(j);
22034                   l_ssid_counter := l_ssid_counter + 1;
22035                 END LOOP;
22036               END LOOP;
22037               CLOSE c29;
22038               sort_ssid_mapping_tab;
22039               l_queried := TRUE;
22040             END IF;
22041             l_service_top_line_id := find_ssid_mapping_id(l_rcle_id_tab(i));
22042             IF(l_service_top_line_id IS NOT NULL)THEN
22043               l_serv_contract_id := l_copied_id;
22044               wf_event.AddParameterToList(G_WF_ITM_SERV_CHR_ID, l_serv_contract_id, l_parameter_list);
22045               wf_event.AddParameterToList(G_WF_ITM_SERV_CLE_ID, l_service_top_line_id, l_parameter_list);
22046             END IF;
22047           -- raise the business event for update passthrough for Fee Line
22048           ELSIF(l_line_style IS NOT NULL AND l_line_style = 52)THEN
22049             l_raise_business_event := OKL_API.G_TRUE;
22050             l_business_event_name := G_WF_EVT_FEE_PASS_UPDATED;
22051             wf_event.AddParameterToList(G_WF_ITM_FEE_LINE_ID, l_rcle_id_tab(i), l_parameter_list);
22052           END IF;
22053         ELSIF(l_rrgd_code_tab(i) = 'LAFEXP' AND l_rcle_id_tab(i) IS NOT NULL)
22054         THEN
22055           l_line_style := find_sid_mapping_id(l_rcle_id_tab(i));
22056           /*OPEN get_line_style(p_line_id);
22057           FETCH get_line_style INTO l_line_style;
22058           CLOSE get_line_style;*/
22059           -- raise business event for service line update expense
22060           IF(l_line_style IS NOT NULL AND l_line_style = 48)THEN
22061             l_raise_business_event := OKL_API.G_TRUE;
22062             l_business_event_name := G_WF_EVT_SERV_FEXP_UPDATED;
22063             wf_event.AddParameterToList(G_WF_ITM_SERV_LINE_ID, l_rcle_id_tab(i), l_parameter_list);
22064             -- check if the service line in context has a service contract associated with it
22065             -- if so, pass the service contract id and service contract line id as parameters
22066             /*OPEN get_serv_chr_from_serv(p_chr_id, p_line_id);
22067             FETCH get_serv_chr_from_serv INTO l_service_top_line_id;
22068             CLOSE get_serv_chr_from_serv;*/
22069             IF (NOT(l_queried)) THEN
22070               OPEN c29(l_copied_id);
22071               LOOP
22072                 FETCH c29 bulk collect INTO
22073                 l_s2cle_id_tab, l_s2object1_id1_tab;
22074                 EXIT WHEN l_s2cle_id_tab.COUNT = 0;
22075                 FOR j IN l_s2cle_id_tab.first..l_s2cle_id_tab.last
22076                 LOOP
22077                   -- Store cle_id and object1_id1 for business function only
22078                   l_ssid_mapping_tab(l_ssid_counter).cle_id := l_s2cle_id_tab(j);
22079                   l_ssid_mapping_tab(l_ssid_counter).object1_id1 := l_s2object1_id1_tab(j);
22080                   l_ssid_counter := l_ssid_counter + 1;
22081                 END LOOP;
22082               END LOOP;
22083               CLOSE c29;
22084               sort_ssid_mapping_tab;
22085               l_queried := TRUE;
22086             END IF;
22087             l_service_top_line_id := find_ssid_mapping_id(l_rcle_id_tab(i));
22088             IF(l_service_top_line_id IS NOT NULL)THEN
22089               /*OPEN get_serv_cle_from_serv(l_service_top_line_id);
22090               FETCH get_serv_cle_from_serv INTO l_serv_contract_id;
22091               CLOSE get_serv_cle_from_serv; */
22092               l_serv_contract_id := l_copied_id;
22093               wf_event.AddParameterToList(G_WF_ITM_SERV_CHR_ID, l_serv_contract_id, l_parameter_list);
22094               wf_event.AddParameterToList(G_WF_ITM_SERV_CLE_ID, l_service_top_line_id, l_parameter_list);
22095             END IF;
22096           ELSIF(l_line_style IS NOT NULL AND l_line_style = 52)THEN
22097             l_raise_business_event := OKL_API.G_TRUE;
22098             l_business_event_name := G_WF_EVT_FEE_EXP_UPDATED;
22099             wf_event.AddParameterToList(G_WF_ITM_FEE_LINE_ID, l_rcle_id_tab(i), l_parameter_list);
22100           END IF;
22101         END IF;
22102 
22103      -- check if the business event needs to be raised
22104       IF (l_raise_business_event = OKL_API.G_TRUE AND
22105           l_business_event_name IS NOT NULL )THEN
22106        -- since contract id is called as 'CONTRACT_ID'  for all the above events, it is being
22107        -- added to the parameter list here, than duplicating it in all the above if conditions
22108 
22109         wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID, l_copied_id, l_parameter_list);
22110         raise_business_event_rules
22111                            (p_api_version     => p_api_version,
22112                             p_init_msg_list   => p_init_msg_list,
22113                             x_return_status   => x_return_status,
22114                             x_msg_count       => x_msg_count,
22115                             x_msg_data        => x_msg_data,
22116                             p_event_name      => l_business_event_name,
22117                             p_event_param_list => l_parameter_list,
22118                             p_contract_process => l_contract_process
22119                            );
22120         IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
22121           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22122         ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
22123           RAISE OKL_API.G_EXCEPTION_ERROR;
22124         END IF;
22125 
22126         l_raise_business_event := OKL_API.G_FALSE;
22127         l_business_event_name := NULL;
22128 
22129       END IF;
22130 
22131       END LOOP;
22132     END IF;
22133 
22134     -- End of business events processing
22135 
22136     l_curr_pos := 'okl_copy_lease_contract:64';
22137     OKL_API.END_ACTIVITY (x_msg_count,
22138                           x_msg_data );
22139     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
22140           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Done ' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
22141     END IF;
22142      EXCEPTION
22143        WHEN OKL_API.G_EXCEPTION_ERROR THEN
22144          IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
22145                     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
22146          END IF;
22147          OKL_API.set_message(p_app_name => 'OKL',
22148                       p_msg_name => l_message,
22149                       p_token1 => 'CONTRACT_NUMBER',
22150                       p_token1_value => l_contract_number);
22151        x_return_status := OKL_API.HANDLE_EXCEPTIONS(
22152                                   l_api_name,
22153                                   G_PKG_NAME,
22154                                   'OKL_API.G_RET_STS_ERROR',
22155                                   x_msg_count,
22156                                   x_msg_data,
22157                                   '_PVT');
22158        IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
22159                 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_curr_pos='||l_curr_pos);
22160        END IF;
22161        --print('sqlcode='||sqlcode || ':sqlerrm=' || sqlerrm);
22162        IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
22163                 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing copy_lease_contract:l_id_tab ...');
22164        END IF;
22165        FOR i IN 1..l_counter-1
22166        LOOP
22167          IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
22168                     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'id('||i||')='||l_id_tab(i) || ' cle_id('||i||')=' || l_cle_id_tab(i)||' orig_system_id1('||i||')='||l_orig_system_id1_tab(i));
22169            OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'lse_id('||i||')='||l_lse_id_tab(i) || ' name_tab('||i||')=' || l_name_tab(i));
22170          END IF;
22171        END LOOP;
22172        WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
22173          IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
22174                     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
22175          END IF;
22176          OKL_API.set_message(p_app_name => 'OKL',
22177                       p_msg_name => l_message,
22178                       p_token1 => 'CONTRACT_NUMBER',
22179                       p_token1_value => l_contract_number);
22180        x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
22181                                  l_api_name,
22182                                  G_PKG_NAME,
22183                                  'OKL_API.G_RET_STS_UNEXP_ERROR',
22184                                  x_msg_count,
22185                                  x_msg_data,
22186                                  '_PVT');
22187        IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
22188                 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_curr_pos='||l_curr_pos);
22189        END IF;
22190        --print('sqlcode='||sqlcode || ':sqlerrm=' || sqlerrm);
22191        IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
22192                 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing copy_lease_contract:l_id_tab ...');
22193        END IF;
22194        FOR i IN 1..l_counter-1
22195        LOOP
22196          IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
22197                     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'id('||i||')='||l_id_tab(i) || ' cle_id('||i||')=' || l_cle_id_tab(i)||' orig_system_id1('||i||')='||l_orig_system_id1_tab(i));
22198            OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'lse_id('||i||')='||l_lse_id_tab(i) || ' name_tab('||i||')=' || l_name_tab(i));
22199          END IF;
22200        END LOOP;
22201        WHEN OTHERS THEN
22202          IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
22203                     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
22204          END IF;
22205          OKL_API.set_message(p_app_name => 'OKL',
22206                       p_msg_name => l_message,
22207                       p_token1 => 'CONTRACT_NUMBER',
22208                       p_token1_value => l_contract_number);
22209        x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
22210                                  l_api_name,
22211                                  G_PKG_NAME,
22212                                  'OTHERS',
22213                                  x_msg_count,
22214                                  x_msg_data,
22215                                  '_PVT');
22216        IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
22217                 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_curr_pos='||l_curr_pos);
22218        END IF;
22219        --print('sqlcode='||sqlcode || ':sqlerrm=' || sqlerrm);
22220        IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
22221                 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing copy_lease_contract:l_id_tab ...');
22222        END IF;
22223        FOR i IN 1..l_counter-1
22224        LOOP
22225          IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
22226                     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'id('||i||')='||l_id_tab(i) || ' cle_id('||i||')=' || l_cle_id_tab(i)||' orig_system_id1('||i||')='||l_orig_system_id1_tab(i));
22227            OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'lse_id('||i||')='||l_lse_id_tab(i) || ' name_tab('||i||')=' || l_name_tab(i));
22228          END IF;
22229        END LOOP;
22230 END;  /* copy_lease_contract_new */
22231 
22232 --------------------------------------------------------------------------------
22233 -- Start of comments
22234 --
22235 -- Procedure Name  : copy_lease_contract
22236 -- Description     : Copies the contract and all the lines attached to the contract
22237 -- Business Rules  :
22238 -- Parameters      :
22239 -- Version         : 1.0
22240 -- Notes           :
22241 -- End of comments
22242 --------------------------------------------------------------------------------
22243 PROCEDURE copy_lease_contract(
22244             p_api_version              IN  NUMBER,
22245             p_init_msg_list            IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
22246             x_return_status            OUT NOCOPY VARCHAR2,
22247             x_msg_count                OUT NOCOPY NUMBER,
22248             x_msg_data                 OUT NOCOPY VARCHAR2,
22249             p_commit                   IN  VARCHAR2 DEFAULT 'F',
22250             p_chr_id                   IN  NUMBER,
22251             p_contract_number	       IN  VARCHAR2,
22252             p_contract_number_modifier IN  VARCHAR2,
22253             p_to_template_yn	       IN  VARCHAR2 DEFAULT 'N',
22254             p_renew_ref_yn             IN  VARCHAR2,
22255             p_copy_lines_yn            IN VARCHAR2,
22256             p_override_org	           IN  VARCHAR2 DEFAULT 'N',
22257             p_trans_type               IN  VARCHAR2,
22258             x_chr_id                   OUT NOCOPY NUMBER) IS
22259 
22260     l_api_name      CONSTANT VARCHAR2(30) := 'COPY_LEASE_CONTRACT';
22261     lt_klev_tbl_type         klev_tbl_type;
22262     ltx_klev_tbl_type        klev_tbl_type;
22263     i                        NUMBER := 0;
22264 
22265     CURSOR c_get_old_k_top_line(p_dnz_chr_id OKC_K_LINES_B.DNZ_CHR_ID%TYPE) IS
22266 /*
22267     SELECT cle.id top_line
22268     FROM okc_subclasses_b scs,
22269          okc_subclass_top_line stl,
22270          okc_line_styles_b lse,
22271          okc_k_lines_b cle
22272     WHERE cle.dnz_chr_id = p_dnz_chr_id
22273     AND cle.cle_id is null
22274     and cle.chr_id = cle.dnz_chr_id
22275     AND cle.lse_id = lse.id
22276     AND lse.lse_parent_id is null
22277     AND lse.lse_type = 'TLS'
22278     AND lse.id = stl.lse_Id
22279     AND stl.scs_code = scs.code
22280     AND scs.cls_code = 'OKL';
22281 */
22282     SELECT cle.id top_line
22283     FROM okc_line_styles_b lse,
22284          okc_k_lines_b cle
22285     WHERE cle.dnz_chr_id = p_dnz_chr_id
22286     AND cle.cle_id is null
22287     and cle.chr_id = cle.dnz_chr_id
22288     AND cle.lse_id = lse.id
22289     AND lse.lse_type = 'TLS';
22290 
22291 
22292    --cursor to get date signed from original contract
22293    Cursor l_date_sig_csr(p_chr_id       IN NUMBER,
22294                          p_chr_number   IN VARCHAR2,
22295                          p_chr_modifier IN VARCHAR2)  is
22296    Select chr.date_signed
22297    From   okc_k_headers_b chr
22298    where
22299    (      (chr.id = p_chr_id and p_chr_id is not null)
22300    or     (p_chr_id is null and p_chr_modifier is null and p_chr_number is not null and chr.contract_number = p_chr_number )
22301    or     (p_chr_id is null and p_chr_modifier is not null and p_chr_number is not null and chr.contract_number_modifier = p_chr_modifier and chr.contract_number = p_chr_number)
22302    );
22303 
22304    l_date_signed date;
22305    l_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
22306    lx_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
22307 
22308    --cursor to get insurance top lines after the copy for deletion
22309    --Bug # 2412839 - Since copy insurance functionality is not supported at this
22310    -- time insurance lines will be deleted after they get copied by generic copy
22311    Cursor ins_top_line_csr (p_chr_id IN NUMBER) is
22312    select cle.id
22313    from   OKC_LINE_STYLES_B lse,
22314           OKC_K_LINES_B cle
22315    where  lse.lty_code       = 'INSURANCE'
22316    and    lse.id             = cle.lse_id
22317    and    lse.lse_type       = 'TLS'
22318    and    lse.application_id = 540
22319    and    cle.chr_id         = p_chr_id;
22320 
22321    l_ins_top_line_id   okc_k_lines_b.id%TYPE;
22322    --cursor to get subclass code of the copied contract
22323    --Bug #2555692
22324    Cursor l_scs_csr (p_chr_id IN NUMBER) is
22325    Select scs_code,
22326           orig_system_id1
22327    From   okc_k_headers_b
22328    where  id = p_chr_id;
22329 
22330    l_scs_code okc_k_headers_b.SCS_CODE%TYPE;
22331    l_orig_chr_id   okc_k_headers_b.ORIG_SYSTEM_ID1%TYPE;
22332 
22333    --Bug # 2792330 S and O
22334    --get the status of source contract
22335    Cursor l_sts_csr (pchrid in number) is
22336    Select sts_code
22337    From   OKC_K_HEADERS_B
22338    Where  id = pchrid;
22339 
22340    l_sts_code      okc_k_headers_b.STS_CODE%TYPE;
22341    l_quote_chr_id  okc_k_headers_b.ID%TYPE;
22342 
22343     --Bug# 3621663
22344     --cursor to get multi-gaap reporting book transaction
22345     cursor l_txd_csr (p_book_type_code in varchar2,
22346                       p_chr_id         in number) is
22347     select txdb.id
22348     from   okl_txd_assets_b txdb,
22349            okl_txl_assets_b txlb,
22350            okc_k_lines_b    cleb,
22351            okc_line_styles_b lseb
22352     where  txdb.tax_book         =  p_book_type_code
22353     and    txdb.tal_id           =  txlb.id
22354     and    txlb.kle_id           =  cleb.id
22355     and    cleb.lse_id           = lseb.id
22356     and    lseb.lty_code         = 'FIXED_ASSET'
22357     and    cleb.dnz_chr_id       = p_chr_id;
22358 
22359     l_txd_rec   l_txd_csr%ROWTYPE;
22360 
22361     l_adpv_tbl  OKL_TXD_ASSETS_PUB.adpv_tbl_type;
22362 
22363     l_rep_book_type          okl_txd_assets_b.tax_book%TYPE;
22364     l_rbk_cpy                varchar2(1);
22365 
22366    --cursor to find status of the parent contract
22367     cursor l_parent_sts_csr (p_chr_id in number) is
22368     select stsb.ste_code,
22369            parent_chrb.scs_code
22370     from   okc_statuses_b stsb,
22371            okc_k_headers_b parent_chrb
22372     where  stsb.code       = parent_chrb.sts_code
22373     and    parent_chrb.id  = p_chr_id;
22374 
22375     l_parent_sts_rec l_parent_sts_csr%ROWTYPE;
22376     --Bug# 3621663
22377 
22378     -- apaul,Bug#4381642
22379     lp_khrv_rec Okl_Contract_Pub.khrv_rec_type;
22380     lx_khrv_rec Okl_Contract_Pub.khrv_rec_type;
22381 
22382   BEGIN
22383     x_return_status      := OKL_API.G_RET_STS_SUCCESS;
22384     -- Call start_activity to create savepoint, check compatibility
22385     -- and initialize message list
22386     x_return_status := OKL_API.START_ACTIVITY (
22387                                l_api_name
22388                                ,p_init_msg_list
22389                                ,'_PVT'
22390                                ,x_return_status);
22391     -- Check if activity started successfully
22392     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
22393        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22394     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
22395        RAISE OKL_API.G_EXCEPTION_ERROR;
22396     END IF;
22397     -- TO copy the Copy the contract first
22398     OKL_COPY_CONTRACT_PUB.copy_contract(p_api_version              => p_api_version,
22399                                         p_init_msg_list            => p_init_msg_list,
22400                                         x_return_status            => x_return_status,
22401                                         x_msg_count                => x_msg_count,
22402                                         x_msg_data                 => x_msg_data,
22403                                         p_commit                   => OKL_API.G_FALSE,
22404                                         p_chr_id                   => p_chr_id,
22405                                         p_contract_number          => p_contract_number,
22406                                         p_contract_number_modifier => p_contract_number_modifier,
22407                                         p_to_template_yn           => p_to_template_yn,
22408                                         p_renew_ref_yn             => p_renew_ref_yn,
22409                                         p_copy_lines_yn            => 'N',
22410                                         p_override_org             => p_override_org,
22411                                         x_chr_id                   => x_chr_id);
22412 
22413      IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
22414            --bug # 2518454
22415            --OKL_API.set_message(p_app_name => G_APP_NAME,
22416                                --p_msg_name => G_COPY_HEADER);
22417            RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22418      ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
22419            --bug # 2518454
22420            --OKL_API.set_message(p_app_name => G_APP_NAME,
22421                                --p_msg_name => G_COPY_HEADER);
22422          RAISE OKL_API.G_EXCEPTION_ERROR;
22423      END IF;
22424 
22425      --to update date signed on copied chr
22426      Open  l_date_sig_csr(p_chr_id       => p_chr_id,
22427                           p_chr_number   => p_contract_number,
22428                           p_chr_modifier => p_contract_number_modifier);
22429          Fetch l_date_sig_csr into l_date_signed;
22430          If l_date_sig_csr%NOTFOUND Then
22431              Null;
22432          Else
22433              l_chrv_rec.id := x_chr_id;
22434              l_chrv_rec.date_signed := l_date_signed;
22435 
22436              OKL_OKC_MIGRATION_PVT.update_contract_header(
22437                      p_api_version       => p_api_version,
22438                      p_init_msg_list     => p_init_msg_list,
22439                      x_return_status     => x_return_status,
22440                      x_msg_count         => x_msg_count,
22441                      x_msg_data          => x_msg_data,
22442                      p_restricted_update => OKC_API.G_FALSE,
22443                      p_chrv_rec          => l_chrv_rec,
22444                      x_chrv_rec          => lx_chrv_rec);
22445 
22446             IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
22447                 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22448             ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
22449                 RAISE OKL_API.G_EXCEPTION_ERROR;
22450             End If;
22451 
22452           END IF;
22453     Close l_date_sig_csr;
22454 
22455     If nvl(p_copy_lines_yn,'N') = 'Y' Then
22456         -- Now the Copy the Asset lines
22457         i := 1;
22458         FOR r_get_old_k_top_line IN c_get_old_k_top_line(p_chr_id)
22459         LOOP
22460             lt_klev_tbl_type(i).id  := r_get_old_k_top_line.top_line;
22461             IF c_get_old_k_top_line%NOTFOUND THEN
22462                 -- store SQL error message on message stack
22463                 --OKL_API.set_message(p_app_name     => G_APP_NAME,
22464                 --                    p_msg_name     => G_NO_MATCHING_RECORD,
22465                 --                    p_token1       => G_COL_NAME_TOKEN,
22466                 --                    p_token1_value => 'dnz_chr_id');
22467                 --x_return_status := OKL_API.G_RET_STS_ERROR;
22468                 --EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
22469                 EXIT;
22470             END IF;
22471             i := i + 1;
22472         END LOOP;
22473         --IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
22474         --  RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22475         --ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
22476         --  RAISE OKL_API.G_EXCEPTION_ERROR;
22477         --END IF;
22478         If lt_klev_tbl_type.FIRST is NOT NULL Then
22479             --means contract has some lines then
22480             -- Copy all the lines for the old contract number
22481             OKL_COPY_ASSET_PUB.COPY_ALL_LINES(p_api_version        => p_api_version,
22482                                               p_init_msg_list      => p_init_msg_list,
22483                                               x_return_status      => x_return_status,
22484                                               x_msg_count          => x_msg_count,
22485                                               x_msg_data           => x_msg_data,
22486                                               p_from_cle_id_tbl    => lt_klev_tbl_type,
22487                                               p_to_cle_id          => null,
22488                                               p_to_chr_id          => x_chr_id,
22489                                               p_to_template_yn     => 'N',
22490                                               p_copy_reference     => 'COPY',
22491                                               p_copy_line_party_yn => 'Y',
22492                                               p_renew_ref_yn       => 'N',
22493                                               p_trans_type         => p_trans_type,
22494                                               x_cle_id_tbl         => ltx_klev_tbl_type);
22495             IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
22496                 OKL_API.set_message(p_app_name => G_APP_NAME,
22497                                     p_msg_name => G_COPY_LINE);
22498                 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22499             ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
22500                 OKL_API.set_message(p_app_name => G_APP_NAME,
22501                                     p_msg_name => G_COPY_LINE);
22502                 RAISE OKL_API.G_EXCEPTION_ERROR;
22503             END IF;
22504             --
22505             --Bug# 2522268 : Physically delete all the lines with source lines having
22506             --               abandoned status
22507             cleanup_abandoned_lines(p_api_version     => p_api_version,
22508                                     p_init_msg_list   => p_init_msg_list,
22509                                     x_return_status   => x_return_Status,
22510                                     x_msg_count       => x_msg_count,
22511                                     x_msg_data        => x_msg_data,
22512                                     p_chr_id          => x_chr_id);
22513             If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
22514                 raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22515             Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
22516                 raise OKL_API.G_EXCEPTION_ERROR;
22517             End If;
22518             --
22519             --Bug# 2522268 End
22520             --
22521   	    --
22522 	    --Bug# 3923883 : Physically delete all the rollover lines
22523             IF(p_trans_type is not null AND p_trans_type = 'CFA') THEN
22524 
22525 	     cleanup_rollover_lines(p_api_version     => p_api_version,
22526                              p_init_msg_list   => p_init_msg_list,
22527                              x_return_status   => x_return_Status,
22528                              x_msg_count       => x_msg_count,
22529                              x_msg_data        => x_msg_data,
22530                              p_chr_id          => x_chr_id);
22531 	     If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
22532 	         raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22533 	     Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
22534 	         raise OKL_API.G_EXCEPTION_ERROR;
22535 	     End If;
22536 
22537 	    End If;
22538             --
22539 	    --Bug# 3923883 End
22540 	    --
22541 
22542           End If;
22543 
22544     End If; -- if p_copy_lines_y_n flag
22545 /*---------------This pushed into copy asset lines -----------------------------
22546         ------------------------------------------------------------------------
22547         --special process to change the linked line links for covered asset
22548         ------------------------------------------------------------------------
22549      Open l_lnk_csr(p_chr_id => x_chr_id);
22550      Loop
22551          Fetch l_lnk_csr into
22552            l_new_lnk_cle_id,
22553            l_orig_lnk_cle_id,
22554            l_new_lnk_cim_id,
22555            l_jtot_object1_code,
22556            l_object1_id1,
22557            l_object1_id2;
22558 
22559          Exit when l_lnk_csr%NOTFOUND;
22560          If l_jtot_object1_code in  ('OKX_COVASST', 'OKL_USAGE') And
22561                                     (l_object1_id1 is not null)   Then
22562 
22563               link_cov_asst( p_api_version      =>  p_api_version,
22564                              p_init_msg_list    =>  p_init_msg_list,
22565                              x_return_status    =>  x_return_status,
22566                              x_msg_count        =>  x_msg_count,
22567                              x_msg_data         =>  x_msg_data,
22568                              p_orig_lnk_cle_id  =>  l_orig_lnk_cle_id,
22569                              p_new_lnk_cim_id   =>  l_new_lnk_cim_id,
22570                              p_object_code      =>  l_jtot_object1_code,
22571                              p_new_chr_id       =>  x_chr_id );
22572 
22573               If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
22574                   raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22575               Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
22576                   raise OKL_API.G_EXCEPTION_ERROR;
22577               End If;
22578          End If;
22579        End Loop;
22580        Close l_lnk_csr;
22581        -------------------------------------------------------------------------
22582        --end of special processing for fixing linked lines
22583        -------------------------------------------------------------------------
22584 This pushed into copy asset lies----------------------------------------------*/
22585 --------------------------------------------------------------------------------
22586   --Bug # 2337570 - TEMPLATE COPY DOES NOT DEFAULT ALL FIELDS ON HEADER
22587   --copy governances for master lease contract and credit line references
22588 --------------------------------------------------------------------------------
22589     copy_governances(
22590         p_api_version    => p_api_version,
22591         p_init_msg_list  => p_init_msg_list,
22592         x_return_status  => x_return_status,
22593         x_msg_count      => x_msg_count,
22594         x_msg_data       => x_msg_data,
22595         p_from_chr_id    => p_chr_id,
22596         p_to_chr_id      => x_chr_id);
22597 
22598     If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
22599         raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22600     Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
22601         raise OKL_API.G_EXCEPTION_ERROR;
22602     End If;
22603 
22604 --------------------------------------------------------------------------------
22605     --Bug # 2412839 - Since copy insurance functionality is not supported at this
22606    -- time insurance lines will be deleted after they get copied by generic copy
22607 --------------------------------------------------------------------------------
22608    Open ins_top_line_csr(p_chr_id => x_chr_id);
22609    Loop
22610        Fetch ins_top_line_csr into
22611              l_ins_top_line_id;
22612        Exit when ins_top_line_csr%NotFound;
22613        OKL_CONTRACT_PUB.delete_contract_line(
22614              p_api_version    => p_api_version,
22615              p_init_msg_list  => p_init_msg_list,
22616              x_return_status  => x_return_status,
22617              x_msg_count      => x_msg_count,
22618              x_msg_data       => x_msg_data,
22619              p_line_id        => l_ins_top_line_id);
22620        If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
22621            raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22622        Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
22623            raise OKL_API.G_EXCEPTION_ERROR;
22624        End If;
22625    End Loop;
22626    Close ins_top_line_csr;
22627 
22628    --Bug# 3541098 - Do not delete yields and interim interest details
22629    --               for a Re-book or Split contract transaction.
22630    --               Yields and interim interest details are to be
22631    --               deleted for Copy contract or Re-lease transaction.
22632 
22633    if p_trans_type IN ('CFA','CRL') then
22634      --Bug# 3159691
22635      delete_yields(
22636        p_api_version    => p_api_version,
22637        p_init_msg_list  => p_init_msg_list,
22638        x_return_status  => x_return_status,
22639        x_msg_count      => x_msg_count,
22640        x_msg_data       => x_msg_data,
22641        p_chr_id         => x_chr_id,
22642        --Bug# 3973640
22643        p_trans_type     => p_trans_type);
22644    end if;
22645 
22646    --Bug# 3541098 end
22647 
22648    If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
22649        raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22650    Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
22651        raise OKL_API.G_EXCEPTION_ERROR;
22652    End If;
22653 
22654   --Start Bug# 3621663
22655    -----------------------------------------------------------------------------
22656    --delete multigaap reporting books from transaction tables after copy
22657    --if it is not a copy for rebook
22658    ---------------------------------------------------------------------------
22659    open l_parent_sts_csr(p_chr_id => p_chr_id);
22660    fetch l_parent_sts_csr into l_parent_sts_rec;
22661    if l_parent_sts_csr%NOTFOUND then
22662        null;
22663    end if;
22664    close l_parent_sts_csr;
22665 
22666    If nvl(l_parent_sts_rec.ste_code,OKL_API.G_MISS_CHAR) not in ('ENTERED','SIGNED')
22667       and nvl(l_parent_sts_rec.scs_code,OKL_API.G_MISS_CHAR) = 'LEASE'
22668       and nvl(p_copy_lines_yn,'N') = 'Y' then
22669        If nvl(p_trans_type,OKL_API.G_MISS_CHAR) not in ('CRB','CRL') then
22670            l_rep_book_type := OKL_SYSTEM_PARAMS_ALL_PUB.get_system_param_value(OKL_SYSTEM_PARAMS_ALL_PUB.G_RPT_PROD_BOOK_TYPE_CODE);
22671            i := 0;
22672            If nvl(l_rep_book_type,OKL_API.G_MISS_CHAR) <> OKL_API.G_MISS_CHAR then
22673                open l_txd_csr (p_book_type_code  => l_rep_book_type,
22674                                p_chr_id          => x_chr_id);
22675                Loop
22676                    fetch l_txd_csr into l_txd_rec;
22677                    exit when l_txd_csr%NOTFOUND;
22678                    i := i+1;
22679                    l_adpv_tbl(i).id := l_txd_rec.id;
22680                end Loop;
22681                close l_txd_csr;
22682 
22683                If l_adpv_tbl.COUNT <> 0 then
22684                    OKL_TXD_ASSETS_PUB.delete_txd_asset_Def(
22685                        p_api_version         => p_api_version,
22686                        p_init_msg_list       => p_init_msg_list,
22687                        x_return_status       => x_return_status,
22688                        x_msg_count           => x_msg_count,
22689                        x_msg_data            => x_msg_data,
22690                        p_adpv_tbl            => l_adpv_tbl);
22691                    If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
22692                        raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22693                    Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
22694                        raise OKL_API.G_EXCEPTION_ERROR;
22695                    End If;
22696                End If;
22697            End If;
22698         End If;
22699    End If;
22700    --End Bug Fix 3621663
22701 
22702    --Start Bug# 2555692
22703    -----------------------------------------------------------------------------
22704    --reset the contract status to 'NEW' for 'LEASE' and 'QUOTE'
22705    -----------------------------------------------------------------------------
22706    Open l_scs_csr(p_chr_id => x_chr_id);
22707    Fetch l_scs_csr into l_scs_code,l_orig_chr_id;
22708    If l_scs_csr%NOTFOUND Then
22709        null;
22710    Else
22711       --Bug # 2792330 : Enhancement for S and O for 'QUOTE' status
22712       --If l_scs_code in ('LEASE','QUOTE') Then
22713       If l_scs_code  = 'LEASE'  Then
22714           reset_contract_status
22715                (p_api_version   => p_api_version,
22716                 p_init_msg_list => p_init_msg_list,
22717                 x_return_status => x_return_status,
22718                 x_msg_count     => x_msg_count,
22719                 x_msg_data      => x_msg_data,
22720                 p_chr_id        => x_chr_id,
22721                 p_status        => 'NEW',
22722                 p_cascade_lines => p_copy_lines_yn);
22723 
22724            If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
22725                raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22726            Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
22727                raise OKL_API.G_EXCEPTION_ERROR;
22728            End If;
22729 
22730 	   -- apaul,Bug#4381642
22731 	   -- Reset Securitized Flag
22732 	    l_chrv_rec.id := x_chr_id;
22733 	    lp_khrv_rec.id := x_chr_id;
22734 	    lp_khrv_rec.SECURITIZED_CODE := NULL;
22735 
22736 	    Okl_Contract_Pub.update_contract_header(
22737 	      p_api_version   => p_api_version,
22738 	      p_init_msg_list => p_init_msg_list,
22739 	      x_return_status => x_return_status,
22740 	      x_msg_count     => x_msg_count,
22741 	      x_msg_data      => x_msg_data,
22742 	      p_chrv_rec      => l_chrv_rec,
22743 	      p_khrv_rec      => lp_khrv_rec,
22744 	      x_chrv_rec      => lx_chrv_rec,
22745 	      x_khrv_rec      => lx_khrv_rec);
22746 
22747 	     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
22748 	       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22749 	     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
22750 	       RAISE OKL_API.G_EXCEPTION_ERROR;
22751 	     END IF;
22752 	   -- END,apaul,Bug#4381642
22753 
22754        ElsIf l_scs_code = 'QUOTE' Then
22755 
22756            Open l_sts_csr(pchrid => l_orig_chr_id);
22757            Fetch l_sts_csr into l_sts_code;
22758            If l_sts_csr%NOTFOUND then
22759                l_sts_code := 'INCOMPLETE';
22760            End If;
22761            Close l_sts_csr;
22762 
22763            If l_sts_code = 'NEW' Then
22764                l_sts_code := 'NEW';
22765            Else
22766               l_sts_code := 'INCOMPLETE';
22767            End If;
22768 
22769            reset_contract_status
22770                (p_api_version   => p_api_version,
22771                 p_init_msg_list => p_init_msg_list,
22772                 x_return_status => x_return_status,
22773                 x_msg_count     => x_msg_count,
22774                 x_msg_data      => x_msg_data,
22775                 p_chr_id        => x_chr_id,
22776                 p_status        => l_sts_code,
22777                 p_cascade_lines => p_copy_lines_yn);
22778 
22779            If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
22780                raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22781            Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
22782                raise OKL_API.G_EXCEPTION_ERROR;
22783            End If;
22784 
22785            /*----Bug# 5591688 : Commenting as okl_quote_plans_pvt is stubbed in R12
22786            -- quotes are no longer copied using copy contract
22787            --call quote API for modification of plan structure
22788            OKL_QUOTE_PLANS_PVT.modify_quote_structure
22789                                    ( p_api_version         => p_api_version,
22790                                      p_init_msg_list       => p_init_msg_list,
22791                                      --Bug# 3143522
22792                                      p_transaction_control => OKL_API.G_FALSE,
22793                                      p_chr_id              => x_chr_id,
22794                                      p_modify_reason_code  => 'COPY_QUOTE',
22795                                      x_chr_id              => l_quote_chr_id,
22796                                      x_return_status       => x_return_status,
22797                                      x_msg_count           => x_msg_count,
22798                                      x_msg_data            => x_msg_data);
22799 
22800            If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
22801                raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22802            Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
22803                raise OKL_API.G_EXCEPTION_ERROR;
22804            End If;
22805            ------------------------End of commented code----------*/
22806 
22807        End If;
22808    End If;
22809    Close l_scs_csr;
22810    -----------------------------------------------------------------------------
22811    --End of resetting the copied contract status to new
22812    -----------------------------------------------------------------------------
22813    --End Bug# 2555692
22814    OKL_API.END_ACTIVITY (x_msg_count,
22815                           x_msg_data );
22816   EXCEPTION
22817     WHEN OKL_API.G_EXCEPTION_ERROR THEN
22818     x_return_status := OKL_API.HANDLE_EXCEPTIONS(
22819                                l_api_name,
22820                                G_PKG_NAME,
22821                                'OKL_API.G_RET_STS_ERROR',
22822                                x_msg_count,
22823                                x_msg_data,
22824                                '_PVT');
22825     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
22826     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
22827                               l_api_name,
22828                               G_PKG_NAME,
22829                               'OKL_API.G_RET_STS_UNEXP_ERROR',
22830                               x_msg_count,
22831                               x_msg_data,
22832                               '_PVT');
22833     WHEN OTHERS THEN
22834     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
22835                               l_api_name,
22836                               G_PKG_NAME,
22837                               'OTHERS',
22838                               x_msg_count,
22839                               x_msg_data,
22840                               '_PVT');
22841   END copy_lease_contract;
22842 
22843 End okl_copy_contract_Pvt;