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.50 2008/04/17 17:23:00 rpillay noship $ */
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 l_created_by NUMBER := fnd_global.user_id;
39 l_last_updated_by NUMBER := fnd_global.user_id;
40 l_last_update_login NUMBER := fnd_global.login_id;
41 l_contract_exists BOOLEAN := FALSE;
42 
43 
44 --Function to migrate api_components tbl
45 FUNCTION migrate_components_tbl(p_components_tbl IN api_components_tbl)
46                                     return api_components_tbl_okc is
47 i NUMBER;
48 l_components_tbl api_components_tbl_okc;
49 BEGIN
50      FOR i in 1..p_components_tbl.LAST
51      Loop
52          l_components_tbl(i).id := p_components_tbl(i).id;
53          l_components_tbl(i).to_k := p_components_tbl(i).to_k;
54          l_components_tbl(i).component_type := p_components_tbl(i).component_type;
55          l_components_tbl(i).attribute1 := p_components_tbl(i).attribute1;
56      End Loop;
57      Return l_components_tbl;
58 END migrate_components_tbl;
59 --Function to migrate api_lines tbl
60 FUNCTION migrate_lines_tbl(p_lines_tbl IN api_lines_tbl)
61                                     return api_lines_tbl_okc is
62 i NUMBER;
63 l_lines_tbl api_lines_tbl_okc;
64 BEGIN
65      FOR i in 1..p_lines_tbl.LAST
66      Loop
67          l_lines_tbl(i).id := p_lines_tbl(i).id;
68          l_lines_tbl(i).to_k := p_lines_tbl(i).to_k;
69          l_lines_tbl(i).to_line := p_lines_tbl(i).to_line;
70          l_lines_tbl(i).line_exists_yn := p_lines_tbl(i).line_exists_yn;
71      End Loop;
72      Return l_lines_tbl;
73 END migrate_lines_tbl;
74 --------------------------------------------------------------------------
75 --Functions to fetch data from okc_k_headers_v, okc_k_lines_v,
76 --okl_k_headers_v and okl_k_lines_v
77 --These Functions are copy of local functions get_rec in
78 --OKC_CHR_PVT and OKL_KHR_PVT. These are repeated here since they have not
79 --been published. Any changes in in these in the original packages will
80 --also heve to be done here.
81 ----------------------------------------------------------------------------
82 ---------------------------------------------------------------------------
83   -- FUNCTION get_rec for: OKC_K_HEADERS_V
84 ---------------------------------------------------------------------------
85   FUNCTION get_chrv_rec (
86     p_chrv_id                     IN   NUMBER,
87     x_no_data_found               OUT NOCOPY BOOLEAN
88   ) RETURN chrv_rec_type IS
89     CURSOR okc_chrv_pk_csr (p_id                 IN NUMBER) IS
90     SELECT
91      ID
92     ,OBJECT_VERSION_NUMBER
93     ,SFWT_FLAG
94     ,CHR_ID_RESPONSE
95     ,CHR_ID_AWARD
96     ,CHR_ID_RENEWED
97     ,INV_ORGANIZATION_ID
98     ,STS_CODE
99     ,QCL_ID
100     ,SCS_CODE
101     ,CONTRACT_NUMBER
102     ,CURRENCY_CODE
103     ,CONTRACT_NUMBER_MODIFIER
104     ,ARCHIVED_YN
105     ,DELETED_YN
106     ,CUST_PO_NUMBER_REQ_YN
107     ,PRE_PAY_REQ_YN
108     ,CUST_PO_NUMBER
109     ,SHORT_DESCRIPTION
110     ,COMMENTS
111     ,DESCRIPTION
112     ,DPAS_RATING
113     ,COGNOMEN
114     ,TEMPLATE_YN
115     --,GOVERNING_CONTRACT_YN
116     ,TEMPLATE_USED
117     ,DATE_APPROVED
118     ,DATETIME_CANCELLED
119     ,AUTO_RENEW_DAYS
120     ,DATE_ISSUED
121     ,DATETIME_RESPONDED
122     ,NON_RESPONSE_REASON
123     ,NON_RESPONSE_EXPLAIN
124     ,RFP_TYPE
125     ,CHR_TYPE
126     ,KEEP_ON_MAIL_LIST
127     ,SET_ASIDE_REASON
128     ,SET_ASIDE_PERCENT
129     ,RESPONSE_COPIES_REQ
130     ,DATE_CLOSE_PROJECTED
131     ,DATETIME_PROPOSED
132     ,DATE_SIGNED
133     ,DATE_TERMINATED
134     ,DATE_RENEWED
135     ,TRN_CODE
136     ,START_DATE
137     ,END_DATE
138     ,AUTHORING_ORG_ID
139     ,BUY_OR_SELL
140     ,ISSUE_OR_RECEIVE
141     ,ESTIMATED_AMOUNT
142     ,CHR_ID_RENEWED_TO
143     ,ESTIMATED_AMOUNT_RENEWED
144     ,CURRENCY_CODE_RENEWED
145     --,USER_ACCESS_LEVEL
146     ,UPG_ORIG_SYSTEM_REF
147     ,UPG_ORIG_SYSTEM_REF_ID
148     ,APPLICATION_ID
149     --,RESOLVED_UNTIL
150     ,ATTRIBUTE_CATEGORY
151     ,ATTRIBUTE1
152     ,ATTRIBUTE2
153     ,ATTRIBUTE3
154     ,ATTRIBUTE4
155     ,ATTRIBUTE5
156     ,ATTRIBUTE6
157     ,ATTRIBUTE7
158     ,ATTRIBUTE8
159     ,ATTRIBUTE9
160     ,ATTRIBUTE10
161     ,ATTRIBUTE11
162     ,ATTRIBUTE12
163     ,ATTRIBUTE13
164     ,ATTRIBUTE14
165     ,ATTRIBUTE15
166     ,CREATED_BY
167     ,CREATION_DATE
168     ,LAST_UPDATED_BY
169     ,LAST_UPDATE_DATE
170     ,LAST_UPDATE_LOGIN
171     ,ORIG_SYSTEM_SOURCE_CODE
172     ,ORIG_SYSTEM_ID1
173     ,ORIG_SYSTEM_REFERENCE1
174     ,PROGRAM_APPLICATION_ID
175     ,PROGRAM_ID
176     ,PROGRAM_UPDATE_DATE
177     ,REQUEST_ID
178     ,PRICE_LIST_ID
179     ,PRICING_DATE
180     ,TOTAL_LINE_LIST_PRICE
181     ,SIGN_BY_DATE
182     ,USER_ESTIMATED_AMOUNT
183     ,CONVERSION_TYPE
184     ,CONVERSION_RATE
185     ,CONVERSION_RATE_DATE
186     ,CONVERSION_EURO_RATE
187     ,CUST_ACCT_ID
188     ,BILL_TO_SITE_USE_ID
189     ,INV_RULE_ID
190     ,RENEWAL_TYPE_CODE
191     ,RENEWAL_NOTIFY_TO
192     ,RENEWAL_END_DATE
193     ,SHIP_TO_SITE_USE_ID
194     ,PAYMENT_TERM_ID
195       FROM Okc_K_Headers_V
196      WHERE okc_k_headers_v.id   = p_id;
197     l_okc_chrv_pk                  okc_chrv_pk_csr%ROWTYPE;
198     l_chrv_rec                     chrv_rec_type;
199   BEGIN
200     x_no_data_found := TRUE;
201     -- Get current database values
202     OPEN okc_chrv_pk_csr (p_chrv_id);
203     FETCH okc_chrv_pk_csr INTO
204      l_chrv_rec.ID
205     ,l_chrv_rec.OBJECT_VERSION_NUMBER
206     ,l_chrv_rec.SFWT_FLAG
207     ,l_chrv_rec.CHR_ID_RESPONSE
208     ,l_chrv_rec.CHR_ID_AWARD
209     ,l_chrv_rec.CHR_ID_RENEWED
210     ,l_chrv_rec.INV_ORGANIZATION_ID
211     ,l_chrv_rec.STS_CODE
212     ,l_chrv_rec.QCL_ID
213     ,l_chrv_rec.SCS_CODE
214     ,l_chrv_rec.CONTRACT_NUMBER
215     ,l_chrv_rec.CURRENCY_CODE
216     ,l_chrv_rec.CONTRACT_NUMBER_MODIFIER
217     ,l_chrv_rec.ARCHIVED_YN
218     ,l_chrv_rec.DELETED_YN
219     ,l_chrv_rec.CUST_PO_NUMBER_REQ_YN
220     ,l_chrv_rec.PRE_PAY_REQ_YN
221     ,l_chrv_rec.CUST_PO_NUMBER
222     ,l_chrv_rec.SHORT_DESCRIPTION
223     ,l_chrv_rec.COMMENTS
224     ,l_chrv_rec.DESCRIPTION
225     ,l_chrv_rec.DPAS_RATING
226     ,l_chrv_rec.COGNOMEN
227     ,l_chrv_rec.TEMPLATE_YN
228     --,l_chrv_rec.GOVERNING_CONTRACT_YN
229     ,l_chrv_rec.TEMPLATE_USED
230     ,l_chrv_rec.DATE_APPROVED
231     ,l_chrv_rec.DATETIME_CANCELLED
232     ,l_chrv_rec.AUTO_RENEW_DAYS
233     ,l_chrv_rec.DATE_ISSUED
234     ,l_chrv_rec.DATETIME_RESPONDED
235     ,l_chrv_rec.NON_RESPONSE_REASON
236     ,l_chrv_rec.NON_RESPONSE_EXPLAIN
237     ,l_chrv_rec.RFP_TYPE
238     ,l_chrv_rec.CHR_TYPE
239     ,l_chrv_rec.KEEP_ON_MAIL_LIST
240     ,l_chrv_rec.SET_ASIDE_REASON
241     ,l_chrv_rec.SET_ASIDE_PERCENT
242     ,l_chrv_rec.RESPONSE_COPIES_REQ
243     ,l_chrv_rec.DATE_CLOSE_PROJECTED
244     ,l_chrv_rec.DATETIME_PROPOSED
245     ,l_chrv_rec.DATE_SIGNED
246     ,l_chrv_rec.DATE_TERMINATED
247     ,l_chrv_rec.DATE_RENEWED
248     ,l_chrv_rec.TRN_CODE
249     ,l_chrv_rec.START_DATE
250     ,l_chrv_rec.END_DATE
251     ,l_chrv_rec.AUTHORING_ORG_ID
252     ,l_chrv_rec.BUY_OR_SELL
253     ,l_chrv_rec.ISSUE_OR_RECEIVE
254     ,l_chrv_rec.ESTIMATED_AMOUNT
255     ,l_chrv_rec.CHR_ID_RENEWED_TO
256     ,l_chrv_rec.ESTIMATED_AMOUNT_RENEWED
257     ,l_chrv_rec.CURRENCY_CODE_RENEWED
258     --,l_chrv_rec.USER_ACCESS_LEVEL
259     ,l_chrv_rec.UPG_ORIG_SYSTEM_REF
260     ,l_chrv_rec.UPG_ORIG_SYSTEM_REF_ID
261     ,l_chrv_rec.APPLICATION_ID
262     --,l_chrv_rec.RESOLVED_UNTIL
263     ,l_chrv_rec.ATTRIBUTE_CATEGORY
264     ,l_chrv_rec.ATTRIBUTE1
265     ,l_chrv_rec.ATTRIBUTE2
266     ,l_chrv_rec.ATTRIBUTE3
267     ,l_chrv_rec.ATTRIBUTE4
268     ,l_chrv_rec.ATTRIBUTE5
269     ,l_chrv_rec.ATTRIBUTE6
270     ,l_chrv_rec.ATTRIBUTE7
271     ,l_chrv_rec.ATTRIBUTE8
272     ,l_chrv_rec.ATTRIBUTE9
273     ,l_chrv_rec.ATTRIBUTE10
274     ,l_chrv_rec.ATTRIBUTE11
275     ,l_chrv_rec.ATTRIBUTE12
276     ,l_chrv_rec.ATTRIBUTE13
277     ,l_chrv_rec.ATTRIBUTE14
278     ,l_chrv_rec.ATTRIBUTE15
279     ,l_chrv_rec.CREATED_BY
280     ,l_chrv_rec.CREATION_DATE
281     ,l_chrv_rec.LAST_UPDATED_BY
282     ,l_chrv_rec.LAST_UPDATE_DATE
283     ,l_chrv_rec.LAST_UPDATE_LOGIN
284     ,l_chrv_rec.ORIG_SYSTEM_SOURCE_CODE
285     ,l_chrv_rec.ORIG_SYSTEM_ID1
286     ,l_chrv_rec.ORIG_SYSTEM_REFERENCE1
287     ,l_chrv_rec.PROGRAM_APPLICATION_ID
288     ,l_chrv_rec.PROGRAM_ID
289     ,l_chrv_rec.PROGRAM_UPDATE_DATE
290     ,l_chrv_rec.REQUEST_ID
291     ,l_chrv_rec.PRICE_LIST_ID
292     ,l_chrv_rec.PRICING_DATE
293     ,l_chrv_rec.TOTAL_LINE_LIST_PRICE
294     ,l_chrv_rec.SIGN_BY_DATE
295     ,l_chrv_rec.USER_ESTIMATED_AMOUNT
296     ,l_chrv_rec.CONVERSION_TYPE
297     ,l_chrv_rec.CONVERSION_RATE
298     ,l_chrv_rec.CONVERSION_RATE_DATE
299     ,l_chrv_rec.CONVERSION_EURO_RATE
300     ,l_chrv_rec.CUST_ACCT_ID
301     ,l_chrv_rec.BILL_TO_SITE_USE_ID
302     ,l_chrv_rec.INV_RULE_ID
303     ,l_chrv_rec.RENEWAL_TYPE_CODE
304     ,l_chrv_rec.RENEWAL_NOTIFY_TO
305     ,l_chrv_rec.RENEWAL_END_DATE
306     ,l_chrv_rec.SHIP_TO_SITE_USE_ID
307     ,l_chrv_rec.PAYMENT_TERM_ID;
308     x_no_data_found := okc_chrv_pk_csr%NOTFOUND;
309     CLOSE okc_chrv_pk_csr;
310     RETURN(l_chrv_rec);
311   END get_chrv_rec;
312 
313   FUNCTION get_chrv_rec (
314     p_chrv_id                     IN NUMBER
315   ) RETURN chrv_rec_type IS
316     l_row_notfound                 BOOLEAN := TRUE;
317   BEGIN
318     RETURN(get_chrv_rec(p_chrv_id, l_row_notfound));
319   END get_chrv_rec;
320 
321   ---------------------------------------------------------------------------
322   -- FUNCTION get_rec for: OKL_K_HEADERS_V
323   ---------------------------------------------------------------------------
324   FUNCTION get_khrv_rec (
325     p_khrv_id                     IN NUMBER,
326     x_no_data_found                OUT NOCOPY BOOLEAN
327   ) RETURN khrv_rec_type IS
328     CURSOR okl_khrv_pk_csr (p_id                 IN NUMBER) IS
329     SELECT
330             ID,
331             OBJECT_VERSION_NUMBER,
332             ISG_ID,
333             KHR_ID,
334             PDT_ID,
335             AMD_CODE,
336             DATE_FIRST_ACTIVITY,
337             GENERATE_ACCRUAL_YN,
338             GENERATE_ACCRUAL_OVERRIDE_YN,
339             DATE_REFINANCED,
340             CREDIT_ACT_YN,
341             TERM_DURATION,
342             CONVERTED_ACCOUNT_YN,
343             DATE_CONVERSION_EFFECTIVE,
344             SYNDICATABLE_YN,
345             SALESTYPE_YN,
346             DATE_DEAL_TRANSFERRED,
347             DATETIME_PROPOSAL_EFFECTIVE,
348             DATETIME_PROPOSAL_INEFFECTIVE,
349             DATE_PROPOSAL_ACCEPTED,
350             ATTRIBUTE_CATEGORY,
351             ATTRIBUTE1,
352             ATTRIBUTE2,
353             ATTRIBUTE3,
354             ATTRIBUTE4,
355             ATTRIBUTE5,
356             ATTRIBUTE6,
357             ATTRIBUTE7,
358             ATTRIBUTE8,
359             ATTRIBUTE9,
360             ATTRIBUTE10,
361             ATTRIBUTE11,
362             ATTRIBUTE12,
363             ATTRIBUTE13,
364             ATTRIBUTE14,
365             ATTRIBUTE15,
366             CREATED_BY,
367             CREATION_DATE,
368             LAST_UPDATED_BY,
369             LAST_UPDATE_DATE,
370             LAST_UPDATE_LOGIN,
371             PRE_TAX_YIELD,
372             AFTER_TAX_YIELD,
373             IMPLICIT_INTEREST_RATE,
374             IMPLICIT_NON_IDC_INTEREST_RATE,
375             TARGET_PRE_TAX_YIELD,
376             TARGET_AFTER_TAX_YIELD,
377             TARGET_IMPLICIT_INTEREST_RATE,
378             TARGET_IMPLICIT_NONIDC_INTRATE,
379             DATE_LAST_INTERIM_INTEREST_CAL,
380             DEAL_TYPE,
381             PRE_TAX_IRR,
382             AFTER_TAX_IRR,
383             EXPECTED_DELIVERY_DATE,
384             ACCEPTED_DATE,
385             PREFUNDING_ELIGIBLE_YN,
386             REVOLVING_CREDIT_YN,
387 -- Bug# 2697681
388             CURRENCY_CONVERSION_TYPE,
389             CURRENCY_CONVERSION_RATE,
390             CURRENCY_CONVERSION_DATE,
391             MULTI_GAAP_YN,
392             RECOURSE_CODE,
393             LESSOR_SERV_ORG_CODE,
394             ASSIGNABLE_YN,
395             SECURITIZED_CODE,
396             SECURITIZATION_TYPE,
397 -- Bug# 2697681
398 --Bug# 3143522 : Subsidies
399             SUB_PRE_TAX_YIELD,
400             SUB_AFTER_TAX_YIELD,
401             SUB_IMPL_INTEREST_RATE,
402             SUB_IMPL_NON_IDC_INT_RATE,
403             SUB_PRE_TAX_IRR,
404             SUB_AFTER_TAX_IRR,
405 --Bug#3923883 Rollover/Creditline performance
406             TOT_CL_TRANSFER_AMT,
407             TOT_CL_NET_TRANSFER_AMT,
408             TOT_CL_LIMIT,
409             TOT_CL_FUNDING_AMT,
410 --Bug 4466440 OKL.H columns
411             CRS_ID,
412             TEMPLATE_TYPE_CODE,
413             TRADEIN_DESCRIPTION,
414             TRADEIN_AMOUNT,
415             DATE_TRADEIN,
416             DATE_FUNDING_EXPECTED,
417 	    --Added by dpsingh for LE Uptake
418 	    LEGAL_ENTITY_ID
419      FROM Okl_K_Headers_V
420      WHERE okl_k_headers_v.id   = p_id;
421     l_okl_khrv_pk                  okl_khrv_pk_csr%ROWTYPE;
422     l_khrv_rec                     khrv_rec_type;
423   BEGIN
424     x_no_data_found := TRUE;
425     -- Get current database values
426     OPEN okl_khrv_pk_csr (p_khrv_id);
427     FETCH okl_khrv_pk_csr INTO
428               l_khrv_rec.ID,
429               l_khrv_rec.OBJECT_VERSION_NUMBER,
430               l_khrv_rec.ISG_ID,
431               l_khrv_rec.KHR_ID,
432               l_khrv_rec.PDT_ID,
433               l_khrv_rec.AMD_CODE,
434               l_khrv_rec.DATE_FIRST_ACTIVITY,
435               l_khrv_rec.GENERATE_ACCRUAL_YN,
436               l_khrv_rec.GENERATE_ACCRUAL_OVERRIDE_YN,
437               l_khrv_rec.DATE_REFINANCED,
438               l_khrv_rec.CREDIT_ACT_YN,
439               l_khrv_rec.TERM_DURATION,
440               l_khrv_rec.CONVERTED_ACCOUNT_YN,
441               l_khrv_rec.DATE_CONVERSION_EFFECTIVE,
442               l_khrv_rec.SYNDICATABLE_YN,
443               l_khrv_rec.SALESTYPE_YN,
444               l_khrv_rec.DATE_DEAL_TRANSFERRED,
445               l_khrv_rec.DATETIME_PROPOSAL_EFFECTIVE,
446               l_khrv_rec.DATETIME_PROPOSAL_INEFFECTIVE,
447               l_khrv_rec.DATE_PROPOSAL_ACCEPTED,
448               l_khrv_rec.ATTRIBUTE_CATEGORY,
449               l_khrv_rec.ATTRIBUTE1,
450               l_khrv_rec.ATTRIBUTE2,
451               l_khrv_rec.ATTRIBUTE3,
452               l_khrv_rec.ATTRIBUTE4,
453               l_khrv_rec.ATTRIBUTE5,
454               l_khrv_rec.ATTRIBUTE6,
455               l_khrv_rec.ATTRIBUTE7,
456               l_khrv_rec.ATTRIBUTE8,
457               l_khrv_rec.ATTRIBUTE9,
458               l_khrv_rec.ATTRIBUTE10,
459               l_khrv_rec.ATTRIBUTE11,
460               l_khrv_rec.ATTRIBUTE12,
461               l_khrv_rec.ATTRIBUTE13,
462               l_khrv_rec.ATTRIBUTE14,
463               l_khrv_rec.ATTRIBUTE15,
464               l_khrv_rec.CREATED_BY,
465               l_khrv_rec.CREATION_DATE,
466               l_khrv_rec.LAST_UPDATED_BY,
467               l_khrv_rec.LAST_UPDATE_DATE,
468               l_khrv_rec.LAST_UPDATE_LOGIN,
469               l_khrv_rec.PRE_TAX_YIELD,
470               l_khrv_rec.AFTER_TAX_YIELD,
471               l_khrv_rec.IMPLICIT_INTEREST_RATE,
472               l_khrv_rec.IMPLICIT_NON_IDC_INTEREST_RATE,
473               l_khrv_rec.TARGET_PRE_TAX_YIELD,
474               l_khrv_rec.TARGET_AFTER_TAX_YIELD,
475               l_khrv_rec.TARGET_IMPLICIT_INTEREST_RATE,
476               l_khrv_rec.TARGET_IMPLICIT_NONIDC_INTRATE,
477               l_khrv_rec.DATE_LAST_INTERIM_INTEREST_CAL,
478               l_khrv_rec.DEAL_TYPE,
479               l_khrv_rec.PRE_TAX_IRR,
480               l_khrv_rec.AFTER_TAX_IRR,
481               l_khrv_rec.expected_delivery_date,
482               l_khrv_rec.accepted_date,
483               l_khrv_rec.PREFUNDING_ELIGIBLE_YN,
484               l_khrv_rec.REVOLVING_CREDIT_YN,
485               l_khrv_rec.CURRENCY_CONVERSION_TYPE,
486               l_khrv_rec.CURRENCY_CONVERSION_RATE,
487               l_khrv_rec.CURRENCY_CONVERSION_DATE,
488               l_khrv_rec.MULTI_GAAP_YN,
489               l_khrv_rec.RECOURSE_CODE,
490               l_khrv_rec.LESSOR_SERV_ORG_CODE,
491               l_khrv_rec.ASSIGNABLE_YN,
492               l_khrv_rec.SECURITIZED_CODE,
493               l_khrv_rec.SECURITIZATION_TYPE,
494 --Bug# 3143522 : Subsidies
495               l_khrv_rec.SUB_PRE_TAX_YIELD,
496               l_khrv_rec.SUB_AFTER_TAX_YIELD,
497               l_khrv_rec.SUB_IMPL_INTEREST_RATE,
498               l_khrv_rec.SUB_IMPL_NON_IDC_INT_RATE,
499               l_khrv_rec.SUB_PRE_TAX_IRR,
500               l_khrv_rec.SUB_AFTER_TAX_IRR,
501 --Bug#3923883 Rollover/Creditline performance
502               l_khrv_rec.TOT_CL_TRANSFER_AMT,
503               l_khrv_rec.TOT_CL_NET_TRANSFER_AMT,
504               l_khrv_rec.TOT_CL_LIMIT,
505               l_khrv_rec.TOT_CL_FUNDING_AMT,
506 --Bug 4466440 OKL.H new columns
507               l_khrv_rec.CRS_ID,
508               l_khrv_rec.TEMPLATE_TYPE_CODE,
509               l_khrv_rec.TRADEIN_DESCRIPTION,
510               l_khrv_rec.TRADEIN_AMOUNT,
511               l_khrv_rec.DATE_TRADEIN,
512               l_khrv_rec.DATE_FUNDING_EXPECTED,
513 	        --Added by dpsingh for LE Uptake
514 	      l_khrv_rec.LEGAL_ENTITY_ID;
515     x_no_data_found := okl_khrv_pk_csr%NOTFOUND;
516     CLOSE okl_khrv_pk_csr;
517     RETURN(l_khrv_rec);
518   END get_khrv_rec;
519 
520   FUNCTION get_khrv_rec (
521     p_khrv_id                     IN NUMBER
522   ) RETURN khrv_rec_type IS
523     l_row_notfound                 BOOLEAN := TRUE;
524   BEGIN
525     RETURN(get_khrv_rec(p_khrv_id, l_row_notfound));
526   END get_khrv_rec;
527   ---------------------------------------------------------------------------
528   -- FUNCTION get_rec for: OKC_K_LINES_V
529   ---------------------------------------------------------------------------
530   FUNCTION get_clev_rec (
531     p_clev_id                     IN NUMBER,
532     x_no_data_found                OUT NOCOPY BOOLEAN
533   ) RETURN clev_rec_type IS
534     CURSOR okc_clev_pk_csr (p_id                 IN NUMBER) IS
535     SELECT
536       ID
537     ,OBJECT_VERSION_NUMBER
538     ,SFWT_FLAG
539     ,CHR_ID
540     ,CLE_ID
541     ,CLE_ID_RENEWED
542     ,CLE_ID_RENEWED_TO
543     ,LSE_ID
544     ,LINE_NUMBER
545     ,STS_CODE
546     ,DISPLAY_SEQUENCE
547     ,TRN_CODE
548     ,DNZ_CHR_ID
549     ,COMMENTS
550     ,ITEM_DESCRIPTION
551     ,OKE_BOE_DESCRIPTION
552     ,HIDDEN_IND
553     ,PRICE_UNIT
554     ,PRICE_UNIT_PERCENT
555     ,PRICE_NEGOTIATED
556     ,PRICE_NEGOTIATED_RENEWED
557     ,PRICE_LEVEL_IND
558     ,INVOICE_LINE_LEVEL_IND
559     ,DPAS_RATING
560     ,BLOCK23TEXT
561     ,EXCEPTION_YN
562     ,TEMPLATE_USED
563     ,DATE_TERMINATED
564     ,NAME
565     ,START_DATE
566     ,END_DATE
567     ,UPG_ORIG_SYSTEM_REF
568     ,UPG_ORIG_SYSTEM_REF_ID
569     ,ATTRIBUTE_CATEGORY
570     ,ATTRIBUTE1
571     ,ATTRIBUTE2
572     ,ATTRIBUTE3
573     ,ATTRIBUTE4
574     ,ATTRIBUTE5
575     ,ATTRIBUTE6
576     ,ATTRIBUTE7
577     ,ATTRIBUTE8
578     ,ATTRIBUTE9
579     ,ATTRIBUTE10
580     ,ATTRIBUTE11
581     ,ATTRIBUTE12
582     ,ATTRIBUTE13
583     ,ATTRIBUTE14
584     ,ATTRIBUTE15
585     ,CREATED_BY
586     ,CREATION_DATE
587     ,LAST_UPDATED_BY
588     ,LAST_UPDATE_DATE
589     ,LAST_UPDATE_LOGIN
590     ,PRICE_TYPE
591     ,CURRENCY_CODE
592     ,CURRENCY_CODE_RENEWED
593     ,DATE_RENEWED
594     ,ORIG_SYSTEM_SOURCE_CODE
595     ,ORIG_SYSTEM_ID1
596     ,ORIG_SYSTEM_REFERENCE1
597     ,COGNOMEN
598     ,PROGRAM_APPLICATION_ID
599     ,PROGRAM_ID
600     ,PROGRAM_UPDATE_DATE
601     ,REQUEST_ID
602     ,PRICE_LIST_LINE_ID
603     ,PRICE_LIST_ID
604     ,LINE_LIST_PRICE
605     ,ITEM_TO_PRICE_YN
606     ,PRICING_DATE
607     ,PRICE_BASIS_YN
608     ,CONFIG_HEADER_ID
609     ,CONFIG_REVISION_NUMBER
610     ,CONFIG_COMPLETE_YN
611     ,CONFIG_VALID_YN
612     ,CONFIG_TOP_MODEL_LINE_ID
613     ,CONFIG_ITEM_TYPE
614     ,CONFIG_ITEM_ID
615     --,SERVICE_ITEM_YN
616     --,PH_PRICING_TYPE
617     --,PH_ADJUSTMENT
618     --,PH_PRICE_BREAK_BASIS
619     --,PH_MIN_QTY
620     --,PH_MIN_AMT
621     --,PH_QP_REFERENCE_ID
622     --,PH_VALUE
623     --,PH_ENFORCE_PRICE_LIST_YN
624     --,PH_INTEGRATED_WITH_QP
625     ,CUST_ACCT_ID
626     ,BILL_TO_SITE_USE_ID
627     ,INV_RULE_ID
628     ,LINE_RENEWAL_TYPE_CODE
629     ,SHIP_TO_SITE_USE_ID
630     ,PAYMENT_TERM_ID
631       FROM Okc_K_Lines_V
632      WHERE okc_k_lines_v.id     = p_id;
633     l_okc_clev_pk                  okc_clev_pk_csr%ROWTYPE;
634     l_clev_rec                     clev_rec_type;
635   BEGIN
636     x_no_data_found := TRUE;
637     -- Get current database values
638     OPEN okc_clev_pk_csr (p_clev_id);
639     FETCH okc_clev_pk_csr INTO
640      l_clev_rec.ID
641     ,l_clev_rec.OBJECT_VERSION_NUMBER
642     ,l_clev_rec.SFWT_FLAG
643     ,l_clev_rec.CHR_ID
644     ,l_clev_rec.CLE_ID
645     ,l_clev_rec.CLE_ID_RENEWED
646     ,l_clev_rec.CLE_ID_RENEWED_TO
647     ,l_clev_rec.LSE_ID
648     ,l_clev_rec.LINE_NUMBER
649     ,l_clev_rec.STS_CODE
650     ,l_clev_rec.DISPLAY_SEQUENCE
651     ,l_clev_rec.TRN_CODE
652     ,l_clev_rec.DNZ_CHR_ID
653     ,l_clev_rec.COMMENTS
654     ,l_clev_rec.ITEM_DESCRIPTION
655     ,l_clev_rec.OKE_BOE_DESCRIPTION
656     ,l_clev_rec.HIDDEN_IND
657     ,l_clev_rec.PRICE_UNIT
658     ,l_clev_rec.PRICE_UNIT_PERCENT
659     ,l_clev_rec.PRICE_NEGOTIATED
660     ,l_clev_rec.PRICE_NEGOTIATED_RENEWED
661     ,l_clev_rec.PRICE_LEVEL_IND
662     ,l_clev_rec.INVOICE_LINE_LEVEL_IND
663     ,l_clev_rec.DPAS_RATING
664     ,l_clev_rec.BLOCK23TEXT
665     ,l_clev_rec.EXCEPTION_YN
666     ,l_clev_rec.TEMPLATE_USED
667     ,l_clev_rec.DATE_TERMINATED
668     ,l_clev_rec.NAME
669     ,l_clev_rec.START_DATE
670     ,l_clev_rec.END_DATE
671     ,l_clev_rec.UPG_ORIG_SYSTEM_REF
672     ,l_clev_rec.UPG_ORIG_SYSTEM_REF_ID
673     ,l_clev_rec.ATTRIBUTE_CATEGORY
674     ,l_clev_rec.ATTRIBUTE1
675     ,l_clev_rec.ATTRIBUTE2
676     ,l_clev_rec.ATTRIBUTE3
677     ,l_clev_rec.ATTRIBUTE4
678     ,l_clev_rec.ATTRIBUTE5
679     ,l_clev_rec.ATTRIBUTE6
680     ,l_clev_rec.ATTRIBUTE7
681     ,l_clev_rec.ATTRIBUTE8
682     ,l_clev_rec.ATTRIBUTE9
683     ,l_clev_rec.ATTRIBUTE10
684     ,l_clev_rec.ATTRIBUTE11
685     ,l_clev_rec.ATTRIBUTE12
686     ,l_clev_rec.ATTRIBUTE13
687     ,l_clev_rec.ATTRIBUTE14
688     ,l_clev_rec.ATTRIBUTE15
689     ,l_clev_rec.CREATED_BY
690     ,l_clev_rec.CREATION_DATE
691     ,l_clev_rec.LAST_UPDATED_BY
692     ,l_clev_rec.LAST_UPDATE_DATE
693     ,l_clev_rec.LAST_UPDATE_LOGIN
694     ,l_clev_rec.PRICE_TYPE
695     ,l_clev_rec.CURRENCY_CODE
696     ,l_clev_rec.CURRENCY_CODE_RENEWED
697     ,l_clev_rec.DATE_RENEWED
698     ,l_clev_rec.ORIG_SYSTEM_SOURCE_CODE
699     ,l_clev_rec.ORIG_SYSTEM_ID1
700     ,l_clev_rec.ORIG_SYSTEM_REFERENCE1
701     ,l_clev_rec.COGNOMEN
702     ,l_clev_rec.PROGRAM_APPLICATION_ID
703     ,l_clev_rec.PROGRAM_ID
704     ,l_clev_rec.PROGRAM_UPDATE_DATE
705     ,l_clev_rec.REQUEST_ID
706     ,l_clev_rec.PRICE_LIST_LINE_ID
707     ,l_clev_rec.PRICE_LIST_ID
708     ,l_clev_rec.LINE_LIST_PRICE
709     ,l_clev_rec.ITEM_TO_PRICE_YN
710     ,l_clev_rec.PRICING_DATE
711     ,l_clev_rec.PRICE_BASIS_YN
712     ,l_clev_rec.CONFIG_HEADER_ID
713     ,l_clev_rec.CONFIG_REVISION_NUMBER
714     ,l_clev_rec.CONFIG_COMPLETE_YN
715     ,l_clev_rec.CONFIG_VALID_YN
716     ,l_clev_rec.CONFIG_TOP_MODEL_LINE_ID
717     ,l_clev_rec.CONFIG_ITEM_TYPE
718     ,l_clev_rec.CONFIG_ITEM_ID
719     --,l_clev_rec.SERVICE_ITEM_YN
720     --,l_clev_rec.PH_PRICING_TYPE
721     --,l_clev_rec.PH_ADJUSTMENT
722     --,l_clev_rec.PH_PRICE_BREAK_BASIS
723     --,l_clev_rec.PH_MIN_QTY
724     --,l_clev_rec.PH_MIN_AMT
725     --,l_clev_rec.PH_QP_REFERENCE_ID
726     --,l_clev_rec.PH_VALUE
727     --,l_clev_rec.PH_ENFORCE_PRICE_LIST_YN
728     --,l_clev_rec.PH_INTEGRATED_WITH_QP
729     ,l_clev_rec.CUST_ACCT_ID
730     ,l_clev_rec.BILL_TO_SITE_USE_ID
731     ,l_clev_rec.INV_RULE_ID
732     ,l_clev_rec.LINE_RENEWAL_TYPE_CODE
733     ,l_clev_rec.SHIP_TO_SITE_USE_ID
734     ,l_clev_rec.PAYMENT_TERM_ID;
735     x_no_data_found := okc_clev_pk_csr%NOTFOUND;
736     CLOSE okc_clev_pk_csr;
737     RETURN(l_clev_rec);
738   END get_clev_rec;
739 
740   FUNCTION get_clev_rec (
741     p_clev_id                     IN NUMBER
742   ) RETURN clev_rec_type IS
743     l_row_notfound                 BOOLEAN := TRUE;
744   BEGIN
745     RETURN(get_clev_rec(p_clev_id, l_row_notfound));
746   END get_clev_rec;
747 ----------------------------------------------------------------------
748 --end get_clev_rec
749 -----------------------------------------------------------------------
750 ---------------------------------------------------------------------------
751 -- FUNCTION get_rec for: OKL_K_LINES_V
752 ---------------------------------------------------------------------------
753   FUNCTION get_klev_rec (
754     p_klev_id                     IN NUMBER,
755     x_no_data_found                OUT NOCOPY BOOLEAN
756   ) RETURN klev_rec_type IS
757     CURSOR okl_klev_pk_csr (p_id                 IN NUMBER) IS
758     SELECT
759             ID,
760             OBJECT_VERSION_NUMBER,
761             KLE_ID,
762             STY_ID,
763             PRC_CODE,
764             FCG_CODE,
765             NTY_CODE,
766             ESTIMATED_OEC,
767             LAO_AMOUNT,
768             TITLE_DATE,
769             FEE_CHARGE,
770             LRS_PERCENT,
771             INITIAL_DIRECT_COST,
772             PERCENT_STAKE,
773             PERCENT,
774             EVERGREEN_PERCENT,
775             AMOUNT_STAKE,
776             OCCUPANCY,
777             COVERAGE,
778             RESIDUAL_PERCENTAGE,
779             DATE_LAST_INSPECTION,
780             DATE_SOLD,
781             LRV_AMOUNT,
782             CAPITAL_REDUCTION,
783             DATE_NEXT_INSPECTION_DUE,
784             DATE_RESIDUAL_LAST_REVIEW,
785             DATE_LAST_REAMORTISATION,
786             VENDOR_ADVANCE_PAID,
787             WEIGHTED_AVERAGE_LIFE,
788             TRADEIN_AMOUNT,
789             BOND_EQUIVALENT_YIELD,
790             TERMINATION_PURCHASE_AMOUNT,
791             REFINANCE_AMOUNT,
792             YEAR_BUILT,
793             DELIVERED_DATE,
794             CREDIT_TENANT_YN,
795             DATE_LAST_CLEANUP,
796             YEAR_OF_MANUFACTURE,
797             COVERAGE_RATIO,
798             REMARKETED_AMOUNT,
799             GROSS_SQUARE_FOOTAGE,
800             PRESCRIBED_ASSET_YN,
801             DATE_REMARKETED,
802             NET_RENTABLE,
803             REMARKET_MARGIN,
804             DATE_LETTER_ACCEPTANCE,
805             REPURCHASED_AMOUNT,
806             DATE_COMMITMENT_EXPIRATION,
807             DATE_REPURCHASED,
808             DATE_APPRAISAL,
809             RESIDUAL_VALUE,
810             APPRAISAL_VALUE,
811             SECURED_DEAL_YN,
812             GAIN_LOSS,
813             FLOOR_AMOUNT,
814             RE_LEASE_YN,
815             PREVIOUS_CONTRACT,
816             TRACKED_RESIDUAL,
817             DATE_TITLE_RECEIVED,
818             AMOUNT,
819             ATTRIBUTE_CATEGORY,
820             ATTRIBUTE1,
821             ATTRIBUTE2,
822             ATTRIBUTE3,
823             ATTRIBUTE4,
824             ATTRIBUTE5,
825             ATTRIBUTE6,
826             ATTRIBUTE7,
827             ATTRIBUTE8,
828             ATTRIBUTE9,
829             ATTRIBUTE10,
830             ATTRIBUTE11,
831             ATTRIBUTE12,
832             ATTRIBUTE13,
833             ATTRIBUTE14,
834             ATTRIBUTE15,
835             STY_ID_FOR,
836             CLG_ID,
837             CREATED_BY,
838             CREATION_DATE,
839             LAST_UPDATED_BY,
840             LAST_UPDATE_DATE,
841             LAST_UPDATE_LOGIN,
842             DATE_FUNDING,
843             DATE_FUNDING_REQUIRED,
844             DATE_ACCEPTED,
845             DATE_DELIVERY_EXPECTED,
846             OEC,
847             CAPITAL_AMOUNT,
848             RESIDUAL_GRNTY_AMOUNT,
849             RESIDUAL_CODE,
850             RVI_PREMIUM,
851             CREDIT_NATURE,
852             CAPITALIZED_INTEREST,
853             CAPITAL_REDUCTION_PERCENT,
854 -- Bug# 2697681
855             DATE_PAY_INVESTOR_START,
856             PAY_INVESTOR_FREQUENCY,
857             PAY_INVESTOR_EVENT,
858             PAY_INVESTOR_REMITTANCE_DAYS,
859 -- Bug# 2697681
860             FEE_TYPE,
861 -- Bug# 3143522 : Subsidies
862            SUBSIDY_ID,
863            --SUBSIDIZED_OEC,
864            --SUBSIDIZED_CAP_AMOUNT,
865            PRE_TAX_YIELD,
866            AFTER_TAX_YIELD,
867            IMPLICIT_INTEREST_RATE,
868            IMPLICIT_NON_IDC_INTEREST_RATE,
869            PRE_TAX_IRR,
870            AFTER_TAX_IRR,
871            SUBSIDY_OVERRIDE_AMOUNT,
872 --quote
873            SUB_PRE_TAX_YIELD,
874            SUB_AFTER_TAX_YIELD,
875            SUB_IMPL_INTEREST_RATE,
876            SUB_IMPL_NON_IDC_INT_RATE,
877            SUB_PRE_TAX_IRR,
878            SUB_AFTER_TAX_IRR,
879 --Bug# 2994971
880            ITEM_INSURANCE_CATEGORY,
881 --Bug# 3973640 : 11.5.10+ schema
882            QTE_ID,
883            FUNDING_DATE,
884            STREAM_TYPE_SUBCLASS,
885 --Bug 4466440 OKL.H new columns
886            DATE_FUNDING_EXPECTED,
887            MANUFACTURER_NAME,
888            MODEL_NUMBER,
889            DOWN_PAYMENT_RECEIVER_CODE,
890            CAPITALIZE_DOWN_PAYMENT_YN,
891            FEE_PURPOSE_CODE
892       FROM Okl_K_Lines_V
893      WHERE okl_k_lines_v.id     = p_id;
894     l_okl_klev_pk                  okl_klev_pk_csr%ROWTYPE;
895     l_klev_rec                     klev_rec_type;
896   BEGIN
897     x_no_data_found := TRUE;
898     -- Get current database values
899     OPEN okl_klev_pk_csr (p_klev_id);
900     FETCH okl_klev_pk_csr INTO
901               l_klev_rec.ID,
902               l_klev_rec.OBJECT_VERSION_NUMBER,
903               l_klev_rec.KLE_ID,
904               l_klev_rec.STY_ID,
905               l_klev_rec.PRC_CODE,
906               l_klev_rec.FCG_CODE,
907               l_klev_rec.NTY_CODE,
908               l_klev_rec.ESTIMATED_OEC,
909               l_klev_rec.LAO_AMOUNT,
910               l_klev_rec.TITLE_DATE,
911               l_klev_rec.FEE_CHARGE,
912               l_klev_rec.LRS_PERCENT,
913               l_klev_rec.INITIAL_DIRECT_COST,
914               l_klev_rec.PERCENT_STAKE,
915               l_klev_rec.PERCENT,
916               l_klev_rec.EVERGREEN_PERCENT,
917               l_klev_rec.AMOUNT_STAKE,
918               l_klev_rec.OCCUPANCY,
919               l_klev_rec.COVERAGE,
920               l_klev_rec.RESIDUAL_PERCENTAGE,
921               l_klev_rec.DATE_LAST_INSPECTION,
922               l_klev_rec.DATE_SOLD,
923               l_klev_rec.LRV_AMOUNT,
924               l_klev_rec.CAPITAL_REDUCTION,
925               l_klev_rec.DATE_NEXT_INSPECTION_DUE,
926               l_klev_rec.DATE_RESIDUAL_LAST_REVIEW,
927               l_klev_rec.DATE_LAST_REAMORTISATION,
928               l_klev_rec.VENDOR_ADVANCE_PAID,
929               l_klev_rec.WEIGHTED_AVERAGE_LIFE,
930               l_klev_rec.TRADEIN_AMOUNT,
931               l_klev_rec.BOND_EQUIVALENT_YIELD,
932               l_klev_rec.TERMINATION_PURCHASE_AMOUNT,
933               l_klev_rec.REFINANCE_AMOUNT,
934               l_klev_rec.YEAR_BUILT,
935               l_klev_rec.DELIVERED_DATE,
936               l_klev_rec.CREDIT_TENANT_YN,
937               l_klev_rec.DATE_LAST_CLEANUP,
938               l_klev_rec.YEAR_OF_MANUFACTURE,
939               l_klev_rec.COVERAGE_RATIO,
940               l_klev_rec.REMARKETED_AMOUNT,
941               l_klev_rec.GROSS_SQUARE_FOOTAGE,
942               l_klev_rec.PRESCRIBED_ASSET_YN,
943               l_klev_rec.DATE_REMARKETED,
944               l_klev_rec.NET_RENTABLE,
945               l_klev_rec.REMARKET_MARGIN,
946               l_klev_rec.DATE_LETTER_ACCEPTANCE,
947               l_klev_rec.REPURCHASED_AMOUNT,
948               l_klev_rec.DATE_COMMITMENT_EXPIRATION,
949               l_klev_rec.DATE_REPURCHASED,
950               l_klev_rec.DATE_APPRAISAL,
951               l_klev_rec.RESIDUAL_VALUE,
952               l_klev_rec.APPRAISAL_VALUE,
953               l_klev_rec.SECURED_DEAL_YN,
954               l_klev_rec.GAIN_LOSS,
955               l_klev_rec.FLOOR_AMOUNT,
956               l_klev_rec.RE_LEASE_YN,
957               l_klev_rec.PREVIOUS_CONTRACT,
958               l_klev_rec.TRACKED_RESIDUAL,
959               l_klev_rec.DATE_TITLE_RECEIVED,
960               l_klev_rec.AMOUNT,
961               l_klev_rec.ATTRIBUTE_CATEGORY,
962               l_klev_rec.ATTRIBUTE1,
963               l_klev_rec.ATTRIBUTE2,
964               l_klev_rec.ATTRIBUTE3,
965               l_klev_rec.ATTRIBUTE4,
966               l_klev_rec.ATTRIBUTE5,
967               l_klev_rec.ATTRIBUTE6,
968               l_klev_rec.ATTRIBUTE7,
969               l_klev_rec.ATTRIBUTE8,
970               l_klev_rec.ATTRIBUTE9,
971               l_klev_rec.ATTRIBUTE10,
972               l_klev_rec.ATTRIBUTE11,
973               l_klev_rec.ATTRIBUTE12,
974               l_klev_rec.ATTRIBUTE13,
975               l_klev_rec.ATTRIBUTE14,
976               l_klev_rec.ATTRIBUTE15,
977               l_klev_rec.STY_ID_FOR,
978               l_klev_rec.CLG_ID,
979               l_klev_rec.CREATED_BY,
980               l_klev_rec.CREATION_DATE,
981               l_klev_rec.LAST_UPDATED_BY,
982               l_klev_rec.LAST_UPDATE_DATE,
983               l_klev_rec.LAST_UPDATE_LOGIN,
984               l_klev_rec.DATE_FUNDING,
985               l_klev_rec.DATE_FUNDING_REQUIRED,
986               l_klev_rec.DATE_ACCEPTED,
987               l_klev_rec.DATE_DELIVERY_EXPECTED,
988               l_klev_rec.OEC,
989               l_klev_rec.CAPITAL_AMOUNT,
990               l_klev_rec.RESIDUAL_GRNTY_AMOUNT,
991               l_klev_rec.RESIDUAL_CODE,
992               l_klev_rec.RVI_PREMIUM,
993               l_klev_rec.CREDIT_NATURE,
994               l_klev_rec.CAPITALIZED_INTEREST,
995               l_klev_rec.CAPITAL_REDUCTION_PERCENT,
996               l_klev_rec.DATE_PAY_INVESTOR_START,
997               l_klev_rec.PAY_INVESTOR_FREQUENCY,
998               l_klev_rec.PAY_INVESTOR_EVENT,
999               l_klev_rec.PAY_INVESTOR_REMITTANCE_DAYS,
1000               l_klev_rec.FEE_TYPE,
1001 -- Bug# 3143522 : Subsidies
1002            l_klev_rec.SUBSIDY_ID,
1003            --l_klev_rec.SUBSIDIZED_OEC,
1004            --l_klev_rec.SUBSIDIZED_CAP_AMOUNT,
1005            l_klev_rec.PRE_TAX_YIELD,
1006            l_klev_rec.AFTER_TAX_YIELD,
1007            l_klev_rec.IMPLICIT_INTEREST_RATE,
1008            l_klev_rec.IMPLICIT_NON_IDC_INTEREST_RATE,
1009            l_klev_rec.PRE_TAX_IRR,
1010            l_klev_rec.AFTER_TAX_IRR,
1011            l_klev_rec.SUBSIDY_OVERRIDE_AMOUNT,
1012 --quote
1013            l_klev_rec.SUB_PRE_TAX_YIELD,
1014            l_klev_rec.SUB_AFTER_TAX_YIELD,
1015            l_klev_rec.SUB_IMPL_INTEREST_RATE,
1016            l_klev_rec.SUB_IMPL_NON_IDC_INT_RATE,
1017            l_klev_rec.SUB_PRE_TAX_IRR,
1018            l_klev_rec.SUB_AFTER_TAX_IRR,
1019 --Bug# 2994971
1020            l_klev_rec.ITEM_INSURANCE_CATEGORY,
1021 --Bug# 3973640 : 11.5.10+ schema
1022            l_klev_rec.QTE_ID,
1023            l_klev_rec.FUNDING_DATE,
1024            l_klev_rec.STREAM_TYPE_SUBCLASS,
1025 --Bug 4466440 OKL.H new columns
1026            l_klev_rec.DATE_FUNDING_EXPECTED,
1027            l_klev_rec.MANUFACTURER_NAME,
1028            l_klev_rec.MODEL_NUMBER,
1029            l_klev_rec.DOWN_PAYMENT_RECEIVER_CODE,
1030            l_klev_rec.CAPITALIZE_DOWN_PAYMENT_YN,
1031            l_klev_rec.FEE_PURPOSE_CODE;
1032     x_no_data_found := okl_klev_pk_csr%NOTFOUND;
1033     CLOSE okl_klev_pk_csr;
1034     RETURN(l_klev_rec);
1035   END get_klev_rec;
1036 
1037   FUNCTION get_klev_rec (
1038     p_klev_id                    IN NUMBER
1039   ) RETURN klev_rec_type IS
1040     l_row_notfound                 BOOLEAN := TRUE;
1041   BEGIN
1042     RETURN(get_klev_rec(p_klev_id, l_row_notfound));
1043   END get_klev_rec;
1044 --Bug# : 3143522
1045 
1046   --furong 4350255
1047   ---------------------------------------------------------------------------
1048   -- FUNCTION get_rec for: OKL_PARTY_PAYMENT_HDR_V
1049   ---------------------------------------------------------------------------
1050   FUNCTION get_pphv_rec (
1051     p_pphv_rec                     IN pphv_rec_type,
1052     x_no_data_found                OUT NOCOPY BOOLEAN
1053   ) RETURN pphv_rec_type IS
1054     CURSOR okl_party_payment_hdr_v_pk_csr (p_id IN NUMBER) IS
1055     SELECT
1056             ID,
1057             OBJECT_VERSION_NUMBER,
1058             DNZ_CHR_ID,
1059             CLE_ID,
1060             PPL_ID,
1061             PASSTHRU_START_DATE,
1062             PAYOUT_BASIS,
1063             PAYOUT_BASIS_FORMULA,
1064             EFFECTIVE_FROM,
1065             EFFECTIVE_TO,
1066 			PASSTHRU_TERM,
1067 			PASSTHRU_STREAM_TYPE_ID,
1068             CREATED_BY,
1069             CREATION_DATE,
1070             LAST_UPDATED_BY,
1071             LAST_UPDATE_DATE,
1072             LAST_UPDATE_LOGIN
1073       FROM Okl_Party_Payment_Hdr_V
1074      WHERE okl_party_payment_hdr_v.id = p_id;
1075     l_okl_party_payment_hdr_v_pk   okl_party_payment_hdr_v_pk_csr%ROWTYPE;
1076     l_pphv_rec                     pphv_rec_type;
1077   BEGIN
1078     x_no_data_found := TRUE;
1079     -- Get current database values
1080     OPEN okl_party_payment_hdr_v_pk_csr (p_pphv_rec.id);
1081     FETCH okl_party_payment_hdr_v_pk_csr INTO
1082               l_pphv_rec.id,
1083               l_pphv_rec.object_version_number,
1084               l_pphv_rec.dnz_chr_id,
1085               l_pphv_rec.cle_id,
1086               l_pphv_rec.ppl_id,
1087               l_pphv_rec.passthru_start_date,
1088               l_pphv_rec.payout_basis,
1089               l_pphv_rec.payout_basis_formula,
1090               l_pphv_rec.effective_from,
1091               l_pphv_rec.effective_to,
1092 			  l_pphv_rec.passthru_term,
1093 			  l_pphv_rec.passthru_stream_type_id,
1094               l_pphv_rec.created_by,
1095               l_pphv_rec.creation_date,
1096               l_pphv_rec.last_updated_by,
1097               l_pphv_rec.last_update_date,
1098               l_pphv_rec.last_update_login;
1099     x_no_data_found := okl_party_payment_hdr_v_pk_csr%NOTFOUND;
1100     CLOSE okl_party_payment_hdr_v_pk_csr;
1101     RETURN(l_pphv_rec);
1102   END get_pphv_rec;
1103  ------------------------------------------------------------------
1104   -- This version of get_rec sets error messages if no data found --
1105   ------------------------------------------------------------------
1106   FUNCTION get_pphv_rec (
1107     p_pphv_rec                      IN pphv_rec_type,
1108     x_return_status                OUT NOCOPY VARCHAR2
1109   ) RETURN pphv_rec_type IS
1110     l_pphv_rec                      pphv_rec_type;
1111     l_row_notfound                 BOOLEAN := TRUE;
1112   BEGIN
1113     x_return_status := OKC_API.G_RET_STS_SUCCESS;
1114     l_pphv_rec := get_pphv_rec(p_pphv_rec, l_row_notfound);
1115     IF (l_row_notfound) THEN
1116       OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'ID');
1117       x_return_status := OKC_API.G_RET_STS_ERROR;
1118     END IF;
1119     RETURN(l_pphv_rec);
1120   END get_pphv_rec;
1121 
1122   --furong 4350255
1123 
1124   ---------------------------------------------------------------------------
1125   -- FUNCTION get_rec for: OKL_PARTY_PAYMENT_DTLS_V
1126   ---------------------------------------------------------------------------
1127   FUNCTION get_ppydv_rec (
1128     p_ppydv_rec                    IN ppydv_rec_type,
1129     x_no_data_found                OUT NOCOPY BOOLEAN
1130   ) RETURN ppydv_rec_type IS
1131     CURSOR okl_party_payment_d1 (p_id IN NUMBER) IS
1132     SELECT
1133             ID,
1134             OBJECT_VERSION_NUMBER,
1135             CPL_ID,
1136             VENDOR_ID,
1137             PAY_SITE_ID,
1138             PAYMENT_TERM_ID,
1139             PAYMENT_METHOD_CODE,
1140             PAY_GROUP_CODE,
1141 			PAYMENT_HDR_ID,
1142 			PAYMENT_START_DATE,
1143 			PAYMENT_FREQUENCY,
1144 			REMIT_DAYS,
1145 			DISBURSEMENT_BASIS,
1146 			DISBURSEMENT_FIXED_AMOUNT,
1147 			DISBURSEMENT_PERCENT,
1148 			PROCESSING_FEE_BASIS,
1149 			PROCESSING_FEE_FIXED_AMOUNT,
1150 			PROCESSING_FEE_PERCENT,
1151 			PAYMENT_BASIS,
1152             ATTRIBUTE_CATEGORY,
1153             ATTRIBUTE1,
1154             ATTRIBUTE2,
1155             ATTRIBUTE3,
1156             ATTRIBUTE4,
1157             ATTRIBUTE5,
1158             ATTRIBUTE6,
1159             ATTRIBUTE7,
1160             ATTRIBUTE8,
1161             ATTRIBUTE9,
1162             ATTRIBUTE10,
1163             ATTRIBUTE11,
1164             ATTRIBUTE12,
1165             ATTRIBUTE13,
1166             ATTRIBUTE14,
1167             ATTRIBUTE15,
1168             CREATED_BY,
1169             CREATION_DATE,
1170             LAST_UPDATED_BY,
1171             LAST_UPDATE_DATE,
1172             LAST_UPDATE_LOGIN
1173       FROM Okl_Party_Payment_Dtls_V
1174      WHERE okl_party_payment_dtls_v.id = p_id;
1175     l_okl_party_payment_dtls_v_pk  okl_party_payment_d1%ROWTYPE;
1176     l_ppydv_rec                    ppydv_rec_type;
1177   BEGIN
1178     x_no_data_found := TRUE;
1179     -- Get current database values
1180     OPEN okl_party_payment_d1 (p_ppydv_rec.id);
1181     FETCH okl_party_payment_d1 INTO
1182               l_ppydv_rec.id,
1183               l_ppydv_rec.object_version_number,
1184               l_ppydv_rec.cpl_id,
1185               l_ppydv_rec.vendor_id,
1186               l_ppydv_rec.pay_site_id,
1187               l_ppydv_rec.payment_term_id,
1188               l_ppydv_rec.payment_method_code,
1189               l_ppydv_rec.pay_group_code,
1190 			  l_ppydv_rec.payment_hdr_id,
1191 			  l_ppydv_rec.payment_start_date,
1192 			  l_ppydv_rec.payment_frequency,
1193 			  l_ppydv_rec.remit_days,
1194 			  l_ppydv_rec.disbursement_basis,
1195 			  l_ppydv_rec.disbursement_fixed_amount,
1196 			  l_ppydv_rec.disbursement_percent,
1197 			  l_ppydv_rec.processing_fee_basis,
1198 			  l_ppydv_rec.processing_fee_fixed_amount,
1199 			  l_ppydv_rec.processing_fee_percent,
1200 			  l_ppydv_rec.payment_basis,
1201               l_ppydv_rec.attribute_category,
1202               l_ppydv_rec.attribute1,
1203               l_ppydv_rec.attribute2,
1204               l_ppydv_rec.attribute3,
1205               l_ppydv_rec.attribute4,
1206               l_ppydv_rec.attribute5,
1207               l_ppydv_rec.attribute6,
1208               l_ppydv_rec.attribute7,
1209               l_ppydv_rec.attribute8,
1210               l_ppydv_rec.attribute9,
1211               l_ppydv_rec.attribute10,
1212               l_ppydv_rec.attribute11,
1213               l_ppydv_rec.attribute12,
1214               l_ppydv_rec.attribute13,
1215               l_ppydv_rec.attribute14,
1216               l_ppydv_rec.attribute15,
1217               l_ppydv_rec.created_by,
1218               l_ppydv_rec.creation_date,
1219               l_ppydv_rec.last_updated_by,
1220               l_ppydv_rec.last_update_date,
1221               l_ppydv_rec.last_update_login;
1222     x_no_data_found := okl_party_payment_d1%NOTFOUND;
1223     CLOSE okl_party_payment_d1;
1224     RETURN(l_ppydv_rec);
1225   END get_ppydv_rec;
1226 
1227   --Bug# 4558486
1228   ---------------------------------------------------------------------------
1229   -- FUNCTION get_rec for: OKL_K_PARTY_ROLES
1230   ---------------------------------------------------------------------------
1231   FUNCTION get_kplv_rec (
1232     p_kplv_rec                     IN kplv_rec_type,
1233     x_no_data_found                OUT NOCOPY BOOLEAN
1234   ) RETURN kplv_rec_type IS
1235     CURSOR okl_k_party_roles_v_pk_csr (p_id IN NUMBER) IS
1236     SELECT
1237            ID,
1238            OBJECT_VERSION_NUMBER,
1239            ATTRIBUTE_CATEGORY,
1240            ATTRIBUTE1,
1241            ATTRIBUTE2,
1242            ATTRIBUTE3,
1243            ATTRIBUTE4,
1244            ATTRIBUTE5,
1245            ATTRIBUTE6,
1246            ATTRIBUTE7,
1247            ATTRIBUTE8,
1248            ATTRIBUTE9,
1249            ATTRIBUTE10,
1250            ATTRIBUTE11,
1251            ATTRIBUTE12,
1252            ATTRIBUTE13,
1253            ATTRIBUTE14,
1254            ATTRIBUTE15,
1255            CREATED_BY,
1256            CREATION_DATE,
1257            LAST_UPDATED_BY,
1258            LAST_UPDATE_DATE,
1259            LAST_UPDATE_LOGIN
1260      FROM Okl_K_Party_Roles_V
1261      WHERE okl_k_party_roles_v.id = p_id;
1262     l_okl_k_party_roles_v_pk   okl_k_party_roles_v_pk_csr%ROWTYPE;
1263     l_kplv_rec                     kplv_rec_type;
1264   BEGIN
1265     x_no_data_found := TRUE;
1266     -- Get current database values
1267     OPEN okl_k_party_roles_v_pk_csr (p_kplv_rec.id);
1268     FETCH okl_k_party_roles_v_pk_csr INTO
1269               l_kplv_rec.id,
1270               l_kplv_rec.object_version_number,
1271               l_kplv_rec.attribute_category,
1272               l_kplv_rec.attribute1,
1273               l_kplv_rec.attribute2,
1274               l_kplv_rec.attribute3,
1275               l_kplv_rec.attribute4,
1276               l_kplv_rec.attribute5,
1277               l_kplv_rec.attribute6,
1278               l_kplv_rec.attribute7,
1279               l_kplv_rec.attribute8,
1280               l_kplv_rec.attribute9,
1281               l_kplv_rec.attribute10,
1282               l_kplv_rec.attribute11,
1283               l_kplv_rec.attribute12,
1284               l_kplv_rec.attribute13,
1285               l_kplv_rec.attribute14,
1286               l_kplv_rec.attribute15,
1287               l_kplv_rec.created_by,
1288               l_kplv_rec.creation_date,
1289               l_kplv_rec.last_updated_by,
1290               l_kplv_rec.last_update_date,
1291               l_kplv_rec.last_update_login;
1292     x_no_data_found := okl_k_party_roles_v_pk_csr%NOTFOUND;
1293     CLOSE okl_k_party_roles_v_pk_csr;
1294     RETURN(l_kplv_rec);
1295   END get_kplv_rec;
1296  ------------------------------------------------------------------
1297   -- This version of get_rec sets error messages if no data found --
1298   ------------------------------------------------------------------
1299   FUNCTION get_kplv_rec (
1300     p_kplv_rec                     IN kplv_rec_type,
1301     x_return_status                OUT NOCOPY VARCHAR2
1302   ) RETURN kplv_rec_type IS
1303     l_kplv_rec                      kplv_rec_type;
1304     l_row_notfound                 BOOLEAN := TRUE;
1305   BEGIN
1306     x_return_status := OKC_API.G_RET_STS_SUCCESS;
1307     l_kplv_rec := get_kplv_rec(p_kplv_rec, l_row_notfound);
1308     IF (l_row_notfound) THEN
1309       OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'ID');
1310       x_return_status := OKC_API.G_RET_STS_ERROR;
1311     END IF;
1312     RETURN(l_kplv_rec);
1313   END get_kplv_rec;
1314   --Bug# 4558486
1315 
1316   --Bug # 3630858
1317     ---------------------------------------------------------------------------
1318     -- FUNCTION get_rec for: OKL_SLCTD_OPTNS_V
1319     ---------------------------------------------------------------------------
1320     FUNCTION get_cspv_rec (
1321       p_cspv_rec_id                    IN number,
1322       x_return_status                  OUT NOCOPY VARCHAR2
1323     ) RETURN cspv_rec_type IS
1324       CURSOR OKL_SLCTD_OPTNS_CSR (p_id IN NUMBER) IS
1325       SELECT
1326               ID,
1327               OBJECT_VERSION_NUMBER,
1328               POV_ID,
1329               KHR_ID,
1330               ATTRIBUTE_CATEGORY,
1331               ATTRIBUTE1,
1332               ATTRIBUTE2,
1333               ATTRIBUTE3,
1334               ATTRIBUTE4,
1335               ATTRIBUTE5,
1336               ATTRIBUTE6,
1337               ATTRIBUTE7,
1338               ATTRIBUTE8,
1339               ATTRIBUTE9,
1340               ATTRIBUTE10,
1341               ATTRIBUTE11,
1342               ATTRIBUTE12,
1343               ATTRIBUTE13,
1344               ATTRIBUTE14,
1345               ATTRIBUTE15,
1346               CREATED_BY,
1347               CREATION_DATE,
1348               LAST_UPDATED_BY,
1349               LAST_UPDATE_DATE,
1350               LAST_UPDATE_LOGIN
1351         FROM OKL_SLCTD_OPTNS_V
1352        WHERE OKL_SLCTD_OPTNS_V.id = p_id;
1353 
1354       l_cspv_rec_id           number;
1355       l_cspv_rec              cspv_rec_type;
1356       l_no_data_found         BOOLEAN := FALSE;
1357     BEGIN
1358 	  l_cspv_rec_id := p_cspv_rec_id;
1359       -- Get current database values
1360       OPEN OKL_SLCTD_OPTNS_CSR (l_cspv_rec_id);
1361       FETCH OKL_SLCTD_OPTNS_CSR INTO
1362                 l_cspv_rec.id,
1363                 l_cspv_rec.object_version_number,
1364                 l_cspv_rec.pov_id,
1365                 l_cspv_rec.khr_id,
1366                 l_cspv_rec.attribute_category,
1367                 l_cspv_rec.attribute1,
1368                 l_cspv_rec.attribute2,
1369                 l_cspv_rec.attribute3,
1370                 l_cspv_rec.attribute4,
1371                 l_cspv_rec.attribute5,
1372                 l_cspv_rec.attribute6,
1373                 l_cspv_rec.attribute7,
1374                 l_cspv_rec.attribute8,
1375                 l_cspv_rec.attribute9,
1376                 l_cspv_rec.attribute10,
1377                 l_cspv_rec.attribute11,
1378                 l_cspv_rec.attribute12,
1379                 l_cspv_rec.attribute13,
1380                 l_cspv_rec.attribute14,
1381                 l_cspv_rec.attribute15,
1382                 l_cspv_rec.created_by,
1383                 l_cspv_rec.creation_date,
1384                 l_cspv_rec.last_updated_by,
1385                 l_cspv_rec.last_update_date,
1386                 l_cspv_rec.last_update_login;
1387       l_no_data_found := OKL_SLCTD_OPTNS_CSR%NOTFOUND;
1388       CLOSE OKL_SLCTD_OPTNS_CSR;
1389 
1390       x_return_status := OKL_API.G_RET_STS_SUCCESS;
1391       IF (l_no_data_found) THEN
1392         OKL_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'ID');
1393         x_return_status := OKL_API.G_RET_STS_ERROR;
1394       END IF;
1395 
1396       RETURN(l_cspv_rec);
1397   END get_cspv_rec;
1398 
1399 
1400   ------------------------------------------------------------------
1401   -- This version of get_rec sets error messages if no data found --
1402   ------------------------------------------------------------------
1403   FUNCTION get_ppydv_rec (
1404     p_ppydv_rec                    IN ppydv_rec_type,
1405     x_return_status                OUT NOCOPY VARCHAR2
1406   ) RETURN ppydv_rec_type IS
1407     l_ppydv_rec                    ppydv_rec_type;
1408     l_row_notfound                 BOOLEAN := TRUE;
1409   BEGIN
1410     x_return_status := OKL_API.G_RET_STS_SUCCESS;
1411     l_ppydv_rec := get_ppydv_rec(p_ppydv_rec, l_row_notfound);
1412     IF (l_row_notfound) THEN
1413       OKL_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'ID');
1414       x_return_status := OKL_API.G_RET_STS_ERROR;
1415     END IF;
1416     RETURN(l_ppydv_rec);
1417   END get_ppydv_rec;
1418   -----------------------------------------------------------
1419   -- So we don't have to pass an "l_row_notfound" variable --
1420   -----------------------------------------------------------
1421   FUNCTION get_ppydv_rec (
1422     p_ppydv_rec                    IN ppydv_rec_type
1423   ) RETURN ppydv_rec_type IS
1424     l_row_not_found                BOOLEAN := TRUE;
1425   BEGIN
1426     RETURN(get_ppydv_rec(p_ppydv_rec, l_row_not_found));
1427   END get_ppydv_rec;
1428 
1429   --furong  4350255
1430   Procedure copy_party_pymt_hdr
1431     (p_api_version                  IN  NUMBER,
1432      p_init_msg_list                IN  VARCHAR2 ,
1433      x_return_status                OUT NOCOPY VARCHAR2,
1434      x_msg_count                    OUT NOCOPY NUMBER,
1435      x_msg_data                     OUT NOCOPY VARCHAR2,
1436      p_chr_id                       IN  NUMBER,
1437      p_cle_id                  	    IN  NUMBER,
1438      p_pph_id                  	    IN  NUMBER,
1439      x_pph_id		                OUT NOCOPY NUMBER) IS
1440 
1441     l_get_pphv_rec    pphv_rec_type;
1442     l_pphv_rec        pphv_rec_type;
1443     lx_pphv_rec       pphv_rec_type;
1444 
1445     l_return_status        VARCHAR2(1)  default OKL_API.G_RET_STS_SUCCESS;
1446     l_api_name             CONSTANT     varchar2(30) := 'COPY_PARTY_PYMT_HDR';
1447     l_api_version          CONSTANT     NUMBER := 1.0;
1448 
1449 Begin
1450     x_return_status := OKL_API.G_RET_STS_SUCCESS;
1451     -- Call start_activity to create savepoint, check compatibility
1452     -- and initialize message list
1453     x_return_status := OKL_API.START_ACTIVITY (
1454                                l_api_name
1455                                ,p_init_msg_list
1456                                ,'_PVT'
1457                                ,x_return_status);
1458     -- Check if activity started successfully
1459     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1460        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1461     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1462        RAISE OKL_API.G_EXCEPTION_ERROR;
1463     END IF;
1464 
1465     l_get_pphv_rec.id := p_pph_id;
1466     l_pphv_rec := get_pphv_rec(p_pphv_rec => l_get_pphv_rec,
1467 			                   x_return_status => x_return_status);
1468 	l_pphv_rec.dnz_chr_id := p_chr_id;
1469 	l_pphv_rec.cle_id := p_cle_id;
1470 
1471     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1472        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1473     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1474        RAISE OKL_API.G_EXCEPTION_ERROR;
1475     END IF;
1476 
1477     OKL_LDB_PVT.insert_row
1478            (p_api_version   => p_api_version,
1479             p_init_msg_list => p_init_msg_list,
1480             x_return_status => x_return_status,
1481             x_msg_count     => x_msg_count,
1482             x_msg_data      => x_msg_data,
1483             p_pphv_rec      => l_pphv_rec,
1484             x_pphv_rec      => lx_pphv_rec);
1485 
1486     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1487        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1488     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1489        RAISE OKL_API.G_EXCEPTION_ERROR;
1490     END IF;
1491     x_pph_id := lx_pphv_rec.id;
1492 
1493     OKL_API.END_ACTIVITY (x_msg_count,x_msg_data );
1494 
1495     EXCEPTION
1496 
1497     WHEN OKL_API.G_EXCEPTION_ERROR THEN
1498     x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1499                                l_api_name,
1500                                G_PKG_NAME,
1501                                'OKL_API.G_RET_STS_ERROR',
1502                                x_msg_count,
1503                                x_msg_data,
1504                                '_PVT');
1505     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1506     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
1507                               l_api_name,
1508                               G_PKG_NAME,
1509                               'OKL_API.G_RET_STS_UNEXP_ERROR',
1510                               x_msg_count,
1511                               x_msg_data,
1512                               '_PVT');
1513     WHEN OTHERS THEN
1514     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
1515                               l_api_name,
1516                               G_PKG_NAME,
1517                               'OTHERS',
1518                               x_msg_count,
1519                               x_msg_data,
1520                               '_PVT');
1521 End copy_party_pymt_hdr;
1522 --furong 4350255
1523 
1524 --------------------------------------------------------------------------------
1525 -- Start of comments
1526 -- Bug# 3143522
1527 -- Procedure name  : copy_party_pymt_dtls
1528 -- Description     : Copies okl party payment details
1529 --                   local (sub entiry of OKL party roles)
1530 -- Business Rules  :
1531 -- Parameters      :
1532 -- Version         : 1.0
1533 -- Notes           :
1534 -- End of Comments
1535 -------------------------------------------------------------------------------
1536 Procedure copy_party_pymt_dtls
1537     (p_api_version                  IN  NUMBER,
1538      p_init_msg_list                IN  VARCHAR2 ,
1539      x_return_status                OUT NOCOPY VARCHAR2,
1540      x_msg_count                    OUT NOCOPY NUMBER,
1541      x_msg_data                     OUT NOCOPY VARCHAR2,
1542      p_pyd_id                       IN  NUMBER,
1543      p_cpl_id                  	    IN  NUMBER,
1544 	 --furong  4350255
1545 	 p_pph_id                       IN  NUMBER DEFAULT OKL_API.G_MISS_NUM,
1546      --furong   4350255
1547      x_pyd_id		            OUT NOCOPY NUMBER) IS
1548 
1549     l_get_ppydv_rec   ppydv_rec_type;
1550     l_ppydv_rec       ppydv_rec_type;
1551     lx_ppydv_rec      ppydv_rec_type;
1552 
1553     l_return_status        VARCHAR2(1)  default OKL_API.G_RET_STS_SUCCESS;
1554     l_api_name             CONSTANT     varchar2(30) := 'COPY_PARTY_PYMT_DTLS';
1555     l_api_version          CONSTANT     NUMBER := 1.0;
1556 
1557 Begin
1558     x_return_status := OKL_API.G_RET_STS_SUCCESS;
1559     -- Call start_activity to create savepoint, check compatibility
1560     -- and initialize message list
1561     x_return_status := OKL_API.START_ACTIVITY (
1562                                l_api_name
1563                                ,p_init_msg_list
1564                                ,'_PVT'
1565                                ,x_return_status);
1566     -- Check if activity started successfully
1567     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1568        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1569     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1570        RAISE OKL_API.G_EXCEPTION_ERROR;
1571     END IF;
1572 
1573     l_get_ppydv_rec.id := p_pyd_id;
1574     l_ppydv_rec := get_ppydv_rec(p_ppydv_rec        => l_get_ppydv_rec,
1575 			         x_return_status    => x_return_status);
1576 
1577     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1578        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1579     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1580        RAISE OKL_API.G_EXCEPTION_ERROR;
1581     END IF;
1582 
1583     --create party payment details
1584     l_ppydv_rec.cpl_id := p_cpl_id;
1585 	l_ppydv_rec.payment_hdr_id := p_pph_id;
1586 
1587     OKL_PYD_PVT.insert_row
1588            (p_api_version   => p_api_version,
1589             p_init_msg_list => p_init_msg_list,
1590             x_return_status => x_return_status,
1591             x_msg_count     => x_msg_count,
1592             x_msg_data      => x_msg_data,
1593             p_ppydv_rec     => l_ppydv_rec,
1594             x_ppydv_rec     => lx_ppydv_rec);
1595 
1596     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1597        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1598     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1599        RAISE OKL_API.G_EXCEPTION_ERROR;
1600     END IF;
1601     x_pyd_id := lx_ppydv_rec.id;
1602 
1603     OKL_API.END_ACTIVITY (x_msg_count,x_msg_data );
1604 
1605     EXCEPTION
1606 
1607     WHEN OKL_API.G_EXCEPTION_ERROR THEN
1608     x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1609                                l_api_name,
1610                                G_PKG_NAME,
1611                                'OKL_API.G_RET_STS_ERROR',
1612                                x_msg_count,
1613                                x_msg_data,
1614                                '_PVT');
1615     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1616     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
1617                               l_api_name,
1618                               G_PKG_NAME,
1619                               'OKL_API.G_RET_STS_UNEXP_ERROR',
1620                               x_msg_count,
1621                               x_msg_data,
1622                               '_PVT');
1623     WHEN OTHERS THEN
1624     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
1625                               l_api_name,
1626                               G_PKG_NAME,
1627                               'OTHERS',
1628                               x_msg_count,
1629                               x_msg_data,
1630                               '_PVT');
1631 End copy_party_pymt_dtls;
1632 
1633 --Bug# 4558486
1634 Procedure copy_okl_k_party_roles
1635     (p_api_version                  IN  NUMBER,
1636      p_init_msg_list                IN  VARCHAR2 ,
1637      x_return_status                OUT NOCOPY VARCHAR2,
1638      x_msg_count                    OUT NOCOPY NUMBER,
1639      x_msg_data                     OUT NOCOPY VARCHAR2,
1640      p_kpl_id                       IN  NUMBER,
1641      p_cpl_id                       IN  NUMBER,
1642      x_kpl_id                       OUT NOCOPY NUMBER) IS
1643 
1644     l_get_kplv_rec    kplv_rec_type;
1645     l_kplv_rec        kplv_rec_type;
1646     lx_kplv_rec       kplv_rec_type;
1647 
1648     l_return_status        VARCHAR2(1)  default OKL_API.G_RET_STS_SUCCESS;
1649     l_api_name             CONSTANT     varchar2(30) := 'COPY_OKL_K_PARTY_ROLES';
1650     l_api_version          CONSTANT     NUMBER := 1.0;
1651 
1652 Begin
1653     x_return_status := OKL_API.G_RET_STS_SUCCESS;
1654     -- Call start_activity to create savepoint, check compatibility
1655     -- and initialize message list
1656     x_return_status := OKL_API.START_ACTIVITY (
1657                                l_api_name
1658                                ,p_init_msg_list
1659                                ,'_PVT'
1660                                ,x_return_status);
1661     -- Check if activity started successfully
1662     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1663        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1664     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1665        RAISE OKL_API.G_EXCEPTION_ERROR;
1666     END IF;
1667 
1668     l_get_kplv_rec.id := p_kpl_id;
1669     l_kplv_rec := get_kplv_rec(p_kplv_rec => l_get_kplv_rec,
1670 			       x_return_status => x_return_status);
1671     l_kplv_rec.id := p_cpl_id;
1672 
1673     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1674        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1675     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1676        RAISE OKL_API.G_EXCEPTION_ERROR;
1677     END IF;
1678 
1679     OKL_KPL_PVT.insert_row
1680            (p_api_version   => p_api_version,
1681             p_init_msg_list => p_init_msg_list,
1682             x_return_status => x_return_status,
1683             x_msg_count     => x_msg_count,
1684             x_msg_data      => x_msg_data,
1685             p_kplv_rec      => l_kplv_rec,
1686             x_kplv_rec      => lx_kplv_rec);
1687 
1688     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1689        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1690     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1691        RAISE OKL_API.G_EXCEPTION_ERROR;
1692     END IF;
1693     x_kpl_id := lx_kplv_rec.id;
1694 
1695     OKL_API.END_ACTIVITY (x_msg_count,x_msg_data );
1696 
1697     EXCEPTION
1698 
1699     WHEN OKL_API.G_EXCEPTION_ERROR THEN
1700     x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1701                                l_api_name,
1702                                G_PKG_NAME,
1703                                'OKL_API.G_RET_STS_ERROR',
1704                                x_msg_count,
1705                                x_msg_data,
1706                                '_PVT');
1707     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1708     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
1709                               l_api_name,
1710                               G_PKG_NAME,
1711                               'OKL_API.G_RET_STS_UNEXP_ERROR',
1712                               x_msg_count,
1713                               x_msg_data,
1714                               '_PVT');
1715     WHEN OTHERS THEN
1716     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
1717                               l_api_name,
1718                               G_PKG_NAME,
1719                               'OTHERS',
1720                               x_msg_count,
1721                               x_msg_data,
1722                               '_PVT');
1723 End copy_okl_k_party_roles;
1724 --Bug# 4558486
1725 --Bug# 3143522: 11.5.10 Subsidies
1726 --------------------------------------------------------------------------------
1727 -- Start of comments
1728 --
1729 -- Procedure Name  : Catchup_okl_contract_line
1730 -- Description     : Does a catchup for okl_k_lines. This will not be
1731 --                   published
1732 -- Business Rules  :
1733 -- Parameters      :
1734 -- Version         : 1.0
1735 -- Notes           : just calls OKC_COPY_CONTRACT_PUB.copy_components.
1736 -- End of comments
1737 --------------------------------------------------------------------------------
1738 Procedure Catchup_okl_contract_line(
1739   				p_api_version                  IN  NUMBER,
1740     			p_init_msg_list                IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
1741    				x_return_status                OUT NOCOPY VARCHAR2,
1742     			x_msg_count                    OUT NOCOPY NUMBER,
1743     			x_msg_data                     OUT NOCOPY VARCHAR2,
1744 				p_clev_id                       IN  NUMBER,
1745                 p_klev_id                       IN  NUMBER,
1746     			x_clev_rec                     OUT NOCOPY okl_okc_migration_pvt.clev_rec_type,
1747     			x_klev_rec                     OUT NOCOPY klev_rec_type) is
1748 
1749 l_return_status		           VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1750 l_api_name			           CONSTANT VARCHAR2(30) := 'CATCHUP_OKL_CONTRACT_LINE';
1751 l_api_version		           CONSTANT NUMBER	:= 1.0;
1752 l_clev_rec                      clev_rec_type;
1753 l_clev_rec_out                  clev_rec_type;
1754 l_klev_rec                      klev_rec_type;
1755 
1756 begin
1757 -----
1758 -- Catch up shadow for Contract Lines
1759 	l_clev_rec := get_clev_rec(p_clev_id => p_klev_id);
1760  -- get the newly created line record
1761  /*
1762 	IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1763       		RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1764     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1765       		RAISE OKL_API.G_EXCEPTION_ERROR;
1766     END IF;
1767  */
1768     l_klev_rec := get_klev_rec(p_klev_id => p_clev_id);
1769 --get klev record to copy from
1770     l_klev_rec.id := p_klev_id;
1771 
1772 	OKL_CONTRACT_PUB.update_contract_line(
1773                 p_api_version   => p_api_version,
1774     			p_init_msg_list => p_init_msg_list,
1775     			x_return_status => l_return_status,
1776     			x_msg_count     => x_msg_count,
1777     			x_msg_data      => x_msg_data,
1778     			p_clev_rec      => l_clev_rec,
1779     			p_klev_rec      => l_klev_rec,
1780     			x_clev_rec      => l_clev_rec_out,
1781     			x_klev_rec	    => x_klev_rec);
1782        -- check return status
1783         If l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
1784 	       raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1785         Elsif l_return_status = OKL_API.G_RET_STS_ERROR Then
1786 	       raise OKL_API.G_EXCEPTION_ERROR;
1787         End If;
1788 
1789     --Call End Activity
1790         OKL_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
1791 				             x_msg_data		=> x_msg_data);
1792     EXCEPTION
1793     when OKL_API.G_EXCEPTION_ERROR then
1794       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1795 			p_api_name  => l_api_name,
1796 			p_pkg_name  => g_pkg_name,
1797 			p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
1798 			x_msg_count => x_msg_count,
1799 			x_msg_data  => x_msg_data,
1800 			p_api_type  => g_api_type);
1801 
1802     when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
1803       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1804 			p_api_name  => l_api_name,
1805 			p_pkg_name  => g_pkg_name,
1806 			p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1807 			x_msg_count => x_msg_count,
1808 			x_msg_data  => x_msg_data,
1809 			p_api_type  => g_api_type);
1810 
1811     when OTHERS then
1812       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1813 			p_api_name  => l_api_name,
1814 			p_pkg_name  => g_pkg_name,
1815 			p_exc_name  => 'OTHERS',
1816 			x_msg_count => x_msg_count,
1817 			x_msg_data  => x_msg_data,
1818 			p_api_type  => g_api_type);
1819 End CatchUp_okl_Contract_Line;
1820 FUNCTION is_copy_allowed(p_chr_id IN NUMBER,p_sts_code IN VARCHAR2 DEFAULT NULL) RETURN BOOLEAN IS
1821  BEGIN
1822    RETURN(OKC_COPY_CONTRACT_PUB.is_copy_allowed(p_chr_id,p_sts_code));
1823  END is_copy_allowed;
1824 -------
1825 FUNCTION is_subcontract_allowed(p_chr_id IN NUMBER,p_sts_code IN VARCHAR2) RETURN BOOLEAN IS
1826  BEGIN
1827    RETURN(OKC_COPY_CONTRACT_PUB.is_subcontract_allowed(p_chr_id,p_sts_code));
1828  END is_subcontract_allowed;
1829 -----
1830 FUNCTION update_target_contract(p_chr_id IN NUMBER) RETURN BOOLEAN IS
1831  BEGIN
1832    RETURN(OKC_COPY_CONTRACT_PUB.update_target_contract(p_chr_id));
1833  END update_target_contract;
1834 -----
1835 PROCEDURE derive_line_style(p_old_lse_id     IN  NUMBER,
1836                               p_old_jtot_code  IN  VARCHAR2,
1837                               p_new_subclass   IN  VARCHAR2,
1838                               p_new_parent_lse IN  NUMBER,
1839                               x_new_lse_count  OUT NOCOPY NUMBER,
1840                               x_new_lse_ids    OUT NOCOPY VARCHAR2) IS
1841  BEGIN
1842   OKC_COPY_CONTRACT_PVT.derive_line_style(
1843                p_old_lse_id      => p_old_lse_id,
1844                p_old_jtot_code   => p_old_jtot_code,
1845                p_new_subclass    => p_new_subclass,
1846                p_new_parent_lse  => p_new_parent_lse,
1847                x_new_lse_count   => x_new_lse_count,
1848                x_new_lse_ids     => x_new_lse_ids);
1849  END derive_line_style;
1850 --------------------------------------------------------------------------------
1851 -- Start of comments
1852 --
1853 -- Procedure Name  : copy_components
1854 -- Description     : copies components for shadowed contract. will be
1855 --                   published in OKL_COPY_CONTRACTS_PUB
1856 -- Business Rules  :
1857 -- Parameters      :
1858 -- Version         : 1.0
1859 -- Notes           : just calls OKC_COPY_CONTRACT_PUB.copy_components.
1860 -- End of comments
1861 --------------------------------------------------------------------------------
1862 PROCEDURE copy_components(
1863     p_api_version                  IN NUMBER,
1864     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1865     x_return_status                OUT NOCOPY VARCHAR2,
1866     x_msg_count                    OUT NOCOPY NUMBER,
1867     x_msg_data                     OUT NOCOPY VARCHAR2,
1868     p_from_chr_id                  IN NUMBER,
1869     p_to_chr_id	          	       IN NUMBER,
1870     p_contract_number		       IN VARCHAR2,
1871     p_contract_number_modifier     IN VARCHAR2,
1872     p_to_template_yn			   IN VARCHAR2 DEFAULT 'N',
1873     p_copy_reference			   IN VARCHAR2 DEFAULT 'COPY',
1874     p_copy_line_party_yn           IN VARCHAR2,
1875     p_scs_code                     IN VARCHAR2,
1876     p_intent                       IN VARCHAR2,
1877     p_prospect                     IN VARCHAR2,
1878     p_components_tbl			   IN api_components_tbl,
1879     p_lines_tbl				       IN api_lines_tbl,
1880     x_chr_id                       OUT NOCOPY NUMBER) is
1881     l_return_status		           VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1882     l_api_name			           CONSTANT VARCHAR2(30) := 'OKL_COPY_COMPONENTS';
1883     l_api_version		           CONSTANT NUMBER	:= 1.0;
1884 
1885     l_components_tbl api_components_tbl_okc;
1886     l_lines_tbl      api_lines_tbl_okc;
1887 begin
1888 -----
1889 --Call OKL_API.START_ACTIVITY to set savepoints
1890     	l_return_status := OKL_API.START_ACTIVITY( substr(l_api_name,1,26),
1891 	                                               G_PKG_NAME,
1892 	                                               p_init_msg_list,
1893 	                                               G_API_VERSION,
1894 	                                               p_api_version,
1895 	                                               G_SCOPE,
1896                                          	       x_return_status);
1897 
1898  	IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1899       		RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1900     	ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1901       		RAISE OKL_API.G_EXCEPTION_ERROR;
1902     	END IF;
1903 
1904   l_components_tbl := migrate_components_tbl(p_components_tbl);
1905   l_lines_tbl      := migrate_lines_tbl(p_lines_tbl);
1906 --Call OKC_CONTRACT_PUB.copy_components
1907 	OKC_COPY_CONTRACT_PUB.copy_components(
1908     	p_api_version				=> p_api_version,
1909     	p_init_msg_list				=> p_init_msg_list,
1910     	x_return_status				=> l_return_status,
1911     	x_msg_count					=> x_msg_count,
1912     	x_msg_data					=> x_msg_data,
1913     	p_from_chr_id				=> p_from_chr_id,
1914     	p_to_chr_id					=> p_to_chr_id,
1915     	p_contract_number			=> p_contract_number,
1916     	p_contract_number_modifier	=> p_contract_number_modifier,
1917     	p_to_template_yn			=> p_to_template_yn,
1918     	p_copy_reference			=> p_copy_reference,
1919     	p_copy_line_party_yn		=> p_copy_line_party_yn,
1920     	p_scs_code					=> p_scs_code,
1921     	p_intent                    => p_intent,
1922     	p_prospect                  => p_prospect,
1923     	p_components_tbl			=> l_components_tbl,
1924     	p_lines_tbl					=> l_lines_tbl,
1925     	x_chr_id                    => x_chr_id);
1926 
1927       -- check return status
1928         If l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
1929 	       raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1930         Elsif l_return_status = OKL_API.G_RET_STS_ERROR Then
1931 	       raise OKL_API.G_EXCEPTION_ERROR;
1932         End If;
1933 
1934         --Call End Activity
1935         OKL_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
1936 				 x_msg_data		=> x_msg_data);
1937     EXCEPTION
1938     when OKL_API.G_EXCEPTION_ERROR then
1939       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1940 			p_api_name  => l_api_name,
1941 			p_pkg_name  => g_pkg_name,
1942 			p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
1943 			x_msg_count => x_msg_count,
1944 			x_msg_data  => x_msg_data,
1945 			p_api_type  => g_api_type);
1946 
1947     when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
1948       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1949 			p_api_name  => l_api_name,
1950 			p_pkg_name  => g_pkg_name,
1951 			p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1952 			x_msg_count => x_msg_count,
1953 			x_msg_data  => x_msg_data,
1954 			p_api_type  => g_api_type);
1955 
1956     when OTHERS then
1957       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1958 			p_api_name  => l_api_name,
1959 			p_pkg_name  => g_pkg_name,
1960 			p_exc_name  => 'OTHERS',
1961 			x_msg_count => x_msg_count,
1962 			x_msg_data  => x_msg_data,
1963 			p_api_type  => g_api_type);
1964 End copy_components;
1965 
1966 ------------------------------------------------------------------------------
1967 -- PROCEDURE get_sll_rules
1968 --
1969 --  This procedure retrieves all SLL related to given SLH rule under LALEVL Category
1970 --
1971 -- Calls:
1972 -- Called By:
1973 ------------------------------------------------------------------------------
1974    PROCEDURE get_sll_rules(
1975                            x_return_status  OUT NOCOPY VARCHAR2,
1976                            x_msg_count      OUT NOCOPY NUMBER,
1977                            x_msg_data       OUT NOCOPY VARCHAR2,
1978                            p_rgpv_rec       IN  rgpv_rec_type,
1979                            p_rdf_code       IN  VARCHAR2,
1980                            p_slh_id         IN  NUMBER,
1981                            x_rulv_tbl       OUT NOCOPY rulv_tbl_type,
1982                            x_rule_count     OUT NOCOPY NUMBER
1983                           ) IS
1984     CURSOR okc_rulv_csr (p_rgp_id IN NUMBER,
1985                          p_rdf_code IN VARCHAR2,
1986                          p_slh_id   IN NUMBER) IS
1987     SELECT
1988             ID,
1989             OBJECT_VERSION_NUMBER,
1990             SFWT_FLAG,
1991             OBJECT1_ID1,
1992             OBJECT2_ID1,
1993             OBJECT3_ID1,
1994             OBJECT1_ID2,
1995             OBJECT2_ID2,
1996             OBJECT3_ID2,
1997             JTOT_OBJECT1_CODE,
1998             JTOT_OBJECT2_CODE,
1999             JTOT_OBJECT3_CODE,
2000             DNZ_CHR_ID,
2001             RGP_ID,
2002             PRIORITY,
2003             STD_TEMPLATE_YN,
2004             COMMENTS,
2005             WARN_YN,
2006             ATTRIBUTE_CATEGORY,
2007             ATTRIBUTE1,
2008             ATTRIBUTE2,
2009             ATTRIBUTE3,
2010             ATTRIBUTE4,
2011             ATTRIBUTE5,
2012             ATTRIBUTE6,
2013             ATTRIBUTE7,
2014             ATTRIBUTE8,
2015             ATTRIBUTE9,
2016             ATTRIBUTE10,
2017             ATTRIBUTE11,
2018             ATTRIBUTE12,
2019             ATTRIBUTE13,
2020             ATTRIBUTE14,
2021             ATTRIBUTE15,
2022             CREATED_BY,
2023             CREATION_DATE,
2024             LAST_UPDATED_BY,
2025             LAST_UPDATE_DATE,
2026             LAST_UPDATE_LOGIN,
2027             --TEXT,
2028             RULE_INFORMATION_CATEGORY,
2029             RULE_INFORMATION1,
2030             RULE_INFORMATION2,
2031             RULE_INFORMATION3,
2032             RULE_INFORMATION4,
2033             RULE_INFORMATION5,
2034             RULE_INFORMATION6,
2035             RULE_INFORMATION7,
2036             RULE_INFORMATION8,
2037             RULE_INFORMATION9,
2038             RULE_INFORMATION10,
2039             RULE_INFORMATION11,
2040             RULE_INFORMATION12,
2041             RULE_INFORMATION13,
2042             RULE_INFORMATION14,
2043             RULE_INFORMATION15,
2044             TEMPLATE_YN,
2045             ans_set_jtot_object_code,
2046             ans_set_jtot_object_id1,
2047             ans_set_jtot_object_id2,
2048             DISPLAY_SEQUENCE
2049      FROM Okc_Rules_V
2050      WHERE okc_rules_v.rgp_id      = p_rgp_id
2051      AND   okc_rules_v.object2_id1 = p_slh_id
2052      AND   RULE_INFORMATION_CATEGORY = DECODE(p_rdf_code,NULL,RULE_INFORMATION_CATEGORY,p_rdf_code);
2053 
2054      l_rulv_rec                  rulv_rec_type;
2055      i                           NUMBER DEFAULT 0;
2056      l_proc_name                 VARCHAR2(35) := 'GET_SLL_RULES';
2057   BEGIN
2058     IF (G_DEBUG_ENABLED = 'Y') THEN
2059       G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
2060     END IF;
2061 
2062     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2063           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,l_proc_name);
2064     END IF;
2065     -- Get current database values
2066     OPEN okc_rulv_csr (p_rgpv_rec.id,
2067                        p_rdf_code,
2068                        p_slh_id);
2069     LOOP
2070     FETCH okc_rulv_csr INTO
2071               l_rulv_rec.ID,
2072               l_rulv_rec.OBJECT_VERSION_NUMBER,
2073               l_rulv_rec.SFWT_FLAG,
2074               l_rulv_rec.OBJECT1_ID1,
2075               l_rulv_rec.OBJECT2_ID1,
2076               l_rulv_rec.OBJECT3_ID1,
2077               l_rulv_rec.OBJECT1_ID2,
2078               l_rulv_rec.OBJECT2_ID2,
2079               l_rulv_rec.OBJECT3_ID2,
2080               l_rulv_rec.JTOT_OBJECT1_CODE,
2081               l_rulv_rec.JTOT_OBJECT2_CODE,
2082               l_rulv_rec.JTOT_OBJECT3_CODE,
2083               l_rulv_rec.DNZ_CHR_ID,
2084               l_rulv_rec.RGP_ID,
2085               l_rulv_rec.PRIORITY,
2086               l_rulv_rec.STD_TEMPLATE_YN,
2087               l_rulv_rec.COMMENTS,
2088               l_rulv_rec.WARN_YN,
2089               l_rulv_rec.ATTRIBUTE_CATEGORY,
2090               l_rulv_rec.ATTRIBUTE1,
2091               l_rulv_rec.ATTRIBUTE2,
2092               l_rulv_rec.ATTRIBUTE3,
2093               l_rulv_rec.ATTRIBUTE4,
2094               l_rulv_rec.ATTRIBUTE5,
2095               l_rulv_rec.ATTRIBUTE6,
2096               l_rulv_rec.ATTRIBUTE7,
2097               l_rulv_rec.ATTRIBUTE8,
2098               l_rulv_rec.ATTRIBUTE9,
2099               l_rulv_rec.ATTRIBUTE10,
2100               l_rulv_rec.ATTRIBUTE11,
2101               l_rulv_rec.ATTRIBUTE12,
2102               l_rulv_rec.ATTRIBUTE13,
2103               l_rulv_rec.ATTRIBUTE14,
2104               l_rulv_rec.ATTRIBUTE15,
2105               l_rulv_rec.CREATED_BY,
2106               l_rulv_rec.CREATION_DATE,
2107               l_rulv_rec.LAST_UPDATED_BY,
2108               l_rulv_rec.LAST_UPDATE_DATE,
2109               l_rulv_rec.LAST_UPDATE_LOGIN,
2110               --l_rulv_rec.TEXT,
2111               l_rulv_rec.RULE_INFORMATION_CATEGORY,
2112               l_rulv_rec.RULE_INFORMATION1,
2113               l_rulv_rec.RULE_INFORMATION2,
2114               l_rulv_rec.RULE_INFORMATION3,
2115               l_rulv_rec.RULE_INFORMATION4,
2116               l_rulv_rec.RULE_INFORMATION5,
2117               l_rulv_rec.RULE_INFORMATION6,
2118               l_rulv_rec.RULE_INFORMATION7,
2119               l_rulv_rec.RULE_INFORMATION8,
2120               l_rulv_rec.RULE_INFORMATION9,
2121               l_rulv_rec.RULE_INFORMATION10,
2122               l_rulv_rec.RULE_INFORMATION11,
2123               l_rulv_rec.RULE_INFORMATION12,
2124               l_rulv_rec.RULE_INFORMATION13,
2125               l_rulv_rec.RULE_INFORMATION14,
2126               l_rulv_rec.RULE_INFORMATION15,
2127               l_rulv_rec.TEMPLATE_YN,
2128               l_rulv_rec.ans_set_jtot_object_code,
2129               l_rulv_rec.ans_set_jtot_object_id1,
2130               l_rulv_rec.ans_set_jtot_object_id2,
2131               l_rulv_rec.DISPLAY_SEQUENCE ;
2132     EXIT WHEN okc_rulv_csr%NOTFOUND;
2133       i := okc_rulv_csr%RowCount;
2134       x_rulv_tbl(i) := l_rulv_rec;
2135     END LOOP;
2136     CLOSE okc_rulv_csr;
2137     x_rule_count := i;
2138 
2139     RETURN;
2140 
2141    END get_sll_rules;
2142 
2143 ------------------------------------------------------------------------------
2144 -- PROCEDURE sync_slh_sll
2145 --
2146 --  This procedure synchronizes SLH and SLL Rules
2147 --
2148 -- Calls:
2149 -- Called By:
2150 ------------------------------------------------------------------------------
2151 
2152   PROCEDURE sync_slh_sll(
2153                          x_return_status OUT NOCOPY VARCHAR2,
2154                          x_msg_count     OUT NOCOPY NUMBER,
2155                          x_msg_data      OUT NOCOPY VARCHAR2,
2156                          p_new_chr_id    IN  OKC_K_HEADERS_V.ID%TYPE,
2157                          p_old_rgp_id    IN  NUMBER,
2158                          p_new_rgp_id    IN  NUMBER
2159                         ) IS
2160 
2161   l_proc_name   VARCHAR2(35)    := 'SYNC_SLH_SLL';
2162   sync_failed   EXCEPTION;
2163 
2164   x_new_rgpv_rec      rgpv_rec_type;
2165   x_new_slh_rulv_rec  rulv_rec_type;
2166 
2167   x_slh_rulv_tbl      rulv_tbl_type;
2168   x_slh_rule_count    NUMBER;
2169 
2170   x_sll_rulv_tbl      rulv_tbl_type;
2171   x_sll_rule_count    NUMBER;
2172 
2173   x_rulv_rec          rulv_rec_type;
2174 
2175   l_old_rgpv_rec      rgpv_rec_type;
2176   l_slh_rulv_rec      rulv_rec_type;
2177   l_sll_rulv_rec      rulv_rec_type;
2178 
2179   l_rebook_rgp_id NUMBER;
2180   l_orig_rgp_id   NUMBER;
2181 
2182   l_rulv_tbl      rulv_tbl_type;
2183   i               NUMBER := 0;
2184 
2185   CURSOR orig_cle_csr(p_cle_id OKC_K_LINES_V.ID%TYPE) IS
2186   SELECT orig_system_id1
2187   FROM   okc_k_lines_v
2188   WHERE  id = p_cle_id;
2189 
2190   CURSOR del_rgp_csr(p_chr_id OKC_K_HEADERS_V.ID%TYPE,
2191                      p_rgp_id NUMBER) IS
2192   SELECT id
2193   FROM   okc_rule_groups_v
2194   WHERE  dnz_chr_id = p_chr_id
2195   AND    id         = p_rgp_id
2196   AND    rgd_code   = 'LALEVL';
2197 
2198   CURSOR rule_csr(p_rgp_id NUMBER) IS
2199   SELECT id
2200   FROM   okc_rules_v
2201   WHERE  rgp_id = p_rgp_id
2202   --Bug# : 3124577 :11.5.10 Rule migration
2203   AND    rule_information_category IN ('LASLH','LASLL');
2204   --AND    rule_information_category IN ('SLH','SLL');
2205 
2206   BEGIN
2207     IF (G_DEBUG_ENABLED = 'Y') THEN
2208       G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
2209     END IF;
2210     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
2211     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2212           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,l_proc_name);
2213     END IF;
2214 
2215       -- Delete SLH, SLL from Original Contract
2216       i := 1;
2217 
2218       FOR del_rgp_rec IN del_rgp_csr(p_new_chr_id,
2219                                      p_new_rgp_id)
2220       LOOP
2221          FOR rule_rec IN rule_csr(del_rgp_rec.id)
2222          LOOP
2223             l_rulv_tbl(i).id := rule_rec.id;
2224             i := i+ 1;
2225          END LOOP;
2226       END LOOP;
2227 
2228       Okl_Rule_Pub.delete_rule(
2229                                p_api_version    => 1.0,
2230                                p_init_msg_list  => Okc_Api.G_FALSE,
2231                                x_return_status  => x_return_status,
2232                                x_msg_count      => x_msg_count,
2233                                x_msg_data       => x_msg_data,
2234                                p_rulv_tbl       => l_rulv_tbl
2235                               );
2236       IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2237         RAISE sync_failed;
2238       END IF;
2239 
2240       l_old_rgpv_rec.id := p_old_rgp_id;
2241       --
2242       -- Get SLH Rule from OLD Contract
2243       --
2244       Okl_Rule_Apis_Pvt.Get_Contract_Rules(
2245                                            p_api_version    => 1.0,
2246                                            p_init_msg_list  => Okl_Api.G_FALSE,
2247                                            p_rgpv_rec       => l_old_rgpv_rec,
2248                                            --Bug# 3124577: 11.5.10 Rule Migration
2249                                            p_rdf_code       => 'LASLH',
2250                                            --p_rdf_code       => 'SLH',
2251                                            x_return_status  => x_return_status,
2252                                            x_msg_count      => x_msg_count,
2253                                            x_msg_data       => x_msg_data,
2254                                            x_rulv_tbl       => x_slh_rulv_tbl,
2255                                            x_rule_count     => x_slh_rule_count
2256                                           );
2257       IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2258          RAISE sync_failed;
2259       END IF;
2260 
2261       --x_slh_rulv_tbl_out := x_slh_rulv_tbl;
2262       --x_slh_count        := x_slh_rule_count;
2263 
2264       FOR i IN 1..x_slh_rule_count
2265       LOOP
2266          l_slh_rulv_rec            := x_slh_rulv_tbl(i);
2267          l_slh_rulv_rec.rgp_id     := p_new_rgp_id;
2268          l_slh_rulv_rec.dnz_chr_id := p_new_chr_id;
2269 
2270          Okl_Rule_Pub.create_rule(
2271                                   p_api_version     => 1.0,
2272                                   p_init_msg_list   => Okc_Api.G_FALSE,
2273                                   x_return_status   => x_return_status,
2274                                   x_msg_count       => x_msg_count,
2275                                   x_msg_data        => x_msg_data,
2276                                   p_rulv_rec        => l_slh_rulv_rec,
2277                                   x_rulv_rec        => x_new_slh_rulv_rec
2278                                  );
2279          IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2280              x_return_status := Okc_Api.G_RET_STS_ERROR;
2281              RAISE sync_failed;
2282          END IF;
2283 
2284          --
2285          -- Get SLL Rules from Header for a SLH
2286          --
2287          get_sll_rules(
2288                        x_return_status  => x_return_status,
2289                        x_msg_count      => x_msg_count,
2290                        x_msg_data       => x_msg_data,
2291                        p_rgpv_rec       => l_old_rgpv_rec,
2292                        --Bug# 3124577 : 11.5.10 Rule Migration
2293                        p_rdf_code       => 'LASLL',
2294                        --p_rdf_code       => 'SLL',
2295                        p_slh_id         => x_slh_rulv_tbl(i).id,
2296                        x_rulv_tbl       => x_sll_rulv_tbl,
2297                        x_rule_count     => x_sll_rule_count
2298                       );
2299          IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2300             RAISE sync_failed;
2301          END IF;
2302 
2303          --x_sll_rulv_tbl_out := x_sll_rulv_tbl;
2304          --x_sll_count        := x_sll_rule_count;
2305 
2306          -- Create a SLL rule under SLH created above
2307          FOR i IN 1..x_sll_rule_count
2308          LOOP
2309 
2310             l_sll_rulv_rec             := x_sll_rulv_tbl(i);
2311             l_sll_rulv_rec.rgp_id      := p_new_rgp_id;
2312             l_sll_rulv_rec.object2_id1 := x_new_slh_rulv_rec.id;
2313             l_sll_rulv_rec.dnz_chr_id  := p_new_chr_id;
2314 
2315             Okl_Rule_Pub.create_rule(
2316                                      p_api_version     => 1.0,
2317                                      p_init_msg_list   => Okc_Api.G_FALSE,
2318                                      x_return_status   => x_return_status,
2319                                      x_msg_count       => x_msg_count,
2320                                      x_msg_data        => x_msg_data,
2321                                      p_rulv_rec        => l_sll_rulv_rec,
2322                                      x_rulv_rec        => x_rulv_rec
2323                                     );
2324                IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2325                    x_return_status := Okc_Api.G_RET_STS_ERROR;
2326                    RAISE sync_failed;
2327                END IF;
2328          END LOOP; -- SLL
2329 
2330       END LOOP; -- SLH
2331 
2332   EXCEPTION
2333     WHEN sync_failed THEN
2334        x_return_status := Okc_Api.G_RET_STS_ERROR;
2335   END sync_slh_sll;
2336 -- Start Bug 2376998
2337 ------------------------------------------------------------------------------
2338 -- PROCEDURE link_slh_sll
2339 --
2340 --  This procedure links SLH and SLL by calling sync_slh_sll at LINE level
2341 --
2342 -- Calls:
2343 -- Called By:
2344 ------------------------------------------------------------------------------
2345 
2346   PROCEDURE link_slh_sll(
2347                          x_return_status OUT NOCOPY VARCHAR2,
2348                          x_msg_count     OUT NOCOPY NUMBER,
2349                          x_msg_data      OUT NOCOPY VARCHAR2,
2350                          p_old_chr_id    IN  OKC_K_HEADERS_V.ID%TYPE,
2351                          p_new_cle_id    IN  OKC_K_LINES_V.ID%TYPE,
2352                          p_new_chr_id    IN  OKC_K_HEADERS_V.ID%TYPE
2353                         ) IS
2354 
2355  link_failed EXCEPTION;
2356 
2357  CURSOR lalevl_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE,
2358                     p_cle_id OKC_K_LINES_V.ID%TYPE) IS
2359  SELECT id,
2360         cle_id
2361  FROM   okc_rule_groups_v
2362  WHERE  dnz_chr_id = p_chr_id
2363  AND    cle_id     = p_cle_id
2364  AND    rgd_code   = 'LALEVL';
2365 
2366  CURSOR old_lalevl_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE,
2367                         p_cle_id OKC_K_LINES_V.ID%TYPE) IS
2368  SELECT id
2369  FROM   okc_rule_groups_v
2370  WHERE  dnz_chr_id = p_chr_id
2371  AND    rgd_code   = 'LALEVL'
2372  AND    (cle_id    = p_cle_id
2373          OR ( cle_id IS NULL
2374               AND
2375               p_cle_id IS NULL));
2376 
2377  CURSOR old_line_csr (p_cle_id OKC_K_LINES_V.ID%TYPE) IS
2378  SELECT orig_system_id1
2379  FROM   OKC_K_LINES_V
2380  WHERE  id = p_cle_id;
2381 
2382  l_old_lalevl_id NUMBER;
2383  l_new_lalevl_id NUMBER;
2384  l_old_cle_id    OKC_K_LINES_V.ID%TYPE;
2385  l_new_cle_id    OKC_K_LINES_V.ID%TYPE;
2386 
2387  BEGIN
2388 
2389    FOR new_lalevl_rec IN lalevl_csr(p_new_chr_id,
2390                                     p_new_cle_id)
2391    LOOP
2392       l_new_lalevl_id := new_lalevl_rec.id;
2393       l_new_cle_id    := new_lalevl_rec.cle_id;
2394 
2395       l_old_cle_id    := NULL;
2396       IF (l_new_cle_id IS NOT NULL) THEN
2397          OPEN old_line_csr (l_new_cle_id);
2398          FETCH old_line_csr INTO l_old_cle_id;
2399          CLOSE old_line_csr;
2400       END IF;
2401 
2402       OPEN old_lalevl_csr(p_old_chr_id,
2403                           l_old_cle_id);
2404       FETCH old_lalevl_csr INTO l_old_lalevl_id;
2405       CLOSE old_lalevl_csr;
2406 
2407       sync_slh_sll(
2408                    x_return_status => x_return_status,
2409                    x_msg_count     => x_msg_count,
2410                    x_msg_data      => x_msg_data,
2411                    p_new_chr_id    => p_new_chr_id,
2412                    p_old_rgp_id    => l_old_lalevl_id,
2413                    p_new_rgp_id    => l_new_lalevl_id
2414                   );
2415       IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2416          RAISE Okl_Api.G_EXCEPTION_ERROR;
2417       END IF;
2418    END LOOP;
2419 
2420  EXCEPTION
2421    WHEN link_failed THEN
2422       x_return_status := OKC_API.G_RET_STS_ERROR;
2423  END link_slh_sll;
2424 
2425 -- End Bug 2376998
2426 ------------------------------------------------------------------------------
2427 -- PROCEDURE link_slh_sll
2428 --
2429 --  This procedure links SLH and SLL by calling sync_slh_sll at header
2430 --
2431 -- Calls:
2432 -- Called By:
2433 ------------------------------------------------------------------------------
2434 
2435   PROCEDURE link_slh_sll(
2436                          x_return_status OUT NOCOPY VARCHAR2,
2437                          x_msg_count     OUT NOCOPY NUMBER,
2438                          x_msg_data      OUT NOCOPY VARCHAR2,
2439                          p_old_chr_id    IN OKC_K_HEADERS_V.ID%TYPE,
2440                          p_new_chr_id    IN OKC_K_HEADERS_V.ID%TYPE
2441                         ) IS
2442 
2443  link_failed EXCEPTION;
2444 
2445  CURSOR lalevl_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE) IS
2446  SELECT id,
2447         cle_id
2448  FROM   okc_rule_groups_v
2449  WHERE  dnz_chr_id = p_chr_id
2450  AND    cle_id     IS NULL       -- Bug 2376998
2451  AND    rgd_code   = 'LALEVL';
2452 
2453  CURSOR old_lalevl_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE,
2454                         p_cle_id OKC_K_LINES_V.ID%TYPE) IS
2455  SELECT id
2456  FROM   okc_rule_groups_v
2457  WHERE  dnz_chr_id = p_chr_id
2458  AND    rgd_code   = 'LALEVL'
2459  AND    (cle_id    = p_cle_id
2460          OR ( cle_id IS NULL
2461               AND
2462               p_cle_id IS NULL));
2463 
2464  CURSOR old_line_csr (p_cle_id OKC_K_LINES_V.ID%TYPE) IS
2465  SELECT orig_system_id1
2466  FROM   OKC_K_LINES_V
2467  WHERE  id = p_cle_id;
2468 
2469  l_old_lalevl_id NUMBER;
2470  l_new_lalevl_id NUMBER;
2471  l_old_cle_id    OKC_K_LINES_V.ID%TYPE;
2472  l_new_cle_id    OKC_K_LINES_V.ID%TYPE;
2473 
2474  BEGIN
2475 
2476    FOR new_lalevl_rec IN lalevl_csr(p_new_chr_id)
2477    LOOP
2478       l_new_lalevl_id := new_lalevl_rec.id;
2479       l_new_cle_id    := new_lalevl_rec.cle_id;
2480 
2481       l_old_cle_id    := NULL;
2482       IF (l_new_cle_id IS NOT NULL) THEN
2483          OPEN old_line_csr (l_new_cle_id);
2484          FETCH old_line_csr INTO l_old_cle_id;
2485          CLOSE old_line_csr;
2486       END IF;
2487 
2488       OPEN old_lalevl_csr(p_old_chr_id,
2489                           l_old_cle_id);
2490       FETCH old_lalevl_csr INTO l_old_lalevl_id;
2491       CLOSE old_lalevl_csr;
2492 
2493       sync_slh_sll(
2494                    x_return_status => x_return_status,
2495                    x_msg_count     => x_msg_count,
2496                    x_msg_data      => x_msg_data,
2497                    p_new_chr_id    => p_new_chr_id,
2498                    p_old_rgp_id    => l_old_lalevl_id,
2499                    p_new_rgp_id    => l_new_lalevl_id
2500                   );
2501       IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2502          raise OKL_API.G_EXCEPTION_ERROR;
2503       END IF;
2504    END LOOP;
2505 
2506  EXCEPTION
2507    WHEN link_failed THEN
2508       x_return_status := OKC_API.G_RET_STS_ERROR;
2509  END link_slh_sll;
2510 --------------------------------------------------------------------------------
2511 -- Start of comments
2512 --Bug# 2522268
2513 -- Procedure Name  : cleanup_abandoned_lines
2514 -- Description     : Local Procedure Will be called from copy_contract
2515 --                   to delete any ABANDONED lines copied on to the contract
2516 -- Business Rules  : Takes in chr_id of the copied contract and physically
2517 --                   deletes(delete cascade) all the lines which appear as
2518 --                   logically deleted on parent (source) contract.
2519 -- Parameters      :
2520 -- Version         : 1.0
2521 -- Notes           :
2522 -- End of comments
2523 --------------------------------------------------------------------------------
2524 PROCEDURE cleanup_abandoned_lines(p_api_version     IN NUMBER,
2525                                   p_init_msg_list   IN VARCHAR2,
2526                                   x_return_status   OUT NOCOPY VARCHAR2,
2527                                   x_msg_count       OUT NOCOPY NUMBER,
2528                                   x_msg_data        OUT NOCOPY VARCHAR2,
2529                                   p_chr_id          IN NUMBER) is
2530 --Cursor for abandoned parent top lines
2531   CURSOR abnd_tls_csr(p_copied_chr_id IN NUMBER) IS
2532   Select cle.id,
2533          cle.orig_system_id1
2534   from   OKC_K_LINES_B     cle_parent,
2535          OKC_LINE_STYLES_B cle_parent_lse,
2536          OKC_K_LINES_B     cle
2537   WHERE  cle_parent.id = cle.orig_system_id1
2538   AND    cle_parent.lse_id = cle_parent_lse.id
2539   AND    cle_parent.sts_code = 'ABANDONED'
2540   AND    cle_parent_lse.lse_type = 'TLS'
2541   AND    cle.dnz_chr_id = p_copied_chr_id;
2542 
2543 --Cursor for abandoned orphan sub-lines
2544   CURSOR abnd_sls_csr(p_copied_chr_id IN NUMBER) IS
2545   Select cle.id,
2546          cle.orig_system_id1
2547   from   OKC_K_LINES_B     cle_parent,
2548          OKC_LINE_STYLES_B cle_parent_lse,
2549          OKC_K_LINES_B     cle
2550   WHERE  cle_parent.id = cle.orig_system_id1
2551   AND    cle_parent.lse_id = cle_parent_lse.id
2552   AND    cle_parent.sts_code = 'ABANDONED'
2553   AND    cle_parent_lse.lse_type = 'SLS'
2554   AND    cle.dnz_chr_id = p_copied_chr_id;
2555 
2556   l_cle_id           OKC_K_LINES_B.ID%TYPE;
2557   l_source_cle_id    OKC_K_LINES_B.ID%TYPE;
2558   l_chr_id           OKC_K_HEADERS_B.ID%TYPE;
2559 
2560 Begin
2561    x_return_status := OKL_API.G_RET_STS_SUCCESS;
2562    l_chr_id := p_chr_id;
2563    OPEN abnd_tls_csr(p_copied_chr_id => l_chr_id);
2564    LOOP
2565        FETCH abnd_tls_csr into l_cle_id, l_source_cle_id;
2566        EXIT WHEN abnd_tls_csr%NOTFOUND;
2567        OKL_CONTRACT_PUB.delete_contract_line(
2568            p_api_version    => p_api_version,
2569            p_init_msg_list  => p_init_msg_list,
2570            x_return_status  => x_return_status,
2571            x_msg_count      => x_msg_count,
2572            x_msg_data       => x_msg_data,
2573            p_line_id        => l_cle_id);
2574        If x_return_status <> OKL_API.G_RET_STS_SUCCESS Then
2575            RAISE G_EXCEPTION_HALT_PROCESS;
2576        End If;
2577    END LOOP;
2578    CLOSE abnd_tls_csr;
2579 
2580    OPEN abnd_sls_csr(p_copied_chr_id => l_chr_id);
2581    LOOP
2582        FETCH abnd_sls_csr into l_cle_id, l_source_cle_id;
2583        EXIT WHEN abnd_sls_csr%NOTFOUND;
2584        OKL_CONTRACT_PUB.delete_contract_line(
2585            p_api_version    => p_api_version,
2586            p_init_msg_list  => p_init_msg_list,
2587            x_return_status  => x_return_status,
2588            x_msg_count      => x_msg_count,
2589            x_msg_data       => x_msg_data,
2590            p_line_id        => l_cle_id);
2591        If x_return_status <> OKL_API.G_RET_STS_SUCCESS Then
2592            RAISE G_EXCEPTION_HALT_PROCESS;
2593        End If;
2594    END LOOP;
2595    CLOSE abnd_sls_csr;
2596    EXCEPTION
2597    WHEN G_EXCEPTION_HALT_PROCESS Then
2598        --just return back the return status with message stack;
2599        Null;
2600        If abnd_tls_csr%ISOPEN Then
2601            CLOSE abnd_tls_csr;
2602        End If;
2603        If abnd_sls_csr%ISOPEN Then
2604            CLOSE abnd_sls_csr;
2605        End If;
2606    WHEN OTHERS Then
2607        If abnd_tls_csr%ISOPEN Then
2608            CLOSE abnd_tls_csr;
2609        End If;
2610        If abnd_sls_csr%ISOPEN Then
2611            CLOSE abnd_sls_csr;
2612        End If;
2613        x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
2614 End cleanup_abandoned_lines;
2615 
2616 --
2617 --Bug# 2522268 End
2618 --
2619 
2620 --------------------------------------------------------------------------------
2621 -- Start of comments
2622 --Bug# 2522268
2623 -- Procedure Name  : cleanup_rollover_lines
2624 -- Description     : Local Procedure Will be called from copy_contract
2625 --                   to delete any Rollover lines copied on to the contract
2626 -- Business Rules  : Takes in chr_id of the copied contract and physically
2627 --                   deletes(delete cascade) all the lines which appear as
2628 --                   logically deleted on parent (source) contract.
2629 -- Parameters      :
2630 -- Version         : 1.0
2631 -- Notes           :
2632 -- End of comments
2633 --------------------------------------------------------------------------------
2634 PROCEDURE cleanup_rollover_lines(p_api_version     IN NUMBER,
2635                                   p_init_msg_list   IN VARCHAR2,
2636                                   x_return_status   OUT NOCOPY VARCHAR2,
2637                                   x_msg_count       OUT NOCOPY NUMBER,
2638                                   x_msg_data        OUT NOCOPY VARCHAR2,
2639                                   p_chr_id          IN NUMBER) is
2640 --Cursor for rollover parent top lines
2641   CURSOR roll_tls_csr(p_copied_chr_id IN NUMBER) IS
2642   Select cle.id, cle.orig_system_id1
2643   from   OKC_K_LINES_B     cle_parent,
2644          OKC_LINE_STYLES_B cle_parent_lse,
2645          OKC_K_LINES_B     cle,
2646 		 okl_k_lines kle_parent
2647   WHERE  cle_parent.id = kle_parent.id
2648   AND    cle_parent.id = cle.orig_system_id1
2649   AND    cle_parent.lse_id = cle_parent_lse.id
2650   AND    kle_parent.fee_type = 'ROLLOVER'
2651   AND    cle_parent_lse.lse_type = 'TLS'
2652   AND    cle.dnz_chr_id = p_copied_chr_id;
2653 
2654   l_cle_id           OKC_K_LINES_B.ID%TYPE;
2655   l_source_cle_id    OKC_K_LINES_B.ID%TYPE;
2656   l_chr_id           OKC_K_HEADERS_B.ID%TYPE;
2657 
2658 Begin
2659    x_return_status := OKL_API.G_RET_STS_SUCCESS;
2660    l_chr_id := p_chr_id;
2661    OPEN roll_tls_csr(p_copied_chr_id => l_chr_id);
2662    LOOP
2663        FETCH roll_tls_csr into l_cle_id, l_source_cle_id;
2664        EXIT WHEN roll_tls_csr%NOTFOUND;
2665        OKL_CONTRACT_PUB.delete_contract_line(
2666            p_api_version    => p_api_version,
2667            p_init_msg_list  => p_init_msg_list,
2668            x_return_status  => x_return_status,
2669            x_msg_count      => x_msg_count,
2670            x_msg_data       => x_msg_data,
2671            p_line_id        => l_cle_id);
2672        If x_return_status <> OKL_API.G_RET_STS_SUCCESS Then
2673            RAISE G_EXCEPTION_HALT_PROCESS;
2674        End If;
2675    END LOOP;
2676    CLOSE roll_tls_csr;
2677 
2678    EXCEPTION
2679    WHEN G_EXCEPTION_HALT_PROCESS Then
2680        --just return back the return status with message stack;
2681        Null;
2682        If roll_tls_csr%ISOPEN Then
2683            CLOSE roll_tls_csr;
2684        End If;
2685    WHEN OTHERS Then
2686        If roll_tls_csr%ISOPEN Then
2687            CLOSE roll_tls_csr;
2688        End If;
2689        x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
2690 End cleanup_rollover_lines;
2691 
2692 
2693 -- bug 3630858
2694 --------------------------------------------------------------------------------
2695 -- Start of comments
2696 --
2697 -- Procedure Name  : copy_product_options
2698 -- Description     : copies contract product option.
2699 --                   published in OKL_COPY_CONTRACTS_PUB
2700 -- Business Rules  :
2701 -- Parameters      :
2702 -- Version         : 1.0
2703 -- Notes           :
2704 -- End of comments
2705 --------------------------------------------------------------------------------
2706 PROCEDURE  copy_product_options
2707 	        	     (p_api_version          IN NUMBER,
2708 			     p_init_msg_list         IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2709 			     x_return_status         OUT NOCOPY VARCHAR2,
2710 			     x_msg_count             OUT NOCOPY NUMBER,
2711 			     x_msg_data              OUT NOCOPY VARCHAR2,
2712 			     p_new_khr_id            IN NUMBER,
2713 			     p_cspv_id               IN NUMBER,
2714 			     x_cspv_id               OUT NOCOPY NUMBER
2715 			     ) IS
2716 --local variables
2717 l_return_status		VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2718 l_api_name		CONSTANT VARCHAR2(30) := 'COPY_PRODUCT_OPTIONS';
2719 l_api_version		CONSTANT NUMBER	:= 1.0;
2720 l_cspv_id               NUMBER;
2721 p_cspv_rec              cspv_rec_type;
2722 l_cspv_rec              cspv_rec_type;
2723 lx_cspv_rec             cspv_rec_type;
2724 
2725 
2726 Begin
2727     x_return_status := OKL_API.G_RET_STS_SUCCESS;
2728     -- Call start_activity to create savepoint, check compatibility
2729     -- and initialize message list
2730     x_return_status := OKL_API.START_ACTIVITY (
2731                                l_api_name
2732                                ,p_init_msg_list
2733                                ,'_PVT'
2734                                ,x_return_status);
2735     -- Check if activity started successfully
2736     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2737        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2738     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2739        RAISE OKL_API.G_EXCEPTION_ERROR;
2740     END IF;
2741 
2742     l_cspv_id := p_cspv_id;
2743     l_cspv_rec := get_cspv_rec(p_cspv_rec_id        => l_cspv_id,
2744 			                   x_return_status  => x_return_status
2745 			                   );
2746 
2747     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2748        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2749     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2750        RAISE OKL_API.G_EXCEPTION_ERROR;
2751     END IF;
2752 
2753     --create selected product options
2754     l_cspv_rec.khr_id := p_new_khr_id;
2755     l_cspv_rec.id := null;
2756 
2757     OKL_CSP_PVT.insert_row
2758            (p_api_version   => p_api_version,
2759             p_init_msg_list => p_init_msg_list,
2760             x_return_status => x_return_status,
2761             x_msg_count     => x_msg_count,
2762             x_msg_data      => x_msg_data,
2763             p_cspv_rec      => l_cspv_rec,
2764             x_cspv_rec     =>  lx_cspv_rec);
2765 
2766     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2767        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2768     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2769        RAISE OKL_API.G_EXCEPTION_ERROR;
2770     END IF;
2771 
2772     x_cspv_id := lx_cspv_rec.id;
2773 
2774     OKL_API.END_ACTIVITY (x_msg_count,x_msg_data );
2775 
2776     EXCEPTION
2777 
2778     WHEN OKL_API.G_EXCEPTION_ERROR THEN
2779     x_return_status := OKL_API.HANDLE_EXCEPTIONS(
2780                                l_api_name,
2781                                G_PKG_NAME,
2782                                'OKL_API.G_RET_STS_ERROR',
2783                                x_msg_count,
2784                                x_msg_data,
2785                                '_PVT');
2786     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2787     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
2788                               l_api_name,
2789                               G_PKG_NAME,
2790                               'OKL_API.G_RET_STS_UNEXP_ERROR',
2791                               x_msg_count,
2792                               x_msg_data,
2793                               '_PVT');
2794     WHEN OTHERS THEN
2795     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
2796                               l_api_name,
2797                               G_PKG_NAME,
2798                               'OTHERS',
2799                               x_msg_count,
2800                               x_msg_data,
2801                               '_PVT');
2802 
2803 END copy_product_options;
2804 
2805 -- bug 3630858 end
2806 
2807 
2808 --------------------------------------------------------------------------------
2809 -- Start of comments
2810 --
2811 -- Procedure Name  : copy_contract
2812 -- Description     : copies contract. will be
2813 --                   published in OKL_COPY_CONTRACTS_PUB
2814 -- Business Rules  :
2815 -- Parameters      :
2816 -- Version         : 1.0
2817 -- Notes           :
2818 -- End of comments
2819 --------------------------------------------------------------------------------
2820 PROCEDURE copy_contract(
2821             p_api_version                  IN NUMBER,
2822             p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2823             x_return_status                OUT NOCOPY VARCHAR2,
2824             x_msg_count                    OUT NOCOPY NUMBER,
2825             x_msg_data                     OUT NOCOPY VARCHAR2,
2826             p_commit        			   IN VARCHAR2 DEFAULT 'F',
2827             p_chr_id                       IN NUMBER,
2828             p_contract_number		       IN VARCHAR2,
2829             p_contract_number_modifier     IN VARCHAR2,
2830             p_to_template_yn			   IN VARCHAR2 DEFAULT 'N',
2831             p_renew_ref_yn                 IN VARCHAR2,
2832             p_copy_lines_yn                IN VARCHAR2,
2833             p_override_org		           IN VARCHAR2 DEFAULT 'N',
2834             x_chr_id                       OUT NOCOPY NUMBER) IS
2835 --local variables
2836 l_return_status		VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2837 l_api_name			CONSTANT VARCHAR2(30) := 'OKL_COPY_CONTRACT';
2838 l_api_version		CONSTANT NUMBER	:= 1.0;
2839 l_chrv_rec			chrv_rec_type;
2840 l_chrv_rec_out		chrv_rec_type;
2841 l_khrv_rec			khrv_rec_type;
2842 l_khrv_rec_out		khrv_rec_type;
2843 l_clev_rec			clev_rec_type;
2844 l_klev_rec			klev_rec_type;
2845 l_klev_rec_out		klev_rec_type;
2846 l_chr_id            NUMBER;
2847 l_chr_id_2          NUMBER;
2848 l_clev_id           NUMBER;
2849 l_klev_id           NUMBER;
2850 l_clev_rec_out		clev_rec_type;
2851 
2852  Cursor  l_clev_cur (l_chr_id IN Number) is
2853  Select         Orig_System_Id1,id
2854  From   OKC_K_LINES_V
2855  Where  dnz_chr_id = l_chr_id;
2856 
2857 --This is modified to take care of the patch in OKC which has included
2858 --original source line id with the new line id
2859 
2860 --bug # 2659592
2861 --with overide flag as 'N' okc_copy api sets the
2862 --okc_vontext.organization id to profile value OE: Item validation Organization
2863 --which could be different from OKL: Contract Items Inventory Organization
2864 --there by causing incompatible organization error while copy
2865 --thus OKL copy will always call OKC copy with p_override_org as 'Y'.
2866 l_override_org Varchar2(1) default 'Y';
2867 
2868 --Bug# 3143522 : 11.5.10 Subsidies
2869 --cursor to get header party payment dtls
2870     cursor l_hdrpyd_csr (p_old_chr_id in number,
2871                          p_new_chr_id in number) is
2872     select pyd_old.id pyd_id,
2873            cpl_new.id cpl_id
2874     from   okl_party_payment_dtls pyd_old,
2875            okc_k_party_roles_b    cpl_old,
2876            okc_k_party_roles_b    cpl_new
2877     where  pyd_old.cpl_id            =  cpl_old.id
2878     and    cpl_old.chr_id            =  p_old_chr_id
2879     and    cpl_old.dnz_chr_id        =  p_old_chr_id
2880     and    cpl_new.chr_id            =  p_new_chr_id
2881     and    cpl_new.dnz_chr_id        =  p_new_chr_id
2882     and    cpl_old.rle_code          =  cpl_new.rle_code
2883     and    cpl_old.jtot_object1_code =  cpl_new.jtot_object1_code
2884     and    cpl_old.object1_id1       =  cpl_new.object1_id1
2885     and    cpl_old.object1_id2       =  cpl_new.object1_id2;
2886 
2887 
2888     cursor l_clepyd_csr (p_old_chr_id in number,
2889                          p_new_chr_id in number,
2890                          p_old_cle_id in number,
2891                          p_new_cle_id in number
2892                          ) is
2893     select pyd_old.id pyd_id,
2894            cpl_new.id cpl_id
2895     from   okl_party_payment_dtls pyd_old,
2896            okc_k_party_roles_b    cpl_old,
2897            okc_k_party_roles_b    cpl_new
2898     where  pyd_old.cpl_id            =  cpl_old.id
2899     and    cpl_old.cle_id            =  p_old_cle_id
2900     and    cpl_old.dnz_chr_id        =  p_old_chr_id
2901     and    cpl_new.cle_id            =  p_new_cle_id
2902     and    cpl_new.dnz_chr_id        =  p_new_chr_id
2903     and    cpl_old.rle_code          =  cpl_new.rle_code
2904     and    cpl_old.jtot_object1_code =  cpl_new.jtot_object1_code
2905     and    cpl_old.object1_id1       =  cpl_new.object1_id1
2906     and    cpl_old.object1_id2       =  cpl_new.object1_id2;
2907 
2908     -- Bug 3630858
2909     cursor l_product_options_csr(p_old_chr_id number) IS
2910     select cspv.id
2911     from OKL_SLCTD_OPTNS_V cspv
2912     where cspv.khr_id = p_old_chr_id;
2913 
2914     l_pyd_id    okl_party_payment_dtls.ID%TYPE;
2915     lx_pyd_id   okl_party_payment_dtls.ID%TYPE;
2916     l_cpl_id    okc_k_party_roles_b.ID%TYPE;
2917     -- Bug 3630858
2918     l_cspv_id   okl_slctd_optns_v.ID%TYPE;
2919     lx_cspv_id  okl_slctd_optns_v.ID%TYPE;
2920 
2921 ---------------------
2922 --Bug# 3143522
2923 -----------------------
2924 Begin
2925 -----
2926 --Call OKL_API.START_ACTIVITY to set savepoints
2927 --dbms_output.put_line('before call to start activity '||to_char(p_chr_id));
2928 --dbms_output.put_line(l_api_name||G_SCOPE);
2929     	l_return_status := OKL_API.START_ACTIVITY( substr(l_api_name,1,26),
2930 	                                               G_PKG_NAME,
2931 	                                               p_init_msg_list,
2932 	                                               G_API_VERSION,
2933 	                                               p_api_version,
2934 	                                               G_SCOPE,
2935                                          	       x_return_status);
2936     --dbms_output.put_line('after call to start activity '||to_char(p_chr_id));
2937  	IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2938       		RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2939  	ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2940       		RAISE OKL_API.G_EXCEPTION_ERROR;
2941  	END IF;
2942     	--Call OKC_COPY_CONTRACT_PUB.Copy_Contract
2943         --dbms_output.put_line('before okc_copy p_chr_id '||to_char(p_chr_id));
2944     	OKC_COPY_CONTRACT_PUB.copy_contract(
2945     			p_api_version              => p_api_version,
2946     			p_init_msg_list            => p_init_msg_list,
2947     			x_return_status            => l_return_status,
2948     			x_msg_count	               => x_msg_count,
2949     			x_msg_data 	               => x_msg_data ,
2950     			p_commit 	               => p_commit,
2951     			p_chr_id	               => p_chr_id,
2952     			p_contract_number          => p_contract_number,
2953     			p_contract_number_modifier => P_contract_number_modifier,
2954     			p_to_template_yn           => p_to_template_yn,
2955     			p_renew_ref_yn             => p_renew_ref_yn,
2956     			p_copy_lines_yn	           => p_copy_lines_yn,
2957     			--bug # 2659592
2958     			--p_override_org	           => p_override_org,
2959                 p_override_org             => l_override_org,
2960     			x_chr_id	               => x_chr_id);
2961 
2962        --dbms_output.put_line('Chr id after copy to okc header '||to_char(x_chr_id));
2963        --dbms_output.put_line('Return Status copy to okc header '||l_return_status||' '||x_msg_data);
2964         -- check return status
2965         If l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
2966 	       raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2967         Elsif l_return_status = OKL_API.G_RET_STS_ERROR Then
2968 	       raise OKL_API.G_EXCEPTION_ERROR;
2969         End If;
2970 	--------------------------------------------------------------------------------
2971 	--Catch Up Shadow for Contract Header :
2972     l_chr_id_2 := x_chr_id;
2973 	l_chrv_rec := get_chrv_rec(l_chr_id_2);
2974     l_khrv_rec := get_khrv_rec(p_chr_id);
2975     --dbms_output.put_line(' chr id after fetch '||l_chrv_rec.id);
2976     --dbms_output.put_line(' khr id after fetch '||l_khrv_rec.id);
2977     --If OKL does not have a shadow do not proceed to
2978     --catchup on shadow
2979     If l_khrv_rec.id = OKL_API.G_MISS_NUM then
2980         null;
2981     Else
2982         l_khrv_rec.id := x_chr_id;
2983 	-- Create record into okl_contract_header
2984 	OKL_CONTRACT_PUB.update_contract_header(
2985 			p_api_version	=> p_api_version,
2986 			p_init_msg_list => p_init_msg_list,
2987 			x_return_status => l_return_status,
2988 			x_msg_count  	=> x_msg_count,
2989 			x_msg_data   	=> x_msg_data,
2990             p_restricted_update => OKL_API.G_FALSE,
2991 			p_chrv_rec   	=> l_chrv_rec,
2992 			p_khrv_rec   	=> l_khrv_rec,
2993 			x_chrv_rec      => l_chrv_rec_out,
2994 			x_khrv_rec      => l_khrv_rec_out);
2995     --dbms_output.put_line('return status '||l_return_status);
2996     --dbms_output.put_line('After create okl record okc hdr id'||to_char(l_chrv_rec_out.id));
2997     -- check return status
2998     If l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
2999         raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3000     Elsif l_return_status = OKL_API.G_RET_STS_ERROR Then
3001         raise OKL_API.G_EXCEPTION_ERROR;
3002     End If;
3003 
3004     --------------------------------------------------------------------------------------
3005     --BUG# 3143522 : 11.5.10 Subsidies - copy party payment details
3006     --------------------------------------------------------------------------------------
3007     open l_hdrpyd_csr (p_new_chr_id => x_chr_id,
3008                         p_old_chr_id => p_chr_id);
3009 
3010     loop
3011         fetch l_hdrpyd_csr into l_pyd_id, l_cpl_id;
3012         Exit when l_hdrpyd_csr%NOTFOUND;
3013         -------------------------------------------------
3014         --call local api to copy party payment details
3015         -------------------------------------------------
3016         copy_party_pymt_dtls
3017                 (p_api_version          => p_api_version,
3018                 p_init_msg_list         => p_init_msg_list,
3019                 x_return_status         => x_return_status,
3020                 x_msg_count             => x_msg_count,
3021                 x_msg_data              => x_msg_data,
3022                 p_pyd_id                => l_pyd_id,
3023                 p_cpl_id                => l_cpl_id,
3024                 x_pyd_id                => lx_pyd_id);
3025 
3026 
3027 
3028         IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3029            RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3030         ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3031            RAISE OKL_API.G_EXCEPTION_ERROR;
3032         END IF;
3033 
3034     End Loop;
3035     Close l_hdrpyd_csr;
3036 
3037     --------------------------------------------------------------------------------------
3038     --BUG# 3143522 : 11.5.10 Subsidies - copy party payment details
3039     --------------------------------------------------------------------------------------
3040 
3041         --call local API for creation of party payment details
3042     IF p_copy_lines_yn = 'Y' Then
3043     -- Catch up shadow for Contract Lines
3044 	   Open l_clev_cur(x_chr_id);
3045 	   Loop
3046 		  Fetch l_clev_cur into l_clev_id,l_klev_id;
3047           --dbms_output.put_line('Before Catchup Contract Lines ');
3048 		  Exit when l_clev_cur%NotFound;
3049 		  Catchup_okl_contract_line(
3050     				p_api_version		=> p_api_version,
3051         			p_init_msg_list		=> p_init_msg_list,
3052 			        x_return_status		=> l_return_status,
3053    			        x_msg_count			=> x_msg_count,
3054    			        x_msg_data			=> x_msg_data,
3055 			        p_clev_id			=> l_clev_id,
3056                                 p_klev_id           => l_klev_id,
3057 			        x_clev_rec			=> l_clev_rec_out,
3058 		                x_klev_rec			=> l_klev_rec_out
3059 				);
3060          -- check return status
3061         If l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
3062             raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3063         Elsif l_return_status = OKL_API.G_RET_STS_ERROR Then
3064             raise OKL_API.G_EXCEPTION_ERROR;
3065         End If;
3066 
3067             --------------------------------------------------------------------------------------
3068             --BUG# 3143522 : 11.5.10 Subsidies - copy party payment details
3069             --------------------------------------------------------------------------------------
3070             open l_clepyd_csr (p_new_chr_id => x_chr_id,
3071                                p_old_chr_id => p_chr_id,
3072                                p_new_cle_id  => l_klev_id,
3073                                p_old_cle_id  => l_clev_id);
3074 
3075             loop
3076                 fetch l_clepyd_csr into l_pyd_id, l_cpl_id;
3077                 Exit when l_clepyd_csr%NOTFOUND;
3078                 -------------------------------------------------
3079                 --call local api to copy party payment details
3080                 -------------------------------------------------
3081                 copy_party_pymt_dtls
3082                         (p_api_version          => p_api_version,
3083                         p_init_msg_list         => p_init_msg_list,
3084                         x_return_status         => x_return_status,
3085                         x_msg_count             => x_msg_count,
3086                         x_msg_data              => x_msg_data,
3087                         p_pyd_id                => l_pyd_id,
3088                         p_cpl_id                => l_cpl_id,
3089                         x_pyd_id                => lx_pyd_id);
3090 
3091 
3092 
3093                 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3094                    RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3095                 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3096                    RAISE OKL_API.G_EXCEPTION_ERROR;
3097                 END IF;
3098 
3099             End Loop;
3100             Close l_clepyd_csr;
3101 
3102             --------------------------------------------------------------------------------------
3103             --BUG# 3143522 : 11.5.10 Subsidies - copy party payment details
3104             --------------------------------------------------------------------------------------
3105 	   End Loop;
3106      Close l_clev_cur;
3107 
3108      --
3109      --Bug# 2522268 : Physically delete all the lines with source lines having
3110      --               abandoned status
3111      cleanup_abandoned_lines(p_api_version     => p_api_version,
3112                              p_init_msg_list   => p_init_msg_list,
3113                              x_return_status   => x_return_Status,
3114                              x_msg_count       => x_msg_count,
3115                              x_msg_data        => x_msg_data,
3116                              p_chr_id          => x_chr_id);
3117      If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
3118          raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3119      Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
3120          raise OKL_API.G_EXCEPTION_ERROR;
3121      End If;
3122      --
3123      --Bug# 2522268 End
3124      --
3125 
3126    End If;
3127    End If;
3128 
3129    --
3130    -- Special Process for LALEVL (SLH, SLL) rules
3131    --
3132 
3133    link_slh_sll(
3134                 x_return_status => l_return_status,
3135                 x_msg_count     => x_msg_count,
3136                 x_msg_data      => x_msg_data,
3137                 p_old_chr_id    => p_chr_id,
3138                 p_new_chr_id    => x_chr_id
3139                );
3140 
3141 
3142     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
3143        RAISE OKL_API.G_EXCEPTION_ERROR;
3144     END IF;
3145 	--Call OKC_COPY_CONTRACT_PUB.Copy_Components
3146     -- do not do this again as this might already be done as part of OKC_COPY_CONTRACT
3147     /*
3148 	OKC_COPY_CONTRACT_PUB.Copy_Components(
3149             p_api_version               =>  p_api_version,
3150             p_init_msg_list             =>  p_init_msg_list,
3151             x_return_status             =>  l_return_status,
3152             x_msg_count                 =>  x_msg_count,
3153             x_msg_data                  =>  x_msg_data,
3154             p_from_chr_id               =>  p_chr_id,
3155             p_to_chr_id	          	    =>  x_chr_id,
3156             p_contract_number		    =>  p_contract_number,
3157             p_contract_number_modifier  =>  p_contract_number_modifier,
3158             p_to_template_yn			=>  p_to_template_yn,
3159             p_copy_reference			=>  p_copy_reference,
3160             p_copy_line_party_yn        =>  p_copy_line_party_yn,
3161             p_scs_code                  =>  p_scs_code,
3162             p_intent                    =>  p_intent,
3163             p_prospect                  =>  p_prospect,
3164             p_components_tbl			=>  p_components_tbl,
3165             p_lines_tbl				    =>  p_lines_tbl,
3166             x_chr_id                    =>  l_chr_id);
3167         -- check return status
3168         If l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
3169 	       raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3170         Elsif l_return_status = OKL_API.G_RET_STS_ERROR Then
3171 	       raise OKL_API.G_EXCEPTION_ERROR;
3172         End If;
3173     */
3174 
3175 
3176 	  --------------------------------------------------------------------------------------
3177                 --BUG# 3630858 : copy product options
3178            --------------------------------------------------------------------------------------
3179 	 open l_product_options_csr(p_old_chr_id => p_chr_id);
3180 
3181 	 loop
3182 	     fetch l_product_options_csr into l_cspv_id;
3183 	     Exit when l_product_options_csr%NOTFOUND;
3184 	     ----------------------------------------------------
3185 	     --call local api to copy contract product options
3186 	     ----------------------------------------------------
3187 	     copy_product_options
3188 		     (p_api_version          => p_api_version,
3189 		     p_init_msg_list         => p_init_msg_list,
3190 		     x_return_status         => x_return_status,
3191 		     x_msg_count             => x_msg_count,
3192 		     x_msg_data              => x_msg_data,
3193 		     p_new_khr_id            => x_chr_id,
3194 		     p_cspv_id               => l_cspv_id,
3195 		     x_cspv_id               => lx_cspv_id
3196 		     );
3197 
3198 	     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3199 		RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3200 	     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3201 		RAISE OKL_API.G_EXCEPTION_ERROR;
3202 	     END IF;
3203 
3204 	 End Loop;
3205      Close l_product_options_csr;
3206 
3207 	--Call End Activity
3208 	OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3209 	EXCEPTION
3210 	     WHEN OKL_API.G_EXCEPTION_ERROR THEN
3211              If l_hdrpyd_csr%ISOPEN then
3212                  close l_hdrpyd_csr;
3213              End If;
3214              If l_clepyd_csr%ISOPEN then
3215                  close l_clepyd_csr;
3216              End If;
3217            --dbms_output.put_line('identified error');
3218 	       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3219 	       (substr(l_api_name,1,26),
3220 	        G_PKG_NAME,
3221 	        'OKL_API.G_RET_STS_ERROR',
3222 	        x_msg_count,
3223 	        x_msg_data,
3224 	        G_SCOPE);
3225 		-- Resetting the global transaction id.
3226 		okc_cvm_pvt.g_trans_id := 'XXX';
3227 	     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3228              If l_hdrpyd_csr%ISOPEN then
3229                  close l_hdrpyd_csr;
3230              End If;
3231              If l_clepyd_csr%ISOPEN then
3232                  close l_clepyd_csr;
3233              End If;
3234 
3235 
3236            --dbms_output.put_line('unexpected error :'||l_api_name||G_SCOPE);
3237 	       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3238 	       (substr(l_api_name,1,26),
3239 	        G_PKG_NAME,
3240 	        'OKL_API.G_RET_STS_UNEXP_ERROR',
3241 	        x_msg_count,
3242 	        x_msg_data,
3243 	        G_SCOPE);
3244 		-- Resetting the global transaction id.
3245 		okc_cvm_pvt.g_trans_id := 'XXX';
3246 	     WHEN OTHERS THEN
3247 	      -- store SQL error message on message stack for caller
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 
3255              If l_product_options_csr%ISOPEN then
3256 	            close l_product_options_csr;
3257 	     End If;
3258 
3259             --dbms_output.put_line('when others error');
3260            --dbms_output.put_line('Error '||SQLERRM);
3261 	      OKL_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
3262 	       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3263 	       (substr(l_api_name,1,26),
3264 	        G_PKG_NAME,
3265 	        'OTHERS',
3266 	        x_msg_count,
3267 	        x_msg_data,
3268 	        G_SCOPE);
3269 		-- Resetting the global transaction id.
3270 		okc_cvm_pvt.g_trans_id := 'XXX';
3271 END COPY_CONTRACT;
3272 --------------------------------------------------------------------------------
3273 -- Start of comments
3274 --
3275 -- Procedure Name  : copy_contract_lines
3276 -- Description     : copies contract lines for a shadowed contract. will be
3277 --                   published in OKL_COPY_CONTRACTS_PUB
3278 -- Business Rules  :
3279 -- Parameters      :
3280 -- Version         : 1.0
3281 -- Notes           :
3282 -- End of comments
3283 --------------------------------------------------------------------------------
3284 Procedure copy_contract_lines(
3285     	p_api_version                  IN NUMBER,
3286     	p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3287     	x_return_status                OUT NOCOPY VARCHAR2,
3288     	x_msg_count                    OUT NOCOPY NUMBER,
3289     	x_msg_data                     OUT NOCOPY VARCHAR2,
3290     	p_from_cle_id                  IN NUMBER,
3291     	p_to_cle_id                    IN NUMBER,
3292     	p_to_chr_id                    IN NUMBER,
3293     	p_to_template_yn	           IN VARCHAR2,
3294     	p_copy_reference	           IN VARCHAR2,
3295     	p_copy_line_party_yn           IN VARCHAR2,
3296     	p_renew_ref_yn                 IN VARCHAR2,
3297     	x_cle_id		               OUT NOCOPY NUMBER) is
3298 
3299 l_return_status	    VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3300 l_cle_id			NUMBER := OKL_API.G_MISS_NUM;
3301 l_cle_id_out		NUMBER := OKL_API.G_MISS_NUM;
3302 l_api_name			CONSTANT VARCHAR2(30) := 'OKL_COPY_CONTRACT_LINES';
3303 l_api_version		CONSTANT NUMBER	:= 1.0;
3304 l_clev_rec_out		clev_rec_type;
3305 x_klev_rec_out		klev_rec_type;
3306 l_old_chr_id            OKC_K_HEADERS_V.ID%TYPE;
3307 CURSOR	    c_lines(p_from_cle_id NUMBER) IS
3308 SELECT 	   level,
3309 		    id,
3310 		    chr_id,
3311 		    cle_id,
3312 	        dnz_chr_id,
3313             orig_system_id1
3314     FROM 	okc_k_lines_b
3315     CONNECT BY  PRIOR id = cle_id
3316     START WITH  id = p_from_cle_id;
3317 c_lines_rec c_lines%rowtype;
3318 
3319 CURSOR old_chr_csr(p_cle_id OKC_K_LINES_V.ID%TYPE) IS
3320 SELECT dnz_chr_id
3321 FROM   okc_k_lines_v
3322 WHERE  id = p_cle_id;
3323 
3324 -----------------------------------------------------------
3325 --Bug# 3143522 : Subsidies copy party payment details
3326 ----------------------------------------------------------
3327    cursor l_clepyd_csr (p_old_chr_id in number,
3328                          p_new_chr_id in number,
3329                          p_old_cle_id in number,
3330                          p_new_cle_id in number
3331                          ) is
3332     select pyd_old.id pyd_id,
3333            cpl_new.id cpl_id
3334     from   okl_party_payment_dtls pyd_old,
3335            okc_k_party_roles_b    cpl_old,
3336            okc_k_party_roles_b    cpl_new
3337     where  pyd_old.cpl_id            =  cpl_old.id
3338     and    cpl_old.cle_id            =  p_old_cle_id
3339     and    cpl_old.dnz_chr_id        =  p_old_chr_id
3340     and    cpl_new.cle_id            =  p_new_cle_id
3341     and    cpl_new.dnz_chr_id        =  p_new_chr_id
3342     and    cpl_old.rle_code          =  cpl_new.rle_code
3343     and    cpl_old.jtot_object1_code =  cpl_new.jtot_object1_code
3344     and    cpl_old.object1_id1       =  cpl_new.object1_id1
3345     and    cpl_old.object1_id2       =  cpl_new.object1_id2;
3346 
3347     l_pyd_id    okl_party_payment_dtls.ID%TYPE;
3348     lx_pyd_id   okl_party_payment_dtls.ID%TYPE;
3349     l_cpl_id    okc_k_party_roles_b.ID%TYPE;
3350 -----------------------------------------------------------
3351 --Bug# 3143522 : Subsidies copy party payment details
3352 ----------------------------------------------------------
3353 
3354 --furong 4350255, find out the hdr id for a cle id --
3355 CURSOR hdr_exist_csr (p_chr_id NUMBER, p_cle_id NUMBER) IS
3356 SELECT id
3357 FROM okl_party_payment_hdr
3358 WHERE dnz_chr_id = p_chr_id
3359 AND cle_id = p_cle_id;
3360 
3361 l_old_hdr_id NUMBER;
3362 l_new_hdr_id NUMBER;
3363 
3364 /* not used --
3365 CURSOR dtls_exist_csr (p_chr_id NUMBER, p_cle_id NUMBER) IS
3366 SELECT id
3367 FROM okl_party_payment_dtls
3368 WHERE payment_hdr_id IN
3369 (SELECT id
3370  FROM okl_party_payment_hdr
3371  WHERE dnz_chr_id = p_chr_id
3372  AND cle_id = p_cle_id);
3373 
3374 --l_old_hdr_id NUMBER;
3375 --l_new_hdr_id NUMBER;
3376 
3377 l_old_dtl_id NUMBER;
3378 l_new_dtl_id NUMBER;
3379 */
3380 
3381 -- find out payment details, headers and vendors for a cle_id --
3382 cursor l_clepyd_pt_csr (p_old_chr_id in number,
3383                         p_new_chr_id in number,
3384                      	p_old_cle_id in number,
3385                      	p_new_cle_id in number,
3386 						p_hdr_id     in number
3387                      	) is
3388     select pyd_old.id pyd_id,
3389 		   pyd_old.payment_hdr_id,
3390            cpl_new.id cpl_id
3391     from   okl_party_payment_dtls pyd_old,
3392            okc_k_party_roles_b    cpl_old,
3393            okc_k_party_roles_b    cpl_new,
3394 		   okl_party_payment_hdr  hdr
3395     where  pyd_old.cpl_id            =  cpl_old.id
3396     and    cpl_old.cle_id            =  p_old_cle_id
3397     and    cpl_old.dnz_chr_id        =  p_old_chr_id
3398     and    cpl_new.cle_id            =  p_new_cle_id
3399     and    cpl_new.dnz_chr_id        =  p_new_chr_id
3400     and    cpl_old.rle_code          =  cpl_new.rle_code
3401     and    cpl_old.jtot_object1_code =  cpl_new.jtot_object1_code
3402     and    cpl_old.object1_id1       =  cpl_new.object1_id1
3403     and    cpl_old.object1_id2       =  cpl_new.object1_id2
3404 	and    hdr.id = pyd_old.payment_hdr_id
3405 	and    hdr.id = p_hdr_id;
3406 
3407     l_pt_pyd_id    okl_party_payment_dtls.ID%TYPE;
3408     lx_pt_pyd_id   okl_party_payment_dtls.ID%TYPE;
3409     l_pt_cpl_id    okc_k_party_roles_b.ID%TYPE;
3410 	l_payment_hdr_id okl_party_payment_dtls.PAYMENT_HDR_ID%TYPE;
3411 
3412 -- end furong  4350255
3413 
3414   --Bug# 4899328
3415   l_new_chr_id okc_k_headers_b.id%type;
3416 Begin
3417 ------
3418 	-- call START_ACTIVITY to create savepoint, check compatibility
3419     -- and initialize message list
3420 	l_return_status := OKL_API.START_ACTIVITY( substr(l_api_name,1,26),
3421 	                                           G_PKG_NAME,
3422 	                                           p_init_msg_list,
3423 	                                           G_API_VERSION,
3424 	                                           p_api_version,
3425 	                                           G_SCOPE,
3426                                          	   x_return_status);
3427 	IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3428       		RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3429     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3430       		RAISE OKL_API.G_EXCEPTION_ERROR;
3431     END IF;
3432 	--Call OKC_COPY_CONTRACT_PUB.copy_contract_lines
3433 	OKC_COPY_CONTRACT_PUB.copy_contract_lines(p_api_version			=> P_api_version,
3434 											  p_init_msg_list		=> p_init_msg_list,
3435 											  x_return_status		=> l_return_status,
3436 											  x_msg_count			=> x_msg_count,
3437 											  x_msg_data			=> x_msg_data,
3438 											  p_from_cle_id			=> p_from_cle_id,
3439 											  p_to_cle_id			=> p_to_cle_id,
3440 											  p_to_chr_id			=> p_to_chr_id,
3441 											  p_to_template_yn		=> p_to_template_yn,
3442 											  p_copy_reference		=> p_copy_reference,
3443 											  p_copy_line_party_yn 	=> p_copy_line_party_yn,
3444 											  p_renew_ref_yn 		=> p_renew_ref_yn,
3445 											  x_cle_id 				=> x_cle_id);
3446 
3447         -- check return status
3448         If l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
3449 	       raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3450         Elsif l_return_status = OKL_API.G_RET_STS_ERROR Then
3451 	       raise OKL_API.G_EXCEPTION_ERROR;
3452         End If;
3453 
3454         -- Get Old Chr id from New Chr id
3455         OPEN old_chr_csr(p_from_cle_id);
3456         FETCH old_chr_csr INTO l_old_chr_id;
3457         IF old_chr_csr%NOTFOUND THEN
3458            RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3459         END IF;
3460         CLOSE old_chr_csr;
3461 
3462         --Bug# 4899328
3463         -- p_to_chr_id will be null when copying only sub-lines
3464         -- so fetch new chr_id from p_to_cle_id
3465         l_new_chr_id := p_to_chr_id;
3466         IF l_new_chr_id IS NULL AND p_to_cle_id IS NOT NULL THEN
3467           OPEN old_chr_csr(p_to_cle_id);
3468           FETCH old_chr_csr INTO l_new_chr_id;
3469           IF old_chr_csr%NOTFOUND THEN
3470             RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3471           END IF;
3472           CLOSE old_chr_csr;
3473         END IF;
3474         --Bug# 4899328
3475 
3476         --catch up the shadow
3477         Open c_lines(x_cle_id);
3478         Loop
3479             Fetch c_lines into c_lines_rec;
3480             Exit when c_lines%NotFound;
3481 
3482                 --Catch up shadow for contract line
3483                 Catchup_okl_contract_line(
3484 		              p_api_version		=> p_api_version,
3485 			          p_init_msg_list	=> p_init_msg_list,
3486    				      x_return_status	=> l_return_status,
3487  			          x_msg_count		=> x_msg_count,
3488     			      x_msg_data		=> x_msg_data,
3489                       p_clev_id			=> c_lines_rec.orig_system_id1,
3490                       p_klev_id         => c_lines_rec.id,
3491     			      x_clev_rec		=> l_clev_rec_out,
3492     			      x_klev_rec		=> x_klev_rec_out
3493 				);
3494 
3495 			-- check return status
3496             If l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
3497 	           raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3498             Elsif l_return_status = OKL_API.G_RET_STS_ERROR Then
3499 	           raise OKL_API.G_EXCEPTION_ERROR;
3500             End If;
3501             --------------------------------------------------------------------------------
3502             --bug# 3143522 : fixed as part of this -payments can be at subline level
3503             --------------------------------------------------------------------------------
3504             link_slh_sll(
3505                          x_return_status => l_return_status,
3506                          x_msg_count     => x_msg_count,
3507                          x_msg_data      => x_msg_data,
3508                          p_old_chr_id    => l_old_chr_id,
3509                          --p_new_cle_id    => x_cle_id,            -- Bug 2376998
3510                          p_new_cle_id    => c_lines_rec.id,            -- Bug 2376998
3511                          p_new_chr_id    => l_new_chr_id           --Bug# 4899328
3512                         );
3513 			IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
3514                 RAISE OKL_API.G_EXCEPTION_ERROR;
3515             END IF;
3516             --------------------------------------------------------------------------------------
3517             --BUG# 3143522 : 11.5.10 Subsidies - copy party payment details
3518             --------------------------------------------------------------------------------------
3519 
3520    		    --furong 4350255 copy each payment hdr for this cle id
3521 			--return new hdr id for details copy
3522 			--if non-passthru, do the old logic --
3523 			l_old_hdr_id := null;
3524 			OPEN hdr_exist_csr (p_chr_id => l_old_chr_id,
3525 				 			    p_cle_id => c_lines_rec.orig_system_id1);
3526 			LOOP
3527 			  FETCH hdr_exist_csr INTO l_old_hdr_id;
3528 			  EXIT WHEN hdr_exist_csr%NOTFOUND;
3529 			  -- For the passthru, do the following copy
3530 			  copy_party_pymt_hdr
3531                         (p_api_version          => p_api_version,
3532                         p_init_msg_list         => p_init_msg_list,
3533                         x_return_status         => x_return_status,
3534                         x_msg_count             => x_msg_count,
3535                         x_msg_data              => x_msg_data,
3536                         p_chr_id                => c_lines_rec.dnz_chr_id,
3537                         p_cle_id                => c_lines_rec.id,
3538 						p_pph_id            	=> l_old_hdr_id,
3539                         x_pph_id                => l_new_hdr_id);
3540 
3541               IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3542                  RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3543               ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3544                  RAISE OKL_API.G_EXCEPTION_ERROR;
3545 			  END IF;
3546 
3547 			  --Check dtls exists for this hdr, if yes, do the copy --
3548 			  OPEN l_clepyd_pt_csr (p_new_chr_id  => c_lines_rec.dnz_chr_id,
3549                               	    p_old_chr_id  => l_old_chr_id,
3550                               		p_new_cle_id  => c_lines_rec.id,
3551                               		p_old_cle_id  => c_lines_rec.orig_system_id1,
3552 									p_hdr_id      => l_old_hdr_id);
3553 			  LOOP
3554 				FETCH l_clepyd_pt_csr INTO l_pt_pyd_id,l_payment_hdr_id,l_pt_cpl_id;
3555 				EXIT WHEN l_clepyd_pt_csr%NOTFOUND;
3556 
3557 				IF (l_pt_pyd_id IS NOT NULL) THEN
3558 				  copy_party_pymt_dtls
3559                         (p_api_version          => p_api_version,
3560                         p_init_msg_list         => p_init_msg_list,
3561                         x_return_status         => x_return_status,
3562                         x_msg_count             => x_msg_count,
3563                         x_msg_data              => x_msg_data,
3564                         p_pyd_id                => l_pt_pyd_id,
3565                         p_cpl_id                => l_pt_cpl_id,
3566 						p_pph_id                => l_new_hdr_id,
3567                         x_pyd_id                => lx_pt_pyd_id);
3568 
3569                   IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3570                     RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3571                   ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3572                     RAISE OKL_API.G_EXCEPTION_ERROR;
3573 				  END IF;
3574 
3575 			  	END IF; --l_pt_pyd_id IS NOT NULL ...--
3576 
3577 			  END LOOP;
3578 			  CLOSE l_clepyd_pt_csr;
3579 
3580 			END LOOP;
3581 			CLOSE hdr_exist_csr;
3582 
3583 			-- For those non-passthru cases, do the following copy --
3584 			IF (l_old_hdr_id IS NULL) THEN
3585 			  open l_clepyd_csr (p_new_chr_id => c_lines_rec.dnz_chr_id,
3586                                p_old_chr_id => l_old_chr_id,
3587                                p_new_cle_id  => c_lines_rec.id,
3588                                p_old_cle_id  => c_lines_rec.orig_system_id1);
3589 
3590               loop
3591                 fetch l_clepyd_csr into l_pyd_id, l_cpl_id;
3592                 Exit when l_clepyd_csr%NOTFOUND;
3593 				    -------------------------------------------------
3594                 --call local api to copy party payment details
3595                 -------------------------------------------------
3596 
3597                 copy_party_pymt_dtls
3598                         (p_api_version          => p_api_version,
3599                         p_init_msg_list         => p_init_msg_list,
3600                         x_return_status         => x_return_status,
3601                         x_msg_count             => x_msg_count,
3602                         x_msg_data              => x_msg_data,
3603                         p_pyd_id                => l_pyd_id,
3604                         p_cpl_id                => l_cpl_id,
3605                         x_pyd_id                => lx_pyd_id);
3606 
3607                 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3608                    RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3609                 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3610                    RAISE OKL_API.G_EXCEPTION_ERROR;
3611                 END IF;
3612 
3613               End Loop;
3614               Close l_clepyd_csr;
3615 			END IF; -- if l_old_hdr_id IS NULL
3616 
3617 			--furong 4350255 end copy hdr and(or) details --
3618             --------------------------------------------------------------------------------------
3619             --BUG# 3143522 : 11.5.10 Subsidies - copy party payment details
3620             --------------------------------------------------------------------------------------
3621 
3622         End Loop;
3623         Close c_lines;
3624 
3625         --
3626         -- Special Process for LALEVL (SLH, SLL) rules
3627         --
3628 
3629 
3630        /*---------Commented as this code has been moved up to run for all sub-lines too
3631         -- Get Old Chr id from New Chr id
3632         --OPEN old_chr_csr(p_from_cle_id);
3633         --FETCH old_chr_csr INTO l_old_chr_id;
3634         --IF old_chr_csr%NOTFOUND THEN
3635            --RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3636         --END IF;
3637         --CLOSE old_chr_csr;
3638 
3639         --link_slh_sll(
3640                      --x_return_status => l_return_status,
3641                      --x_msg_count     => x_msg_count,
3642                      --x_msg_data      => x_msg_data,
3643                      --p_old_chr_id    => l_old_chr_id,
3644                      --p_new_cle_id    => x_cle_id,            -- Bug 2376998
3645                      --p_new_chr_id    => p_to_chr_id
3646                     --);
3647 
3648 
3649          --IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
3650             --RAISE OKL_API.G_EXCEPTION_ERROR;
3651          --END IF;
3652 
3653        ---------Commented as this code has been moved up to run for all sub-lines too-----*/
3654 
3655 	--Call End Activity
3656 	OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3657 	EXCEPTION
3658 
3659 	     WHEN OKL_API.G_EXCEPTION_ERROR THEN
3660              If l_clepyd_csr%ISOPEN then
3661                  close l_clepyd_csr;
3662              End If;
3663 	       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3664 	       (substr(l_api_name,1,26),
3665 	        G_PKG_NAME,
3666 	        'OKL_API.G_RET_STS_ERROR',
3667 	        x_msg_count,
3668 	        x_msg_data,
3669 	        G_SCOPE);
3670 		-- Resetting the global transaction id.
3671 		okc_cvm_pvt.g_trans_id := 'XXX';
3672 	     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3673              If l_clepyd_csr%ISOPEN then
3674                  close l_clepyd_csr;
3675              End If;
3676 
3677 	       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3678 	       (substr(l_api_name,1,26),
3679 	        G_PKG_NAME,
3680 	        'OKL_API.G_RET_STS_UNEXP_ERROR',
3681 	        x_msg_count,
3682 	        x_msg_data,
3683 	        G_SCOPE);
3684 		-- Resetting the global transaction id.
3685 		okc_cvm_pvt.g_trans_id := 'XXX';
3686 	     WHEN OTHERS THEN
3687              If l_clepyd_csr%ISOPEN then
3688                  close l_clepyd_csr;
3689              End If;
3690 
3691 	      -- store SQL error message on message stack for caller
3692 	      OKL_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
3693 	       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3694 	       (substr(l_api_name,1,26),
3695 	        G_PKG_NAME,
3696 	        'OTHERS',
3697 	        x_msg_count,
3698 	        x_msg_data,
3699 	        G_SCOPE);
3700 		-- Resetting the global transaction id.
3701 		okc_cvm_pvt.g_trans_id := 'XXX';
3702 End Copy_Contract_Lines;
3703 
3704 --------------------------------------------------------------------------------
3705 -- Start of comments
3706 --
3707 -- Procedure Name  : copy_rules
3708 -- Description     : copies contract lines for a shadowed contract. will be
3709 --                   published in OKL_COPY_CONTRACTS_PUB
3710 -- Business Rules  :
3711 -- Parameters      :
3712 -- Version         : 1.0
3713 -- Notes           :
3714 -- End of comments
3715 --------------------------------------------------------------------------------
3716 PROCEDURE copy_rules(
3717     p_api_version                  IN NUMBER,
3718     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3719     x_return_status                OUT NOCOPY VARCHAR2,
3720     x_msg_count                    OUT NOCOPY NUMBER,
3721     x_msg_data                     OUT NOCOPY VARCHAR2,
3722     p_rgp_id                  	   IN NUMBER,
3723     p_cle_id                       IN NUMBER DEFAULT OKL_API.G_MISS_NUM,
3724     p_chr_id                       IN NUMBER DEFAULT OKL_API.G_MISS_NUM,
3725     p_to_template_yn			   IN VARCHAR2,
3726     x_rgp_id		           OUT NOCOPY NUMBER) is
3727 l_return_status	    VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3728 l_api_name			CONSTANT VARCHAR2(30) := 'OKL_COPY_RULES';
3729 l_api_version		CONSTANT NUMBER	:= 1.0;
3730 begin
3731 -----
3732     -- call START_ACTIVITY to create savepoint, check compatibility
3733     -- and initialize message list
3734 	l_return_status := OKL_API.START_ACTIVITY( substr(l_api_name,1,26),
3735 	                                           G_PKG_NAME,
3736 	                                           p_init_msg_list,
3737 	                                           G_API_VERSION,
3738 	                                           p_api_version,
3739 	                                           G_SCOPE,
3740                                          	   x_return_status);
3741 	IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3742       		RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3743     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3744       		RAISE OKL_API.G_EXCEPTION_ERROR;
3745     END IF;
3746     --call OKC_COPY_CONTRACT_PUB.copy_rules
3747     OKC_COPY_CONTRACT_PUB.copy_rules(
3748 		p_api_version		=>	p_api_version,
3749     	p_init_msg_list     =>  p_init_msg_list,
3750     	x_return_status		=>  x_return_status,
3751     	x_msg_count         =>	x_msg_count,
3752     	x_msg_data          =>	x_msg_data,
3753     	p_rgp_id            =>	p_rgp_id,
3754     	p_cle_id            =>	p_cle_id,
3755     	p_chr_id            =>	p_chr_id,
3756     	p_to_template_yn	=>	p_to_template_yn,
3757     	x_rgp_id			=>	x_rgp_id
3758 		);
3759   -- check return status
3760         If l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
3761 	       raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3762         Elsif l_return_status = OKL_API.G_RET_STS_ERROR Then
3763 	       raise OKL_API.G_EXCEPTION_ERROR;
3764         End If;
3765 	--Call End Activity
3766 	OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3767 	EXCEPTION
3768 	     WHEN OKL_API.G_EXCEPTION_ERROR THEN
3769 	       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3770 	       (substr(l_api_name,1,26),
3771 	        G_PKG_NAME,
3772 	        'OKL_API.G_RET_STS_ERROR',
3773 	        x_msg_count,
3774 	        x_msg_data,
3775 	        G_SCOPE);
3776 		-- Resetting the global transaction id.
3777 		okc_cvm_pvt.g_trans_id := 'XXX';
3778 	     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3779 	       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3780 	       (substr(l_api_name,1,26),
3781 	        G_PKG_NAME,
3782 	        'OKL_API.G_RET_STS_UNEXP_ERROR',
3783 	        x_msg_count,
3784 	        x_msg_data,
3785 	        G_SCOPE);
3786 		-- Resetting the global transaction id.
3787 		okc_cvm_pvt.g_trans_id := 'XXX';
3788 	     WHEN OTHERS THEN
3789 	      -- store SQL error message on message stack for caller
3790 	      OKL_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
3791 	       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3792 	       (substr(l_api_name,1,26),
3793 	        G_PKG_NAME,
3794 	        'OTHERS',
3795 	        x_msg_count,
3796 	        x_msg_data,
3797 	        G_SCOPE);
3798 		-- Resetting the global transaction id.
3799 		okc_cvm_pvt.g_trans_id := 'XXX';
3800 end copy_rules;
3801 ----
3802 --------------------------------------------------------------------------------
3803 -- Start of comments
3804 --
3805 -- Procedure Name  : copy_party_roles
3806 -- Description     : copies party_roles for a shadowed contract. will be
3807 --                   published in OKL_COPY_CONTRACTS_PUB
3808 -- Business Rules  :
3809 -- Parameters      :
3810 -- Version         : 1.0
3811 -- Notes           :
3812 -- End of comments
3813 --------------------------------------------------------------------------------
3814 
3815   PROCEDURE copy_party_roles(
3816     p_api_version                  IN NUMBER,
3817     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3818     x_return_status                OUT NOCOPY VARCHAR2,
3819     x_msg_count                    OUT NOCOPY NUMBER,
3820     x_msg_data                     OUT NOCOPY VARCHAR2,
3821     p_cpl_id                  	IN NUMBER,
3822     p_cle_id                       IN NUMBER DEFAULT OKL_API.G_MISS_NUM,
3823     p_chr_id                       IN NUMBER DEFAULT OKL_API.G_MISS_NUM,
3824     P_rle_code                     IN VARCHAR2,
3825     x_cpl_id		           	OUT NOCOPY NUMBER) IS
3826 
3827     l_api_name     				CONSTANT VARCHAR2(30) := 'OKL_COPY_PARTY_ROLES';
3828     l_return_status         		VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3829 
3830    -------------------------------------------------------
3831    --Bug# 3143522 : 11.5.10 Subsidies - copy of OKL shadow
3832    -------------------------------------------------------
3833     --cursor to find whether party payment details exist for party being copied
3834     Cursor l_pyd_csr (p_cpl_id in number) is
3835     Select pyd.id
3836     from   okl_party_payment_dtls pyd
3837     where  pyd.cpl_id = p_cpl_id;
3838 
3839     l_pyd_id okl_party_payment_dtls.ID%TYPE;
3840     lx_pyd_id okl_party_payment_dtls.ID%TYPE;
3841 
3842    -------------------------------------------------------
3843    --Bug# 3143522 : 11.5.10 Subsidies - copy of OKL shadow
3844    -------------------------------------------------------
3845 
3846    --Bug# 4558486
3847    Cursor l_kpl_csr (p_cpl_id in number) is
3848    Select kpl.id
3849    from   okl_k_party_roles kpl
3850    where  kpl.id = p_cpl_id;
3851 
3852    lx_kpl_id okl_k_party_roles.ID%TYPE;
3853 
3854   BEGIN
3855     l_return_status := OKL_API.START_ACTIVITY(substr(l_api_name,1,26),
3856                                               G_PKG_NAME,
3857                                               p_init_msg_list,
3858                                               G_API_VERSION,
3859                                               p_api_version,
3860                                               G_SCOPE,
3861                                               x_return_status);
3862     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3863       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3864     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3865       RAISE OKL_API.G_EXCEPTION_ERROR;
3866     END IF;
3867 
3868     OKC_COPY_CONTRACT_PUB.copy_party_roles(
3869     		p_api_version           => p_api_version,
3870     		p_init_msg_list         => p_init_msg_list,
3871     		x_return_status         => x_return_status,
3872     		x_msg_count             => x_msg_count,
3873     		x_msg_data              => x_msg_data,
3874     		p_cpl_id                => p_cpl_id,
3875     		p_cle_id                => p_cle_id,
3876     		p_chr_id                => p_chr_id,
3877     		p_rle_code              => p_rle_code,
3878     		x_cpl_id	        => x_cpl_id);
3879 
3880     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3881       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3882     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3883       RAISE OKL_API.G_EXCEPTION_ERROR;
3884     END IF;
3885 
3886    -------------------------------------------------------
3887    --Bug# 3143522 : 11.5.10 Subsidies - copy of OKL shadow
3888    -------------------------------------------------------
3889    Open l_pyd_csr (p_cpl_id => p_cpl_id);
3890    Loop
3891        Fetch l_pyd_csr into l_pyd_id;
3892        Exit when l_pyd_csr%NOTFOUND;
3893 
3894        -------------------------------------------------
3895        --call local api to copy party payment details
3896        -------------------------------------------------
3897        copy_party_pymt_dtls
3898                 (p_api_version           => p_api_version,
3899                 p_init_msg_list         => p_init_msg_list,
3900                 x_return_status         => x_return_status,
3901                 x_msg_count             => x_msg_count,
3902                 x_msg_data              => x_msg_data,
3903                 p_pyd_id                => l_pyd_id,
3904                 p_cpl_id                => x_cpl_id,
3905                 x_pyd_id                => lx_pyd_id);
3906 
3907 
3908 
3909        IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3910           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3911        ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3912           RAISE OKL_API.G_EXCEPTION_ERROR;
3913        END IF;
3914    End Loop;
3915    Close l_pyd_csr;
3916 
3917    --Bug# 4558486
3918    For l_kpl_rec in l_kpl_csr(p_cpl_id => p_cpl_id)
3919    Loop
3920      copy_okl_k_party_roles
3921                (p_api_version           => p_api_version,
3922                 p_init_msg_list         => p_init_msg_list,
3923                 x_return_status         => x_return_status,
3924                 x_msg_count             => x_msg_count,
3925                 x_msg_data              => x_msg_data,
3926                 p_kpl_id                => l_kpl_rec.id,
3927                 p_cpl_id                => x_cpl_id,
3928                 x_kpl_id                => lx_kpl_id);
3929 
3930        IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3931           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3932        ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3933           RAISE OKL_API.G_EXCEPTION_ERROR;
3934        END IF;
3935    End Loop;
3936    --Bug# 4558486
3937 
3938     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3939 
3940   EXCEPTION
3941      WHEN OKL_API.G_EXCEPTION_ERROR THEN
3942      If l_pyd_csr%ISOPEN then
3943          close l_pyd_csr;
3944      End If;
3945        x_return_status := OKL_API.HANDLE_EXCEPTIONS
3946        (substr(l_api_name,1,26),
3947         G_PKG_NAME,
3948         'OKL_API.G_RET_STS_ERROR',
3949         x_msg_count,
3950         x_msg_data,
3951         G_SCOPE);
3952      WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3953      If l_pyd_csr%ISOPEN then
3954          close l_pyd_csr;
3955      End If;
3956        x_return_status := OKL_API.HANDLE_EXCEPTIONS
3957        (substr(l_api_name,1,26),
3958         G_PKG_NAME,
3959         'OKL_API.G_RET_STS_UNEXP_ERROR',
3960         x_msg_count,
3961         x_msg_data,
3962         G_SCOPE);
3963      WHEN OTHERS THEN
3964      If l_pyd_csr%ISOPEN then
3965          close l_pyd_csr;
3966      End If;
3967       -- store SQL error message on message stack for caller
3968       OKL_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
3969        x_return_status := OKL_API.HANDLE_EXCEPTIONS
3970        (substr(l_api_name,1,26),
3971         G_PKG_NAME,
3972         'OTHERS',
3973         x_msg_count,
3974         x_msg_data,
3975         G_SCOPE);
3976 
3977   END copy_party_roles;
3978 --------------------------------------------------------------------------------
3979 -- Start of comments
3980 --
3981 -- Procedure Name  : copy_articles
3982 -- Description     : copies articles for a shadowed contract. will be
3983 --                   published in OKL_COPY_CONTRACTS_PUB
3984 -- Business Rules  :
3985 -- Parameters      :
3986 -- Version         : 1.0
3987 -- Notes           :
3988 -- End of comments
3989 --------------------------------------------------------------------------------
3990   PROCEDURE copy_articles(
3991     p_api_version                  IN NUMBER,
3992     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3993     x_return_status                OUT NOCOPY VARCHAR2,
3994     x_msg_count                    OUT NOCOPY NUMBER,
3995     x_msg_data                     OUT NOCOPY VARCHAR2,
3996     p_cat_id                  	   IN NUMBER,
3997     p_cle_id                       IN NUMBER DEFAULT OKL_API.G_MISS_NUM,
3998     p_chr_id                       IN NUMBER DEFAULT OKL_API.G_MISS_NUM,
3999     p_sav_sav_release		       IN VARCHAR2 DEFAULT NULL,
4000     x_cat_id		               OUT NOCOPY NUMBER) IS
4001 
4002 
4003     l_api_name     			CONSTANT VARCHAR2(30) := 'OKL_COPY_ARTICLES';
4004     l_return_status           VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4005   BEGIN
4006     l_return_status := OKL_API.START_ACTIVITY(substr(l_api_name,1,26),
4007                                               G_PKG_NAME,
4008                                               p_init_msg_list,
4009                                               G_API_VERSION,
4010                                               p_api_version,
4011                                               G_SCOPE,
4012                                               x_return_status);
4013     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4014       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4015     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4016       RAISE OKL_API.G_EXCEPTION_ERROR;
4017     END IF;
4018 
4019     OKC_COPY_CONTRACT_PUB.copy_articles(
4020           p_api_version		=> p_api_version,
4021           p_init_msg_list	=> p_init_msg_list,
4022           x_return_status 	=> x_return_status,
4023           x_msg_count     	=> x_msg_count,
4024           x_msg_data      	=> x_msg_data,
4025           p_cat_id            => p_cat_id,
4026     	     p_cle_id            => p_cle_id,
4027     	     p_chr_id            => p_chr_id,
4028     	     p_sav_sav_release   => p_sav_sav_release,
4029     	     x_cat_id			=> x_cat_id);
4030 
4031     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4032       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4033     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4034       RAISE OKL_API.G_EXCEPTION_ERROR;
4035     END IF;
4036 
4037     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4038 
4039   EXCEPTION
4040      WHEN OKL_API.G_EXCEPTION_ERROR THEN
4041        x_return_status := OKL_API.HANDLE_EXCEPTIONS
4042        (substr(l_api_name,1,26),
4043         G_PKG_NAME,
4044         'OKL_API.G_RET_STS_ERROR',
4045         x_msg_count,
4046         x_msg_data,
4047         G_SCOPE);
4048      WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4049        x_return_status := OKL_API.HANDLE_EXCEPTIONS
4050        (substr(l_api_name,1,26),
4051         G_PKG_NAME,
4052         'OKL_API.G_RET_STS_UNEXP_ERROR',
4053         x_msg_count,
4054         x_msg_data,
4055         G_SCOPE);
4056      WHEN OTHERS THEN
4057       -- store SQL error message on message stack for caller
4058       OKL_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
4059        x_return_status := OKL_API.HANDLE_EXCEPTIONS
4060        (substr(l_api_name,1,26),
4061         G_PKG_NAME,
4062         'OTHERS',
4063         x_msg_count,
4064         x_msg_data,
4065         G_SCOPE);
4066 
4067   END copy_articles;
4068 --------------------------------------------------------------------------------
4069 -- Start of comments
4070 --
4071 -- Procedure Name  : copy_latest_articles
4072 -- Description     : copies latest articles for a shadowed contract. will be
4073 --                   published in OKL_COPY_CONTRACTS_PUB
4074 -- Business Rules  :
4075 -- Parameters      :
4076 -- Version         : 1.0
4077 -- Notes           :
4078 -- End of comments
4079 --------------------------------------------------------------------------------
4080   PROCEDURE copy_latest_articles(
4081     p_api_version                  IN NUMBER,
4082     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
4083     x_return_status                OUT NOCOPY VARCHAR2,
4084     x_msg_count                    OUT NOCOPY NUMBER,
4085     x_msg_data                     OUT NOCOPY VARCHAR2,
4086     p_cat_id                  	IN NUMBER,
4087     p_cle_id                       IN NUMBER DEFAULT OKL_API.G_MISS_NUM,
4088     p_chr_id                       IN NUMBER DEFAULT OKL_API.G_MISS_NUM,
4089     x_cat_id		           	OUT NOCOPY NUMBER) IS
4090 
4091 
4092     l_api_name     		   CONSTANT VARCHAR2(30) := 'OKL_COPY_LATEST_ARTICLES';
4093     l_return_status         VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4094   BEGIN
4095     l_return_status := OKL_API.START_ACTIVITY(substr(l_api_name,1,26),
4096                                               G_PKG_NAME,
4097                                               p_init_msg_list,
4098                                               G_API_VERSION,
4099                                               p_api_version,
4100                                               G_SCOPE,
4101                                               x_return_status);
4102     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4103       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4104     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4105       RAISE OKL_API.G_EXCEPTION_ERROR;
4106     END IF;
4107 
4108     OKC_COPY_CONTRACT_PUB.copy_latest_articles(
4109             p_api_version	   => p_api_version,
4110             p_init_msg_list	   => p_init_msg_list,
4111             x_return_status    => x_return_status,
4112             x_msg_count        => x_msg_count,
4113             x_msg_data         => x_msg_data,
4114             p_cat_id           => p_cat_id,
4115             p_cle_id           => p_cle_id,
4116             p_chr_id           => p_chr_id,
4117             x_cat_id		   => x_cat_id);
4118 
4119     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4120       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4121     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4122       RAISE OKL_API.G_EXCEPTION_ERROR;
4123     END IF;
4124 
4125     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4126 
4127   EXCEPTION
4128      WHEN OKL_API.G_EXCEPTION_ERROR THEN
4129        x_return_status := OKL_API.HANDLE_EXCEPTIONS
4130        (substr(l_api_name,1,26),
4131         G_PKG_NAME,
4132         'OKL_API.G_RET_STS_ERROR',
4133         x_msg_count,
4134         x_msg_data,
4135         G_SCOPE);
4136      WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4137        x_return_status := OKL_API.HANDLE_EXCEPTIONS
4138        (substr(l_api_name,1,26),
4139         G_PKG_NAME,
4140         'OKL_API.G_RET_STS_UNEXP_ERROR',
4141         x_msg_count,
4142         x_msg_data,
4143         G_SCOPE);
4144      WHEN OTHERS THEN
4145       -- store SQL error message on message stack for caller
4146       OKL_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
4147        x_return_status := OKL_API.HANDLE_EXCEPTIONS
4148        (substr(l_api_name,1,26),
4149         G_PKG_NAME,
4150         'OTHERS',
4151         x_msg_count,
4152         x_msg_data,
4153         G_SCOPE);
4154   END copy_latest_articles;
4155 --------------------------------------------------------------------------
4156   --Start of Comments
4157   --Bug # 2337570 - TEMPLATE COPY DOES NOT DEFAULT ALL FIELDS ON HEADER
4158   --Procedure Name : Copy_Governances
4159   --Description    : Makes a copy of the okc_governances.
4160   -- Local Procedure in OKC_COPY_CONTRACT_PVT - repeated here as governances
4161   -- need to be copied in case of lease contracts. In core contracts
4162   -- governances are copied only if renew reference flag is set to 'Yes'
4163 --------------------------------------------------------------------------
4164   PROCEDURE copy_governances(
4165     p_api_version                  IN NUMBER,
4166     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
4167     x_return_status                OUT NOCOPY VARCHAR2,
4168     x_msg_count                    OUT NOCOPY NUMBER,
4169     x_msg_data                     OUT NOCOPY VARCHAR2,
4170     p_from_chr_id                  IN NUMBER,
4171     p_to_chr_id                    IN NUMBER) IS
4172 
4173     l_gvev_rec 	OKC_CONTRACT_PUB.gvev_rec_type;
4174     x_gvev_rec 	OKC_CONTRACT_PUB.gvev_rec_type;
4175     l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4176 
4177     CURSOR 	c_governances IS
4178     SELECT 	id
4179     FROM 		okc_governances_v
4180     WHERE 	dnz_chr_id = p_from_chr_id
4181     AND		cle_id is null;
4182 
4183   ----------------------------------------------------------------------------
4184   --Function to populate the contract governance record to be copied.
4185   ----------------------------------------------------------------------------
4186     FUNCTION get_gvev_rec(p_gve_id IN NUMBER,
4187 				      x_gvev_rec OUT NOCOPY OKC_CONTRACT_PUB.gvev_rec_type)
4188     RETURN  VARCHAR2 IS
4189       l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4190       l_no_data_found BOOLEAN := TRUE;
4191 
4192       CURSOR c_gvev_rec IS
4193       SELECT
4194 	    DNZ_CHR_ID,
4195 	    ISA_AGREEMENT_ID,
4196 	    CHR_ID,
4197 	    CLE_ID,
4198 	    CHR_ID_REFERRED,
4199 	    CLE_ID_REFERRED,
4200 	    COPIED_ONLY_YN
4201 	 FROM    OKC_GOVERNANCES
4202 	 WHERE 	ID = p_gve_id;
4203     BEGIN
4204       OPEN c_gvev_rec;
4205       FETCH c_gvev_rec
4206       INTO x_gvev_rec.DNZ_CHR_ID,
4207 		x_gvev_rec.ISA_AGREEMENT_ID,
4208 		x_gvev_rec.CHR_ID,
4209 		x_gvev_rec.CLE_ID,
4210 		x_gvev_rec.CHR_ID_REFERRED,
4211 		x_gvev_rec.CLE_ID_REFERRED,
4212 		x_gvev_rec.COPIED_ONLY_YN;
4213 
4214       l_no_data_found := c_gvev_rec%NOTFOUND;
4215       CLOSE c_gvev_rec;
4216       IF l_no_data_found THEN
4217         l_return_status := OKC_API.G_RET_STS_ERROR;
4218         return(l_return_status);
4219       ELSE
4220         return(l_return_status);
4221       END IF;
4222     EXCEPTION
4223       WHEN OTHERS THEN
4224         -- store SQL error message on message stack for caller
4225         OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
4226         -- notify caller of an UNEXPECTED error
4227         l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
4228         return(l_return_status);
4229 
4230     END get_gvev_rec;
4231   BEGIN
4232     x_return_status := l_return_status;
4233     FOR l_c_governances IN c_governances LOOP
4234       l_return_status := get_gvev_rec(	p_gve_id 	 => l_c_governances.id,
4235 					               x_gvev_rec => l_gvev_rec);
4236       l_gvev_rec.chr_id := p_to_chr_id;
4237       l_gvev_rec.dnz_chr_id := p_to_chr_id;
4238 
4239       OKC_CONTRACT_PUB.create_governance(
4240 	   p_api_version	=> p_api_version,
4241            p_init_msg_list	=> p_init_msg_list,
4242            x_return_status 	=> l_return_status,
4243            x_msg_count     	=> x_msg_count,
4244            x_msg_data      	=> x_msg_data,
4245            p_gvev_rec		=> l_gvev_rec,
4246            x_gvev_rec		=> x_gvev_rec);
4247 
4248       IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
4249         IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4250           x_return_status := l_return_status;
4251           RAISE G_EXCEPTION_HALT_VALIDATION;
4252         ELSE
4253 	     x_return_status := l_return_status;
4254         END IF;
4255       END IF;
4256     END LOOP;
4257 
4258   EXCEPTION
4259     WHEN G_EXCEPTION_HALT_VALIDATION THEN
4260       NULL;
4261     WHEN OTHERS THEN
4262       -- store SQL error message on message stack for caller
4263       OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
4264       -- notify caller of an UNEXPECTED error
4265       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
4266 
4267   END copy_governances;
4268 
4269 --------------------------------------------------------------------------------
4270 --Start of Comments
4271 --Procedure Name : link_cov_Asst
4272 --Description    : Links covered assets/usage contract after copy
4273 --Notes          : Usage soueces are blanked out
4274 --                 for covered asset if a single copied fin asset line with
4275 --                 matching source is found in the new contract covered item is
4276 --                 made to piont to this line otherwise it is blanked (Null)
4277 --                 to added Syndication 'OKX_LEASE' also
4278 --                 This will also be pushed into Copy_Asset_Lines
4279 --------------------------------------------------------------------------------
4280 Procedure link_cov_asst( p_api_version              IN  NUMBER,
4281                          p_init_msg_list            IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
4282                          x_return_status            OUT NOCOPY VARCHAR2,
4283                          x_msg_count                OUT NOCOPY NUMBER,
4284                          x_msg_data                 OUT NOCOPY VARCHAR2,
4285                          p_orig_lnk_cle_id          IN  NUMBER,
4286                          p_new_lnk_cim_id           IN  NUMBER,
4287                          p_object_code              IN  VARCHAR2,
4288                          p_new_chr_id               IN  NUMBER) is
4289 
4290 --cursor to fetch original fin linked asset line id
4291 CURSOR l_orig_ast_csr(p_orig_lnk_cle_id IN NUMBER,
4292                       p_new_chr_id      IN NUMBER) IS
4293 SELECT new_cle.id
4294 FROM   OKC_K_LINES_B new_cle,
4295        OKC_K_ITEMS   orig_lnk_cim
4296 WHERE  new_cle.ORIG_SYSTEM_ID1 = to_number(orig_lnk_cim.object1_id1)
4297 AND    new_cle.chr_id          = p_new_chr_id
4298 AND    orig_lnk_cim.cle_id     = p_orig_lnk_cle_id
4299 AND    not exists (select null
4300                    from   OKC_K_LINES_B another_cle
4301                    where  another_cle.orig_system_id1 = new_cle.orig_system_id1
4302                    and    another_cle.lse_id          = new_cle.lse_id
4303                    and    another_cle.chr_id          = new_cle.chr_id
4304                    and    another_cle.id             <> new_cle.id);
4305 
4306 l_new_cle_id     OKC_K_LINES_B.ID%TYPE;
4307 
4308 
4309 l_new_lnk_cim_id   NUMBER;
4310 
4311 l_cimv_rec         OKL_OKC_MIGRATION_PVT.cimv_rec_type;
4312 lx_cimv_rec        OKL_OKC_MIGRATION_PVT.cimv_rec_type;
4313 
4314 Begin
4315     x_return_status := OKL_API.G_RET_STS_SUCCESS;
4316     l_new_lnk_cim_id := p_new_lnk_cim_id;
4317 
4318     If p_object_code in ('OKL_USAGE','OKX_LEASE') then --for covered usage contract and syndicated contract
4319 
4320         l_cimv_rec.id                := l_new_lnk_cim_id;
4321         l_cimv_rec.object1_id1       := OKL_API.G_MISS_CHAR;
4322         l_cimv_rec.object1_id2       := OKL_API.G_MISS_CHAR;
4323         l_cimv_rec.jtot_object1_code := OKL_API.G_MISS_CHAR;
4324 
4325     Else --for covered asset
4326 
4327         Open l_orig_ast_csr(p_orig_lnk_cle_id => p_orig_lnk_cle_id,
4328                             p_new_chr_id      => p_new_chr_id);
4329         Fetch l_orig_ast_csr into l_new_cle_id;
4330         IF l_orig_ast_csr%NOTFOUND Then
4331             --null out the new link
4332             l_cimv_rec.id                := l_new_lnk_cim_id;
4333             l_cimv_rec.object1_id1       := OKL_API.G_MISS_CHAR;
4334             l_cimv_rec.object1_id2       := OKL_API.G_MISS_CHAR;
4335             l_cimv_rec.jtot_object1_code := OKL_API.G_MISS_CHAR;
4336          ELSE
4337             --update the new link with new asset
4338             l_cimv_rec.id := l_new_lnk_cim_id;
4339             l_cimv_rec.object1_id1 := to_char(l_new_cle_id);
4340          END IF;
4341          Close l_orig_ast_csr;
4342 
4343      End If;
4344 
4345      --update link contract item accordingly
4346      okl_okc_migration_pvt.update_contract_item(
4347             p_api_version    => p_api_version,
4348             p_init_msg_list  => p_init_msg_list,
4349             x_return_status  => x_return_status,
4350             x_msg_count      => x_msg_count,
4351             x_msg_data       => x_msg_data,
4352             p_cimv_rec       => l_cimv_rec,
4353             x_cimv_rec       => lx_cimv_rec);
4354 
4355     Exception
4356     When Others then
4357         If l_orig_ast_csr%ISOPEN Then
4358             Close l_orig_ast_csr;
4359         End If;
4360         x_return_status :=  OKL_API.G_RET_STS_UNEXP_ERROR;
4361 
4362 End link_cov_asst;
4363 --------------------------------------------------------------------------------
4364 -- Start of comments
4365 -- Bug# 2555692
4366 -- Procedure Name  : reset_contract_status
4367 -- Description     : Local procedure will be called from copy_lease_contract to
4368 --                   update the copied contracts status to a 'NEW' status. OKC
4369 --                   APIs by default set the status of a new contract to 'ENTERED'
4370 -- Business Rules  :
4371 -- Parameters      :
4372 -- Version         : 1.0
4373 -- Notes           :
4374 -- End of comments
4375 --------------------------------------------------------------------------------
4376 Procedure reset_contract_status
4377            (p_api_version   IN  NUMBER,
4378             p_init_msg_list IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
4379             x_return_status OUT NOCOPY VARCHAR2,
4380             x_msg_count     OUT NOCOPY NUMBER,
4381             x_msg_data      OUT NOCOPY VARCHAR2,
4382             p_chr_id        IN  NUMBER,
4383             p_status        IN  VARCHAR2,
4384             p_cascade_lines IN  VARCHAR2) IS
4385 BEGIN
4386     x_return_status := OKL_API.G_RET_STS_SUCCESS;
4387     -- Now call the stored program to update status of contact
4388     okl_contract_status_pub.update_contract_status
4389       (p_api_version   => p_api_version,
4390        p_init_msg_list => p_init_msg_list,
4391        x_return_status => x_return_status,
4392        x_msg_count     => x_msg_count,
4393        x_msg_data      => x_msg_data,
4394        p_khr_status    => p_status,
4395        p_chr_id        => p_chr_id);
4396 
4397     If (x_return_status <> OKL_API.G_RET_STS_SUCCESS) Then
4398        Raise G_EXCEPTION_HALT_PROCESS;
4399     End If;
4400 
4401 
4402     /*
4403     If nvl(p_cascade_lines,'N') = 'Y' Then
4404        okl_contract_status_pub.cascade_lease_status
4405           (p_api_version   => p_api_version,
4406            p_init_msg_list => p_init_msg_list,
4407            x_return_status => x_return_status,
4408            x_msg_count     => x_msg_count,
4409            x_msg_data      => x_msg_data,
4410            p_chr_id        => p_chr_id);
4411     End If;
4412     */
4413 
4414     If (x_return_status <> OKL_API.G_RET_STS_SUCCESS) Then
4415        Raise G_EXCEPTION_HALT_PROCESS;
4416     End If;
4417 
4418     EXCEPTION
4419     WHEN G_EXCEPTION_HALT_PROCESS Then
4420          Null;
4421     When OTHERS Then
4422          x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
4423 END reset_contract_status;
4424 --End Bug# 2555692
4425 
4426 --------------------------------------------------------------------------------
4427 -- Start of comments
4428 -- Bug# 3159691
4429 -- Procedure Name  : delete_yields
4430 -- Description     : Local procedure will be called from copy_lease_contract to
4431 --                   remove yield values from the new contract.
4432 --
4433 -- Business Rules  :
4434 -- Parameters      :
4435 -- Version         : 1.0
4436 -- Notes           :
4437 -- End of comments
4438 --------------------------------------------------------------------------------
4439   PROCEDURE delete_yields(
4440     p_api_version                  IN NUMBER,
4441     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
4442     x_return_status                OUT NOCOPY VARCHAR2,
4443     x_msg_count                    OUT NOCOPY NUMBER,
4444     x_msg_data                     OUT NOCOPY VARCHAR2,
4445     p_chr_id                       IN NUMBER,
4446     --Bug# 3973640
4447     p_trans_type                   IN VARCHAR2
4448     ) IS
4449 
4450     l_api_name        CONSTANT VARCHAR2(30) := 'OKL_DELETE_YIELDS';
4451     l_return_status   VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4452 
4453     l_chrv_rec     chrv_rec_type;
4454     l_khrv_rec     khrv_rec_type;
4455     l_khrv_qry_rec khrv_rec_type;
4456     lx_chrv_rec    chrv_rec_type;
4457     lx_khrv_rec    khrv_rec_type;
4458 
4459     l_clev_rec     clev_rec_type;
4460     l_klev_rec     klev_rec_type;
4461     lx_clev_rec    clev_rec_type;
4462     lx_klev_rec    klev_rec_type;
4463 
4464     cursor kle_csr is
4465     select kle.id
4466           ,kle.pre_tax_yield
4467           ,kle.after_tax_yield
4468           ,kle.implicit_interest_rate
4469           ,kle.implicit_non_idc_interest_rate
4470           ,kle.pre_tax_irr
4471           ,kle.after_tax_irr
4472           ,kle.sub_pre_tax_yield
4473           ,kle.sub_after_tax_yield
4474           ,kle.sub_impl_interest_rate
4475           ,kle.sub_impl_non_idc_int_rate
4476           ,kle.sub_pre_tax_irr
4477           ,kle.sub_after_tax_irr
4478           ,kle.capitalized_interest
4479           --Bug# 3973640
4480           ,kle.qte_id
4481           ,kle.funding_date
4482     from  okc_k_lines_b cle
4483          ,okl_k_lines kle
4484     where cle.dnz_chr_id = p_chr_id
4485     and   cle.id = kle.id;
4486 
4487   BEGIN
4488 
4489     x_return_status := OKL_API.G_RET_STS_SUCCESS;
4490     x_return_status := OKL_API.START_ACTIVITY(substr(l_api_name,1,26),
4491                                               G_PKG_NAME,
4492                                               p_init_msg_list,
4493                                               G_API_VERSION,
4494                                               p_api_version,
4495                                               G_SCOPE,
4496                                               x_return_status);
4497     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4498       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4499     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4500       RAISE OKL_API.G_EXCEPTION_ERROR;
4501     END IF;
4502 
4503     l_khrv_qry_rec := get_khrv_rec(p_chr_id);
4504 
4505     IF (l_khrv_qry_rec.pre_tax_yield IS NOT NULL OR
4506         l_khrv_qry_rec.after_tax_yield IS NOT NULL OR
4507         l_khrv_qry_rec.implicit_interest_rate IS NOT NULL OR
4508         l_khrv_qry_rec.implicit_non_idc_interest_rate IS NOT NULL OR
4509         l_khrv_qry_rec.pre_tax_irr IS NOT NULL OR
4510         l_khrv_qry_rec.after_tax_irr IS NOT NULL OR
4511         l_khrv_qry_rec.sub_pre_tax_yield IS NOT NULL OR
4512         l_khrv_qry_rec.sub_after_tax_yield IS NOT NULL OR
4513         l_khrv_qry_rec.sub_impl_interest_rate IS NOT NULL OR
4514         l_khrv_qry_rec.sub_impl_non_idc_int_rate IS NOT NULL OR
4515         l_khrv_qry_rec.sub_pre_tax_irr IS NOT NULL OR
4516         l_khrv_qry_rec.sub_after_tax_irr IS NOT NULL OR
4517         l_khrv_qry_rec.date_last_interim_interest_cal IS NOT NULL OR
4518         --bug# 3973640:
4519         l_khrv_qry_rec.TOT_CL_TRANSFER_AMT IS NOT NULL OR
4520         l_khrv_qry_rec.TOT_CL_NET_TRANSFER_AMT IS NOT NULL OR
4521         l_khrv_qry_rec.TOT_CL_LIMIT IS NOT NULL OR
4522         l_khrv_qry_rec.TOT_CL_FUNDING_AMT IS NOT NULL) THEN
4523 
4524       l_chrv_rec.id := p_chr_id;
4525       l_khrv_rec.id := p_chr_id;
4526 
4527       l_khrv_rec.pre_tax_yield := NULL;
4528       l_khrv_rec.after_tax_yield := NULL;
4529       l_khrv_rec.implicit_interest_rate := NULL;
4530       l_khrv_rec.implicit_non_idc_interest_rate := NULL;
4531       l_khrv_rec.pre_tax_irr := NULL;
4532       l_khrv_rec.after_tax_irr := NULL;
4533       l_khrv_rec.sub_pre_tax_yield := NULL;
4534       l_khrv_rec.sub_after_tax_yield := NULL;
4535       l_khrv_rec.sub_impl_interest_rate := NULL;
4536       l_khrv_rec.sub_impl_non_idc_int_rate := NULL;
4537       l_khrv_rec.sub_pre_tax_irr := NULL;
4538       l_khrv_rec.sub_after_tax_irr := NULL;
4539 
4540       -- Bug# 3541098
4541       l_khrv_rec.date_last_interim_interest_cal := NULL;
4542       --bug# 3973640:
4543        l_khrv_rec.TOT_CL_TRANSFER_AMT := NULL;
4544        l_khrv_rec.TOT_CL_NET_TRANSFER_AMT := NULL;
4545        l_khrv_rec.TOT_CL_LIMIT := NULL;
4546        l_khrv_rec.TOT_CL_FUNDING_AMT := NULL;
4547 
4548       okl_contract_pub.update_contract_header(
4549        p_api_version   => p_api_version,
4550        p_init_msg_list => p_init_msg_list,
4551        x_return_status => x_return_status,
4552        x_msg_count     => x_msg_count,
4553        x_msg_data      => x_msg_data,
4554        p_chrv_rec      => l_chrv_rec,
4555        p_khrv_rec      => l_khrv_rec,
4556        x_chrv_rec      => lx_chrv_rec,
4557        x_khrv_rec      => lx_khrv_rec);
4558 
4559       IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4560         RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4561       ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4562         RAISE OKL_API.G_EXCEPTION_ERROR;
4563       END IF;
4564 
4565     END IF;
4566 
4567     FOR l_kle_rec IN kle_csr LOOP
4568 
4569       IF (l_kle_rec.pre_tax_yield IS NOT NULL OR
4570         l_kle_rec.after_tax_yield IS NOT NULL OR
4571         l_kle_rec.implicit_interest_rate IS NOT NULL OR
4572         l_kle_rec.implicit_non_idc_interest_rate IS NOT NULL OR
4573         l_kle_rec.pre_tax_irr IS NOT NULL OR
4574         l_kle_rec.after_tax_irr IS NOT NULL OR
4575         l_kle_rec.sub_pre_tax_yield IS NOT NULL OR
4576         l_kle_rec.sub_after_tax_yield IS NOT NULL OR
4577         l_kle_rec.sub_impl_interest_rate IS NOT NULL OR
4578         l_kle_rec.sub_impl_non_idc_int_rate IS NOT NULL OR
4579         l_kle_rec.sub_pre_tax_irr IS NOT NULL OR
4580         l_kle_rec.sub_after_tax_irr IS NOT NULL OR
4581         l_kle_rec.capitalized_interest IS NOT NULL OR
4582         --Bug# 3973640:
4583         l_kle_rec.qte_id IS NOT NULL OR
4584         l_kle_rec.funding_date IS NOT NULL) THEN
4585 
4586         l_clev_rec.id := l_kle_rec.id;
4587         l_klev_rec.id := l_kle_rec.id;
4588 
4589         l_klev_rec.pre_tax_yield := NULL;
4590         l_klev_rec.after_tax_yield := NULL;
4591         l_klev_rec.implicit_interest_rate := NULL;
4592         l_klev_rec.implicit_non_idc_interest_rate := NULL;
4593         l_klev_rec.pre_tax_irr := NULL;
4594         l_klev_rec.after_tax_irr := NULL;
4595         l_klev_rec.sub_pre_tax_yield := NULL;
4596         l_klev_rec.sub_after_tax_yield := NULL;
4597         l_klev_rec.sub_impl_interest_rate := NULL;
4598         l_klev_rec.sub_impl_non_idc_int_rate := NULL;
4599         l_klev_rec.sub_pre_tax_irr := NULL;
4600         l_klev_rec.sub_after_tax_irr := NULL;
4601 
4602         -- Bug# 3541098
4603         l_klev_rec.capitalized_interest := NULL;
4604         --Bug# 3973640
4605         l_klev_rec.funding_date := NULL;
4606         If nvl(p_trans_type,'CFA') = 'CFA' then
4607             l_klev_rec.qte_id := NULL;
4608         End If;
4609 
4610         okl_contract_pub.update_contract_line(
4611           p_api_version        => p_api_version,
4612           p_init_msg_list      => p_init_msg_list,
4613           x_return_status      => x_return_status,
4614           x_msg_count          => x_msg_count,
4615           x_msg_data           => x_msg_data,
4616           p_clev_rec           => l_clev_rec,
4617           p_klev_rec           => l_klev_rec,
4618           x_clev_rec           => lx_clev_rec,
4619           x_klev_rec           => lx_klev_rec);
4620 
4621         IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4622           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4623         ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4624           RAISE OKL_API.G_EXCEPTION_ERROR;
4625         END IF;
4626 
4627       END IF;
4628     END LOOP;
4629 
4630     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4631 
4632   EXCEPTION
4633      WHEN OKL_API.G_EXCEPTION_ERROR THEN
4634        x_return_status := OKL_API.HANDLE_EXCEPTIONS
4635        (substr(l_api_name,1,26),
4636         G_PKG_NAME,
4637         'OKL_API.G_RET_STS_ERROR',
4638         x_msg_count,
4639         x_msg_data,
4640         G_SCOPE);
4641      WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4642        x_return_status := OKL_API.HANDLE_EXCEPTIONS
4643        (substr(l_api_name,1,26),
4644         G_PKG_NAME,
4645         'OKL_API.G_RET_STS_UNEXP_ERROR',
4646         x_msg_count,
4647         x_msg_data,
4648         G_SCOPE);
4649      WHEN OTHERS THEN
4650       -- store SQL error message on message stack for caller
4651       OKL_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
4652        x_return_status := OKL_API.HANDLE_EXCEPTIONS
4653        (substr(l_api_name,1,26),
4654         G_PKG_NAME,
4655         'OTHERS',
4656         x_msg_count,
4657         x_msg_data,
4658         G_SCOPE);
4659 
4660 END delete_yields;
4661 --End Bug# 3159691
4662 
4663 Procedure copy_var_int_rate_params(p_old_id IN NUMBER,
4664                                    p_new_id IN NUMBER,
4665                                    p_start_date IN DATE,
4666                                    p_trans_type IN VARCHAR2,
4667                                    p_rbk_date IN DATE) IS
4668     TYPE l_kkhr_id_type is table of okl_k_rate_params.khr_id%TYPE index by binary_integer;
4669     TYPE l_kparameter_type_code_type is table of okl_k_rate_params.parameter_type_code%TYPE index by binary_integer;
4670     TYPE l_keffective_from_date_type is table of okl_k_rate_params.effective_from_date%TYPE index by binary_integer;
4671     TYPE l_keffective_to_date_type is table of okl_k_rate_params.effective_to_date%TYPE index by binary_integer;
4672     TYPE l_kinterest_index_id_type is table of okl_k_rate_params.interest_index_id%TYPE index by binary_integer;
4673     TYPE l_kbase_rate_type is table of okl_k_rate_params.base_rate%TYPE index by binary_integer;
4674     TYPE l_kinterest_start_date_type is table of okl_k_rate_params.interest_start_date%TYPE index by binary_integer;
4675     TYPE l_kadder_rate_type is table of okl_k_rate_params.adder_rate%TYPE index by binary_integer;
4676     TYPE l_kmaximum_rate_type is table of okl_k_rate_params.maximum_rate%TYPE index by binary_integer;
4677     TYPE l_kminimum_rate_type is table of okl_k_rate_params.minimum_rate%TYPE index by binary_integer;
4678     TYPE l_kprincipal_basis_code_type is table of okl_k_rate_params.principal_basis_code%TYPE index by binary_integer;
4679     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;
4680     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;
4681     TYPE l_kinterest_basis_code_type is table of okl_k_rate_params.interest_basis_code%TYPE index by binary_integer;
4682     TYPE l_krate_delay_code_type is table of okl_k_rate_params.rate_delay_code%TYPE index by binary_integer;
4683     TYPE l_krate_delay_frequency_type is table of okl_k_rate_params.rate_delay_frequency%TYPE index by binary_integer;
4684     TYPE l_kcompounding_frequ_code_type is table of okl_k_rate_params.compounding_frequency_code%TYPE index by binary_integer;
4685     TYPE l_kcalculation_formula_id_type is table of okl_k_rate_params.calculation_formula_id%TYPE index by binary_integer;
4686     TYPE l_kcatchup_basis_code_type is table of okl_k_rate_params.catchup_basis_code%TYPE index by binary_integer;
4687     TYPE l_kcatchup_start_date_type is table of okl_k_rate_params.catchup_start_date%TYPE index by binary_integer;
4688     TYPE l_kcatchup_settlemen_code_type is table of okl_k_rate_params.catchup_settlement_code%TYPE index by binary_integer;
4689     TYPE l_krate_change_start_date_type is table of okl_k_rate_params.rate_change_start_date%TYPE index by binary_integer;
4690     TYPE l_krate_change_frequ_code_type is table of okl_k_rate_params.rate_change_frequency_code%TYPE index by binary_integer;
4691     TYPE l_krate_change_value_type is table of okl_k_rate_params.rate_change_value%TYPE index by binary_integer;
4692     TYPE l_kconversion_option_code_type is table of okl_k_rate_params.conversion_option_code%TYPE index by binary_integer;
4693     TYPE l_knext_conversion_date_type is table of okl_k_rate_params.next_conversion_date%TYPE index by binary_integer;
4694     TYPE l_kconversion_type_code_type is table of okl_k_rate_params.conversion_type_code%TYPE index by binary_integer;
4695     TYPE l_kattribute_category_type is table of okl_k_rate_params.attribute_category%TYPE index by binary_integer;
4696     TYPE l_kattribute1_type is table of okl_k_rate_params.attribute1%TYPE index by binary_integer;
4697     TYPE l_kattribute2_type is table of okl_k_rate_params.attribute2%TYPE index by binary_integer;
4698     TYPE l_kattribute3_type is table of okl_k_rate_params.attribute3%TYPE index by binary_integer;
4699     TYPE l_kattribute4_type is table of okl_k_rate_params.attribute4%TYPE index by binary_integer;
4700     TYPE l_kattribute5_type is table of okl_k_rate_params.attribute5%TYPE index by binary_integer;
4701     TYPE l_kattribute6_type is table of okl_k_rate_params.attribute6%TYPE index by binary_integer;
4702     TYPE l_kattribute7_type is table of okl_k_rate_params.attribute7%TYPE index by binary_integer;
4703     TYPE l_kattribute8_type is table of okl_k_rate_params.attribute8%TYPE index by binary_integer;
4704     TYPE l_kattribute9_type is table of okl_k_rate_params.attribute9%TYPE index by binary_integer;
4705     TYPE l_kattribute10_type is table of okl_k_rate_params.attribute10%TYPE index by binary_integer;
4706     TYPE l_kattribute11_type is table of okl_k_rate_params.attribute11%TYPE index by binary_integer;
4707     TYPE l_kattribute12_type is table of okl_k_rate_params.attribute12%TYPE index by binary_integer;
4708     TYPE l_kattribute13_type is table of okl_k_rate_params.attribute13%TYPE index by binary_integer;
4709     TYPE l_kattribute14_type is table of okl_k_rate_params.attribute14%TYPE index by binary_integer;
4710     TYPE l_kattribute15_type is table of okl_k_rate_params.attribute15%TYPE index by binary_integer;
4711     TYPE l_kcatchup_frequency_code_type is table of okl_k_rate_params.catchup_frequency_code%TYPE index by binary_integer;
4712 
4713     l_kkhr_id_tab l_kkhr_id_type;
4714     l_kparameter_type_code_tab l_kparameter_type_code_type;
4715     l_keffective_from_date_tab l_keffective_from_date_type;
4716     l_keffective_to_date_tab l_keffective_to_date_type;
4717     l_kinterest_index_id_tab l_kinterest_index_id_type;
4718     l_kbase_rate_tab l_kbase_rate_type;
4719     l_kinterest_start_date_tab l_kinterest_start_date_type;
4720     l_kadder_rate_tab l_kadder_rate_type;
4721     l_kmaximum_rate_tab l_kmaximum_rate_type;
4722     l_kminimum_rate_tab l_kminimum_rate_type;
4723     l_kprincipal_basis_code_tab l_kprincipal_basis_code_type;
4724     l_kdays_in_a_month_code_tab l_kdays_in_a_month_code_type;
4725     l_kdays_in_a_year_code_tab l_kdays_in_a_year_code_type;
4726     l_kinterest_basis_code_tab l_kinterest_basis_code_type;
4727     l_krate_delay_code_tab l_krate_delay_code_type;
4728     l_krate_delay_frequency_tab l_krate_delay_frequency_type;
4729     l_kcompounding_frequ_code_tab l_kcompounding_frequ_code_type;
4730     l_kcalculation_formula_id_tab l_kcalculation_formula_id_type;
4731     l_kcatchup_basis_code_tab l_kcatchup_basis_code_type;
4732     l_kcatchup_start_date_tab l_kcatchup_start_date_type;
4733     l_kcatchup_settlemen_code_tab l_kcatchup_settlemen_code_type;
4734     l_krate_change_start_date_tab l_krate_change_start_date_type;
4735     l_krate_change_frequ_code_tab l_krate_change_frequ_code_type;
4736     l_krate_change_value_tab l_krate_change_value_type;
4737     l_kconversion_option_code_tab l_kconversion_option_code_type;
4738     l_knext_conversion_date_tab l_knext_conversion_date_type;
4739     l_kconversion_type_code_tab l_kconversion_type_code_type;
4740     l_kattribute_category_tab l_kattribute_category_type;
4741     l_kattribute1_tab l_kattribute1_type;
4742     l_kattribute2_tab l_kattribute2_type;
4743     l_kattribute3_tab l_kattribute3_type;
4744     l_kattribute4_tab l_kattribute4_type;
4745     l_kattribute5_tab l_kattribute5_type;
4746     l_kattribute6_tab l_kattribute6_type;
4747     l_kattribute7_tab l_kattribute7_type;
4748     l_kattribute8_tab l_kattribute8_type;
4749     l_kattribute9_tab l_kattribute9_type;
4750     l_kattribute10_tab l_kattribute10_type;
4751     l_kattribute11_tab l_kattribute11_type;
4752     l_kattribute12_tab l_kattribute12_type;
4753     l_kattribute13_tab l_kattribute13_type;
4754     l_kattribute14_tab l_kattribute14_type;
4755     l_kattribute15_tab l_kattribute15_type;
4756     l_kcatchup_frequency_code_tab l_kcatchup_frequency_code_type;
4757 
4758     l_kkhr_id_tab2 l_kkhr_id_type;
4759     l_kparameter_type_code_tab2 l_kparameter_type_code_type;
4760     l_keffective_from_date_tab2 l_keffective_from_date_type;
4761     l_keffective_to_date_tab2 l_keffective_to_date_type;
4762     l_kinterest_index_id_tab2 l_kinterest_index_id_type;
4763     l_kbase_rate_tab2 l_kbase_rate_type;
4764     l_kinterest_start_date_tab2 l_kinterest_start_date_type;
4765     l_kadder_rate_tab2 l_kadder_rate_type;
4766     l_kmaximum_rate_tab2 l_kmaximum_rate_type;
4767     l_kminimum_rate_tab2 l_kminimum_rate_type;
4768     l_kprincipal_basis_code_tab2 l_kprincipal_basis_code_type;
4769     l_kdays_in_a_month_code_tab2 l_kdays_in_a_month_code_type;
4770     l_kdays_in_a_year_code_tab2 l_kdays_in_a_year_code_type;
4771     l_kinterest_basis_code_tab2 l_kinterest_basis_code_type;
4772     l_krate_delay_code_tab2 l_krate_delay_code_type;
4773     l_krate_delay_frequency_tab2 l_krate_delay_frequency_type;
4774     l_kcompounding_frequ_code_tab2 l_kcompounding_frequ_code_type;
4775     l_kcalculation_formula_id_tab2 l_kcalculation_formula_id_type;
4776     l_kcatchup_basis_code_tab2 l_kcatchup_basis_code_type;
4777     l_kcatchup_start_date_tab2 l_kcatchup_start_date_type;
4778     l_kcatchup_settlemen_code_tab2 l_kcatchup_settlemen_code_type;
4779     l_krate_change_start_date_tab2 l_krate_change_start_date_type;
4780     l_krate_change_frequ_code_tab2 l_krate_change_frequ_code_type;
4781     l_krate_change_value_tab2 l_krate_change_value_type;
4782     l_kconversion_option_code_tab2 l_kconversion_option_code_type;
4783     l_knext_conversion_date_tab2 l_knext_conversion_date_type;
4784     l_kconversion_type_code_tab2 l_kconversion_type_code_type;
4785     l_kattribute_category_tab2 l_kattribute_category_type;
4786     l_kattribute1_tab2 l_kattribute1_type;
4787     l_kattribute2_tab2 l_kattribute2_type;
4788     l_kattribute3_tab2 l_kattribute3_type;
4789     l_kattribute4_tab2 l_kattribute4_type;
4790     l_kattribute5_tab2 l_kattribute5_type;
4791     l_kattribute6_tab2 l_kattribute6_type;
4792     l_kattribute7_tab2 l_kattribute7_type;
4793     l_kattribute8_tab2 l_kattribute8_type;
4794     l_kattribute9_tab2 l_kattribute9_type;
4795     l_kattribute10_tab2 l_kattribute10_type;
4796     l_kattribute11_tab2 l_kattribute11_type;
4797     l_kattribute12_tab2 l_kattribute12_type;
4798     l_kattribute13_tab2 l_kattribute13_type;
4799     l_kattribute14_tab2 l_kattribute14_type;
4800     l_kattribute15_tab2 l_kattribute15_type;
4801     l_kcatchup_frequency_code_tab2 l_kcatchup_frequency_code_type;
4802 
4803     l_k_rate_params_counter number := 1;
4804 
4805     /*CURSOR get_rebook_date_csr(p_id NUMBER) IS
4806     SELECT DATE_TRANSACTION_OCCURRED
4807     FROM   OKL_TRX_CONTRACTS
4808     WHERE  KHR_ID = p_id
4809     AND    TCN_TYPE = 'TRBK'
4810     and    TSU_CODE = 'ENTERED';
4811 
4812     l_rebook_date DATE; */
4813     l_prev_counter NUMBER;
4814 
4815 CURSOR C30(p_id NUMBER) IS
4816 SELECT
4817        a.khr_id, a.parameter_type_code, a.effective_from_date,
4818        a.effective_to_date, a.interest_index_id, a.base_rate,
4819        a.interest_start_date, a.adder_rate, a.maximum_rate,
4820        a.minimum_rate, a.principal_basis_code, a.days_in_a_month_code,
4821        a.days_in_a_year_code, a.interest_basis_code, a.rate_delay_code,
4822        a.rate_delay_frequency, a.compounding_frequency_code, a.calculation_formula_id,
4823        a.catchup_basis_code, a.catchup_start_date, a.catchup_settlement_code,
4824        a.rate_change_start_date, a.rate_change_frequency_code, a.rate_change_value,
4825        a.conversion_option_code, a.next_conversion_date, a.conversion_type_code,
4826        a.attribute_category, a.attribute1, a.attribute2,
4827        a.attribute3, a.attribute4, a.attribute5,
4828        a.attribute6, a.attribute7, a.attribute8,
4829        a.attribute9, a.attribute10, a.attribute11,
4830        a.attribute12, a.attribute13, a.attribute14,
4831        a.attribute15, a.catchup_frequency_code
4832 FROM   OKL_K_RATE_PARAMS a
4833 WHERE  a.khr_id = p_id;
4834 -- Bug 4730726
4835 /*AND    (
4836          (a.effective_to_date is NULL AND p_trans_type not in ('CRB', 'CRL'))
4837          OR
4838          ((a.effective_to_date is NULL OR a.effective_to_date IS NOT NULL) AND
4839            p_trans_type in ('CRB', 'CRL'))
4840        ); */
4841 BEGIN
4842   IF (G_DEBUG_ENABLED = 'Y') THEN
4843     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
4844   END IF;
4845   /*
4846   l_rebook_date := NULL;
4847   IF (p_trans_type = 'CRB') THEN
4848     FOR r IN get_rebook_date_csr(p_old_id)
4849     LOOP
4850       l_rebook_date := r.date_transaction_occurred;
4851     END LOOP;
4852     print('In copy_var_int_rate_params: l_rebook_date=' || l_rebook_date);
4853     IF (l_rebook_date is NULL) THEN
4854       RAISE OKL_API.G_EXCEPTION_ERROR;
4855     END IF;
4856   END IF;
4857   */
4858   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4859       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'p_rbk_date=' || p_rbk_date);
4860   END IF;
4861 
4862   OPEN C30(p_old_id);
4863   LOOP
4864     FETCH C30 BULK COLLECT INTO
4865      l_kkhr_id_tab2, l_kparameter_type_code_tab2, l_keffective_from_date_tab2,
4866      l_keffective_to_date_tab2, l_kinterest_index_id_tab2, l_kbase_rate_tab2,
4867      l_kinterest_start_date_tab2, l_kadder_rate_tab2, l_kmaximum_rate_tab2,
4868      l_kminimum_rate_tab2, l_kprincipal_basis_code_tab2, l_kdays_in_a_month_code_tab2,
4869      l_kdays_in_a_year_code_tab2, l_kinterest_basis_code_tab2, l_krate_delay_code_tab2,
4870      l_krate_delay_frequency_tab2, l_kcompounding_frequ_code_tab2, l_kcalculation_formula_id_tab2,
4871      l_kcatchup_basis_code_tab2, l_kcatchup_start_date_tab2, l_kcatchup_settlemen_code_tab2,
4872      l_krate_change_start_date_tab2, l_krate_change_frequ_code_tab2, l_krate_change_value_tab2,
4873      l_kconversion_option_code_tab2, l_knext_conversion_date_tab2, l_kconversion_type_code_tab2,
4874      l_kattribute_category_tab2, l_kattribute1_tab2, l_kattribute2_tab2,
4875      l_kattribute3_tab2, l_kattribute4_tab2, l_kattribute5_tab2,
4876      l_kattribute6_tab2, l_kattribute7_tab2, l_kattribute8_tab2,
4877      l_kattribute9_tab2, l_kattribute10_tab2, l_kattribute11_tab2,
4878      l_kattribute12_tab2, l_kattribute13_tab2, l_kattribute14_tab2,
4879      l_kattribute15_tab2, l_kcatchup_frequency_code_tab2
4880     LIMIT G_BULK_SIZE;
4881     EXIT WHEN l_kkhr_id_tab2.COUNT = 0;
4882 
4883     FOR i IN l_kkhr_id_tab2.FIRST..l_kkhr_id_tab2.LAST
4884     LOOP
4885       l_kkhr_id_tab(l_k_rate_params_counter) := l_kkhr_id_tab2(i);
4886       l_kkhr_id_tab(l_k_rate_params_counter) := p_new_id;
4887 
4888       l_kparameter_type_code_tab(l_k_rate_params_counter) := l_kparameter_type_code_tab2(i);
4889       l_keffective_from_date_tab(l_k_rate_params_counter) := l_keffective_from_date_tab2(i);
4890       l_keffective_to_date_tab(l_k_rate_params_counter) := l_keffective_to_date_tab2(i);
4891       l_kinterest_index_id_tab(l_k_rate_params_counter) := l_kinterest_index_id_tab2(i);
4892       l_kbase_rate_tab(l_k_rate_params_counter) := l_kbase_rate_tab2(i);
4893       l_kinterest_start_date_tab(l_k_rate_params_counter) := l_kinterest_start_date_tab2(i);
4894       IF ( l_kinterest_start_date_tab(l_k_rate_params_counter) IS NOT NULL) THEN
4895         l_kinterest_start_date_tab(l_k_rate_params_counter) := p_start_date;
4896       END IF;
4897 
4898       l_kadder_rate_tab(l_k_rate_params_counter) := l_kadder_rate_tab2(i);
4899       l_kmaximum_rate_tab(l_k_rate_params_counter) := l_kmaximum_rate_tab2(i);
4900       l_kminimum_rate_tab(l_k_rate_params_counter) := l_kminimum_rate_tab2(i);
4901       l_kprincipal_basis_code_tab(l_k_rate_params_counter) := l_kprincipal_basis_code_tab2(i);
4902       l_kdays_in_a_month_code_tab(l_k_rate_params_counter) := l_kdays_in_a_month_code_tab2(i);
4903       l_kdays_in_a_year_code_tab(l_k_rate_params_counter) := l_kdays_in_a_year_code_tab2(i);
4904       l_kinterest_basis_code_tab(l_k_rate_params_counter) := l_kinterest_basis_code_tab2(i);
4905       l_krate_delay_code_tab(l_k_rate_params_counter) := l_krate_delay_code_tab2(i);
4906       l_krate_delay_frequency_tab(l_k_rate_params_counter) := l_krate_delay_frequency_tab2(i);
4907       l_kcompounding_frequ_code_tab(l_k_rate_params_counter) := l_kcompounding_frequ_code_tab2(i);
4908       l_kcalculation_formula_id_tab(l_k_rate_params_counter) := l_kcalculation_formula_id_tab2(i);
4909       l_kcatchup_basis_code_tab(l_k_rate_params_counter) := l_kcatchup_basis_code_tab2(i);
4910       l_kcatchup_start_date_tab(l_k_rate_params_counter) := l_kcatchup_start_date_tab2(i);
4911       IF (l_kcatchup_start_date_tab(l_k_rate_params_counter) IS NOT NULL) THEN
4912         l_kcatchup_start_date_tab(l_k_rate_params_counter) := p_start_date;
4913       END IF;
4914 
4915       l_kcatchup_settlemen_code_tab(l_k_rate_params_counter) := l_kcatchup_settlemen_code_tab2(i);
4916       l_krate_change_start_date_tab(l_k_rate_params_counter) := l_krate_change_start_date_tab2(i);
4917       IF (l_krate_change_start_date_tab(l_k_rate_params_counter) IS NOT NULL) THEN
4918         l_krate_change_start_date_tab(l_k_rate_params_counter) := p_start_date;
4919       END IF;
4920 
4921       l_krate_change_frequ_code_tab(l_k_rate_params_counter) := l_krate_change_frequ_code_tab2(i);
4922       l_krate_change_value_tab(l_k_rate_params_counter) := l_krate_change_value_tab2(i);
4923       l_kconversion_option_code_tab(l_k_rate_params_counter) := l_kconversion_option_code_tab2(i);
4924       l_knext_conversion_date_tab(l_k_rate_params_counter) := l_knext_conversion_date_tab2(i);
4925       l_kconversion_type_code_tab(l_k_rate_params_counter) := l_kconversion_type_code_tab2(i);
4926       l_kattribute_category_tab(l_k_rate_params_counter) := l_kattribute_category_tab2(i);
4927       l_kattribute1_tab(l_k_rate_params_counter) := l_kattribute1_tab2(i);
4928       l_kattribute2_tab(l_k_rate_params_counter) := l_kattribute2_tab2(i);
4929       l_kattribute3_tab(l_k_rate_params_counter) := l_kattribute3_tab2(i);
4930       l_kattribute4_tab(l_k_rate_params_counter) := l_kattribute4_tab2(i);
4931       l_kattribute5_tab(l_k_rate_params_counter) := l_kattribute5_tab2(i);
4932       l_kattribute6_tab(l_k_rate_params_counter) := l_kattribute6_tab2(i);
4933       l_kattribute7_tab(l_k_rate_params_counter) := l_kattribute7_tab2(i);
4934       l_kattribute8_tab(l_k_rate_params_counter) := l_kattribute8_tab2(i);
4935       l_kattribute9_tab(l_k_rate_params_counter) := l_kattribute9_tab2(i);
4936       l_kattribute10_tab(l_k_rate_params_counter) := l_kattribute10_tab2(i);
4937       l_kattribute11_tab(l_k_rate_params_counter) := l_kattribute11_tab2(i);
4938       l_kattribute12_tab(l_k_rate_params_counter) := l_kattribute12_tab2(i);
4939       l_kattribute13_tab(l_k_rate_params_counter) := l_kattribute13_tab2(i);
4940       l_kattribute14_tab(l_k_rate_params_counter) := l_kattribute14_tab2(i);
4941       l_kattribute15_tab(l_k_rate_params_counter) := l_kattribute15_tab2(i);
4942       l_kcatchup_frequency_code_tab(l_k_rate_params_counter) := l_kcatchup_frequency_code_tab2(i);
4943 
4944       l_k_rate_params_counter := l_k_rate_params_counter + 1;
4945 
4946       -- No special processing for rebook copy (Bug 4730726)
4947       /*IF (p_trans_type = 'CRB') THEN
4948         l_prev_counter := l_k_rate_params_counter - 1;
4949         IF (l_kparameter_type_code_tab(l_prev_counter) = 'ACTUAL' AND
4950             l_keffective_to_date_tab(l_prev_counter) IS NULL) THEN
4951           l_keffective_to_date_tab(l_prev_counter) := p_rbk_date - 1;
4952 
4953           -- Make a copy of the current set for rebook copy
4954           l_kkhr_id_tab(l_k_rate_params_counter) := p_new_id;
4955 
4956           l_kparameter_type_code_tab(l_k_rate_params_counter) := l_kparameter_type_code_tab(l_prev_counter);
4957 
4958           l_keffective_from_date_tab(l_k_rate_params_counter) := p_rbk_date;
4959           l_keffective_to_date_tab(l_k_rate_params_counter) := NULL;
4960 
4961           l_kinterest_index_id_tab(l_k_rate_params_counter) := l_kinterest_index_id_tab(l_prev_counter);
4962           l_kbase_rate_tab(l_k_rate_params_counter) := l_kbase_rate_tab(l_prev_counter);
4963           l_kinterest_start_date_tab(l_k_rate_params_counter) := l_kinterest_start_date_tab(l_prev_counter);
4964           IF ( l_kinterest_start_date_tab(l_k_rate_params_counter) IS NOT NULL) THEN
4965             l_kinterest_start_date_tab(l_k_rate_params_counter) := p_start_date;
4966           END IF;
4967 
4968           l_kadder_rate_tab(l_k_rate_params_counter) := l_kadder_rate_tab(l_prev_counter);
4969           l_kmaximum_rate_tab(l_k_rate_params_counter) := l_kmaximum_rate_tab(l_prev_counter);
4970           l_kminimum_rate_tab(l_k_rate_params_counter) := l_kminimum_rate_tab(l_prev_counter);
4971           l_kprincipal_basis_code_tab(l_k_rate_params_counter) := l_kprincipal_basis_code_tab(l_prev_counter);
4972           l_kdays_in_a_month_code_tab(l_k_rate_params_counter) := l_kdays_in_a_month_code_tab(l_prev_counter);
4973           l_kdays_in_a_year_code_tab(l_k_rate_params_counter) := l_kdays_in_a_year_code_tab(l_prev_counter);
4974           l_kinterest_basis_code_tab(l_k_rate_params_counter) := l_kinterest_basis_code_tab(l_prev_counter);
4975           l_krate_delay_code_tab(l_k_rate_params_counter) := l_krate_delay_code_tab(l_prev_counter);
4976           l_krate_delay_frequency_tab(l_k_rate_params_counter) := l_krate_delay_frequency_tab(l_prev_counter);
4977           l_kcompounding_frequ_code_tab(l_k_rate_params_counter) := l_kcompounding_frequ_code_tab(l_prev_counter);
4978           l_kcalculation_formula_id_tab(l_k_rate_params_counter) := l_kcalculation_formula_id_tab(l_prev_counter);
4979           l_kcatchup_basis_code_tab(l_k_rate_params_counter) := l_kcatchup_basis_code_tab(l_prev_counter);
4980           l_kcatchup_start_date_tab(l_k_rate_params_counter) := l_kcatchup_start_date_tab(l_prev_counter);
4981           IF (l_kcatchup_start_date_tab(l_k_rate_params_counter) IS NOT NULL) THEN
4982             l_kcatchup_start_date_tab(l_k_rate_params_counter) := p_start_date;
4983           END IF;
4984 
4985           l_kcatchup_settlemen_code_tab(l_k_rate_params_counter) := l_kcatchup_settlemen_code_tab(l_prev_counter);
4986           l_krate_change_start_date_tab(l_k_rate_params_counter) := l_krate_change_start_date_tab(l_prev_counter);
4987           IF (l_krate_change_start_date_tab(l_k_rate_params_counter) IS NOT NULL) THEN
4988             l_krate_change_start_date_tab(l_k_rate_params_counter) := p_start_date;
4989           END IF;
4990 
4991           l_krate_change_frequ_code_tab(l_k_rate_params_counter) := l_krate_change_frequ_code_tab(l_prev_counter);
4992           l_krate_change_value_tab(l_k_rate_params_counter) := l_krate_change_value_tab(l_prev_counter);
4993           l_kconversion_option_code_tab(l_k_rate_params_counter) := l_kconversion_option_code_tab(l_prev_counter);
4994           l_knext_conversion_date_tab(l_k_rate_params_counter) := l_knext_conversion_date_tab(l_prev_counter);
4995           l_kconversion_type_code_tab(l_k_rate_params_counter) := l_kconversion_type_code_tab(l_prev_counter);
4996           l_kattribute_category_tab(l_k_rate_params_counter) := l_kattribute_category_tab(l_prev_counter);
4997           l_kattribute1_tab(l_k_rate_params_counter) := l_kattribute1_tab(l_prev_counter);
4998           l_kattribute2_tab(l_k_rate_params_counter) := l_kattribute2_tab(l_prev_counter);
4999           l_kattribute3_tab(l_k_rate_params_counter) := l_kattribute3_tab(l_prev_counter);
5000           l_kattribute4_tab(l_k_rate_params_counter) := l_kattribute4_tab(l_prev_counter);
5001           l_kattribute5_tab(l_k_rate_params_counter) := l_kattribute5_tab(l_prev_counter);
5002           l_kattribute6_tab(l_k_rate_params_counter) := l_kattribute6_tab(l_prev_counter);
5003           l_kattribute7_tab(l_k_rate_params_counter) := l_kattribute7_tab(l_prev_counter);
5004           l_kattribute8_tab(l_k_rate_params_counter) := l_kattribute8_tab(l_prev_counter);
5005           l_kattribute9_tab(l_k_rate_params_counter) := l_kattribute9_tab(l_prev_counter);
5006           l_kattribute10_tab(l_k_rate_params_counter) := l_kattribute10_tab(l_prev_counter);
5007           l_kattribute11_tab(l_k_rate_params_counter) := l_kattribute11_tab(l_prev_counter);
5008           l_kattribute12_tab(l_k_rate_params_counter) := l_kattribute12_tab(l_prev_counter);
5009           l_kattribute13_tab(l_k_rate_params_counter) := l_kattribute13_tab(l_prev_counter);
5010           l_kattribute14_tab(l_k_rate_params_counter) := l_kattribute14_tab(l_prev_counter);
5011           l_kattribute15_tab(l_k_rate_params_counter) := l_kattribute15_tab(l_prev_counter);
5012           l_kcatchup_frequency_code_tab(l_k_rate_params_counter) := l_kcatchup_frequency_code_tab(l_prev_counter);
5013 
5014           l_k_rate_params_counter := l_k_rate_params_counter + 1;
5015         END IF;
5016       END IF;*/ -- if rebook copy
5017 
5018     END LOOP;
5019   END LOOP;
5020   CLOSE C30;
5021 
5022   IF l_k_rate_params_counter > 1 THEN
5023     FORALL i IN l_kkhr_id_tab.FIRST..l_kkhr_id_tab.LAST
5024       INSERT INTO okl_k_rate_params (
5025        khr_id, parameter_type_code, effective_from_date,
5026        effective_to_date, interest_index_id, base_rate,
5027        interest_start_date, adder_rate, maximum_rate,
5028        minimum_rate, principal_basis_code, days_in_a_month_code,
5029        days_in_a_year_code, interest_basis_code, rate_delay_code,
5030        rate_delay_frequency,compounding_frequency_code, calculation_formula_id,
5031        catchup_basis_code, catchup_start_date, catchup_settlement_code,
5032        rate_change_start_date, rate_change_frequency_code, rate_change_value,
5033        conversion_option_code, next_conversion_date, conversion_type_code,
5034        attribute_category, attribute1, attribute2,
5035        attribute3, attribute4, attribute5,
5036        attribute6, attribute7, attribute8,
5037        attribute9, attribute10, attribute11,
5038        attribute12, attribute13, attribute14,
5039        attribute15, created_by, creation_date,
5040        last_updated_by, last_update_date, last_update_login,
5041        catchup_frequency_code
5042       ) VALUES (
5043        l_kkhr_id_tab(i), l_kparameter_type_code_tab(i), l_keffective_from_date_tab(i),
5044        l_keffective_to_date_tab(i), l_kinterest_index_id_tab(i), l_kbase_rate_tab(i),
5045        l_kinterest_start_date_tab(i), l_kadder_rate_tab(i), l_kmaximum_rate_tab(i),
5046        l_kminimum_rate_tab(i), l_kprincipal_basis_code_tab(i), l_kdays_in_a_month_code_tab(i),
5047        l_kdays_in_a_year_code_tab(i), l_kinterest_basis_code_tab(i), l_krate_delay_code_tab(i),
5048        l_krate_delay_frequency_tab(i), l_kcompounding_frequ_code_tab(i), l_kcalculation_formula_id_tab(i),
5049        l_kcatchup_basis_code_tab(i), l_kcatchup_start_date_tab(i), l_kcatchup_settlemen_code_tab(i),
5050        l_krate_change_start_date_tab(i), l_krate_change_frequ_code_tab(i), l_krate_change_value_tab(i),
5051        l_kconversion_option_code_tab(i), l_knext_conversion_date_tab(i), l_kconversion_type_code_tab(i),
5052        l_kattribute_category_tab(i),l_kattribute1_tab(i), l_kattribute2_tab(i),
5053        l_kattribute3_tab(i), l_kattribute4_tab(i), l_kattribute5_tab(i),
5054        l_kattribute6_tab(i), l_kattribute7_tab(i), l_kattribute8_tab(i),
5055        l_kattribute9_tab(i), l_kattribute10_tab(i), l_kattribute11_tab(i),
5056        l_kattribute12_tab(i), l_kattribute13_tab(i), l_kattribute14_tab(i),
5057        l_kattribute15_tab(i), l_created_by, SYSDATE,
5058        l_last_updated_by, SYSDATE, l_last_update_login,
5059        l_kcatchup_frequency_code_tab(i)
5060       );
5061   END IF;
5062 
5063 EXCEPTION WHEN OTHERS THEN
5064 
5065   --x_return_status := OKL_API.G_RET_STS_ERROR;
5066     /* DEBUG */
5067   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
5068       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
5069     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 || ' ...');
5070   END IF;
5071   IF (l_kkhr_id_tab.COUNT > 0) THEN
5072   FOR i IN l_kkhr_id_tab.first..l_kkhr_id_tab.last
5073   LOOP
5074     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
5075           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'KHR_ID('||i||')=' || l_kKHR_ID_tab(i));
5076       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'PARAMETER_TYPE_CODE('||i||')=' || l_kPARAMETER_TYPE_CODE_tab(i));
5077       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'EFFECTIVE_FROM_DATE('||i||')=' || l_kEFFECTIVE_FROM_DATE_tab(i));
5078       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'EFFECTIVE_TO_DATE('||i||')=' || l_kEFFECTIVE_TO_DATE_tab(i));
5079       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'INTEREST_INDEX_ID('||i||')=' || l_kINTEREST_INDEX_ID_tab(i));
5080       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'BASE_RATE('||i||')=' || l_kBASE_RATE_tab(i));
5081       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'INTEREST_START_DATE('||i||')=' || l_kINTEREST_START_DATE_tab(i));
5082       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ADDER_RATE('||i||')=' || l_kADDER_RATE_tab(i));
5083       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'MAXIMUM_RATE('||i||')=' || l_kMAXIMUM_RATE_tab(i));
5084       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'MINIMUM_RATE('||i||')=' || l_kMINIMUM_RATE_tab(i));
5085       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'PRINCIPAL_BASIS_CODE('||i||')=' || l_kPRINCIPAL_BASIS_CODE_tab(i));
5086       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));
5087       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));
5088       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'INTEREST_BASIS_CODE('||i||')=' || l_kINTEREST_BASIS_CODE_tab(i));
5089       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'RATE_DELAY_CODE('||i||')=' || l_kRATE_DELAY_CODE_tab(i));
5090       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'RATE_DELAY_FREQUENCY('||i||')=' || l_kRATE_DELAY_FREQUENCY_tab(i));
5091       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'COMPOUNDING_FREQUENCY_CODE('||i||')=' || l_kCOMPOUNDING_FREQU_CODE_tab(i));
5092       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'CALCULATION_FORMULA_ID('||i||')=' || l_kCALCULATION_FORMULA_ID_tab(i));
5093       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'CATCHUP_BASIS_CODE('||i||')=' || l_kCATCHUP_BASIS_CODE_tab(i));
5094       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'CATCHUP_START_DATE('||i||')=' || l_kCATCHUP_START_DATE_tab(i));
5095       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'CATCHUP_SETTLEMENT_CODE('||i||')=' || l_kCATCHUP_SETTLEMEN_CODE_tab(i));
5096       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'RATE_CHANGE_START_DATE('||i||')=' || l_kRATE_CHANGE_START_DATE_tab(i));
5097       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'RATE_CHANGE_FREQUENCY_CODE('||i||')=' || l_kRATE_CHANGE_FREQU_CODE_tab(i));
5098       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'RATE_CHANGE_VALUE('||i||')=' || l_kRATE_CHANGE_VALUE_tab(i));
5099       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'CONVERSION_OPTION_CODE('||i||')=' || l_kCONVERSION_OPTION_CODE_tab(i));
5100       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'NEXT_CONVERSION_DATE('||i||')=' || l_kNEXT_CONVERSION_DATE_tab(i));
5101       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'CONVERSION_TYPE_CODE('||i||')=' || l_kCONVERSION_TYPE_CODE_tab(i));
5102       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE_CATEGORY('||i||')=' || l_kATTRIBUTE_CATEGORY_tab(i));
5103       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE1('||i||')=' || l_kATTRIBUTE1_tab(i));
5104       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE2('||i||')=' || l_kATTRIBUTE2_tab(i));
5105       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE3('||i||')=' || l_kATTRIBUTE3_tab(i));
5106       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE4('||i||')=' || l_kATTRIBUTE4_tab(i));
5107       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE5('||i||')=' || l_kATTRIBUTE5_tab(i));
5108       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE6('||i||')=' || l_kATTRIBUTE6_tab(i));
5109       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE7('||i||')=' || l_kATTRIBUTE7_tab(i));
5110       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE8('||i||')=' || l_kATTRIBUTE8_tab(i));
5111       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE9('||i||')=' || l_kATTRIBUTE9_tab(i));
5112       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE10('||i||')=' || l_kATTRIBUTE10_tab(i));
5113       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE11('||i||')=' || l_kATTRIBUTE11_tab(i));
5114       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE12('||i||')=' || l_kATTRIBUTE12_tab(i));
5115       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE13('||i||')=' || l_kATTRIBUTE13_tab(i));
5116       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE14('||i||')=' || l_kATTRIBUTE14_tab(i));
5117       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ATTRIBUTE15('||i||')=' || l_kATTRIBUTE15_tab(i));
5118       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'CATCHUP_FREQUENCY_CODE('||i||')=' || l_kCATCHUP_FREQUENCY_CODE_tab(i));
5119     END IF;
5120   END LOOP;
5121   END IF;
5122 
5123   RAISE OKC_API.G_EXCEPTION_ERROR;
5124 END copy_var_int_rate_params;
5125 
5126 --------------------------------------------------------------------------------
5127 -- Start of comments
5128 --
5129 -- Procedure Name  : copy_lease_contract_new
5130 -- Description     : Copies the contract and all the lines attached to the contract
5131 -- Business Rules  :
5132 -- Parameters      :
5133 -- Version         : 1.0
5134 -- Notes           :
5135 -- End of comments
5136 --------------------------------------------------------------------------------
5137 PROCEDURE copy_lease_contract_new(
5138             p_api_version              IN  NUMBER,
5139             p_init_msg_list            IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
5140             x_return_status            OUT NOCOPY VARCHAR2,
5141             x_msg_count                OUT NOCOPY NUMBER,
5142             x_msg_data                 OUT NOCOPY VARCHAR2,
5143             p_commit                   IN  VARCHAR2 DEFAULT 'F',
5144             p_chr_id                   IN  NUMBER,
5145             p_contract_number	       IN  VARCHAR2,
5146             p_contract_number_modifier IN  VARCHAR2,
5147             p_to_template_yn	       IN  VARCHAR2 DEFAULT 'N',
5148             p_renew_ref_yn             IN  VARCHAR2,
5149             p_copy_lines_yn            IN VARCHAR2,
5150             p_override_org	       IN  VARCHAR2 DEFAULT 'N',
5151             p_trans_type               IN  VARCHAR2,
5152             x_chr_id                   OUT NOCOPY NUMBER,
5153             p_rbk_date                 IN  DATE DEFAULT NULL) IS
5154 
5155 l_api_name CONSTANT VARCHAR2(30) := 'COPY_LEASE_CONTRACT_NEW';
5156 G_APP_NAME CONSTANT VARCHAR2(200) := 'OKL_COPY_CONTRACT';
5157 G_PKG_NAME CONSTANT VARCHAR2(200) := 'OKL_COPY_CONTRACT_PVT';
5158     G_UNEXPECTED_ERROR            CONSTANT  VARCHAR2(200) := 'OKL_CONTRACTS_UNEXP_ERROR';
5159     G_SQLCODE_TOKEN               CONSTANT  VARCHAR2(200) := 'SQLcode';
5160     G_SQLERRM_TOKEN               CONSTANT  VARCHAR2(200) := 'SQLerrm';
5161     --G_WF_ITM_CONTRACT_ID CONSTANT VARCHAR2(11) := 'CONTRACT_ID';
5162    G_WF_EVT_KHR_CREATED CONSTANT VARCHAR2(41) := 'oracle.apps.okl.la.lease_contract.created';
5163 
5164 G_WF_EVT_SERV_FEXP_UPDATED     CONSTANT VARCHAR2(70):= 'oracle.apps.okl.la.lease_contract.service_fee_expense_updated';
5165 G_WF_EVT_FEE_EXP_UPDATED       CONSTANT VARCHAR2(70):= 'oracle.apps.okl.la.lease_contract.fee_expense_updated';
5166 G_WF_EVT_FEE_PASS_UPDATED      CONSTANT VARCHAR2(70):= 'oracle.apps.okl.la.lease_contract.fee_passthrough_updated';
5167 G_WF_ITM_FEE_LINE_ID  CONSTANT VARCHAR2(30)       := 'FEE_LINE_ID';
5168 G_WF_ITM_SERV_CHR_ID  CONSTANT VARCHAR2(30)       := 'SERVICE_CONTRACT_ID';
5169 G_WF_ITM_SERV_CLE_ID  CONSTANT VARCHAR2(30)       := 'SERVICE_CONTRACT_LINE_ID';
5170 
5171 G_WF_EVT_SERV_PASS_UPDATED     CONSTANT VARCHAR2(70):= 'oracle.apps.okl.la.lease_contract.service_fee_passthrough_updated';
5172 G_WF_EVT_ASSET_PROPTAX_UPDATED CONSTANT VARCHAR2(70):= 'oracle.apps.okl.la.lease_contract.asset_property_tax_updated';
5173 G_WF_EVT_ASSET_FILING_UPDATED  CONSTANT VARCHAR2(70):= 'oracle.apps.okl.la.lease_contract.asset_filing_updated';
5174 G_WF_EVT_CONTRACT_TERM_UPDATED CONSTANT VARCHAR2(70):= 'oracle.apps.okl.la.lease_contract.asset_filing_terms_updated';
5175 G_WF_ITM_TERMS_ID CONSTANT VARCHAR2(30)           := 'TERMS_ID';
5176 
5177 G_WF_EVT_ASSET_SUP_INV_CRTD CONSTANT VARCHAR2(65)   := 'oracle.apps.okl.la.lease_contract.asset_supplier_invoice_created';
5178 G_WF_EVT_ASSETTAX_DPRN_CRTD CONSTANT VARCHAR2(65) := 'oracle.apps.okl.la.lease_contract.asset_tax_depreciation_created';
5179 G_WF_EVT_ASSETBOOK_DPRN_CRTD CONSTANT VARCHAR2(65)   := 'oracle.apps.okl.la.lease_contract.asset_book_depreciation_created';
5180 G_WF_EVT_CR_LMT_CREATED CONSTANT VARCHAR2(50) := 'oracle.apps.okl.la.credit_limit.created';
5181 --G_WF_EVT_CR_LMT_UPDATED CONSTANT VARCHAR2(50) := 'oracle.apps.okl.la.credit_limit.updated';
5182 --G_WF_EVT_CR_LMT_REMOVED CONSTANT VARCHAR2(50) := 'oracle.apps.okl.la.credit_limit.remove';
5183 G_WF_EVT_ASSET_CREATED CONSTANT VARCHAR2(50) := 'oracle.apps.okl.la.lease_contract.asset_created';
5184 --G_WF_EVT_ASSET_UPDATED CONSTANT VARCHAR2(50) := 'oracle.apps.okl.la.lease_contract.asset_updated';
5185 --G_WF_EVT_ASSET_REMOVED CONSTANT VARCHAR2(50) := 'oracle.apps.okl.la.lease_contract.remove_asset';
5186 G_WF_EVT_SERVICE_CREATED CONSTANT VARCHAR2(60) := 'oracle.apps.okl.la.lease_contract.service_fee_created';
5187 --G_WF_EVT_SERVICE_UPDATED CONSTANT VARCHAR2(60) := 'oracle.apps.okl.la.lease_contract.service_fee_updated';
5188 G_WF_EVT_ASSET_SUBSIDY_CRTD CONSTANT VARCHAR2(65)   := 'oracle.apps.okl.la.lease_contract.asset_subsidy_created';
5189 
5190 G_WF_EVT_ASSET_SERIAL_CRTD CONSTANT VARCHAR2(65) := 'oracle.apps.okl.la.lease_contract.asset_serial_numbers_created';
5191 G_WF_ITM_SERIAL_NUM CONSTANT VARCHAR2(30)         := 'SERIAL_NUMBER';
5192 G_WF_ITM_CR_LINE_ID CONSTANT VARCHAR2(30) := 'CREDIT_LINE_ID';
5193 G_WF_ITM_CR_LMT_ID CONSTANT VARCHAR2(30) := 'CREDIT_LIMIT_ID';
5194 G_WF_ITM_CONTRACT_ID CONSTANT VARCHAR2(30) := 'CONTRACT_ID';
5195 G_WF_ITM_ASSET_ID CONSTANT VARCHAR2(30) := 'ASSET_ID';
5196 G_WF_ITM_CONTRACT_PROCESS CONSTANT VARCHAR2(20) := 'CONTRACT_PROCESS';
5197 G_WF_ITM_SRV_LINE_ID CONSTANT VARCHAR2(30) := 'SERVICE_LINE_ID';
5198 G_WF_ITM_SERVICE_KHR_ID CONSTANT VARCHAR2(30) := 'SERVICE_CONTRACT_ID';
5199 G_WF_ITM_SERVICE_CLE_ID CONSTANT VARCHAR2(30) := 'SERVICE_CONTRACT_LINE_ID';
5200 G_WF_ITM_SUBSIDY_ID CONSTANT VARCHAR2(30)           := 'SUBSIDY_ID';
5201 G_WF_ITM_SERV_LINE_ID CONSTANT VARCHAR2(30) := 'SERVICE_LINE_ID';
5202 
5203 G_WF_ITM_PARTY_ID CONSTANT VARCHAR2(15)    := 'PARTY_ID';
5204 G_WF_ITM_PARTY_ROLE_ID CONSTANT VARCHAR2(15)    := 'PARTY_ROLE_ID';
5205 
5206 G_WF_EVT_KHR_PARTY_CREATED CONSTANT VARCHAR2(50) := 'oracle.apps.okl.la.lease_contract.party_created';
5207 G_WF_EVT_ASSET_FEE_CREATED CONSTANT VARCHAR2(60) := 'oracle.apps.okl.la.lease_contract.asset_fee_created';
5208 G_WF_EVT_ASSET_SERV_FEE_CRTD CONSTANT VARCHAR2(65) := 'oracle.apps.okl.la.lease_contract.asset_service_fee_created';
5209 
5210 G_WF_EVT_FEE_CREATED CONSTANT VARCHAR2(50) := 'oracle.apps.okl.la.lease_contract.fee_created';
5211 --G_WF_EVT_FEE_UPDATED CONSTANT VARCHAR2(50) := 'oracle.apps.okl.la.lease_contract.fee_updated';
5212 --G_WF_ITM_FEE_LINE_ID CONSTANT VARCHAR2(30) := 'FEE_LINE_ID';
5213 
5214    --G_WF_ITM_CONTRACT_ID CONSTANT VARCHAR2(30)        := 'CONTRACT_ID';
5215    --G_WF_ITM_ASSET_ID CONSTANT VARCHAR2(30)           := 'ASSET_ID';
5216    G_WF_ITM_BOOK_CODE CONSTANT VARCHAR2(30)          := 'BOOK_CODE';
5217    --G_WF_ITM_CONTRACT_PROCESS CONSTANT VARCHAR2(30)   := 'CONTRACT_PROCESS';
5218 
5219 l_inventory_org_id NUMBER;
5220 l_curr_pos VARCHAR2(80);
5221 l_message VARCHAR2(30) ;
5222 l_new_mapping_id NUMBER;
5223 l_hstv_rec okc_k_history_pvt.hstv_rec_type;
5224 x_hstv_rec okc_k_history_pvt.hstv_rec_type;
5225 l_serv_contract_id okc_k_headers_b.id%TYPE;
5226 l_service_top_line_id okc_k_lines_b.id%TYPE;
5227 l_deal_type okl_k_headers.deal_type%TYPE;
5228 l_queried BOOLEAN := FALSE;
5229 l_line_style okc_k_lines_b.lse_id%TYPE;
5230 l_terms_id NUMBER;
5231 l_vendor_id VARCHAR2(40);
5232 l_tal_kle_cle_id NUMBER;
5233 l_new_object1_id1 VARCHAR2(40);
5234 l_contract_process    VARCHAR2(30);
5235     l_parameter_list        wf_parameter_list_t;
5236     l_event_name            wf_events.name%TYPE := NULL;
5237     l_raise_business_event  VARCHAR2(1) := OKL_API.G_FALSE;
5238     l_business_event_name  wf_events.name%TYPE := NULL;
5239 
5240 l_contract_number okc_k_headers_b.contract_number%TYPE;
5241 l_copied_id NUMBER;
5242 l_gov_id NUMBER;
5243 l_capital_amount NUMBER;
5244 l_contract_currency okc_k_headers_b.currency_code%TYPE;
5245 l_contract_start_date okc_k_headers_b.start_date%TYPE;
5246 l_conversion_type okc_k_headers_b.CONVERSION_TYPE%TYPE;
5247 l_conversion_rate okc_k_headers_b.CONVERSION_RATE%TYPE;
5248 l_conversion_rate_date okc_k_headers_b.CONVERSION_RATE_DATE%TYPE;
5249 l_template_yn okc_k_headers_b.TEMPLATE_YN%TYPE;
5250 l_trx_assets_counter4 NUMBER := 1;
5251 l_tal_to_kle_counter NUMBER := 1;
5252 l_trx_assets_counter6 NUMBER := 1;
5253 l_okl_k_lines_counter NUMBER := 1;
5254 l_try_id NUMBER;
5255 CURSOR c1(p_chr_id NUMBER) IS
5256   SELECT * FROM okc_k_headers_b
5257   WHERE id=p_chr_id;
5258 
5259 CURSOR c2(p_chr_id NUMBER) IS
5260   SELECT * FROM okc_governances
5261   WHERE  dnz_chr_id = p_chr_id;
5262 
5263 -- okc_governances_h is not needed
5264 /*
5265 cursor c3(p_chr_id number) is
5266   select * from okc_governances_h
5267   where  dnz_chr_id = p_chr_id; */
5268 
5269 CURSOR c4(p_chr_id NUMBER) IS
5270   SELECT
5271        a.id, a.line_number, a.chr_id,
5272        a.cle_id, a.cle_id_renewed, a.dnz_chr_id,
5273        a.display_sequence, a.sts_code, a.trn_code,
5274        a.lse_id, a.exception_yn, a.object_version_number,
5275        a.created_by, a.creation_date, a.last_updated_by,
5276        a.last_update_date, a.hidden_ind, a.price_negotiated,
5277        a.price_level_ind, a.price_unit, a.price_unit_percent,
5278        a.invoice_line_level_ind, a.dpas_rating, a.template_used,
5279        a.price_type, a.currency_code, a.last_update_login,
5280        a.date_terminated, a.start_date, a.end_date,
5281        a.attribute_category, a.attribute1, a.attribute2,
5282        a.attribute3, a.attribute4, a.attribute5,
5283        a.attribute6, a.attribute7, a.attribute8,
5284        a.attribute9, a.attribute10, a.attribute11,
5285        a.attribute12, a.attribute13, a.attribute14,
5286        a.attribute15, a.security_group_id, a.cle_id_renewed_to,
5287        a.price_negotiated_renewed, a.currency_code_renewed, a.upg_orig_system_ref,
5288        a.upg_orig_system_ref_id, a.date_renewed, a.orig_system_source_code,
5289        a.orig_system_id1, a.orig_system_reference1, a.program_application_id,
5290        a.program_id, a.program_update_date, a.request_id,
5291        a.price_list_id, a.price_list_line_id, a.line_list_price,
5292        a.item_to_price_yn, a.pricing_date, a.price_basis_yn,
5293        a.config_header_id, a.config_revision_number, a.config_complete_yn,
5294        a.config_valid_yn, a.config_top_model_line_id, a.config_item_type,
5295        a.config_item_id, a.service_item_yn, a.ph_pricing_type,
5296        a.ph_price_break_basis, a.ph_min_qty, a.ph_min_amt,
5297        a.ph_qp_reference_id, a.ph_value, a.ph_enforce_price_list_yn,
5298        a.ph_adjustment, a.ph_integrated_with_qp, a.cust_acct_id,
5299        a.bill_to_site_use_id, a.inv_rule_id, a.line_renewal_type_code,
5300        a.ship_to_site_use_id, a.payment_term_id, b.fee_type,
5301        c.name
5302   FROM okc_k_lines_b a,
5303        okl_k_lines b,
5304        okc_k_lines_tl c
5305   WHERE  a.dnz_chr_id = p_chr_id
5306   AND    a.id = b.id
5307   AND    a.id = c.id
5308   AND    c.LANGUAGE = USERENV('LANG');
5309 
5310 CURSOR c29(p_id NUMBER) IS
5311     SELECT rlobj.cle_id, rlobj.object1_id1
5312       FROM okc_k_rel_objs_v rlobj
5313      WHERE rlobj.chr_id = p_id
5314        --AND rlobj.cle_id = p_line_id
5315        AND rlobj.rty_code = 'OKLSRV'
5316        AND rlobj.jtot_object1_code = 'OKL_SERVICE_LINE';
5317 
5318 -- Bug 4738057
5319 CURSOR contract_exists_csr(p_contract_number IN VARCHAR2) IS
5320        SELECT ID
5321        FROM   OKC_K_HEADERS_B
5322        WHERE  CONTRACT_NUMBER = p_contract_number;
5323 
5324     TYPE l_subsidy_id_type IS TABLE OF okl_k_lines.subsidy_id%TYPE INDEX BY BINARY_INTEGER;
5325 
5326     TYPE l_id_type IS TABLE OF okc_k_lines_b.id%TYPE INDEX BY BINARY_INTEGER;
5327     TYPE l_line_number_type IS TABLE OF okc_k_lines_b.line_number%TYPE INDEX BY BINARY_INTEGER;
5328     TYPE l_chr_id_type IS TABLE OF okc_k_lines_b.chr_id%TYPE INDEX BY BINARY_INTEGER;
5329     TYPE l_cle_id_type IS TABLE OF okc_k_lines_b.cle_id%TYPE INDEX BY BINARY_INTEGER;
5330     TYPE l_cle_id_renewed_type IS TABLE OF okc_k_lines_b.cle_id_renewed%TYPE INDEX BY BINARY_INTEGER;
5331     TYPE l_dnz_chr_id_type IS TABLE OF okc_k_lines_b.dnz_chr_id%TYPE INDEX BY BINARY_INTEGER;
5332     TYPE l_display_sequence_type IS TABLE OF okc_k_lines_b.display_sequence%TYPE INDEX BY BINARY_INTEGER;
5333     TYPE l_sts_code_type IS TABLE OF okc_k_lines_b.sts_code%TYPE INDEX BY BINARY_INTEGER;
5334     TYPE l_trn_code_type IS TABLE OF okc_k_lines_b.trn_code%TYPE INDEX BY BINARY_INTEGER;
5335     TYPE l_lse_id_type IS TABLE OF okc_k_lines_b.lse_id%TYPE INDEX BY BINARY_INTEGER;
5336     --avsingh: Bug 5710213: start
5337     TYPE l_lty_code_type IS TABLE OF okc_line_styles_b.lty_code%TYPE INDEX BY BINARY_INTEGER;
5338     --avsingh: Bug 5710213: end
5339     TYPE l_exception_yn_type IS TABLE OF okc_k_lines_b.exception_yn%TYPE INDEX BY BINARY_INTEGER;
5340     TYPE l_object_version_number_type IS TABLE OF okc_k_lines_b.object_version_number%TYPE INDEX BY BINARY_INTEGER;
5341     TYPE l_created_by_type IS TABLE OF okc_k_lines_b.created_by%TYPE INDEX BY BINARY_INTEGER;
5342     TYPE l_creation_date_type IS TABLE OF okc_k_lines_b.creation_date%TYPE INDEX BY BINARY_INTEGER;
5343     TYPE l_last_updated_by_type IS TABLE OF okc_k_lines_b.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
5344     TYPE l_last_update_date_type IS TABLE OF okc_k_lines_b.last_update_date%TYPE INDEX BY BINARY_INTEGER;
5345     TYPE l_hidden_ind_type IS TABLE OF okc_k_lines_b.hidden_ind%TYPE INDEX BY BINARY_INTEGER;
5346     TYPE l_price_negotiated_type IS TABLE OF okc_k_lines_b.price_negotiated%TYPE INDEX BY BINARY_INTEGER;
5347     TYPE l_price_level_ind_type IS TABLE OF okc_k_lines_b.price_level_ind%TYPE INDEX BY BINARY_INTEGER;
5348     TYPE l_price_unit_type IS TABLE OF okc_k_lines_b.price_unit%TYPE INDEX BY BINARY_INTEGER;
5349     TYPE l_price_unit_percent_type IS TABLE OF okc_k_lines_b.price_unit_percent%TYPE INDEX BY BINARY_INTEGER;
5350     TYPE l_invoice_line_level_ind_type IS TABLE OF okc_k_lines_b.invoice_line_level_ind%TYPE INDEX BY BINARY_INTEGER;
5351     TYPE l_dpas_rating_type IS TABLE OF okc_k_lines_b.dpas_rating%TYPE INDEX BY BINARY_INTEGER;
5352     TYPE l_template_used_type IS TABLE OF okc_k_lines_b.template_used%TYPE INDEX BY BINARY_INTEGER;
5353     TYPE l_price_type_type IS TABLE OF okc_k_lines_b.price_type%TYPE INDEX BY BINARY_INTEGER;
5354     TYPE l_currency_code_type IS TABLE OF okc_k_lines_b.currency_code%TYPE INDEX BY BINARY_INTEGER;
5355     TYPE l_last_update_login_type IS TABLE OF okc_k_lines_b.last_update_login%TYPE INDEX BY BINARY_INTEGER;
5356     TYPE l_date_terminated_type IS TABLE OF okc_k_lines_b.date_terminated%TYPE INDEX BY BINARY_INTEGER;
5357     TYPE l_start_date_type IS TABLE OF okc_k_lines_b.start_date%TYPE INDEX BY BINARY_INTEGER;
5358     TYPE l_end_date_type IS TABLE OF okc_k_lines_b.end_date%TYPE INDEX BY BINARY_INTEGER;
5359     TYPE l_attribute_category_type IS TABLE OF okc_k_lines_b.attribute_category%TYPE INDEX BY BINARY_INTEGER;
5360     TYPE l_attribute1_type IS TABLE OF okc_k_lines_b.attribute1%TYPE INDEX BY BINARY_INTEGER;
5361     TYPE l_attribute2_type IS TABLE OF okc_k_lines_b.attribute2%TYPE INDEX BY BINARY_INTEGER;
5362     TYPE l_attribute3_type IS TABLE OF okc_k_lines_b.attribute3%TYPE INDEX BY BINARY_INTEGER;
5363     TYPE l_attribute4_type IS TABLE OF okc_k_lines_b.attribute4%TYPE INDEX BY BINARY_INTEGER;
5364     TYPE l_attribute5_type IS TABLE OF okc_k_lines_b.attribute5%TYPE INDEX BY BINARY_INTEGER;
5365     TYPE l_attribute6_type IS TABLE OF okc_k_lines_b.attribute6%TYPE INDEX BY BINARY_INTEGER;
5366     TYPE l_attribute7_type IS TABLE OF okc_k_lines_b.attribute7%TYPE INDEX BY BINARY_INTEGER;
5367     TYPE l_attribute8_type IS TABLE OF okc_k_lines_b.attribute8%TYPE INDEX BY BINARY_INTEGER;
5368     TYPE l_attribute9_type IS TABLE OF okc_k_lines_b.attribute9%TYPE INDEX BY BINARY_INTEGER;
5369     TYPE l_attribute10_type IS TABLE OF okc_k_lines_b.attribute10%TYPE INDEX BY BINARY_INTEGER;
5370     TYPE l_attribute11_type IS TABLE OF okc_k_lines_b.attribute11%TYPE INDEX BY BINARY_INTEGER;
5371     TYPE l_attribute12_type IS TABLE OF okc_k_lines_b.attribute12%TYPE INDEX BY BINARY_INTEGER;
5372     TYPE l_attribute13_type IS TABLE OF okc_k_lines_b.attribute13%TYPE INDEX BY BINARY_INTEGER;
5373     TYPE l_attribute14_type IS TABLE OF okc_k_lines_b.attribute14%TYPE INDEX BY BINARY_INTEGER;
5374     TYPE l_attribute15_type IS TABLE OF okc_k_lines_b.attribute15%TYPE INDEX BY BINARY_INTEGER;
5375     TYPE l_security_group_id_type IS TABLE OF okc_k_lines_b.security_group_id%TYPE INDEX BY BINARY_INTEGER;
5376     TYPE l_cle_id_renewed_to_type IS TABLE OF okc_k_lines_b.cle_id_renewed_to%TYPE INDEX BY BINARY_INTEGER;
5377     TYPE l_price_negotiated_renewed_typ IS TABLE OF okc_k_lines_b.price_negotiated_renewed%TYPE INDEX BY BINARY_INTEGER;
5378     TYPE l_currency_code_renewed_type IS TABLE OF okc_k_lines_b.currency_code_renewed%TYPE INDEX BY BINARY_INTEGER;
5379     TYPE l_upg_orig_system_ref_type IS TABLE OF okc_k_lines_b.upg_orig_system_ref%TYPE INDEX BY BINARY_INTEGER;
5380     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;
5381     TYPE l_date_renewed_type IS TABLE OF okc_k_lines_b.date_renewed%TYPE INDEX BY BINARY_INTEGER;
5382     TYPE l_orig_system_source_code_type IS TABLE OF okc_k_lines_b.orig_system_source_code%TYPE INDEX BY BINARY_INTEGER;
5383     TYPE l_orig_system_id1_type IS TABLE OF okc_k_lines_b.orig_system_id1%TYPE INDEX BY BINARY_INTEGER;
5384     TYPE l_orig_system_reference1_type IS TABLE OF okc_k_lines_b.orig_system_reference1%TYPE INDEX BY BINARY_INTEGER;
5385     TYPE l_program_application_id_type IS TABLE OF okc_k_lines_b.program_application_id%TYPE INDEX BY BINARY_INTEGER;
5386     TYPE l_program_id_type IS TABLE OF okc_k_lines_b.program_id%TYPE INDEX BY BINARY_INTEGER;
5387     TYPE l_program_update_date_type IS TABLE OF okc_k_lines_b.program_update_date%TYPE INDEX BY BINARY_INTEGER;
5388     TYPE l_request_id_type IS TABLE OF okc_k_lines_b.request_id%TYPE INDEX BY BINARY_INTEGER;
5389     TYPE l_price_list_id_type IS TABLE OF okc_k_lines_b.price_list_id%TYPE INDEX BY BINARY_INTEGER;
5390     TYPE l_price_list_line_id_type IS TABLE OF okc_k_lines_b.price_list_line_id%TYPE INDEX BY BINARY_INTEGER;
5391     TYPE l_line_list_price_type IS TABLE OF okc_k_lines_b.line_list_price%TYPE INDEX BY BINARY_INTEGER;
5392     TYPE l_item_to_price_yn_type IS TABLE OF okc_k_lines_b.item_to_price_yn%TYPE INDEX BY BINARY_INTEGER;
5393     TYPE l_pricing_date_type IS TABLE OF okc_k_lines_b.pricing_date%TYPE INDEX BY BINARY_INTEGER;
5394     TYPE l_price_basis_yn_type IS TABLE OF okc_k_lines_b.price_basis_yn%TYPE INDEX BY BINARY_INTEGER;
5395     TYPE l_config_header_id_type IS TABLE OF okc_k_lines_b.config_header_id%TYPE INDEX BY BINARY_INTEGER;
5396     TYPE l_config_revision_number_type IS TABLE OF okc_k_lines_b.config_revision_number%TYPE INDEX BY BINARY_INTEGER;
5397     TYPE l_config_complete_yn_type IS TABLE OF okc_k_lines_b.config_complete_yn%TYPE INDEX BY BINARY_INTEGER;
5398     TYPE l_config_valid_yn_type IS TABLE OF okc_k_lines_b.config_valid_yn%TYPE INDEX BY BINARY_INTEGER;
5399     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;
5400     TYPE l_config_item_type_type IS TABLE OF okc_k_lines_b.config_item_type%TYPE INDEX BY BINARY_INTEGER;
5401     TYPE l_config_item_id_type IS TABLE OF okc_k_lines_b.config_item_id%TYPE INDEX BY BINARY_INTEGER;
5402     TYPE l_service_item_yn_type IS TABLE OF okc_k_lines_b.service_item_yn%TYPE INDEX BY BINARY_INTEGER;
5403     TYPE l_ph_pricing_type_type IS TABLE OF okc_k_lines_b.ph_pricing_type%TYPE INDEX BY BINARY_INTEGER;
5404     TYPE l_ph_price_break_basis_type IS TABLE OF okc_k_lines_b.ph_price_break_basis%TYPE INDEX BY BINARY_INTEGER;
5405     TYPE l_ph_min_qty_type IS TABLE OF okc_k_lines_b.ph_min_qty%TYPE INDEX BY BINARY_INTEGER;
5406     TYPE l_ph_min_amt_type IS TABLE OF okc_k_lines_b.ph_min_amt%TYPE INDEX BY BINARY_INTEGER;
5407     TYPE l_ph_qp_reference_id_type IS TABLE OF okc_k_lines_b.ph_qp_reference_id%TYPE INDEX BY BINARY_INTEGER;
5408     TYPE l_ph_value_type IS TABLE OF okc_k_lines_b.ph_value%TYPE INDEX BY BINARY_INTEGER;
5409     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;
5410     TYPE l_ph_adjustment_type IS TABLE OF okc_k_lines_b.ph_adjustment%TYPE INDEX BY BINARY_INTEGER;
5411     TYPE l_ph_integrated_with_qp_type IS TABLE OF okc_k_lines_b.ph_integrated_with_qp%TYPE INDEX BY BINARY_INTEGER;
5412     TYPE l_cust_acct_id_type IS TABLE OF okc_k_lines_b.cust_acct_id%TYPE INDEX BY BINARY_INTEGER;
5413     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;
5414     TYPE l_inv_rule_id_type IS TABLE OF okc_k_lines_b.inv_rule_id%TYPE INDEX BY BINARY_INTEGER;
5415     TYPE l_line_renewal_type_code_type IS TABLE OF okc_k_lines_b.line_renewal_type_code%TYPE INDEX BY BINARY_INTEGER;
5416     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;
5417     TYPE l_payment_term_id_type IS TABLE OF okc_k_lines_b.payment_term_id%TYPE INDEX BY BINARY_INTEGER;
5418     TYPE l_fee_type_type IS TABLE OF okl_k_lines.fee_type%TYPE INDEX BY BINARY_INTEGER;
5419     TYPE l_name_type IS TABLE OF okc_k_lines_tl.name%TYPE INDEX BY BINARY_INTEGER;
5420 
5421     -- For okl_k_lines whole record
5422     TYPE l_okl_k_lines_rec_type IS RECORD (
5423       --id okl_k_lines.id%type := OKC_API.G_MISS_NUM,
5424       id NUMBER := OKC_API.G_MISS_NUM,
5425       oec okl_k_lines.oec%TYPE,
5426       year_built okl_k_lines.year_built%TYPE,
5427       item_description okc_k_lines_tl.item_description%TYPE := OKC_API.G_MISS_CHAR
5428     );
5429     /*
5430     TYPE lines_rec_type is record (
5431       id okl_k_lines.id%type := OKC_API.G_MISS_NUM,
5432       oec okl_k_lines.oec%type
5433     );
5434     TYPE lines_tbl_type is TABLE OF lines_rec_type
5435                 index by binary_integer; */
5436 
5437     TYPE l_okl_k_lines_rec_tab IS TABLE OF l_okl_k_lines_rec_type
5438                 INDEX BY BINARY_INTEGER;
5439     -- For okl_k_lines whole record
5440 
5441     -- For okc_k_items whole record
5442     TYPE l_okc_k_items_rec_type IS RECORD (
5443       id okc_k_items.cle_id%TYPE := OKC_API.G_MISS_NUM,
5444       number_of_items okc_k_items.number_of_items%TYPE := OKC_API.G_MISS_NUM,
5445       object1_id1 okc_k_items.object1_id1%TYPE := OKC_API.G_MISS_CHAR,
5446       object1_id2 okc_k_items.object1_id2%TYPE := OKC_API.G_MISS_CHAR
5447     );
5448     TYPE l_okc_k_items_rec_tab IS TABLE OF l_okc_k_items_rec_type INDEX BY BINARY_INTEGER;
5449     -- For okc_k_items whole record
5450 
5451 
5452     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);
5453     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);
5454     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);
5455     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);
5456     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);
5457     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);
5458     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);
5459     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);
5460     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);
5461     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);
5462     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);
5463     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);
5464     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);
5465     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);
5466     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);
5467     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);
5468     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);
5469 
5470     TYPE l_bid_mapping_tab_type IS TABLE OF l_bid_mapping_type INDEX BY BINARY_INTEGER;
5471     TYPE l_cle_lse_mapping_tab_type IS TABLE OF l_cle_lse_mapping_type INDEX BY BINARY_INTEGER;
5472     TYPE l_ssid_mapping_tab_type IS TABLE OF l_ssid_mapping_type INDEX BY BINARY_INTEGER;
5473     TYPE l_sid_mapping_tab_type IS TABLE OF l_sid_mapping_type INDEX BY BINARY_INTEGER;
5474     TYPE l_tid_mapping_tab_type IS TABLE OF l_tid_mapping_type INDEX BY BINARY_INTEGER;
5475     TYPE l_vid_mapping_tab_type IS TABLE OF l_vid_mapping_type INDEX BY BINARY_INTEGER;
5476     TYPE l_dbid_mapping_tab_type IS TABLE OF l_dbid_mapping_type INDEX BY BINARY_INTEGER;
5477     TYPE l_osid_mapping_tab_type IS TABLE OF l_osid_mapping_type INDEX BY BINARY_INTEGER;
5478     TYPE l_cid_mapping_tab_type IS TABLE OF l_cid_mapping_type INDEX BY BINARY_INTEGER;
5479     TYPE l_rid_mapping_tab_type IS TABLE OF l_rid_mapping_type INDEX BY BINARY_INTEGER;
5480     TYPE l_id_mapping_tab_type IS TABLE OF l_id_mapping_type INDEX BY BINARY_INTEGER;
5481     TYPE l_orig_system_tab_type IS TABLE OF l_orig_system_rec_type INDEX BY BINARY_INTEGER;
5482     TYPE l_rrid_mapping_tab_type IS TABLE OF l_rrid_mapping_type INDEX BY BINARY_INTEGER;
5483     TYPE l_aid_mapping_tab_type IS TABLE OF l_aid_mapping_type INDEX BY BINARY_INTEGER;
5484     TYPE l_oid_mapping_tab_type IS TABLE OF l_oid_mapping_type INDEX BY BINARY_INTEGER;
5485     TYPE l_cle_mapping_tab_type IS TABLE OF l_cle_mapping_type INDEX BY BINARY_INTEGER;
5486     TYPE l_cle_mapping_tab_type2 IS TABLE OF l_cle_mapping_type2 INDEX BY BINARY_INTEGER;
5487 
5488     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);
5489     TYPE l_party_id_mapping_tab_type IS TABLE OF l_party_id_mapping_type INDEX BY BINARY_INTEGER;
5490 
5491     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);
5492     TYPE l_trx_id_mapping_tab_type IS TABLE OF l_trx_id_mapping_type INDEX BY BINARY_INTEGER;
5493 
5494     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);
5495     TYPE l_txl_id_mapping_tab_type IS TABLE OF l_txl_id_mapping_type INDEX BY BINARY_INTEGER;
5496 
5497     -- For okl_k_party_roles begin
5498     TYPE l_plid_type is table of okl_k_party_roles.id%TYPE index by binary_integer;
5499     TYPE l_plobject_version_number_type is table of okl_k_party_roles.object_version_number%TYPE index by binary_integer;
5500     TYPE l_plattribute_category_type is table of okl_k_party_roles.attribute_category%TYPE index by binary_integer;
5501     TYPE l_plattribute1_type is table of okl_k_party_roles.attribute1%TYPE index by binary_integer;
5502     TYPE l_plattribute2_type is table of okl_k_party_roles.attribute2%TYPE index by binary_integer;
5503     TYPE l_plattribute3_type is table of okl_k_party_roles.attribute3%TYPE index by binary_integer;
5504     TYPE l_plattribute4_type is table of okl_k_party_roles.attribute4%TYPE index by binary_integer;
5505     TYPE l_plattribute5_type is table of okl_k_party_roles.attribute5%TYPE index by binary_integer;
5506     TYPE l_plattribute6_type is table of okl_k_party_roles.attribute6%TYPE index by binary_integer;
5507     TYPE l_plattribute7_type is table of okl_k_party_roles.attribute7%TYPE index by binary_integer;
5508     TYPE l_plattribute8_type is table of okl_k_party_roles.attribute8%TYPE index by binary_integer;
5509     TYPE l_plattribute9_type is table of okl_k_party_roles.attribute9%TYPE index by binary_integer;
5510     TYPE l_plattribute10_type is table of okl_k_party_roles.attribute10%TYPE index by binary_integer;
5511     TYPE l_plattribute11_type is table of okl_k_party_roles.attribute11%TYPE index by binary_integer;
5512     TYPE l_plattribute12_type is table of okl_k_party_roles.attribute12%TYPE index by binary_integer;
5513     TYPE l_plattribute13_type is table of okl_k_party_roles.attribute13%TYPE index by binary_integer;
5514     TYPE l_plattribute14_type is table of okl_k_party_roles.attribute14%TYPE index by binary_integer;
5515     TYPE l_plattribute15_type is table of okl_k_party_roles.attribute15%TYPE index by binary_integer;
5516     -- For okl_k_party_roles end
5517 
5518     -- For party_roles_tl Begin
5519     TYPE l_pid_type IS TABLE OF okc_k_party_roles_tl.id%TYPE INDEX BY BINARY_INTEGER;
5520     TYPE l_planguage_type IS TABLE OF okc_k_party_roles_tl.LANGUAGE%TYPE INDEX BY BINARY_INTEGER;
5521     TYPE l_psource_lang_type IS TABLE OF okc_k_party_roles_tl.source_lang%TYPE INDEX BY BINARY_INTEGER;
5522     TYPE l_psfwt_flag_type IS TABLE OF okc_k_party_roles_tl.sfwt_flag%TYPE INDEX BY BINARY_INTEGER;
5523     TYPE l_pcreated_by_type IS TABLE OF okc_k_party_roles_tl.created_by%TYPE INDEX BY BINARY_INTEGER;
5524     TYPE l_pcreation_date_type IS TABLE OF okc_k_party_roles_tl.creation_date%TYPE INDEX BY BINARY_INTEGER;
5525     TYPE l_plast_updated_by_type IS TABLE OF okc_k_party_roles_tl.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
5526     TYPE l_plast_update_date_type IS TABLE OF okc_k_party_roles_tl.last_update_date%TYPE INDEX BY BINARY_INTEGER;
5527     TYPE l_pcognomen_type IS TABLE OF okc_k_party_roles_tl.cognomen%TYPE INDEX BY BINARY_INTEGER;
5528     TYPE l_palias_type IS TABLE OF okc_k_party_roles_tl.alias%TYPE INDEX BY BINARY_INTEGER;
5529     TYPE l_plast_update_login_type IS TABLE OF okc_k_party_roles_tl.last_update_login%TYPE INDEX BY BINARY_INTEGER;
5530     TYPE l_psecurity_group_id_type IS TABLE OF okc_k_party_roles_tl.security_group_id%TYPE INDEX BY BINARY_INTEGER;
5531     -- For party_roles_tl End
5532 
5533     -- For okl_supp_invoice_dtls Begin
5534     TYPE l_osid_type IS TABLE OF okl_supp_invoice_dtls.id%TYPE INDEX BY BINARY_INTEGER;
5535     TYPE l_osobject_version_number_type IS TABLE OF okl_supp_invoice_dtls.object_version_number%TYPE INDEX BY BINARY_INTEGER;
5536     TYPE l_oscle_id_type IS TABLE OF okl_supp_invoice_dtls.cle_id%TYPE INDEX BY BINARY_INTEGER;
5537     TYPE l_osfa_cle_id_type IS TABLE OF okl_supp_invoice_dtls.fa_cle_id%TYPE INDEX BY BINARY_INTEGER;
5538     TYPE l_osinvoice_number_type IS TABLE OF okl_supp_invoice_dtls.invoice_number%TYPE INDEX BY BINARY_INTEGER;
5539     TYPE l_osdate_invoiced_type IS TABLE OF okl_supp_invoice_dtls.date_invoiced%TYPE INDEX BY BINARY_INTEGER;
5540     TYPE l_osdate_due_type IS TABLE OF okl_supp_invoice_dtls.date_due%TYPE INDEX BY BINARY_INTEGER;
5541     TYPE l_osshipping_address_id1_type IS TABLE OF okl_supp_invoice_dtls.shipping_address_id1%TYPE INDEX BY BINARY_INTEGER;
5542     TYPE l_osshipping_address_id2_type IS TABLE OF okl_supp_invoice_dtls.shipping_address_id2%TYPE INDEX BY BINARY_INTEGER;
5543     TYPE l_osshipping_address_code_type IS TABLE OF okl_supp_invoice_dtls.shipping_address_code%TYPE INDEX BY BINARY_INTEGER;
5544     TYPE l_osattribute_category_type IS TABLE OF okl_supp_invoice_dtls.attribute_category%TYPE INDEX BY BINARY_INTEGER;
5545     TYPE l_osattribute1_type IS TABLE OF okl_supp_invoice_dtls.attribute1%TYPE INDEX BY BINARY_INTEGER;
5546     TYPE l_osattribute2_type IS TABLE OF okl_supp_invoice_dtls.attribute2%TYPE INDEX BY BINARY_INTEGER;
5547     TYPE l_osattribute3_type IS TABLE OF okl_supp_invoice_dtls.attribute3%TYPE INDEX BY BINARY_INTEGER;
5548     TYPE l_osattribute4_type IS TABLE OF okl_supp_invoice_dtls.attribute4%TYPE INDEX BY BINARY_INTEGER;
5549     TYPE l_osattribute5_type IS TABLE OF okl_supp_invoice_dtls.attribute5%TYPE INDEX BY BINARY_INTEGER;
5550     TYPE l_osattribute6_type IS TABLE OF okl_supp_invoice_dtls.attribute6%TYPE INDEX BY BINARY_INTEGER;
5551     TYPE l_osattribute7_type IS TABLE OF okl_supp_invoice_dtls.attribute7%TYPE INDEX BY BINARY_INTEGER;
5552     TYPE l_osattribute8_type IS TABLE OF okl_supp_invoice_dtls.attribute8%TYPE INDEX BY BINARY_INTEGER;
5553     TYPE l_osattribute9_type IS TABLE OF okl_supp_invoice_dtls.attribute9%TYPE INDEX BY BINARY_INTEGER;
5554     TYPE l_osattribute10_type IS TABLE OF okl_supp_invoice_dtls.attribute10%TYPE INDEX BY BINARY_INTEGER;
5555     TYPE l_osattribute11_type IS TABLE OF okl_supp_invoice_dtls.attribute11%TYPE INDEX BY BINARY_INTEGER;
5556     TYPE l_osattribute12_type IS TABLE OF okl_supp_invoice_dtls.attribute12%TYPE INDEX BY BINARY_INTEGER;
5557     TYPE l_osattribute13_type IS TABLE OF okl_supp_invoice_dtls.attribute13%TYPE INDEX BY BINARY_INTEGER;
5558     TYPE l_osattribute14_type IS TABLE OF okl_supp_invoice_dtls.attribute14%TYPE INDEX BY BINARY_INTEGER;
5559     TYPE l_osattribute15_type IS TABLE OF okl_supp_invoice_dtls.attribute15%TYPE INDEX BY BINARY_INTEGER;
5560     TYPE l_oscreated_by_type IS TABLE OF okl_supp_invoice_dtls.created_by%TYPE INDEX BY BINARY_INTEGER;
5561     TYPE l_oscreation_date_type IS TABLE OF okl_supp_invoice_dtls.creation_date%TYPE INDEX BY BINARY_INTEGER;
5562     TYPE l_oslast_updated_by_type IS TABLE OF okl_supp_invoice_dtls.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
5563     TYPE l_oslast_update_date_type IS TABLE OF okl_supp_invoice_dtls.last_update_date%TYPE INDEX BY BINARY_INTEGER;
5564     TYPE l_oslast_update_login_type IS TABLE OF okl_supp_invoice_dtls.last_update_login%TYPE INDEX BY BINARY_INTEGER;
5565     -- For okl_supp_invoice_dtls End
5566 
5567     TYPE l_misc_object1_id1 IS TABLE OF VARCHAR2(40) INDEX BY BINARY_INTEGER;
5568     -- For okc_contacts Begin
5569 
5570     TYPE l_cid_type IS TABLE OF okc_contacts.id%TYPE INDEX BY BINARY_INTEGER;
5571     TYPE l_ccpl_id_type IS TABLE OF okc_contacts.cpl_id%TYPE INDEX BY BINARY_INTEGER;
5572     TYPE l_ccro_code_type IS TABLE OF okc_contacts.cro_code%TYPE INDEX BY BINARY_INTEGER;
5573     TYPE l_cdnz_chr_id_type IS TABLE OF okc_contacts.dnz_chr_id%TYPE INDEX BY BINARY_INTEGER;
5574     TYPE l_cobject1_id1_type IS TABLE OF okc_contacts.object1_id1%TYPE INDEX BY BINARY_INTEGER;
5575     TYPE l_cobject1_id2_type IS TABLE OF okc_contacts.object1_id2%TYPE INDEX BY BINARY_INTEGER;
5576     TYPE l_cjtot_object1_code_type IS TABLE OF okc_contacts.jtot_object1_code%TYPE INDEX BY BINARY_INTEGER;
5577     TYPE l_cobject_version_number_type IS TABLE OF okc_contacts.object_version_number%TYPE INDEX BY BINARY_INTEGER;
5578     TYPE l_ccreated_by_type IS TABLE OF okc_contacts.created_by%TYPE INDEX BY BINARY_INTEGER;
5579     TYPE l_ccreation_date_type IS TABLE OF okc_contacts.creation_date%TYPE INDEX BY BINARY_INTEGER;
5580     TYPE l_clast_updated_by_type IS TABLE OF okc_contacts.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
5581     TYPE l_clast_update_date_type IS TABLE OF okc_contacts.last_update_date%TYPE INDEX BY BINARY_INTEGER;
5582     TYPE l_ccontact_sequence_type IS TABLE OF okc_contacts.contact_sequence%TYPE INDEX BY BINARY_INTEGER;
5583     TYPE l_clast_update_login_type IS TABLE OF okc_contacts.last_update_login%TYPE INDEX BY BINARY_INTEGER;
5584     TYPE l_cattribute_category_type IS TABLE OF okc_contacts.attribute_category%TYPE INDEX BY BINARY_INTEGER;
5585     TYPE l_cattribute1_type IS TABLE OF okc_contacts.attribute1%TYPE INDEX BY BINARY_INTEGER;
5586     TYPE l_cattribute2_type IS TABLE OF okc_contacts.attribute2%TYPE INDEX BY BINARY_INTEGER;
5587     TYPE l_cattribute3_type IS TABLE OF okc_contacts.attribute3%TYPE INDEX BY BINARY_INTEGER;
5588     TYPE l_cattribute4_type IS TABLE OF okc_contacts.attribute4%TYPE INDEX BY BINARY_INTEGER;
5589     TYPE l_cattribute5_type IS TABLE OF okc_contacts.attribute5%TYPE INDEX BY BINARY_INTEGER;
5590     TYPE l_cattribute6_type IS TABLE OF okc_contacts.attribute6%TYPE INDEX BY BINARY_INTEGER;
5591     TYPE l_cattribute7_type IS TABLE OF okc_contacts.attribute7%TYPE INDEX BY BINARY_INTEGER;
5592     TYPE l_cattribute8_type IS TABLE OF okc_contacts.attribute8%TYPE INDEX BY BINARY_INTEGER;
5593     TYPE l_cattribute9_type IS TABLE OF okc_contacts.attribute9%TYPE INDEX BY BINARY_INTEGER;
5594     TYPE l_cattribute10_type IS TABLE OF okc_contacts.attribute10%TYPE INDEX BY BINARY_INTEGER;
5595     TYPE l_cattribute11_type IS TABLE OF okc_contacts.attribute11%TYPE INDEX BY BINARY_INTEGER;
5596     TYPE l_cattribute12_type IS TABLE OF okc_contacts.attribute12%TYPE INDEX BY BINARY_INTEGER;
5597     TYPE l_cattribute13_type IS TABLE OF okc_contacts.attribute13%TYPE INDEX BY BINARY_INTEGER;
5598     TYPE l_cattribute14_type IS TABLE OF okc_contacts.attribute14%TYPE INDEX BY BINARY_INTEGER;
5599     TYPE l_cattribute15_type IS TABLE OF okc_contacts.attribute15%TYPE INDEX BY BINARY_INTEGER;
5600     TYPE l_csecurity_group_id_type IS TABLE OF okc_contacts.security_group_id%TYPE INDEX BY BINARY_INTEGER;
5601     TYPE l_cstart_date_type IS TABLE OF okc_contacts.start_date%TYPE INDEX BY BINARY_INTEGER;
5602     TYPE l_cend_date_type IS TABLE OF okc_contacts.end_date%TYPE INDEX BY BINARY_INTEGER;
5603     TYPE l_cprimary_yn_type IS TABLE OF okc_contacts.primary_yn%TYPE INDEX BY BINARY_INTEGER;
5604     TYPE l_cresource_class_type IS TABLE OF okc_contacts.resource_class%TYPE INDEX BY BINARY_INTEGER;
5605 
5606     -- For okc_contacts End
5607 
5608     -- For okc_rule_groups_b Begin
5609 
5610     TYPE l_rid_type IS TABLE OF okc_rule_groups_b.id%TYPE INDEX BY BINARY_INTEGER;
5611     TYPE l_rrgd_code_type IS TABLE OF okc_rule_groups_b.rgd_code%TYPE INDEX BY BINARY_INTEGER;
5612     TYPE l_rchr_id_type IS TABLE OF okc_rule_groups_b.chr_id%TYPE INDEX BY BINARY_INTEGER;
5613     TYPE l_rcle_id_type IS TABLE OF okc_rule_groups_b.cle_id%TYPE INDEX BY BINARY_INTEGER;
5614     TYPE l_rdnz_chr_id_type IS TABLE OF okc_rule_groups_b.dnz_chr_id%TYPE INDEX BY BINARY_INTEGER;
5615     TYPE l_rparent_rgp_id_type IS TABLE OF okc_rule_groups_b.parent_rgp_id%TYPE INDEX BY BINARY_INTEGER;
5616     TYPE l_rsat_code_type IS TABLE OF okc_rule_groups_b.sat_code%TYPE INDEX BY BINARY_INTEGER;
5617     TYPE l_robject_version_number_type IS TABLE OF okc_rule_groups_b.object_version_number%TYPE INDEX BY BINARY_INTEGER;
5618     TYPE l_rrgp_type_type IS TABLE OF okc_rule_groups_b.rgp_type%TYPE INDEX BY BINARY_INTEGER;
5619     TYPE l_rcreated_by_type IS TABLE OF okc_rule_groups_b.created_by%TYPE INDEX BY BINARY_INTEGER;
5620     TYPE l_rcreation_date_type IS TABLE OF okc_rule_groups_b.creation_date%TYPE INDEX BY BINARY_INTEGER;
5621     TYPE l_rlast_updated_by_type IS TABLE OF okc_rule_groups_b.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
5622     TYPE l_rlast_update_date_type IS TABLE OF okc_rule_groups_b.last_update_date%TYPE INDEX BY BINARY_INTEGER;
5623     TYPE l_rlast_update_login_type IS TABLE OF okc_rule_groups_b.last_update_login%TYPE INDEX BY BINARY_INTEGER;
5624     TYPE l_rattribute_category_type IS TABLE OF okc_rule_groups_b.attribute_category%TYPE INDEX BY BINARY_INTEGER;
5625     TYPE l_rattribute1_type IS TABLE OF okc_rule_groups_b.attribute1%TYPE INDEX BY BINARY_INTEGER;
5626     TYPE l_rattribute2_type IS TABLE OF okc_rule_groups_b.attribute2%TYPE INDEX BY BINARY_INTEGER;
5627     TYPE l_rattribute3_type IS TABLE OF okc_rule_groups_b.attribute3%TYPE INDEX BY BINARY_INTEGER;
5628     TYPE l_rattribute4_type IS TABLE OF okc_rule_groups_b.attribute4%TYPE INDEX BY BINARY_INTEGER;
5629     TYPE l_rattribute5_type IS TABLE OF okc_rule_groups_b.attribute5%TYPE INDEX BY BINARY_INTEGER;
5630     TYPE l_rattribute6_type IS TABLE OF okc_rule_groups_b.attribute6%TYPE INDEX BY BINARY_INTEGER;
5631     TYPE l_rattribute7_type IS TABLE OF okc_rule_groups_b.attribute7%TYPE INDEX BY BINARY_INTEGER;
5632     TYPE l_rattribute8_type IS TABLE OF okc_rule_groups_b.attribute8%TYPE INDEX BY BINARY_INTEGER;
5633     TYPE l_rattribute9_type IS TABLE OF okc_rule_groups_b.attribute9%TYPE INDEX BY BINARY_INTEGER;
5634     TYPE l_rattribute10_type IS TABLE OF okc_rule_groups_b.attribute10%TYPE INDEX BY BINARY_INTEGER;
5635     TYPE l_rattribute11_type IS TABLE OF okc_rule_groups_b.attribute11%TYPE INDEX BY BINARY_INTEGER;
5636     TYPE l_rattribute12_type IS TABLE OF okc_rule_groups_b.attribute12%TYPE INDEX BY BINARY_INTEGER;
5637     TYPE l_rattribute13_type IS TABLE OF okc_rule_groups_b.attribute13%TYPE INDEX BY BINARY_INTEGER;
5638     TYPE l_rattribute14_type IS TABLE OF okc_rule_groups_b.attribute14%TYPE INDEX BY BINARY_INTEGER;
5639     TYPE l_rattribute15_type IS TABLE OF okc_rule_groups_b.attribute15%TYPE INDEX BY BINARY_INTEGER;
5640     TYPE l_rsecurity_group_id_type IS TABLE OF okc_rule_groups_b.security_group_id%TYPE INDEX BY BINARY_INTEGER;
5641 
5642     -- For okc_rule_groups_b End
5643 
5644     -- For okc_rule_groups_tl Begin
5645     TYPE l_rtid_type IS TABLE OF okc_rule_groups_tl.id%TYPE INDEX BY BINARY_INTEGER;
5646     TYPE l_rtlanguage_type IS TABLE OF okc_rule_groups_tl.LANGUAGE%TYPE INDEX BY BINARY_INTEGER;
5647     TYPE l_rtsource_lang_type IS TABLE OF okc_rule_groups_tl.source_lang%TYPE INDEX BY BINARY_INTEGER;
5648     TYPE l_rtsfwt_flag_type IS TABLE OF okc_rule_groups_tl.sfwt_flag%TYPE INDEX BY BINARY_INTEGER;
5649     TYPE l_rtcomments_type IS TABLE OF okc_rule_groups_tl.comments%TYPE INDEX BY BINARY_INTEGER;
5650     TYPE l_rtcreated_by_type IS TABLE OF okc_rule_groups_tl.created_by%TYPE INDEX BY BINARY_INTEGER;
5651     TYPE l_rtcreation_date_type IS TABLE OF okc_rule_groups_tl.creation_date%TYPE INDEX BY BINARY_INTEGER;
5652     TYPE l_rtlast_updated_by_type IS TABLE OF okc_rule_groups_tl.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
5653     TYPE l_rtlast_update_date_type IS TABLE OF okc_rule_groups_tl.last_update_date%TYPE INDEX BY BINARY_INTEGER;
5654     TYPE l_rtlast_update_login_type IS TABLE OF okc_rule_groups_tl.last_update_login%TYPE INDEX BY BINARY_INTEGER;
5655     TYPE l_rtsecurity_group_id_type IS TABLE OF okc_rule_groups_tl.security_group_id%TYPE INDEX BY BINARY_INTEGER;
5656 
5657     -- For okc_rule_groups_tl End
5658 
5659     -- For okc_rules_b Begin
5660     TYPE l_rrid_type IS TABLE OF okc_rules_b.id%TYPE INDEX BY BINARY_INTEGER;
5661     TYPE l_rrrgp_id_type IS TABLE OF okc_rules_b.rgp_id%TYPE INDEX BY BINARY_INTEGER;
5662     TYPE l_rrobject1_id1_type IS TABLE OF okc_rules_b.object1_id1%TYPE INDEX BY BINARY_INTEGER;
5663     TYPE l_rrobject2_id1_type IS TABLE OF okc_rules_b.object2_id1%TYPE INDEX BY BINARY_INTEGER;
5664     TYPE l_rrobject3_id1_type IS TABLE OF okc_rules_b.object3_id1%TYPE INDEX BY BINARY_INTEGER;
5665     TYPE l_rrobject1_id2_type IS TABLE OF okc_rules_b.object1_id2%TYPE INDEX BY BINARY_INTEGER;
5666     TYPE l_rrobject2_id2_type IS TABLE OF okc_rules_b.object2_id2%TYPE INDEX BY BINARY_INTEGER;
5667     TYPE l_rrobject3_id2_type IS TABLE OF okc_rules_b.object3_id2%TYPE INDEX BY BINARY_INTEGER;
5668     TYPE l_rrjtot_object1_code_type IS TABLE OF okc_rules_b.jtot_object1_code%TYPE INDEX BY BINARY_INTEGER;
5669     TYPE l_rrjtot_object2_code_type IS TABLE OF okc_rules_b.jtot_object2_code%TYPE INDEX BY BINARY_INTEGER;
5670     TYPE l_rrjtot_object3_code_type IS TABLE OF okc_rules_b.jtot_object3_code%TYPE INDEX BY BINARY_INTEGER;
5671     TYPE l_rrdnz_chr_id_type IS TABLE OF okc_rules_b.dnz_chr_id%TYPE INDEX BY BINARY_INTEGER;
5672     TYPE l_rrstd_template_yn_type IS TABLE OF okc_rules_b.std_template_yn%TYPE INDEX BY BINARY_INTEGER;
5673     TYPE l_rrwarn_yn_type IS TABLE OF okc_rules_b.warn_yn%TYPE INDEX BY BINARY_INTEGER;
5674     TYPE l_rrpriority_type IS TABLE OF okc_rules_b.priority%TYPE INDEX BY BINARY_INTEGER;
5675     TYPE l_rrobject_version_number_type IS TABLE OF okc_rules_b.object_version_number%TYPE INDEX BY BINARY_INTEGER;
5676     TYPE l_rrcreated_by_type IS TABLE OF okc_rules_b.created_by%TYPE INDEX BY BINARY_INTEGER;
5677     TYPE l_rrcreation_date_type IS TABLE OF okc_rules_b.creation_date%TYPE INDEX BY BINARY_INTEGER;
5678     TYPE l_rrlast_updated_by_type IS TABLE OF okc_rules_b.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
5679     TYPE l_rrlast_update_date_type IS TABLE OF okc_rules_b.last_update_date%TYPE INDEX BY BINARY_INTEGER;
5680     TYPE l_rrlast_update_login_type IS TABLE OF okc_rules_b.last_update_login%TYPE INDEX BY BINARY_INTEGER;
5681     TYPE l_rrattribute_category_type IS TABLE OF okc_rules_b.attribute_category%TYPE INDEX BY BINARY_INTEGER;
5682     TYPE l_rrattribute1_type IS TABLE OF okc_rules_b.attribute1%TYPE INDEX BY BINARY_INTEGER;
5683     TYPE l_rrattribute2_type IS TABLE OF okc_rules_b.attribute2%TYPE INDEX BY BINARY_INTEGER;
5684     TYPE l_rrattribute3_type IS TABLE OF okc_rules_b.attribute3%TYPE INDEX BY BINARY_INTEGER;
5685     TYPE l_rrattribute4_type IS TABLE OF okc_rules_b.attribute4%TYPE INDEX BY BINARY_INTEGER;
5686     TYPE l_rrattribute5_type IS TABLE OF okc_rules_b.attribute5%TYPE INDEX BY BINARY_INTEGER;
5687     TYPE l_rrattribute6_type IS TABLE OF okc_rules_b.attribute6%TYPE INDEX BY BINARY_INTEGER;
5688     TYPE l_rrattribute7_type IS TABLE OF okc_rules_b.attribute7%TYPE INDEX BY BINARY_INTEGER;
5689     TYPE l_rrattribute8_type IS TABLE OF okc_rules_b.attribute8%TYPE INDEX BY BINARY_INTEGER;
5690     TYPE l_rrattribute9_type IS TABLE OF okc_rules_b.attribute9%TYPE INDEX BY BINARY_INTEGER;
5691     TYPE l_rrattribute10_type IS TABLE OF okc_rules_b.attribute10%TYPE INDEX BY BINARY_INTEGER;
5692     TYPE l_rrattribute11_type IS TABLE OF okc_rules_b.attribute11%TYPE INDEX BY BINARY_INTEGER;
5693     TYPE l_rrattribute12_type IS TABLE OF okc_rules_b.attribute12%TYPE INDEX BY BINARY_INTEGER;
5694     TYPE l_rrattribute13_type IS TABLE OF okc_rules_b.attribute13%TYPE INDEX BY BINARY_INTEGER;
5695     TYPE l_rrattribute14_type IS TABLE OF okc_rules_b.attribute14%TYPE INDEX BY BINARY_INTEGER;
5696     TYPE l_rrattribute15_type IS TABLE OF okc_rules_b.attribute15%TYPE INDEX BY BINARY_INTEGER;
5697     TYPE l_rrrule_information_cate_type IS TABLE OF okc_rules_b.rule_information_category%TYPE INDEX BY BINARY_INTEGER;
5698     TYPE l_rrrule_information1_type IS TABLE OF okc_rules_b.rule_information1%TYPE INDEX BY BINARY_INTEGER;
5699     TYPE l_rrrule_information2_type IS TABLE OF okc_rules_b.rule_information2%TYPE INDEX BY BINARY_INTEGER;
5700     TYPE l_rrrule_information3_type IS TABLE OF okc_rules_b.rule_information3%TYPE INDEX BY BINARY_INTEGER;
5701     TYPE l_rrrule_information4_type IS TABLE OF okc_rules_b.rule_information4%TYPE INDEX BY BINARY_INTEGER;
5702     TYPE l_rrrule_information5_type IS TABLE OF okc_rules_b.rule_information5%TYPE INDEX BY BINARY_INTEGER;
5703     TYPE l_rrrule_information6_type IS TABLE OF okc_rules_b.rule_information6%TYPE INDEX BY BINARY_INTEGER;
5704     TYPE l_rrrule_information7_type IS TABLE OF okc_rules_b.rule_information7%TYPE INDEX BY BINARY_INTEGER;
5705     TYPE l_rrrule_information8_type IS TABLE OF okc_rules_b.rule_information8%TYPE INDEX BY BINARY_INTEGER;
5706     TYPE l_rrrule_information9_type IS TABLE OF okc_rules_b.rule_information9%TYPE INDEX BY BINARY_INTEGER;
5707     TYPE l_rrrule_information10_type IS TABLE OF okc_rules_b.rule_information10%TYPE INDEX BY BINARY_INTEGER;
5708     TYPE l_rrrule_information11_type IS TABLE OF okc_rules_b.rule_information11%TYPE INDEX BY BINARY_INTEGER;
5709     TYPE l_rrrule_information12_type IS TABLE OF okc_rules_b.rule_information12%TYPE INDEX BY BINARY_INTEGER;
5710     TYPE l_rrrule_information13_type IS TABLE OF okc_rules_b.rule_information13%TYPE INDEX BY BINARY_INTEGER;
5711     TYPE l_rrrule_information14_type IS TABLE OF okc_rules_b.rule_information14%TYPE INDEX BY BINARY_INTEGER;
5712     TYPE l_rrrule_information15_type IS TABLE OF okc_rules_b.rule_information15%TYPE INDEX BY BINARY_INTEGER;
5713     TYPE l_rrsecurity_group_id_type IS TABLE OF okc_rules_b.security_group_id%TYPE INDEX BY BINARY_INTEGER;
5714     TYPE l_rrtemplate_yn_type IS TABLE OF okc_rules_b.template_yn%TYPE INDEX BY BINARY_INTEGER;
5715     TYPE l_rrans_set_jtot_object_c_type IS TABLE OF okc_rules_b.ans_set_jtot_object_code%TYPE INDEX BY BINARY_INTEGER;
5716     TYPE l_rrans_set_jtot_object_1_type IS TABLE OF okc_rules_b.ans_set_jtot_object_id1%TYPE INDEX BY BINARY_INTEGER;
5717     TYPE l_rrans_set_jtot_object_2_type IS TABLE OF okc_rules_b.ans_set_jtot_object_id2%TYPE INDEX BY BINARY_INTEGER;
5718     TYPE l_rrdisplay_sequence_type IS TABLE OF okc_rules_b.display_sequence%TYPE INDEX BY BINARY_INTEGER;
5719     TYPE l_rrcomments_type IS TABLE OF okc_rules_b.comments%TYPE INDEX BY BINARY_INTEGER;
5720 
5721     -- For okc_rules_b End
5722 
5723     -- For okc_rules_tl Begin
5724 
5725     TYPE l_trid_type IS TABLE OF okc_rules_tl.id%TYPE INDEX BY BINARY_INTEGER;
5726     TYPE l_trlanguage_type IS TABLE OF okc_rules_tl.LANGUAGE%TYPE INDEX BY BINARY_INTEGER;
5727     TYPE l_trsource_lang_type IS TABLE OF okc_rules_tl.source_lang%TYPE INDEX BY BINARY_INTEGER;
5728     TYPE l_trsfwt_flag_type IS TABLE OF okc_rules_tl.sfwt_flag%TYPE INDEX BY BINARY_INTEGER;
5729     TYPE l_trcomments_type IS TABLE OF okc_rules_tl.comments%TYPE INDEX BY BINARY_INTEGER;
5730     TYPE l_trtext_type IS TABLE OF okc_rules_tl.text%TYPE INDEX BY BINARY_INTEGER;
5731     TYPE l_trcreated_by_type IS TABLE OF okc_rules_tl.created_by%TYPE INDEX BY BINARY_INTEGER;
5732     TYPE l_trcreation_date_type IS TABLE OF okc_rules_tl.creation_date%TYPE INDEX BY BINARY_INTEGER;
5733     TYPE l_trlast_updated_by_type IS TABLE OF okc_rules_tl.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
5734     TYPE l_trlast_update_date_type IS TABLE OF okc_rules_tl.last_update_date%TYPE INDEX BY BINARY_INTEGER;
5735     TYPE l_trlast_update_login_type IS TABLE OF okc_rules_tl.last_update_login%TYPE INDEX BY BINARY_INTEGER;
5736     TYPE l_trsecurity_group_id_type IS TABLE OF okc_rules_tl.security_group_id%TYPE INDEX BY BINARY_INTEGER;
5737 
5738     -- For okc_rules_tl End
5739 
5740     -- For okc_k_items Begin
5741 
5742     TYPE l_iid_type IS TABLE OF okc_k_items.id%TYPE INDEX BY BINARY_INTEGER;
5743     TYPE l_icle_id_type IS TABLE OF okc_k_items.cle_id%TYPE INDEX BY BINARY_INTEGER;
5744     TYPE l_ichr_id_type IS TABLE OF okc_k_items.chr_id%TYPE INDEX BY BINARY_INTEGER;
5745     TYPE l_icle_id_for_type IS TABLE OF okc_k_items.cle_id_for%TYPE INDEX BY BINARY_INTEGER;
5746     TYPE l_idnz_chr_id_type IS TABLE OF okc_k_items.dnz_chr_id%TYPE INDEX BY BINARY_INTEGER;
5747     TYPE l_iobject1_id1_type IS TABLE OF okc_k_items.object1_id1%TYPE INDEX BY BINARY_INTEGER;
5748     TYPE l_iobject1_id2_type IS TABLE OF okc_k_items.object1_id2%TYPE INDEX BY BINARY_INTEGER;
5749     TYPE l_ijtot_object1_code_type IS TABLE OF okc_k_items.jtot_object1_code%TYPE INDEX BY BINARY_INTEGER;
5750     TYPE l_iuom_code_type IS TABLE OF okc_k_items.uom_code%TYPE INDEX BY BINARY_INTEGER;
5751     TYPE l_iexception_yn_type IS TABLE OF okc_k_items.exception_yn%TYPE INDEX BY BINARY_INTEGER;
5752     TYPE l_inumber_of_items_type IS TABLE OF okc_k_items.number_of_items%TYPE INDEX BY BINARY_INTEGER;
5753     TYPE l_ipriced_item_yn_type IS TABLE OF okc_k_items.priced_item_yn%TYPE INDEX BY BINARY_INTEGER;
5754     TYPE l_iobject_version_number_type IS TABLE OF okc_k_items.object_version_number%TYPE INDEX BY BINARY_INTEGER;
5755     TYPE l_icreated_by_type IS TABLE OF okc_k_items.created_by%TYPE INDEX BY BINARY_INTEGER;
5756     TYPE l_icreation_date_type IS TABLE OF okc_k_items.creation_date%TYPE INDEX BY BINARY_INTEGER;
5757     TYPE l_ilast_updated_by_type IS TABLE OF okc_k_items.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
5758     TYPE l_ilast_update_date_type IS TABLE OF okc_k_items.last_update_date%TYPE INDEX BY BINARY_INTEGER;
5759     TYPE l_ilast_update_login_type IS TABLE OF okc_k_items.last_update_login%TYPE INDEX BY BINARY_INTEGER;
5760     TYPE l_isecurity_group_id_type IS TABLE OF okc_k_items.security_group_id%TYPE INDEX BY BINARY_INTEGER;
5761     TYPE l_iupg_orig_system_ref_type IS TABLE OF okc_k_items.upg_orig_system_ref%TYPE INDEX BY BINARY_INTEGER;
5762     TYPE l_iupg_orig_system_ref_id_type IS TABLE OF okc_k_items.upg_orig_system_ref_id%TYPE INDEX BY BINARY_INTEGER;
5763     TYPE l_iprogram_application_id_type IS TABLE OF okc_k_items.program_application_id%TYPE INDEX BY BINARY_INTEGER;
5764     TYPE l_iprogram_id_type IS TABLE OF okc_k_items.program_id%TYPE INDEX BY BINARY_INTEGER;
5765     TYPE l_iprogram_update_date_type IS TABLE OF okc_k_items.program_update_date%TYPE INDEX BY BINARY_INTEGER;
5766     TYPE l_irequest_id_type IS TABLE OF okc_k_items.request_id%TYPE INDEX BY BINARY_INTEGER;
5767 
5768     -- For okc_k_items End
5769 
5770     -- For okl_trx_assets Begin (42)
5771 
5772     TYPE l_tid_type IS TABLE OF okl_trx_assets.id%TYPE INDEX BY BINARY_INTEGER;
5773     TYPE l_tica_id_type IS TABLE OF okl_trx_assets.ica_id%TYPE INDEX BY BINARY_INTEGER;
5774     TYPE l_ttas_type_type IS TABLE OF okl_trx_assets.tas_type%TYPE INDEX BY BINARY_INTEGER;
5775     TYPE l_tobject_version_number_type IS TABLE OF okl_trx_assets.object_version_number%TYPE INDEX BY BINARY_INTEGER;
5776     TYPE l_tattribute_category_type IS TABLE OF okl_trx_assets.attribute_category%TYPE INDEX BY BINARY_INTEGER;
5777     TYPE l_tattribute1_type IS TABLE OF okl_trx_assets.attribute1%TYPE INDEX BY BINARY_INTEGER;
5778     TYPE l_tattribute2_type IS TABLE OF okl_trx_assets.attribute2%TYPE INDEX BY BINARY_INTEGER;
5779     TYPE l_tattribute3_type IS TABLE OF okl_trx_assets.attribute3%TYPE INDEX BY BINARY_INTEGER;
5780     TYPE l_tattribute4_type IS TABLE OF okl_trx_assets.attribute4%TYPE INDEX BY BINARY_INTEGER;
5781     TYPE l_tattribute5_type IS TABLE OF okl_trx_assets.attribute5%TYPE INDEX BY BINARY_INTEGER;
5782     TYPE l_tattribute6_type IS TABLE OF okl_trx_assets.attribute6%TYPE INDEX BY BINARY_INTEGER;
5783     TYPE l_tattribute7_type IS TABLE OF okl_trx_assets.attribute7%TYPE INDEX BY BINARY_INTEGER;
5784     TYPE l_tattribute8_type IS TABLE OF okl_trx_assets.attribute8%TYPE INDEX BY BINARY_INTEGER;
5785     TYPE l_tattribute9_type IS TABLE OF okl_trx_assets.attribute9%TYPE INDEX BY BINARY_INTEGER;
5786     TYPE l_tattribute10_type IS TABLE OF okl_trx_assets.attribute10%TYPE INDEX BY BINARY_INTEGER;
5787     TYPE l_tattribute11_type IS TABLE OF okl_trx_assets.attribute11%TYPE INDEX BY BINARY_INTEGER;
5788     TYPE l_tattribute12_type IS TABLE OF okl_trx_assets.attribute12%TYPE INDEX BY BINARY_INTEGER;
5789     TYPE l_tattribute13_type IS TABLE OF okl_trx_assets.attribute13%TYPE INDEX BY BINARY_INTEGER;
5790     TYPE l_tattribute14_type IS TABLE OF okl_trx_assets.attribute14%TYPE INDEX BY BINARY_INTEGER;
5791     TYPE l_tattribute15_type IS TABLE OF okl_trx_assets.attribute15%TYPE INDEX BY BINARY_INTEGER;
5792     TYPE l_tcreated_by_type IS TABLE OF okl_trx_assets.created_by%TYPE INDEX BY BINARY_INTEGER;
5793     TYPE l_tcreation_date_type IS TABLE OF okl_trx_assets.creation_date%TYPE INDEX BY BINARY_INTEGER;
5794     TYPE l_tlast_updated_by_type IS TABLE OF okl_trx_assets.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
5795     TYPE l_tlast_update_date_type IS TABLE OF okl_trx_assets.last_update_date%TYPE INDEX BY BINARY_INTEGER;
5796     TYPE l_tlast_update_login_type IS TABLE OF okl_trx_assets.last_update_login%TYPE INDEX BY BINARY_INTEGER;
5797     TYPE l_ttsu_code_type IS TABLE OF okl_trx_assets.tsu_code%TYPE INDEX BY BINARY_INTEGER;
5798     TYPE l_ttry_id_type IS TABLE OF okl_trx_assets.try_id%TYPE INDEX BY BINARY_INTEGER;
5799     TYPE l_tdate_trans_occurred_type IS TABLE OF okl_trx_assets.date_trans_occurred%TYPE INDEX BY BINARY_INTEGER;
5800     TYPE l_ttrans_number_type IS TABLE OF okl_trx_assets.trans_number%TYPE INDEX BY BINARY_INTEGER;
5801     TYPE l_tcomments_type IS TABLE OF okl_trx_assets.comments%TYPE INDEX BY BINARY_INTEGER;
5802     TYPE l_treq_asset_id_type IS TABLE OF okl_trx_assets.req_asset_id%TYPE INDEX BY BINARY_INTEGER;
5803     TYPE l_ttotal_match_amount_type IS TABLE OF okl_trx_assets.total_match_amount%TYPE INDEX BY BINARY_INTEGER;
5804     TYPE l_torg_id_type IS TABLE OF okl_trx_assets.org_id%TYPE INDEX BY BINARY_INTEGER;
5805     TYPE l_tlegal_entity_id_type IS TABLE OF okl_trx_assets.legal_entity_id%TYPE INDEX BY BINARY_INTEGER;
5806 
5807     -- For okl_trx_assets End (42)
5808 
5809     -- For okl_trx_assets Begin (45)
5810     TYPE l_t2id_type IS TABLE OF okl_trx_assets.id%TYPE INDEX BY BINARY_INTEGER;
5811     TYPE l_t2ica_id_type IS TABLE OF okl_trx_assets.ica_id%TYPE INDEX BY BINARY_INTEGER;
5812     TYPE l_t2tas_type_type IS TABLE OF okl_trx_assets.tas_type%TYPE INDEX BY BINARY_INTEGER;
5813     TYPE l_t2object_version_number_type IS TABLE OF okl_trx_assets.object_version_number%TYPE INDEX BY BINARY_INTEGER;
5814     TYPE l_t2attribute_category_type IS TABLE OF okl_trx_assets.attribute_category%TYPE INDEX BY BINARY_INTEGER;
5815     TYPE l_t2attribute1_type IS TABLE OF okl_trx_assets.attribute1%TYPE INDEX BY BINARY_INTEGER;
5816     TYPE l_t2attribute2_type IS TABLE OF okl_trx_assets.attribute2%TYPE INDEX BY BINARY_INTEGER;
5817     TYPE l_t2attribute3_type IS TABLE OF okl_trx_assets.attribute3%TYPE INDEX BY BINARY_INTEGER;
5818     TYPE l_t2attribute4_type IS TABLE OF okl_trx_assets.attribute4%TYPE INDEX BY BINARY_INTEGER;
5819     TYPE l_t2attribute5_type IS TABLE OF okl_trx_assets.attribute5%TYPE INDEX BY BINARY_INTEGER;
5820     TYPE l_t2attribute6_type IS TABLE OF okl_trx_assets.attribute6%TYPE INDEX BY BINARY_INTEGER;
5821     TYPE l_t2attribute7_type IS TABLE OF okl_trx_assets.attribute7%TYPE INDEX BY BINARY_INTEGER;
5822     TYPE l_t2attribute8_type IS TABLE OF okl_trx_assets.attribute8%TYPE INDEX BY BINARY_INTEGER;
5823     TYPE l_t2attribute9_type IS TABLE OF okl_trx_assets.attribute9%TYPE INDEX BY BINARY_INTEGER;
5824     TYPE l_t2attribute10_type IS TABLE OF okl_trx_assets.attribute10%TYPE INDEX BY BINARY_INTEGER;
5825     TYPE l_t2attribute11_type IS TABLE OF okl_trx_assets.attribute11%TYPE INDEX BY BINARY_INTEGER;
5826     TYPE l_t2attribute12_type IS TABLE OF okl_trx_assets.attribute12%TYPE INDEX BY BINARY_INTEGER;
5827     TYPE l_t2attribute13_type IS TABLE OF okl_trx_assets.attribute13%TYPE INDEX BY BINARY_INTEGER;
5828     TYPE l_t2attribute14_type IS TABLE OF okl_trx_assets.attribute14%TYPE INDEX BY BINARY_INTEGER;
5829     TYPE l_t2attribute15_type IS TABLE OF okl_trx_assets.attribute15%TYPE INDEX BY BINARY_INTEGER;
5830     TYPE l_t2created_by_type IS TABLE OF okl_trx_assets.created_by%TYPE INDEX BY BINARY_INTEGER;
5831     TYPE l_t2creation_date_type IS TABLE OF okl_trx_assets.creation_date%TYPE INDEX BY BINARY_INTEGER;
5832     TYPE l_t2last_updated_by_type IS TABLE OF okl_trx_assets.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
5833     TYPE l_t2last_update_date_type IS TABLE OF okl_trx_assets.last_update_date%TYPE INDEX BY BINARY_INTEGER;
5834     TYPE l_t2last_update_login_type IS TABLE OF okl_trx_assets.last_update_login%TYPE INDEX BY BINARY_INTEGER;
5835     TYPE l_t2tsu_code_type IS TABLE OF okl_trx_assets.tsu_code%TYPE INDEX BY BINARY_INTEGER;
5836     TYPE l_t2try_id_type IS TABLE OF okl_trx_assets.try_id%TYPE INDEX BY BINARY_INTEGER;
5837     TYPE l_t2date_trans_occurred_type IS TABLE OF okl_trx_assets.date_trans_occurred%TYPE INDEX BY BINARY_INTEGER;
5838     TYPE l_t2trans_number_type IS TABLE OF okl_trx_assets.trans_number%TYPE INDEX BY BINARY_INTEGER;
5839     TYPE l_t2comments_type IS TABLE OF okl_trx_assets.comments%TYPE INDEX BY BINARY_INTEGER;
5840     TYPE l_t2req_asset_id_type IS TABLE OF okl_trx_assets.req_asset_id%TYPE INDEX BY BINARY_INTEGER;
5841     TYPE l_t2total_match_amount_type IS TABLE OF okl_trx_assets.total_match_amount%TYPE INDEX BY BINARY_INTEGER;
5842     TYPE l_t2org_id_type IS TABLE OF okl_trx_assets.org_id%TYPE INDEX BY BINARY_INTEGER;
5843     TYPE l_t2legal_entity_id_type IS TABLE OF okl_trx_assets.legal_entity_id%TYPE INDEX BY BINARY_INTEGER;
5844 
5845     -- For okl_trx_assets End (45)
5846 
5847     -- For okl_txl_assets_b Begin
5848 
5849     TYPE l_tbid_type IS TABLE OF okl_txl_assets_b.id%TYPE INDEX BY BINARY_INTEGER;
5850     TYPE l_tbobject_version_number_type IS TABLE OF okl_txl_assets_b.object_version_number%TYPE INDEX BY BINARY_INTEGER;
5851     TYPE l_tbtas_id_type IS TABLE OF okl_txl_assets_b.tas_id%TYPE INDEX BY BINARY_INTEGER;
5852     TYPE l_tbilo_id_type IS TABLE OF okl_txl_assets_b.ilo_id%TYPE INDEX BY BINARY_INTEGER;
5853     TYPE l_tbilo_id_old_type IS TABLE OF okl_txl_assets_b.ilo_id_old%TYPE INDEX BY BINARY_INTEGER;
5854     TYPE l_tbiay_id_type IS TABLE OF okl_txl_assets_b.iay_id%TYPE INDEX BY BINARY_INTEGER;
5855     TYPE l_tbiay_id_new_type IS TABLE OF okl_txl_assets_b.iay_id_new%TYPE INDEX BY BINARY_INTEGER;
5856     TYPE l_tbkle_id_type IS TABLE OF okl_txl_assets_b.kle_id%TYPE INDEX BY BINARY_INTEGER;
5857     TYPE l_tbdnz_khr_id_type IS TABLE OF okl_txl_assets_b.dnz_khr_id%TYPE INDEX BY BINARY_INTEGER;
5858     TYPE l_tbline_number_type IS TABLE OF okl_txl_assets_b.line_number%TYPE INDEX BY BINARY_INTEGER;
5859     TYPE l_tborg_id_type IS TABLE OF okl_txl_assets_b.org_id%TYPE INDEX BY BINARY_INTEGER;
5860     TYPE l_tbtal_type_type IS TABLE OF okl_txl_assets_b.tal_type%TYPE INDEX BY BINARY_INTEGER;
5861     TYPE l_tbasset_number_type IS TABLE OF okl_txl_assets_b.asset_number%TYPE INDEX BY BINARY_INTEGER;
5862     TYPE l_tbfa_location_id_type IS TABLE OF okl_txl_assets_b.fa_location_id%TYPE INDEX BY BINARY_INTEGER;
5863     TYPE l_tboriginal_cost_type IS TABLE OF okl_txl_assets_b.original_cost%TYPE INDEX BY BINARY_INTEGER;
5864     TYPE l_tbcurrent_units_type IS TABLE OF okl_txl_assets_b.current_units%TYPE INDEX BY BINARY_INTEGER;
5865     TYPE l_tbmanufacturer_name_type IS TABLE OF okl_txl_assets_b.manufacturer_name%TYPE INDEX BY BINARY_INTEGER;
5866     TYPE l_tbyear_manufactured_type IS TABLE OF okl_txl_assets_b.year_manufactured%TYPE INDEX BY BINARY_INTEGER;
5867     TYPE l_tbsupplier_id_type IS TABLE OF okl_txl_assets_b.supplier_id%TYPE INDEX BY BINARY_INTEGER;
5868     TYPE l_tbused_asset_yn_type IS TABLE OF okl_txl_assets_b.used_asset_yn%TYPE INDEX BY BINARY_INTEGER;
5869     TYPE l_tbtag_number_type IS TABLE OF okl_txl_assets_b.tag_number%TYPE INDEX BY BINARY_INTEGER;
5870     TYPE l_tbmodel_number_type IS TABLE OF okl_txl_assets_b.model_number%TYPE INDEX BY BINARY_INTEGER;
5871     TYPE l_tbcorporate_book_type IS TABLE OF okl_txl_assets_b.corporate_book%TYPE INDEX BY BINARY_INTEGER;
5872     TYPE l_tbdate_purchased_type IS TABLE OF okl_txl_assets_b.date_purchased%TYPE INDEX BY BINARY_INTEGER;
5873     TYPE l_tbdate_delivery_type IS TABLE OF okl_txl_assets_b.date_delivery%TYPE INDEX BY BINARY_INTEGER;
5874     TYPE l_tbin_service_date_type IS TABLE OF okl_txl_assets_b.in_service_date%TYPE INDEX BY BINARY_INTEGER;
5875     TYPE l_tblife_in_months_type IS TABLE OF okl_txl_assets_b.life_in_months%TYPE INDEX BY BINARY_INTEGER;
5876     TYPE l_tbdepreciation_id_type IS TABLE OF okl_txl_assets_b.depreciation_id%TYPE INDEX BY BINARY_INTEGER;
5877     TYPE l_tbdepreciation_cost_type IS TABLE OF okl_txl_assets_b.depreciation_cost%TYPE INDEX BY BINARY_INTEGER;
5878     TYPE l_tbdeprn_method_type IS TABLE OF okl_txl_assets_b.deprn_method%TYPE INDEX BY BINARY_INTEGER;
5879     TYPE l_tbdeprn_rate_type IS TABLE OF okl_txl_assets_b.deprn_rate%TYPE INDEX BY BINARY_INTEGER;
5880     TYPE l_tbsalvage_value_type IS TABLE OF okl_txl_assets_b.salvage_value%TYPE INDEX BY BINARY_INTEGER;
5881     TYPE l_tbpercent_salvage_value_type IS TABLE OF okl_txl_assets_b.percent_salvage_value%TYPE INDEX BY BINARY_INTEGER;
5882     TYPE l_tbattribute_category_type IS TABLE OF okl_txl_assets_b.attribute_category%TYPE INDEX BY BINARY_INTEGER;
5883     TYPE l_tbattribute1_type IS TABLE OF okl_txl_assets_b.attribute1%TYPE INDEX BY BINARY_INTEGER;
5884     TYPE l_tbattribute2_type IS TABLE OF okl_txl_assets_b.attribute2%TYPE INDEX BY BINARY_INTEGER;
5885     TYPE l_tbattribute3_type IS TABLE OF okl_txl_assets_b.attribute3%TYPE INDEX BY BINARY_INTEGER;
5886     TYPE l_tbattribute4_type IS TABLE OF okl_txl_assets_b.attribute4%TYPE INDEX BY BINARY_INTEGER;
5887     TYPE l_tbattribute5_type IS TABLE OF okl_txl_assets_b.attribute5%TYPE INDEX BY BINARY_INTEGER;
5888     TYPE l_tbattribute6_type IS TABLE OF okl_txl_assets_b.attribute6%TYPE INDEX BY BINARY_INTEGER;
5889     TYPE l_tbattribute7_type IS TABLE OF okl_txl_assets_b.attribute7%TYPE INDEX BY BINARY_INTEGER;
5890     TYPE l_tbattribute8_type IS TABLE OF okl_txl_assets_b.attribute8%TYPE INDEX BY BINARY_INTEGER;
5891     TYPE l_tbattribute9_type IS TABLE OF okl_txl_assets_b.attribute9%TYPE INDEX BY BINARY_INTEGER;
5892     TYPE l_tbattribute10_type IS TABLE OF okl_txl_assets_b.attribute10%TYPE INDEX BY BINARY_INTEGER;
5893     TYPE l_tbattribute11_type IS TABLE OF okl_txl_assets_b.attribute11%TYPE INDEX BY BINARY_INTEGER;
5894     TYPE l_tbattribute12_type IS TABLE OF okl_txl_assets_b.attribute12%TYPE INDEX BY BINARY_INTEGER;
5895     TYPE l_tbattribute13_type IS TABLE OF okl_txl_assets_b.attribute13%TYPE INDEX BY BINARY_INTEGER;
5896     TYPE l_tbattribute14_type IS TABLE OF okl_txl_assets_b.attribute14%TYPE INDEX BY BINARY_INTEGER;
5897     TYPE l_tbattribute15_type IS TABLE OF okl_txl_assets_b.attribute15%TYPE INDEX BY BINARY_INTEGER;
5898     TYPE l_tbcreated_by_type IS TABLE OF okl_txl_assets_b.created_by%TYPE INDEX BY BINARY_INTEGER;
5899     TYPE l_tbcreation_date_type IS TABLE OF okl_txl_assets_b.creation_date%TYPE INDEX BY BINARY_INTEGER;
5900     TYPE l_tblast_updated_by_type IS TABLE OF okl_txl_assets_b.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
5901     TYPE l_tblast_update_date_type IS TABLE OF okl_txl_assets_b.last_update_date%TYPE INDEX BY BINARY_INTEGER;
5902     TYPE l_tblast_update_login_type IS TABLE OF okl_txl_assets_b.last_update_login%TYPE INDEX BY BINARY_INTEGER;
5903     TYPE l_tbdepreciate_yn_type IS TABLE OF okl_txl_assets_b.depreciate_yn%TYPE INDEX BY BINARY_INTEGER;
5904     TYPE l_tbhold_period_days_type IS TABLE OF okl_txl_assets_b.hold_period_days%TYPE INDEX BY BINARY_INTEGER;
5905     TYPE l_tbold_salvage_value_type IS TABLE OF okl_txl_assets_b.old_salvage_value%TYPE INDEX BY BINARY_INTEGER;
5906     TYPE l_tbnew_residual_value_type IS TABLE OF okl_txl_assets_b.new_residual_value%TYPE INDEX BY BINARY_INTEGER;
5907     TYPE l_tbold_residual_value_type IS TABLE OF okl_txl_assets_b.old_residual_value%TYPE INDEX BY BINARY_INTEGER;
5908     TYPE l_tbunits_retired_type IS TABLE OF okl_txl_assets_b.units_retired%TYPE INDEX BY BINARY_INTEGER;
5909     TYPE l_tbcost_retired_type IS TABLE OF okl_txl_assets_b.cost_retired%TYPE INDEX BY BINARY_INTEGER;
5910     TYPE l_tbsale_proceeds_type IS TABLE OF okl_txl_assets_b.sale_proceeds%TYPE INDEX BY BINARY_INTEGER;
5911     TYPE l_tbremoval_cost_type IS TABLE OF okl_txl_assets_b.removal_cost%TYPE INDEX BY BINARY_INTEGER;
5912     TYPE l_tbdnz_asset_id_type IS TABLE OF okl_txl_assets_b.dnz_asset_id%TYPE INDEX BY BINARY_INTEGER;
5913     TYPE l_tbdate_due_type IS TABLE OF okl_txl_assets_b.date_due%TYPE INDEX BY BINARY_INTEGER;
5914     TYPE l_tbrep_asset_id_type IS TABLE OF okl_txl_assets_b.rep_asset_id%TYPE INDEX BY BINARY_INTEGER;
5915     TYPE l_tblke_asset_id_type IS TABLE OF okl_txl_assets_b.lke_asset_id%TYPE INDEX BY BINARY_INTEGER;
5916     TYPE l_tbmatch_amount_type IS TABLE OF okl_txl_assets_b.match_amount%TYPE INDEX BY BINARY_INTEGER;
5917     TYPE l_tbsplit_into_singles_fl_type IS TABLE OF okl_txl_assets_b.split_into_singles_flag%TYPE INDEX BY BINARY_INTEGER;
5918     TYPE l_tbsplit_into_units_type IS TABLE OF okl_txl_assets_b.split_into_units%TYPE INDEX BY BINARY_INTEGER;
5919     TYPE l_tbcurrency_code_type IS TABLE OF okl_txl_assets_b.currency_code%TYPE INDEX BY BINARY_INTEGER;
5920     TYPE l_tbcurrency_convers_type_type IS TABLE OF okl_txl_assets_b.currency_conversion_type%TYPE INDEX BY BINARY_INTEGER;
5921     TYPE l_tbcurrency_convers_rate_type IS TABLE OF okl_txl_assets_b.currency_conversion_rate%TYPE INDEX BY BINARY_INTEGER;
5922     TYPE l_tbcurrency_convers_date_type IS TABLE OF okl_txl_assets_b.currency_conversion_date%TYPE INDEX BY BINARY_INTEGER;
5923     TYPE l_tbasset_key_id_type IS TABLE OF okl_txl_assets_b.asset_key_id%TYPE INDEX BY BINARY_INTEGER;
5924     TYPE l_tbfa_trx_date_type IS TABLE OF okl_txl_assets_b.fa_trx_date%TYPE INDEX BY BINARY_INTEGER;
5925     TYPE l_tbfa_cost_type IS TABLE OF okl_txl_assets_b.fa_cost%TYPE INDEX BY BINARY_INTEGER;
5926 
5927     -- For okl_txl_assets_b End
5928 
5929 
5930     -- For okl_txl_assets_tl Begin
5931 
5932     TYPE l_tlid_type IS TABLE OF okl_txl_assets_tl.id%TYPE INDEX BY BINARY_INTEGER;
5933     TYPE l_tllanguage_type IS TABLE OF okl_txl_assets_tl.LANGUAGE%TYPE INDEX BY BINARY_INTEGER;
5934     TYPE l_tlsource_lang_type IS TABLE OF okl_txl_assets_tl.source_lang%TYPE INDEX BY BINARY_INTEGER;
5935     TYPE l_tlsfwt_flag_type IS TABLE OF okl_txl_assets_tl.sfwt_flag%TYPE INDEX BY BINARY_INTEGER;
5936     TYPE l_tldescription_type IS TABLE OF okl_txl_assets_tl.description%TYPE INDEX BY BINARY_INTEGER;
5937     TYPE l_tlcreated_by_type IS TABLE OF okl_txl_assets_tl.created_by%TYPE INDEX BY BINARY_INTEGER;
5938     TYPE l_tlcreation_date_type IS TABLE OF okl_txl_assets_tl.creation_date%TYPE INDEX BY BINARY_INTEGER;
5939     TYPE l_tllast_updated_by_type IS TABLE OF okl_txl_assets_tl.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
5940     TYPE l_tllast_update_date_type IS TABLE OF okl_txl_assets_tl.last_update_date%TYPE INDEX BY BINARY_INTEGER;
5941     TYPE l_tllast_update_login_type IS TABLE OF okl_txl_assets_tl.last_update_login%TYPE INDEX BY BINARY_INTEGER;
5942 
5943     -- For okl_txl_assets_tl End
5944 
5945     -- For okl_txd_assets_b Begin
5946 
5947     TYPE l_dbid_type IS TABLE OF okl_txd_assets_b.id%TYPE INDEX BY BINARY_INTEGER;
5948     TYPE l_dbobject_version_number_type IS TABLE OF okl_txd_assets_b.object_version_number%TYPE INDEX BY BINARY_INTEGER;
5949     TYPE l_dbtal_id_type IS TABLE OF okl_txd_assets_b.tal_id%TYPE INDEX BY BINARY_INTEGER;
5950     TYPE l_dbtarget_kle_id_type IS TABLE OF okl_txd_assets_b.target_kle_id%TYPE INDEX BY BINARY_INTEGER;
5951     TYPE l_dbline_detail_number_type IS TABLE OF okl_txd_assets_b.line_detail_number%TYPE INDEX BY BINARY_INTEGER;
5952     TYPE l_dbasset_number_type IS TABLE OF okl_txd_assets_b.asset_number%TYPE INDEX BY BINARY_INTEGER;
5953     TYPE l_dbquantity_type IS TABLE OF okl_txd_assets_b.quantity%TYPE INDEX BY BINARY_INTEGER;
5954     TYPE l_dbcost_type IS TABLE OF okl_txd_assets_b.cost%TYPE INDEX BY BINARY_INTEGER;
5955     TYPE l_dbtax_book_type IS TABLE OF okl_txd_assets_b.tax_book%TYPE INDEX BY BINARY_INTEGER;
5956     TYPE l_dblife_in_months_tax_type IS TABLE OF okl_txd_assets_b.life_in_months_tax%TYPE INDEX BY BINARY_INTEGER;
5957     TYPE l_dbdeprn_method_tax_type IS TABLE OF okl_txd_assets_b.deprn_method_tax%TYPE INDEX BY BINARY_INTEGER;
5958     TYPE l_dbdeprn_rate_tax_type IS TABLE OF okl_txd_assets_b.deprn_rate_tax%TYPE INDEX BY BINARY_INTEGER;
5959     TYPE l_dbsalvage_value_type IS TABLE OF okl_txd_assets_b.salvage_value%TYPE INDEX BY BINARY_INTEGER;
5960     TYPE l_dbsplit_percent_type IS TABLE OF okl_txd_assets_b.split_percent%TYPE INDEX BY BINARY_INTEGER;
5961     TYPE l_dbinventory_item_id_type IS TABLE OF okl_txd_assets_b.inventory_item_id%TYPE INDEX BY BINARY_INTEGER;
5962     TYPE l_dbattribute_category_type IS TABLE OF okl_txd_assets_b.attribute_category%TYPE INDEX BY BINARY_INTEGER;
5963     TYPE l_dbattribute1_type IS TABLE OF okl_txd_assets_b.attribute1%TYPE INDEX BY BINARY_INTEGER;
5964     TYPE l_dbattribute2_type IS TABLE OF okl_txd_assets_b.attribute2%TYPE INDEX BY BINARY_INTEGER;
5965     TYPE l_dbattribute3_type IS TABLE OF okl_txd_assets_b.attribute3%TYPE INDEX BY BINARY_INTEGER;
5966     TYPE l_dbattribute4_type IS TABLE OF okl_txd_assets_b.attribute4%TYPE INDEX BY BINARY_INTEGER;
5967     TYPE l_dbattribute5_type IS TABLE OF okl_txd_assets_b.attribute5%TYPE INDEX BY BINARY_INTEGER;
5968     TYPE l_dbattribute6_type IS TABLE OF okl_txd_assets_b.attribute6%TYPE INDEX BY BINARY_INTEGER;
5969     TYPE l_dbattribute7_type IS TABLE OF okl_txd_assets_b.attribute7%TYPE INDEX BY BINARY_INTEGER;
5970     TYPE l_dbattribute8_type IS TABLE OF okl_txd_assets_b.attribute8%TYPE INDEX BY BINARY_INTEGER;
5971     TYPE l_dbattribute9_type IS TABLE OF okl_txd_assets_b.attribute9%TYPE INDEX BY BINARY_INTEGER;
5972     TYPE l_dbattribute10_type IS TABLE OF okl_txd_assets_b.attribute10%TYPE INDEX BY BINARY_INTEGER;
5973     TYPE l_dbattribute11_type IS TABLE OF okl_txd_assets_b.attribute11%TYPE INDEX BY BINARY_INTEGER;
5974     TYPE l_dbattribute12_type IS TABLE OF okl_txd_assets_b.attribute12%TYPE INDEX BY BINARY_INTEGER;
5975     TYPE l_dbattribute13_type IS TABLE OF okl_txd_assets_b.attribute13%TYPE INDEX BY BINARY_INTEGER;
5976     TYPE l_dbattribute14_type IS TABLE OF okl_txd_assets_b.attribute14%TYPE INDEX BY BINARY_INTEGER;
5977     TYPE l_dbattribute15_type IS TABLE OF okl_txd_assets_b.attribute15%TYPE INDEX BY BINARY_INTEGER;
5978     TYPE l_dbcreated_by_type IS TABLE OF okl_txd_assets_b.created_by%TYPE INDEX BY BINARY_INTEGER;
5979     TYPE l_dbcreation_date_type IS TABLE OF okl_txd_assets_b.creation_date%TYPE INDEX BY BINARY_INTEGER;
5980     TYPE l_dblast_updated_by_type IS TABLE OF okl_txd_assets_b.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
5981     TYPE l_dblast_update_date_type IS TABLE OF okl_txd_assets_b.last_update_date%TYPE INDEX BY BINARY_INTEGER;
5982     TYPE l_dblast_update_login_type IS TABLE OF okl_txd_assets_b.last_update_login%TYPE INDEX BY BINARY_INTEGER;
5983     TYPE l_dbcurrency_code_type IS TABLE OF okl_txd_assets_b.currency_code%TYPE INDEX BY BINARY_INTEGER;
5984     TYPE l_dbcurrency_convers_type_type IS TABLE OF okl_txd_assets_b.currency_conversion_type%TYPE INDEX BY BINARY_INTEGER;
5985     TYPE l_dbcurrency_convers_rate_type IS TABLE OF okl_txd_assets_b.currency_conversion_rate%TYPE INDEX BY BINARY_INTEGER;
5986     TYPE l_dbcurrency_convers_date_type IS TABLE OF okl_txd_assets_b.currency_conversion_date%TYPE INDEX BY BINARY_INTEGER;
5987 
5988     -- For okl_txd_assets_b End
5989 
5990     -- For okl_txd_assets_tl Begin
5991 
5992     TYPE l_dlid_type IS TABLE OF okl_txd_assets_tl.id%TYPE INDEX BY BINARY_INTEGER;
5993     TYPE l_dllanguage_type IS TABLE OF okl_txd_assets_tl.LANGUAGE%TYPE INDEX BY BINARY_INTEGER;
5994     TYPE l_dlsource_lang_type IS TABLE OF okl_txd_assets_tl.source_lang%TYPE INDEX BY BINARY_INTEGER;
5995     TYPE l_dlsfwt_flag_type IS TABLE OF okl_txd_assets_tl.sfwt_flag%TYPE INDEX BY BINARY_INTEGER;
5996     TYPE l_dldescription_type IS TABLE OF okl_txd_assets_tl.description%TYPE INDEX BY BINARY_INTEGER;
5997     TYPE l_dlcreated_by_type IS TABLE OF okl_txd_assets_tl.created_by%TYPE INDEX BY BINARY_INTEGER;
5998     TYPE l_dlcreation_date_type IS TABLE OF okl_txd_assets_tl.creation_date%TYPE INDEX BY BINARY_INTEGER;
5999     TYPE l_dllast_updated_by_type IS TABLE OF okl_txd_assets_tl.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
6000     TYPE l_dllast_update_date_type IS TABLE OF okl_txd_assets_tl.last_update_date%TYPE INDEX BY BINARY_INTEGER;
6001     TYPE l_dllast_update_login_type IS TABLE OF okl_txd_assets_tl.last_update_login%TYPE INDEX BY BINARY_INTEGER;
6002 
6003     -- For okl_txd_assets_tl End
6004 
6005     -- For okl_txl_itm_insts Begin
6006 
6007     TYPE l_tiid_type IS TABLE OF okl_txl_itm_insts.id%TYPE INDEX BY BINARY_INTEGER;
6008     TYPE l_tiobject_version_number_type IS TABLE OF okl_txl_itm_insts.object_version_number%TYPE INDEX BY BINARY_INTEGER;
6009     TYPE l_titas_id_type IS TABLE OF okl_txl_itm_insts.tas_id%TYPE INDEX BY BINARY_INTEGER;
6010     TYPE l_tital_id_type IS TABLE OF okl_txl_itm_insts.tal_id%TYPE INDEX BY BINARY_INTEGER;
6011     TYPE l_tikle_id_type IS TABLE OF okl_txl_itm_insts.kle_id%TYPE INDEX BY BINARY_INTEGER;
6012     TYPE l_tital_type_type IS TABLE OF okl_txl_itm_insts.tal_type%TYPE INDEX BY BINARY_INTEGER;
6013     TYPE l_tiline_number_type IS TABLE OF okl_txl_itm_insts.line_number%TYPE INDEX BY BINARY_INTEGER;
6014     TYPE l_tiinstance_number_ib_type IS TABLE OF okl_txl_itm_insts.instance_number_ib%TYPE INDEX BY BINARY_INTEGER;
6015     TYPE l_tiobject_id1_new_type IS TABLE OF okl_txl_itm_insts.object_id1_new%TYPE INDEX BY BINARY_INTEGER;
6016     TYPE l_tiobject_id2_new_type IS TABLE OF okl_txl_itm_insts.object_id2_new%TYPE INDEX BY BINARY_INTEGER;
6017     TYPE l_tijtot_object_code_new_type IS TABLE OF okl_txl_itm_insts.jtot_object_code_new%TYPE INDEX BY BINARY_INTEGER;
6018     TYPE l_tiobject_id1_old_type IS TABLE OF okl_txl_itm_insts.object_id1_old%TYPE INDEX BY BINARY_INTEGER;
6019     TYPE l_tiobject_id2_old_type IS TABLE OF okl_txl_itm_insts.object_id2_old%TYPE INDEX BY BINARY_INTEGER;
6020     TYPE l_tijtot_object_code_old_type IS TABLE OF okl_txl_itm_insts.jtot_object_code_old%TYPE INDEX BY BINARY_INTEGER;
6021     TYPE l_tiinventory_org_id_type IS TABLE OF okl_txl_itm_insts.inventory_org_id%TYPE INDEX BY BINARY_INTEGER;
6022     TYPE l_tiserial_number_type IS TABLE OF okl_txl_itm_insts.serial_number%TYPE INDEX BY BINARY_INTEGER;
6023     TYPE l_timfg_serial_number_yn_type IS TABLE OF okl_txl_itm_insts.mfg_serial_number_yn%TYPE INDEX BY BINARY_INTEGER;
6024     TYPE l_tiinventory_item_id_type IS TABLE OF okl_txl_itm_insts.inventory_item_id%TYPE INDEX BY BINARY_INTEGER;
6025     TYPE l_tiinv_master_org_id_type IS TABLE OF okl_txl_itm_insts.inv_master_org_id%TYPE INDEX BY BINARY_INTEGER;
6026     TYPE l_tiattribute_category_type IS TABLE OF okl_txl_itm_insts.attribute_category%TYPE INDEX BY BINARY_INTEGER;
6027     TYPE l_tiattribute1_type IS TABLE OF okl_txl_itm_insts.attribute1%TYPE INDEX BY BINARY_INTEGER;
6028     TYPE l_tiattribute2_type IS TABLE OF okl_txl_itm_insts.attribute2%TYPE INDEX BY BINARY_INTEGER;
6029     TYPE l_tiattribute3_type IS TABLE OF okl_txl_itm_insts.attribute3%TYPE INDEX BY BINARY_INTEGER;
6030     TYPE l_tiattribute4_type IS TABLE OF okl_txl_itm_insts.attribute4%TYPE INDEX BY BINARY_INTEGER;
6031     TYPE l_tiattribute5_type IS TABLE OF okl_txl_itm_insts.attribute5%TYPE INDEX BY BINARY_INTEGER;
6032     TYPE l_tiattribute6_type IS TABLE OF okl_txl_itm_insts.attribute6%TYPE INDEX BY BINARY_INTEGER;
6033     TYPE l_tiattribute7_type IS TABLE OF okl_txl_itm_insts.attribute7%TYPE INDEX BY BINARY_INTEGER;
6034     TYPE l_tiattribute8_type IS TABLE OF okl_txl_itm_insts.attribute8%TYPE INDEX BY BINARY_INTEGER;
6035     TYPE l_tiattribute9_type IS TABLE OF okl_txl_itm_insts.attribute9%TYPE INDEX BY BINARY_INTEGER;
6036     TYPE l_tiattribute10_type IS TABLE OF okl_txl_itm_insts.attribute10%TYPE INDEX BY BINARY_INTEGER;
6037     TYPE l_tiattribute11_type IS TABLE OF okl_txl_itm_insts.attribute11%TYPE INDEX BY BINARY_INTEGER;
6038     TYPE l_tiattribute12_type IS TABLE OF okl_txl_itm_insts.attribute12%TYPE INDEX BY BINARY_INTEGER;
6039     TYPE l_tiattribute13_type IS TABLE OF okl_txl_itm_insts.attribute13%TYPE INDEX BY BINARY_INTEGER;
6040     TYPE l_tiattribute14_type IS TABLE OF okl_txl_itm_insts.attribute14%TYPE INDEX BY BINARY_INTEGER;
6041     TYPE l_tiattribute15_type IS TABLE OF okl_txl_itm_insts.attribute15%TYPE INDEX BY BINARY_INTEGER;
6042     TYPE l_ticreated_by_type IS TABLE OF okl_txl_itm_insts.created_by%TYPE INDEX BY BINARY_INTEGER;
6043     TYPE l_ticreation_date_type IS TABLE OF okl_txl_itm_insts.creation_date%TYPE INDEX BY BINARY_INTEGER;
6044     TYPE l_tilast_updated_by_type IS TABLE OF okl_txl_itm_insts.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
6045     TYPE l_tilast_update_date_type IS TABLE OF okl_txl_itm_insts.last_update_date%TYPE INDEX BY BINARY_INTEGER;
6046     TYPE l_tilast_update_login_type IS TABLE OF okl_txl_itm_insts.last_update_login%TYPE INDEX BY BINARY_INTEGER;
6047     TYPE l_tidnz_cle_id_type IS TABLE OF okl_txl_itm_insts.dnz_cle_id%TYPE INDEX BY BINARY_INTEGER;
6048     TYPE l_tiinstance_id_type IS TABLE OF okl_txl_itm_insts.instance_id%TYPE INDEX BY BINARY_INTEGER;
6049     TYPE l_tiselected_for_split_fl_type IS TABLE OF okl_txl_itm_insts.selected_for_split_flag%TYPE INDEX BY BINARY_INTEGER;
6050     TYPE l_tiasd_id_type IS TABLE OF okl_txl_itm_insts.asd_id%TYPE INDEX BY BINARY_INTEGER;
6051 
6052     -- For okl_txl_itm_insts End
6053 
6054     -- For okl_party_payment_dtls Begin
6055 
6056     TYPE l_ppid_type IS TABLE OF okl_party_payment_dtls.id%TYPE INDEX BY BINARY_INTEGER;
6057     TYPE l_ppobject_version_number_type IS TABLE OF okl_party_payment_dtls.object_version_number%TYPE INDEX BY BINARY_INTEGER;
6058     TYPE l_ppcpl_id_type IS TABLE OF okl_party_payment_dtls.cpl_id%TYPE INDEX BY BINARY_INTEGER;
6059     TYPE l_ppvendor_id_type IS TABLE OF okl_party_payment_dtls.vendor_id%TYPE INDEX BY BINARY_INTEGER;
6060     TYPE l_pppay_site_id_type IS TABLE OF okl_party_payment_dtls.pay_site_id%TYPE INDEX BY BINARY_INTEGER;
6061     TYPE l_pppayment_term_id_type IS TABLE OF okl_party_payment_dtls.payment_term_id%TYPE INDEX BY BINARY_INTEGER;
6062     TYPE l_pppayment_method_code_type IS TABLE OF okl_party_payment_dtls.payment_method_code%TYPE INDEX BY BINARY_INTEGER;
6063     TYPE l_pppay_group_code_type IS TABLE OF okl_party_payment_dtls.pay_group_code%TYPE INDEX BY BINARY_INTEGER;
6064     TYPE l_ppattribute_category_type IS TABLE OF okl_party_payment_dtls.attribute_category%TYPE INDEX BY BINARY_INTEGER;
6065     TYPE l_ppattribute1_type IS TABLE OF okl_party_payment_dtls.attribute1%TYPE INDEX BY BINARY_INTEGER;
6066     TYPE l_ppattribute2_type IS TABLE OF okl_party_payment_dtls.attribute2%TYPE INDEX BY BINARY_INTEGER;
6067     TYPE l_ppattribute3_type IS TABLE OF okl_party_payment_dtls.attribute3%TYPE INDEX BY BINARY_INTEGER;
6068     TYPE l_ppattribute4_type IS TABLE OF okl_party_payment_dtls.attribute4%TYPE INDEX BY BINARY_INTEGER;
6069     TYPE l_ppattribute5_type IS TABLE OF okl_party_payment_dtls.attribute5%TYPE INDEX BY BINARY_INTEGER;
6070     TYPE l_ppattribute6_type IS TABLE OF okl_party_payment_dtls.attribute6%TYPE INDEX BY BINARY_INTEGER;
6071     TYPE l_ppattribute7_type IS TABLE OF okl_party_payment_dtls.attribute7%TYPE INDEX BY BINARY_INTEGER;
6072     TYPE l_ppattribute8_type IS TABLE OF okl_party_payment_dtls.attribute8%TYPE INDEX BY BINARY_INTEGER;
6073     TYPE l_ppattribute9_type IS TABLE OF okl_party_payment_dtls.attribute9%TYPE INDEX BY BINARY_INTEGER;
6074     TYPE l_ppattribute10_type IS TABLE OF okl_party_payment_dtls.attribute10%TYPE INDEX BY BINARY_INTEGER;
6075     TYPE l_ppattribute11_type IS TABLE OF okl_party_payment_dtls.attribute11%TYPE INDEX BY BINARY_INTEGER;
6076     TYPE l_ppattribute12_type IS TABLE OF okl_party_payment_dtls.attribute12%TYPE INDEX BY BINARY_INTEGER;
6077     TYPE l_ppattribute13_type IS TABLE OF okl_party_payment_dtls.attribute13%TYPE INDEX BY BINARY_INTEGER;
6078     TYPE l_ppattribute14_type IS TABLE OF okl_party_payment_dtls.attribute14%TYPE INDEX BY BINARY_INTEGER;
6079     TYPE l_ppattribute15_type IS TABLE OF okl_party_payment_dtls.attribute15%TYPE INDEX BY BINARY_INTEGER;
6080     TYPE l_ppcreated_by_type IS TABLE OF okl_party_payment_dtls.created_by%TYPE INDEX BY BINARY_INTEGER;
6081     TYPE l_ppcreation_date_type IS TABLE OF okl_party_payment_dtls.creation_date%TYPE INDEX BY BINARY_INTEGER;
6082     TYPE l_pplast_updated_by_type IS TABLE OF okl_party_payment_dtls.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
6083     TYPE l_pplast_update_date_type IS TABLE OF okl_party_payment_dtls.last_update_date%TYPE INDEX BY BINARY_INTEGER;
6084     TYPE l_pplast_update_login_type IS TABLE OF okl_party_payment_dtls.last_update_login%TYPE INDEX BY BINARY_INTEGER;
6085     TYPE l_pppayment_hdr_id_type is table of okl_party_payment_dtls.payment_hdr_id%TYPE index by binary_integer;
6086     TYPE l_pppayment_start_date_type is table of okl_party_payment_dtls.payment_start_date%TYPE index by binary_integer;
6087     TYPE l_pppayment_frequency_type is table of okl_party_payment_dtls.payment_frequency%TYPE index by binary_integer;
6088     TYPE l_ppremit_days_type is table of okl_party_payment_dtls.remit_days%TYPE index by binary_integer;
6089     TYPE l_ppdisbursement_basis_type is table of okl_party_payment_dtls.disbursement_basis%TYPE index by binary_integer;
6090     TYPE l_ppdisbursement_fixed_am_type is table of okl_party_payment_dtls.disbursement_fixed_amount%TYPE index by binary_integer;
6091     TYPE l_ppdisbursement_percent_type is table of okl_party_payment_dtls.disbursement_percent%TYPE index by binary_integer;
6092     TYPE l_ppprocessing_fee_basis_type is table of okl_party_payment_dtls.processing_fee_basis%TYPE index by binary_integer;
6093     TYPE l_ppprocessing_fee_fixedt_type is table of okl_party_payment_dtls.processing_fee_fixed_amount%TYPE index by binary_integer;
6094     TYPE l_ppprocessing_fee_percen_type is table of okl_party_payment_dtls.processing_fee_percent%TYPE index by binary_integer;
6095     TYPE l_pppayment_basis_type is table of okl_party_payment_dtls.payment_basis%TYPE index by binary_integer;
6096 
6097     -- For okl_party_payment_dtls End
6098 
6099     -- For okl_slctd_optns Begin
6100 
6101     TYPE l_sid_type IS TABLE OF okl_slctd_optns.id%TYPE INDEX BY BINARY_INTEGER;
6102     TYPE l_spov_id_type IS TABLE OF okl_slctd_optns.pov_id%TYPE INDEX BY BINARY_INTEGER;
6103     TYPE l_skhr_id_type IS TABLE OF okl_slctd_optns.khr_id%TYPE INDEX BY BINARY_INTEGER;
6104     TYPE l_sobject_version_number_type IS TABLE OF okl_slctd_optns.object_version_number%TYPE INDEX BY BINARY_INTEGER;
6105     TYPE l_sattribute_category_type IS TABLE OF okl_slctd_optns.attribute_category%TYPE INDEX BY BINARY_INTEGER;
6106     TYPE l_sattribute1_type IS TABLE OF okl_slctd_optns.attribute1%TYPE INDEX BY BINARY_INTEGER;
6107     TYPE l_sattribute2_type IS TABLE OF okl_slctd_optns.attribute2%TYPE INDEX BY BINARY_INTEGER;
6108     TYPE l_sattribute3_type IS TABLE OF okl_slctd_optns.attribute3%TYPE INDEX BY BINARY_INTEGER;
6109     TYPE l_sattribute4_type IS TABLE OF okl_slctd_optns.attribute4%TYPE INDEX BY BINARY_INTEGER;
6110     TYPE l_sattribute5_type IS TABLE OF okl_slctd_optns.attribute5%TYPE INDEX BY BINARY_INTEGER;
6111     TYPE l_sattribute6_type IS TABLE OF okl_slctd_optns.attribute6%TYPE INDEX BY BINARY_INTEGER;
6112     TYPE l_sattribute7_type IS TABLE OF okl_slctd_optns.attribute7%TYPE INDEX BY BINARY_INTEGER;
6113     TYPE l_sattribute8_type IS TABLE OF okl_slctd_optns.attribute8%TYPE INDEX BY BINARY_INTEGER;
6114     TYPE l_sattribute9_type IS TABLE OF okl_slctd_optns.attribute9%TYPE INDEX BY BINARY_INTEGER;
6115     TYPE l_sattribute10_type IS TABLE OF okl_slctd_optns.attribute10%TYPE INDEX BY BINARY_INTEGER;
6116     TYPE l_sattribute11_type IS TABLE OF okl_slctd_optns.attribute11%TYPE INDEX BY BINARY_INTEGER;
6117     TYPE l_sattribute12_type IS TABLE OF okl_slctd_optns.attribute12%TYPE INDEX BY BINARY_INTEGER;
6118     TYPE l_sattribute13_type IS TABLE OF okl_slctd_optns.attribute13%TYPE INDEX BY BINARY_INTEGER;
6119     TYPE l_sattribute14_type IS TABLE OF okl_slctd_optns.attribute14%TYPE INDEX BY BINARY_INTEGER;
6120     TYPE l_sattribute15_type IS TABLE OF okl_slctd_optns.attribute15%TYPE INDEX BY BINARY_INTEGER;
6121     TYPE l_screated_by_type IS TABLE OF okl_slctd_optns.created_by%TYPE INDEX BY BINARY_INTEGER;
6122     TYPE l_screation_date_type IS TABLE OF okl_slctd_optns.creation_date%TYPE INDEX BY BINARY_INTEGER;
6123     TYPE l_slast_updated_by_type IS TABLE OF okl_slctd_optns.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
6124     TYPE l_slast_update_date_type IS TABLE OF okl_slctd_optns.last_update_date%TYPE INDEX BY BINARY_INTEGER;
6125     TYPE l_slast_update_login_type IS TABLE OF okl_slctd_optns.last_update_login%TYPE INDEX BY BINARY_INTEGER;
6126 
6127     -- For okl_slctd_optns End
6128 
6129     -- For okc_rg_party_roles Begin
6130 
6131     TYPE l_gid_type IS TABLE OF okc_rg_party_roles.id%TYPE INDEX BY BINARY_INTEGER;
6132     TYPE l_grgp_id_type IS TABLE OF okc_rg_party_roles.rgp_id%TYPE INDEX BY BINARY_INTEGER;
6133     TYPE l_grrd_id_type IS TABLE OF okc_rg_party_roles.rrd_id%TYPE INDEX BY BINARY_INTEGER;
6134     TYPE l_gcpl_id_type IS TABLE OF okc_rg_party_roles.cpl_id%TYPE INDEX BY BINARY_INTEGER;
6135     TYPE l_gdnz_chr_id_type IS TABLE OF okc_rg_party_roles.dnz_chr_id%TYPE INDEX BY BINARY_INTEGER;
6136     TYPE l_gobject_version_number_type IS TABLE OF okc_rg_party_roles.object_version_number%TYPE INDEX BY BINARY_INTEGER;
6137     TYPE l_gcreated_by_type IS TABLE OF okc_rg_party_roles.created_by%TYPE INDEX BY BINARY_INTEGER;
6138     TYPE l_gcreation_date_type IS TABLE OF okc_rg_party_roles.creation_date%TYPE INDEX BY BINARY_INTEGER;
6139     TYPE l_glast_updated_by_type IS TABLE OF okc_rg_party_roles.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
6140     TYPE l_glast_update_date_type IS TABLE OF okc_rg_party_roles.last_update_date%TYPE INDEX BY BINARY_INTEGER;
6141     TYPE l_glast_update_login_type IS TABLE OF okc_rg_party_roles.last_update_login%TYPE INDEX BY BINARY_INTEGER;
6142     TYPE l_gsecurity_group_id_type IS TABLE OF okc_rg_party_roles.security_group_id%TYPE INDEX BY BINARY_INTEGER;
6143 
6144     -- For okc_rg_party_roles End
6145 
6146     -- For okc_k_lines_tl begin
6147 
6148     TYPE l_olid_type IS TABLE OF okc_k_lines_tl.id%TYPE INDEX BY BINARY_INTEGER;
6149     TYPE l_ollanguage_type IS TABLE OF okc_k_lines_tl.LANGUAGE%TYPE INDEX BY BINARY_INTEGER;
6150     TYPE l_olsource_lang_type IS TABLE OF okc_k_lines_tl.source_lang%TYPE INDEX BY BINARY_INTEGER;
6151     TYPE l_olsfwt_flag_type IS TABLE OF okc_k_lines_tl.sfwt_flag%TYPE INDEX BY BINARY_INTEGER;
6152     TYPE l_olname_type IS TABLE OF okc_k_lines_tl.name%TYPE INDEX BY BINARY_INTEGER;
6153     TYPE l_olcomments_type IS TABLE OF okc_k_lines_tl.comments%TYPE INDEX BY BINARY_INTEGER;
6154     TYPE l_olitem_description_type IS TABLE OF okc_k_lines_tl.item_description%TYPE INDEX BY BINARY_INTEGER;
6155     TYPE l_olblock23text_type IS TABLE OF okc_k_lines_tl.block23text%TYPE INDEX BY BINARY_INTEGER;
6156     TYPE l_olcreated_by_type IS TABLE OF okc_k_lines_tl.created_by%TYPE INDEX BY BINARY_INTEGER;
6157     TYPE l_olcreation_date_type IS TABLE OF okc_k_lines_tl.creation_date%TYPE INDEX BY BINARY_INTEGER;
6158     TYPE l_ollast_updated_by_type IS TABLE OF okc_k_lines_tl.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
6159     TYPE l_ollast_update_date_type IS TABLE OF okc_k_lines_tl.last_update_date%TYPE INDEX BY BINARY_INTEGER;
6160     TYPE l_ollast_update_login_type IS TABLE OF okc_k_lines_tl.last_update_login%TYPE INDEX BY BINARY_INTEGER;
6161     TYPE l_olsecurity_group_id_type IS TABLE OF okc_k_lines_tl.security_group_id%TYPE INDEX BY BINARY_INTEGER;
6162     TYPE l_oloke_boe_description_type IS TABLE OF okc_k_lines_tl.oke_boe_description%TYPE INDEX BY BINARY_INTEGER;
6163     TYPE l_olcognomen_type IS TABLE OF okc_k_lines_tl.cognomen%TYPE INDEX BY BINARY_INTEGER;
6164     -- For okc_k_lines_tl End
6165 
6166     -- okc_k_party_roles_b Begin
6167     TYPE l_prid_type IS TABLE OF okc_k_party_roles_b.id%TYPE INDEX BY BINARY_INTEGER;
6168     TYPE l_probject1_id1_type IS TABLE OF okc_k_party_roles_b.object1_id1%TYPE INDEX BY BINARY_INTEGER;
6169     -- okc_k_party_roles_b End
6170 
6171     -- For okl_supp_invlice_dtls Begin
6172     l_osid_tab l_osid_type;
6173     l_osobject_version_number_tab l_osobject_version_number_type;
6174     l_oscle_id_tab l_oscle_id_type;
6175     l_osfa_cle_id_tab l_osfa_cle_id_type;
6176     l_osinvoice_number_tab l_osinvoice_number_type;
6177     l_osdate_invoiced_tab l_osdate_invoiced_type;
6178     l_osdate_due_tab l_osdate_due_type;
6179     l_osshipping_address_id1_tab l_osshipping_address_id1_type;
6180     l_osshipping_address_id2_tab l_osshipping_address_id2_type;
6181     l_osshipping_address_code_tab l_osshipping_address_code_type;
6182     l_osattribute_category_tab l_osattribute_category_type;
6183     l_osattribute1_tab l_osattribute1_type;
6184     l_osattribute2_tab l_osattribute2_type;
6185     l_osattribute3_tab l_osattribute3_type;
6186     l_osattribute4_tab l_osattribute4_type;
6187     l_osattribute5_tab l_osattribute5_type;
6188     l_osattribute6_tab l_osattribute6_type;
6189     l_osattribute7_tab l_osattribute7_type;
6190     l_osattribute8_tab l_osattribute8_type;
6191     l_osattribute9_tab l_osattribute9_type;
6192     l_osattribute10_tab l_osattribute10_type;
6193     l_osattribute11_tab l_osattribute11_type;
6194     l_osattribute12_tab l_osattribute12_type;
6195     l_osattribute13_tab l_osattribute13_type;
6196     l_osattribute14_tab l_osattribute14_type;
6197     l_osattribute15_tab l_osattribute15_type;
6198     l_oscreated_by_tab l_oscreated_by_type;
6199     l_oscreation_date_tab l_oscreation_date_type;
6200     l_oslast_updated_by_tab l_oslast_updated_by_type;
6201     l_oslast_update_date_tab l_oslast_update_date_type;
6202     l_oslast_update_login_tab l_oslast_update_login_type;
6203 
6204     l_supp_invoice_dtls_counter NUMBER := 1;
6205 
6206     -- For okl_supp_invlice_dtls End
6207 
6208     -- For okl_k_party_roles Begin
6209     l_plid_tab l_plid_type;
6210     l_plobject_version_number_tab l_plobject_version_number_type;
6211     l_plattribute_category_tab l_plattribute_category_type;
6212     l_plattribute1_tab l_plattribute1_type;
6213     l_plattribute2_tab l_plattribute2_type;
6214     l_plattribute3_tab l_plattribute3_type;
6215     l_plattribute4_tab l_plattribute4_type;
6216     l_plattribute5_tab l_plattribute5_type;
6217     l_plattribute6_tab l_plattribute6_type;
6218     l_plattribute7_tab l_plattribute7_type;
6219     l_plattribute8_tab l_plattribute8_type;
6220     l_plattribute9_tab l_plattribute9_type;
6221     l_plattribute10_tab l_plattribute10_type;
6222     l_plattribute11_tab l_plattribute11_type;
6223     l_plattribute12_tab l_plattribute12_type;
6224     l_plattribute13_tab l_plattribute13_type;
6225     l_plattribute14_tab l_plattribute14_type;
6226     l_plattribute15_tab l_plattribute15_type;
6227 
6228     l_okl_k_party_roles_counter number := 1;
6229 
6230     -- For okl_k_party_roles End
6231 
6232     -- For party_roles_tl Begin
6233     l_pid_tab l_pid_type;
6234     l_planguage_tab l_planguage_type;
6235     l_psource_lang_tab l_psource_lang_type;
6236     l_psfwt_flag_tab l_psfwt_flag_type;
6237     l_pcreated_by_tab l_pcreated_by_type;
6238     l_pcreation_date_tab l_pcreation_date_type;
6239     l_plast_updated_by_tab l_plast_updated_by_type;
6240     l_plast_update_date_tab l_plast_update_date_type;
6241     l_pcognomen_tab l_pcognomen_type;
6242     l_palias_tab l_palias_type;
6243     l_plast_update_login_tab l_plast_update_login_type;
6244     l_psecurity_group_id_tab l_psecurity_group_id_type;
6245 
6246     l_party_roles_tl_counter NUMBER := 1;
6247     -- For party_roles_tl End
6248 
6249     -- For okc_contacts Begin
6250 
6251     l_cid_tab l_cid_type;
6252     l_ccpl_id_tab l_ccpl_id_type;
6253     l_ccro_code_tab l_ccro_code_type;
6254     l_cdnz_chr_id_tab l_cdnz_chr_id_type;
6255     l_cobject1_id1_tab l_cobject1_id1_type;
6256     l_cobject1_id2_tab l_cobject1_id2_type;
6257     l_cjtot_object1_code_tab l_cjtot_object1_code_type;
6258     l_cobject_version_number_tab l_cobject_version_number_type;
6259     l_ccreated_by_tab l_ccreated_by_type;
6260     l_ccreation_date_tab l_ccreation_date_type;
6261     l_clast_updated_by_tab l_clast_updated_by_type;
6262     l_clast_update_date_tab l_clast_update_date_type;
6263     l_ccontact_sequence_tab l_ccontact_sequence_type;
6264     l_clast_update_login_tab l_clast_update_login_type;
6265     l_cattribute_category_tab l_cattribute_category_type;
6266     l_cattribute1_tab l_cattribute1_type;
6267     l_cattribute2_tab l_cattribute2_type;
6268     l_cattribute3_tab l_cattribute3_type;
6269     l_cattribute4_tab l_cattribute4_type;
6270     l_cattribute5_tab l_cattribute5_type;
6271     l_cattribute6_tab l_cattribute6_type;
6272     l_cattribute7_tab l_cattribute7_type;
6273     l_cattribute8_tab l_cattribute8_type;
6274     l_cattribute9_tab l_cattribute9_type;
6275     l_cattribute10_tab l_cattribute10_type;
6276     l_cattribute11_tab l_cattribute11_type;
6277     l_cattribute12_tab l_cattribute12_type;
6278     l_cattribute13_tab l_cattribute13_type;
6279     l_cattribute14_tab l_cattribute14_type;
6280     l_cattribute15_tab l_cattribute15_type;
6281     l_csecurity_group_id_tab l_csecurity_group_id_type;
6282     l_cstart_date_tab l_cstart_date_type;
6283     l_cend_date_tab l_cend_date_type;
6284     l_cprimary_yn_tab l_cprimary_yn_type;
6285     l_cresource_class_tab l_cresource_class_type;
6286 
6287     l_contacts_counter NUMBER := 1;
6288     -- For okc_contacts End
6289 
6290     -- For okc_rule_groups_b Begin
6291     l_rid_tab3 l_rid_type;
6292 
6293     l_rid_tab l_rid_type;
6294     l_rrgd_code_tab l_rrgd_code_type;
6295     l_rchr_id_tab l_rchr_id_type;
6296     l_rcle_id_tab l_rcle_id_type;
6297     l_rdnz_chr_id_tab l_rdnz_chr_id_type;
6298     l_rparent_rgp_id_tab l_rparent_rgp_id_type;
6299     l_rsat_code_tab l_rsat_code_type;
6300     l_robject_version_number_tab l_robject_version_number_type;
6301     l_rrgp_type_tab l_rrgp_type_type;
6302     l_rcreated_by_tab l_rcreated_by_type;
6303     l_rcreation_date_tab l_rcreation_date_type;
6304     l_rlast_updated_by_tab l_rlast_updated_by_type;
6305     l_rlast_update_date_tab l_rlast_update_date_type;
6306     l_rlast_update_login_tab l_rlast_update_login_type;
6307     l_rattribute_category_tab l_rattribute_category_type;
6308     l_rattribute1_tab l_rattribute1_type;
6309     l_rattribute2_tab l_rattribute2_type;
6310     l_rattribute3_tab l_rattribute3_type;
6311     l_rattribute4_tab l_rattribute4_type;
6312     l_rattribute5_tab l_rattribute5_type;
6313     l_rattribute6_tab l_rattribute6_type;
6314     l_rattribute7_tab l_rattribute7_type;
6315     l_rattribute8_tab l_rattribute8_type;
6316     l_rattribute9_tab l_rattribute9_type;
6317     l_rattribute10_tab l_rattribute10_type;
6318     l_rattribute11_tab l_rattribute11_type;
6319     l_rattribute12_tab l_rattribute12_type;
6320     l_rattribute13_tab l_rattribute13_type;
6321     l_rattribute14_tab l_rattribute14_type;
6322     l_rattribute15_tab l_rattribute15_type;
6323     l_rsecurity_group_id_tab l_rsecurity_group_id_type;
6324 
6325     l_rule_groups_b_counter NUMBER := 1;
6326     -- For okc_rule_groups_b End
6327 
6328     -- For okc_rule_groups_tl Begin
6329 
6330     l_rtid_tab l_rtid_type;
6331     l_rtlanguage_tab l_rtlanguage_type;
6332     l_rtsource_lang_tab l_rtsource_lang_type;
6333     l_rtsfwt_flag_tab l_rtsfwt_flag_type;
6334     l_rtcomments_tab l_rtcomments_type;
6335     l_rtcreated_by_tab l_rtcreated_by_type;
6336     l_rtcreation_date_tab l_rtcreation_date_type;
6337     l_rtlast_updated_by_tab l_rtlast_updated_by_type;
6338     l_rtlast_update_date_tab l_rtlast_update_date_type;
6339     l_rtlast_update_login_tab l_rtlast_update_login_type;
6340     l_rtsecurity_group_id_tab l_rtsecurity_group_id_type;
6341 
6342     l_rule_groups_tl_counter NUMBER := 1;
6343     -- For okc_rule_groups_tl End
6344 
6345     -- For okc_rules_b Begin
6346 
6347     l_rrid_tab3 l_rrid_type;
6348 
6349     l_rrid_tab l_rrid_type;
6350     l_rrrgp_id_tab l_rrrgp_id_type;
6351     l_rrobject1_id1_tab l_rrobject1_id1_type;
6352     l_rrobject2_id1_tab l_rrobject2_id1_type;
6353     l_rrobject3_id1_tab l_rrobject3_id1_type;
6354     l_rrobject1_id2_tab l_rrobject1_id2_type;
6355     l_rrobject2_id2_tab l_rrobject2_id2_type;
6356     l_rrobject3_id2_tab l_rrobject3_id2_type;
6357     l_rrjtot_object1_code_tab l_rrjtot_object1_code_type;
6358     l_rrjtot_object2_code_tab l_rrjtot_object2_code_type;
6359     l_rrjtot_object3_code_tab l_rrjtot_object3_code_type;
6360     l_rrdnz_chr_id_tab l_rrdnz_chr_id_type;
6361     l_rrstd_template_yn_tab l_rrstd_template_yn_type;
6362     l_rrwarn_yn_tab l_rrwarn_yn_type;
6363     l_rrpriority_tab l_rrpriority_type;
6364     l_rrobject_version_number_tab l_rrobject_version_number_type;
6365     l_rrcreated_by_tab l_rrcreated_by_type;
6366     l_rrcreation_date_tab l_rrcreation_date_type;
6367     l_rrlast_updated_by_tab l_rrlast_updated_by_type;
6368     l_rrlast_update_date_tab l_rrlast_update_date_type;
6369     l_rrlast_update_login_tab l_rrlast_update_login_type;
6370     l_rrattribute_category_tab l_rrattribute_category_type;
6371     l_rrattribute1_tab l_rrattribute1_type;
6372     l_rrattribute2_tab l_rrattribute2_type;
6373     l_rrattribute3_tab l_rrattribute3_type;
6374     l_rrattribute4_tab l_rrattribute4_type;
6375     l_rrattribute5_tab l_rrattribute5_type;
6376     l_rrattribute6_tab l_rrattribute6_type;
6377     l_rrattribute7_tab l_rrattribute7_type;
6378     l_rrattribute8_tab l_rrattribute8_type;
6379     l_rrattribute9_tab l_rrattribute9_type;
6380     l_rrattribute10_tab l_rrattribute10_type;
6381     l_rrattribute11_tab l_rrattribute11_type;
6382     l_rrattribute12_tab l_rrattribute12_type;
6383     l_rrattribute13_tab l_rrattribute13_type;
6384     l_rrattribute14_tab l_rrattribute14_type;
6385     l_rrattribute15_tab l_rrattribute15_type;
6386     l_rrrule_information_cate_tab l_rrrule_information_cate_type;
6387     l_rrrule_information1_tab l_rrrule_information1_type;
6388     l_rrrule_information2_tab l_rrrule_information2_type;
6389     l_rrrule_information3_tab l_rrrule_information3_type;
6390     l_rrrule_information4_tab l_rrrule_information4_type;
6391     l_rrrule_information5_tab l_rrrule_information5_type;
6392     l_rrrule_information6_tab l_rrrule_information6_type;
6393     l_rrrule_information7_tab l_rrrule_information7_type;
6394     l_rrrule_information8_tab l_rrrule_information8_type;
6395     l_rrrule_information9_tab l_rrrule_information9_type;
6396     l_rrrule_information10_tab l_rrrule_information10_type;
6397     l_rrrule_information11_tab l_rrrule_information11_type;
6398     l_rrrule_information12_tab l_rrrule_information12_type;
6399     l_rrrule_information13_tab l_rrrule_information13_type;
6400     l_rrrule_information14_tab l_rrrule_information14_type;
6401     l_rrrule_information15_tab l_rrrule_information15_type;
6402     l_rrsecurity_group_id_tab l_rrsecurity_group_id_type;
6403     l_rrtemplate_yn_tab l_rrtemplate_yn_type;
6404     l_rrans_set_jtot_object_c_tab l_rrans_set_jtot_object_c_type;
6405     l_rrans_set_jtot_object_1_tab l_rrans_set_jtot_object_1_type;
6406     l_rrans_set_jtot_object_2_tab l_rrans_set_jtot_object_2_type;
6407     l_rrdisplay_sequence_tab l_rrdisplay_sequence_type;
6408     l_rrcomments_tab l_rrcomments_type;
6409 
6410     l_rules_b_counter NUMBER := 1;
6411     -- For okc_rules_b End
6412 
6413     -- For okc_rules_tl Begin
6414 
6415     l_trid_tab l_trid_type;
6416     l_trlanguage_tab l_trlanguage_type;
6417     l_trsource_lang_tab l_trsource_lang_type;
6418     l_trsfwt_flag_tab l_trsfwt_flag_type;
6419     l_trcomments_tab l_trcomments_type;
6420     l_trtext_tab l_trtext_type;
6421     l_trcreated_by_tab l_trcreated_by_type;
6422     l_trcreation_date_tab l_trcreation_date_type;
6423     l_trlast_updated_by_tab l_trlast_updated_by_type;
6424     l_trlast_update_date_tab l_trlast_update_date_type;
6425     l_trlast_update_login_tab l_trlast_update_login_type;
6426     l_trsecurity_group_id_tab l_trsecurity_group_id_type;
6427 
6428     l_rules_tl_counter NUMBER := 1;
6429     -- For okc_rules_tl End
6430 
6431     -- For okc_k_items Begin
6432 
6433     l_iid_tab l_iid_type;
6434     l_icle_id_tab l_icle_id_type;
6435     l_ichr_id_tab l_ichr_id_type;
6436     l_icle_id_for_tab l_icle_id_for_type;
6437     l_idnz_chr_id_tab l_idnz_chr_id_type;
6438     l_iobject1_id1_tab l_iobject1_id1_type;
6439     l_iobject1_id2_tab l_iobject1_id2_type;
6440     l_ijtot_object1_code_tab l_ijtot_object1_code_type;
6441     l_iuom_code_tab l_iuom_code_type;
6442     l_iexception_yn_tab l_iexception_yn_type;
6443     l_inumber_of_items_tab l_inumber_of_items_type;
6444     l_ipriced_item_yn_tab l_ipriced_item_yn_type;
6445     l_iobject_version_number_tab l_iobject_version_number_type;
6446     l_icreated_by_tab l_icreated_by_type;
6447     l_icreation_date_tab l_icreation_date_type;
6448     l_ilast_updated_by_tab l_ilast_updated_by_type;
6449     l_ilast_update_date_tab l_ilast_update_date_type;
6450     l_ilast_update_login_tab l_ilast_update_login_type;
6451     l_isecurity_group_id_tab l_isecurity_group_id_type;
6452     l_iupg_orig_system_ref_tab l_iupg_orig_system_ref_type;
6453     l_iupg_orig_system_ref_id_tab l_iupg_orig_system_ref_id_type;
6454     l_iprogram_application_id_tab l_iprogram_application_id_type;
6455     l_iprogram_id_tab l_iprogram_id_type;
6456     l_iprogram_update_date_tab l_iprogram_update_date_type;
6457     l_irequest_id_tab l_irequest_id_type;
6458 
6459     l_items_counter NUMBER := 1;
6460     -- For okc_k_items End
6461 
6462     -- For okl_trx_assets Begin (42)
6463 
6464     l_tid_tab l_tid_type;
6465     l_tica_id_tab l_tica_id_type;
6466     l_ttas_type_tab l_ttas_type_type;
6467     l_tobject_version_number_tab l_tobject_version_number_type;
6468     l_tattribute_category_tab l_tattribute_category_type;
6469     l_tattribute1_tab l_tattribute1_type;
6470     l_tattribute2_tab l_tattribute2_type;
6471     l_tattribute3_tab l_tattribute3_type;
6472     l_tattribute4_tab l_tattribute4_type;
6473     l_tattribute5_tab l_tattribute5_type;
6474     l_tattribute6_tab l_tattribute6_type;
6475     l_tattribute7_tab l_tattribute7_type;
6476     l_tattribute8_tab l_tattribute8_type;
6477     l_tattribute9_tab l_tattribute9_type;
6478     l_tattribute10_tab l_tattribute10_type;
6479     l_tattribute11_tab l_tattribute11_type;
6480     l_tattribute12_tab l_tattribute12_type;
6481     l_tattribute13_tab l_tattribute13_type;
6482     l_tattribute14_tab l_tattribute14_type;
6483     l_tattribute15_tab l_tattribute15_type;
6484     l_tcreated_by_tab l_tcreated_by_type;
6485     l_tcreation_date_tab l_tcreation_date_type;
6486     l_tlast_updated_by_tab l_tlast_updated_by_type;
6487     l_tlast_update_date_tab l_tlast_update_date_type;
6488     l_tlast_update_login_tab l_tlast_update_login_type;
6489     l_ttsu_code_tab l_ttsu_code_type;
6490     l_ttry_id_tab l_ttry_id_type;
6491     l_tdate_trans_occurred_tab l_tdate_trans_occurred_type;
6492     l_ttrans_number_tab l_ttrans_number_type;
6493     l_tcomments_tab l_tcomments_type;
6494     l_treq_asset_id_tab l_treq_asset_id_type;
6495     l_ttotal_match_amount_tab l_ttotal_match_amount_type;
6496     l_torg_id_tab l_torg_id_type;
6497     l_tlegal_entity_id_tab l_tlegal_entity_id_type;
6498 
6499     l_trx_assets_counter NUMBER := 1;
6500     -- For okl_trx_assets End (42)
6501 
6502     -- For okl_trx_assets Begin (45)
6503 
6504     l_t2id_tab l_t2id_type;
6505     l_t2ica_id_tab l_t2ica_id_type;
6506     l_t2tas_type_tab l_t2tas_type_type;
6507     l_t2object_version_number_tab l_t2object_version_number_type;
6508     l_t2attribute_category_tab l_t2attribute_category_type;
6509     l_t2attribute1_tab l_t2attribute1_type;
6510     l_t2attribute2_tab l_t2attribute2_type;
6511     l_t2attribute3_tab l_t2attribute3_type;
6512     l_t2attribute4_tab l_t2attribute4_type;
6513     l_t2attribute5_tab l_t2attribute5_type;
6514     l_t2attribute6_tab l_t2attribute6_type;
6515     l_t2attribute7_tab l_t2attribute7_type;
6516     l_t2attribute8_tab l_t2attribute8_type;
6517     l_t2attribute9_tab l_t2attribute9_type;
6518     l_t2attribute10_tab l_t2attribute10_type;
6519     l_t2attribute11_tab l_t2attribute11_type;
6520     l_t2attribute12_tab l_t2attribute12_type;
6521     l_t2attribute13_tab l_t2attribute13_type;
6522     l_t2attribute14_tab l_t2attribute14_type;
6523     l_t2attribute15_tab l_t2attribute15_type;
6524     l_t2created_by_tab l_t2created_by_type;
6525     l_t2creation_date_tab l_t2creation_date_type;
6526     l_t2last_updated_by_tab l_t2last_updated_by_type;
6527     l_t2last_update_date_tab l_t2last_update_date_type;
6528     l_t2last_update_login_tab l_t2last_update_login_type;
6529     l_t2tsu_code_tab l_t2tsu_code_type;
6530     l_t2try_id_tab l_t2try_id_type;
6531     l_t2date_trans_occurred_tab l_t2date_trans_occurred_type;
6532     l_t2trans_number_tab l_t2trans_number_type;
6533     l_t2comments_tab l_t2comments_type;
6534     l_t2req_asset_id_tab l_t2req_asset_id_type;
6535     l_t2total_match_amount_tab l_t2total_match_amount_type;
6536     l_t2org_id_tab l_t2org_id_type;
6537     l_t2legal_entity_id_tab l_t2legal_entity_id_type;
6538 
6539     l_trx_assets_counter2 NUMBER := 1;
6540 
6541     -- For okl_trx_assets End (45)
6542 
6543     -- For okl_txl_assets_b Begin
6544 
6545     l_tbid_tab3 l_tbid_type;
6546 
6547     l_tbid_tab l_tbid_type;
6548     l_tbobject_version_number_tab l_tbobject_version_number_type;
6549     l_tbtas_id_tab l_tbtas_id_type;
6550     l_tbilo_id_tab l_tbilo_id_type;
6551     l_tbilo_id_old_tab l_tbilo_id_old_type;
6552     l_tbiay_id_tab l_tbiay_id_type;
6553     l_tbiay_id_new_tab l_tbiay_id_new_type;
6554     l_tbkle_id_tab l_tbkle_id_type;
6555     l_tbdnz_khr_id_tab l_tbdnz_khr_id_type;
6556     l_tbline_number_tab l_tbline_number_type;
6557     l_tborg_id_tab l_tborg_id_type;
6558     l_tbtal_type_tab l_tbtal_type_type;
6559     l_tbasset_number_tab l_tbasset_number_type;
6560     l_tbfa_location_id_tab l_tbfa_location_id_type;
6561     l_tboriginal_cost_tab l_tboriginal_cost_type;
6562     l_tbcurrent_units_tab l_tbcurrent_units_type;
6563     l_tbmanufacturer_name_tab l_tbmanufacturer_name_type;
6564     l_tbyear_manufactured_tab l_tbyear_manufactured_type;
6565     l_tbsupplier_id_tab l_tbsupplier_id_type;
6566     l_tbused_asset_yn_tab l_tbused_asset_yn_type;
6567     l_tbtag_number_tab l_tbtag_number_type;
6568     l_tbmodel_number_tab l_tbmodel_number_type;
6569     l_tbcorporate_book_tab l_tbcorporate_book_type;
6570     l_tbdate_purchased_tab l_tbdate_purchased_type;
6571     l_tbdate_delivery_tab l_tbdate_delivery_type;
6572     l_tbin_service_date_tab l_tbin_service_date_type;
6573     l_tblife_in_months_tab l_tblife_in_months_type;
6574     l_tbdepreciation_id_tab l_tbdepreciation_id_type;
6575     l_tbdepreciation_cost_tab l_tbdepreciation_cost_type;
6576     l_tbdeprn_method_tab l_tbdeprn_method_type;
6577     l_tbdeprn_rate_tab l_tbdeprn_rate_type;
6578     l_tbsalvage_value_tab l_tbsalvage_value_type;
6579     l_tbpercent_salvage_value_tab l_tbpercent_salvage_value_type;
6580     l_tbattribute_category_tab l_tbattribute_category_type;
6581     l_tbattribute1_tab l_tbattribute1_type;
6582     l_tbattribute2_tab l_tbattribute2_type;
6583     l_tbattribute3_tab l_tbattribute3_type;
6584     l_tbattribute4_tab l_tbattribute4_type;
6585     l_tbattribute5_tab l_tbattribute5_type;
6586     l_tbattribute6_tab l_tbattribute6_type;
6587     l_tbattribute7_tab l_tbattribute7_type;
6588     l_tbattribute8_tab l_tbattribute8_type;
6589     l_tbattribute9_tab l_tbattribute9_type;
6590     l_tbattribute10_tab l_tbattribute10_type;
6591     l_tbattribute11_tab l_tbattribute11_type;
6592     l_tbattribute12_tab l_tbattribute12_type;
6593     l_tbattribute13_tab l_tbattribute13_type;
6594     l_tbattribute14_tab l_tbattribute14_type;
6595     l_tbattribute15_tab l_tbattribute15_type;
6596     l_tbcreated_by_tab l_tbcreated_by_type;
6597     l_tbcreation_date_tab l_tbcreation_date_type;
6598     l_tblast_updated_by_tab l_tblast_updated_by_type;
6599     l_tblast_update_date_tab l_tblast_update_date_type;
6600     l_tblast_update_login_tab l_tblast_update_login_type;
6601     l_tbdepreciate_yn_tab l_tbdepreciate_yn_type;
6602     l_tbhold_period_days_tab l_tbhold_period_days_type;
6603     l_tbold_salvage_value_tab l_tbold_salvage_value_type;
6604     l_tbnew_residual_value_tab l_tbnew_residual_value_type;
6605     l_tbold_residual_value_tab l_tbold_residual_value_type;
6606     l_tbunits_retired_tab l_tbunits_retired_type;
6607     l_tbcost_retired_tab l_tbcost_retired_type;
6608     l_tbsale_proceeds_tab l_tbsale_proceeds_type;
6609     l_tbremoval_cost_tab l_tbremoval_cost_type;
6610     l_tbdnz_asset_id_tab l_tbdnz_asset_id_type;
6611     l_tbdate_due_tab l_tbdate_due_type;
6612     l_tbrep_asset_id_tab l_tbrep_asset_id_type;
6613     l_tblke_asset_id_tab l_tblke_asset_id_type;
6614     l_tbmatch_amount_tab l_tbmatch_amount_type;
6615     l_tbsplit_into_singles_fl_tab l_tbsplit_into_singles_fl_type;
6616     l_tbsplit_into_units_tab l_tbsplit_into_units_type;
6617     l_tbcurrency_code_tab l_tbcurrency_code_type;
6618     l_tbcurrency_convers_type_tab l_tbcurrency_convers_type_type;
6619     l_tbcurrency_convers_rate_tab l_tbcurrency_convers_rate_type;
6620     l_tbcurrency_convers_date_tab l_tbcurrency_convers_date_type;
6621     l_tbasset_key_id_tab l_tbasset_key_id_type;
6622     l_tbfa_trx_date_tab l_tbfa_trx_date_type;
6623 
6624     l_txl_assets_b_counter NUMBER := 1;
6625 
6626     l_tb2id_tab l_tbid_type;
6627     l_tb2object_version_number_tab l_tbobject_version_number_type;
6628     l_tb2tas_id_tab l_tbtas_id_type;
6629     l_tb2ilo_id_tab l_tbilo_id_type;
6630     l_tb2ilo_id_old_tab l_tbilo_id_old_type;
6631     l_tb2iay_id_tab l_tbiay_id_type;
6632     l_tb2iay_id_new_tab l_tbiay_id_new_type;
6633     l_tb2kle_id_tab l_tbkle_id_type;
6634     l_tb2dnz_khr_id_tab l_tbdnz_khr_id_type;
6635     l_tb2line_number_tab l_tbline_number_type;
6636     l_tb2org_id_tab l_tborg_id_type;
6637     l_tb2tal_type_tab l_tbtal_type_type;
6638     l_tb2asset_number_tab l_tbasset_number_type;
6639     l_tb2fa_location_id_tab l_tbfa_location_id_type;
6640     l_tb2original_cost_tab l_tboriginal_cost_type;
6641     l_tb2current_units_tab l_tbcurrent_units_type;
6642     l_tb2manufacturer_name_tab l_tbmanufacturer_name_type;
6643     l_tb2year_manufactured_tab l_tbyear_manufactured_type;
6644     l_tb2supplier_id_tab l_tbsupplier_id_type;
6645     l_tb2used_asset_yn_tab l_tbused_asset_yn_type;
6646     l_tb2tag_number_tab l_tbtag_number_type;
6647     l_tb2model_number_tab l_tbmodel_number_type;
6648     l_tb2corporate_book_tab l_tbcorporate_book_type;
6649     l_tb2date_purchased_tab l_tbdate_purchased_type;
6650     l_tb2date_delivery_tab l_tbdate_delivery_type;
6651     l_tb2in_service_date_tab l_tbin_service_date_type;
6652     l_tb2life_in_months_tab l_tblife_in_months_type;
6653     l_tb2depreciation_id_tab l_tbdepreciation_id_type;
6654     l_tb2depreciation_cost_tab l_tbdepreciation_cost_type;
6655     l_tb2deprn_method_tab l_tbdeprn_method_type;
6656     l_tb2deprn_rate_tab l_tbdeprn_rate_type;
6657     l_tb2salvage_value_tab l_tbsalvage_value_type;
6658     l_tb2percent_salvage_value_tab l_tbpercent_salvage_value_type;
6659     l_tb2attribute_category_tab l_tbattribute_category_type;
6660     l_tb2attribute1_tab l_tbattribute1_type;
6661     l_tb2attribute2_tab l_tbattribute2_type;
6662     l_tb2attribute3_tab l_tbattribute3_type;
6663     l_tb2attribute4_tab l_tbattribute4_type;
6664     l_tb2attribute5_tab l_tbattribute5_type;
6665     l_tb2attribute6_tab l_tbattribute6_type;
6666     l_tb2attribute7_tab l_tbattribute7_type;
6667     l_tb2attribute8_tab l_tbattribute8_type;
6668     l_tb2attribute9_tab l_tbattribute9_type;
6669     l_tb2attribute10_tab l_tbattribute10_type;
6670     l_tb2attribute11_tab l_tbattribute11_type;
6671     l_tb2attribute12_tab l_tbattribute12_type;
6672     l_tb2attribute13_tab l_tbattribute13_type;
6673     l_tb2attribute14_tab l_tbattribute14_type;
6674     l_tb2attribute15_tab l_tbattribute15_type;
6675     l_tb2created_by_tab l_tbcreated_by_type;
6676     l_tb2creation_date_tab l_tbcreation_date_type;
6677     l_tb2last_updated_by_tab l_tblast_updated_by_type;
6678     l_tb2last_update_date_tab l_tblast_update_date_type;
6679     l_tb2last_update_login_tab l_tblast_update_login_type;
6680     l_tb2depreciate_yn_tab l_tbdepreciate_yn_type;
6681     l_tb2hold_period_days_tab l_tbhold_period_days_type;
6682     l_tb2old_salvage_value_tab l_tbold_salvage_value_type;
6683     l_tb2new_residual_value_tab l_tbnew_residual_value_type;
6684     l_tb2old_residual_value_tab l_tbold_residual_value_type;
6685     l_tb2units_retired_tab l_tbunits_retired_type;
6686     l_tb2cost_retired_tab l_tbcost_retired_type;
6687     l_tb2sale_proceeds_tab l_tbsale_proceeds_type;
6688     l_tb2removal_cost_tab l_tbremoval_cost_type;
6689     l_tb2dnz_asset_id_tab l_tbdnz_asset_id_type;
6690     l_tb2date_due_tab l_tbdate_due_type;
6691     l_tb2rep_asset_id_tab l_tbrep_asset_id_type;
6692     l_tb2lke_asset_id_tab l_tblke_asset_id_type;
6693     l_tb2match_amount_tab l_tbmatch_amount_type;
6694     l_tb2split_into_units_tab l_tbsplit_into_units_type;
6695     l_tb2currency_code_tab l_tbcurrency_code_type;
6696     l_tb2asset_key_id_tab l_tbasset_key_id_type;
6697     l_tb2fa_trx_date_tab l_tbfa_trx_date_type;
6698     l_tb2fa_cost_tab l_tbfa_cost_type;
6699 
6700     -- For okl_txl_assets_b End
6701 
6702     -- For okl_txl_assets_tl Begin
6703 
6704     l_tlid_tab l_tlid_type;
6705     l_tllanguage_tab l_tllanguage_type;
6706     l_tlsource_lang_tab l_tlsource_lang_type;
6707     l_tlsfwt_flag_tab l_tlsfwt_flag_type;
6708     l_tldescription_tab l_tldescription_type;
6709     l_tlcreated_by_tab l_tlcreated_by_type;
6710     l_tlcreation_date_tab l_tlcreation_date_type;
6711     l_tllast_updated_by_tab l_tllast_updated_by_type;
6712     l_tllast_update_date_tab l_tllast_update_date_type;
6713     l_tllast_update_login_tab l_tllast_update_login_type;
6714 
6715     l_txl_assets_tl_counter NUMBER := 1;
6716 
6717     -- For okl_txl_assets_tl End
6718 
6719     -- For okl_txd_assets_b Begin
6720 
6721     l_dbid_tab3 l_dbid_type;
6722     l_dbid_tab l_dbid_type;
6723     l_dbobject_version_number_tab l_dbobject_version_number_type;
6724     l_dbtal_id_tab l_dbtal_id_type;
6725     l_dbtarget_kle_id_tab l_dbtarget_kle_id_type;
6726     l_dbline_detail_number_tab l_dbline_detail_number_type;
6727     l_dbasset_number_tab l_dbasset_number_type;
6728     l_dbquantity_tab l_dbquantity_type;
6729     l_dbcost_tab l_dbcost_type;
6730     l_dbtax_book_tab l_dbtax_book_type;
6731     l_dblife_in_months_tax_tab l_dblife_in_months_tax_type;
6732     l_dbdeprn_method_tax_tab l_dbdeprn_method_tax_type;
6733     l_dbdeprn_rate_tax_tab l_dbdeprn_rate_tax_type;
6734     l_dbsalvage_value_tab l_dbsalvage_value_type;
6735     l_dbsplit_percent_tab l_dbsplit_percent_type;
6736     l_dbinventory_item_id_tab l_dbinventory_item_id_type;
6737     l_dbattribute_category_tab l_dbattribute_category_type;
6738     l_dbattribute1_tab l_dbattribute1_type;
6739     l_dbattribute2_tab l_dbattribute2_type;
6740     l_dbattribute3_tab l_dbattribute3_type;
6741     l_dbattribute4_tab l_dbattribute4_type;
6742     l_dbattribute5_tab l_dbattribute5_type;
6743     l_dbattribute6_tab l_dbattribute6_type;
6744     l_dbattribute7_tab l_dbattribute7_type;
6745     l_dbattribute8_tab l_dbattribute8_type;
6746     l_dbattribute9_tab l_dbattribute9_type;
6747     l_dbattribute10_tab l_dbattribute10_type;
6748     l_dbattribute11_tab l_dbattribute11_type;
6749     l_dbattribute12_tab l_dbattribute12_type;
6750     l_dbattribute13_tab l_dbattribute13_type;
6751     l_dbattribute14_tab l_dbattribute14_type;
6752     l_dbattribute15_tab l_dbattribute15_type;
6753     l_dbcreated_by_tab l_dbcreated_by_type;
6754     l_dbcreation_date_tab l_dbcreation_date_type;
6755     l_dblast_updated_by_tab l_dblast_updated_by_type;
6756     l_dblast_update_date_tab l_dblast_update_date_type;
6757     l_dblast_update_login_tab l_dblast_update_login_type;
6758     l_dbcurrency_code_tab l_dbcurrency_code_type;
6759     l_dbcurrency_convers_type_tab l_dbcurrency_convers_type_type;
6760     l_dbcurrency_convers_rate_tab l_dbcurrency_convers_rate_type;
6761     l_dbcurrency_convers_date_tab l_dbcurrency_convers_date_type;
6762 
6763     l_txd_assets_b_counter NUMBER := 1;
6764 
6765     -- For okl_txd_assets_b End
6766 
6767     -- For okl_txd_assets_tl Begin
6768 
6769     l_dlid_tab l_dlid_type;
6770     l_dllanguage_tab l_dllanguage_type;
6771     l_dlsource_lang_tab l_dlsource_lang_type;
6772     l_dlsfwt_flag_tab l_dlsfwt_flag_type;
6773     l_dldescription_tab l_dldescription_type;
6774     l_dlcreated_by_tab l_dlcreated_by_type;
6775     l_dlcreation_date_tab l_dlcreation_date_type;
6776     l_dllast_updated_by_tab l_dllast_updated_by_type;
6777     l_dllast_update_date_tab l_dllast_update_date_type;
6778     l_dllast_update_login_tab l_dllast_update_login_type;
6779 
6780     l_txd_assets_tl_counter NUMBER := 1;
6781 
6782     -- For okl_txd_assets_tl End
6783 
6784     -- For okl_txl_itm_insts Begin
6785 
6786     l_tiid_tab l_tiid_type;
6787     l_tiobject_version_number_tab l_tiobject_version_number_type;
6788     l_titas_id_tab l_titas_id_type;
6789     l_tital_id_tab l_tital_id_type;
6790     l_tikle_id_tab l_tikle_id_type;
6791     l_tital_type_tab l_tital_type_type;
6792     l_tiline_number_tab l_tiline_number_type;
6793     l_tiinstance_number_ib_tab l_tiinstance_number_ib_type;
6794     l_tiobject_id1_new_tab l_tiobject_id1_new_type;
6795     l_tiobject_id2_new_tab l_tiobject_id2_new_type;
6796     l_tijtot_object_code_new_tab l_tijtot_object_code_new_type;
6797     l_tiobject_id1_old_tab l_tiobject_id1_old_type;
6798     l_tiobject_id2_old_tab l_tiobject_id2_old_type;
6799     l_tijtot_object_code_old_tab l_tijtot_object_code_old_type;
6800     l_tiinventory_org_id_tab l_tiinventory_org_id_type;
6801     l_tiserial_number_tab l_tiserial_number_type;
6802     l_timfg_serial_number_yn_tab l_timfg_serial_number_yn_type;
6803     l_tiinventory_item_id_tab l_tiinventory_item_id_type;
6804     l_tiinv_master_org_id_tab l_tiinv_master_org_id_type;
6805     l_tiattribute_category_tab l_tiattribute_category_type;
6806     l_tiattribute1_tab l_tiattribute1_type;
6807     l_tiattribute2_tab l_tiattribute2_type;
6808     l_tiattribute3_tab l_tiattribute3_type;
6809     l_tiattribute4_tab l_tiattribute4_type;
6810     l_tiattribute5_tab l_tiattribute5_type;
6811     l_tiattribute6_tab l_tiattribute6_type;
6812     l_tiattribute7_tab l_tiattribute7_type;
6813     l_tiattribute8_tab l_tiattribute8_type;
6814     l_tiattribute9_tab l_tiattribute9_type;
6815     l_tiattribute10_tab l_tiattribute10_type;
6816     l_tiattribute11_tab l_tiattribute11_type;
6817     l_tiattribute12_tab l_tiattribute12_type;
6818     l_tiattribute13_tab l_tiattribute13_type;
6819     l_tiattribute14_tab l_tiattribute14_type;
6820     l_tiattribute15_tab l_tiattribute15_type;
6821     l_ticreated_by_tab l_ticreated_by_type;
6822     l_ticreation_date_tab l_ticreation_date_type;
6823     l_tilast_updated_by_tab l_tilast_updated_by_type;
6824     l_tilast_update_date_tab l_tilast_update_date_type;
6825     l_tilast_update_login_tab l_tilast_update_login_type;
6826     l_tidnz_cle_id_tab l_tidnz_cle_id_type;
6827     l_tiinstance_id_tab l_tiinstance_id_type;
6828     l_tiselected_for_split_fl_tab l_tiselected_for_split_fl_type;
6829     l_tiasd_id_tab l_tiasd_id_type;
6830 
6831     l_txl_itm_insts_counter NUMBER := 1;
6832 
6833     -- okl_txl_itm_insts
6834     l_ti2id_tab l_tiid_type;
6835     l_ti2tas_id_tab l_titas_id_type;
6836     l_ti2kle_id_tab l_tikle_id_type;
6837     l_ti2line_number_tab l_tiline_number_type;
6838     l_ti2instance_number_ib_tab l_tiinstance_number_ib_type;
6839     l_ti2object_id1_new_tab l_tiobject_id1_new_type;
6840     l_ti2object_id2_new_tab l_tiobject_id2_new_type;
6841     l_ti2jtot_object_code_new_tab l_tijtot_object_code_new_type;
6842     l_ti2dnz_cle_id_tab l_tidnz_cle_id_type;
6843     l_ti2inventory_item_id_tab l_tiinventory_item_id_type;
6844     l_ti2inv_master_org_id_tab l_tiinv_master_org_id_type;
6845     l_ti2inventory_org_id_tab l_tiinventory_org_id_type;
6846     l_ti2serial_number_tab l_tiserial_number_type;
6847     l_ti2mfg_serial_number_yn_tab l_timfg_serial_number_yn_type;
6848 
6849     l_txl_itm_insts_counter2 NUMBER := 1;
6850 
6851     -- For okl_txl_itm_insts End
6852 
6853     -- For okc_k_lines_tl Begin
6854 
6855     l_olid_tab l_olid_type;
6856     l_ollanguage_tab l_ollanguage_type;
6857     l_olsource_lang_tab l_olsource_lang_type;
6858     l_olsfwt_flag_tab l_olsfwt_flag_type;
6859     l_olname_tab l_olname_type;
6860     l_olcomments_tab l_olcomments_type;
6861     l_olitem_description_tab l_olitem_description_type;
6862     l_olblock23text_tab l_olblock23text_type;
6863     l_olcreated_by_tab l_olcreated_by_type;
6864     l_olcreation_date_tab l_olcreation_date_type;
6865     l_ollast_updated_by_tab l_ollast_updated_by_type;
6866     l_ollast_update_date_tab l_ollast_update_date_type;
6867     l_ollast_update_login_tab l_ollast_update_login_type;
6868     l_olsecurity_group_id_tab l_olsecurity_group_id_type;
6869     l_oloke_boe_description_tab l_oloke_boe_description_type;
6870     l_olcognomen_tab l_olcognomen_type;
6871 
6872     l_ollse_id_tab l_lse_id_type;
6873 --avsingh: Bug 5710213: start
6874     l_ollty_code_tab l_lty_code_type;
6875 --avsingh: Bug 5710213: end
6876     l_olsts_code_tab l_sts_code_type;
6877     l_olfee_type_tab l_fee_type_type;
6878 
6879     l_okc_k_lines_tl_counter NUMBER := 1;
6880     -- For okc_k_lines_tl End
6881 
6882     -- For okl_party_payment_dtls Begin
6883 
6884     l_ppid_tab l_ppid_type;
6885     l_ppobject_version_number_tab l_ppobject_version_number_type;
6886     l_ppcpl_id_tab l_ppcpl_id_type;
6887     l_ppvendor_id_tab l_ppvendor_id_type;
6888     l_pppay_site_id_tab l_pppay_site_id_type;
6889     l_pppayment_term_id_tab l_pppayment_term_id_type;
6890     l_pppayment_method_code_tab l_pppayment_method_code_type;
6891     l_pppay_group_code_tab l_pppay_group_code_type;
6892     l_ppattribute_category_tab l_ppattribute_category_type;
6893     l_ppattribute1_tab l_ppattribute1_type;
6894     l_ppattribute2_tab l_ppattribute2_type;
6895     l_ppattribute3_tab l_ppattribute3_type;
6896     l_ppattribute4_tab l_ppattribute4_type;
6897     l_ppattribute5_tab l_ppattribute5_type;
6898     l_ppattribute6_tab l_ppattribute6_type;
6899     l_ppattribute7_tab l_ppattribute7_type;
6900     l_ppattribute8_tab l_ppattribute8_type;
6901     l_ppattribute9_tab l_ppattribute9_type;
6902     l_ppattribute10_tab l_ppattribute10_type;
6903     l_ppattribute11_tab l_ppattribute11_type;
6904     l_ppattribute12_tab l_ppattribute12_type;
6905     l_ppattribute13_tab l_ppattribute13_type;
6906     l_ppattribute14_tab l_ppattribute14_type;
6907     l_ppattribute15_tab l_ppattribute15_type;
6908     l_ppcreated_by_tab l_ppcreated_by_type;
6909     l_ppcreation_date_tab l_ppcreation_date_type;
6910     l_pplast_updated_by_tab l_pplast_updated_by_type;
6911     l_pplast_update_date_tab l_pplast_update_date_type;
6912     l_pplast_update_login_tab l_pplast_update_login_type;
6913     l_pppayment_hdr_id_tab l_pppayment_hdr_id_type;
6914     l_pppayment_start_date_tab l_pppayment_start_date_type;
6915     l_pppayment_frequency_tab l_pppayment_frequency_type;
6916     l_ppremit_days_tab l_ppremit_days_type;
6917     l_ppdisbursement_basis_tab l_ppdisbursement_basis_type;
6918     l_ppdisbursement_fixed_am_tab l_ppdisbursement_fixed_am_type;
6919     l_ppdisbursement_percent_tab l_ppdisbursement_percent_type;
6920     l_ppprocessing_fee_basis_tab l_ppprocessing_fee_basis_type;
6921     l_ppprocessing_fee_fixedt_tab l_ppprocessing_fee_fixedt_type;
6922     l_ppprocessing_fee_percen_tab l_ppprocessing_fee_percen_type;
6923     l_pppayment_basis_tab l_pppayment_basis_type;
6924 
6925     l_party_payment_dtls_counter NUMBER := 1;
6926 
6927     -- For okl_party_payment_dtls End
6928 
6929     -- For okl_slctd_optns Begin
6930 
6931     l_sid_tab l_sid_type;
6932     l_spov_id_tab l_spov_id_type;
6933     l_skhr_id_tab l_skhr_id_type;
6934     l_sobject_version_number_tab l_sobject_version_number_type;
6935     l_sattribute_category_tab l_sattribute_category_type;
6936     l_sattribute1_tab l_sattribute1_type;
6937     l_sattribute2_tab l_sattribute2_type;
6938     l_sattribute3_tab l_sattribute3_type;
6939     l_sattribute4_tab l_sattribute4_type;
6940     l_sattribute5_tab l_sattribute5_type;
6941     l_sattribute6_tab l_sattribute6_type;
6942     l_sattribute7_tab l_sattribute7_type;
6943     l_sattribute8_tab l_sattribute8_type;
6944     l_sattribute9_tab l_sattribute9_type;
6945     l_sattribute10_tab l_sattribute10_type;
6946     l_sattribute11_tab l_sattribute11_type;
6947     l_sattribute12_tab l_sattribute12_type;
6948     l_sattribute13_tab l_sattribute13_type;
6949     l_sattribute14_tab l_sattribute14_type;
6950     l_sattribute15_tab l_sattribute15_type;
6951     l_screated_by_tab l_screated_by_type;
6952     l_screation_date_tab l_screation_date_type;
6953     l_slast_updated_by_tab l_slast_updated_by_type;
6954     l_slast_update_date_tab l_slast_update_date_type;
6955     l_slast_update_login_tab l_slast_update_login_type;
6956 
6957     l_slctd_optns_counter NUMBER := 1;
6958 
6959     -- For okl_slctd_optns End
6960 
6961     -- For okc_rg_party_roles Begin
6962 
6963     l_gid_tab l_gid_type;
6964     l_grgp_id_tab l_grgp_id_type;
6965     l_grrd_id_tab l_grrd_id_type;
6966     l_gcpl_id_tab l_gcpl_id_type;
6967     l_gdnz_chr_id_tab l_gdnz_chr_id_type;
6968     l_gobject_version_number_tab l_gobject_version_number_type;
6969     l_gcreated_by_tab l_gcreated_by_type;
6970     l_gcreation_date_tab l_gcreation_date_type;
6971     l_glast_updated_by_tab l_glast_updated_by_type;
6972     l_glast_update_date_tab l_glast_update_date_type;
6973     l_glast_update_login_tab l_glast_update_login_type;
6974     l_gsecurity_group_id_tab l_gsecurity_group_id_type;
6975 
6976     l_rg_party_roles_counter NUMBER := 1;
6977 
6978     -- For okc_rg_party_roles End
6979 
6980     --l_okl_k_lines_rec2 lines_tbl_type;
6981     l_okl_k_lines_rec l_okl_k_lines_rec_tab;
6982     l_okl_k_lines_rec_counter NUMBER := 1;
6983     l_okc_k_items_rec l_okc_k_items_rec_tab;
6984     l_okc_k_items_rec_counter NUMBER := 1;
6985 
6986     l_bid_mapping_tab l_bid_mapping_tab_type;
6987     l_cle_lse_mapping_tab l_cle_lse_mapping_tab_type;
6988     l_orig_system_tab l_orig_system_tab_type;
6989     l_id_mapping_tab l_id_mapping_tab_type;
6990     l_party_id_mapping_tab l_party_id_mapping_tab_type;
6991     l_ssid_mapping_tab l_ssid_mapping_tab_type;
6992     l_sid_mapping_tab l_sid_mapping_tab_type;
6993     l_tid_mapping_tab l_tid_mapping_tab_type;
6994     l_vid_mapping_tab l_vid_mapping_tab_type;
6995     l_dbid_mapping_tab l_dbid_mapping_tab_type;
6996     l_osid_mapping_tab l_osid_mapping_tab_type;
6997     l_cid_mapping_tab l_cid_mapping_tab_type;
6998     l_rid_mapping_tab l_rid_mapping_tab_type;
6999     l_rrid_mapping_tab l_rrid_mapping_tab_type;
7000     l_trx_id_mapping_tab l_trx_id_mapping_tab_type;
7001     l_trx_id_mapping_tab2 l_trx_id_mapping_tab_type;
7002     l_txl_id_mapping_tab l_txl_id_mapping_tab_type;
7003     l_aid_mapping_tab l_aid_mapping_tab_type;
7004     l_oid_mapping_tab l_oid_mapping_tab_type;
7005     l_cle_mapping_tab l_cle_mapping_tab_type;
7006     l_cle_mapping_tab2 l_cle_mapping_tab_type2;
7007     l_asset_counter NUMBER := 1;
7008     l_vid_counter NUMBER := 1;
7009     l_tid_counter NUMBER := 1;
7010     l_ssid_counter NUMBER := 1;
7011     l_s2cle_id_tab l_id_type;
7012     l_s2object1_id1_tab l_misc_object1_id1;
7013 
7014     l_entered_id_tab l_id_type;
7015     l_entered_sts_code_tab l_sts_code_type; -- Bug 4872258
7016     l_entered_counter NUMBER := 1;
7017     l_delete_id_tab l_id_type;
7018     l_delete_counter NUMBER := 1;
7019     l_line_count NUMBER := 0; --5207066
7020 
7021     l_id2_tab_counter NUMBER := 1;
7022     l_id2_tab l_id_type;
7023     l_id_tab l_id_type;
7024     l_line_number_tab l_line_number_type;
7025     l_chr_id_tab l_chr_id_type;
7026     l_cle_id_tab l_cle_id_type;
7027     l_cle_id_renewed_tab l_cle_id_renewed_type;
7028     l_dnz_chr_id_tab l_dnz_chr_id_type;
7029     l_display_sequence_tab l_display_sequence_type;
7030     l_sts_code_tab l_sts_code_type;
7031     l_trn_code_tab l_trn_code_type;
7032     l_lse_id2_tab l_lse_id_type;
7033     l_lse_id_tab l_lse_id_type;
7034 --avsingh: Bug 5710213: start
7035     l_lty_code_tab l_lty_code_type;
7036 --avsingh: Bug 5710213: end
7037     l_exception_yn_tab l_exception_yn_type;
7038     l_object_version_number_tab l_object_version_number_type;
7039     l_created_by_tab l_created_by_type;
7040     l_creation_date_tab l_creation_date_type;
7041     l_last_updated_by_tab l_last_updated_by_type;
7042     l_last_update_date_tab l_last_update_date_type;
7043     l_hidden_ind_tab l_hidden_ind_type;
7044     l_price_negotiated_tab l_price_negotiated_type;
7045     l_price_level_ind_tab l_price_level_ind_type;
7046     l_price_unit_tab l_price_unit_type;
7047     l_price_unit_percent_tab l_price_unit_percent_type;
7048     l_invoice_line_level_ind_tab l_invoice_line_level_ind_type;
7049     l_dpas_rating_tab l_dpas_rating_type;
7050     l_template_used_tab l_template_used_type;
7051     l_price_type_tab l_price_type_type;
7052     l_currency_code_tab l_currency_code_type;
7053     l_last_update_login_tab l_last_update_login_type;
7054     l_date_terminated_tab l_date_terminated_type;
7055     l_start_date_tab l_start_date_type;
7056     l_end_date_tab l_end_date_type;
7057     l_attribute_category_tab l_attribute_category_type;
7058     l_attribute1_tab l_attribute1_type;
7059     l_attribute2_tab l_attribute2_type;
7060     l_attribute3_tab l_attribute3_type;
7061     l_attribute4_tab l_attribute4_type;
7062     l_attribute5_tab l_attribute5_type;
7063     l_attribute6_tab l_attribute6_type;
7064     l_attribute7_tab l_attribute7_type;
7065     l_attribute8_tab l_attribute8_type;
7066     l_attribute9_tab l_attribute9_type;
7067     l_attribute10_tab l_attribute10_type;
7068     l_attribute11_tab l_attribute11_type;
7069     l_attribute12_tab l_attribute12_type;
7070     l_attribute13_tab l_attribute13_type;
7071     l_attribute14_tab l_attribute14_type;
7072     l_attribute15_tab l_attribute15_type;
7073     l_security_group_id_tab l_security_group_id_type;
7074     l_cle_id_renewed_to_tab l_cle_id_renewed_to_type;
7075     l_price_negotiated_renewed_tab l_price_negotiated_renewed_typ;
7076     l_currency_code_renewed_tab l_currency_code_renewed_type;
7077     l_upg_orig_system_ref_tab l_upg_orig_system_ref_type;
7078     l_upg_orig_system_ref_id_tab l_upg_orig_system_ref_id_type;
7079     l_date_renewed_tab l_date_renewed_type;
7080     l_orig_system_source_code_tab l_orig_system_source_code_type;
7081     l_orig_system_id1_tab l_orig_system_id1_type;
7082     l_orig_system_reference1_tab l_orig_system_reference1_type;
7083     l_program_application_id_tab l_program_application_id_type;
7084     l_program_id_tab l_program_id_type;
7085     l_program_update_date_tab l_program_update_date_type;
7086     l_request_id_tab l_request_id_type;
7087     l_price_list_id_tab l_price_list_id_type;
7088     l_price_list_line_id_tab l_price_list_line_id_type;
7089     l_line_list_price_tab l_line_list_price_type;
7090     l_item_to_price_yn_tab l_item_to_price_yn_type;
7091     l_pricing_date_tab l_pricing_date_type;
7092     l_price_basis_yn_tab l_price_basis_yn_type;
7093     l_config_header_id_tab l_config_header_id_type;
7094     l_config_revision_number_tab l_config_revision_number_type;
7095     l_config_complete_yn_tab l_config_complete_yn_type;
7096     l_config_valid_yn_tab l_config_valid_yn_type;
7097     l_config_top_model_line_id_tab l_config_top_model_line_id_typ;
7098     l_config_item_type_tab l_config_item_type_type;
7099     l_config_item_id_tab l_config_item_id_type;
7100     l_service_item_yn_tab l_service_item_yn_type;
7101     l_ph_pricing_type_tab l_ph_pricing_type_type;
7102     l_ph_price_break_basis_tab l_ph_price_break_basis_type;
7103     l_ph_min_qty_tab l_ph_min_qty_type;
7104     l_ph_min_amt_tab l_ph_min_amt_type;
7105     l_ph_qp_reference_id_tab l_ph_qp_reference_id_type;
7106     l_ph_value_tab l_ph_value_type;
7107     l_ph_enforce_price_list_yn_tab l_ph_enforce_price_list_yn_typ;
7108     l_ph_adjustment_tab l_ph_adjustment_type;
7109     l_ph_integrated_with_qp_tab l_ph_integrated_with_qp_type;
7110     l_cust_acct_id_tab l_cust_acct_id_type;
7111     l_bill_to_site_use_id_tab l_bill_to_site_use_id_type;
7112     l_inv_rule_id_tab l_inv_rule_id_type;
7113     l_line_renewal_type_code_tab l_line_renewal_type_code_type;
7114     l_ship_to_site_use_id_tab l_ship_to_site_use_id_type;
7115     l_payment_term_id_tab l_payment_term_id_type;
7116     l_fee_type_tab l_fee_type_type;
7117     l_name_tab l_name_type;
7118 
7119     l_id_tab3 l_id_type;
7120     l_id_tab2 l_id_type;
7121     l_line_number_tab2 l_line_number_type;
7122     l_chr_id_tab2 l_chr_id_type;
7123     l_cle_id_tab2 l_cle_id_type;
7124     l_cle_id_renewed_tab2 l_cle_id_renewed_type;
7125     l_dnz_chr_id_tab2 l_dnz_chr_id_type;
7126     l_display_sequence_tab2 l_display_sequence_type;
7127     l_sts_code_tab2 l_sts_code_type;
7128     l_trn_code_tab2 l_trn_code_type;
7129     l_lse_id_tab2 l_lse_id_type;
7130 --avsingh: Bug 5710213: start
7131     l_lty_code_tab2 l_lty_code_type;
7132 --avsingh: Bug 5710213: end
7133     l_exception_yn_tab2 l_exception_yn_type;
7134     l_object_version_number_tab2 l_object_version_number_type;
7135     l_created_by_tab2 l_created_by_type;
7136     l_creation_date_tab2 l_creation_date_type;
7137     l_last_updated_by_tab2 l_last_updated_by_type;
7138     l_last_update_date_tab2 l_last_update_date_type;
7139     l_hidden_ind_tab2 l_hidden_ind_type;
7140     l_price_negotiated_tab2 l_price_negotiated_type;
7141     l_price_level_ind_tab2 l_price_level_ind_type;
7142     l_price_unit_tab2 l_price_unit_type;
7143     l_price_unit_percent_tab2 l_price_unit_percent_type;
7144     l_invoice_line_level_ind_tab2 l_invoice_line_level_ind_type;
7145     l_dpas_rating_tab2 l_dpas_rating_type;
7146     l_template_used_tab2 l_template_used_type;
7147     l_price_type_tab2 l_price_type_type;
7148     l_currency_code_tab2 l_currency_code_type;
7149     l_last_update_login_tab2 l_last_update_login_type;
7150     l_date_terminated_tab2 l_date_terminated_type;
7151     l_start_date_tab2 l_start_date_type;
7152     l_end_date_tab2 l_end_date_type;
7153     l_attribute_category_tab2 l_attribute_category_type;
7154     l_attribute1_tab2 l_attribute1_type;
7155     l_attribute2_tab2 l_attribute2_type;
7156     l_attribute3_tab2 l_attribute3_type;
7157     l_attribute4_tab2 l_attribute4_type;
7158     l_attribute5_tab2 l_attribute5_type;
7159     l_attribute6_tab2 l_attribute6_type;
7160     l_attribute7_tab2 l_attribute7_type;
7161     l_attribute8_tab2 l_attribute8_type;
7162     l_attribute9_tab2 l_attribute9_type;
7163     l_attribute10_tab2 l_attribute10_type;
7164     l_attribute11_tab2 l_attribute11_type;
7165     l_attribute12_tab2 l_attribute12_type;
7166     l_attribute13_tab2 l_attribute13_type;
7167     l_attribute14_tab2 l_attribute14_type;
7168     l_attribute15_tab2 l_attribute15_type;
7169     l_security_group_id_tab2 l_security_group_id_type;
7170     l_cle_id_renewed_to_tab2 l_cle_id_renewed_to_type;
7171     l_price_negotiated_renewed_tb2 l_price_negotiated_renewed_typ;
7172     l_currency_code_renewed_tab2 l_currency_code_renewed_type;
7173     l_upg_orig_system_ref_tab2 l_upg_orig_system_ref_type;
7174     l_upg_orig_system_ref_id_tab2 l_upg_orig_system_ref_id_type;
7175     l_date_renewed_tab2 l_date_renewed_type;
7176     l_orig_system_source_code_tab2 l_orig_system_source_code_type;
7177     l_orig_system_id1_tab2 l_orig_system_id1_type;
7178     l_orig_system_reference1_tab2 l_orig_system_reference1_type;
7179     l_program_application_id_tab2 l_program_application_id_type;
7180     l_program_id_tab2 l_program_id_type;
7181     l_program_update_date_tab2 l_program_update_date_type;
7182     l_request_id_tab2 l_request_id_type;
7183     l_price_list_id_tab2 l_price_list_id_type;
7184     l_price_list_line_id_tab2 l_price_list_line_id_type;
7185     l_line_list_price_tab2 l_line_list_price_type;
7186     l_item_to_price_yn_tab2 l_item_to_price_yn_type;
7187     l_pricing_date_tab2 l_pricing_date_type;
7188     l_price_basis_yn_tab2 l_price_basis_yn_type;
7189     l_config_header_id_tab2 l_config_header_id_type;
7190     l_config_revision_number_tab2 l_config_revision_number_type;
7191     l_config_complete_yn_tab2 l_config_complete_yn_type;
7192     l_config_valid_yn_tab2 l_config_valid_yn_type;
7193     l_config_top_model_line_id_tb2 l_config_top_model_line_id_typ;
7194     l_config_item_type_tab2 l_config_item_type_type;
7195     l_config_item_id_tab2 l_config_item_id_type;
7196     l_service_item_yn_tab2 l_service_item_yn_type;
7197     l_ph_pricing_type_tab2 l_ph_pricing_type_type;
7198     l_ph_price_break_basis_tab2 l_ph_price_break_basis_type;
7199     l_ph_min_qty_tab2 l_ph_min_qty_type;
7200     l_ph_min_amt_tab2 l_ph_min_amt_type;
7201     l_ph_qp_reference_id_tab2 l_ph_qp_reference_id_type;
7202     l_ph_value_tab2 l_ph_value_type;
7203     l_ph_enforce_price_list_yn_tb2 l_ph_enforce_price_list_yn_typ;
7204     l_ph_adjustment_tab2 l_ph_adjustment_type;
7205     l_ph_integrated_with_qp_tab2 l_ph_integrated_with_qp_type;
7206     l_cust_acct_id_tab2 l_cust_acct_id_type;
7207     l_bill_to_site_use_id_tab2 l_bill_to_site_use_id_type;
7208     l_inv_rule_id_tab2 l_inv_rule_id_type;
7209     l_line_renewal_type_code_tab2 l_line_renewal_type_code_type;
7210     l_ship_to_site_use_id_tab2 l_ship_to_site_use_id_type;
7211     l_payment_term_id_tab2 l_payment_term_id_type;
7212     l_fee_type_tab2 l_fee_type_type;
7213     l_name_tab2 l_name_type;
7214 
7215     l_counter NUMBER;
7216     l_cid_counter NUMBER := 1;
7217     l_cle_lse_counter NUMBER := 1;
7218     l_new_id NUMBER;
7219     l_party_counter NUMBER := 1;
7220     l_prid_tab  l_prid_type;
7221     l_probject1_id1_tab l_probject1_id1_type;
7222 
7223     l_orig_system_source_code okc_k_headers_b.orig_system_source_code%TYPE;
7224     l_sts_code okc_k_headers_b.sts_code%TYPE;
7225     l_sts_code_orig okc_k_headers_b.sts_code%TYPE;
7226 
7227 PROCEDURE validate_currency_code(
7228        x_return_status OUT NOCOPY   VARCHAR2,
7229        p_ccy_code      IN    okc_k_headers_b.currency_code%TYPE) IS
7230 
7231   l_dummy_var   VARCHAR2(1) := '?';
7232   CURSOR l_fndv_csr IS
7233   		SELECT 'x'
7234 		FROM FND_CURRENCIES_VL
7235 		WHERE currency_code = p_ccy_code
7236 		AND SYSDATE BETWEEN NVL(start_date_active,SYSDATE)
7237 					 AND NVL(end_date_active,SYSDATE);
7238 BEGIN
7239 
7240     -- initialize return status
7241     x_return_status := OKC_API.G_RET_STS_SUCCESS;
7242 
7243     -- check that data exists
7244     IF (p_ccy_code = OKC_API.G_MISS_CHAR OR
7245   	   p_ccy_code IS NULL)
7246     THEN
7247   	  OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
7248 					  p_msg_name		=> g_required_value,
7249 					  p_token1		=> g_col_name_token,
7250 					  p_token1_value	=> 'Currency Code');
7251 	   -- notify caller of an error
7252         x_return_status := OKC_API.G_RET_STS_ERROR;
7253 
7254 	   -- halt validation
7255 	   RAISE G_EXCEPTION_HALT_VALIDATION;
7256     END IF;
7257 
7258     -- check data is in lookup table
7259       OPEN l_fndv_csr;
7260       FETCH l_fndv_csr INTO l_dummy_var;
7261       CLOSE l_fndv_csr;
7262 
7263       -- if l_dummy_var still set to default, data was not found
7264       IF (l_dummy_var = '?') THEN
7265   	    OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
7266 					    p_msg_name		=> 'OKL_NO_PARENT_RECORD',
7267 					    p_token1		=> g_col_name_token,
7268 					    p_token1_value	=> 'currency_code',
7269 					    p_token2		=> g_child_table_token,
7270 					    p_token2_value	=> 'OKL_TRX_AP_INVOICES_V',
7271 					    p_token3		=> g_parent_table_token,
7272 					    p_token3_value	=> 'FND_CURRENCIES');
7273 	    -- notify caller of an error
7274          x_return_status := OKC_API.G_RET_STS_ERROR;
7275       END IF;
7276 
7277 
7278   EXCEPTION
7279     WHEN G_EXCEPTION_HALT_VALIDATION THEN
7280 
7281 
7282       -- no processing necessary; validation can continue with next column
7283       NULL;
7284 
7285     WHEN OTHERS THEN
7286 
7287 
7288 	  -- store SQL error message on message stack
7289   	  OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
7290 					  p_msg_name		=> g_unexpected_error,
7291 					  p_token1		=> g_sqlcode_token,
7292 					  p_token1_value	=> SQLCODE,
7293 					  p_token2		=> g_sqlerrm_token,
7294 					  p_token2_value	=> SQLERRM);
7295 	   -- notify caller of an error as UNEXPETED error
7296         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
7297 
7298         -- verify that cursor was closed
7299         IF l_fndv_csr%ISOPEN THEN
7300 	      CLOSE l_fndv_csr;
7301         END IF;
7302 
7303 
7304 END validate_currency_code;
7305 
7306 PROCEDURE validate_orig_sys_code
7307  (x_return_status OUT NOCOPY   VARCHAR2,
7308   p_orig_system_source_code  IN    okc_k_headers_b.orig_system_source_code%TYPE
7309  ) IS
7310   BEGIN
7311 
7312 
7313     -- initialize return status
7314     x_return_status := OKC_API.G_RET_STS_SUCCESS;
7315 
7316     -- enforce foreign key if data exists
7317     IF (p_orig_system_source_code <> OKC_API.G_MISS_CHAR AND
7318 	   p_orig_system_source_code IS NOT NULL)
7319     THEN
7320       -- Check if the value is a valid code from lookup table
7321       x_return_status := OKC_UTIL.check_lookup_code('OKC_CONTRACT_SOURCES',
7322 				     p_orig_system_source_code);
7323       IF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7324 	    --set error message in message stack
7325 	    OKC_API.SET_MESSAGE(
7326 			p_app_name	=> G_APP_NAME,
7327 			p_msg_name	=> G_INVALID_VALUE,
7328 			p_token1		=> G_COL_NAME_TOKEN,
7329 			p_token1_value => 'ORIG_SYSTEM_SOURCE_CODE');
7330 	    RAISE G_EXCEPTION_HALT_VALIDATION;
7331       ELSIF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7332 	    RAISE G_EXCEPTION_HALT_VALIDATION;
7333       END IF;
7334     END IF;
7335 
7336 
7337   EXCEPTION
7338     WHEN OTHERS THEN
7339 
7340 
7341 	  -- store SQL error message on message stack
7342   	  OKC_API.SET_MESSAGE(p_app_name	=> g_app_name,
7343 					  p_msg_name	=> g_unexpected_error,
7344 					  p_token1	=> g_sqlcode_token,
7345 					  p_token1_value=> SQLCODE,
7346 					  p_token2	=> g_sqlerrm_token,
7347 					  p_token2_value=> SQLERRM);
7348 	   -- notify caller of an error as UNEXPETED error
7349         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
7350 
7351   END validate_orig_sys_code;
7352 
7353  PROCEDURE validate_currency_conv_type
7354   (x_return_status OUT NOCOPY   VARCHAR2,
7355    p_currency_conversion_type IN    okc_k_headers_b.conversion_type%TYPE) IS
7356 
7357   --cursor to chk currency type fk
7358   CURSOR curr_conv_type_csr (p_curr_cotyp IN VARCHAR2) IS
7359   SELECT '!'
7360   FROM   gl_daily_conversion_types
7361   WHERE  conversion_type = p_curr_cotyp;
7362 
7363   l_valid_convert_type VARCHAR2(1) DEFAULT '?';
7364   BEGIN
7365     -- initialize return status
7366     x_return_status := OKC_API.G_RET_STS_SUCCESS;
7367     IF (p_CURRENCY_CONVERSION_TYPE <> OKC_API.G_MISS_CHAR AND
7368   	   p_CURRENCY_CONVERSION_TYPE IS NOT NULL)
7369     THEN
7370       -- check allowed values
7371       l_valid_convert_type := '?';
7372       OPEN curr_conv_type_csr(p_curr_cotyp => p_CURRENCY_CONVERSION_TYPE);
7373       FETCH  curr_conv_type_csr INTO l_valid_convert_type;
7374       IF curr_conv_type_csr%NOTFOUND THEN
7375           NULL;
7376       END IF;
7377       CLOSE curr_conv_type_csr;
7378 
7379       IF (l_valid_convert_type = '?')  THEN
7380   	    OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
7381 				p_msg_name		=> g_invalid_value,
7382 				p_token1		=> g_col_name_token,
7383 				p_token1_value	=> 'CURRENCY_CONVERSION_TYPE');
7384 	     -- notify caller of an error
7385           x_return_status := OKC_API.G_RET_STS_ERROR;
7386       END IF;
7387     END IF;
7388   EXCEPTION
7389     WHEN OTHERS THEN
7390 	  -- store SQL error message on message stack
7391   	  OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
7392 					  p_msg_name		=> g_unexpected_error,
7393 					  p_token1		=> g_sqlcode_token,
7394 					  p_token1_value	=> SQLCODE,
7395 					  p_token2		=> g_sqlerrm_token,
7396 					  p_token2_value	=> SQLERRM);
7397 	   -- notify caller of an error as UNEXPETED error
7398         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
7399   END validate_CURRENCY_CONV_TYPE;
7400 
7401 PROCEDURE validate_amd_code(x_return_status OUT NOCOPY   VARCHAR2,
7402                             p_amd_code IN okl_k_headers.amd_code%TYPE) IS
7403   BEGIN
7404     -- initialize return status
7405     x_return_status := OKC_API.G_RET_STS_SUCCESS;
7406 
7407     -- enforce foreign key if data exists
7408     IF (p_AMD_CODE <> OKC_API.G_MISS_CHAR AND
7409 	   p_AMD_CODE IS NOT NULL)
7410     THEN
7411       -- Check if the value is a valid code from lookup table
7412       x_return_status := OKC_UTIL.check_lookup_code('OKL_ACCEPTANCE_METHOD',
7413 						    p_AMD_CODE);
7414       IF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7415 	    --set error message in message stack
7416 	    OKC_API.SET_MESSAGE(
7417 			p_app_name	=> G_APP_NAME,
7418 			p_msg_name	=> G_INVALID_VALUE,
7419 			p_token1		=> G_COL_NAME_TOKEN,
7420 			p_token1_value => 'ACCEPTANCE_METHOD');
7421 	    RAISE G_EXCEPTION_HALT_VALIDATION;
7422       ELSIF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7423 	    RAISE G_EXCEPTION_HALT_VALIDATION;
7424       END IF;
7425     END IF;
7426   EXCEPTION
7427     WHEN OTHERS THEN
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   END validate_AMD_CODE;
7438 /*
7439 */
7440 
7441 FUNCTION find_bid_mapping_id(p_id IN NUMBER, p_lse_id IN NUMBER) RETURN VARCHAR2 IS
7442 hi NUMBER;
7443 lo NUMBER;
7444 m NUMBER;
7445 l_id NUMBER;
7446 BEGIN
7447   --l_id := p_id*100 + p_lse_id ;
7448   l_id := p_id;
7449   lo := 1;
7450   hi := l_counter - 1;
7451   WHILE (lo <= hi) LOOP
7452     m := FLOOR((hi + lo)/2);
7453     IF (l_bid_mapping_tab(m).old_id = l_id) THEN
7454       RETURN l_bid_mapping_tab(m).new_id;
7455     ELSIF (l_bid_mapping_tab(m).old_id > l_id) THEN
7456       hi := m - 1;
7457     ELSE
7458       lo := m + 1;
7459     END IF;
7460   END LOOP;
7461   RETURN '-1';
7462 END;  /* find_bid_mapping_id */
7463 
7464 PROCEDURE sort_bid_mapping_tab IS
7465   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
7466   --a numtabtype;
7467   l_stack numtabtype;
7468   l_stack_index NUMBER := 0;
7469   N NUMBER;
7470   R NUMBER;
7471   L NUMBER;
7472   P NUMBER;
7473   W NUMBER;
7474   W2 VARCHAR2(40);
7475   X NUMBER;
7476   I NUMBER;
7477   J NUMBER;
7478 BEGIN
7479   IF (G_DEBUG_ENABLED = 'Y') THEN
7480     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
7481   END IF;
7482   NULL;
7483 
7484   N := l_counter - 1;
7485   IF (N < 2) THEN
7486     RETURN;
7487   END IF;
7488   l_stack_index := l_stack_index + 1;
7489   l_stack(l_stack_index) := 1;
7490   l_stack_index := l_stack_index + 1;
7491   l_stack(l_stack_index) := N;
7492 
7493   --dbms_output.put_line('l_stack_index=' || l_stack_index);
7494   WHILE l_stack_index > 0
7495   LOOP
7496     R := l_stack(l_stack_index);
7497     l_stack_index := l_stack_index - 1;
7498     L := l_stack(l_stack_index);
7499     l_stack_index := l_stack_index - 1;
7500     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
7501     WHILE 1=1
7502     LOOP -- loop until L >= R
7503       I := L;
7504       J := R;
7505       P := FLOOR((L+R)/2);
7506       --if (a(L) > a(P)) then
7507       IF (l_bid_mapping_tab(L).old_id > l_bid_mapping_tab(P).old_id)
7508       THEN
7509         W := l_bid_mapping_tab(L).old_id;
7510         W2 := l_bid_mapping_tab(L).new_id;
7511         l_bid_mapping_tab(L).old_id :=l_bid_mapping_tab(P).old_id;
7512         l_bid_mapping_tab(L).new_id :=l_bid_mapping_tab(P).new_id;
7513         l_bid_mapping_tab(P).old_id := W;
7514         l_bid_mapping_tab(P).new_id := W2;
7515       END IF;
7516       --if (a(L) > a(R)) then
7517       IF (l_bid_mapping_tab(L).old_id > l_bid_mapping_tab(R).old_id)
7518       THEN
7519         W := l_bid_mapping_tab(L).old_id;
7520         W2 := l_bid_mapping_tab(L).new_id;
7521         l_bid_mapping_tab(L).old_id :=l_bid_mapping_tab(R).old_id;
7522         l_bid_mapping_tab(L).new_id :=l_bid_mapping_tab(R).new_id;
7523         l_bid_mapping_tab(R).old_id := W;
7524         l_bid_mapping_tab(R).new_id := W2;
7525       END IF;
7526       --if (a(P) > a(R)) then
7527       IF (l_bid_mapping_tab(P).old_id > l_bid_mapping_tab(R).old_id)
7528       THEN
7529         W := l_bid_mapping_tab(P).old_id;
7530         W2 := l_bid_mapping_tab(P).new_id;
7531         l_bid_mapping_tab(P).old_id :=l_bid_mapping_tab(R).old_id;
7532         l_bid_mapping_tab(P).new_id :=l_bid_mapping_tab(R).new_id;
7533         l_bid_mapping_tab(R).old_id := W;
7534         l_bid_mapping_tab(R).new_id := W2;
7535       END IF;
7536       --X := a(P);
7537       X := l_bid_mapping_tab(P).old_id;
7538       WHILE 1=1
7539       LOOP    -- until I > J
7540         --while (a(I) < X) loop
7541         WHILE (l_bid_mapping_tab(I).old_id < X) LOOP
7542           I := I + 1;
7543         END LOOP;
7544         WHILE (X < l_bid_mapping_tab(J).old_id) LOOP
7545           J := J - 1;
7546         END LOOP;
7547         IF (I <= J) THEN
7548           W := l_bid_mapping_tab(I).old_id;
7549           W2 := l_bid_mapping_tab(I).new_id;
7550           l_bid_mapping_tab(I).old_id :=l_bid_mapping_tab(J).old_id;
7551           l_bid_mapping_tab(I).new_id :=l_bid_mapping_tab(J).new_id;
7552           l_bid_mapping_tab(J).old_id := W;
7553           l_bid_mapping_tab(J).new_id := W2;
7554           I := I + 1;
7555           J := J - 1;
7556         END IF;
7557         EXIT WHEN I > J;
7558       END LOOP;
7559       IF (J - L < R - I) THEN
7560         IF (I < R) THEN
7561           --push(I); push(R);
7562           l_stack_index := l_stack_index + 1;
7563           l_stack(l_stack_index) := I;
7564           l_stack_index := l_stack_index + 1;
7565           l_stack(l_stack_index) := R;
7566           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
7567         END IF;
7568         R := J;
7569       ELSE
7570         IF (L < J) THEN
7571           --push(L); push(J);
7572           l_stack_index := l_stack_index + 1;
7573           l_stack(l_stack_index) := L;
7574           l_stack_index := l_stack_index + 1;
7575           l_stack(l_stack_index) := J;
7576           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
7577         END IF;
7578         L := I;
7579       END IF;
7580 
7581       EXIT WHEN (L >= R);
7582     END LOOP;
7583   END LOOP;
7584 
7585 EXCEPTION WHEN OTHERS THEN
7586 
7587   x_return_status := OKL_API.G_RET_STS_ERROR;
7588   /*OKL_API.set_message(p_app_name => 'OKL',
7589                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
7590                       p_token1 => 'ASSET_NUMBER',
7591                       p_token1_value => 'sort_bid_mapping_tab');*/
7592     /* DEBUG */
7593   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7594       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
7595     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_bid_mapping_tab:l_bid_mapping_tab N=' || N || ' ...');
7596   END IF;
7597 
7598   --print array
7599   FOR i IN 1..N
7600   LOOP
7601     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7602           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);
7603     END IF;
7604   END LOOP;
7605 
7606   RAISE OKC_API.G_EXCEPTION_ERROR;
7607 
7608 END;  /* sort_bid_mapping_tab */
7609 
7610 FUNCTION find_cle_lse_mapping_id(p_cle_id IN NUMBER, p_lse_id IN NUMBER) RETURN NUMBER IS
7611 hi NUMBER;
7612 lo NUMBER;
7613 m NUMBER;
7614 l_start NUMBER;
7615 l_found BOOLEAN;
7616 l_orig_cle_id NUMBER;
7617 l_curr_cle_id NUMBER;
7618 BEGIN
7619   lo := 1;
7620   hi := l_cle_lse_counter - 1;
7621   WHILE (lo <= hi) LOOP
7622     m := FLOOR((hi + lo)/2);
7623     --print('Searching at m=' || m);
7624     IF (l_cle_lse_mapping_tab(m).cle_id = p_cle_id) THEN
7625       --print('Found at m=' || m);
7626       IF (l_cle_lse_mapping_tab(m).lse_id = p_lse_id) THEN
7627         --print('Returning value from index m=' || m);
7628         RETURN l_cle_lse_mapping_tab(m).id;
7629       ELSE
7630          -- Loop thru sequentially from m below until lse_id matches
7631         --print('Going down...');
7632         l_found := FALSE;
7633         l_orig_cle_id := l_cle_lse_mapping_tab(m).cle_id;
7634         l_start := m;
7635         l_curr_cle_id := l_cle_lse_mapping_tab(l_start).cle_id;
7636         WHILE (NOT(l_found) AND (l_curr_cle_id = l_orig_cle_id))
7637         LOOP
7638           IF (l_cle_lse_mapping_tab(l_start).lse_id = p_lse_id) THEN
7639             l_found := TRUE;
7640           ELSE
7641             l_start := l_start + 1;
7642             EXIT WHEN l_start > hi;
7643             l_curr_cle_id := l_cle_lse_mapping_tab(l_start).cle_id;
7644           END IF;
7645         END LOOP;
7646         IF (l_found) THEN
7647           --print('Found at down... l_start'||l_start);
7648           RETURN l_cle_lse_mapping_tab(l_start).id;
7649         END IF;
7650 
7651          -- Loop thru sequentially from m above until lse_id matches
7652         --print('Going up...');
7653         l_found := FALSE;
7654         l_orig_cle_id := l_cle_lse_mapping_tab(m).cle_id;
7655         l_start := m;
7656         l_curr_cle_id := l_cle_lse_mapping_tab(l_start).cle_id;
7657         WHILE (NOT(l_found) AND (l_curr_cle_id = l_orig_cle_id))
7658         LOOP
7659           IF (l_cle_lse_mapping_tab(l_start).lse_id = p_lse_id) THEN
7660             l_found := TRUE;
7661           ELSE
7662             l_start := l_start - 1;
7663             EXIT WHEN l_start < lo;
7664             l_curr_cle_id := l_cle_lse_mapping_tab(l_start).cle_id;
7665           END IF;
7666         END LOOP;
7667         IF (l_found) THEN
7668           --print('Found at up... l_start='||l_start);
7669           RETURN l_cle_lse_mapping_tab(l_start).id;
7670         END IF;
7671 
7672         RETURN -1;
7673       END IF;
7674     ELSIF (l_cle_lse_mapping_tab(m).cle_id > p_cle_id) THEN
7675       hi := m - 1;
7676     ELSE
7677       lo := m + 1;
7678     END IF;
7679   END LOOP;
7680   RETURN -1;
7681 END;  /* find_cle_lse_mapping_id */
7682 
7683 PROCEDURE sort_cle_lse_mapping_tab IS
7684   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
7685   --a numtabtype;
7686   l_stack numtabtype;
7687   l_stack_index NUMBER := 0;
7688   N NUMBER;
7689   R NUMBER;
7690   L NUMBER;
7691   P NUMBER;
7692   W NUMBER;
7693   W2 NUMBER;
7694   W3 NUMBER;
7695   X NUMBER;
7696   I NUMBER;
7697   J NUMBER;
7698 BEGIN
7699   IF (G_DEBUG_ENABLED = 'Y') THEN
7700     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
7701   END IF;
7702   NULL;
7703 
7704   N := l_cle_lse_counter - 1;
7705   IF (N < 2) THEN
7706     RETURN;
7707   END IF;
7708   l_stack_index := l_stack_index + 1;
7709   l_stack(l_stack_index) := 1;
7710   l_stack_index := l_stack_index + 1;
7711   l_stack(l_stack_index) := N;
7712 
7713   --dbms_output.put_line('l_stack_index=' || l_stack_index);
7714   WHILE l_stack_index > 0
7715   LOOP
7716     R := l_stack(l_stack_index);
7717     l_stack_index := l_stack_index - 1;
7718     L := l_stack(l_stack_index);
7719     l_stack_index := l_stack_index - 1;
7720     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
7721     WHILE 1=1
7722     LOOP -- loop until L >= R
7723       I := L;
7724       J := R;
7725       P := FLOOR((L+R)/2);
7726       --if (a(L) > a(P)) then
7727       IF (l_cle_lse_mapping_tab(L).cle_id > l_cle_lse_mapping_tab(P).cle_id)
7728       THEN
7729         W := l_cle_lse_mapping_tab(L).cle_id;
7730         W2 := l_cle_lse_mapping_tab(L).id;
7731         W3 := l_cle_lse_mapping_tab(L).lse_id;
7732         l_cle_lse_mapping_tab(L).cle_id :=l_cle_lse_mapping_tab(P).cle_id;
7733         l_cle_lse_mapping_tab(L).id :=l_cle_lse_mapping_tab(P).id;
7734         l_cle_lse_mapping_tab(L).lse_id :=l_cle_lse_mapping_tab(P).lse_id;
7735         l_cle_lse_mapping_tab(P).cle_id := W;
7736         l_cle_lse_mapping_tab(P).id := W2;
7737         l_cle_lse_mapping_tab(P).lse_id := W3;
7738       END IF;
7739       --if (a(L) > a(R)) then
7740       IF (l_cle_lse_mapping_tab(L).cle_id > l_cle_lse_mapping_tab(R).cle_id)
7741       THEN
7742         W := l_cle_lse_mapping_tab(L).cle_id;
7743         W2 := l_cle_lse_mapping_tab(L).id;
7744         W3 := l_cle_lse_mapping_tab(L).lse_id;
7745         l_cle_lse_mapping_tab(L).cle_id :=l_cle_lse_mapping_tab(R).cle_id;
7746         l_cle_lse_mapping_tab(L).id :=l_cle_lse_mapping_tab(R).id;
7747         l_cle_lse_mapping_tab(L).lse_id :=l_cle_lse_mapping_tab(R).lse_id;
7748         l_cle_lse_mapping_tab(R).cle_id := W;
7749         l_cle_lse_mapping_tab(R).id := W2;
7750         l_cle_lse_mapping_tab(R).lse_id := W3;
7751       END IF;
7752       --if (a(P) > a(R)) then
7753       IF (l_cle_lse_mapping_tab(P).cle_id > l_cle_lse_mapping_tab(R).cle_id)
7754       THEN
7755         W := l_cle_lse_mapping_tab(P).cle_id;
7756         W2 := l_cle_lse_mapping_tab(P).id;
7757         W3 := l_cle_lse_mapping_tab(P).lse_id;
7758         l_cle_lse_mapping_tab(P).cle_id :=l_cle_lse_mapping_tab(R).cle_id;
7759         l_cle_lse_mapping_tab(P).id :=l_cle_lse_mapping_tab(R).id;
7760         l_cle_lse_mapping_tab(P).lse_id :=l_cle_lse_mapping_tab(R).lse_id;
7761         l_cle_lse_mapping_tab(R).cle_id := W;
7762         l_cle_lse_mapping_tab(R).id := W2;
7763         l_cle_lse_mapping_tab(R).lse_id := W3;
7764       END IF;
7765       --X := a(P);
7766       X := l_cle_lse_mapping_tab(P).cle_id;
7767       WHILE 1=1
7768       LOOP    -- until I > J
7769         --while (a(I) < X) loop
7770         WHILE (l_cle_lse_mapping_tab(I).cle_id < X) LOOP
7771           I := I + 1;
7772         END LOOP;
7773         WHILE (X < l_cle_lse_mapping_tab(J).cle_id) LOOP
7774           J := J - 1;
7775         END LOOP;
7776         IF (I <= J) THEN
7777           W := l_cle_lse_mapping_tab(I).cle_id;
7778           W2 := l_cle_lse_mapping_tab(I).id;
7779           W3 := l_cle_lse_mapping_tab(I).lse_id;
7780           l_cle_lse_mapping_tab(I).cle_id :=l_cle_lse_mapping_tab(J).cle_id;
7781           l_cle_lse_mapping_tab(I).id :=l_cle_lse_mapping_tab(J).id;
7782           l_cle_lse_mapping_tab(I).lse_id :=l_cle_lse_mapping_tab(J).lse_id;
7783           l_cle_lse_mapping_tab(J).cle_id := W;
7784           l_cle_lse_mapping_tab(J).id := W2;
7785           l_cle_lse_mapping_tab(J).lse_id := W3;
7786           I := I + 1;
7787           J := J - 1;
7788         END IF;
7789         EXIT WHEN I > J;
7790       END LOOP;
7791       IF (J - L < R - I) THEN
7792         IF (I < R) THEN
7793           --push(I); push(R);
7794           l_stack_index := l_stack_index + 1;
7795           l_stack(l_stack_index) := I;
7796           l_stack_index := l_stack_index + 1;
7797           l_stack(l_stack_index) := R;
7798           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
7799         END IF;
7800         R := J;
7801       ELSE
7802         IF (L < J) THEN
7803           --push(L); push(J);
7804           l_stack_index := l_stack_index + 1;
7805           l_stack(l_stack_index) := L;
7806           l_stack_index := l_stack_index + 1;
7807           l_stack(l_stack_index) := J;
7808           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
7809         END IF;
7810         L := I;
7811       END IF;
7812 
7813       EXIT WHEN (L >= R);
7814     END LOOP;
7815   END LOOP;
7816 
7817   /*print('Now printing cle_lse_mapping_tab...');
7818   for i in 1..N
7819   loop
7820     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);
7821   end loop;*/
7822 
7823 EXCEPTION WHEN OTHERS THEN
7824 
7825   x_return_status := OKL_API.G_RET_STS_ERROR;
7826   /*OKL_API.set_message(p_app_name => 'OKL',
7827                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
7828                       p_token1 => 'ASSET_NUMBER',
7829                       p_token1_value => 'sort_cle_lse_mapping_tab');*/
7830   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7831       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
7832     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_cle_lse_mapping_tab:l_cle_lse_mapping_tab N=' || N || ' ...');
7833   END IF;
7834 
7835   --print array
7836   FOR i IN 1..N
7837   LOOP
7838     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7839           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);
7840     END IF;
7841   END LOOP;
7842 
7843   RAISE OKC_API.G_EXCEPTION_ERROR;
7844 
7845 END;  /* sort_cle_lse_mapping_tab */
7846 
7847 
7848 FUNCTION find_cid_mapping_id(p_id IN NUMBER) RETURN NUMBER IS
7849 hi NUMBER;
7850 lo NUMBER;
7851 m NUMBER;
7852 BEGIN
7853   lo := 1;
7854   hi := l_cid_counter - 1;
7855   WHILE (lo <= hi) LOOP
7856     m := FLOOR((hi + lo)/2);
7857     IF (l_cid_mapping_tab(m).old_id = p_id) THEN
7858       RETURN l_cid_mapping_tab(m).new_id;
7859     ELSIF (l_cid_mapping_tab(m).old_id > p_id) THEN
7860       hi := m - 1;
7861     ELSE
7862       lo := m + 1;
7863     END IF;
7864   END LOOP;
7865   RETURN -1;
7866 END;  /* find_cid_mapping_id */
7867 
7868 PROCEDURE sort_cid_mapping_tab IS
7869   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
7870   --a numtabtype;
7871   l_stack numtabtype;
7872   l_stack_index NUMBER := 0;
7873   N NUMBER;
7874   R NUMBER;
7875   L NUMBER;
7876   P NUMBER;
7877   W NUMBER;
7878   W2 NUMBER;
7879   X NUMBER;
7880   I NUMBER;
7881   J NUMBER;
7882 BEGIN
7883   IF (G_DEBUG_ENABLED = 'Y') THEN
7884     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
7885   END IF;
7886   NULL;
7887 
7888   N := l_cid_counter - 1;
7889   IF (N < 2) THEN
7890     RETURN;
7891   END IF;
7892   l_stack_index := l_stack_index + 1;
7893   l_stack(l_stack_index) := 1;
7894   l_stack_index := l_stack_index + 1;
7895   l_stack(l_stack_index) := N;
7896 
7897   --dbms_output.put_line('l_stack_index=' || l_stack_index);
7898   WHILE l_stack_index > 0
7899   LOOP
7900     R := l_stack(l_stack_index);
7901     l_stack_index := l_stack_index - 1;
7902     L := l_stack(l_stack_index);
7903     l_stack_index := l_stack_index - 1;
7904     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
7905     WHILE 1=1
7906     LOOP -- loop until L >= R
7907       I := L;
7908       J := R;
7909       P := FLOOR((L+R)/2);
7910       --if (a(L) > a(P)) then
7911       IF (l_cid_mapping_tab(L).old_id > l_cid_mapping_tab(P).old_id)
7912       THEN
7913         W := l_cid_mapping_tab(L).old_id;
7914         W2 := l_cid_mapping_tab(L).new_id;
7915         l_cid_mapping_tab(L).old_id :=l_cid_mapping_tab(P).old_id;
7916         l_cid_mapping_tab(L).new_id :=l_cid_mapping_tab(P).new_id;
7917         l_cid_mapping_tab(P).old_id := W;
7918         l_cid_mapping_tab(P).new_id := W2;
7919       END IF;
7920       --if (a(L) > a(R)) then
7921       IF (l_cid_mapping_tab(L).old_id > l_cid_mapping_tab(R).old_id)
7922       THEN
7923         W := l_cid_mapping_tab(L).old_id;
7924         W2 := l_cid_mapping_tab(L).new_id;
7925         l_cid_mapping_tab(L).old_id :=l_cid_mapping_tab(R).old_id;
7926         l_cid_mapping_tab(L).new_id :=l_cid_mapping_tab(R).new_id;
7927         l_cid_mapping_tab(R).old_id := W;
7928         l_cid_mapping_tab(R).new_id := W2;
7929       END IF;
7930       --if (a(P) > a(R)) then
7931       IF (l_cid_mapping_tab(P).old_id > l_cid_mapping_tab(R).old_id)
7932       THEN
7933         W := l_cid_mapping_tab(P).old_id;
7934         W2 := l_cid_mapping_tab(P).new_id;
7935         l_cid_mapping_tab(P).old_id :=l_cid_mapping_tab(R).old_id;
7936         l_cid_mapping_tab(P).new_id :=l_cid_mapping_tab(R).new_id;
7937         l_cid_mapping_tab(R).old_id := W;
7938         l_cid_mapping_tab(R).new_id := W2;
7939       END IF;
7940       --X := a(P);
7941       X := l_cid_mapping_tab(P).old_id;
7942       WHILE 1=1
7943       LOOP    -- until I > J
7944         --while (a(I) < X) loop
7945         WHILE (l_cid_mapping_tab(I).old_id < X) LOOP
7946           I := I + 1;
7947         END LOOP;
7948         WHILE (X < l_cid_mapping_tab(J).old_id) LOOP
7949           J := J - 1;
7950         END LOOP;
7951         IF (I <= J) THEN
7952           W := l_cid_mapping_tab(I).old_id;
7953           W2 := l_cid_mapping_tab(I).new_id;
7954           l_cid_mapping_tab(I).old_id :=l_cid_mapping_tab(J).old_id;
7955           l_cid_mapping_tab(I).new_id :=l_cid_mapping_tab(J).new_id;
7956           l_cid_mapping_tab(J).old_id := W;
7957           l_cid_mapping_tab(J).new_id := W2;
7958           I := I + 1;
7959           J := J - 1;
7960         END IF;
7961         EXIT WHEN I > J;
7962       END LOOP;
7963       IF (J - L < R - I) THEN
7964         IF (I < R) THEN
7965           --push(I); push(R);
7966           l_stack_index := l_stack_index + 1;
7967           l_stack(l_stack_index) := I;
7968           l_stack_index := l_stack_index + 1;
7969           l_stack(l_stack_index) := R;
7970           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
7971         END IF;
7972         R := J;
7973       ELSE
7974         IF (L < J) THEN
7975           --push(L); push(J);
7976           l_stack_index := l_stack_index + 1;
7977           l_stack(l_stack_index) := L;
7978           l_stack_index := l_stack_index + 1;
7979           l_stack(l_stack_index) := J;
7980           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
7981         END IF;
7982         L := I;
7983       END IF;
7984 
7985       EXIT WHEN (L >= R);
7986     END LOOP;
7987   END LOOP;
7988 
7989 EXCEPTION WHEN OTHERS THEN
7990 
7991   x_return_status := OKL_API.G_RET_STS_ERROR;
7992   /*OKL_API.set_message(p_app_name => 'OKL',
7993                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
7994                       p_token1 => 'ASSET_NUMBER',
7995                       p_token1_value => 'sort_cid_mapping_tab');*/
7996     /* DEBUG */
7997   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
7998       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
7999     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_cid_mapping_tab:l_cid_mapping_tab N=' || N || ' ...');
8000   END IF;
8001 
8002   --print array
8003   FOR i IN 1..N
8004   LOOP
8005     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8006           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);
8007     END IF;
8008   END LOOP;
8009 
8010   RAISE OKC_API.G_EXCEPTION_ERROR;
8011 
8012 END;  /* sort_cid_mapping_tab */
8013 
8014 PROCEDURE do_sort IS
8015   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
8016   --a numtabtype;
8017   l_stack numtabtype;
8018   l_stack_index NUMBER := 0;
8019   N NUMBER;
8020   R NUMBER;
8021   L NUMBER;
8022   P NUMBER;
8023   W NUMBER;
8024   W2 NUMBER;
8025   X NUMBER;
8026   I NUMBER;
8027   J NUMBER;
8028 BEGIN
8029   IF (G_DEBUG_ENABLED = 'Y') THEN
8030     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
8031   END IF;
8032   NULL;
8033   /*a(1) := 10;
8034   a(2) := 50;
8035   a(3) := 27;
8036   a(4) := 5;
8037   a(5) := 100;
8038   a(6) := 50;
8039   a(7) := 35;
8040   a(8) := 41;
8041   a(9) := 75;
8042   a(10) := 20;
8043 
8044   N := 10;
8045   */
8046 
8047   N := l_counter - 1;
8048   IF (N < 2) THEN
8049     RETURN;
8050   END IF;
8051   l_stack_index := l_stack_index + 1;
8052   l_stack(l_stack_index) := 1;
8053   l_stack_index := l_stack_index + 1;
8054   l_stack(l_stack_index) := N;
8055 
8056   --dbms_output.put_line('l_stack_index=' || l_stack_index);
8057   WHILE l_stack_index > 0
8058   LOOP
8059     R := l_stack(l_stack_index);
8060     l_stack_index := l_stack_index - 1;
8061     L := l_stack(l_stack_index);
8062     l_stack_index := l_stack_index - 1;
8063     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
8064     WHILE 1=1
8065     LOOP -- loop until L >= R
8066       I := L;
8067       J := R;
8068       P := FLOOR((L+R)/2);
8069       --if (a(L) > a(P)) then
8070       IF (l_orig_system_tab(L).orig_system_id1 > l_orig_system_tab(P).orig_system_id1)
8071       THEN
8072         /*W := a(L);
8073         a(L) := a(P);
8074         a(P) := W;*/
8075 
8076         W := l_orig_system_tab(L).orig_system_id1;
8077         W2 := l_orig_system_tab(L).id;
8078         l_orig_system_tab(L).orig_system_id1 :=l_orig_system_tab(P).orig_system_id1;
8079         l_orig_system_tab(L).id :=l_orig_system_tab(P).id;
8080         l_orig_system_tab(P).orig_system_id1 := W;
8081         l_orig_system_tab(P).id := W2;
8082       END IF;
8083       --if (a(L) > a(R)) then
8084       IF (l_orig_system_tab(L).orig_system_id1 > l_orig_system_tab(R).orig_system_id1)
8085       THEN
8086         /*W := a(L);
8087         a(L) := a(R);
8088         a(R) := W;*/
8089         W := l_orig_system_tab(L).orig_system_id1;
8090         W2 := l_orig_system_tab(L).id;
8091         l_orig_system_tab(L).orig_system_id1 :=l_orig_system_tab(R).orig_system_id1;
8092         l_orig_system_tab(L).id :=l_orig_system_tab(R).id;
8093         l_orig_system_tab(R).orig_system_id1 := W;
8094         l_orig_system_tab(R).id := W2;
8095       END IF;
8096       --if (a(P) > a(R)) then
8097       IF (l_orig_system_tab(P).orig_system_id1 > l_orig_system_tab(R).orig_system_id1)
8098       THEN
8099         /*W := a(P);
8100         a(P) := a(R);
8101         a(R) := W; */
8102         W := l_orig_system_tab(P).orig_system_id1;
8103         W2 := l_orig_system_tab(P).id;
8104         l_orig_system_tab(P).orig_system_id1 :=l_orig_system_tab(R).orig_system_id1;
8105         l_orig_system_tab(P).id :=l_orig_system_tab(R).id;
8106         l_orig_system_tab(R).orig_system_id1 := W;
8107         l_orig_system_tab(R).id := W2;
8108       END IF;
8109       --X := a(P);
8110       X := l_orig_system_tab(P).orig_system_id1;
8111       WHILE 1=1
8112       LOOP    -- until I > J
8113         --while (a(I) < X) loop
8114         WHILE (l_orig_system_tab(I).orig_system_id1 < X) LOOP
8115           I := I + 1;
8116         END LOOP;
8117         WHILE (X < l_orig_system_tab(J).orig_system_id1) LOOP
8118           J := J - 1;
8119         END LOOP;
8120         IF (I <= J) THEN
8121           /*W := a(I);
8122           a(I) := a(J);
8123           a(J) := W;*/
8124           W := l_orig_system_tab(I).orig_system_id1;
8125           W2 := l_orig_system_tab(I).id;
8126           l_orig_system_tab(I).orig_system_id1 :=l_orig_system_tab(J).orig_system_id1;
8127           l_orig_system_tab(I).id :=l_orig_system_tab(J).id;
8128           l_orig_system_tab(J).orig_system_id1 := W;
8129           l_orig_system_tab(J).id := W2;
8130           I := I + 1;
8131           J := J - 1;
8132         END IF;
8133         EXIT WHEN I > J;
8134       END LOOP;
8135       IF (J - L < R - I) THEN
8136         IF (I < R) THEN
8137           --push(I); push(R);
8138           l_stack_index := l_stack_index + 1;
8139           l_stack(l_stack_index) := I;
8140           l_stack_index := l_stack_index + 1;
8141           l_stack(l_stack_index) := R;
8142           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
8143         END IF;
8144         R := J;
8145       ELSE
8146         IF (L < J) THEN
8147           --push(L); push(J);
8148           l_stack_index := l_stack_index + 1;
8149           l_stack(l_stack_index) := L;
8150           l_stack_index := l_stack_index + 1;
8151           l_stack(l_stack_index) := J;
8152           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
8153         END IF;
8154         L := I;
8155       END IF;
8156 
8157       EXIT WHEN (L >= R);
8158     END LOOP;
8159   END LOOP;
8160 
8161 
8162 EXCEPTION WHEN OTHERS THEN
8163 
8164   x_return_status := OKL_API.G_RET_STS_ERROR;
8165   /*OKL_API.set_message(p_app_name => 'OKL',
8166                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
8167                       p_token1 => 'ASSET_NUMBER',
8168                       p_token1_value => 'do_sort');*/
8169     /* DEBUG */
8170   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8171       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
8172     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing do_sort:l_orig_system_tab N=' || N || ' ...');
8173   END IF;
8174 
8175   --print array
8176   FOR i IN 1..N
8177   LOOP
8178     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8179           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);
8180     END IF;
8181   END LOOP;
8182 
8183   RAISE OKC_API.G_EXCEPTION_ERROR;
8184 
8185 END;  /* do_sort */
8186 
8187 FUNCTION find_id(p_id IN NUMBER) RETURN NUMBER IS
8188 hi NUMBER;
8189 lo NUMBER;
8190 m NUMBER;
8191 BEGIN
8192   lo := 1;
8193   hi := l_counter - 1;
8194   WHILE (lo <= hi) LOOP
8195     m := FLOOR((hi + lo)/2);
8196     IF (l_orig_system_tab(m).orig_system_id1 = p_id) THEN
8197       RETURN l_orig_system_tab(m).id;
8198     ELSIF (l_orig_system_tab(m).orig_system_id1 > p_id) THEN
8199       hi := m - 1;
8200     ELSE
8201       lo := m + 1;
8202     END IF;
8203   END LOOP;
8204   RETURN -1;
8205 END;  /* find_id */
8206 
8207 /* AKP To do: Delete this procedure from here.
8208               After the spec in okl_copy_asset_pvt spec has been changed to
8209               expose this function */
8210   FUNCTION generate_asset_number(x_asset_number OUT NOCOPY OKL_TXL_ASSETS_V.ASSET_NUMBER%TYPE)
8211   RETURN VARCHAR2 IS
8212     x_return_status            VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
8213     ln_dummy1                  NUMBER := 0;
8214     ln_dummy2                  NUMBER := 0;
8215     ln_dummy3                  NUMBER := 0;
8216     lv_asset_number            OKX_ASSETS_V.ASSET_NUMBER%TYPE;
8217     G_APP_NAME                    CONSTANT  VARCHAR2(3)   :=  OKL_API.G_APP_NAME;
8218     G_UNEXPECTED_ERROR            CONSTANT  VARCHAR2(200) := 'OKL_CONTRACTS_UNEXP_ERROR';
8219     G_SQLCODE_TOKEN               CONSTANT  VARCHAR2(200) := 'SQLcode';
8220     G_SQLERRM_TOKEN               CONSTANT  VARCHAR2(200) := 'SQLerrm';
8221 
8222     -- cursor to get sequence number for asset number
8223     CURSOR c_asset_no IS
8224     SELECT 'OKL'||OKL_FAN_SEQ.NEXTVAL
8225     FROM dual;
8226 
8227     -- cursor to get check the existence of asset number
8228     CURSOR c_txl_asset_number(p_asset_number OKX_ASSETS_V.ASSET_NUMBER%TYPE)
8229     IS
8230     SELECT 1
8231     FROM DUAL
8232     WHERE EXISTS (SELECT '1'
8233                   FROM OKL_TXL_ASSETS_B
8234                   WHERE asset_number = p_asset_number);
8235 
8236     CURSOR c_okx_asset_lines_v(p_asset_number OKX_ASSETS_V.ASSET_NUMBER%TYPE) IS
8237     SELECT 1
8238     FROM DUAL
8239     WHERE EXISTS (SELECT '1'
8240                   FROM OKX_ASSET_LINES_V
8241                   WHERE asset_number = p_asset_number);
8242 
8243     CURSOR c_okx_assets_v(p_asset_number OKX_ASSETS_V.ASSET_NUMBER%TYPE) IS
8244     SELECT 1
8245     FROM DUAL
8246     WHERE EXISTS (SELECT '1'
8247                   FROM OKX_ASSETS_V
8248                   WHERE asset_number = p_asset_number);
8249 
8250   BEGIN
8251     OPEN  c_asset_no;
8252     FETCH c_asset_no INTO x_asset_number;
8253     IF (c_asset_no%NOTFOUND) THEN
8254       x_return_status := OKC_API.G_RET_STS_ERROR;
8255       OKL_API.SET_MESSAGE(p_app_name 	   => g_app_name,
8256                           p_msg_name	   => g_unexpected_error,
8257                           p_token1	   => g_sqlcode_token,
8258                           p_token1_value => SQLCODE,
8259            			      p_token2	   => g_sqlerrm_token,
8260               			  p_token2_value => SQLERRM);
8261     END IF;
8262     CLOSE c_asset_no;
8263 
8264     LOOP
8265       lv_asset_number := x_asset_number;
8266 
8267       OPEN  c_txl_asset_number(lv_asset_number);
8268       FETCH c_txl_asset_number INTO ln_dummy1;
8269       IF c_txl_asset_number%NOTFOUND THEN
8270         ln_dummy1 := 0;
8271       END IF;
8272       CLOSE c_txl_asset_number;
8273 
8274       OPEN c_okx_asset_lines_v(lv_asset_number);
8275       FETCH c_okx_asset_lines_v INTO ln_dummy2;
8276       IF c_okx_asset_lines_v%NOTFOUND THEN
8277         ln_dummy2 := 0;
8278       END IF;
8279       CLOSE c_okx_asset_lines_v;
8280 
8281       OPEN c_okx_assets_v(lv_asset_number);
8282       FETCH c_okx_assets_v INTO ln_dummy3;
8283       IF c_okx_assets_v%NOTFOUND THEN
8284         ln_dummy3 := 0;
8285       END IF;
8286       CLOSE c_okx_assets_v;
8287 
8288       IF ln_dummy1 = 1 OR
8289          ln_dummy2 = 1 OR
8290          ln_dummy3 = 1 THEN
8291         OPEN  c_asset_no;
8292         FETCH c_asset_no INTO x_asset_number;
8293         IF (c_asset_no%NOTFOUND) THEN
8294           x_return_status := OKC_API.G_RET_STS_ERROR;
8295           OKL_API.SET_MESSAGE(p_app_name 	   => g_app_name,
8296                               p_msg_name	   => g_unexpected_error,
8297                               p_token1	       => g_sqlcode_token,
8298                               p_token1_value   => SQLCODE,
8299            			          p_token2	       => g_sqlerrm_token,
8300                  			  p_token2_value   => SQLERRM);
8301         END IF;
8302         CLOSE c_asset_no;
8303       ELSE
8304         EXIT;
8305       END IF;
8306     END LOOP;
8307 
8308     RETURN x_return_status;
8309   EXCEPTION
8310     WHEN OTHERS THEN
8311       IF c_asset_no%ISOPEN THEN
8312         CLOSE c_asset_no;
8313       END IF;
8314       IF c_txl_asset_number%ISOPEN THEN
8315         CLOSE c_txl_asset_number;
8316       END IF;
8317       IF c_okx_asset_lines_v%ISOPEN THEN
8318         CLOSE c_okx_asset_lines_v;
8319       END IF;
8320       IF c_okx_assets_v%ISOPEN THEN
8321         CLOSE c_okx_assets_v;
8322       END IF;
8323       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
8324       OKL_API.SET_MESSAGE(p_app_name 	 => g_app_name,
8325                           p_msg_name	 => g_unexpected_error,
8326                           p_token1	 => g_sqlcode_token,
8327                           p_token1_value => SQLCODE,
8328 			  p_token2	 => g_sqlerrm_token,
8329 			  p_token2_value => SQLERRM);
8330     RETURN x_return_status;
8331   END generate_asset_number;
8332 
8333 FUNCTION find_cle_line_number2(p_id IN NUMBER) RETURN NUMBER IS
8334 hi NUMBER;
8335 lo NUMBER;
8336 m NUMBER;
8337 l_curr_val NUMBER;
8338 BEGIN
8339   lo := 1;
8340   hi := l_trx_assets_counter6 - 1;
8341   WHILE (lo <= hi) LOOP
8342     m := FLOOR((hi + lo)/2);
8343     IF (l_cle_mapping_tab2(m).old_id = p_id) THEN
8344       l_curr_val := l_cle_mapping_tab2(m).new_id;
8345       l_cle_mapping_tab2(m).new_id := l_curr_val + 1;
8346       RETURN (l_curr_val + 1);
8347     ELSIF (l_cle_mapping_tab2(m).old_id > p_id) THEN
8348       hi := m - 1;
8349     ELSE
8350       lo := m + 1;
8351     END IF;
8352   END LOOP;
8353   RETURN -1;
8354 END;  /* find_cle_line_number2 */
8355 
8356 FUNCTION find_cle_line_number(p_id IN NUMBER) RETURN NUMBER IS
8357 hi NUMBER;
8358 lo NUMBER;
8359 m NUMBER;
8360 l_curr_val NUMBER;
8361 BEGIN
8362   lo := 1;
8363   hi := l_trx_assets_counter4 - 1;
8364   WHILE (lo <= hi) LOOP
8365     m := FLOOR((hi + lo)/2);
8366     IF (l_cle_mapping_tab(m).old_id = p_id) THEN
8367       l_curr_val := l_cle_mapping_tab(m).line_number;
8368       l_cle_mapping_tab(m).line_number := l_curr_val + 1;
8369       RETURN l_curr_val;
8370     ELSIF (l_cle_mapping_tab(m).old_id > p_id) THEN
8371       hi := m - 1;
8372     ELSE
8373       lo := m + 1;
8374     END IF;
8375   END LOOP;
8376   RETURN -1;
8377 END;  /* find_cle_line_number */
8378 
8379 FUNCTION find_cle_mapping_id(p_id IN NUMBER) RETURN NUMBER IS
8380 hi NUMBER;
8381 lo NUMBER;
8382 m NUMBER;
8383 BEGIN
8384   lo := 1;
8385   hi := l_trx_assets_counter4 - 1;
8386   WHILE (lo <= hi) LOOP
8387     m := FLOOR((hi + lo)/2);
8388     IF (l_cle_mapping_tab(m).old_id = p_id) THEN
8389       RETURN l_cle_mapping_tab(m).new_id;
8390     ELSIF (l_cle_mapping_tab(m).old_id > p_id) THEN
8391       hi := m - 1;
8392     ELSE
8393       lo := m + 1;
8394     END IF;
8395   END LOOP;
8396   RETURN -1;
8397 END;  /* find_cle_mapping_id */
8398 
8399 PROCEDURE sort_cle_mapping_tab IS
8400   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
8401   --a numtabtype;
8402   l_stack numtabtype;
8403   l_stack_index NUMBER := 0;
8404   N NUMBER;
8405   R NUMBER;
8406   L NUMBER;
8407   P NUMBER;
8408   W NUMBER;
8409   W2 NUMBER;
8410   X NUMBER;
8411   I NUMBER;
8412   J NUMBER;
8413 BEGIN
8414   IF (G_DEBUG_ENABLED = 'Y') THEN
8415     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
8416   END IF;
8417   NULL;
8418 
8419   N := l_trx_assets_counter4 - 1;
8420   IF (N < 2) THEN
8421     RETURN;
8422   END IF;
8423   l_stack_index := l_stack_index + 1;
8424   l_stack(l_stack_index) := 1;
8425   l_stack_index := l_stack_index + 1;
8426   l_stack(l_stack_index) := N;
8427 
8428   --dbms_output.put_line('l_stack_index=' || l_stack_index);
8429   WHILE l_stack_index > 0
8430   LOOP
8431     R := l_stack(l_stack_index);
8432     l_stack_index := l_stack_index - 1;
8433     L := l_stack(l_stack_index);
8434     l_stack_index := l_stack_index - 1;
8435     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
8436     WHILE 1=1
8437     LOOP -- loop until L >= R
8438       I := L;
8439       J := R;
8440       P := FLOOR((L+R)/2);
8441       --if (a(L) > a(P)) then
8442       IF (l_cle_mapping_tab(L).old_id > l_cle_mapping_tab(P).old_id)
8443       THEN
8444         W := l_cle_mapping_tab(L).old_id;
8445         W2 := l_cle_mapping_tab(L).new_id;
8446         l_cle_mapping_tab(L).old_id :=l_cle_mapping_tab(P).old_id;
8447         l_cle_mapping_tab(L).new_id :=l_cle_mapping_tab(P).new_id;
8448         l_cle_mapping_tab(P).old_id := W;
8449         l_cle_mapping_tab(P).new_id := W2;
8450       END IF;
8451       --if (a(L) > a(R)) then
8452       IF (l_cle_mapping_tab(L).old_id > l_cle_mapping_tab(R).old_id)
8453       THEN
8454         W := l_cle_mapping_tab(L).old_id;
8455         W2 := l_cle_mapping_tab(L).new_id;
8456         l_cle_mapping_tab(L).old_id :=l_cle_mapping_tab(R).old_id;
8457         l_cle_mapping_tab(L).new_id :=l_cle_mapping_tab(R).new_id;
8458         l_cle_mapping_tab(R).old_id := W;
8459         l_cle_mapping_tab(R).new_id := W2;
8460       END IF;
8461       --if (a(P) > a(R)) then
8462       IF (l_cle_mapping_tab(P).old_id > l_cle_mapping_tab(R).old_id)
8463       THEN
8464         W := l_cle_mapping_tab(P).old_id;
8465         W2 := l_cle_mapping_tab(P).new_id;
8466         l_cle_mapping_tab(P).old_id :=l_cle_mapping_tab(R).old_id;
8467         l_cle_mapping_tab(P).new_id :=l_cle_mapping_tab(R).new_id;
8468         l_cle_mapping_tab(R).old_id := W;
8469         l_cle_mapping_tab(R).new_id := W2;
8470       END IF;
8471       --X := a(P);
8472       X := l_cle_mapping_tab(P).old_id;
8473       WHILE 1=1
8474       LOOP    -- until I > J
8475         --while (a(I) < X) loop
8476         WHILE (l_cle_mapping_tab(I).old_id < X) LOOP
8477           I := I + 1;
8478         END LOOP;
8479         WHILE (X < l_cle_mapping_tab(J).old_id) LOOP
8480           J := J - 1;
8481         END LOOP;
8482         IF (I <= J) THEN
8483           W := l_cle_mapping_tab(I).old_id;
8484           W2 := l_cle_mapping_tab(I).new_id;
8485           l_cle_mapping_tab(I).old_id :=l_cle_mapping_tab(J).old_id;
8486           l_cle_mapping_tab(I).new_id :=l_cle_mapping_tab(J).new_id;
8487           l_cle_mapping_tab(J).old_id := W;
8488           l_cle_mapping_tab(J).new_id := W2;
8489           I := I + 1;
8490           J := J - 1;
8491         END IF;
8492         EXIT WHEN I > J;
8493       END LOOP;
8494       IF (J - L < R - I) THEN
8495         IF (I < R) THEN
8496           --push(I); push(R);
8497           l_stack_index := l_stack_index + 1;
8498           l_stack(l_stack_index) := I;
8499           l_stack_index := l_stack_index + 1;
8500           l_stack(l_stack_index) := R;
8501           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
8502         END IF;
8503         R := J;
8504       ELSE
8505         IF (L < J) THEN
8506           --push(L); push(J);
8507           l_stack_index := l_stack_index + 1;
8508           l_stack(l_stack_index) := L;
8509           l_stack_index := l_stack_index + 1;
8510           l_stack(l_stack_index) := J;
8511           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
8512         END IF;
8513         L := I;
8514       END IF;
8515 
8516       EXIT WHEN (L >= R);
8517     END LOOP;
8518   END LOOP;
8519 
8520   /*for i in 1..N
8521   loop
8522     print('l_cle_mapping_tab('||i||')=' || l_cle_mapping_tab(i).old_id || ':' || l_cle_mapping_tab(i).new_id);
8523   end loop; */
8524 
8525 EXCEPTION WHEN OTHERS THEN
8526 
8527   x_return_status := OKL_API.G_RET_STS_ERROR;
8528   /*OKL_API.set_message(p_app_name => 'OKL',
8529                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
8530                       p_token1 => 'ASSET_NUMBER',
8531                       p_token1_value => 'sort_cle_mapping_tab');*/
8532     /* DEBUG */
8533   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8534       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
8535     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_cle_mapping_tab:l_cle_mapping_tab N=' || N || ' ...');
8536   END IF;
8537   --print array
8538   FOR i IN 1..N
8539   LOOP
8540     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8541           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);
8542     END IF;
8543   END LOOP;
8544 
8545   RAISE OKC_API.G_EXCEPTION_ERROR;
8546 
8547 END;  /* sort_cle_mapping_tab */
8548 
8549 
8550 FUNCTION find_aid_mapping_id(p_id IN VARCHAR2) RETURN VARCHAR2 IS
8551 hi NUMBER;
8552 lo NUMBER;
8553 m NUMBER;
8554 p VARCHAR2(2) := '-1';
8555 BEGIN
8556   lo := 1;
8557   hi := l_asset_counter - 1;
8558   WHILE (lo <= hi) LOOP
8559     m := FLOOR((hi + lo)/2);
8560     IF (l_aid_mapping_tab(m).old_id = p_id) THEN
8561       RETURN l_aid_mapping_tab(m).new_id;
8562     ELSIF (l_aid_mapping_tab(m).old_id > p_id) THEN
8563       hi := m - 1;
8564     ELSE
8565       lo := m + 1;
8566     END IF;
8567   END LOOP;
8568   RETURN p;
8569 END;  /* find_aid_mapping_id */
8570 
8571 PROCEDURE sort_aid_mapping_tab IS
8572   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
8573   --a numtabtype;
8574   l_stack numtabtype;
8575   l_stack_index NUMBER := 0;
8576   N NUMBER;
8577   R NUMBER;
8578   L NUMBER;
8579   P NUMBER;
8580 
8581   W VARCHAR2(150);
8582   W2 VARCHAR2(150);
8583   X VARCHAR2(150);
8584   I NUMBER;
8585   J NUMBER;
8586 BEGIN
8587   IF (G_DEBUG_ENABLED = 'Y') THEN
8588     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
8589   END IF;
8590   NULL;
8591 
8592   N := l_asset_counter - 1;
8593   IF (N < 2) THEN
8594     RETURN;
8595   END IF;
8596   l_stack_index := l_stack_index + 1;
8597   l_stack(l_stack_index) := 1;
8598   l_stack_index := l_stack_index + 1;
8599   l_stack(l_stack_index) := N;
8600 
8601   --dbms_output.put_line('l_stack_index=' || l_stack_index);
8602   WHILE l_stack_index > 0
8603   LOOP
8604     R := l_stack(l_stack_index);
8605     l_stack_index := l_stack_index - 1;
8606     L := l_stack(l_stack_index);
8607     l_stack_index := l_stack_index - 1;
8608     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
8609     WHILE 1=1
8610     LOOP -- loop until L >= R
8611       I := L;
8612       J := R;
8613       P := FLOOR((L+R)/2);
8614       --if (a(L) > a(P)) then
8615       IF (l_aid_mapping_tab(L).old_id > l_aid_mapping_tab(P).old_id)
8616       THEN
8617         W := l_aid_mapping_tab(L).old_id;
8618         W2 := l_aid_mapping_tab(L).new_id;
8619         l_aid_mapping_tab(L).old_id :=l_aid_mapping_tab(P).old_id;
8620         l_aid_mapping_tab(L).new_id :=l_aid_mapping_tab(P).new_id;
8621         l_aid_mapping_tab(P).old_id := W;
8622         l_aid_mapping_tab(P).new_id := W2;
8623       END IF;
8624       --if (a(L) > a(R)) then
8625       IF (l_aid_mapping_tab(L).old_id > l_aid_mapping_tab(R).old_id)
8626       THEN
8627         W := l_aid_mapping_tab(L).old_id;
8628         W2 := l_aid_mapping_tab(L).new_id;
8629         l_aid_mapping_tab(L).old_id :=l_aid_mapping_tab(R).old_id;
8630         l_aid_mapping_tab(L).new_id :=l_aid_mapping_tab(R).new_id;
8631         l_aid_mapping_tab(R).old_id := W;
8632         l_aid_mapping_tab(R).new_id := W2;
8633       END IF;
8634       --if (a(P) > a(R)) then
8635       IF (l_aid_mapping_tab(P).old_id > l_aid_mapping_tab(R).old_id)
8636       THEN
8637         W := l_aid_mapping_tab(P).old_id;
8638         W2 := l_aid_mapping_tab(P).new_id;
8639         l_aid_mapping_tab(P).old_id :=l_aid_mapping_tab(R).old_id;
8640         l_aid_mapping_tab(P).new_id :=l_aid_mapping_tab(R).new_id;
8641         l_aid_mapping_tab(R).old_id := W;
8642         l_aid_mapping_tab(R).new_id := W2;
8643       END IF;
8644       --X := a(P);
8645       X := l_aid_mapping_tab(P).old_id;
8646       WHILE 1=1
8647       LOOP    -- until I > J
8648         --while (a(I) < X) loop
8649         WHILE (l_aid_mapping_tab(I).old_id < X) LOOP
8650           I := I + 1;
8651         END LOOP;
8652         WHILE (X < l_aid_mapping_tab(J).old_id) LOOP
8653           J := J - 1;
8654         END LOOP;
8655         IF (I <= J) THEN
8656           W := l_aid_mapping_tab(I).old_id;
8657           W2 := l_aid_mapping_tab(I).new_id;
8658           l_aid_mapping_tab(I).old_id :=l_aid_mapping_tab(J).old_id;
8659           l_aid_mapping_tab(I).new_id :=l_aid_mapping_tab(J).new_id;
8660           l_aid_mapping_tab(J).old_id := W;
8661           l_aid_mapping_tab(J).new_id := W2;
8662           I := I + 1;
8663           J := J - 1;
8664         END IF;
8665         EXIT WHEN I > J;
8666       END LOOP;
8667       IF (J - L < R - I) THEN
8668         IF (I < R) THEN
8669           --push(I); push(R);
8670           l_stack_index := l_stack_index + 1;
8671           l_stack(l_stack_index) := I;
8672           l_stack_index := l_stack_index + 1;
8673           l_stack(l_stack_index) := R;
8674           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
8675         END IF;
8676         R := J;
8677       ELSE
8678         IF (L < J) THEN
8679           --push(L); push(J);
8680           l_stack_index := l_stack_index + 1;
8681           l_stack(l_stack_index) := L;
8682           l_stack_index := l_stack_index + 1;
8683           l_stack(l_stack_index) := J;
8684           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
8685         END IF;
8686         L := I;
8687       END IF;
8688 
8689       EXIT WHEN (L >= R);
8690     END LOOP;
8691   END LOOP;
8692 
8693 EXCEPTION WHEN OTHERS THEN
8694 
8695   x_return_status := OKL_API.G_RET_STS_ERROR;
8696   /*OKL_API.set_message(p_app_name => 'OKL',
8697                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
8698                       p_token1 => 'ASSET_NUMBER',
8699                       p_token1_value => 'sort_aid_mapping_tab');*/
8700     /* DEBUG */
8701   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8702       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
8703     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_aid_mapping_tab:l_aid_mapping_tab N=' || N || ' ...');
8704   END IF;
8705 
8706   --print array
8707   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8708       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'In sort_aid_mapping_tab:N='|| N);
8709   END IF;
8710   FOR i IN 1..N
8711   LOOP
8712     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8713           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);
8714     END IF;
8715   END LOOP;
8716 
8717   RAISE OKC_API.G_EXCEPTION_ERROR;
8718 
8719 END;  /* sort_aid_mapping_tab */
8720 
8721 PROCEDURE do_id_mapping_sort IS
8722   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
8723   --a numtabtype;
8724   l_stack numtabtype;
8725   l_stack_index NUMBER := 0;
8726   N NUMBER;
8727   R NUMBER;
8728   L NUMBER;
8729   P NUMBER;
8730   W NUMBER;
8731   W2 NUMBER;
8732   X NUMBER;
8733   I NUMBER;
8734   J NUMBER;
8735 BEGIN
8736   IF (G_DEBUG_ENABLED = 'Y') THEN
8737     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
8738   END IF;
8739   NULL;
8740   /*a(1) := 10;
8741   a(2) := 50;
8742   a(3) := 27;
8743   a(4) := 5;
8744   a(5) := 100;
8745   a(6) := 50;
8746   a(7) := 35;
8747   a(8) := 41;
8748   a(9) := 75;
8749   a(10) := 20;
8750 
8751   N := 10;
8752   */
8753 
8754   N := l_counter - 1;
8755   IF (N < 2) THEN
8756     RETURN;
8757   END IF;
8758   l_stack_index := l_stack_index + 1;
8759   l_stack(l_stack_index) := 1;
8760   l_stack_index := l_stack_index + 1;
8761   l_stack(l_stack_index) := N;
8762 
8763   --dbms_output.put_line('l_stack_index=' || l_stack_index);
8764   WHILE l_stack_index > 0
8765   LOOP
8766     R := l_stack(l_stack_index);
8767     l_stack_index := l_stack_index - 1;
8768     L := l_stack(l_stack_index);
8769     l_stack_index := l_stack_index - 1;
8770     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
8771     WHILE 1=1
8772     LOOP -- loop until L >= R
8773       I := L;
8774       J := R;
8775       P := FLOOR((L+R)/2);
8776       --if (a(L) > a(P)) then
8777       IF (l_id_mapping_tab(L).old_id > l_id_mapping_tab(P).old_id)
8778       THEN
8779         /*W := a(L);
8780         a(L) := a(P);
8781         a(P) := W;*/
8782 
8783         W := l_id_mapping_tab(L).old_id;
8784         W2 := l_id_mapping_tab(L).new_id;
8785         l_id_mapping_tab(L).old_id :=l_id_mapping_tab(P).old_id;
8786         l_id_mapping_tab(L).new_id :=l_id_mapping_tab(P).new_id;
8787         l_id_mapping_tab(P).old_id := W;
8788         l_id_mapping_tab(P).new_id := W2;
8789       END IF;
8790       --if (a(L) > a(R)) then
8791       IF (l_id_mapping_tab(L).old_id > l_id_mapping_tab(R).old_id)
8792       THEN
8793         /*W := a(L);
8794         a(L) := a(R);
8795         a(R) := W;*/
8796         W := l_id_mapping_tab(L).old_id;
8797         W2 := l_id_mapping_tab(L).new_id;
8798         l_id_mapping_tab(L).old_id :=l_id_mapping_tab(R).old_id;
8799         l_id_mapping_tab(L).new_id :=l_id_mapping_tab(R).new_id;
8800         l_id_mapping_tab(R).old_id := W;
8801         l_id_mapping_tab(R).new_id := W2;
8802       END IF;
8803       --if (a(P) > a(R)) then
8804       IF (l_id_mapping_tab(P).old_id > l_id_mapping_tab(R).old_id)
8805       THEN
8806         /*W := a(P);
8807         a(P) := a(R);
8808         a(R) := W; */
8809         W := l_id_mapping_tab(P).old_id;
8810         W2 := l_id_mapping_tab(P).new_id;
8811         l_id_mapping_tab(P).old_id :=l_id_mapping_tab(R).old_id;
8812         l_id_mapping_tab(P).new_id :=l_id_mapping_tab(R).new_id;
8813         l_id_mapping_tab(R).old_id := W;
8814         l_id_mapping_tab(R).new_id := W2;
8815       END IF;
8816       --X := a(P);
8817       X := l_id_mapping_tab(P).old_id;
8818       WHILE 1=1
8819       LOOP    -- until I > J
8820         --while (a(I) < X) loop
8821         WHILE (l_id_mapping_tab(I).old_id < X) LOOP
8822           I := I + 1;
8823         END LOOP;
8824         WHILE (X < l_id_mapping_tab(J).old_id) LOOP
8825           J := J - 1;
8826         END LOOP;
8827         IF (I <= J) THEN
8828           /*W := a(I);
8829           a(I) := a(J);
8830           a(J) := W;*/
8831           W := l_id_mapping_tab(I).old_id;
8832           W2 := l_id_mapping_tab(I).new_id;
8833           l_id_mapping_tab(I).old_id :=l_id_mapping_tab(J).old_id;
8834           l_id_mapping_tab(I).new_id :=l_id_mapping_tab(J).new_id;
8835           l_id_mapping_tab(J).old_id := W;
8836           l_id_mapping_tab(J).new_id := W2;
8837           I := I + 1;
8838           J := J - 1;
8839         END IF;
8840         EXIT WHEN I > J;
8841       END LOOP;
8842       IF (J - L < R - I) THEN
8843         IF (I < R) THEN
8844           --push(I); push(R);
8845           l_stack_index := l_stack_index + 1;
8846           l_stack(l_stack_index) := I;
8847           l_stack_index := l_stack_index + 1;
8848           l_stack(l_stack_index) := R;
8849           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
8850         END IF;
8851         R := J;
8852       ELSE
8853         IF (L < J) THEN
8854           --push(L); push(J);
8855           l_stack_index := l_stack_index + 1;
8856           l_stack(l_stack_index) := L;
8857           l_stack_index := l_stack_index + 1;
8858           l_stack(l_stack_index) := J;
8859           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
8860         END IF;
8861         L := I;
8862       END IF;
8863 
8864       EXIT WHEN (L >= R);
8865     END LOOP;
8866   END LOOP;
8867 
8868 EXCEPTION WHEN OTHERS THEN
8869 
8870   x_return_status := OKL_API.G_RET_STS_ERROR;
8871   /*OKL_API.set_message(p_app_name => 'OKL',
8872                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
8873                       p_token1 => 'ASSET_NUMBER',
8874                       p_token1_value => 'do_id_mapping_sort');*/
8875     /* DEBUG */
8876   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8877       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
8878     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing do_id_mapping_sort:l_id_mapping_tab N=' || N || ' ...');
8879   END IF;
8880 
8881   --print array
8882   FOR i IN 1..N
8883   LOOP
8884     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
8885           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);
8886     END IF;
8887   END LOOP;
8888 
8889   RAISE OKC_API.G_EXCEPTION_ERROR;
8890 
8891 END;  /* do_id_mapping_sort */
8892 
8893 FUNCTION find_mapping_id(p_id IN NUMBER) RETURN NUMBER IS
8894 hi NUMBER;
8895 lo NUMBER;
8896 m NUMBER;
8897 BEGIN
8898   lo := 1;
8899   hi := l_counter - 1;
8900   WHILE (lo <= hi) LOOP
8901     m := FLOOR((hi + lo)/2);
8902     IF (l_id_mapping_tab(m).old_id = p_id) THEN
8903       RETURN l_id_mapping_tab(m).new_id;
8904     ELSIF (l_id_mapping_tab(m).old_id > p_id) THEN
8905       hi := m - 1;
8906     ELSE
8907       lo := m + 1;
8908     END IF;
8909   END LOOP;
8910   RETURN -1;
8911 END;  /* find_mapping_id */
8912 
8913 PROCEDURE insert_okc_k_lines_tl(p_old_id IN okc_k_lines_b.id%TYPE) IS
8914 CURSOR c5(p_id NUMBER) IS
8915 SELECT
8916        a.id, a.LANGUAGE, a.source_lang,
8917        a.sfwt_flag, a.name, a.comments,
8918        a.item_description, a.block23text, a.created_by,
8919        a.creation_date, a.last_updated_by, a.last_update_date,
8920        a.last_update_login, a.security_group_id, a.oke_boe_description,
8921        a.cognomen, b.lse_id, b.sts_code, c.fee_type
8922 --avsingh: Bug 5710213: start
8923         , lsb.lty_code
8924 --avsingh: Bug 5710213: end
8925 FROM okc_k_lines_tl a,
8926      okc_k_lines_b b,
8927      okl_k_lines c,
8928      fnd_languages d
8929 --avsingh: Bug 5710213: start
8930     , okc_line_styles_b lsb
8931 --avsingh: Bug 5710213: end
8932 WHERE a.id = b.id
8933 AND   b.id = c.id
8934 AND   a.id = c.id
8935 AND   b.dnz_chr_id = p_id
8936 AND   a.LANGUAGE = d.language_code
8937 AND   d.installed_flag = 'B'
8938 --avsingh: Bug 5710213: start
8939     AND b.lse_id = lsb.id
8940 --avsingh: Bug 5710213: end
8941 ;
8942 
8943 
8944 CURSOR c6 IS
8945 SELECT language_code
8946 FROM   fnd_languages
8947 WHERE installed_flag IN ('B', 'I');
8948 
8949 CURSOR c7(p_id NUMBER) IS
8950 SELECT DISTINCT a.name
8951 FROM   okc_k_lines_tl a,
8952        okc_k_lines_b b
8953 WHERE  a.id = b.id
8954 AND    b.dnz_chr_id = p_id
8955 -- gboomina Bug 6353660 - Start
8956 -- excluding NULL values to get valid asset numbers
8957 -- which is used down the line to replace asset numbers.
8958 AND    a.name IS NOT NULL
8959 -- gboomina Bug 6353660 - End
8960 AND    a.LANGUAGE = USERENV('LANG');
8961 --and    b.lse_id in (33, 42)
8962 --and    p_trans_type not in ('CRB', 'CRL', 'CSP', 'CRV', 'ALI');
8963 
8964 
8965     l_olid_tab2 l_olid_type;
8966     l_ollanguage_tab2 l_ollanguage_type;
8967     l_olsource_lang_tab2 l_olsource_lang_type;
8968     l_olsfwt_flag_tab2 l_olsfwt_flag_type;
8969     l_olname_tab2 l_olname_type;
8970     l_olcomments_tab2 l_olcomments_type;
8971     l_olitem_description_tab2 l_olitem_description_type;
8972     l_olblock23text_tab2 l_olblock23text_type;
8973     l_olcreated_by_tab2 l_olcreated_by_type;
8974     l_olcreation_date_tab2 l_olcreation_date_type;
8975     l_ollast_updated_by_tab2 l_ollast_updated_by_type;
8976     l_ollast_update_date_tab2 l_ollast_update_date_type;
8977     l_ollast_update_login_tab2 l_ollast_update_login_type;
8978     l_olsecurity_group_id_tab2 l_olsecurity_group_id_type;
8979     l_oloke_boe_description_tab2 l_oloke_boe_description_type;
8980     l_olcognomen_tab2 l_olcognomen_type;
8981 
8982     l_ollse_id_tab2 l_lse_id_type;
8983 --avsingh: Bug 5710213: start
8984     l_ollty_code_tab2 l_lty_code_type;
8985 --avsingh: Bug 5710213: end
8986     l_olsts_code_tab2 l_sts_code_type;
8987     l_olfee_type_tab2 l_fee_type_type;
8988 
8989   l_olname_tab3 l_olname_type;
8990   l_ret_status VARCHAR2(30);
8991   l_new_asset_name VARCHAR2(150);
8992   l_new_id NUMBER;
8993 
8994 BEGIN
8995   OPEN c5(p_old_id);
8996   LOOP
8997     FETCH c5 bulk collect INTO
8998      l_olid_tab2, l_ollanguage_tab2, l_olsource_lang_tab2,
8999      l_olsfwt_flag_tab2, l_olname_tab2, l_olcomments_tab2,
9000      l_olitem_description_tab2, l_olblock23text_tab2, l_olcreated_by_tab2,
9001      l_olcreation_date_tab2, l_ollast_updated_by_tab2, l_ollast_update_date_tab2,
9002      l_ollast_update_login_tab2, l_olsecurity_group_id_tab2, l_oloke_boe_description_tab2,
9003      l_olcognomen_tab2, l_ollse_id_tab2, l_olsts_code_tab2, l_olfee_type_tab2
9004 --avsingh: Bug 5710213: start
9005     , l_ollty_code_tab2
9006 --avsingh: Bug 5710213: end
9007     limit G_BULK_SIZE;
9008     EXIT WHEN l_olid_tab2.COUNT = 0;
9009     FOR i IN l_olid_tab2.first..l_olid_tab2.last
9010     LOOP
9011       --if ( (l_olfee_type_tab2(i) = 'ROLLOVER' and
9012                 --l_ollse_id_tab2(i) = 52 and
9013                 --p_trans_type = 'CFA') or
9014              --(l_olsts_code_tab2(i) = 'ABANDONED') or
9015              --(l_ollse_id_tab2(i) = 47) ) then
9016           --null;
9017       --else
9018         l_olid_tab(l_okc_k_lines_tl_counter) := l_olid_tab2(i);
9019         -- Change id
9020         l_new_id := find_mapping_id(l_olid_tab(l_okc_k_lines_tl_counter));
9021         --print('okc_k_lines_tl:l_new_id=' || l_new_id);
9022         l_olid_tab(l_okc_k_lines_tl_counter) := l_new_id;
9023 
9024         l_ollanguage_tab(l_okc_k_lines_tl_counter) := l_ollanguage_tab2(i);
9025         l_olsource_lang_tab(l_okc_k_lines_tl_counter) := l_olsource_lang_tab2(i);
9026         l_olsfwt_flag_tab(l_okc_k_lines_tl_counter) := l_olsfwt_flag_tab2(i);
9027         l_olname_tab(l_okc_k_lines_tl_counter) := l_olname_tab2(i);
9028         l_olcomments_tab(l_okc_k_lines_tl_counter) := l_olcomments_tab2(i);
9029         l_olitem_description_tab(l_okc_k_lines_tl_counter) := l_olitem_description_tab2(i);
9030         l_olblock23text_tab(l_okc_k_lines_tl_counter) := l_olblock23text_tab2(i);
9031         l_olcreated_by_tab(l_okc_k_lines_tl_counter) := l_olcreated_by_tab2(i);
9032         l_olcreation_date_tab(l_okc_k_lines_tl_counter) := l_olcreation_date_tab2(i);
9033         l_ollast_updated_by_tab(l_okc_k_lines_tl_counter) := l_ollast_updated_by_tab2(i);
9034         l_ollast_update_date_tab(l_okc_k_lines_tl_counter) := l_ollast_update_date_tab2(i);
9035         l_ollast_update_login_tab(l_okc_k_lines_tl_counter) := l_ollast_update_login_tab2(i);
9036         l_olsecurity_group_id_tab(l_okc_k_lines_tl_counter) := l_olsecurity_group_id_tab2(i);
9037         l_oloke_boe_description_tab(l_okc_k_lines_tl_counter) := l_oloke_boe_description_tab2(i);
9038         l_olcognomen_tab(l_okc_k_lines_tl_counter) := l_olcognomen_tab2(i);
9039 
9040         l_ollse_id_tab(l_okc_k_lines_tl_counter) := l_ollse_id_tab2(i);
9041 --avsingh: Bug 5710213: start
9042         l_ollty_code_tab(l_okc_k_lines_tl_counter) :=  l_ollty_code_tab2(i);
9043 --avsingh: Bug 5710213: end
9044         l_olsts_code_tab(l_okc_k_lines_tl_counter) := l_olsts_code_tab2(i);
9045         l_olfee_type_tab(l_okc_k_lines_tl_counter) := l_olfee_type_tab2(i);
9046 
9047         l_okc_k_lines_tl_counter := l_okc_k_lines_tl_counter + 1;
9048 
9049       --end if;
9050     END LOOP;
9051   END LOOP;
9052   CLOSE c5;
9053 
9054   IF (l_okc_k_lines_tl_counter < 2) THEN
9055     RETURN;
9056   END IF;
9057 
9058   --print('Opening c7 with p_old_id=' || p_old_id);
9059   OPEN c7(p_old_id);
9060   LOOP
9061     FETCH c7 bulk collect INTO
9062       l_olname_tab3
9063     limit G_BULK_SIZE;
9064     --print('l_olname_tab3.count=' || l_olname_tab3.count);
9065     EXIT WHEN l_olname_tab3.COUNT = 0;
9066     FOR i IN l_olname_tab3.first..l_olname_tab3.last
9067     LOOP
9068       -- Populate l_aid_mapping_tab
9069       l_aid_mapping_tab(l_asset_counter).old_id := l_olname_tab3(i);
9070       l_ret_status := generate_asset_number(l_new_asset_name);
9071       IF l_ret_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9072         RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9073       ELSIF l_ret_status = OKL_API.G_RET_STS_ERROR THEN
9074         RAISE OKL_API.G_EXCEPTION_ERROR;
9075       END IF;
9076 
9077       l_aid_mapping_tab(l_asset_counter).new_id := l_new_asset_name;
9078 
9079       l_asset_counter := l_asset_counter + 1;
9080     END LOOP;
9081   END LOOP;
9082   CLOSE c7;
9083   sort_aid_mapping_tab;
9084   /* Debug only */
9085   /*
9086   print('Printing insert_okc_k_lines_tl:l_olid_tab ...');
9087   for i in l_olid_tab.first..l_olid_tab.last
9088   loop
9089     print('l_olid_tab('||i||')=' || l_olid_tab(i));
9090     print('l_olfee_type_tab('||i||')=' || l_olfee_type_tab(i));
9091     print('l_ollse_id_tab('||i||')=' || l_ollse_id_tab(i));
9092     print('l_olsts_code_tab('||i||')=' || l_olsts_code_tab(i));
9093     print('l_olsource_lang_tab('||i||')=' || l_olsource_lang_tab(i));
9094     print('l_olname_tab('||i||')=' || l_olname_tab(i));
9095     print('l_olcomments_tab('||i||')=' || l_olcomments_tab(i));
9096     print('l_olitem_description_tab('||i||')=' || l_olitem_description_tab(i));
9097     print('l_olblock23text_tab('||i||')=' || l_olblock23text_tab(i));
9098     print('l_olsecurity_group_id_tab('||i||')=' || l_olsecurity_group_id_tab(i));
9099     print('l_oloke_boe_description_tab('||i||')=' || l_oloke_boe_description_tab(i));
9100     print('l_olcognomen_tab('||i||')=' || l_olcognomen_tab(i));
9101   end loop;
9102   */
9103 
9104   -- Now replace name
9105   IF (l_olid_tab.COUNT > 0) THEN
9106   FOR i IN l_olid_tab.first..l_olid_tab.last
9107   LOOP
9108 --avsingh: Bug 5710213: start
9109     IF ( l_ollty_code_tab(i) IN ('FREE_FORM1', 'FIXED_ASSET', 'LINK_FEE_ASSET', 'LINK_SERV_ASSET' ) AND -- added by zrehman for Bug#5920670
9110     --IF ( l_ollse_id_tab(i) IN (33, 42) AND
9111 --avsingh: Bug 5710213: end
9112          p_trans_type NOT IN ('CRB', 'CRL', 'CSP', 'CRV', 'ALI')
9113         ) THEN
9114       l_new_asset_name := find_aid_mapping_id(l_olname_tab(i));
9115       IF (l_new_asset_name <> '-1') THEN
9116         l_olname_tab(i) := l_new_asset_name;
9117       END IF;
9118     END IF;
9119   END LOOP;
9120   END IF;
9121 
9122   IF (l_okc_k_lines_tl_counter > 1) THEN
9123   FOR r IN c6
9124   LOOP
9125     --print('r.language_code=' || r.language_code);
9126     forall i IN l_olid_tab.first..l_olid_tab.last
9127       INSERT INTO okc_k_lines_tl (
9128              id, LANGUAGE, source_lang,
9129              sfwt_flag, name, comments,
9130              item_description, block23text, created_by,
9131              creation_date, last_updated_by, last_update_date,
9132              last_update_login, security_group_id, oke_boe_description,
9133              cognomen
9134           ) VALUES (
9135            l_olid_tab(i), r.language_code, l_olsource_lang_tab(i),
9136            'N', l_olname_tab(i), l_olcomments_tab(i),
9137            l_olitem_description_tab(i), l_olblock23text_tab(i), l_created_by,
9138            SYSDATE,l_last_updated_by,SYSDATE,
9139            l_last_update_login,l_olsecurity_group_id_tab(i),l_oloke_boe_description_tab(i),
9140            l_olcognomen_tab(i)
9141           );
9142   END LOOP;
9143   END IF;
9144 
9145 EXCEPTION WHEN OTHERS THEN
9146 
9147   x_return_status := OKL_API.G_RET_STS_ERROR;
9148   /*OKL_API.set_message(p_app_name => 'OKL',
9149                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
9150                       p_token1 => 'ASSET_NUMBER',
9151                       p_token1_value => 'insert_okc_k_lines_tl');*/
9152     /* DEBUG */
9153   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9154       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
9155     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 || ' ...');
9156   END IF;
9157   IF (l_olid_tab.COUNT > 0) THEN
9158   FOR i IN l_olid_tab.first..l_olid_tab.last
9159   LOOP
9160     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9161           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_olid_tab('||i||')=' || l_olid_tab(i));
9162       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_olsource_lang_tab('||i||')=' || l_olsource_lang_tab(i));
9163       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_olname_tab('||i||')=' || l_olname_tab(i));
9164       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_olcomments_tab('||i||')=' || l_olcomments_tab(i));
9165       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_olitem_description_tab('||i||')=' || l_olitem_description_tab(i));
9166       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_olblock23text_tab('||i||')=' || l_olblock23text_tab(i));
9167       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_olsecurity_group_id_tab('||i||')=' || l_olsecurity_group_id_tab(i));
9168       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_oloke_boe_description_tab('||i||')=' || l_oloke_boe_description_tab(i));
9169       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_olcognomen_tab('||i||')=' || l_olcognomen_tab(i));
9170     END IF;
9171   END LOOP;
9172   END IF;
9173 
9174 
9175   RAISE OKC_API.G_EXCEPTION_ERROR;
9176 
9177 END; /* insert okc_k_lines_tl */
9178 
9179 PROCEDURE insert_okc_k_lines_tl_old(p_old_id IN okc_k_lines_b.id%TYPE,
9180                                 p_new_id IN okc_k_lines_b.id%TYPE,
9181                                 p_flush IN VARCHAR2 ) IS
9182 CURSOR c5(p_id okc_k_lines_b.id%TYPE) IS
9183   SELECT
9184        a.id, a.LANGUAGE, a.source_lang,
9185        a.sfwt_flag, a.name, a.comments,
9186        a.item_description, a.block23text, a.created_by,
9187        a.creation_date, a.last_updated_by, a.last_update_date,
9188        a.last_update_login, a.security_group_id, a.oke_boe_description,
9189        a.cognomen, b.lse_id
9190     FROM okc_k_lines_tl a,
9191          okc_k_lines_b b
9192     WHERE a.id = p_id
9193     AND   a.id = b.id;
9194 
9195     TYPE l_ollse_id_type IS TABLE OF okc_k_lines_b.lse_id%TYPE INDEX BY BINARY_INTEGER;
9196     l_olid_tab2 l_olid_type;
9197     l_ollanguage_tab2 l_ollanguage_type;
9198     l_olsource_lang_tab2 l_olsource_lang_type;
9199     l_olsfwt_flag_tab2 l_olsfwt_flag_type;
9200     l_olname_tab2 l_olname_type;
9201     l_olcomments_tab2 l_olcomments_type;
9202     l_olitem_description_tab2 l_olitem_description_type;
9203     l_olblock23text_tab2 l_olblock23text_type;
9204     l_olcreated_by_tab2 l_olcreated_by_type;
9205     l_olcreation_date_tab2 l_olcreation_date_type;
9206     l_ollast_updated_by_tab2 l_ollast_updated_by_type;
9207     l_ollast_update_date_tab2 l_ollast_update_date_type;
9208     l_ollast_update_login_tab2 l_ollast_update_login_type;
9209     l_olsecurity_group_id_tab2 l_olsecurity_group_id_type;
9210     l_oloke_boe_description_tab2 l_oloke_boe_description_type;
9211     l_olcognomen_tab2 l_olcognomen_type;
9212     l_ollse_id_tab2 l_ollse_id_type;
9213 
9214   l_ret_status VARCHAR2(30);
9215   l_new_asset_name VARCHAR2(150);
9216   l_done_generating BOOLEAN := FALSE;
9217   l_old_asset_name VARCHAR2(150);
9218 BEGIN
9219   IF (G_DEBUG_ENABLED = 'Y') THEN
9220     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
9221   END IF;
9222   NULL;
9223   OPEN c5(p_old_id);
9224   FETCH c5 bulk collect INTO
9225     l_olid_tab2, l_ollanguage_tab2, l_olsource_lang_tab2,
9226     l_olsfwt_flag_tab2, l_olname_tab2, l_olcomments_tab2,
9227     l_olitem_description_tab2, l_olblock23text_tab2, l_olcreated_by_tab2,
9228     l_olcreation_date_tab2, l_ollast_updated_by_tab2, l_ollast_update_date_tab2,
9229     l_ollast_update_login_tab2,l_olsecurity_group_id_tab2, l_oloke_boe_description_tab2,
9230     l_olcognomen_tab2, l_ollse_id_tab2
9231   limit G_BULK_SIZE;
9232   CLOSE c5;
9233   --print('okc_k_lines_tab:l_id_tab.count='||l_id_tab.count);
9234   FOR i IN l_olid_tab2.first..l_olid_tab2.last LOOP
9235       -- Change id
9236       l_olid_tab2(i) := p_new_id;
9237       l_olid_tab(l_okc_k_lines_tl_counter) := l_olid_tab2(i);
9238 
9239       l_ollanguage_tab(l_okc_k_lines_tl_counter) := l_ollanguage_tab2(i);
9240       l_olsource_lang_tab(l_okc_k_lines_tl_counter) := l_olsource_lang_tab2(i);
9241       l_olsfwt_flag_tab(l_okc_k_lines_tl_counter) := l_olsfwt_flag_tab2(i);
9242       l_olname_tab(l_okc_k_lines_tl_counter) := l_olname_tab2(i);
9243 
9244       /* AKP - to do: Put okl_copy_asset_pvt.generate_asset_number as public api
9245         Call okl_copy_asset_pvt.generate_asset_number instead of local procedure      */
9246       IF (p_trans_type NOT IN ('CRB','CRL','CSP','CRV','ALI') AND
9247           l_ollse_id_tab2(i) IN (33, 42) ) THEN
9248         -- Generate asset_number
9249         --l_ret_status := okl_copy_asset_pvt.generate_asset_number(
9250         IF (NOT(l_done_generating)) THEN
9251           IF (l_asset_counter > 1) THEN
9252             l_new_asset_name := find_aid_mapping_id(l_olname_tab(l_okc_k_lines_tl_counter));
9253             IF (l_new_asset_name = '-1') THEN
9254               l_ret_status := generate_asset_number(
9255                               l_new_asset_name
9256                             );
9257               IF l_ret_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9258                 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9259               ELSIF l_ret_status = OKL_API.G_RET_STS_ERROR THEN
9260                 RAISE OKL_API.G_EXCEPTION_ERROR;
9261               END IF;
9262             END IF;
9263           ELSE
9264               l_ret_status := generate_asset_number(
9265                               l_new_asset_name
9266                             );
9267               IF l_ret_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
9268                 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9269               ELSIF l_ret_status = OKL_API.G_RET_STS_ERROR THEN
9270                 RAISE OKL_API.G_EXCEPTION_ERROR;
9271               END IF;
9272           END IF;
9273           l_done_generating := TRUE;
9274         END IF;
9275         l_old_asset_name := l_olname_tab(l_okc_k_lines_tl_counter);
9276         l_olname_tab(l_okc_k_lines_tl_counter) := l_new_asset_name;
9277         --print('Old Asset=' || l_old_asset_name);
9278         --print('New Asset=' || l_new_asset_name);
9279 
9280         -- Store line id to asset_number mapping
9281         l_aid_mapping_tab(l_asset_counter).old_id := l_old_asset_name;
9282         l_aid_mapping_tab(l_asset_counter).new_id := l_new_asset_name;
9283 
9284         l_asset_counter := l_asset_counter + 1;
9285 
9286       END IF;
9287 
9288       IF (l_asset_counter > 1) THEN
9289         sort_aid_mapping_tab;
9290       END IF;
9291       l_olcomments_tab(l_okc_k_lines_tl_counter) := l_olcomments_tab2(i);
9292       l_olitem_description_tab(l_okc_k_lines_tl_counter) := l_olitem_description_tab2(i);
9293       l_olblock23text_tab(l_okc_k_lines_tl_counter) := l_olblock23text_tab2(i);
9294       l_olcreated_by_tab(l_okc_k_lines_tl_counter) := l_olcreated_by_tab2(i);
9295       l_olcreation_date_tab(l_okc_k_lines_tl_counter) := l_olcreation_date_tab2(i);
9296       l_ollast_updated_by_tab(l_okc_k_lines_tl_counter) := l_ollast_updated_by_tab2(i);
9297       l_ollast_update_date_tab(l_okc_k_lines_tl_counter) := l_ollast_update_date_tab2(i);
9298       l_ollast_update_login_tab(l_okc_k_lines_tl_counter) := l_ollast_update_login_tab2(i);
9299       l_olsecurity_group_id_tab(l_okc_k_lines_tl_counter) := l_olsecurity_group_id_tab2(i);
9300       l_oloke_boe_description_tab(l_okc_k_lines_tl_counter) := l_oloke_boe_description_tab2(i);
9301       l_olcognomen_tab(l_okc_k_lines_tl_counter) := l_olcognomen_tab2(i);
9302 
9303       l_okc_k_lines_tl_counter := l_okc_k_lines_tl_counter + 1;
9304 
9305   END LOOP;
9306 
9307   IF (p_flush = 'Y') THEN
9308     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9309           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);
9310     END IF;
9311     IF (l_okc_k_lines_tl_counter > 1) THEN
9312       forall i IN l_olid_tab.first..l_olid_tab.last
9313         INSERT INTO okc_k_lines_tl (
9314            id, LANGUAGE, source_lang,
9315            sfwt_flag, name, comments,
9316            item_description, block23text, created_by,
9317            creation_date, last_updated_by, last_update_date,
9318            last_update_login, security_group_id, oke_boe_description,
9319            cognomen
9320         ) VALUES (
9321          l_olid_tab(i), l_ollanguage_tab(i), l_olsource_lang_tab(i),
9322          'N', l_olname_tab(i), l_olcomments_tab(i),
9323          l_olitem_description_tab(i), l_olblock23text_tab(i), l_created_by,
9324          SYSDATE,l_last_updated_by,SYSDATE,
9325          l_last_update_login,l_olsecurity_group_id_tab(i),l_oloke_boe_description_tab(i),
9326          l_olcognomen_tab(i)
9327     );
9328   END IF;
9329   END IF;
9330 
9331 
9332 END; /* insert_okc_k_lines_tl_old */
9333 
9334 
9335 PROCEDURE insert_okc_k_headers_tl(p_old_id IN okc_k_headers_tl.id%TYPE,
9336                                   p_new_id IN okc_k_headers_tl.id%TYPE) IS
9337 CURSOR c6(p_id okc_k_headers_tl.id%TYPE) IS
9338   SELECT
9339      id, LANGUAGE, source_lang,
9340      sfwt_flag, short_description, comments,
9341      description, cognomen, non_response_reason,
9342      non_response_explain, set_aside_reason, created_by,
9343      creation_date, last_updated_by, last_update_date,
9344      last_update_login, security_group_id
9345   FROM okc_k_headers_tl
9346   WHERE id = p_id;
9347 
9348   TYPE l_id_type IS TABLE OF okc_k_headers_tl.id%TYPE INDEX BY BINARY_INTEGER;
9349   TYPE l_language_type IS TABLE OF okc_k_headers_tl.LANGUAGE%TYPE INDEX BY BINARY_INTEGER;
9350   TYPE l_source_lang_type IS TABLE OF okc_k_headers_tl.source_lang%TYPE INDEX BY BINARY_INTEGER;
9351   TYPE l_sfwt_flag_type IS TABLE OF okc_k_headers_tl.sfwt_flag%TYPE INDEX BY BINARY_INTEGER;
9352   TYPE l_short_description_type IS TABLE OF okc_k_headers_tl.short_description%TYPE INDEX BY BINARY_INTEGER;
9353   TYPE l_comments_type IS TABLE OF okc_k_headers_tl.comments%TYPE INDEX BY BINARY_INTEGER;
9354   TYPE l_description_type IS TABLE OF okc_k_headers_tl.description%TYPE INDEX BY BINARY_INTEGER;
9355   TYPE l_cognomen_type IS TABLE OF okc_k_headers_tl.cognomen%TYPE INDEX BY BINARY_INTEGER;
9356   TYPE l_non_response_reason_type IS TABLE OF okc_k_headers_tl.non_response_reason%TYPE INDEX BY BINARY_INTEGER;
9357   TYPE l_non_response_explain_type IS TABLE OF okc_k_headers_tl.non_response_explain%TYPE INDEX BY BINARY_INTEGER;
9358   TYPE l_set_aside_reason_type IS TABLE OF okc_k_headers_tl.set_aside_reason%TYPE INDEX BY BINARY_INTEGER;
9359   TYPE l_created_by_type IS TABLE OF okc_k_headers_tl.created_by%TYPE INDEX BY BINARY_INTEGER;
9360   TYPE l_creation_date_type IS TABLE OF okc_k_headers_tl.creation_date%TYPE INDEX BY BINARY_INTEGER;
9361   TYPE l_last_updated_by_type IS TABLE OF okc_k_headers_tl.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
9362   TYPE l_last_update_date_type IS TABLE OF okc_k_headers_tl.last_update_date%TYPE INDEX BY BINARY_INTEGER;
9363   TYPE l_last_update_login_type IS TABLE OF okc_k_headers_tl.last_update_login%TYPE INDEX BY BINARY_INTEGER;
9364   TYPE l_security_group_id_type IS TABLE OF okc_k_headers_tl.security_group_id%TYPE INDEX BY BINARY_INTEGER;
9365 
9366   l_id_tab l_id_type;
9367   l_language_tab l_language_type;
9368   l_source_lang_tab l_source_lang_type;
9369   l_sfwt_flag_tab l_sfwt_flag_type;
9370   l_short_description_tab l_short_description_type;
9371   l_comments_tab l_comments_type;
9372   l_description_tab l_description_type;
9373   l_cognomen_tab l_cognomen_type;
9374   l_non_response_reason_tab l_non_response_reason_type;
9375   l_non_response_explain_tab l_non_response_explain_type;
9376   l_set_aside_reason_tab l_set_aside_reason_type;
9377   l_created_by_tab l_created_by_type;
9378   l_creation_date_tab l_creation_date_type;
9379   l_last_updated_by_tab l_last_updated_by_type;
9380   l_last_update_date_tab l_last_update_date_type;
9381   l_last_update_login_tab l_last_update_login_type;
9382   l_security_group_id_tab l_security_group_id_type;
9383 
9384 
9385 BEGIN
9386   IF (G_DEBUG_ENABLED = 'Y') THEN
9387     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
9388   END IF;
9389   NULL;
9390   OPEN c6(p_old_id);
9391   FETCH c6 bulk collect INTO
9392     l_id_tab, l_language_tab, l_source_lang_tab,
9393     l_sfwt_flag_tab, l_short_description_tab, l_comments_tab,
9394     l_description_tab, l_cognomen_tab, l_non_response_reason_tab,
9395     l_non_response_explain_tab, l_set_aside_reason_tab, l_created_by_tab,
9396     l_creation_date_tab, l_last_updated_by_tab, l_last_update_date_tab,
9397     l_last_update_login_tab, l_security_group_id_tab
9398   limit G_BULK_SIZE;
9399   CLOSE c6;
9400 
9401   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9402       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'okc_k_headers_tl_tab:l_id_tab.count='||l_id_tab.COUNT);
9403   END IF;
9404   IF (l_id_tab.COUNT > 0) THEN
9405   FOR i IN l_id_tab.first..l_id_tab.last LOOP
9406     l_id_tab(i) := p_new_id;
9407   END LOOP;
9408 
9409   forall i IN l_id_tab.first..l_id_tab.last
9410     INSERT INTO okc_k_headers_tl (
9411        id, LANGUAGE, source_lang,
9412        sfwt_flag, short_description, comments,
9413        description, cognomen, non_response_reason,
9414        non_response_explain, set_aside_reason, created_by,
9415        creation_date, last_updated_by, last_update_date,
9416        last_update_login, security_group_id
9417     ) VALUES (
9418        l_id_tab(i), l_language_tab(i), l_source_lang_tab(i),
9419        'N', l_short_description_tab(i), l_comments_tab(i),
9420        l_description_tab(i), l_cognomen_tab(i), NULL,
9421        NULL, NULL, l_created_by,
9422        SYSDATE, l_last_updated_by, SYSDATE,
9423        l_last_update_login, l_security_group_id_tab(i)
9424     );
9425   END IF;
9426 
9427 EXCEPTION WHEN OTHERS THEN
9428 
9429   x_return_status := OKL_API.G_RET_STS_ERROR;
9430   /*OKL_API.set_message(p_app_name => 'OKL',
9431                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
9432                       p_token1 => 'ASSET_NUMBER',
9433                       p_token1_value => 'insert_okc_k_headers_tl');*/
9434     /* DEBUG */
9435   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9436       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
9437     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing okc_k_headers_tl:l_id_tab.coun=' || l_id_tab.COUNT || ' ...');
9438   END IF;
9439   IF (l_id_tab.COUNT > 0) THEN
9440   FOR i IN l_id_tab.first..l_id_tab.last
9441   LOOP
9442     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9443           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_id_tab('||i||')=' || l_id_tab(i));
9444       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_language_tab('||i||')=' || l_language_tab(i));
9445       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_source_lang_tab('||i||')=' || l_source_lang_tab(i));
9446       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_short_description_tab('||i||')=' || l_short_description_tab(i));
9447       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_comments_tab('||i||')=' || l_comments_tab(i));
9448       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_description_tab('||i||')=' || l_description_tab(i));
9449       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cognomen_tab('||i||')=' || l_cognomen_tab(i));
9450       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_security_group_id_tab('||i||')=' || l_security_group_id_tab(i));
9451     END IF;
9452   END LOOP;
9453   END IF;
9454 
9455   RAISE OKC_API.G_EXCEPTION_ERROR;
9456 
9457 END; /* insert_okc_k_headers_tl */
9458 
9459 PROCEDURE insert_okl_k_headers(p_old_id IN okc_k_headers_tl.id%TYPE,
9460                                p_new_id IN okc_k_headers_tl.id%TYPE) IS
9461 CURSOR c7(p_id okl_k_headers.id%TYPE) IS
9462   SELECT
9463      id, isg_id, khr_id,
9464      pdt_id, object_version_number, date_first_activity,
9465      syndicatable_yn, salestype_yn, date_refinanced,
9466      date_conversion_effective, date_deal_transferred, term_duration,
9467      datetime_proposal_effective, datetime_proposal_ineffective, date_proposal_accepted,
9468      attribute_category, attribute1, attribute2,
9469      attribute3, attribute4, attribute5,
9470      attribute6, attribute7, attribute8,
9471      attribute9, attribute10, attribute11,
9472      attribute12, attribute13, attribute14,
9473      attribute15, created_by, creation_date,
9474      last_updated_by, last_update_date, last_update_login,
9475      amd_code, generate_accrual_yn, generate_accrual_override_yn,
9476      credit_act_yn, converted_account_yn, pre_tax_yield,
9477      after_tax_yield, implicit_interest_rate, implicit_non_idc_interest_rate,
9478      target_pre_tax_yield, target_after_tax_yield, target_implicit_interest_rate,
9479      target_implicit_nonidc_intrate, date_last_interim_interest_cal, deal_type,
9480      pre_tax_irr, after_tax_irr, expected_delivery_date,
9481      accepted_date, prefunding_eligible_yn, revolving_credit_yn,
9482      currency_conversion_type, currency_conversion_rate, currency_conversion_date,
9483      multi_gaap_yn, recourse_code, lessor_serv_org_code,
9484      assignable_yn, securitized_code, securitization_type,
9485      sub_pre_tax_yield, sub_after_tax_yield, sub_impl_interest_rate,
9486      sub_impl_non_idc_int_rate, sub_pre_tax_irr, sub_after_tax_irr,
9487      tot_cl_transfer_amt, tot_cl_net_transfer_amt, tot_cl_limit,
9488      tot_cl_funding_amt, crs_id, template_type_code,
9489      tradein_description, date_funding_expected, tradein_amount,
9490      date_tradein,
9491      legal_entity_id
9492   FROM okl_k_headers
9493   WHERE id = p_id;
9494 
9495     TYPE l_id_type IS TABLE OF okl_k_headers.id%TYPE INDEX BY BINARY_INTEGER;
9496     TYPE l_isg_id_type IS TABLE OF okl_k_headers.isg_id%TYPE INDEX BY BINARY_INTEGER;
9497     TYPE l_khr_id_type IS TABLE OF okl_k_headers.khr_id%TYPE INDEX BY BINARY_INTEGER;
9498     TYPE l_pdt_id_type IS TABLE OF okl_k_headers.pdt_id%TYPE INDEX BY BINARY_INTEGER;
9499     TYPE l_object_version_number_type IS TABLE OF okl_k_headers.object_version_number%TYPE INDEX BY BINARY_INTEGER;
9500     TYPE l_date_first_activity_type IS TABLE OF okl_k_headers.date_first_activity%TYPE INDEX BY BINARY_INTEGER;
9501     TYPE l_syndicatable_yn_type IS TABLE OF okl_k_headers.syndicatable_yn%TYPE INDEX BY BINARY_INTEGER;
9502     TYPE l_salestype_yn_type IS TABLE OF okl_k_headers.salestype_yn%TYPE INDEX BY BINARY_INTEGER;
9503     TYPE l_date_refinanced_type IS TABLE OF okl_k_headers.date_refinanced%TYPE INDEX BY BINARY_INTEGER;
9504     TYPE l_date_conversion_effective_ty IS TABLE OF okl_k_headers.date_conversion_effective%TYPE INDEX BY BINARY_INTEGER;
9505     TYPE l_date_deal_transferred_type IS TABLE OF okl_k_headers.date_deal_transferred%TYPE INDEX BY BINARY_INTEGER;
9506     TYPE l_term_duration_type IS TABLE OF okl_k_headers.term_duration%TYPE INDEX BY BINARY_INTEGER;
9507     TYPE l_datetime_proposal_effec_type IS TABLE OF okl_k_headers.datetime_proposal_effective%TYPE INDEX BY BINARY_INTEGER;
9508     TYPE l_datetime_proposal_ineff_type IS TABLE OF okl_k_headers.datetime_proposal_ineffective%TYPE INDEX BY BINARY_INTEGER;
9509     TYPE l_date_proposal_accepted_type IS TABLE OF okl_k_headers.date_proposal_accepted%TYPE INDEX BY BINARY_INTEGER;
9510     TYPE l_attribute_category_type IS TABLE OF okl_k_headers.attribute_category%TYPE INDEX BY BINARY_INTEGER;
9511     TYPE l_attribute1_type IS TABLE OF okl_k_headers.attribute1%TYPE INDEX BY BINARY_INTEGER;
9512     TYPE l_attribute2_type IS TABLE OF okl_k_headers.attribute2%TYPE INDEX BY BINARY_INTEGER;
9513     TYPE l_attribute3_type IS TABLE OF okl_k_headers.attribute3%TYPE INDEX BY BINARY_INTEGER;
9514     TYPE l_attribute4_type IS TABLE OF okl_k_headers.attribute4%TYPE INDEX BY BINARY_INTEGER;
9515     TYPE l_attribute5_type IS TABLE OF okl_k_headers.attribute5%TYPE INDEX BY BINARY_INTEGER;
9516     TYPE l_attribute6_type IS TABLE OF okl_k_headers.attribute6%TYPE INDEX BY BINARY_INTEGER;
9517     TYPE l_attribute7_type IS TABLE OF okl_k_headers.attribute7%TYPE INDEX BY BINARY_INTEGER;
9518     TYPE l_attribute8_type IS TABLE OF okl_k_headers.attribute8%TYPE INDEX BY BINARY_INTEGER;
9519     TYPE l_attribute9_type IS TABLE OF okl_k_headers.attribute9%TYPE INDEX BY BINARY_INTEGER;
9520     TYPE l_attribute10_type IS TABLE OF okl_k_headers.attribute10%TYPE INDEX BY BINARY_INTEGER;
9521     TYPE l_attribute11_type IS TABLE OF okl_k_headers.attribute11%TYPE INDEX BY BINARY_INTEGER;
9522     TYPE l_attribute12_type IS TABLE OF okl_k_headers.attribute12%TYPE INDEX BY BINARY_INTEGER;
9523     TYPE l_attribute13_type IS TABLE OF okl_k_headers.attribute13%TYPE INDEX BY BINARY_INTEGER;
9524     TYPE l_attribute14_type IS TABLE OF okl_k_headers.attribute14%TYPE INDEX BY BINARY_INTEGER;
9525     TYPE l_attribute15_type IS TABLE OF okl_k_headers.attribute15%TYPE INDEX BY BINARY_INTEGER;
9526     TYPE l_created_by_type IS TABLE OF okl_k_headers.created_by%TYPE INDEX BY BINARY_INTEGER;
9527     TYPE l_creation_date_type IS TABLE OF okl_k_headers.creation_date%TYPE INDEX BY BINARY_INTEGER;
9528     TYPE l_last_updated_by_type IS TABLE OF okl_k_headers.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
9529     TYPE l_last_update_date_type IS TABLE OF okl_k_headers.last_update_date%TYPE INDEX BY BINARY_INTEGER;
9530     TYPE l_last_update_login_type IS TABLE OF okl_k_headers.last_update_login%TYPE INDEX BY BINARY_INTEGER;
9531     TYPE l_amd_code_type IS TABLE OF okl_k_headers.amd_code%TYPE INDEX BY BINARY_INTEGER;
9532     TYPE l_generate_accrual_yn_type IS TABLE OF okl_k_headers.generate_accrual_yn%TYPE INDEX BY BINARY_INTEGER;
9533     TYPE l_generate_ac_override_yn_type IS TABLE OF okl_k_headers.generate_accrual_override_yn%TYPE INDEX BY BINARY_INTEGER;
9534     TYPE l_credit_act_yn_type IS TABLE OF okl_k_headers.credit_act_yn%TYPE INDEX BY BINARY_INTEGER;
9535     TYPE l_converted_account_yn_type IS TABLE OF okl_k_headers.converted_account_yn%TYPE INDEX BY BINARY_INTEGER;
9536     TYPE l_pre_tax_yield_type IS TABLE OF okl_k_headers.pre_tax_yield%TYPE INDEX BY BINARY_INTEGER;
9537     TYPE l_after_tax_yield_type IS TABLE OF okl_k_headers.after_tax_yield%TYPE INDEX BY BINARY_INTEGER;
9538     TYPE l_implicit_interest_rate_type IS TABLE OF okl_k_headers.implicit_interest_rate%TYPE INDEX BY BINARY_INTEGER;
9539     TYPE l_implicit_non_idc_i_rate_type IS TABLE OF okl_k_headers.implicit_non_idc_interest_rate%TYPE INDEX BY BINARY_INTEGER;
9540     TYPE l_target_pre_tax_yield_type IS TABLE OF okl_k_headers.target_pre_tax_yield%TYPE INDEX BY BINARY_INTEGER;
9541     TYPE l_target_after_tax_yield_type IS TABLE OF okl_k_headers.target_after_tax_yield%TYPE INDEX BY BINARY_INTEGER;
9542     TYPE l_target_implicit_in_rate_type IS TABLE OF okl_k_headers.target_implicit_interest_rate%TYPE INDEX BY BINARY_INTEGER;
9543     TYPE l_target_i_nonidc_intrate_type IS TABLE OF okl_k_headers.target_implicit_nonidc_intrate%TYPE INDEX BY BINARY_INTEGER;
9544     TYPE l_date_last_interim_i_cal_type IS TABLE OF okl_k_headers.date_last_interim_interest_cal%TYPE INDEX BY BINARY_INTEGER;
9545     TYPE l_deal_type_type IS TABLE OF okl_k_headers.deal_type%TYPE INDEX BY BINARY_INTEGER;
9546     TYPE l_pre_tax_irr_type IS TABLE OF okl_k_headers.pre_tax_irr%TYPE INDEX BY BINARY_INTEGER;
9547     TYPE l_after_tax_irr_type IS TABLE OF okl_k_headers.after_tax_irr%TYPE INDEX BY BINARY_INTEGER;
9548     TYPE l_expected_delivery_date_type IS TABLE OF okl_k_headers.expected_delivery_date%TYPE INDEX BY BINARY_INTEGER;
9549     TYPE l_accepted_date_type IS TABLE OF okl_k_headers.accepted_date%TYPE INDEX BY BINARY_INTEGER;
9550     TYPE l_prefunding_eligible_yn_type IS TABLE OF okl_k_headers.prefunding_eligible_yn%TYPE INDEX BY BINARY_INTEGER;
9551     TYPE l_revolving_credit_yn_type IS TABLE OF okl_k_headers.revolving_credit_yn%TYPE INDEX BY BINARY_INTEGER;
9552     TYPE l_currency_conversion_type_typ IS TABLE OF okl_k_headers.currency_conversion_type%TYPE INDEX BY BINARY_INTEGER;
9553     TYPE l_currency_conversion_rate_typ IS TABLE OF okl_k_headers.currency_conversion_rate%TYPE INDEX BY BINARY_INTEGER;
9554     TYPE l_currency_conversion_date_typ IS TABLE OF okl_k_headers.currency_conversion_date%TYPE INDEX BY BINARY_INTEGER;
9555     TYPE l_multi_gaap_yn_type IS TABLE OF okl_k_headers.multi_gaap_yn%TYPE INDEX BY BINARY_INTEGER;
9556     TYPE l_recourse_code_type IS TABLE OF okl_k_headers.recourse_code%TYPE INDEX BY BINARY_INTEGER;
9557     TYPE l_lessor_serv_org_code_type IS TABLE OF okl_k_headers.lessor_serv_org_code%TYPE INDEX BY BINARY_INTEGER;
9558     TYPE l_assignable_yn_type IS TABLE OF okl_k_headers.assignable_yn%TYPE INDEX BY BINARY_INTEGER;
9559     TYPE l_securitized_code_type IS TABLE OF okl_k_headers.securitized_code%TYPE INDEX BY BINARY_INTEGER;
9560     TYPE l_securitization_type_type IS TABLE OF okl_k_headers.securitization_type%TYPE INDEX BY BINARY_INTEGER;
9561     TYPE l_sub_pre_tax_yield_type IS TABLE OF okl_k_headers.sub_pre_tax_yield%TYPE INDEX BY BINARY_INTEGER;
9562     TYPE l_sub_after_tax_yield_type IS TABLE OF okl_k_headers.sub_after_tax_yield%TYPE INDEX BY BINARY_INTEGER;
9563     TYPE l_sub_impl_interest_rate_type IS TABLE OF okl_k_headers.sub_impl_interest_rate%TYPE INDEX BY BINARY_INTEGER;
9564     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;
9565     TYPE l_sub_pre_tax_irr_type IS TABLE OF okl_k_headers.sub_pre_tax_irr%TYPE INDEX BY BINARY_INTEGER;
9566     TYPE l_sub_after_tax_irr_type IS TABLE OF okl_k_headers.sub_after_tax_irr%TYPE INDEX BY BINARY_INTEGER;
9567     TYPE l_tot_cl_transfer_amt_type IS TABLE OF okl_k_headers.tot_cl_transfer_amt%TYPE INDEX BY BINARY_INTEGER;
9568     TYPE l_tot_cl_net_transfer_amt_type IS TABLE OF okl_k_headers.tot_cl_net_transfer_amt%TYPE INDEX BY BINARY_INTEGER;
9569     TYPE l_tot_cl_limit_type IS TABLE OF okl_k_headers.tot_cl_limit%TYPE INDEX BY BINARY_INTEGER;
9570     TYPE l_tot_cl_funding_amt_type IS TABLE OF okl_k_headers.tot_cl_funding_amt%TYPE INDEX BY BINARY_INTEGER;
9571     TYPE l_crs_id_type is table of okl_k_headers.crs_id%TYPE index by binary_integer;
9572     TYPE l_template_type_code_type is table of okl_k_headers.template_type_code%TYPE index by binary_integer;
9573     TYPE l_tradein_description_type is table of okl_k_headers.tradein_description%TYPE index by binary_integer;
9574     TYPE l_date_funding_expected_type is table of okl_k_headers.date_funding_expected%TYPE index by binary_integer;
9575     TYPE l_tradein_amount_type is table of okl_k_headers.tradein_amount%TYPE index by binary_integer;
9576     TYPE l_date_tradein_type is table of okl_k_headers.date_tradein%TYPE index by binary_integer;
9577     --Added by dpsingh for LE Uptake
9578     TYPE l_legal_entity_id_type is table of okl_k_headers.legal_entity_id%TYPE index by binary_integer;
9579 
9580     l_id_tab l_id_type;
9581     l_isg_id_tab l_isg_id_type;
9582     l_khr_id_tab l_khr_id_type;
9583     l_pdt_id_tab l_pdt_id_type;
9584     l_object_version_number_tab l_object_version_number_type;
9585     l_date_first_activity_tab l_date_first_activity_type;
9586     l_syndicatable_yn_tab l_syndicatable_yn_type;
9587     l_salestype_yn_tab l_salestype_yn_type;
9588     l_date_refinanced_tab l_date_refinanced_type;
9589     l_date_conversion_effectiv_tab l_date_conversion_effective_ty;
9590     l_date_deal_transferred_tab l_date_deal_transferred_type;
9591     l_term_duration_tab l_term_duration_type;
9592     l_datetime_proposal_effec_tab l_datetime_proposal_effec_type;
9593     l_datetime_proposal_ineff_tab l_datetime_proposal_ineff_type;
9594     l_date_proposal_accepted_tab l_date_proposal_accepted_type;
9595     l_attribute_category_tab l_attribute_category_type;
9596     l_attribute1_tab l_attribute1_type;
9597     l_attribute2_tab l_attribute2_type;
9598     l_attribute3_tab l_attribute3_type;
9599     l_attribute4_tab l_attribute4_type;
9600     l_attribute5_tab l_attribute5_type;
9601     l_attribute6_tab l_attribute6_type;
9602     l_attribute7_tab l_attribute7_type;
9603     l_attribute8_tab l_attribute8_type;
9604     l_attribute9_tab l_attribute9_type;
9605     l_attribute10_tab l_attribute10_type;
9606     l_attribute11_tab l_attribute11_type;
9607     l_attribute12_tab l_attribute12_type;
9608     l_attribute13_tab l_attribute13_type;
9609     l_attribute14_tab l_attribute14_type;
9610     l_attribute15_tab l_attribute15_type;
9611     l_created_by_tab l_created_by_type;
9612     l_creation_date_tab l_creation_date_type;
9613     l_last_updated_by_tab l_last_updated_by_type;
9614     l_last_update_date_tab l_last_update_date_type;
9615     l_last_update_login_tab l_last_update_login_type;
9616     l_amd_code_tab l_amd_code_type;
9617     l_generate_accrual_yn_tab l_generate_accrual_yn_type;
9618     l_generate_ac_override_yn_tab l_generate_ac_override_yn_type;
9619     l_credit_act_yn_tab l_credit_act_yn_type;
9620     l_converted_account_yn_tab l_converted_account_yn_type;
9621     l_pre_tax_yield_tab l_pre_tax_yield_type;
9622     l_after_tax_yield_tab l_after_tax_yield_type;
9623     l_implicit_interest_rate_tab l_implicit_interest_rate_type;
9624     l_implicit_non_idc_i_rate_tab l_implicit_non_idc_i_rate_type;
9625     l_target_pre_tax_yield_tab l_target_pre_tax_yield_type;
9626     l_target_after_tax_yield_tab l_target_after_tax_yield_type;
9627     l_target_implicit_in_rate_tab l_target_implicit_in_rate_type;
9628     l_target_i_nonidc_intrate_tab l_target_i_nonidc_intrate_type;
9629     l_date_last_interim_i_cal_tab l_date_last_interim_i_cal_type;
9630     l_deal_type_tab l_deal_type_type;
9631     l_pre_tax_irr_tab l_pre_tax_irr_type;
9632     l_after_tax_irr_tab l_after_tax_irr_type;
9633     l_expected_delivery_date_tab l_expected_delivery_date_type;
9634     l_accepted_date_tab l_accepted_date_type;
9635     l_prefunding_eligible_yn_tab l_prefunding_eligible_yn_type;
9636     l_revolving_credit_yn_tab l_revolving_credit_yn_type;
9637     l_currency_conversion_type_tab l_currency_conversion_type_typ;
9638     l_currency_conversion_rate_tab l_currency_conversion_rate_typ;
9639     l_currency_conversion_date_tab l_currency_conversion_date_typ;
9640     l_multi_gaap_yn_tab l_multi_gaap_yn_type;
9641     l_recourse_code_tab l_recourse_code_type;
9642     l_lessor_serv_org_code_tab l_lessor_serv_org_code_type;
9643     l_assignable_yn_tab l_assignable_yn_type;
9644     l_securitized_code_tab l_securitized_code_type;
9645     l_securitization_type_tab l_securitization_type_type;
9646     l_sub_pre_tax_yield_tab l_sub_pre_tax_yield_type;
9647     l_sub_after_tax_yield_tab l_sub_after_tax_yield_type;
9648     l_sub_impl_interest_rate_tab l_sub_impl_interest_rate_type;
9649     l_sub_impl_non_idc_int_ra_tab l_sub_impl_non_idc_int_ra_type;
9650     l_sub_pre_tax_irr_tab l_sub_pre_tax_irr_type;
9651     l_sub_after_tax_irr_tab l_sub_after_tax_irr_type;
9652     l_tot_cl_transfer_amt_tab l_tot_cl_transfer_amt_type;
9653     l_tot_cl_net_transfer_amt_tab l_tot_cl_net_transfer_amt_type;
9654     l_tot_cl_limit_tab l_tot_cl_limit_type;
9655     l_tot_cl_funding_amt_tab l_tot_cl_funding_amt_type;
9656     l_crs_id_tab l_crs_id_type;
9657     l_template_type_code_tab l_template_type_code_type;
9658     l_tradein_description_tab l_tradein_description_type;
9659     l_date_funding_expected_tab l_date_funding_expected_type;
9660     l_tradein_amount_tab l_tradein_amount_type;
9661     l_date_tradein_tab l_date_tradein_type;
9662     l_legal_entity_id_tab  l_legal_entity_id_type;
9663 
9664 BEGIN
9665   IF (G_DEBUG_ENABLED = 'Y') THEN
9666     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
9667   END IF;
9668   NULL;
9669   OPEN c7(p_old_id);
9670   FETCH c7 bulk collect INTO
9671   l_id_tab, l_isg_id_tab, l_khr_id_tab,
9672   l_pdt_id_tab, l_object_version_number_tab, l_date_first_activity_tab,
9673   l_syndicatable_yn_tab, l_salestype_yn_tab, l_date_refinanced_tab,
9674   l_date_conversion_effectiv_tab, l_date_deal_transferred_tab, l_term_duration_tab,
9675   l_datetime_proposal_effec_tab, l_datetime_proposal_ineff_tab, l_date_proposal_accepted_tab,
9676   l_attribute_category_tab, l_attribute1_tab, l_attribute2_tab,
9677   l_attribute3_tab, l_attribute4_tab, l_attribute5_tab,
9678   l_attribute6_tab, l_attribute7_tab, l_attribute8_tab,
9679   l_attribute9_tab, l_attribute10_tab, l_attribute11_tab,
9680   l_attribute12_tab, l_attribute13_tab, l_attribute14_tab,
9681   l_attribute15_tab, l_created_by_tab, l_creation_date_tab,
9682   l_last_updated_by_tab, l_last_update_date_tab, l_last_update_login_tab,
9683   l_amd_code_tab, l_generate_accrual_yn_tab, l_generate_ac_override_yn_tab,
9684   l_credit_act_yn_tab, l_converted_account_yn_tab, l_pre_tax_yield_tab,
9685   l_after_tax_yield_tab, l_implicit_interest_rate_tab, l_implicit_non_idc_i_rate_tab,
9686   l_target_pre_tax_yield_tab, l_target_after_tax_yield_tab, l_target_implicit_in_rate_tab,
9687   l_target_i_nonidc_intrate_tab, l_date_last_interim_i_cal_tab, l_deal_type_tab,
9688   l_pre_tax_irr_tab, l_after_tax_irr_tab, l_expected_delivery_date_tab,
9689   l_accepted_date_tab, l_prefunding_eligible_yn_tab, l_revolving_credit_yn_tab,
9690   l_currency_conversion_type_tab, l_currency_conversion_rate_tab, l_currency_conversion_date_tab,
9691   l_multi_gaap_yn_tab, l_recourse_code_tab, l_lessor_serv_org_code_tab,
9692   l_assignable_yn_tab, l_securitized_code_tab, l_securitization_type_tab,
9693   l_sub_pre_tax_yield_tab, l_sub_after_tax_yield_tab, l_sub_impl_interest_rate_tab,
9694   l_sub_impl_non_idc_int_ra_tab, l_sub_pre_tax_irr_tab, l_sub_after_tax_irr_tab,
9695   l_tot_cl_transfer_amt_tab, l_tot_cl_net_transfer_amt_tab, l_tot_cl_limit_tab,
9696   l_tot_cl_funding_amt_tab, l_crs_id_tab, l_template_type_code_tab,
9697   l_tradein_description_tab, l_date_funding_expected_tab, l_tradein_amount_tab,
9698   l_date_tradein_tab,l_legal_entity_id_tab
9699   limit G_BULK_SIZE;
9700   CLOSE c7;
9701 
9702   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9703       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'okl_k_headers_tab:l_id_tab.count='||l_id_tab.COUNT);
9704   END IF;
9705   IF (l_id_tab.COUNT > 0) THEN
9706   l_deal_type := l_deal_type_tab(1);
9707   FOR i IN l_id_tab.first..l_id_tab.last LOOP
9708     l_id_tab(i) := p_new_id;
9709 
9710     validate_amd_code(x_return_status, l_amd_code_tab(i));
9711     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
9712       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9713     END IF;
9714 
9715   END LOOP;
9716 
9717   forall i IN l_id_tab.first..l_id_tab.last
9718     INSERT INTO okl_k_headers (
9719      id, isg_id, khr_id,
9720      pdt_id, object_version_number, date_first_activity,
9721      syndicatable_yn, salestype_yn, date_refinanced,
9722      date_conversion_effective, date_deal_transferred, term_duration,
9723      datetime_proposal_effective, datetime_proposal_ineffective, date_proposal_accepted,
9724      attribute_category, attribute1, attribute2,
9725      attribute3, attribute4, attribute5,
9726      attribute6, attribute7, attribute8,
9727      attribute9, attribute10, attribute11,
9728      attribute12, attribute13, attribute14,
9729      attribute15, created_by, creation_date,
9730      last_updated_by, last_update_date, last_update_login,
9731      amd_code, generate_accrual_yn, generate_accrual_override_yn,
9732      credit_act_yn, converted_account_yn, pre_tax_yield,
9733      after_tax_yield, implicit_interest_rate, implicit_non_idc_interest_rate,
9734      target_pre_tax_yield, target_after_tax_yield, target_implicit_interest_rate,
9735      target_implicit_nonidc_intrate, date_last_interim_interest_cal, deal_type,
9736      pre_tax_irr, after_tax_irr, expected_delivery_date,
9737      accepted_date, prefunding_eligible_yn, revolving_credit_yn,
9738      currency_conversion_type, currency_conversion_rate, currency_conversion_date,
9739      multi_gaap_yn, recourse_code, lessor_serv_org_code,
9740      assignable_yn, securitized_code, securitization_type,
9741      sub_pre_tax_yield, sub_after_tax_yield, sub_impl_interest_rate,
9742      sub_impl_non_idc_int_rate, sub_pre_tax_irr, sub_after_tax_irr,
9743      tot_cl_transfer_amt, tot_cl_net_transfer_amt, tot_cl_limit,
9744      tot_cl_funding_amt, crs_id, template_type_code,
9745      tradein_description, date_funding_expected, tradein_amount,
9746      date_tradein,legal_entity_id
9747     ) VALUES (
9748      l_id_tab(i), l_isg_id_tab(i), l_khr_id_tab(i),
9749      l_pdt_id_tab(i), 1, l_date_first_activity_tab(i),
9750      l_syndicatable_yn_tab(i), l_salestype_yn_tab(i), l_date_refinanced_tab(i),
9751      l_date_conversion_effectiv_tab(i), l_date_deal_transferred_tab(i), l_term_duration_tab(i),
9752      l_datetime_proposal_effec_tab(i), l_datetime_proposal_ineff_tab(i), l_date_proposal_accepted_tab(i),
9753      l_attribute_category_tab(i), l_attribute1_tab(i), l_attribute2_tab(i),
9754      l_attribute3_tab(i), l_attribute4_tab(i), l_attribute5_tab(i),
9755      l_attribute6_tab(i), l_attribute7_tab(i), l_attribute8_tab(i),
9756      l_attribute9_tab(i), l_attribute10_tab(i), l_attribute11_tab(i),
9757      l_attribute12_tab(i), l_attribute13_tab(i), l_attribute14_tab(i),
9758      l_attribute15_tab(i), l_created_by, SYSDATE,
9759      l_last_updated_by, SYSDATE, l_last_update_login,
9760      l_amd_code_tab(i), l_generate_accrual_yn_tab(i), l_generate_ac_override_yn_tab(i),
9761      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)),
9762      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)),
9763      l_target_pre_tax_yield_tab(i), l_target_after_tax_yield_tab(i), l_target_implicit_in_rate_tab(i),
9764      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),
9765      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),
9766      l_accepted_date_tab(i), l_prefunding_eligible_yn_tab(i), l_revolving_credit_yn_tab(i),
9767      l_currency_conversion_type_tab(i), l_currency_conversion_rate_tab(i), l_currency_conversion_date_tab(i),
9768      l_multi_gaap_yn_tab(i), l_recourse_code_tab(i), l_lessor_serv_org_code_tab(i),
9769      --l_assignable_yn_tab(i), l_securitized_code_tab(i), l_securitization_type_tab(i),
9770      --Fix bug 4381642 to nullify securitized_code
9771      l_assignable_yn_tab(i), NULL, l_securitization_type_tab(i),
9772      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)),
9773      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)),
9774      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)),
9775      DECODE(p_trans_type, 'CFA',NULL, 'CRL',NULL, l_tot_cl_funding_amt_tab(i)),
9776      l_crs_id_tab(i), l_template_type_code_tab(i),l_tradein_description_tab(i),
9777      l_date_funding_expected_tab(i), l_tradein_amount_tab(i), l_date_tradein_tab(i),l_legal_entity_id_tab(i)
9778     );
9779   END IF;
9780 
9781 EXCEPTION WHEN OTHERS THEN
9782 
9783   x_return_status := OKL_API.G_RET_STS_ERROR;
9784   /*OKL_API.set_message(p_app_name => 'OKL',
9785                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
9786                       p_token1 => 'ASSET_NUMBER',
9787                       p_token1_value => 'insert_okl_k_headers');*/
9788     /* DEBUG */
9789   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9790       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
9791     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing insert_okl_k_headers:l_id_tab=' || l_id_tab.COUNT || ' ...');
9792   END IF;
9793   --print('p_trans_type=' || p_trans_type);
9794   IF (l_id_tab.COUNT > 0) THEN
9795   FOR i IN l_id_tab.first..l_id_tab.last
9796   LOOP
9797     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9798           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_id_tab('||i||')=' || l_id_tab(i));
9799       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_isg_id_tab('||i||')=' || l_isg_id_tab(i));
9800       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_khr_id_tab('||i||')=' || l_khr_id_tab(i));
9801       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_pdt_id_tab('||i||')=' || l_pdt_id_tab(i));
9802       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_first_activity_tab('||i||')=' || l_date_first_activity_tab(i));
9803       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_syndicatable_yn_tab('||i||')=' || l_syndicatable_yn_tab(i));
9804       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_salestype_yn_tab('||i||')=' || l_salestype_yn_tab(i));
9805       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_refinanced_tab('||i||')=' || l_date_refinanced_tab(i));
9806       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_conversion_effectiv_tab('||i||')=' || l_date_conversion_effectiv_tab(i));
9807       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_deal_transferred_tab('||i||')=' || l_date_deal_transferred_tab(i));
9808       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_term_duration_tab('||i||')=' || l_term_duration_tab(i));
9809       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_datetime_proposal_effec_tab('||i||')=' || l_datetime_proposal_effec_tab(i));
9810       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_datetime_proposal_ineff_tab('||i||')=' || l_datetime_proposal_ineff_tab(i));
9811       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_proposal_accepted_tab('||i||')=' || l_date_proposal_accepted_tab(i));
9812       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute_category_tab('||i||')=' || l_attribute_category_tab(i));
9813       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute1_tab('||i||')=' || l_attribute1_tab(i));
9814       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute2_tab('||i||')=' || l_attribute2_tab(i));
9815       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute3_tab('||i||')=' || l_attribute3_tab(i));
9816       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute4_tab('||i||')=' || l_attribute4_tab(i));
9817       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute5_tab('||i||')=' || l_attribute5_tab(i));
9818       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute6_tab('||i||')=' || l_attribute6_tab(i));
9819       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute7_tab('||i||')=' || l_attribute7_tab(i));
9820       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute8_tab('||i||')=' || l_attribute8_tab(i));
9821       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute9_tab('||i||')=' || l_attribute9_tab(i));
9822       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute10_tab('||i||')=' || l_attribute10_tab(i));
9823       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute11_tab('||i||')=' || l_attribute11_tab(i));
9824       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute12_tab('||i||')=' || l_attribute12_tab(i));
9825       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute13_tab('||i||')=' || l_attribute13_tab(i));
9826       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute14_tab('||i||')=' || l_attribute14_tab(i));
9827       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute15_tab('||i||')=' || l_attribute15_tab(i));
9828       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_amd_code_tab('||i||')=' || l_amd_code_tab(i));
9829       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_generate_accrual_yn_tab('||i||')=' || l_generate_accrual_yn_tab(i));
9830       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));
9831       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_credit_act_yn_tab('||i||')=' || l_credit_act_yn_tab(i));
9832       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_converted_account_yn_tab('||i||')=' || l_converted_account_yn_tab(i));
9833       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_pre_tax_yield_tab('||i||')=' || l_pre_tax_yield_tab(i));
9834       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_after_tax_yield_tab('||i||')=' || l_after_tax_yield_tab(i));
9835       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_implicit_interest_rate_tab('||i||')=' || l_implicit_interest_rate_tab(i));
9836       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));
9837       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));
9838       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));
9839       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));
9840       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));
9841       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));
9842       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_deal_type_tab('||i||')=' || l_deal_type_tab(i));
9843       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_pre_tax_irr_tab('||i||')=' || l_pre_tax_irr_tab(i));
9844       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_after_tax_irr_tab('||i||')=' || l_after_tax_irr_tab(i));
9845       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_expected_delivery_date_tab('||i||')=' || l_expected_delivery_date_tab(i));
9846       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_accepted_date_tab('||i||')=' || l_accepted_date_tab(i));
9847       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_prefunding_eligible_yn_tab('||i||')=' || l_prefunding_eligible_yn_tab(i));
9848       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_revolving_credit_yn_tab('||i||')=' || l_revolving_credit_yn_tab(i));
9849       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_currency_conversion_type_tab('||i||')=' || l_currency_conversion_type_tab(i));
9850       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_currency_conversion_rate_tab('||i||')=' || l_currency_conversion_rate_tab(i));
9851       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_currency_conversion_date_tab('||i||')=' || l_currency_conversion_date_tab(i));
9852       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_multi_gaap_yn_tab('||i||')=' || l_multi_gaap_yn_tab(i));
9853       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_recourse_code_tab('||i||')=' || l_recourse_code_tab(i));
9854       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));
9855       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_assignable_yn_tab('||i||')=' || l_assignable_yn_tab(i));
9856       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_securitized_code_tab('||i||')=' || l_securitized_code_tab(i));
9857       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_securitization_type_tab('||i||')=' || l_securitization_type_tab(i));
9858       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));
9859       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));
9860       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));
9861       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));
9862       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));
9863       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));
9864       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));
9865       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));
9866       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tot_cl_limit_tab('||i||')=' || l_tot_cl_limit_tab(i));
9867       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));
9868       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_crs_id_tab('||i||')=' || l_crs_id_tab(i));
9869       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_template_type_code_tab('||i||')=' || l_template_type_code_tab(i));
9870       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tradein_description_tab('||i||')=' || l_tradein_description_tab(i));
9871       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_funding_expected_tab('||i||')=' || l_date_funding_expected_tab(i));
9872       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tradein_amount_tab('||i||')=' || l_tradein_amount_tab(i));
9873       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_tradein_tab('||i||')=' || l_date_tradein_tab(i));
9874     END IF;
9875   END LOOP;
9876   END IF;
9877 
9878 
9879   RAISE OKC_API.G_EXCEPTION_ERROR;
9880 
9881 END; /* insert_okl_k_headers */
9882 
9883 PROCEDURE insert_okl_slctd_optns(p_old_id IN okc_k_headers_tl.id%TYPE,
9884                                  p_new_id IN okc_k_headers_tl.id%TYPE) IS
9885 CURSOR c24(p_id NUMBER) IS
9886 SELECT
9887      id, pov_id, khr_id,
9888      object_version_number, attribute_category, attribute1,
9889      attribute2, attribute3, attribute4,
9890      attribute5, attribute6, attribute7,
9891      attribute8, attribute9, attribute10,
9892      attribute11, attribute12, attribute13,
9893      attribute14, attribute15, created_by,
9894      creation_date, last_updated_by, last_update_date,
9895      last_update_login
9896 FROM okl_slctd_optns
9897 WHERE khr_id = p_id;
9898 
9899     l_sid_tab2 l_sid_type;
9900     l_spov_id_tab2 l_spov_id_type;
9901     l_skhr_id_tab2 l_skhr_id_type;
9902     l_sobject_version_number_tab2 l_sobject_version_number_type;
9903     l_sattribute_category_tab2 l_sattribute_category_type;
9904     l_sattribute1_tab2 l_sattribute1_type;
9905     l_sattribute2_tab2 l_sattribute2_type;
9906     l_sattribute3_tab2 l_sattribute3_type;
9907     l_sattribute4_tab2 l_sattribute4_type;
9908     l_sattribute5_tab2 l_sattribute5_type;
9909     l_sattribute6_tab2 l_sattribute6_type;
9910     l_sattribute7_tab2 l_sattribute7_type;
9911     l_sattribute8_tab2 l_sattribute8_type;
9912     l_sattribute9_tab2 l_sattribute9_type;
9913     l_sattribute10_tab2 l_sattribute10_type;
9914     l_sattribute11_tab2 l_sattribute11_type;
9915     l_sattribute12_tab2 l_sattribute12_type;
9916     l_sattribute13_tab2 l_sattribute13_type;
9917     l_sattribute14_tab2 l_sattribute14_type;
9918     l_sattribute15_tab2 l_sattribute15_type;
9919     l_screated_by_tab2 l_screated_by_type;
9920     l_screation_date_tab2 l_screation_date_type;
9921     l_slast_updated_by_tab2 l_slast_updated_by_type;
9922     l_slast_update_date_tab2 l_slast_update_date_type;
9923     l_slast_update_login_tab2 l_slast_update_login_type;
9924 
9925   l_quote_chr_id NUMBER;
9926   l_return_status VARCHAR2(30);
9927 
9928 BEGIN
9929   IF (G_DEBUG_ENABLED = 'Y') THEN
9930     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
9931   END IF;
9932   OPEN c24(p_old_id);
9933   LOOP
9934     FETCH c24 bulk collect INTO
9935      l_sid_tab2, l_spov_id_tab2, l_skhr_id_tab2,
9936      l_sobject_version_number_tab2, l_sattribute_category_tab2, l_sattribute1_tab2,
9937      l_sattribute2_tab2, l_sattribute3_tab2, l_sattribute4_tab2,
9938      l_sattribute5_tab2, l_sattribute6_tab2, l_sattribute7_tab2,
9939      l_sattribute8_tab2, l_sattribute9_tab2, l_sattribute10_tab2,
9940      l_sattribute11_tab2, l_sattribute12_tab2, l_sattribute13_tab2,
9941      l_sattribute14_tab2, l_sattribute15_tab2, l_screated_by_tab2,
9942      l_screation_date_tab2, l_slast_updated_by_tab2, l_slast_update_date_tab2,
9943      l_slast_update_login_tab2
9944     limit G_BULK_SIZE;
9945     EXIT WHEN l_sid_tab2.COUNT = 0;
9946     FOR i IN l_sid_tab2.first..l_sid_tab2.last
9947     LOOP
9948       l_sid_tab(l_slctd_optns_counter) := l_sid_tab2(i);
9949       -- Change id
9950       l_sid_tab(l_slctd_optns_counter) := okc_p_util.raw_to_number(sys_guid());
9951 
9952       l_spov_id_tab(l_slctd_optns_counter) := l_spov_id_tab2(i);
9953       l_skhr_id_tab(l_slctd_optns_counter) := l_skhr_id_tab2(i);
9954       -- Change khr_id
9955       l_skhr_id_tab(l_slctd_optns_counter) := p_new_id;
9956 
9957       l_sobject_version_number_tab(l_slctd_optns_counter) := l_sobject_version_number_tab2(i);
9958       l_sattribute_category_tab(l_slctd_optns_counter) := l_sattribute_category_tab2(i);
9959       l_sattribute1_tab(l_slctd_optns_counter) := l_sattribute1_tab2(i);
9960       l_sattribute2_tab(l_slctd_optns_counter) := l_sattribute2_tab2(i);
9961       l_sattribute3_tab(l_slctd_optns_counter) := l_sattribute3_tab2(i);
9962       l_sattribute4_tab(l_slctd_optns_counter) := l_sattribute4_tab2(i);
9963       l_sattribute5_tab(l_slctd_optns_counter) := l_sattribute5_tab2(i);
9964       l_sattribute6_tab(l_slctd_optns_counter) := l_sattribute6_tab2(i);
9965       l_sattribute7_tab(l_slctd_optns_counter) := l_sattribute7_tab2(i);
9966       l_sattribute8_tab(l_slctd_optns_counter) := l_sattribute8_tab2(i);
9967       l_sattribute9_tab(l_slctd_optns_counter) := l_sattribute9_tab2(i);
9968       l_sattribute10_tab(l_slctd_optns_counter) := l_sattribute10_tab2(i);
9969       l_sattribute11_tab(l_slctd_optns_counter) := l_sattribute11_tab2(i);
9970       l_sattribute12_tab(l_slctd_optns_counter) := l_sattribute12_tab2(i);
9971       l_sattribute13_tab(l_slctd_optns_counter) := l_sattribute13_tab2(i);
9972       l_sattribute14_tab(l_slctd_optns_counter) := l_sattribute14_tab2(i);
9973       l_sattribute15_tab(l_slctd_optns_counter) := l_sattribute15_tab2(i);
9974       l_screated_by_tab(l_slctd_optns_counter) := l_screated_by_tab2(i);
9975       l_screation_date_tab(l_slctd_optns_counter) := l_screation_date_tab2(i);
9976       l_slast_updated_by_tab(l_slctd_optns_counter) := l_slast_updated_by_tab2(i);
9977       l_slast_update_date_tab(l_slctd_optns_counter) := l_slast_update_date_tab2(i);
9978       l_slast_update_login_tab(l_slctd_optns_counter) := l_slast_update_login_tab2(i);
9979 
9980       l_slctd_optns_counter := l_slctd_optns_counter + 1;
9981 
9982     END LOOP;
9983   END LOOP;
9984   CLOSE c24;
9985 
9986   IF (l_slctd_optns_counter > 1) THEN
9987     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
9988           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);
9989     END IF;
9990     forall i IN l_sid_tab.first..l_sid_tab.last
9991       INSERT INTO okl_slctd_optns (
9992        id, pov_id, khr_id,
9993        object_version_number, attribute_category, attribute1,
9994        attribute2, attribute3, attribute4,
9995        attribute5, attribute6, attribute7,
9996        attribute8, attribute9, attribute10,
9997        attribute11, attribute12, attribute13,
9998        attribute14, attribute15, created_by,
9999        creation_date, last_updated_by, last_update_date,
10000        last_update_login
10001       ) VALUES (
10002        l_sid_tab(i), l_spov_id_tab(i), l_skhr_id_tab(i),
10003        l_sobject_version_number_tab(i), l_sattribute_category_tab(i), l_sattribute1_tab(i),
10004        l_sattribute2_tab(i), l_sattribute3_tab(i), l_sattribute4_tab(i),
10005        l_sattribute5_tab(i), l_sattribute6_tab(i), l_sattribute7_tab(i),
10006        l_sattribute8_tab(i), l_sattribute9_tab(i), l_sattribute10_tab(i),
10007        l_sattribute11_tab(i), l_sattribute12_tab(i), l_sattribute13_tab(i),
10008        l_sattribute14_tab(i), l_sattribute15_tab(i), l_created_by,
10009        SYSDATE, l_last_updated_by, SYSDATE,
10010        l_last_update_login
10011       );
10012     --Bug# 5591688 - commenting as package has been stubbed in R12
10013     /*
10014     okl_quote_plans_pvt.modify_quote_structure(
10015       p_api_version => p_api_version,
10016       p_init_msg_list => p_init_msg_list,
10017       p_transaction_control => OKL_API.G_FALSE,
10018       p_chr_id => p_new_id,
10019       p_modify_reason_code => 'COPY_QUOTE',
10020       x_chr_id => l_quote_chr_id,
10021       x_return_status => l_return_status,
10022       x_msg_count => x_msg_count,
10023       x_msg_data => x_msg_data
10024     );
10025     IF l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
10026       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10027     ELSIF l_return_status = OKL_API.G_RET_STS_ERROR THEN
10028       RAISE OKL_API.G_EXCEPTION_ERROR;
10029     END IF;
10030     */
10031 
10032   END IF;
10033 EXCEPTION WHEN OTHERS THEN
10034 
10035   x_return_status := OKL_API.G_RET_STS_ERROR;
10036   /*OKL_API.set_message(p_app_name => 'OKL',
10037                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
10038                       p_token1 => 'ASSET_NUMBER',
10039                       p_token1_value => 'insert_okl_slctd_optns');*/
10040     /* DEBUG */
10041   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10042       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
10043     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing insert_okl_slctd_optns:l_sid_tab=' || l_sid_tab.COUNT || ' ...');
10044   END IF;
10045   IF (l_sid_tab.COUNT > 0) THEN
10046   FOR i IN l_sid_tab.first..l_sid_tab.last
10047   LOOP
10048     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10049           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sid_tab('||i||')=' || l_sid_tab(i));
10050       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_spov_id_tab('||i||')=' || l_spov_id_tab(i));
10051       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_skhr_id_tab('||i||')=' || l_skhr_id_tab(i));
10052       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sobject_version_number_tab('||i||')=' || l_sobject_version_number_tab(i));
10053       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute_category_tab('||i||')=' || l_sattribute_category_tab(i));
10054       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute1_tab('||i||')=' || l_sattribute1_tab(i));
10055       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute2_tab('||i||')=' || l_sattribute2_tab(i));
10056       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute3_tab('||i||')=' || l_sattribute3_tab(i));
10057       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute4_tab('||i||')=' || l_sattribute4_tab(i));
10058       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute5_tab('||i||')=' || l_sattribute5_tab(i));
10059       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute6_tab('||i||')=' || l_sattribute6_tab(i));
10060       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute7_tab('||i||')=' || l_sattribute7_tab(i));
10061       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute8_tab('||i||')=' || l_sattribute8_tab(i));
10062       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute9_tab('||i||')=' || l_sattribute9_tab(i));
10063       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute10_tab('||i||')=' || l_sattribute10_tab(i));
10064       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute11_tab('||i||')=' || l_sattribute11_tab(i));
10065       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute12_tab('||i||')=' || l_sattribute12_tab(i));
10066       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute13_tab('||i||')=' || l_sattribute13_tab(i));
10067       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute14_tab('||i||')=' || l_sattribute14_tab(i));
10068       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sattribute15_tab('||i||')=' || l_sattribute15_tab(i));
10069     END IF;
10070   END LOOP;
10071   END IF;
10072 
10073   RAISE OKC_API.G_EXCEPTION_ERROR;
10074 
10075 END; /* insert_okl_slctd_optns */
10076 
10077 FUNCTION find_osid_mapping_id(p_id IN NUMBER) RETURN NUMBER IS
10078 hi NUMBER;
10079 lo NUMBER;
10080 m NUMBER;
10081 BEGIN
10082   lo := 1;
10083   hi := l_okl_k_lines_counter - 1;
10084   WHILE (lo <= hi) LOOP
10085     m := FLOOR((hi + lo)/2);
10086     IF (l_osid_mapping_tab(m).id = p_id) THEN
10087       RETURN l_osid_mapping_tab(m).subsidy_id;
10088     ELSIF (l_osid_mapping_tab(m).id > p_id) THEN
10089       hi := m - 1;
10090     ELSE
10091       lo := m + 1;
10092     END IF;
10093   END LOOP;
10094   RETURN -1;
10095 END;  /* find_osid_mapping_id */
10096 
10097 PROCEDURE sort_osid_mapping_tab IS
10098   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
10099   --a numtabtype;
10100   l_stack numtabtype;
10101   l_stack_index NUMBER := 0;
10102   N NUMBER;
10103   R NUMBER;
10104   L NUMBER;
10105   P NUMBER;
10106   W NUMBER;
10107   W2 NUMBER;
10108   X NUMBER;
10109   I NUMBER;
10110   J NUMBER;
10111 BEGIN
10112   IF (G_DEBUG_ENABLED = 'Y') THEN
10113     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
10114   END IF;
10115   NULL;
10116 
10117   N := l_okl_k_lines_counter - 1;
10118   IF (N < 2) THEN
10119     RETURN;
10120   END IF;
10121   l_stack_index := l_stack_index + 1;
10122   l_stack(l_stack_index) := 1;
10123   l_stack_index := l_stack_index + 1;
10124   l_stack(l_stack_index) := N;
10125 
10126   --dbms_output.put_line('l_stack_index=' || l_stack_index);
10127   WHILE l_stack_index > 0
10128   LOOP
10129     R := l_stack(l_stack_index);
10130     l_stack_index := l_stack_index - 1;
10131     L := l_stack(l_stack_index);
10132     l_stack_index := l_stack_index - 1;
10133     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
10134     WHILE 1=1
10135     LOOP -- loop until L >= R
10136       I := L;
10137       J := R;
10138       P := FLOOR((L+R)/2);
10139       --if (a(L) > a(P)) then
10140       IF (l_osid_mapping_tab(L).id > l_osid_mapping_tab(P).id)
10141       THEN
10142         W := l_osid_mapping_tab(L).id;
10143         W2 := l_osid_mapping_tab(L).subsidy_id;
10144         l_osid_mapping_tab(L).id :=l_osid_mapping_tab(P).id;
10145         l_osid_mapping_tab(L).subsidy_id :=l_osid_mapping_tab(P).subsidy_id;
10146         l_osid_mapping_tab(P).id := W;
10147         l_osid_mapping_tab(P).subsidy_id := W2;
10148       END IF;
10149       --if (a(L) > a(R)) then
10150       IF (l_osid_mapping_tab(L).id > l_osid_mapping_tab(R).id)
10151       THEN
10152         W := l_osid_mapping_tab(L).id;
10153         W2 := l_osid_mapping_tab(L).subsidy_id;
10154         l_osid_mapping_tab(L).id :=l_osid_mapping_tab(R).id;
10155         l_osid_mapping_tab(L).subsidy_id :=l_osid_mapping_tab(R).subsidy_id;
10156         l_osid_mapping_tab(R).id := W;
10157         l_osid_mapping_tab(R).subsidy_id := W2;
10158       END IF;
10159       --if (a(P) > a(R)) then
10160       IF (l_osid_mapping_tab(P).id > l_osid_mapping_tab(R).id)
10161       THEN
10162         W := l_osid_mapping_tab(P).id;
10163         W2 := l_osid_mapping_tab(P).subsidy_id;
10164         l_osid_mapping_tab(P).id :=l_osid_mapping_tab(R).id;
10165         l_osid_mapping_tab(P).subsidy_id :=l_osid_mapping_tab(R).subsidy_id;
10166         l_osid_mapping_tab(R).id := W;
10167         l_osid_mapping_tab(R).subsidy_id := W2;
10168       END IF;
10169       --X := a(P);
10170       X := l_osid_mapping_tab(P).id;
10171       WHILE 1=1
10172       LOOP    -- until I > J
10173         --while (a(I) < X) loop
10174         WHILE (l_osid_mapping_tab(I).id < X) LOOP
10175           I := I + 1;
10176         END LOOP;
10177         WHILE (X < l_osid_mapping_tab(J).id) LOOP
10178           J := J - 1;
10179         END LOOP;
10180         IF (I <= J) THEN
10181           W := l_osid_mapping_tab(I).id;
10182           W2 := l_osid_mapping_tab(I).subsidy_id;
10183           l_osid_mapping_tab(I).id :=l_osid_mapping_tab(J).id;
10184           l_osid_mapping_tab(I).subsidy_id :=l_osid_mapping_tab(J).subsidy_id;
10185           l_osid_mapping_tab(J).id := W;
10186           l_osid_mapping_tab(J).subsidy_id := W2;
10187           I := I + 1;
10188           J := J - 1;
10189         END IF;
10190         EXIT WHEN I > J;
10191       END LOOP;
10192       IF (J - L < R - I) THEN
10193         IF (I < R) THEN
10194           --push(I); push(R);
10195           l_stack_index := l_stack_index + 1;
10196           l_stack(l_stack_index) := I;
10197           l_stack_index := l_stack_index + 1;
10198           l_stack(l_stack_index) := R;
10199           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
10200         END IF;
10201         R := J;
10202       ELSE
10203         IF (L < J) THEN
10204           --push(L); push(J);
10205           l_stack_index := l_stack_index + 1;
10206           l_stack(l_stack_index) := L;
10207           l_stack_index := l_stack_index + 1;
10208           l_stack(l_stack_index) := J;
10209           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
10210         END IF;
10211         L := I;
10212       END IF;
10213 
10214       EXIT WHEN (L >= R);
10215     END LOOP;
10216   END LOOP;
10217 
10218 EXCEPTION WHEN OTHERS THEN
10219 
10220   x_return_status := OKL_API.G_RET_STS_ERROR;
10221   /*OKL_API.set_message(p_app_name => 'OKL',
10222                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
10223                       p_token1 => 'ASSET_NUMBER',
10224                       p_token1_value => 'sort_osid_mapping_tab');*/
10225     /* DEBUG */
10226   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10227       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
10228     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_osid_mapping_tab:l_osid_mapping_tab N=' || N || ' ...');
10229   END IF;
10230 
10231   --print array
10232   FOR i IN 1..N
10233   LOOP
10234     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10235           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);
10236     END IF;
10237   END LOOP;
10238 
10239   RAISE OKC_API.G_EXCEPTION_ERROR;
10240 
10241 END;  /* sort_osid_mapping_tab */
10242 
10243 FUNCTION find_okl_k_lines_rec(p_id IN NUMBER) RETURN l_okl_k_lines_rec_type IS
10244 hi NUMBER;
10245 lo NUMBER;
10246 m NUMBER;
10247 l_tmp_rec l_okl_k_lines_rec_type;
10248 BEGIN
10249   lo := 1;
10250   hi := l_okl_k_lines_rec_counter - 1;
10251   WHILE (lo <= hi) LOOP
10252     m := FLOOR((hi + lo)/2);
10253     IF (l_okl_k_lines_rec(m).id = p_id) THEN
10254       RETURN l_okl_k_lines_rec(m);
10255     ELSIF (l_okl_k_lines_rec(m).id > p_id) THEN
10256       hi := m - 1;
10257     ELSE
10258       lo := m + 1;
10259     END IF;
10260   END LOOP;
10261   RETURN l_tmp_rec;
10262 END;  /* find_okl_k_lines_rec */
10263 
10264 PROCEDURE sort_okl_k_lines_rec IS
10265   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
10266   --a numtabtype;
10267   l_stack numtabtype;
10268   l_stack_index NUMBER := 0;
10269   N NUMBER;
10270   R NUMBER;
10271   L NUMBER;
10272   P NUMBER;
10273   W NUMBER;
10274   W2 NUMBER;
10275   W3 NUMBER;
10276   W4 okc_k_lines_tl.item_description%TYPE;
10277   X NUMBER;
10278   I NUMBER;
10279   J NUMBER;
10280 BEGIN
10281   IF (G_DEBUG_ENABLED = 'Y') THEN
10282     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
10283   END IF;
10284   NULL;
10285 
10286   N := l_okl_k_lines_rec_counter - 1;
10287   IF (N < 2) THEN
10288     RETURN;
10289   END IF;
10290   l_stack_index := l_stack_index + 1;
10291   l_stack(l_stack_index) := 1;
10292   l_stack_index := l_stack_index + 1;
10293   l_stack(l_stack_index) := N;
10294 
10295   --dbms_output.put_line('l_stack_index=' || l_stack_index);
10296   WHILE l_stack_index > 0
10297   LOOP
10298     R := l_stack(l_stack_index);
10299     l_stack_index := l_stack_index - 1;
10300     L := l_stack(l_stack_index);
10301     l_stack_index := l_stack_index - 1;
10302     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
10303     WHILE 1=1
10304     LOOP -- loop until L >= R
10305       I := L;
10306       J := R;
10307       P := FLOOR((L+R)/2);
10308       --if (a(L) > a(P)) then
10309       IF (l_okl_k_lines_rec(L).id > l_okl_k_lines_rec(P).id)
10310       THEN
10311         W := l_okl_k_lines_rec(L).id;
10312         W2 := l_okl_k_lines_rec(L).oec;
10313         W3 := l_okl_k_lines_rec(L).year_built;
10314         W4 := l_okl_k_lines_rec(L).item_description;
10315         l_okl_k_lines_rec(L).id :=l_okl_k_lines_rec(P).id;
10316         l_okl_k_lines_rec(L).oec :=l_okl_k_lines_rec(P).oec;
10317         l_okl_k_lines_rec(L).year_built :=l_okl_k_lines_rec(P).year_built;
10318         l_okl_k_lines_rec(L).item_description :=l_okl_k_lines_rec(P).item_description;
10319         l_okl_k_lines_rec(P).id := W;
10320         l_okl_k_lines_rec(P).oec := W2;
10321         l_okl_k_lines_rec(P).year_built := W3;
10322         l_okl_k_lines_rec(P).item_description := W4;
10323       END IF;
10324       --if (a(L) > a(R)) then
10325       IF (l_okl_k_lines_rec(L).id > l_okl_k_lines_rec(R).id)
10326       THEN
10327         W := l_okl_k_lines_rec(L).id;
10328         W2 := l_okl_k_lines_rec(L).oec;
10329         W3 := l_okl_k_lines_rec(L).year_built;
10330         W4 := l_okl_k_lines_rec(L).item_description;
10331         l_okl_k_lines_rec(L).id :=l_okl_k_lines_rec(R).id;
10332         l_okl_k_lines_rec(L).oec :=l_okl_k_lines_rec(R).oec;
10333         l_okl_k_lines_rec(L).year_built :=l_okl_k_lines_rec(R).year_built;
10334         l_okl_k_lines_rec(L).item_description :=l_okl_k_lines_rec(R).item_description;
10335         l_okl_k_lines_rec(R).id := W;
10336         l_okl_k_lines_rec(R).oec := W2;
10337         l_okl_k_lines_rec(R).year_built := W3;
10338         l_okl_k_lines_rec(R).item_description := W4;
10339       END IF;
10340       --if (a(P) > a(R)) then
10341       IF (l_okl_k_lines_rec(P).id > l_okl_k_lines_rec(R).id)
10342       THEN
10343         W := l_okl_k_lines_rec(P).id;
10344         W2 := l_okl_k_lines_rec(P).oec;
10345         W3 := l_okl_k_lines_rec(P).year_built;
10346         W4 := l_okl_k_lines_rec(P).item_description;
10347         l_okl_k_lines_rec(P).id :=l_okl_k_lines_rec(R).id;
10348         l_okl_k_lines_rec(P).oec :=l_okl_k_lines_rec(R).oec;
10349         l_okl_k_lines_rec(P).year_built :=l_okl_k_lines_rec(R).year_built;
10350         l_okl_k_lines_rec(P).item_description :=l_okl_k_lines_rec(R).item_description;
10351         l_okl_k_lines_rec(R).id := W;
10352         l_okl_k_lines_rec(R).oec := W2;
10353         l_okl_k_lines_rec(R).year_built := W3;
10354         l_okl_k_lines_rec(R).item_description := W4;
10355       END IF;
10356       --X := a(P);
10357       X := l_okl_k_lines_rec(P).id;
10358       WHILE 1=1
10359       LOOP    -- until I > J
10360         --while (a(I) < X) loop
10361         WHILE (l_okl_k_lines_rec(I).id < X) LOOP
10362           I := I + 1;
10363         END LOOP;
10364         WHILE (X < l_okl_k_lines_rec(J).id) LOOP
10365           J := J - 1;
10366         END LOOP;
10367         IF (I <= J) THEN
10368           W := l_okl_k_lines_rec(I).id;
10369           W2 := l_okl_k_lines_rec(I).oec;
10370           W3 := l_okl_k_lines_rec(I).year_built;
10371           W4 := l_okl_k_lines_rec(I).item_description;
10372           l_okl_k_lines_rec(I).id :=l_okl_k_lines_rec(J).id;
10373           l_okl_k_lines_rec(I).oec :=l_okl_k_lines_rec(J).oec;
10374           l_okl_k_lines_rec(I).year_built :=l_okl_k_lines_rec(J).year_built;
10375           l_okl_k_lines_rec(I).item_description :=l_okl_k_lines_rec(J).item_description;
10376           l_okl_k_lines_rec(J).id := W;
10377           l_okl_k_lines_rec(J).oec := W2;
10378           l_okl_k_lines_rec(J).year_built := W3;
10379           l_okl_k_lines_rec(J).item_description := W4;
10380           I := I + 1;
10381           J := J - 1;
10382         END IF;
10383         EXIT WHEN I > J;
10384       END LOOP;
10385       IF (J - L < R - I) THEN
10386         IF (I < R) THEN
10387           --push(I); push(R);
10388           l_stack_index := l_stack_index + 1;
10389           l_stack(l_stack_index) := I;
10390           l_stack_index := l_stack_index + 1;
10391           l_stack(l_stack_index) := R;
10392           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
10393         END IF;
10394         R := J;
10395       ELSE
10396         IF (L < J) THEN
10397           --push(L); push(J);
10398           l_stack_index := l_stack_index + 1;
10399           l_stack(l_stack_index) := L;
10400           l_stack_index := l_stack_index + 1;
10401           l_stack(l_stack_index) := J;
10402           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
10403         END IF;
10404         L := I;
10405       END IF;
10406 
10407       EXIT WHEN (L >= R);
10408     END LOOP;
10409   END LOOP;
10410 
10411 EXCEPTION WHEN OTHERS THEN
10412 
10413   x_return_status := OKL_API.G_RET_STS_ERROR;
10414   /*OKL_API.set_message(p_app_name => 'OKL',
10415                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
10416                       p_token1 => 'ASSET_NUMBER',
10417                       p_token1_value => 'sort_okl_k_lines_rec');*/
10418     /* DEBUG */
10419   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10420       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
10421     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_okl_k_lines_rec:l_okl_k_lines_rec N=' || N || ' ...');
10422   END IF;
10423 
10424   --print array
10425   FOR i IN 1..N
10426   LOOP
10427     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10428           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 );
10429     END IF;
10430   END LOOP;
10431 
10432   RAISE OKC_API.G_EXCEPTION_ERROR;
10433 
10434 END;  /* sort_okl_k_lines_rec */
10435 
10436 
10437 PROCEDURE insert_okl_k_lines IS
10438 CURSOR c8(p_id NUMBER) IS
10439 SELECT
10440        a.id, a.kle_id, a.sty_id,
10441        a.object_version_number, a.lao_amount, a.fee_charge,
10442        a.title_date, a.date_residual_last_review, a.date_last_reamortisation,
10443        a.termination_purchase_amount, a.date_last_cleanup, a.remarketed_amount,
10444        a.date_remarketed, a.remarket_margin, a.repurchased_amount,
10445        a.date_repurchased, a.gain_loss, a.floor_amount,
10446        a.previous_contract, a.tracked_residual, a.date_title_received,
10447        a.estimated_oec, a.residual_percentage, a.capital_reduction,
10448        a.vendor_advance_paid, a.tradein_amount, a.delivered_date,
10449        a.year_of_manufacture, a.initial_direct_cost, a.occupancy,
10450        a.date_last_inspection, a.date_next_inspection_due, a.weighted_average_life,
10451        a.bond_equivalent_yield, a.refinance_amount, a.year_built,
10452        a.coverage_ratio, a.gross_square_footage, a.net_rentable,
10453        a.date_letter_acceptance, a.date_commitment_expiration, a.date_appraisal,
10454        a.appraisal_value, a.residual_value, a.percent,
10455        a.coverage, a.lrv_amount, a.amount,
10456        a.lrs_percent, a.evergreen_percent, a.percent_stake,
10457        a.amount_stake, a.date_sold, a.sty_id_for,
10458        a.attribute_category, a.attribute1, a.attribute2,
10459        a.attribute3, a.attribute4, a.attribute5,
10460        a.attribute6, a.attribute7, a.attribute8,
10461        a.attribute9, a.attribute10, a.attribute11,
10462        a.attribute12, a.attribute13, a.attribute14,
10463        a.attribute15, a.created_by, a.creation_date,
10464        a.last_updated_by, a.last_update_date, a.last_update_login,
10465        a.nty_code, a.fcg_code, a.prc_code,
10466        a.re_lease_yn, a.prescribed_asset_yn, a.credit_tenant_yn,
10467        a.secured_deal_yn, a.clg_id, a.date_funding,
10468        a.date_funding_required, a.date_accepted, a.date_delivery_expected,
10469        a.oec, a.capital_amount, a.residual_grnty_amount,
10470        a.residual_code, a.rvi_premium, a.credit_nature,
10471        a.capitalized_interest, a.capital_reduction_percent, a.date_pay_investor_start,
10472        a.pay_investor_frequency, a.pay_investor_event, a.pay_investor_remittance_days,
10473        a.fee_type, a.subsidy_id, a.subsidy_override_amount,
10474        a.pre_tax_yield, a.after_tax_yield, a.implicit_interest_rate,
10475        a.implicit_non_idc_interest_rate, a.pre_tax_irr, a.after_tax_irr,
10476        a.sub_pre_tax_yield, a.sub_after_tax_yield, a.sub_impl_interest_rate,
10477        a.sub_impl_non_idc_int_rate, a.sub_pre_tax_irr, a.sub_after_tax_irr,
10478        a.item_insurance_category, a.qte_id, a.funding_date,
10479        a.stream_type_subclass, b.lse_id, c.item_description,
10480        a.fee_purpose_code, a.date_funding_expected, a.manufacturer_name,
10481        a.model_number, a.down_payment_receiver_code, a.capitalize_down_payment_yn
10482 FROM okl_k_lines a,
10483      okc_k_lines_b b,
10484      okc_k_lines_tl c
10485 WHERE b.id = a.id
10486 AND   b.dnz_chr_id = p_id
10487 AND   b.id = c.id
10488 AND   c.LANGUAGE = USERENV('LANG');
10489 
10490     TYPE l_id_type IS TABLE OF okl_k_lines.id%TYPE INDEX BY BINARY_INTEGER;
10491     TYPE l_kle_id_type IS TABLE OF okl_k_lines.kle_id%TYPE INDEX BY BINARY_INTEGER;
10492     TYPE l_sty_id_type IS TABLE OF okl_k_lines.sty_id%TYPE INDEX BY BINARY_INTEGER;
10493     TYPE l_object_version_number_type IS TABLE OF okl_k_lines.object_version_number%TYPE INDEX BY BINARY_INTEGER;
10494     TYPE l_lao_amount_type IS TABLE OF okl_k_lines.lao_amount%TYPE INDEX BY BINARY_INTEGER;
10495     TYPE l_fee_charge_type IS TABLE OF okl_k_lines.fee_charge%TYPE INDEX BY BINARY_INTEGER;
10496     TYPE l_title_date_type IS TABLE OF okl_k_lines.title_date%TYPE INDEX BY BINARY_INTEGER;
10497     TYPE l_date_residual_last_revi_type IS TABLE OF okl_k_lines.date_residual_last_review%TYPE INDEX BY BINARY_INTEGER;
10498     TYPE l_date_last_reamortisatio_type IS TABLE OF okl_k_lines.date_last_reamortisation%TYPE INDEX BY BINARY_INTEGER;
10499     TYPE l_termination_purchase_am_type IS TABLE OF okl_k_lines.termination_purchase_amount%TYPE INDEX BY BINARY_INTEGER;
10500     TYPE l_date_last_cleanup_type IS TABLE OF okl_k_lines.date_last_cleanup%TYPE INDEX BY BINARY_INTEGER;
10501     TYPE l_remarketed_amount_type IS TABLE OF okl_k_lines.remarketed_amount%TYPE INDEX BY BINARY_INTEGER;
10502     TYPE l_date_remarketed_type IS TABLE OF okl_k_lines.date_remarketed%TYPE INDEX BY BINARY_INTEGER;
10503     TYPE l_remarket_margin_type IS TABLE OF okl_k_lines.remarket_margin%TYPE INDEX BY BINARY_INTEGER;
10504     TYPE l_repurchased_amount_type IS TABLE OF okl_k_lines.repurchased_amount%TYPE INDEX BY BINARY_INTEGER;
10505     TYPE l_date_repurchased_type IS TABLE OF okl_k_lines.date_repurchased%TYPE INDEX BY BINARY_INTEGER;
10506     TYPE l_gain_loss_type IS TABLE OF okl_k_lines.gain_loss%TYPE INDEX BY BINARY_INTEGER;
10507     TYPE l_floor_amount_type IS TABLE OF okl_k_lines.floor_amount%TYPE INDEX BY BINARY_INTEGER;
10508     TYPE l_previous_contract_type IS TABLE OF okl_k_lines.previous_contract%TYPE INDEX BY BINARY_INTEGER;
10509     TYPE l_tracked_residual_type IS TABLE OF okl_k_lines.tracked_residual%TYPE INDEX BY BINARY_INTEGER;
10510     TYPE l_date_title_received_type IS TABLE OF okl_k_lines.date_title_received%TYPE INDEX BY BINARY_INTEGER;
10511     TYPE l_estimated_oec_type IS TABLE OF okl_k_lines.estimated_oec%TYPE INDEX BY BINARY_INTEGER;
10512     TYPE l_residual_percentage_type IS TABLE OF okl_k_lines.residual_percentage%TYPE INDEX BY BINARY_INTEGER;
10513     TYPE l_capital_reduction_type IS TABLE OF okl_k_lines.capital_reduction%TYPE INDEX BY BINARY_INTEGER;
10514     TYPE l_vendor_advance_paid_type IS TABLE OF okl_k_lines.vendor_advance_paid%TYPE INDEX BY BINARY_INTEGER;
10515     TYPE l_tradein_amount_type IS TABLE OF okl_k_lines.tradein_amount%TYPE INDEX BY BINARY_INTEGER;
10516     TYPE l_delivered_date_type IS TABLE OF okl_k_lines.delivered_date%TYPE INDEX BY BINARY_INTEGER;
10517     TYPE l_year_of_manufacture_type IS TABLE OF okl_k_lines.year_of_manufacture%TYPE INDEX BY BINARY_INTEGER;
10518     TYPE l_initial_direct_cost_type IS TABLE OF okl_k_lines.initial_direct_cost%TYPE INDEX BY BINARY_INTEGER;
10519     TYPE l_occupancy_type IS TABLE OF okl_k_lines.occupancy%TYPE INDEX BY BINARY_INTEGER;
10520     TYPE l_date_last_inspection_type IS TABLE OF okl_k_lines.date_last_inspection%TYPE INDEX BY BINARY_INTEGER;
10521     TYPE l_date_next_inspection_du_type IS TABLE OF okl_k_lines.date_next_inspection_due%TYPE INDEX BY BINARY_INTEGER;
10522     TYPE l_weighted_average_life_type IS TABLE OF okl_k_lines.weighted_average_life%TYPE INDEX BY BINARY_INTEGER;
10523     TYPE l_bond_equivalent_yield_type IS TABLE OF okl_k_lines.bond_equivalent_yield%TYPE INDEX BY BINARY_INTEGER;
10524     TYPE l_refinance_amount_type IS TABLE OF okl_k_lines.refinance_amount%TYPE INDEX BY BINARY_INTEGER;
10525     TYPE l_year_built_type IS TABLE OF okl_k_lines.year_built%TYPE INDEX BY BINARY_INTEGER;
10526     TYPE l_coverage_ratio_type IS TABLE OF okl_k_lines.coverage_ratio%TYPE INDEX BY BINARY_INTEGER;
10527     TYPE l_gross_square_footage_type IS TABLE OF okl_k_lines.gross_square_footage%TYPE INDEX BY BINARY_INTEGER;
10528     TYPE l_net_rentable_type IS TABLE OF okl_k_lines.net_rentable%TYPE INDEX BY BINARY_INTEGER;
10529     TYPE l_date_letter_acceptance_type IS TABLE OF okl_k_lines.date_letter_acceptance%TYPE INDEX BY BINARY_INTEGER;
10530     TYPE l_date_commitment_expirat_type IS TABLE OF okl_k_lines.date_commitment_expiration%TYPE INDEX BY BINARY_INTEGER;
10531     TYPE l_date_appraisal_type IS TABLE OF okl_k_lines.date_appraisal%TYPE INDEX BY BINARY_INTEGER;
10532     TYPE l_appraisal_value_type IS TABLE OF okl_k_lines.appraisal_value%TYPE INDEX BY BINARY_INTEGER;
10533     TYPE l_residual_value_type IS TABLE OF okl_k_lines.residual_value%TYPE INDEX BY BINARY_INTEGER;
10534     TYPE l_percent_type IS TABLE OF okl_k_lines.percent%TYPE INDEX BY BINARY_INTEGER;
10535     TYPE l_coverage_type IS TABLE OF okl_k_lines.coverage%TYPE INDEX BY BINARY_INTEGER;
10536     TYPE l_lrv_amount_type IS TABLE OF okl_k_lines.lrv_amount%TYPE INDEX BY BINARY_INTEGER;
10537     TYPE l_amount_type IS TABLE OF okl_k_lines.amount%TYPE INDEX BY BINARY_INTEGER;
10538     TYPE l_lrs_percent_type IS TABLE OF okl_k_lines.lrs_percent%TYPE INDEX BY BINARY_INTEGER;
10539     TYPE l_evergreen_percent_type IS TABLE OF okl_k_lines.evergreen_percent%TYPE INDEX BY BINARY_INTEGER;
10540     TYPE l_percent_stake_type IS TABLE OF okl_k_lines.percent_stake%TYPE INDEX BY BINARY_INTEGER;
10541     TYPE l_amount_stake_type IS TABLE OF okl_k_lines.amount_stake%TYPE INDEX BY BINARY_INTEGER;
10542     TYPE l_date_sold_type IS TABLE OF okl_k_lines.date_sold%TYPE INDEX BY BINARY_INTEGER;
10543     TYPE l_sty_id_for_type IS TABLE OF okl_k_lines.sty_id_for%TYPE INDEX BY BINARY_INTEGER;
10544     TYPE l_attribute_category_type IS TABLE OF okl_k_lines.attribute_category%TYPE INDEX BY BINARY_INTEGER;
10545     TYPE l_attribute1_type IS TABLE OF okl_k_lines.attribute1%TYPE INDEX BY BINARY_INTEGER;
10546     TYPE l_attribute2_type IS TABLE OF okl_k_lines.attribute2%TYPE INDEX BY BINARY_INTEGER;
10547     TYPE l_attribute3_type IS TABLE OF okl_k_lines.attribute3%TYPE INDEX BY BINARY_INTEGER;
10548     TYPE l_attribute4_type IS TABLE OF okl_k_lines.attribute4%TYPE INDEX BY BINARY_INTEGER;
10549     TYPE l_attribute5_type IS TABLE OF okl_k_lines.attribute5%TYPE INDEX BY BINARY_INTEGER;
10550     TYPE l_attribute6_type IS TABLE OF okl_k_lines.attribute6%TYPE INDEX BY BINARY_INTEGER;
10551     TYPE l_attribute7_type IS TABLE OF okl_k_lines.attribute7%TYPE INDEX BY BINARY_INTEGER;
10552     TYPE l_attribute8_type IS TABLE OF okl_k_lines.attribute8%TYPE INDEX BY BINARY_INTEGER;
10553     TYPE l_attribute9_type IS TABLE OF okl_k_lines.attribute9%TYPE INDEX BY BINARY_INTEGER;
10554     TYPE l_attribute10_type IS TABLE OF okl_k_lines.attribute10%TYPE INDEX BY BINARY_INTEGER;
10555     TYPE l_attribute11_type IS TABLE OF okl_k_lines.attribute11%TYPE INDEX BY BINARY_INTEGER;
10556     TYPE l_attribute12_type IS TABLE OF okl_k_lines.attribute12%TYPE INDEX BY BINARY_INTEGER;
10557     TYPE l_attribute13_type IS TABLE OF okl_k_lines.attribute13%TYPE INDEX BY BINARY_INTEGER;
10558     TYPE l_attribute14_type IS TABLE OF okl_k_lines.attribute14%TYPE INDEX BY BINARY_INTEGER;
10559     TYPE l_attribute15_type IS TABLE OF okl_k_lines.attribute15%TYPE INDEX BY BINARY_INTEGER;
10560     TYPE l_created_by_type IS TABLE OF okl_k_lines.created_by%TYPE INDEX BY BINARY_INTEGER;
10561     TYPE l_creation_date_type IS TABLE OF okl_k_lines.creation_date%TYPE INDEX BY BINARY_INTEGER;
10562     TYPE l_last_updated_by_type IS TABLE OF okl_k_lines.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
10563     TYPE l_last_update_date_type IS TABLE OF okl_k_lines.last_update_date%TYPE INDEX BY BINARY_INTEGER;
10564     TYPE l_last_update_login_type IS TABLE OF okl_k_lines.last_update_login%TYPE INDEX BY BINARY_INTEGER;
10565     TYPE l_nty_code_type IS TABLE OF okl_k_lines.nty_code%TYPE INDEX BY BINARY_INTEGER;
10566     TYPE l_fcg_code_type IS TABLE OF okl_k_lines.fcg_code%TYPE INDEX BY BINARY_INTEGER;
10567     TYPE l_prc_code_type IS TABLE OF okl_k_lines.prc_code%TYPE INDEX BY BINARY_INTEGER;
10568     TYPE l_re_lease_yn_type IS TABLE OF okl_k_lines.re_lease_yn%TYPE INDEX BY BINARY_INTEGER;
10569     TYPE l_prescribed_asset_yn_type IS TABLE OF okl_k_lines.prescribed_asset_yn%TYPE INDEX BY BINARY_INTEGER;
10570     TYPE l_credit_tenant_yn_type IS TABLE OF okl_k_lines.credit_tenant_yn%TYPE INDEX BY BINARY_INTEGER;
10571     TYPE l_secured_deal_yn_type IS TABLE OF okl_k_lines.secured_deal_yn%TYPE INDEX BY BINARY_INTEGER;
10572     TYPE l_clg_id_type IS TABLE OF okl_k_lines.clg_id%TYPE INDEX BY BINARY_INTEGER;
10573     TYPE l_date_funding_type IS TABLE OF okl_k_lines.date_funding%TYPE INDEX BY BINARY_INTEGER;
10574     TYPE l_date_funding_required_type IS TABLE OF okl_k_lines.date_funding_required%TYPE INDEX BY BINARY_INTEGER;
10575     TYPE l_date_accepted_type IS TABLE OF okl_k_lines.date_accepted%TYPE INDEX BY BINARY_INTEGER;
10576     TYPE l_date_delivery_expected_type IS TABLE OF okl_k_lines.date_delivery_expected%TYPE INDEX BY BINARY_INTEGER;
10577     TYPE l_oec_type IS TABLE OF okl_k_lines.oec%TYPE INDEX BY BINARY_INTEGER;
10578     TYPE l_capital_amount_type IS TABLE OF okl_k_lines.capital_amount%TYPE INDEX BY BINARY_INTEGER;
10579     TYPE l_residual_grnty_amount_type IS TABLE OF okl_k_lines.residual_grnty_amount%TYPE INDEX BY BINARY_INTEGER;
10580     TYPE l_residual_code_type IS TABLE OF okl_k_lines.residual_code%TYPE INDEX BY BINARY_INTEGER;
10581     TYPE l_rvi_premium_type IS TABLE OF okl_k_lines.rvi_premium%TYPE INDEX BY BINARY_INTEGER;
10582     TYPE l_credit_nature_type IS TABLE OF okl_k_lines.credit_nature%TYPE INDEX BY BINARY_INTEGER;
10583     TYPE l_capitalized_interest_type IS TABLE OF okl_k_lines.capitalized_interest%TYPE INDEX BY BINARY_INTEGER;
10584     TYPE l_capital_reduction_perce_type IS TABLE OF okl_k_lines.capital_reduction_percent%TYPE INDEX BY BINARY_INTEGER;
10585     TYPE l_date_pay_investor_start_type IS TABLE OF okl_k_lines.date_pay_investor_start%TYPE INDEX BY BINARY_INTEGER;
10586     TYPE l_pay_investor_frequency_type IS TABLE OF okl_k_lines.pay_investor_frequency%TYPE INDEX BY BINARY_INTEGER;
10587     TYPE l_pay_investor_event_type IS TABLE OF okl_k_lines.pay_investor_event%TYPE INDEX BY BINARY_INTEGER;
10588     TYPE l_pay_investor_remit_days_type IS TABLE OF okl_k_lines.pay_investor_remittance_days%TYPE INDEX BY BINARY_INTEGER;
10589     TYPE l_fee_type_type IS TABLE OF okl_k_lines.fee_type%TYPE INDEX BY BINARY_INTEGER;
10590     TYPE l_subsidy_id_type IS TABLE OF okl_k_lines.subsidy_id%TYPE INDEX BY BINARY_INTEGER;
10591     TYPE l_subsidy_override_amount_type IS TABLE OF okl_k_lines.subsidy_override_amount%TYPE INDEX BY BINARY_INTEGER;
10592     TYPE l_pre_tax_yield_type IS TABLE OF okl_k_lines.pre_tax_yield%TYPE INDEX BY BINARY_INTEGER;
10593     TYPE l_after_tax_yield_type IS TABLE OF okl_k_lines.after_tax_yield%TYPE INDEX BY BINARY_INTEGER;
10594     TYPE l_implicit_interest_rate_type IS TABLE OF okl_k_lines.implicit_interest_rate%TYPE INDEX BY BINARY_INTEGER;
10595     TYPE l_implicit_non_idc_i_rate_type IS TABLE OF okl_k_lines.implicit_non_idc_interest_rate%TYPE INDEX BY BINARY_INTEGER;
10596     TYPE l_pre_tax_irr_type IS TABLE OF okl_k_lines.pre_tax_irr%TYPE INDEX BY BINARY_INTEGER;
10597     TYPE l_after_tax_irr_type IS TABLE OF okl_k_lines.after_tax_irr%TYPE INDEX BY BINARY_INTEGER;
10598     TYPE l_sub_pre_tax_yield_type IS TABLE OF okl_k_lines.sub_pre_tax_yield%TYPE INDEX BY BINARY_INTEGER;
10599     TYPE l_sub_after_tax_yield_type IS TABLE OF okl_k_lines.sub_after_tax_yield%TYPE INDEX BY BINARY_INTEGER;
10600     TYPE l_sub_impl_interest_rate_type IS TABLE OF okl_k_lines.sub_impl_interest_rate%TYPE INDEX BY BINARY_INTEGER;
10601     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;
10602     TYPE l_sub_pre_tax_irr_type IS TABLE OF okl_k_lines.sub_pre_tax_irr%TYPE INDEX BY BINARY_INTEGER;
10603     TYPE l_sub_after_tax_irr_type IS TABLE OF okl_k_lines.sub_after_tax_irr%TYPE INDEX BY BINARY_INTEGER;
10604     TYPE l_item_insurance_category_type IS TABLE OF okl_k_lines.item_insurance_category%TYPE INDEX BY BINARY_INTEGER;
10605     TYPE l_qte_id_type IS TABLE OF okl_k_lines.qte_id%TYPE INDEX BY BINARY_INTEGER;
10606     TYPE l_funding_date_type IS TABLE OF okl_k_lines.funding_date%TYPE INDEX BY BINARY_INTEGER;
10607     TYPE l_stream_type_subclass_type IS TABLE OF okl_k_lines.stream_type_subclass%TYPE INDEX BY BINARY_INTEGER;
10608     TYPE l_lse_id_type IS TABLE OF okc_k_lines_b.lse_id%TYPE INDEX BY BINARY_INTEGER;
10609     TYPE l_item_description_type IS TABLE OF okc_k_lines_tl.item_description%TYPE INDEX BY BINARY_INTEGER;
10610     TYPE l_fee_purpose_code_type IS TABLE OF okl_k_lines.fee_purpose_code%TYPE INDEX BY BINARY_INTEGER;
10611     TYPE l_date_funding_expected_type is table of okl_k_lines.date_funding_expected%TYPE index by binary_integer;
10612     TYPE l_manufacturer_name_type is table of okl_k_lines.manufacturer_name%TYPE index by binary_integer;
10613     TYPE l_model_number_type is table of okl_k_lines.model_number%TYPE index by binary_integer;
10614     TYPE l_down_payment_recei_code_type is table of okl_k_lines.down_payment_receiver_code%TYPE index by binary_integer;
10615     TYPE l_capitalize_down_paym_yn_type is table of okl_k_lines.capitalize_down_payment_yn%TYPE index by binary_integer;
10616 
10617     l_id_tab l_id_type;
10618     l_kle_id_tab l_kle_id_type;
10619     l_sty_id_tab l_sty_id_type;
10620     l_object_version_number_tab l_object_version_number_type;
10621     l_lao_amount_tab l_lao_amount_type;
10622     l_fee_charge_tab l_fee_charge_type;
10623     l_title_date_tab l_title_date_type;
10624     l_date_residual_last_revi_tab l_date_residual_last_revi_type;
10625     l_date_last_reamortisatio_tab l_date_last_reamortisatio_type;
10626     l_termination_purchase_am_tab l_termination_purchase_am_type;
10627     l_date_last_cleanup_tab l_date_last_cleanup_type;
10628     l_remarketed_amount_tab l_remarketed_amount_type;
10629     l_date_remarketed_tab l_date_remarketed_type;
10630     l_remarket_margin_tab l_remarket_margin_type;
10631     l_repurchased_amount_tab l_repurchased_amount_type;
10632     l_date_repurchased_tab l_date_repurchased_type;
10633     l_gain_loss_tab l_gain_loss_type;
10634     l_floor_amount_tab l_floor_amount_type;
10635     l_previous_contract_tab l_previous_contract_type;
10636     l_tracked_residual_tab l_tracked_residual_type;
10637     l_date_title_received_tab l_date_title_received_type;
10638     l_estimated_oec_tab l_estimated_oec_type;
10639     l_residual_percentage_tab l_residual_percentage_type;
10640     l_capital_reduction_tab l_capital_reduction_type;
10641     l_vendor_advance_paid_tab l_vendor_advance_paid_type;
10642     l_tradein_amount_tab l_tradein_amount_type;
10643     l_delivered_date_tab l_delivered_date_type;
10644     l_year_of_manufacture_tab l_year_of_manufacture_type;
10645     l_initial_direct_cost_tab l_initial_direct_cost_type;
10646     l_occupancy_tab l_occupancy_type;
10647     l_date_last_inspection_tab l_date_last_inspection_type;
10648     l_date_next_inspection_du_tab l_date_next_inspection_du_type;
10649     l_weighted_average_life_tab l_weighted_average_life_type;
10650     l_bond_equivalent_yield_tab l_bond_equivalent_yield_type;
10651     l_refinance_amount_tab l_refinance_amount_type;
10652     l_year_built_tab l_year_built_type;
10653     l_coverage_ratio_tab l_coverage_ratio_type;
10654     l_gross_square_footage_tab l_gross_square_footage_type;
10655     l_net_rentable_tab l_net_rentable_type;
10656     l_date_letter_acceptance_tab l_date_letter_acceptance_type;
10657     l_date_commitment_expirat_tab l_date_commitment_expirat_type;
10658     l_date_appraisal_tab l_date_appraisal_type;
10659     l_appraisal_value_tab l_appraisal_value_type;
10660     l_residual_value_tab l_residual_value_type;
10661     l_percent_tab l_percent_type;
10662     l_coverage_tab l_coverage_type;
10663     l_lrv_amount_tab l_lrv_amount_type;
10664     l_amount_tab l_amount_type;
10665     l_lrs_percent_tab l_lrs_percent_type;
10666     l_evergreen_percent_tab l_evergreen_percent_type;
10667     l_percent_stake_tab l_percent_stake_type;
10668     l_amount_stake_tab l_amount_stake_type;
10669     l_date_sold_tab l_date_sold_type;
10670     l_sty_id_for_tab l_sty_id_for_type;
10671     l_attribute_category_tab l_attribute_category_type;
10672     l_attribute1_tab l_attribute1_type;
10673     l_attribute2_tab l_attribute2_type;
10674     l_attribute3_tab l_attribute3_type;
10675     l_attribute4_tab l_attribute4_type;
10676     l_attribute5_tab l_attribute5_type;
10677     l_attribute6_tab l_attribute6_type;
10678     l_attribute7_tab l_attribute7_type;
10679     l_attribute8_tab l_attribute8_type;
10680     l_attribute9_tab l_attribute9_type;
10681     l_attribute10_tab l_attribute10_type;
10682     l_attribute11_tab l_attribute11_type;
10683     l_attribute12_tab l_attribute12_type;
10684     l_attribute13_tab l_attribute13_type;
10685     l_attribute14_tab l_attribute14_type;
10686     l_attribute15_tab l_attribute15_type;
10687     l_created_by_tab l_created_by_type;
10688     l_creation_date_tab l_creation_date_type;
10689     l_last_updated_by_tab l_last_updated_by_type;
10690     l_last_update_date_tab l_last_update_date_type;
10691     l_last_update_login_tab l_last_update_login_type;
10692     l_nty_code_tab l_nty_code_type;
10693     l_fcg_code_tab l_fcg_code_type;
10694     l_prc_code_tab l_prc_code_type;
10695     l_re_lease_yn_tab l_re_lease_yn_type;
10696     l_prescribed_asset_yn_tab l_prescribed_asset_yn_type;
10697     l_credit_tenant_yn_tab l_credit_tenant_yn_type;
10698     l_secured_deal_yn_tab l_secured_deal_yn_type;
10699     l_clg_id_tab l_clg_id_type;
10700     l_date_funding_tab l_date_funding_type;
10701     l_date_funding_required_tab l_date_funding_required_type;
10702     l_date_accepted_tab l_date_accepted_type;
10703     l_date_delivery_expected_tab l_date_delivery_expected_type;
10704     l_oec_tab l_oec_type;
10705     l_capital_amount_tab l_capital_amount_type;
10706     l_residual_grnty_amount_tab l_residual_grnty_amount_type;
10707     l_residual_code_tab l_residual_code_type;
10708     l_rvi_premium_tab l_rvi_premium_type;
10709     l_credit_nature_tab l_credit_nature_type;
10710     l_capitalized_interest_tab l_capitalized_interest_type;
10711     l_capital_reduction_perce_tab l_capital_reduction_perce_type;
10712     l_date_pay_investor_start_tab l_date_pay_investor_start_type;
10713     l_pay_investor_frequency_tab l_pay_investor_frequency_type;
10714     l_pay_investor_event_tab l_pay_investor_event_type;
10715     l_pay_investor_remit_days_tab l_pay_investor_remit_days_type;
10716     l_fee_type_tab l_fee_type_type;
10717     l_subsidy_id_tab l_subsidy_id_type;
10718     l_subsidy_override_amount_tab l_subsidy_override_amount_type;
10719     l_pre_tax_yield_tab l_pre_tax_yield_type;
10720     l_after_tax_yield_tab l_after_tax_yield_type;
10721     l_implicit_interest_rate_tab l_implicit_interest_rate_type;
10722     l_implicit_non_idc_i_rate_tab l_implicit_non_idc_i_rate_type;
10723     l_pre_tax_irr_tab l_pre_tax_irr_type;
10724     l_after_tax_irr_tab l_after_tax_irr_type;
10725     l_sub_pre_tax_yield_tab l_sub_pre_tax_yield_type;
10726     l_sub_after_tax_yield_tab l_sub_after_tax_yield_type;
10727     l_sub_impl_interest_rate_tab l_sub_impl_interest_rate_type;
10728     l_sub_impl_non_idc_int_ra_tab l_sub_impl_non_idc_int_ra_type;
10729     l_sub_pre_tax_irr_tab l_sub_pre_tax_irr_type;
10730     l_sub_after_tax_irr_tab l_sub_after_tax_irr_type;
10731     l_item_insurance_category_tab l_item_insurance_category_type;
10732     l_qte_id_tab l_qte_id_type;
10733     l_funding_date_tab l_funding_date_type;
10734     l_stream_type_subclass_tab l_stream_type_subclass_type;
10735     l_item_description_tab l_item_description_type;
10736     l_fee_purpose_code_tab l_fee_purpose_code_type;
10737     l_date_funding_expected_tab l_date_funding_expected_type;
10738     l_manufacturer_name_tab l_manufacturer_name_type;
10739     l_model_number_tab l_model_number_type;
10740     l_down_payment_recei_code_tab l_down_payment_recei_code_type;
10741     l_capitalize_down_paym_yn_tab l_capitalize_down_paym_yn_type;
10742 
10743     l_id_tab2 l_id_type;
10744     l_kle_id_tab2 l_kle_id_type;
10745     l_sty_id_tab2 l_sty_id_type;
10746     l_object_version_number_tab2 l_object_version_number_type;
10747     l_lao_amount_tab2 l_lao_amount_type;
10748     l_fee_charge_tab2 l_fee_charge_type;
10749     l_title_date_tab2 l_title_date_type;
10750     l_date_residual_last_revi_tab2 l_date_residual_last_revi_type;
10751     l_date_last_reamortisatio_tab2 l_date_last_reamortisatio_type;
10752     l_termination_purchase_am_tab2 l_termination_purchase_am_type;
10753     l_date_last_cleanup_tab2 l_date_last_cleanup_type;
10754     l_remarketed_amount_tab2 l_remarketed_amount_type;
10755     l_date_remarketed_tab2 l_date_remarketed_type;
10756     l_remarket_margin_tab2 l_remarket_margin_type;
10757     l_repurchased_amount_tab2 l_repurchased_amount_type;
10758     l_date_repurchased_tab2 l_date_repurchased_type;
10759     l_gain_loss_tab2 l_gain_loss_type;
10760     l_floor_amount_tab2 l_floor_amount_type;
10761     l_previous_contract_tab2 l_previous_contract_type;
10762     l_tracked_residual_tab2 l_tracked_residual_type;
10763     l_date_title_received_tab2 l_date_title_received_type;
10764     l_estimated_oec_tab2 l_estimated_oec_type;
10765     l_residual_percentage_tab2 l_residual_percentage_type;
10766     l_capital_reduction_tab2 l_capital_reduction_type;
10767     l_vendor_advance_paid_tab2 l_vendor_advance_paid_type;
10768     l_tradein_amount_tab2 l_tradein_amount_type;
10769     l_delivered_date_tab2 l_delivered_date_type;
10770     l_year_of_manufacture_tab2 l_year_of_manufacture_type;
10771     l_initial_direct_cost_tab2 l_initial_direct_cost_type;
10772     l_occupancy_tab2 l_occupancy_type;
10773     l_date_last_inspection_tab2 l_date_last_inspection_type;
10774     l_date_next_inspection_du_tab2 l_date_next_inspection_du_type;
10775     l_weighted_average_life_tab2 l_weighted_average_life_type;
10776     l_bond_equivalent_yield_tab2 l_bond_equivalent_yield_type;
10777     l_refinance_amount_tab2 l_refinance_amount_type;
10778     l_year_built_tab2 l_year_built_type;
10779     l_coverage_ratio_tab2 l_coverage_ratio_type;
10780     l_gross_square_footage_tab2 l_gross_square_footage_type;
10781     l_net_rentable_tab2 l_net_rentable_type;
10782     l_date_letter_acceptance_tab2 l_date_letter_acceptance_type;
10783     l_date_commitment_expirat_tab2 l_date_commitment_expirat_type;
10784     l_date_appraisal_tab2 l_date_appraisal_type;
10785     l_appraisal_value_tab2 l_appraisal_value_type;
10786     l_residual_value_tab2 l_residual_value_type;
10787     l_percent_tab2 l_percent_type;
10788     l_coverage_tab2 l_coverage_type;
10789     l_lrv_amount_tab2 l_lrv_amount_type;
10790     l_amount_tab2 l_amount_type;
10791     l_lrs_percent_tab2 l_lrs_percent_type;
10792     l_evergreen_percent_tab2 l_evergreen_percent_type;
10793     l_percent_stake_tab2 l_percent_stake_type;
10794     l_amount_stake_tab2 l_amount_stake_type;
10795     l_date_sold_tab2 l_date_sold_type;
10796     l_sty_id_for_tab2 l_sty_id_for_type;
10797     l_attribute_category_tab2 l_attribute_category_type;
10798     l_attribute1_tab2 l_attribute1_type;
10799     l_attribute2_tab2 l_attribute2_type;
10800     l_attribute3_tab2 l_attribute3_type;
10801     l_attribute4_tab2 l_attribute4_type;
10802     l_attribute5_tab2 l_attribute5_type;
10803     l_attribute6_tab2 l_attribute6_type;
10804     l_attribute7_tab2 l_attribute7_type;
10805     l_attribute8_tab2 l_attribute8_type;
10806     l_attribute9_tab2 l_attribute9_type;
10807     l_attribute10_tab2 l_attribute10_type;
10808     l_attribute11_tab2 l_attribute11_type;
10809     l_attribute12_tab2 l_attribute12_type;
10810     l_attribute13_tab2 l_attribute13_type;
10811     l_attribute14_tab2 l_attribute14_type;
10812     l_attribute15_tab2 l_attribute15_type;
10813     l_created_by_tab2 l_created_by_type;
10814     l_creation_date_tab2 l_creation_date_type;
10815     l_last_updated_by_tab2 l_last_updated_by_type;
10816     l_last_update_date_tab2 l_last_update_date_type;
10817     l_last_update_login_tab2 l_last_update_login_type;
10818     l_nty_code_tab2 l_nty_code_type;
10819     l_fcg_code_tab2 l_fcg_code_type;
10820     l_prc_code_tab2 l_prc_code_type;
10821     l_re_lease_yn_tab2 l_re_lease_yn_type;
10822     l_prescribed_asset_yn_tab2 l_prescribed_asset_yn_type;
10823     l_credit_tenant_yn_tab2 l_credit_tenant_yn_type;
10824     l_secured_deal_yn_tab2 l_secured_deal_yn_type;
10825     l_clg_id_tab2 l_clg_id_type;
10826     l_date_funding_tab2 l_date_funding_type;
10827     l_date_funding_required_tab2 l_date_funding_required_type;
10828     l_date_accepted_tab2 l_date_accepted_type;
10829     l_date_delivery_expected_tab2 l_date_delivery_expected_type;
10830     l_oec_tab2 l_oec_type;
10831     l_capital_amount_tab2 l_capital_amount_type;
10832     l_residual_grnty_amount_tab2 l_residual_grnty_amount_type;
10833     l_residual_code_tab2 l_residual_code_type;
10834     l_rvi_premium_tab2 l_rvi_premium_type;
10835     l_credit_nature_tab2 l_credit_nature_type;
10836     l_capitalized_interest_tab2 l_capitalized_interest_type;
10837     l_capital_reduction_perce_tab2 l_capital_reduction_perce_type;
10838     l_date_pay_investor_start_tab2 l_date_pay_investor_start_type;
10839     l_pay_investor_frequency_tab2 l_pay_investor_frequency_type;
10840     l_pay_investor_event_tab2 l_pay_investor_event_type;
10841     l_pay_investor_remit_days_tab2 l_pay_investor_remit_days_type;
10842     l_fee_type_tab2 l_fee_type_type;
10843     l_subsidy_id_tab2 l_subsidy_id_type;
10844     l_subsidy_override_amount_tab2 l_subsidy_override_amount_type;
10845     l_pre_tax_yield_tab2 l_pre_tax_yield_type;
10846     l_after_tax_yield_tab2 l_after_tax_yield_type;
10847     l_implicit_interest_rate_tab2 l_implicit_interest_rate_type;
10848     l_implicit_non_idc_i_rate_tab2 l_implicit_non_idc_i_rate_type;
10849     l_pre_tax_irr_tab2 l_pre_tax_irr_type;
10850     l_after_tax_irr_tab2 l_after_tax_irr_type;
10851     l_sub_pre_tax_yield_tab2 l_sub_pre_tax_yield_type;
10852     l_sub_after_tax_yield_tab2 l_sub_after_tax_yield_type;
10853     l_sub_impl_interest_rate_tab2 l_sub_impl_interest_rate_type;
10854     l_sub_impl_non_idc_int_ra_tab2 l_sub_impl_non_idc_int_ra_type;
10855     l_sub_pre_tax_irr_tab2 l_sub_pre_tax_irr_type;
10856     l_sub_after_tax_irr_tab2 l_sub_after_tax_irr_type;
10857     l_item_insurance_category_tab2 l_item_insurance_category_type;
10858     l_qte_id_tab2 l_qte_id_type;
10859     l_funding_date_tab2 l_funding_date_type;
10860     l_stream_type_subclass_tab2 l_stream_type_subclass_type;
10861     l_lse_id_tab2 l_lse_id_type;
10862     l_item_description_tab2 l_item_description_type;
10863     l_fee_purpose_code_tab2 l_fee_purpose_code_type;
10864     l_date_funding_expected_tab2 l_date_funding_expected_type;
10865     l_manufacturer_name_tab2 l_manufacturer_name_type;
10866     l_model_number_tab2 l_model_number_type;
10867     l_down_payment_recei_code_tab2 l_down_payment_recei_code_type;
10868     l_capitalize_down_paym_yn_tab2 l_capitalize_down_paym_yn_type;
10869 
10870   l_new_id NUMBER;
10871   l_new_kle_id NUMBER;
10872   l_curr_id NUMBER;
10873   l_asset_category_id NUMBER;
10874   l_34_id NUMBER;
10875 --l_okl_k_lines_rec2 lines_tbl_type;
10876 
10877 BEGIN
10878   IF (G_DEBUG_ENABLED = 'Y') THEN
10879     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
10880   END IF;
10881   NULL;
10882   OPEN c8(p_chr_id);
10883   LOOP
10884     FETCH c8 bulk collect INTO
10885       l_id_tab2, l_kle_id_tab2, l_sty_id_tab2,
10886       l_object_version_number_tab2, l_lao_amount_tab2, l_fee_charge_tab2,
10887       l_title_date_tab2, l_date_residual_last_revi_tab2, l_date_last_reamortisatio_tab2,
10888       l_termination_purchase_am_tab2, l_date_last_cleanup_tab2, l_remarketed_amount_tab2,
10889       l_date_remarketed_tab2, l_remarket_margin_tab2, l_repurchased_amount_tab2,
10890       l_date_repurchased_tab2, l_gain_loss_tab2, l_floor_amount_tab2,
10891       l_previous_contract_tab2, l_tracked_residual_tab2, l_date_title_received_tab2,
10892       l_estimated_oec_tab2, l_residual_percentage_tab2, l_capital_reduction_tab2,
10893       l_vendor_advance_paid_tab2, l_tradein_amount_tab2, l_delivered_date_tab2,
10894       l_year_of_manufacture_tab2, l_initial_direct_cost_tab2, l_occupancy_tab2,
10895       l_date_last_inspection_tab2, l_date_next_inspection_du_tab2, l_weighted_average_life_tab2,
10896       l_bond_equivalent_yield_tab2, l_refinance_amount_tab2, l_year_built_tab2,
10897       l_coverage_ratio_tab2, l_gross_square_footage_tab2, l_net_rentable_tab2,
10898       l_date_letter_acceptance_tab2, l_date_commitment_expirat_tab2, l_date_appraisal_tab2,
10899       l_appraisal_value_tab2, l_residual_value_tab2, l_percent_tab2,
10900       l_coverage_tab2, l_lrv_amount_tab2, l_amount_tab2,
10901       l_lrs_percent_tab2, l_evergreen_percent_tab2, l_percent_stake_tab2,
10902       l_amount_stake_tab2, l_date_sold_tab2, l_sty_id_for_tab2,
10903       l_attribute_category_tab2, l_attribute1_tab2, l_attribute2_tab2,
10904       l_attribute3_tab2, l_attribute4_tab2, l_attribute5_tab2,
10905       l_attribute6_tab2, l_attribute7_tab2, l_attribute8_tab2,
10906       l_attribute9_tab2, l_attribute10_tab2, l_attribute11_tab2,
10907       l_attribute12_tab2, l_attribute13_tab2, l_attribute14_tab2,
10908       l_attribute15_tab2, l_created_by_tab2, l_creation_date_tab2,
10909       l_last_updated_by_tab2, l_last_update_date_tab2, l_last_update_login_tab2,
10910       l_nty_code_tab2, l_fcg_code_tab2, l_prc_code_tab2,
10911       l_re_lease_yn_tab2, l_prescribed_asset_yn_tab2, l_credit_tenant_yn_tab2,
10912       l_secured_deal_yn_tab2, l_clg_id_tab2, l_date_funding_tab2,
10913       l_date_funding_required_tab2, l_date_accepted_tab2, l_date_delivery_expected_tab2,
10914       l_oec_tab2, l_capital_amount_tab2, l_residual_grnty_amount_tab2,
10915       l_residual_code_tab2, l_rvi_premium_tab2, l_credit_nature_tab2,
10916       l_capitalized_interest_tab2, l_capital_reduction_perce_tab2, l_date_pay_investor_start_tab2,
10917       l_pay_investor_frequency_tab2, l_pay_investor_event_tab2, l_pay_investor_remit_days_tab2,
10918       l_fee_type_tab2, l_subsidy_id_tab2, l_subsidy_override_amount_tab2,
10919       l_pre_tax_yield_tab2, l_after_tax_yield_tab2, l_implicit_interest_rate_tab2,
10920       l_implicit_non_idc_i_rate_tab2, l_pre_tax_irr_tab2, l_after_tax_irr_tab2,
10921       l_sub_pre_tax_yield_tab2, l_sub_after_tax_yield_tab2, l_sub_impl_interest_rate_tab2,
10922       l_sub_impl_non_idc_int_ra_tab2, l_sub_pre_tax_irr_tab2, l_sub_after_tax_irr_tab2,
10923       l_item_insurance_category_tab2, l_qte_id_tab2, l_funding_date_tab2,
10924       l_stream_type_subclass_tab2, l_lse_id_tab2, l_item_description_tab2,
10925       l_fee_purpose_code_tab2, l_date_funding_expected_tab2, l_manufacturer_name_tab2,
10926       l_model_number_tab2, l_down_payment_recei_code_tab2, l_capitalize_down_paym_yn_tab2
10927     limit G_BULK_SIZE;
10928     EXIT WHEN l_id_tab2.COUNT = 0;
10929 
10930     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10931           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_id_tab2.count=' || l_id_tab2.COUNT);
10932     END IF;
10933     FOR i IN l_id_tab2.first..l_id_tab2.last
10934     LOOP
10935 
10936       --print('Processing record ' || i);
10937       l_id_tab(l_okl_k_lines_counter) := l_id_tab2(i);
10938       -- Change id
10939       --print('l_okl_k_lines_counter='|| l_okl_k_lines_counter || ' id=' || l_id_tab(l_okl_k_lines_counter));
10940       l_new_id := find_mapping_id(l_id_tab(l_okl_k_lines_counter));
10941       IF (l_new_id = -1) THEN
10942         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
10943                   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));
10944         END IF;
10945         RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10946         --raise_application_error(-20001, 'Can not find mapping id');
10947       END IF;
10948       l_id_tab(l_okl_k_lines_counter) := l_new_id;
10949       l_osid_mapping_tab(l_okl_k_lines_counter).id := l_id_tab(l_okl_k_lines_counter);
10950 
10951       l_kle_id_tab(l_okl_k_lines_counter) := l_kle_id_tab2(i);
10952       -- Change kle_id ??? AKP. No, Leave it alone
10953       /*if (l_kle_id_tab(l_okl_k_lines_counter) is not null) then
10954         l_new_kle_id := find_mapping_id(l_kle_id_tab(l_okl_k_lines_counter));
10955         if (l_new_kle_id = -1) then
10956           print('ERROR : Mapping kle_id not found for ' || l_kle_id_tab(l_okl_k_lines_counter));
10957           raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10958         end if;
10959         l_kle_id_tab(l_okl_k_lines_counter) := l_new_kle_id;
10960       end if; */
10961 
10962       --print('Before assigning sty_id');
10963       l_sty_id_tab(l_okl_k_lines_counter) := l_sty_id_tab2(i);
10964       l_object_version_number_tab(l_okl_k_lines_counter) := l_object_version_number_tab2(i);
10965       l_lao_amount_tab(l_okl_k_lines_counter) := l_lao_amount_tab2(i);
10966       l_fee_charge_tab(l_okl_k_lines_counter) := l_fee_charge_tab2(i);
10967       l_title_date_tab(l_okl_k_lines_counter) := l_title_date_tab2(i);
10968       l_date_residual_last_revi_tab(l_okl_k_lines_counter) := l_date_residual_last_revi_tab2(i);
10969       l_date_last_reamortisatio_tab(l_okl_k_lines_counter) := l_date_last_reamortisatio_tab2(i);
10970       l_termination_purchase_am_tab(l_okl_k_lines_counter) := l_termination_purchase_am_tab2(i);
10971       l_date_last_cleanup_tab(l_okl_k_lines_counter) := l_date_last_cleanup_tab2(i);
10972       l_remarketed_amount_tab(l_okl_k_lines_counter) := l_remarketed_amount_tab2(i);
10973       l_date_remarketed_tab(l_okl_k_lines_counter) := l_date_remarketed_tab2(i);
10974       l_remarket_margin_tab(l_okl_k_lines_counter) := l_remarket_margin_tab2(i);
10975       l_repurchased_amount_tab(l_okl_k_lines_counter) := l_repurchased_amount_tab2(i);
10976       l_date_repurchased_tab(l_okl_k_lines_counter) := l_date_repurchased_tab2(i);
10977       l_gain_loss_tab(l_okl_k_lines_counter) := l_gain_loss_tab2(i);
10978       l_floor_amount_tab(l_okl_k_lines_counter) := l_floor_amount_tab2(i);
10979       l_previous_contract_tab(l_okl_k_lines_counter) := l_previous_contract_tab2(i);
10980       l_tracked_residual_tab(l_okl_k_lines_counter) := l_tracked_residual_tab2(i);
10981       l_date_title_received_tab(l_okl_k_lines_counter) := l_date_title_received_tab2(i);
10982       l_estimated_oec_tab(l_okl_k_lines_counter) := l_estimated_oec_tab2(i);
10983       l_residual_percentage_tab(l_okl_k_lines_counter) := l_residual_percentage_tab2(i);
10984       l_capital_reduction_tab(l_okl_k_lines_counter) := l_capital_reduction_tab2(i);
10985       l_vendor_advance_paid_tab(l_okl_k_lines_counter) := l_vendor_advance_paid_tab2(i);
10986       l_tradein_amount_tab(l_okl_k_lines_counter) := l_tradein_amount_tab2(i);
10987       l_delivered_date_tab(l_okl_k_lines_counter) := l_delivered_date_tab2(i);
10988       l_year_of_manufacture_tab(l_okl_k_lines_counter) := l_year_of_manufacture_tab2(i);
10989       l_initial_direct_cost_tab(l_okl_k_lines_counter) := l_initial_direct_cost_tab2(i);
10990       l_occupancy_tab(l_okl_k_lines_counter) := l_occupancy_tab2(i);
10991       l_date_last_inspection_tab(l_okl_k_lines_counter) := l_date_last_inspection_tab2(i);
10992       l_date_next_inspection_du_tab(l_okl_k_lines_counter) := l_date_next_inspection_du_tab2(i);
10993       l_weighted_average_life_tab(l_okl_k_lines_counter) := l_weighted_average_life_tab2(i);
10994       l_bond_equivalent_yield_tab(l_okl_k_lines_counter) := l_bond_equivalent_yield_tab2(i);
10995       l_refinance_amount_tab(l_okl_k_lines_counter) := l_refinance_amount_tab2(i);
10996       l_year_built_tab(l_okl_k_lines_counter) := l_year_built_tab2(i);
10997       l_coverage_ratio_tab(l_okl_k_lines_counter) := l_coverage_ratio_tab2(i);
10998       l_gross_square_footage_tab(l_okl_k_lines_counter) := l_gross_square_footage_tab2(i);
10999       l_net_rentable_tab(l_okl_k_lines_counter) := l_net_rentable_tab2(i);
11000       l_date_letter_acceptance_tab(l_okl_k_lines_counter) := l_date_letter_acceptance_tab2(i);
11001       l_date_commitment_expirat_tab(l_okl_k_lines_counter) := l_date_commitment_expirat_tab2(i);
11002       l_date_appraisal_tab(l_okl_k_lines_counter) := l_date_appraisal_tab2(i);
11003       l_appraisal_value_tab(l_okl_k_lines_counter) := l_appraisal_value_tab2(i);
11004       l_residual_value_tab(l_okl_k_lines_counter) := l_residual_value_tab2(i);
11005       l_percent_tab(l_okl_k_lines_counter) := l_percent_tab2(i);
11006       l_coverage_tab(l_okl_k_lines_counter) := l_coverage_tab2(i);
11007       l_lrv_amount_tab(l_okl_k_lines_counter) := l_lrv_amount_tab2(i);
11008       l_amount_tab(l_okl_k_lines_counter) := l_amount_tab2(i);
11009       l_lrs_percent_tab(l_okl_k_lines_counter) := l_lrs_percent_tab2(i);
11010       l_evergreen_percent_tab(l_okl_k_lines_counter) := l_evergreen_percent_tab2(i);
11011       l_percent_stake_tab(l_okl_k_lines_counter) := l_percent_stake_tab2(i);
11012       l_amount_stake_tab(l_okl_k_lines_counter) := l_amount_stake_tab2(i);
11013       l_date_sold_tab(l_okl_k_lines_counter) := l_date_sold_tab2(i);
11014       l_sty_id_for_tab(l_okl_k_lines_counter) := l_sty_id_for_tab2(i);
11015       l_attribute_category_tab(l_okl_k_lines_counter) := l_attribute_category_tab2(i);
11016       l_attribute1_tab(l_okl_k_lines_counter) := l_attribute1_tab2(i);
11017       l_attribute2_tab(l_okl_k_lines_counter) := l_attribute2_tab2(i);
11018       l_attribute3_tab(l_okl_k_lines_counter) := l_attribute3_tab2(i);
11019       l_attribute4_tab(l_okl_k_lines_counter) := l_attribute4_tab2(i);
11020       l_attribute5_tab(l_okl_k_lines_counter) := l_attribute5_tab2(i);
11021       l_attribute6_tab(l_okl_k_lines_counter) := l_attribute6_tab2(i);
11022       l_attribute7_tab(l_okl_k_lines_counter) := l_attribute7_tab2(i);
11023       l_attribute8_tab(l_okl_k_lines_counter) := l_attribute8_tab2(i);
11024       l_attribute9_tab(l_okl_k_lines_counter) := l_attribute9_tab2(i);
11025       l_attribute10_tab(l_okl_k_lines_counter) := l_attribute10_tab2(i);
11026       l_attribute11_tab(l_okl_k_lines_counter) := l_attribute11_tab2(i);
11027       l_attribute12_tab(l_okl_k_lines_counter) := l_attribute12_tab2(i);
11028       l_attribute13_tab(l_okl_k_lines_counter) := l_attribute13_tab2(i);
11029       l_attribute14_tab(l_okl_k_lines_counter) := l_attribute14_tab2(i);
11030       l_attribute15_tab(l_okl_k_lines_counter) := l_attribute15_tab2(i);
11031       l_created_by_tab(l_okl_k_lines_counter) := l_created_by_tab2(i);
11032       l_creation_date_tab(l_okl_k_lines_counter) := l_creation_date_tab2(i);
11033       l_last_updated_by_tab(l_okl_k_lines_counter) := l_last_updated_by_tab2(i);
11034       l_last_update_date_tab(l_okl_k_lines_counter) := l_last_update_date_tab2(i);
11035       l_last_update_login_tab(l_okl_k_lines_counter) := l_last_update_login_tab2(i);
11036       l_nty_code_tab(l_okl_k_lines_counter) := l_nty_code_tab2(i);
11037       l_fcg_code_tab(l_okl_k_lines_counter) := l_fcg_code_tab2(i);
11038       l_prc_code_tab(l_okl_k_lines_counter) := l_prc_code_tab2(i);
11039       l_re_lease_yn_tab(l_okl_k_lines_counter) := l_re_lease_yn_tab2(i);
11040       l_prescribed_asset_yn_tab(l_okl_k_lines_counter) := l_prescribed_asset_yn_tab2(i);
11041       l_credit_tenant_yn_tab(l_okl_k_lines_counter) := l_credit_tenant_yn_tab2(i);
11042       l_secured_deal_yn_tab(l_okl_k_lines_counter) := l_secured_deal_yn_tab2(i);
11043       l_clg_id_tab(l_okl_k_lines_counter) := l_clg_id_tab2(i);
11044       l_date_funding_tab(l_okl_k_lines_counter) := l_date_funding_tab2(i);
11045       l_date_funding_required_tab(l_okl_k_lines_counter) := l_date_funding_required_tab2(i);
11046       l_date_accepted_tab(l_okl_k_lines_counter) := l_date_accepted_tab2(i);
11047       l_date_delivery_expected_tab(l_okl_k_lines_counter) := l_date_delivery_expected_tab2(i);
11048       l_oec_tab(l_okl_k_lines_counter) := l_oec_tab2(i);
11049       l_capital_amount_tab(l_okl_k_lines_counter) := l_capital_amount_tab2(i);
11050       l_residual_grnty_amount_tab(l_okl_k_lines_counter) := l_residual_grnty_amount_tab2(i);
11051       l_residual_code_tab(l_okl_k_lines_counter) := l_residual_code_tab2(i);
11052       l_rvi_premium_tab(l_okl_k_lines_counter) := l_rvi_premium_tab2(i);
11053       l_credit_nature_tab(l_okl_k_lines_counter) := l_credit_nature_tab2(i);
11054       l_capitalized_interest_tab(l_okl_k_lines_counter) := l_capitalized_interest_tab2(i);
11055       l_capital_reduction_perce_tab(l_okl_k_lines_counter) := l_capital_reduction_perce_tab2(i);
11056       l_date_pay_investor_start_tab(l_okl_k_lines_counter) := l_date_pay_investor_start_tab2(i);
11057       l_pay_investor_frequency_tab(l_okl_k_lines_counter) := l_pay_investor_frequency_tab2(i);
11058       l_pay_investor_event_tab(l_okl_k_lines_counter) := l_pay_investor_event_tab2(i);
11059       l_pay_investor_remit_days_tab(l_okl_k_lines_counter) := l_pay_investor_remit_days_tab2(i);
11060       l_fee_type_tab(l_okl_k_lines_counter) := l_fee_type_tab2(i);
11061       l_subsidy_id_tab(l_okl_k_lines_counter) := l_subsidy_id_tab2(i);
11062       -- Store subsidy id in global
11063       l_osid_mapping_tab(l_okl_k_lines_counter).subsidy_id := l_subsidy_id_tab2(i);
11064       l_subsidy_override_amount_tab(l_okl_k_lines_counter) := l_subsidy_override_amount_tab2(i);
11065       l_pre_tax_yield_tab(l_okl_k_lines_counter) := l_pre_tax_yield_tab2(i);
11066       l_after_tax_yield_tab(l_okl_k_lines_counter) := l_after_tax_yield_tab2(i);
11067       l_implicit_interest_rate_tab(l_okl_k_lines_counter) := l_implicit_interest_rate_tab2(i);
11068       l_implicit_non_idc_i_rate_tab(l_okl_k_lines_counter) := l_implicit_non_idc_i_rate_tab2(i);
11069       l_pre_tax_irr_tab(l_okl_k_lines_counter) := l_pre_tax_irr_tab2(i);
11070       l_after_tax_irr_tab(l_okl_k_lines_counter) := l_after_tax_irr_tab2(i);
11071       l_sub_pre_tax_yield_tab(l_okl_k_lines_counter) := l_sub_pre_tax_yield_tab2(i);
11072       l_sub_after_tax_yield_tab(l_okl_k_lines_counter) := l_sub_after_tax_yield_tab2(i);
11073       l_sub_impl_interest_rate_tab(l_okl_k_lines_counter) := l_sub_impl_interest_rate_tab2(i);
11074       l_sub_impl_non_idc_int_ra_tab(l_okl_k_lines_counter) := l_sub_impl_non_idc_int_ra_tab2(i);
11075       l_sub_pre_tax_irr_tab(l_okl_k_lines_counter) := l_sub_pre_tax_irr_tab2(i);
11076       l_sub_after_tax_irr_tab(l_okl_k_lines_counter) := l_sub_after_tax_irr_tab2(i);
11077       IF ( (l_item_insurance_category_tab2(i) IS NULL) AND (l_lse_id_tab2(i)=33) ) THEN
11078         BEGIN
11079           l_curr_id := l_id_tab2(i);
11080           -- Get id for 34
11081           SELECT id INTO l_34_id
11082           FROM   okc_k_lines_b
11083           WHERE  cle_id = l_curr_id
11084           AND    lse_id = 34;
11085           -- Query from mtl_system_items
11086           SELECT a.asset_category_id
11087           INTO   l_asset_category_id
11088           FROM   mtl_system_items a,
11089                  okc_k_items b
11090           WHERE  a.inventory_item_id = TO_NUMBER(b.object1_id1)
11091           AND    a.organization_id = TO_NUMBER(b.object1_id2)
11092           AND    b.cle_id = l_34_id;
11093           --and    b.cle_id = l_curr_id;  previous wrong
11094           l_item_insurance_category_tab(l_okl_k_lines_counter) := l_asset_category_id;
11095           EXCEPTION WHEN OTHERS THEN
11096             l_item_insurance_category_tab(l_okl_k_lines_counter) := NULL;
11097         END;
11098       ELSE
11099         l_item_insurance_category_tab(l_okl_k_lines_counter) := l_item_insurance_category_tab2(i);
11100       END IF;
11101       --print('Before assigning qte_id');
11102       l_qte_id_tab(l_okl_k_lines_counter) := l_qte_id_tab2(i);
11103       l_funding_date_tab(l_okl_k_lines_counter) := l_funding_date_tab2(i);
11104       l_stream_type_subclass_tab(l_okl_k_lines_counter) := l_stream_type_subclass_tab2(i);
11105       l_item_description_tab(l_okl_k_lines_counter) := l_item_description_tab2(i);
11106       l_fee_purpose_code_tab(l_okl_k_lines_counter) := l_fee_purpose_code_tab2(i);
11107       l_date_funding_expected_tab(l_okl_k_lines_counter) := l_date_funding_expected_tab2(i);
11108       l_manufacturer_name_tab(l_okl_k_lines_counter) := l_manufacturer_name_tab2(i);
11109       l_model_number_tab(l_okl_k_lines_counter) := l_model_number_tab2(i);
11110       l_down_payment_recei_code_tab(l_okl_k_lines_counter) := l_down_payment_recei_code_tab2(i);
11111       l_capitalize_down_paym_yn_tab(l_okl_k_lines_counter) := l_capitalize_down_paym_yn_tab2(i);
11112 
11113       --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);
11114 
11115       --print('l_id_tab(' || l_okl_k_lines_counter || ')=' || l_id_tab(l_okl_k_lines_counter));
11116       l_okl_k_lines_rec(l_okl_k_lines_rec_counter).id := l_id_tab(l_okl_k_lines_counter);
11117       --print('Before assigning l_okl_k_lines_rec 1');
11118       --print('l_oec_tab=' || l_oec_tab(l_okl_k_lines_counter));
11119       l_okl_k_lines_rec(l_okl_k_lines_rec_counter).oec := l_oec_tab(l_okl_k_lines_counter);
11120       --print('Before assigning l_okl_k_lines_rec 2');
11121       l_okl_k_lines_rec(l_okl_k_lines_rec_counter).year_built := l_year_built_tab(l_okl_k_lines_counter);
11122       --print('Before assigning l_okl_k_lines_rec 3');
11123       l_okl_k_lines_rec(l_okl_k_lines_rec_counter).item_description := l_item_description_tab(l_okl_k_lines_counter);
11124       l_okl_k_lines_rec_counter := l_okl_k_lines_rec_counter + 1;
11125 
11126       l_okl_k_lines_counter := l_okl_k_lines_counter + 1;
11127 
11128     END LOOP;
11129   END LOOP;
11130   CLOSE c8;
11131   sort_osid_mapping_tab;
11132   sort_okl_k_lines_rec;
11133 
11134   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11135       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);
11136   END IF;
11137   IF (l_okl_k_lines_counter > 1) THEN
11138     forall i IN l_id_tab.first..l_id_tab.last
11139       INSERT INTO okl_k_lines (
11140        id, kle_id, sty_id,
11141        object_version_number, lao_amount, fee_charge,
11142        title_date, date_residual_last_review, date_last_reamortisation,
11143        termination_purchase_amount, date_last_cleanup, remarketed_amount,
11144        date_remarketed, remarket_margin, repurchased_amount,
11145        date_repurchased, gain_loss, floor_amount,
11146        previous_contract, tracked_residual, date_title_received,
11147        estimated_oec, residual_percentage, capital_reduction,
11148        vendor_advance_paid, tradein_amount, delivered_date,
11149        year_of_manufacture, initial_direct_cost, occupancy,
11150        date_last_inspection, date_next_inspection_due, weighted_average_life,
11151        bond_equivalent_yield, refinance_amount, year_built,
11152        coverage_ratio, gross_square_footage, net_rentable,
11153        date_letter_acceptance, date_commitment_expiration, date_appraisal,
11154        appraisal_value, residual_value, percent,
11155        coverage, lrv_amount, amount,
11156        lrs_percent, evergreen_percent, percent_stake,
11157        amount_stake, date_sold, sty_id_for,
11158        attribute_category, attribute1, attribute2,
11159        attribute3, attribute4, attribute5,
11160        attribute6, attribute7, attribute8,
11161        attribute9, attribute10, attribute11,
11162        attribute12, attribute13, attribute14,
11163        attribute15, created_by, creation_date,
11164        last_updated_by, last_update_date, last_update_login,
11165        nty_code, fcg_code, prc_code,
11166        re_lease_yn, prescribed_asset_yn, credit_tenant_yn,
11167        secured_deal_yn, clg_id, date_funding,
11168        date_funding_required, date_accepted, date_delivery_expected,
11169        oec, capital_amount, residual_grnty_amount,
11170        residual_code, rvi_premium, credit_nature,
11171        capitalized_interest, capital_reduction_percent,date_pay_investor_start,
11172        pay_investor_frequency, pay_investor_event,pay_investor_remittance_days,
11173        fee_type, subsidy_id, subsidy_override_amount,
11174        pre_tax_yield, after_tax_yield, implicit_interest_rate,
11175        implicit_non_idc_interest_rate, pre_tax_irr, after_tax_irr,
11176        sub_pre_tax_yield, sub_after_tax_yield, sub_impl_interest_rate,
11177        sub_impl_non_idc_int_rate, sub_pre_tax_irr, sub_after_tax_irr,
11178        item_insurance_category, qte_id, funding_date,
11179        stream_type_subclass, fee_purpose_code, date_funding_expected,
11180        manufacturer_name, model_number, down_payment_receiver_code,
11181        capitalize_down_payment_yn
11182       ) VALUES (
11183      l_id_tab(i), l_kle_id_tab(i), l_sty_id_tab(i),
11184      l_object_version_number_tab(i), l_lao_amount_tab(i), l_fee_charge_tab(i),
11185      l_title_date_tab(i), l_date_residual_last_revi_tab(i), l_date_last_reamortisatio_tab(i),
11186      l_termination_purchase_am_tab(i), l_date_last_cleanup_tab(i), l_remarketed_amount_tab(i),
11187      l_date_remarketed_tab(i), l_remarket_margin_tab(i), l_repurchased_amount_tab(i),
11188      l_date_repurchased_tab(i), l_gain_loss_tab(i), l_floor_amount_tab(i),
11189      l_previous_contract_tab(i), l_tracked_residual_tab(i), l_date_title_received_tab(i),
11190      l_estimated_oec_tab(i), l_residual_percentage_tab(i), l_capital_reduction_tab(i),
11191      l_vendor_advance_paid_tab(i), l_tradein_amount_tab(i), l_delivered_date_tab(i),
11192      l_year_of_manufacture_tab(i), l_initial_direct_cost_tab(i), l_occupancy_tab(i),
11193      l_date_last_inspection_tab(i), l_date_next_inspection_du_tab(i), l_weighted_average_life_tab(i),
11194      l_bond_equivalent_yield_tab(i), l_refinance_amount_tab(i), l_year_built_tab(i),
11195      l_coverage_ratio_tab(i), l_gross_square_footage_tab(i), l_net_rentable_tab(i),
11196      l_date_letter_acceptance_tab(i), l_date_commitment_expirat_tab(i), l_date_appraisal_tab(i),
11197      l_appraisal_value_tab(i), l_residual_value_tab(i), l_percent_tab(i),
11198      l_coverage_tab(i), l_lrv_amount_tab(i), l_amount_tab(i),
11199      l_lrs_percent_tab(i), l_evergreen_percent_tab(i), l_percent_stake_tab(i),
11200      l_amount_stake_tab(i), l_date_sold_tab(i), l_sty_id_for_tab(i),
11201      l_attribute_category_tab(i), l_attribute1_tab(i), l_attribute2_tab(i),
11202      l_attribute3_tab(i), l_attribute4_tab(i), l_attribute5_tab(i),
11203      l_attribute6_tab(i), l_attribute7_tab(i), l_attribute8_tab(i),
11204      l_attribute9_tab(i), l_attribute10_tab(i), l_attribute11_tab(i),
11205      l_attribute12_tab(i), l_attribute13_tab(i), l_attribute14_tab(i),
11206      l_attribute15_tab(i), l_created_by_tab(i), l_creation_date_tab(i),
11207      l_last_updated_by_tab(i), l_last_update_date_tab(i), l_last_update_login_tab(i),
11208      l_nty_code_tab(i), l_fcg_code_tab(i), l_prc_code_tab(i),
11209      l_re_lease_yn_tab(i), l_prescribed_asset_yn_tab(i), l_credit_tenant_yn_tab(i),
11210      l_secured_deal_yn_tab(i), l_clg_id_tab(i), l_date_funding_tab(i),
11211      l_date_funding_required_tab(i), l_date_accepted_tab(i), l_date_delivery_expected_tab(i),
11212      l_oec_tab(i), l_capital_amount_tab(i), l_residual_grnty_amount_tab(i),
11213      l_residual_code_tab(i), l_rvi_premium_tab(i), l_credit_nature_tab(i),
11214      l_capitalized_interest_tab(i), l_capital_reduction_perce_tab(i), l_date_pay_investor_start_tab(i),
11215      l_pay_investor_frequency_tab(i), l_pay_investor_event_tab(i), l_pay_investor_remit_days_tab(i),
11216      l_fee_type_tab(i), l_subsidy_id_tab(i), l_subsidy_override_amount_tab(i),
11217      l_pre_tax_yield_tab(i), l_after_tax_yield_tab(i), l_implicit_interest_rate_tab(i),
11218      l_implicit_non_idc_i_rate_tab(i), l_pre_tax_irr_tab(i), l_after_tax_irr_tab(i),
11219      l_sub_pre_tax_yield_tab(i), l_sub_after_tax_yield_tab(i), l_sub_impl_interest_rate_tab(i),
11220      l_sub_impl_non_idc_int_ra_tab(i), l_sub_pre_tax_irr_tab(i), l_sub_after_tax_irr_tab(i),
11221      l_item_insurance_category_tab(i), l_qte_id_tab(i), l_funding_date_tab(i),
11222      l_stream_type_subclass_tab(i), l_fee_purpose_code_tab(i), l_date_funding_expected_tab(i),
11223      l_manufacturer_name_tab(i), l_model_number_tab(i), l_down_payment_recei_code_tab(i),
11224      l_capitalize_down_paym_yn_tab(i)
11225     );
11226   END IF;
11227 
11228 EXCEPTION WHEN OTHERS THEN
11229 
11230   x_return_status := OKL_API.G_RET_STS_ERROR;
11231   /*OKL_API.set_message(p_app_name => 'OKL',
11232                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
11233                       p_token1 => 'ASSET_NUMBER',
11234                       p_token1_value => 'insert_okl_k_lines');*/
11235     /* DEBUG */
11236   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11237       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
11238     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing insert_okl_k_lines:l_id_tab.count=' || l_id_tab.COUNT || ' ...');
11239   END IF;
11240   IF (l_id_tab.COUNT > 0) THEN
11241   FOR i IN l_id_tab.first..l_id_tab.last
11242   LOOP
11243     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11244           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_id_tab('||i||')=' || l_id_tab(i));
11245       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_kle_id_tab('||i||')=' || l_kle_id_tab(i));
11246       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sty_id_tab('||i||')=' || l_sty_id_tab(i));
11247       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_object_version_number_tab('||i||')=' || l_object_version_number_tab(i));
11248       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_lao_amount_tab('||i||')=' || l_lao_amount_tab(i));
11249       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_fee_charge_tab('||i||')=' || l_fee_charge_tab(i));
11250       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_title_date_tab('||i||')=' || l_title_date_tab(i));
11251       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));
11252       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_last_reamortisatio_tab('||i||')=' || l_date_last_reamortisatio_tab(i));
11253       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_termination_purchase_am_tab('||i||')=' || l_termination_purchase_am_tab(i));
11254       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_last_cleanup_tab('||i||')=' || l_date_last_cleanup_tab(i));
11255       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_remarketed_amount_tab('||i||')=' || l_remarketed_amount_tab(i));
11256       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_remarketed_tab('||i||')=' || l_date_remarketed_tab(i));
11257       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_remarket_margin_tab('||i||')=' || l_remarket_margin_tab(i));
11258       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_repurchased_amount_tab('||i||')=' || l_repurchased_amount_tab(i));
11259       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_repurchased_tab('||i||')=' || l_date_repurchased_tab(i));
11260       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_gain_loss_tab('||i||')=' || l_gain_loss_tab(i));
11261       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_floor_amount_tab('||i||')=' || l_floor_amount_tab(i));
11262       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_previous_contract_tab('||i||')=' || l_previous_contract_tab(i));
11263       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tracked_residual_tab('||i||')=' || l_tracked_residual_tab(i));
11264       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_title_received_tab('||i||')=' || l_date_title_received_tab(i));
11265       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_estimated_oec_tab('||i||')=' || l_estimated_oec_tab(i));
11266       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_residual_percentage_tab('||i||')=' || l_residual_percentage_tab(i));
11267       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_capital_reduction_tab('||i||')=' || l_capital_reduction_tab(i));
11268       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_vendor_advance_paid_tab('||i||')=' || l_vendor_advance_paid_tab(i));
11269       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tradein_amount_tab('||i||')=' || l_tradein_amount_tab(i));
11270       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_delivered_date_tab('||i||')=' || l_delivered_date_tab(i));
11271       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_year_of_manufacture_tab('||i||')=' || l_year_of_manufacture_tab(i));
11272       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_initial_direct_cost_tab('||i||')=' || l_initial_direct_cost_tab(i));
11273       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_occupancy_tab('||i||')=' || l_occupancy_tab(i));
11274       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_last_inspection_tab('||i||')=' || l_date_last_inspection_tab(i));
11275       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));
11276       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_weighted_average_life_tab('||i||')=' || l_weighted_average_life_tab(i));
11277       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_bond_equivalent_yield_tab('||i||')=' || l_bond_equivalent_yield_tab(i));
11278       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_refinance_amount_tab('||i||')=' || l_refinance_amount_tab(i));
11279       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_year_built_tab('||i||')=' || l_year_built_tab(i));
11280       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_coverage_ratio_tab('||i||')=' || l_coverage_ratio_tab(i));
11281       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_gross_square_footage_tab('||i||')=' || l_gross_square_footage_tab(i));
11282       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_net_rentable_tab('||i||')=' || l_net_rentable_tab(i));
11283       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_letter_acceptance_tab('||i||')=' || l_date_letter_acceptance_tab(i));
11284       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_commitment_expirat_tab('||i||')=' || l_date_commitment_expirat_tab(i));
11285       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_appraisal_tab('||i||')=' || l_date_appraisal_tab(i));
11286       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_appraisal_value_tab('||i||')=' || l_appraisal_value_tab(i));
11287       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_residual_value_tab('||i||')=' || l_residual_value_tab(i));
11288       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_percent_tab('||i||')=' || l_percent_tab(i));
11289       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_coverage_tab('||i||')=' || l_coverage_tab(i));
11290       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_lrv_amount_tab('||i||')=' || l_lrv_amount_tab(i));
11291       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_amount_tab('||i||')=' || l_amount_tab(i));
11292       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_lrs_percent_tab('||i||')=' || l_lrs_percent_tab(i));
11293       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_evergreen_percent_tab('||i||')=' || l_evergreen_percent_tab(i));
11294       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_percent_stake_tab('||i||')=' || l_percent_stake_tab(i));
11295       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_amount_stake_tab('||i||')=' || l_amount_stake_tab(i));
11296       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_sold_tab('||i||')=' || l_date_sold_tab(i));
11297       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_sty_id_for_tab('||i||')=' || l_sty_id_for_tab(i));
11298       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute_category_tab('||i||')=' || l_attribute_category_tab(i));
11299       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute1_tab('||i||')=' || l_attribute1_tab(i));
11300       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute2_tab('||i||')=' || l_attribute2_tab(i));
11301       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute3_tab('||i||')=' || l_attribute3_tab(i));
11302       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute4_tab('||i||')=' || l_attribute4_tab(i));
11303       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute5_tab('||i||')=' || l_attribute5_tab(i));
11304       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute6_tab('||i||')=' || l_attribute6_tab(i));
11305       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute7_tab('||i||')=' || l_attribute7_tab(i));
11306       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute8_tab('||i||')=' || l_attribute8_tab(i));
11307       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute9_tab('||i||')=' || l_attribute9_tab(i));
11308       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute10_tab('||i||')=' || l_attribute10_tab(i));
11309       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute11_tab('||i||')=' || l_attribute11_tab(i));
11310       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute12_tab('||i||')=' || l_attribute12_tab(i));
11311       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute13_tab('||i||')=' || l_attribute13_tab(i));
11312       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute14_tab('||i||')=' || l_attribute14_tab(i));
11313       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute15_tab('||i||')=' || l_attribute15_tab(i));
11314       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_created_by_tab('||i||')=' || l_created_by_tab(i));
11315       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_creation_date_tab('||i||')=' || l_creation_date_tab(i));
11316       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_last_updated_by_tab('||i||')=' || l_last_updated_by_tab(i));
11317       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_last_update_date_tab('||i||')=' || l_last_update_date_tab(i));
11318       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_last_update_login_tab('||i||')=' || l_last_update_login_tab(i));
11319       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_nty_code_tab('||i||')=' || l_nty_code_tab(i));
11320       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_fcg_code_tab('||i||')=' || l_fcg_code_tab(i));
11321       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_prc_code_tab('||i||')=' || l_prc_code_tab(i));
11322       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_re_lease_yn_tab('||i||')=' || l_re_lease_yn_tab(i));
11323       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_prescribed_asset_yn_tab('||i||')=' || l_prescribed_asset_yn_tab(i));
11324       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_credit_tenant_yn_tab('||i||')=' || l_credit_tenant_yn_tab(i));
11325       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_secured_deal_yn_tab('||i||')=' || l_secured_deal_yn_tab(i));
11326       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_clg_id_tab('||i||')=' || l_clg_id_tab(i));
11327       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_funding_tab('||i||')=' || l_date_funding_tab(i));
11328       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_funding_required_tab('||i||')=' || l_date_funding_required_tab(i));
11329       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_accepted_tab('||i||')=' || l_date_accepted_tab(i));
11330       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_delivery_expected_tab('||i||')=' || l_date_delivery_expected_tab(i));
11331       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_oec_tab('||i||')=' || l_oec_tab(i));
11332       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_capital_amount_tab('||i||')=' || l_capital_amount_tab(i));
11333       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_residual_grnty_amount_tab('||i||')=' || l_residual_grnty_amount_tab(i));
11334       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_residual_code_tab('||i||')=' || l_residual_code_tab(i));
11335       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rvi_premium_tab('||i||')=' || l_rvi_premium_tab(i));
11336       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_credit_nature_tab('||i||')=' || l_credit_nature_tab(i));
11337       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_capitalized_interest_tab('||i||')=' || l_capitalized_interest_tab(i));
11338       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_capital_reduction_perce_tab('||i||')=' || l_capital_reduction_perce_tab(i));
11339       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));
11340       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_pay_investor_frequency_tab('||i||')=' || l_pay_investor_frequency_tab(i));
11341       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_pay_investor_event_tab('||i||')=' || l_pay_investor_event_tab(i));
11342       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));
11343       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_fee_type_tab('||i||')=' || l_fee_type_tab(i));
11344       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_subsidy_id_tab('||i||')=' || l_subsidy_id_tab(i));
11345       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_subsidy_override_amount_tab('||i||')=' || l_subsidy_override_amount_tab(i));
11346       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_pre_tax_yield_tab('||i||')=' || l_pre_tax_yield_tab(i));
11347       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_after_tax_yield_tab('||i||')=' || l_after_tax_yield_tab(i));
11348       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_implicit_interest_rate_tab('||i||')=' || l_implicit_interest_rate_tab(i));
11349       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));
11350       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_pre_tax_irr_tab('||i||')=' || l_pre_tax_irr_tab(i));
11351       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_after_tax_irr_tab('||i||')=' || l_after_tax_irr_tab(i));
11352       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));
11353       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));
11354       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));
11355       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));
11356       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));
11357       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));
11358       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_item_insurance_category_tab('||i||')=' || l_item_insurance_category_tab(i));
11359       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_qte_id_tab('||i||')=' || l_qte_id_tab(i));
11360       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_funding_date_tab('||i||')=' || l_funding_date_tab(i));
11361       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_stream_type_subclass_tab('||i||')=' || l_stream_type_subclass_tab(i));
11362       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_fee_purpose_code_tab('||i||')=' || l_fee_purpose_code_tab(i));
11363       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_date_funding_expected_tab('||i||')=' || l_date_funding_expected_tab(i));
11364       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_manufacturer_name_tab('||i||')=' || l_manufacturer_name_tab(i));
11365       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_model_number_tab('||i||')=' || l_model_number_tab(i));
11366       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));
11367       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));
11368     END IF;
11369   END LOOP;
11370   END IF;
11371 
11372   RAISE OKC_API.G_EXCEPTION_ERROR;
11373 
11374 END;  /* insert_okl_k_lines */
11375 
11376 PROCEDURE do_sort_party_mapping_id IS
11377   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
11378   --a numtabtype;
11379   l_stack numtabtype;
11380   l_stack_index NUMBER := 0;
11381   N NUMBER;
11382   R NUMBER;
11383   L NUMBER;
11384   P NUMBER;
11385   W NUMBER;
11386   W2 NUMBER;
11387   X NUMBER;
11388   I NUMBER;
11389   J NUMBER;
11390 BEGIN
11391   IF (G_DEBUG_ENABLED = 'Y') THEN
11392     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
11393   END IF;
11394   NULL;
11395   /*a(1) := 10;
11396   a(2) := 50;
11397   a(3) := 27;
11398   a(4) := 5;
11399   a(5) := 100;
11400   a(6) := 50;
11401   a(7) := 35;
11402   a(8) := 41;
11403   a(9) := 75;
11404   a(10) := 20;
11405 
11406   N := 10;
11407   */
11408 
11409   N := l_party_counter - 1;
11410   IF (N < 2) THEN
11411     RETURN;
11412   END IF;
11413   l_stack_index := l_stack_index + 1;
11414   l_stack(l_stack_index) := 1;
11415   l_stack_index := l_stack_index + 1;
11416   l_stack(l_stack_index) := N;
11417 
11418   --dbms_output.put_line('l_stack_index=' || l_stack_index);
11419   WHILE l_stack_index > 0
11420   LOOP
11421     R := l_stack(l_stack_index);
11422     l_stack_index := l_stack_index - 1;
11423     L := l_stack(l_stack_index);
11424     l_stack_index := l_stack_index - 1;
11425     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
11426     WHILE 1=1
11427     LOOP -- loop until L >= R
11428       I := L;
11429       J := R;
11430       P := FLOOR((L+R)/2);
11431       --if (a(L) > a(P)) then
11432       IF (l_party_id_mapping_tab(L).old_id > l_party_id_mapping_tab(P).old_id)
11433       THEN
11434         /*W := a(L);
11435         a(L) := a(P);
11436         a(P) := W;*/
11437 
11438         W := l_party_id_mapping_tab(L).old_id;
11439         W2 := l_party_id_mapping_tab(L).new_id;
11440         l_party_id_mapping_tab(L).old_id :=l_party_id_mapping_tab(P).old_id;
11441         l_party_id_mapping_tab(L).new_id :=l_party_id_mapping_tab(P).new_id;
11442         l_party_id_mapping_tab(P).old_id := W;
11443         l_party_id_mapping_tab(P).new_id := W2;
11444       END IF;
11445       --if (a(L) > a(R)) then
11446       IF (l_party_id_mapping_tab(L).old_id > l_party_id_mapping_tab(R).old_id)
11447       THEN
11448         /*W := a(L);
11449         a(L) := a(R);
11450         a(R) := W;*/
11451         W := l_party_id_mapping_tab(L).old_id;
11452         W2 := l_party_id_mapping_tab(L).new_id;
11453         l_party_id_mapping_tab(L).old_id :=l_party_id_mapping_tab(R).old_id;
11454         l_party_id_mapping_tab(L).new_id :=l_party_id_mapping_tab(R).new_id;
11455         l_party_id_mapping_tab(R).old_id := W;
11456         l_party_id_mapping_tab(R).new_id := W2;
11457       END IF;
11458       --if (a(P) > a(R)) then
11459       IF (l_party_id_mapping_tab(P).old_id > l_party_id_mapping_tab(R).old_id)
11460       THEN
11461         /*W := a(P);
11462         a(P) := a(R);
11463         a(R) := W; */
11464         W := l_party_id_mapping_tab(P).old_id;
11465         W2 := l_party_id_mapping_tab(P).new_id;
11466         l_party_id_mapping_tab(P).old_id :=l_party_id_mapping_tab(R).old_id;
11467         l_party_id_mapping_tab(P).new_id :=l_party_id_mapping_tab(R).new_id;
11468         l_party_id_mapping_tab(R).old_id := W;
11469         l_party_id_mapping_tab(R).new_id := W2;
11470       END IF;
11471       --X := a(P);
11472       X := l_party_id_mapping_tab(P).old_id;
11473       WHILE 1=1
11474       LOOP    -- until I > J
11475         --while (a(I) < X) loop
11476         WHILE (l_party_id_mapping_tab(I).old_id < X) LOOP
11477           I := I + 1;
11478         END LOOP;
11479         WHILE (X < l_party_id_mapping_tab(J).old_id) LOOP
11480           J := J - 1;
11481         END LOOP;
11482         IF (I <= J) THEN
11483           /*W := a(I);
11484           a(I) := a(J);
11485           a(J) := W;*/
11486           W := l_party_id_mapping_tab(I).old_id;
11487           W2 := l_party_id_mapping_tab(I).new_id;
11488           l_party_id_mapping_tab(I).old_id :=l_party_id_mapping_tab(J).old_id;
11489           l_party_id_mapping_tab(I).new_id :=l_party_id_mapping_tab(J).new_id;
11490           l_party_id_mapping_tab(J).old_id := W;
11491           l_party_id_mapping_tab(J).new_id := W2;
11492           I := I + 1;
11493           J := J - 1;
11494         END IF;
11495         EXIT WHEN I > J;
11496       END LOOP;
11497       IF (J - L < R - I) THEN
11498         IF (I < R) THEN
11499           --push(I); push(R);
11500           l_stack_index := l_stack_index + 1;
11501           l_stack(l_stack_index) := I;
11502           l_stack_index := l_stack_index + 1;
11503           l_stack(l_stack_index) := R;
11504           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
11505         END IF;
11506         R := J;
11507       ELSE
11508         IF (L < J) THEN
11509           --push(L); push(J);
11510           l_stack_index := l_stack_index + 1;
11511           l_stack(l_stack_index) := L;
11512           l_stack_index := l_stack_index + 1;
11513           l_stack(l_stack_index) := J;
11514           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
11515         END IF;
11516         L := I;
11517       END IF;
11518 
11519       EXIT WHEN (L >= R);
11520     END LOOP;
11521   END LOOP;
11522 
11523 EXCEPTION WHEN OTHERS THEN
11524 
11525   x_return_status := OKL_API.G_RET_STS_ERROR;
11526   /*OKL_API.set_message(p_app_name => 'OKL',
11527                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
11528                       p_token1 => 'ASSET_NUMBER',
11529                       p_token1_value => 'do_sort_party_mapping_id');*/
11530     /* DEBUG */
11531   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11532       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
11533     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing do_sort_party_mapping:l_party_id_mapping_tab N=' || N || ' ...');
11534   END IF;
11535 
11536   --print array
11537   FOR i IN 1..N
11538   LOOP
11539     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11540           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);
11541     END IF;
11542   END LOOP;
11543 
11544   RAISE OKC_API.G_EXCEPTION_ERROR;
11545 
11546 END;  /* do_sort_party_mapping_id */
11547 
11548 FUNCTION find_party_mapping_id(p_id IN NUMBER) RETURN NUMBER IS
11549 hi NUMBER;
11550 lo NUMBER;
11551 m NUMBER;
11552 BEGIN
11553   lo := 1;
11554   hi := l_party_counter - 1;
11555   WHILE (lo <= hi) LOOP
11556     m := FLOOR((hi + lo)/2);
11557     IF (l_party_id_mapping_tab(m).old_id = p_id) THEN
11558       RETURN l_party_id_mapping_tab(m).new_id;
11559     ELSIF (l_party_id_mapping_tab(m).old_id > p_id) THEN
11560       hi := m - 1;
11561     ELSE
11562       lo := m + 1;
11563     END IF;
11564   END LOOP;
11565   RETURN -1;
11566 END;  /* find_party_mapping_id */
11567 
11568 PROCEDURE prepare_okl_party_roles (p_old_id IN okl_k_party_roles.id%TYPE,
11569                                    p_new_id IN okl_k_party_roles.id%TYPE,
11570                                    p_flush IN VARCHAR2) IS
11571 CURSOR c30(p_id okl_k_party_roles.id%TYPE) IS
11572 SELECT
11573        a.id, a.object_version_number, a.attribute_category,
11574        a.attribute1, a.attribute2, a.attribute3,
11575        a.attribute4, a.attribute5, a.attribute6,
11576        a.attribute7, a.attribute8, a.attribute9,
11577        a.attribute10, a.attribute11, a.attribute12,
11578        a.attribute13, a.attribute14, a.attribute15
11579 FROM okl_k_party_roles a
11580 WHERE id = p_id;
11581 
11582     l_plid_tab2 l_plid_type;
11583     l_plobject_version_number_tab2 l_plobject_version_number_type;
11584     l_plattribute_category_tab2 l_plattribute_category_type;
11585     l_plattribute1_tab2 l_plattribute1_type;
11586     l_plattribute2_tab2 l_plattribute2_type;
11587     l_plattribute3_tab2 l_plattribute3_type;
11588     l_plattribute4_tab2 l_plattribute4_type;
11589     l_plattribute5_tab2 l_plattribute5_type;
11590     l_plattribute6_tab2 l_plattribute6_type;
11591     l_plattribute7_tab2 l_plattribute7_type;
11592     l_plattribute8_tab2 l_plattribute8_type;
11593     l_plattribute9_tab2 l_plattribute9_type;
11594     l_plattribute10_tab2 l_plattribute10_type;
11595     l_plattribute11_tab2 l_plattribute11_type;
11596     l_plattribute12_tab2 l_plattribute12_type;
11597     l_plattribute13_tab2 l_plattribute13_type;
11598     l_plattribute14_tab2 l_plattribute14_type;
11599     l_plattribute15_tab2 l_plattribute15_type;
11600 
11601 BEGIN
11602   IF (G_DEBUG_ENABLED = 'Y') THEN
11603     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
11604   END IF;
11605   --print('In prepare_okl_party_roles p_old_id=' || p_old_id);
11606   --print('In prepare_okl_party_roles p_new_id=' || p_new_id);
11607   OPEN c30(p_old_id);
11608   LOOP
11609     FETCH c30 bulk collect INTO
11610      l_plid_tab2, l_plobject_version_number_tab2, l_plattribute_category_tab2,
11611      l_plattribute1_tab2, l_plattribute2_tab2, l_plattribute3_tab2,
11612      l_plattribute4_tab2, l_plattribute5_tab2, l_plattribute6_tab2,
11613      l_plattribute7_tab2, l_plattribute8_tab2, l_plattribute9_tab2,
11614      l_plattribute10_tab2, l_plattribute11_tab2, l_plattribute12_tab2,
11615      l_plattribute13_tab2, l_plattribute14_tab2, l_plattribute15_tab2
11616     limit G_BULK_SIZE;
11617     EXIT WHEN l_plid_tab2.COUNT = 0;
11618 
11619     FOR i IN l_plid_tab2.first..l_plid_tab2.last
11620     LOOP
11621       l_plid_tab(l_okl_k_party_roles_counter) := l_plid_tab2(i);
11622       -- Replace id
11623       l_plid_tab(l_okl_k_party_roles_counter) := p_new_id;
11624 
11625       l_plobject_version_number_tab(l_okl_k_party_roles_counter) := l_plobject_version_number_tab2(i);
11626       l_plattribute_category_tab(l_okl_k_party_roles_counter) := l_plattribute_category_tab2(i);
11627       l_plattribute1_tab(l_okl_k_party_roles_counter) := l_plattribute1_tab2(i);
11628       l_plattribute2_tab(l_okl_k_party_roles_counter) := l_plattribute2_tab2(i);
11629       l_plattribute3_tab(l_okl_k_party_roles_counter) := l_plattribute3_tab2(i);
11630       l_plattribute4_tab(l_okl_k_party_roles_counter) := l_plattribute4_tab2(i);
11631       l_plattribute5_tab(l_okl_k_party_roles_counter) := l_plattribute5_tab2(i);
11632       l_plattribute6_tab(l_okl_k_party_roles_counter) := l_plattribute6_tab2(i);
11633       l_plattribute7_tab(l_okl_k_party_roles_counter) := l_plattribute7_tab2(i);
11634       l_plattribute8_tab(l_okl_k_party_roles_counter) := l_plattribute8_tab2(i);
11635       l_plattribute9_tab(l_okl_k_party_roles_counter) := l_plattribute9_tab2(i);
11636       l_plattribute10_tab(l_okl_k_party_roles_counter) := l_plattribute10_tab2(i);
11637       l_plattribute11_tab(l_okl_k_party_roles_counter) := l_plattribute11_tab2(i);
11638       l_plattribute12_tab(l_okl_k_party_roles_counter) := l_plattribute12_tab2(i);
11639       l_plattribute13_tab(l_okl_k_party_roles_counter) := l_plattribute13_tab2(i);
11640       l_plattribute14_tab(l_okl_k_party_roles_counter) := l_plattribute14_tab2(i);
11641       l_plattribute15_tab(l_okl_k_party_roles_counter) := l_plattribute15_tab2(i);
11642 
11643       l_okl_k_party_roles_counter := l_okl_k_party_roles_counter + 1;
11644 
11645     END LOOP;
11646 
11647   END LOOP;
11648   CLOSE c30;
11649 
11650   IF (p_flush = 'Y') THEN
11651     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11652           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);
11653     END IF;
11654     IF (l_plid_tab.COUNT > 0) THEN
11655     forall i IN l_plid_tab.first..l_plid_tab.last
11656       INSERT INTO okl_k_party_roles (
11657        id, object_version_number, attribute_category,
11658        attribute1, attribute2, attribute3,
11659        attribute4, attribute5, attribute6,
11660        attribute7, attribute8, attribute9,
11661        attribute10, attribute11, attribute12,
11662        attribute13, attribute14, attribute15,
11663        created_by, creation_date, last_updated_by,
11664        last_update_date, last_update_login
11665       ) VALUES (
11666        l_plid_tab(i), l_plobject_version_number_tab(i), l_plattribute_category_tab(i),
11667        l_plattribute1_tab(i), l_plattribute2_tab(i), l_plattribute3_tab(i),
11668        l_plattribute4_tab(i), l_plattribute5_tab(i), l_plattribute6_tab(i),
11669        l_plattribute7_tab(i), l_plattribute8_tab(i), l_plattribute9_tab(i),
11670        l_plattribute10_tab(i), l_plattribute11_tab(i), l_plattribute12_tab(i),
11671        l_plattribute13_tab(i), l_plattribute14_tab(i), l_plattribute15_tab(i),
11672        l_created_by, SYSDATE, l_last_updated_by,
11673        SYSDATE, l_last_update_login
11674       );
11675     END IF;
11676   END IF;
11677 
11678 EXCEPTION WHEN OTHERS THEN
11679 
11680   x_return_status := OKL_API.G_RET_STS_ERROR;
11681     /* DEBUG */
11682   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11683       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
11684     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing prepare_okl_party_roles:l_plid_tab.count=' || l_plid_tab.COUNT || ' ...');
11685   END IF;
11686   IF (l_plid_tab.COUNT > 0) THEN
11687   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11688       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing l_plid_tab...');
11689   END IF;
11690   FOR i IN l_plid_tab.FIRST..l_plid_tab.LAST
11691   LOOP
11692     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11693           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plid_tab('||i||')=' || l_plid_tab(i));
11694       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plobject_version_number_tab('||i||')=' || l_plobject_version_number_tab(i));
11695       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute_category_tab('||i||')=' || l_plattribute_category_tab(i));
11696       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute1_tab('||i||')=' || l_plattribute1_tab(i));
11697       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute2_tab('||i||')=' || l_plattribute2_tab(i));
11698       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute3_tab('||i||')=' || l_plattribute3_tab(i));
11699       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute4_tab('||i||')=' || l_plattribute4_tab(i));
11700       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute5_tab('||i||')=' || l_plattribute5_tab(i));
11701       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute6_tab('||i||')=' || l_plattribute6_tab(i));
11702       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute7_tab('||i||')=' || l_plattribute7_tab(i));
11703       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute8_tab('||i||')=' || l_plattribute8_tab(i));
11704       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute9_tab('||i||')=' || l_plattribute9_tab(i));
11705       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute10_tab('||i||')=' || l_plattribute10_tab(i));
11706       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute11_tab('||i||')=' || l_plattribute11_tab(i));
11707       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute12_tab('||i||')=' || l_plattribute12_tab(i));
11708       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute13_tab('||i||')=' || l_plattribute13_tab(i));
11709       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute14_tab('||i||')=' || l_plattribute14_tab(i));
11710       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_plattribute15_tab('||i||')=' || l_plattribute15_tab(i));
11711     END IF;
11712   END LOOP;
11713 
11714   END IF;
11715 
11716   RAISE OKC_API.G_EXCEPTION_ERROR;
11717 
11718 END;  /* prepare_okl_party_roles */
11719 
11720 PROCEDURE prepare_party_roles_tl (p_old_id IN okc_k_party_roles_b.id%TYPE,
11721                                   p_new_id IN okc_k_party_roles_b.id%TYPE,
11722                                   p_flush IN VARCHAR2) IS
11723 CURSOR c10(p_id okc_k_party_roles_tl.id%TYPE) IS
11724 SELECT
11725      id, LANGUAGE, source_lang,
11726      sfwt_flag, created_by, creation_date,
11727      last_updated_by, last_update_date, cognomen,
11728      alias, last_update_login, security_group_id
11729 FROM okc_k_party_roles_tl
11730 WHERE id = p_id;
11731 
11732     l_pid_tab2 l_pid_type;
11733     l_planguage_tab2 l_planguage_type;
11734     l_psource_lang_tab2 l_psource_lang_type;
11735     l_psfwt_flag_tab2 l_psfwt_flag_type;
11736     l_pcreated_by_tab2 l_pcreated_by_type;
11737     l_pcreation_date_tab2 l_pcreation_date_type;
11738     l_plast_updated_by_tab2 l_plast_updated_by_type;
11739     l_plast_update_date_tab2 l_plast_update_date_type;
11740     l_pcognomen_tab2 l_pcognomen_type;
11741     l_palias_tab2 l_palias_type;
11742     l_plast_update_login_tab2 l_plast_update_login_type;
11743     l_psecurity_group_id_tab2 l_psecurity_group_id_type;
11744 
11745 BEGIN
11746   IF (G_DEBUG_ENABLED = 'Y') THEN
11747     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
11748   END IF;
11749   --print('In prepare_party_roles_tl p_old_id=' || p_old_id);
11750   --print('In prepare_party_roles_tl p_new_id=' || p_new_id);
11751   OPEN c10(p_old_id);
11752   LOOP
11753     FETCH c10 bulk collect INTO
11754       l_pid_tab2, l_planguage_tab2, l_psource_lang_tab2,
11755       l_psfwt_flag_tab2, l_pcreated_by_tab2, l_pcreation_date_tab2,
11756       l_plast_updated_by_tab2, l_plast_update_date_tab2, l_pcognomen_tab2,
11757       l_palias_tab2, l_plast_update_login_tab2, l_psecurity_group_id_tab2
11758     limit G_BULK_SIZE;
11759     EXIT WHEN l_pid_tab2.COUNT = 0;
11760 
11761     FOR i IN l_pid_tab2.first..l_pid_tab2.last
11762     LOOP
11763       l_pid_tab(l_party_roles_tl_counter) := l_pid_tab2(i);
11764 
11765       -- Replace id
11766       l_pid_tab(l_party_roles_tl_counter) := p_new_id;
11767 
11768       l_planguage_tab(l_party_roles_tl_counter) := l_planguage_tab2(i);
11769       l_psource_lang_tab(l_party_roles_tl_counter) := l_psource_lang_tab2(i);
11770       l_psfwt_flag_tab(l_party_roles_tl_counter) := l_psfwt_flag_tab2(i);
11771       l_pcreated_by_tab(l_party_roles_tl_counter) := l_pcreated_by_tab2(i);
11772       l_pcreation_date_tab(l_party_roles_tl_counter) := l_pcreation_date_tab2(i);
11773       l_plast_updated_by_tab(l_party_roles_tl_counter) := l_plast_updated_by_tab2(i);
11774       l_plast_update_date_tab(l_party_roles_tl_counter) := l_plast_update_date_tab2(i);
11775       l_pcognomen_tab(l_party_roles_tl_counter) := l_pcognomen_tab2(i);
11776       l_palias_tab(l_party_roles_tl_counter) := l_palias_tab2(i);
11777       l_plast_update_login_tab(l_party_roles_tl_counter) := l_plast_update_login_tab2(i);
11778       l_psecurity_group_id_tab(l_party_roles_tl_counter) := l_psecurity_group_id_tab2(i);
11779 
11780       l_party_roles_tl_counter := l_party_roles_tl_counter + 1;
11781     END LOOP;
11782 
11783   END LOOP;
11784   CLOSE c10;
11785 
11786   IF (p_flush = 'L') THEN
11787     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11788           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);
11789     END IF;
11790     IF (l_pid_tab.COUNT > 0) THEN
11791     forall i IN l_pid_tab.first..l_pid_tab.last
11792       INSERT INTO okc_k_party_roles_tl (
11793         id, LANGUAGE, source_lang,
11794         sfwt_flag, created_by, creation_date,
11795         last_updated_by, last_update_date, cognomen,
11796         alias, last_update_login, security_group_id
11797       ) VALUES (
11798         l_pid_tab(i), l_planguage_tab(i), l_psource_lang_tab(i),
11799         'N', l_created_by, SYSDATE,
11800         l_last_updated_by, SYSDATE,l_pcognomen_tab(i),
11801         l_palias_tab(i),l_last_update_login, l_psecurity_group_id_tab(i)
11802       );
11803     END IF;
11804   END IF;
11805 
11806 EXCEPTION WHEN OTHERS THEN
11807 
11808   x_return_status := OKL_API.G_RET_STS_ERROR;
11809   /*OKL_API.set_message(p_app_name => 'OKL',
11810                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
11811                       p_token1 => 'ASSET_NUMBER',
11812                       p_token1_value => 'prepare_party_roles_tl');*/
11813     /* DEBUG */
11814   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11815       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
11816     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing prepare_party_roles_tl:l_pid_tab.count=' || l_pid_tab.COUNT || ' ...');
11817   END IF;
11818   IF (l_pid_tab.COUNT > 0) THEN
11819   FOR i IN l_pid_tab.first..l_pid_tab.last
11820   LOOP
11821     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11822           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_pid_tab('||i||')=' || l_pid_tab(i));
11823       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_planguage_tab('||i||')=' || l_planguage_tab(i));
11824       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_psource_lang_tab('||i||')=' || l_psource_lang_tab(i));
11825       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_pcognomen_tab('||i||')=' || l_pcognomen_tab(i));
11826       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_palias_tab('||i||')=' || l_palias_tab(i));
11827       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_psecurity_group_id_tab('||i||')=' || l_psecurity_group_id_tab(i));
11828     END IF;
11829   END LOOP;
11830   END IF;
11831 
11832   RAISE OKC_API.G_EXCEPTION_ERROR;
11833 
11834 END;  /* prepare_party_roles_tl */
11835 
11836 PROCEDURE prepare_contacts (p_old_id IN okc_k_party_roles_b.id%TYPE,
11837                                   p_new_id IN okc_k_party_roles_b.id%TYPE,
11838                                   p_flush IN VARCHAR2) IS
11839 CURSOR c11(p_id okc_k_party_roles_tl.id%TYPE) IS
11840 SELECT
11841      id, cpl_id, cro_code,
11842      dnz_chr_id, object1_id1, object1_id2,
11843      jtot_object1_code, object_version_number, created_by,
11844      creation_date, last_updated_by, last_update_date,
11845      contact_sequence, last_update_login, attribute_category,
11846      attribute1, attribute2, attribute3,
11847      attribute4, attribute5, attribute6,
11848      attribute7, attribute8, attribute9,
11849      attribute10, attribute11, attribute12,
11850      attribute13, attribute14, attribute15,
11851      security_group_id, start_date, end_date,
11852      primary_yn, resource_class
11853 FROM okc_contacts
11854 WHERE cpl_id = p_id;
11855 
11856     l_cid_tab2 l_cid_type;
11857     l_ccpl_id_tab2 l_ccpl_id_type;
11858     l_ccro_code_tab2 l_ccro_code_type;
11859     l_cdnz_chr_id_tab2 l_cdnz_chr_id_type;
11860     l_cobject1_id1_tab2 l_cobject1_id1_type;
11861     l_cobject1_id2_tab2 l_cobject1_id2_type;
11862     l_cjtot_object1_code_tab2 l_cjtot_object1_code_type;
11863     l_cobject_version_number_tab2 l_cobject_version_number_type;
11864     l_ccreated_by_tab2 l_ccreated_by_type;
11865     l_ccreation_date_tab2 l_ccreation_date_type;
11866     l_clast_updated_by_tab2 l_clast_updated_by_type;
11867     l_clast_update_date_tab2 l_clast_update_date_type;
11868     l_ccontact_sequence_tab2 l_ccontact_sequence_type;
11869     l_clast_update_login_tab2 l_clast_update_login_type;
11870     l_cattribute_category_tab2 l_cattribute_category_type;
11871     l_cattribute1_tab2 l_cattribute1_type;
11872     l_cattribute2_tab2 l_cattribute2_type;
11873     l_cattribute3_tab2 l_cattribute3_type;
11874     l_cattribute4_tab2 l_cattribute4_type;
11875     l_cattribute5_tab2 l_cattribute5_type;
11876     l_cattribute6_tab2 l_cattribute6_type;
11877     l_cattribute7_tab2 l_cattribute7_type;
11878     l_cattribute8_tab2 l_cattribute8_type;
11879     l_cattribute9_tab2 l_cattribute9_type;
11880     l_cattribute10_tab2 l_cattribute10_type;
11881     l_cattribute11_tab2 l_cattribute11_type;
11882     l_cattribute12_tab2 l_cattribute12_type;
11883     l_cattribute13_tab2 l_cattribute13_type;
11884     l_cattribute14_tab2 l_cattribute14_type;
11885     l_cattribute15_tab2 l_cattribute15_type;
11886     l_csecurity_group_id_tab2 l_csecurity_group_id_type;
11887     l_cstart_date_tab2 l_cstart_date_type;
11888     l_cend_date_tab2 l_cend_date_type;
11889     l_cprimary_yn_tab2 l_cprimary_yn_type;
11890     l_cresource_class_tab2 l_cresource_class_type;
11891 
11892 BEGIN
11893   IF (G_DEBUG_ENABLED = 'Y') THEN
11894     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
11895   END IF;
11896   --print('In prepare_contacts p_old_id=' || p_old_id);
11897   --print('In prepare_contacts p_new_id=' || p_new_id);
11898   OPEN c11(p_old_id);
11899   LOOP
11900     FETCH c11 bulk collect INTO
11901      l_cid_tab2, l_ccpl_id_tab2, l_ccro_code_tab2,
11902      l_cdnz_chr_id_tab2, l_cobject1_id1_tab2, l_cobject1_id2_tab2,
11903      l_cjtot_object1_code_tab2,l_cobject_version_number_tab2,l_ccreated_by_tab2,
11904      l_ccreation_date_tab2, l_clast_updated_by_tab2, l_clast_update_date_tab2,
11905      l_ccontact_sequence_tab2, l_clast_update_login_tab2, l_cattribute_category_tab2,
11906      l_cattribute1_tab2, l_cattribute2_tab2, l_cattribute3_tab2,
11907      l_cattribute4_tab2, l_cattribute5_tab2, l_cattribute6_tab2,
11908      l_cattribute7_tab2, l_cattribute8_tab2, l_cattribute9_tab2,
11909      l_cattribute10_tab2, l_cattribute11_tab2, l_cattribute12_tab2,
11910      l_cattribute13_tab2, l_cattribute14_tab2, l_cattribute15_tab2,
11911      l_csecurity_group_id_tab2, l_cstart_date_tab2, l_cend_date_tab2,
11912      l_cprimary_yn_tab2, l_cresource_class_tab2
11913     limit G_BULK_SIZE;
11914     EXIT WHEN l_cid_tab2.COUNT = 0;
11915 
11916     FOR i IN l_cid_tab2.first..l_cid_tab2.last
11917     LOOP
11918       l_cid_tab(l_contacts_counter) := l_cid_tab2(i);
11919 
11920       -- Replace id
11921       l_cid_tab(l_contacts_counter) := okc_p_util.raw_to_number(sys_guid());
11922 
11923       l_ccpl_id_tab(l_contacts_counter) := l_ccpl_id_tab2(i);
11924       -- Replace cpl_id
11925       l_ccpl_id_tab(l_contacts_counter) := p_new_id;
11926 
11927       l_ccro_code_tab(l_contacts_counter) := l_ccro_code_tab2(i);
11928       l_cdnz_chr_id_tab(l_contacts_counter) := l_cdnz_chr_id_tab2(i);
11929       -- Replace dnz_chr_id
11930       l_cdnz_chr_id_tab(l_contacts_counter) := l_copied_id;
11931 
11932       l_cobject1_id1_tab(l_contacts_counter) := l_cobject1_id1_tab2(i);
11933       l_cobject1_id2_tab(l_contacts_counter) := l_cobject1_id2_tab2(i);
11934       l_cjtot_object1_code_tab(l_contacts_counter) := l_cjtot_object1_code_tab2(i);
11935       l_cobject_version_number_tab(l_contacts_counter) := l_cobject_version_number_tab2(i);
11936       l_ccreated_by_tab(l_contacts_counter) := l_ccreated_by_tab2(i);
11937       l_ccreation_date_tab(l_contacts_counter) := l_ccreation_date_tab2(i);
11938       l_clast_updated_by_tab(l_contacts_counter) := l_clast_updated_by_tab2(i);
11939       l_clast_update_date_tab(l_contacts_counter) := l_clast_update_date_tab2(i);
11940       l_ccontact_sequence_tab(l_contacts_counter) := l_ccontact_sequence_tab2(i);
11941       l_clast_update_login_tab(l_contacts_counter) := l_clast_update_login_tab2(i);
11942       l_cattribute_category_tab(l_contacts_counter) := l_cattribute_category_tab2(i);
11943       l_cattribute1_tab(l_contacts_counter) := l_cattribute1_tab2(i);
11944       l_cattribute2_tab(l_contacts_counter) := l_cattribute2_tab2(i);
11945       l_cattribute3_tab(l_contacts_counter) := l_cattribute3_tab2(i);
11946       l_cattribute4_tab(l_contacts_counter) := l_cattribute4_tab2(i);
11947       l_cattribute5_tab(l_contacts_counter) := l_cattribute5_tab2(i);
11948       l_cattribute6_tab(l_contacts_counter) := l_cattribute6_tab2(i);
11949       l_cattribute7_tab(l_contacts_counter) := l_cattribute7_tab2(i);
11950       l_cattribute8_tab(l_contacts_counter) := l_cattribute8_tab2(i);
11951       l_cattribute9_tab(l_contacts_counter) := l_cattribute9_tab2(i);
11952       l_cattribute10_tab(l_contacts_counter) := l_cattribute10_tab2(i);
11953       l_cattribute11_tab(l_contacts_counter) := l_cattribute11_tab2(i);
11954       l_cattribute12_tab(l_contacts_counter) := l_cattribute12_tab2(i);
11955       l_cattribute13_tab(l_contacts_counter) := l_cattribute13_tab2(i);
11956       l_cattribute14_tab(l_contacts_counter) := l_cattribute14_tab2(i);
11957       l_cattribute15_tab(l_contacts_counter) := l_cattribute15_tab2(i);
11958       l_csecurity_group_id_tab(l_contacts_counter) := l_csecurity_group_id_tab2(i);
11959       l_cstart_date_tab(l_contacts_counter) := l_cstart_date_tab2(i);
11960       l_cend_date_tab(l_contacts_counter) := l_cend_date_tab2(i);
11961       l_cprimary_yn_tab(l_contacts_counter) := l_cprimary_yn_tab2(i);
11962       l_cresource_class_tab(l_contacts_counter) := l_cresource_class_tab2(i);
11963 
11964       l_contacts_counter := l_contacts_counter + 1;
11965     END LOOP;
11966 
11967   END LOOP;
11968   CLOSE c11;
11969 
11970   IF (p_flush = 'L') THEN
11971     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
11972           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);
11973     END IF;
11974     IF (l_contacts_counter > 1) THEN
11975       forall i IN l_cid_tab.first..l_cid_tab.last
11976         INSERT INTO okc_contacts (
11977           id, cpl_id, cro_code,
11978           dnz_chr_id, object1_id1, object1_id2,
11979           jtot_object1_code, object_version_number, created_by,
11980           creation_date, last_updated_by, last_update_date,
11981           contact_sequence, last_update_login, attribute_category,
11982           attribute1, attribute2, attribute3,
11983           attribute4, attribute5, attribute6,
11984           attribute7, attribute8, attribute9,
11985           attribute10, attribute11, attribute12,
11986           attribute13, attribute14, attribute15,
11987           security_group_id, start_date, end_date,
11988           primary_yn, resource_class
11989         ) VALUES (
11990          l_cid_tab(i), l_ccpl_id_tab(i), l_ccro_code_tab(i),
11991          l_cdnz_chr_id_tab(i), l_cobject1_id1_tab(i), l_cobject1_id2_tab(i),
11992          l_cjtot_object1_code_tab(i), 1, l_created_by,
11993          SYSDATE, l_last_updated_by, SYSDATE,
11994          l_ccontact_sequence_tab(i), l_last_update_login, l_cattribute_category_tab(i),
11995          l_cattribute1_tab(i), l_cattribute2_tab(i), l_cattribute3_tab(i),
11996          l_cattribute4_tab(i), l_cattribute5_tab(i), l_cattribute6_tab(i),
11997          l_cattribute7_tab(i), l_cattribute8_tab(i), l_cattribute9_tab(i),
11998          l_cattribute10_tab(i), l_cattribute11_tab(i), l_cattribute12_tab(i),
11999          l_cattribute13_tab(i), l_cattribute14_tab(i), l_cattribute15_tab(i),
12000          l_csecurity_group_id_tab(i), l_cstart_date_tab(i), l_cend_date_tab(i),
12001          l_cprimary_yn_tab(i),l_cresource_class_tab(i)
12002         );
12003     END IF;
12004   END IF;
12005 
12006 EXCEPTION WHEN OTHERS THEN
12007 
12008   x_return_status := OKL_API.G_RET_STS_ERROR;
12009   /*OKL_API.set_message(p_app_name => 'OKL',
12010                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
12011                       p_token1 => 'ASSET_NUMBER',
12012                       p_token1_value => 'prepare_contacts');*/
12013     /* DEBUG */
12014   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
12015       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
12016     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing prepare_contacts:l_cid_tab.count=' || l_cid_tab.COUNT || ' ...');
12017   END IF;
12018   IF (l_cid_tab.COUNT > 0) THEN
12019   FOR i IN l_cid_tab.first..l_cid_tab.last
12020   LOOP
12021     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
12022           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cid_tab('||i||')=' || l_cid_tab(i));
12023       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ccpl_id_tab('||i||')=' || l_ccpl_id_tab(i));
12024       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ccro_code_tab('||i||')=' || l_ccro_code_tab(i));
12025       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cdnz_chr_id_tab('||i||')=' || l_cdnz_chr_id_tab(i));
12026       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cobject1_id1_tab('||i||')=' || l_cobject1_id1_tab(i));
12027       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cobject1_id2_tab('||i||')=' || l_cobject1_id2_tab(i));
12028       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cjtot_object1_code_tab('||i||')=' || l_cjtot_object1_code_tab(i));
12029       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ccontact_sequence_tab('||i||')=' || l_ccontact_sequence_tab(i));
12030       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute_category_tab('||i||')=' || l_cattribute_category_tab(i));
12031       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute1_tab('||i||')=' || l_cattribute1_tab(i));
12032       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute2_tab('||i||')=' || l_cattribute2_tab(i));
12033       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute3_tab('||i||')=' || l_cattribute3_tab(i));
12034       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute4_tab('||i||')=' || l_cattribute4_tab(i));
12035       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute5_tab('||i||')=' || l_cattribute5_tab(i));
12036       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute6_tab('||i||')=' || l_cattribute6_tab(i));
12037       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute7_tab('||i||')=' || l_cattribute7_tab(i));
12038       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute8_tab('||i||')=' || l_cattribute8_tab(i));
12039       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute9_tab('||i||')=' || l_cattribute9_tab(i));
12040       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute10_tab('||i||')=' || l_cattribute10_tab(i));
12041       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute11_tab('||i||')=' || l_cattribute11_tab(i));
12042       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute12_tab('||i||')=' || l_cattribute12_tab(i));
12043       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute13_tab('||i||')=' || l_cattribute13_tab(i));
12044       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute14_tab('||i||')=' || l_cattribute14_tab(i));
12045       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cattribute15_tab('||i||')=' || l_cattribute15_tab(i));
12046       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_csecurity_group_id_tab('||i||')=' || l_csecurity_group_id_tab(i));
12047       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cstart_date_tab('||i||')=' || l_cstart_date_tab(i));
12048       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cend_date_tab('||i||')=' || l_cend_date_tab(i));
12049       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cprimary_yn_tab('||i||')=' || l_cprimary_yn_tab(i));
12050       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cresource_class_tab('||i||')=' || l_cresource_class_tab(i));
12051     END IF;
12052   END LOOP;
12053   END IF;
12054 
12055   RAISE OKC_API.G_EXCEPTION_ERROR;
12056 
12057 END;  /* prepare_contacts */
12058 
12059 FUNCTION find_phid_mapping_id(p_id IN NUMBER) RETURN NUMBER IS
12060 hi NUMBER;
12061 lo NUMBER;
12062 m NUMBER;
12063 BEGIN
12064   lo := 1;
12065   hi := l_party_payment_hdr_counter - 1;
12066   WHILE (lo <= hi) LOOP
12067     m := FLOOR((hi + lo)/2);
12068     IF (l_phid_mapping_tab(m).old_id = p_id) THEN
12069       RETURN l_phid_mapping_tab(m).new_id;
12070     ELSIF (l_phid_mapping_tab(m).old_id > p_id) THEN
12071       hi := m - 1;
12072     ELSE
12073       lo := m + 1;
12074     END IF;
12075   END LOOP;
12076   RETURN -1;
12077 END;  /* find_phid_mapping_id */
12078 
12079 PROCEDURE sort_phid_mapping_tab IS
12080   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
12081   --a numtabtype;
12082   l_stack numtabtype;
12083   l_stack_index NUMBER := 0;
12084   N NUMBER;
12085   R NUMBER;
12086   L NUMBER;
12087   P NUMBER;
12088   W NUMBER;
12089   W2 NUMBER;
12090   X NUMBER;
12091   I NUMBER;
12092   J NUMBER;
12093 BEGIN
12094   IF (G_DEBUG_ENABLED = 'Y') THEN
12095     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
12096   END IF;
12097   NULL;
12098 
12099   N := l_party_payment_hdr_counter - 1;
12100   IF (N < 2) THEN
12101     RETURN;
12102   END IF;
12103   l_stack_index := l_stack_index + 1;
12104   l_stack(l_stack_index) := 1;
12105   l_stack_index := l_stack_index + 1;
12106   l_stack(l_stack_index) := N;
12107 
12108   --dbms_output.put_line('l_stack_index=' || l_stack_index);
12109   WHILE l_stack_index > 0
12110   LOOP
12111     R := l_stack(l_stack_index);
12112     l_stack_index := l_stack_index - 1;
12113     L := l_stack(l_stack_index);
12114     l_stack_index := l_stack_index - 1;
12115     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
12116     WHILE 1=1
12117     LOOP -- loop until L >= R
12118       I := L;
12119       J := R;
12120       P := FLOOR((L+R)/2);
12121       --if (a(L) > a(P)) then
12122       IF (l_phid_mapping_tab(L).old_id > l_phid_mapping_tab(P).old_id)
12123       THEN
12124         W := l_phid_mapping_tab(L).old_id;
12125         W2 := l_phid_mapping_tab(L).new_id;
12126         l_phid_mapping_tab(L).old_id :=l_phid_mapping_tab(P).old_id;
12127         l_phid_mapping_tab(L).new_id :=l_phid_mapping_tab(P).new_id;
12128         l_phid_mapping_tab(P).old_id := W;
12129         l_phid_mapping_tab(P).new_id := W2;
12130       END IF;
12131       --if (a(L) > a(R)) then
12132       IF (l_phid_mapping_tab(L).old_id > l_phid_mapping_tab(R).old_id)
12133       THEN
12134         W := l_phid_mapping_tab(L).old_id;
12135         W2 := l_phid_mapping_tab(L).new_id;
12136         l_phid_mapping_tab(L).old_id :=l_phid_mapping_tab(R).old_id;
12137         l_phid_mapping_tab(L).new_id :=l_phid_mapping_tab(R).new_id;
12138         l_phid_mapping_tab(R).old_id := W;
12139         l_phid_mapping_tab(R).new_id := W2;
12140       END IF;
12141       --if (a(P) > a(R)) then
12142       IF (l_phid_mapping_tab(P).old_id > l_phid_mapping_tab(R).old_id)
12143       THEN
12144         W := l_phid_mapping_tab(P).old_id;
12145         W2 := l_phid_mapping_tab(P).new_id;
12146         l_phid_mapping_tab(P).old_id :=l_phid_mapping_tab(R).old_id;
12147         l_phid_mapping_tab(P).new_id :=l_phid_mapping_tab(R).new_id;
12148         l_phid_mapping_tab(R).old_id := W;
12149         l_phid_mapping_tab(R).new_id := W2;
12150       END IF;
12151       --X := a(P);
12152       X := l_phid_mapping_tab(P).old_id;
12153       WHILE 1=1
12154       LOOP    -- until I > J
12155         --while (a(I) < X) loop
12156         WHILE (l_phid_mapping_tab(I).old_id < X) LOOP
12157           I := I + 1;
12158         END LOOP;
12159         WHILE (X < l_phid_mapping_tab(J).old_id) LOOP
12160           J := J - 1;
12161         END LOOP;
12162         IF (I <= J) THEN
12163           W := l_phid_mapping_tab(I).old_id;
12164           W2 := l_phid_mapping_tab(I).new_id;
12165           l_phid_mapping_tab(I).old_id :=l_phid_mapping_tab(J).old_id;
12166           l_phid_mapping_tab(I).new_id :=l_phid_mapping_tab(J).new_id;
12167           l_phid_mapping_tab(J).old_id := W;
12168           l_phid_mapping_tab(J).new_id := W2;
12169           I := I + 1;
12170           J := J - 1;
12171         END IF;
12172         EXIT WHEN I > J;
12173       END LOOP;
12174       IF (J - L < R - I) THEN
12175         IF (I < R) THEN
12176           --push(I); push(R);
12177           l_stack_index := l_stack_index + 1;
12178           l_stack(l_stack_index) := I;
12179           l_stack_index := l_stack_index + 1;
12180           l_stack(l_stack_index) := R;
12181           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
12182         END IF;
12183         R := J;
12184       ELSE
12185         IF (L < J) THEN
12186           --push(L); push(J);
12187           l_stack_index := l_stack_index + 1;
12188           l_stack(l_stack_index) := L;
12189           l_stack_index := l_stack_index + 1;
12190           l_stack(l_stack_index) := J;
12191           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
12192         END IF;
12193         L := I;
12194       END IF;
12195 
12196       EXIT WHEN (L >= R);
12197     END LOOP;
12198   END LOOP;
12199 
12200 EXCEPTION WHEN OTHERS THEN
12201 
12202   --x_return_status := OKL_API.G_RET_STS_ERROR;
12203     /* DEBUG */
12204   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
12205       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
12206     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_phid_mapping_tab:l_phid_mapping_tab N=' || N || ' ...');
12207   END IF;
12208   --print array
12209   FOR i IN 1..N
12210   LOOP
12211     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
12212           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);
12213     END IF;
12214   END LOOP;
12215 
12216   RAISE OKC_API.G_EXCEPTION_ERROR;
12217 
12218 END;  /* sort_phid_mapping_tab */
12219 
12220 
12221 Procedure copy_party_payment_hdr(p_old_id IN NUMBER,
12222                                  p_new_id IN NUMBER) IS
12223     TYPE l_phid_type is table of okl_party_payment_hdr.id%TYPE index by binary_integer;
12224     TYPE l_phdnz_chr_id_type is table of okl_party_payment_hdr.dnz_chr_id%TYPE index by binary_integer;
12225     TYPE l_phcle_id_type is table of okl_party_payment_hdr.cle_id%TYPE index by binary_integer;
12226     TYPE l_phppl_id_type is table of okl_party_payment_hdr.ppl_id%TYPE index by binary_integer;
12227     TYPE l_phpassthru_start_date_type is table of okl_party_payment_hdr.passthru_start_date%TYPE index by binary_integer;
12228     TYPE l_phpayout_basis_type is table of okl_party_payment_hdr.payout_basis%TYPE index by binary_integer;
12229     TYPE l_pheffective_from_type is table of okl_party_payment_hdr.effective_from%TYPE index by binary_integer;
12230     TYPE l_pheffective_to_type is table of okl_party_payment_hdr.effective_to%TYPE index by binary_integer;
12231     TYPE l_phobject_version_number_type is table of okl_party_payment_hdr.object_version_number%TYPE index by binary_integer;
12232     TYPE l_phpassthru_term_type is table of okl_party_payment_hdr.passthru_term%TYPE index by binary_integer;
12233     TYPE l_phpayout_basis_formula_type is table of okl_party_payment_hdr.payout_basis_formula%TYPE index by binary_integer;
12234     TYPE l_phpassthru_stre_type_id_type is table of okl_party_payment_hdr.passthru_stream_type_id%TYPE index by binary_integer;
12235 
12236     l_phid_tab l_phid_type;
12237     l_phdnz_chr_id_tab l_phdnz_chr_id_type;
12238     l_phcle_id_tab l_phcle_id_type;
12239     l_phppl_id_tab l_phppl_id_type;
12240     l_phpassthru_start_date_tab l_phpassthru_start_date_type;
12241     l_phpayout_basis_tab l_phpayout_basis_type;
12242     l_pheffective_from_tab l_pheffective_from_type;
12243     l_pheffective_to_tab l_pheffective_to_type;
12244     l_phobject_version_number_tab l_phobject_version_number_type;
12245     l_phpassthru_term_tab l_phpassthru_term_type;
12246     l_phpayout_basis_formula_tab l_phpayout_basis_formula_type;
12247     l_phpassthru_stre_type_id_tab l_phpassthru_stre_type_id_type;
12248 
12249     l_phid_tab2 l_phid_type;
12250     l_phdnz_chr_id_tab2 l_phdnz_chr_id_type;
12251     l_phcle_id_tab2 l_phcle_id_type;
12252     l_phppl_id_tab2 l_phppl_id_type;
12253     l_phpassthru_start_date_tab2 l_phpassthru_start_date_type;
12254     l_phpayout_basis_tab2 l_phpayout_basis_type;
12255     l_pheffective_from_tab2 l_pheffective_from_type;
12256     l_pheffective_to_tab2 l_pheffective_to_type;
12257     l_phobject_version_number_tab2 l_phobject_version_number_type;
12258     l_phpassthru_term_tab2 l_phpassthru_term_type;
12259     l_phpayout_basis_formula_tab2 l_phpayout_basis_formula_type;
12260     l_phpassthru_stre_type_id_tab2 l_phpassthru_stre_type_id_type;
12261 
12262 CURSOR C31(p_id NUMBER) IS
12263 SELECT
12264        a.id, a.dnz_chr_id, a.cle_id,
12265        a.ppl_id, a.passthru_start_date, a.payout_basis,
12266        a.effective_from, a.effective_to, a.object_version_number,
12267        a.passthru_term, a.payout_basis_formula, a.passthru_stream_type_id
12268 FROM   okl_party_payment_hdr a
12269 WHERE  a.dnz_chr_id = p_id;
12270 l_new_cle_id NUMBER;
12271 
12272 BEGIN
12273   NULL;
12274   OPEN C31(p_old_id);
12275   LOOP
12276     FETCH C31 BULK COLLECT INTO
12277      l_phid_tab2, l_phdnz_chr_id_tab2, l_phcle_id_tab2,
12278      l_phppl_id_tab2, l_phpassthru_start_date_tab2, l_phpayout_basis_tab2,
12279      l_pheffective_from_tab2, l_pheffective_to_tab2, l_phobject_version_number_tab2,
12280      l_phpassthru_term_tab2, l_phpayout_basis_formula_tab2, l_phpassthru_stre_type_id_tab2
12281     LIMIT G_BULK_SIZE;
12282     EXIT WHEN l_phid_tab2.COUNT = 0;
12283 
12284     FOR i IN l_phid_tab2.FIRST..l_phid_tab2.LAST
12285     LOOP
12286       l_phid_tab(l_party_payment_hdr_counter) := l_phid_tab2(i);
12287       -- Replace id
12288       l_phid_tab(l_party_payment_hdr_counter) := okc_p_util.raw_to_number(sys_guid());
12289 
12290       l_phid_mapping_tab(l_party_payment_hdr_counter).old_id :=
12291             l_phid_tab2(i);
12292       l_phid_mapping_tab(l_party_payment_hdr_counter).new_id :=
12293                                  l_phid_tab(l_party_payment_hdr_counter) ;
12294 
12295       l_phdnz_chr_id_tab(l_party_payment_hdr_counter) := l_phdnz_chr_id_tab2(i);
12296       l_phdnz_chr_id_tab(l_party_payment_hdr_counter) := p_new_id;
12297 
12298       l_phcle_id_tab(l_party_payment_hdr_counter) := l_phcle_id_tab2(i);
12299       l_new_cle_id := find_id(l_phcle_id_tab2(i));
12300 
12301       -- l_phcle_id_tab2 could be null for header evergreen passthru, dedey 11/09
12302       IF (l_phcle_id_tab2(i) IS NOT NULL) THEN
12303          IF (l_new_cle_id = -1) THEN
12304            IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
12305                         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR: CLE_ID to NEW_CLE_ID mapping not found');
12306            END IF;
12307            RAISE OKL_API.G_EXCEPTION_ERROR;
12308          END IF;
12309          l_phcle_id_tab(l_party_payment_hdr_counter) := l_new_cle_id;
12310       END IF;
12311 
12312       l_phppl_id_tab(l_party_payment_hdr_counter) := l_phppl_id_tab2(i);
12313       l_phpassthru_start_date_tab(l_party_payment_hdr_counter) := l_phpassthru_start_date_tab2(i);
12314       l_phpayout_basis_tab(l_party_payment_hdr_counter) := l_phpayout_basis_tab2(i);
12315       l_pheffective_from_tab(l_party_payment_hdr_counter) := l_pheffective_from_tab2(i);
12316       l_pheffective_to_tab(l_party_payment_hdr_counter) := l_pheffective_to_tab2(i);
12317       l_phobject_version_number_tab(l_party_payment_hdr_counter) := l_phobject_version_number_tab2(i);
12318       l_phpassthru_term_tab(l_party_payment_hdr_counter) := l_phpassthru_term_tab2(i);
12319       l_phpayout_basis_formula_tab(l_party_payment_hdr_counter) := l_phpayout_basis_formula_tab2(i);
12320       l_phpassthru_stre_type_id_tab(l_party_payment_hdr_counter) := l_phpassthru_stre_type_id_tab2(i);
12321 
12322       l_party_payment_hdr_counter := l_party_payment_hdr_counter + 1;
12323     END LOOP;
12324   END LOOP;
12325   CLOSE C31;
12326   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
12327       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_party_payment_hdr_counter=' || l_party_payment_hdr_counter);
12328   END IF;
12329   IF (l_party_payment_hdr_counter > 1) THEN
12330     sort_phid_mapping_tab;
12331     FORALL i IN l_phid_tab.FIRST..l_phid_tab.LAST
12332     INSERT INTO okl_party_payment_hdr (
12333        id, dnz_chr_id, cle_id,
12334        ppl_id, passthru_start_date, payout_basis,
12335        effective_from, effective_to, created_by,
12336        creation_date, last_updated_by, last_update_date,
12337        last_update_login, object_version_number, passthru_term,
12338        payout_basis_formula, passthru_stream_type_id
12339     ) VALUES (
12340        l_phid_tab(i), l_phdnz_chr_id_tab(i), l_phcle_id_tab(i),
12341        l_phppl_id_tab(i), l_phpassthru_start_date_tab(i), l_phpayout_basis_tab(i),
12342        l_pheffective_from_tab(i), l_pheffective_to_tab(i), l_created_by,
12343        SYSDATE, l_last_updated_by, SYSDATE,
12344        l_last_update_login, l_phobject_version_number_tab(i), l_phpassthru_term_tab(i),
12345        l_phpayout_basis_formula_tab(i), l_phpassthru_stre_type_id_tab(i)
12346     );
12347   END IF;
12348 
12349 EXCEPTION WHEN OTHERS THEN
12350   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
12351       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing l_phid_tab...l_phid_tab.COUNT=' || l_phid_tab.COUNT);
12352   END IF;
12353   IF (l_phid_tab.COUNT > 0) THEN
12354   for i in l_phID_tab.first..l_phID_tab.last
12355   loop
12356     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
12357           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ID('||i||')=' || l_phID_tab(i));
12358       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'DNZ_CHR_ID('||i||')=' || l_phDNZ_CHR_ID_tab(i));
12359       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'CLE_ID('||i||')=' || l_phCLE_ID_tab(i));
12360       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'PPL_ID('||i||')=' || l_phPPL_ID_tab(i));
12361       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'PASSTHRU_START_DATE('||i||')=' || l_phPASSTHRU_START_DATE_tab(i));
12362       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'PAYOUT_BASIS('||i||')=' || l_phPAYOUT_BASIS_tab(i));
12363       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'EFFECTIVE_FROM('||i||')=' || l_phEFFECTIVE_FROM_tab(i));
12364       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'EFFECTIVE_TO('||i||')=' || l_phEFFECTIVE_TO_tab(i));
12365       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OBJECT_VERSION_NUMBER('||i||')=' || l_phOBJECT_VERSION_NUMBER_tab(i));
12366       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'PASSTHRU_TERM('||i||')=' || l_phPASSTHRU_TERM_tab(i));
12367       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'PAYOUT_BASIS_FORMULA('||i||')=' || l_phPAYOUT_BASIS_FORMULA_tab(i));
12368       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'PASSTHRU_STREAM_TYPE_ID('||i||')=' || l_phPASSTHRU_STRE_TYPE_ID_tab(i));
12369     END IF;
12370   end loop;
12371   END IF;
12372   RAISE OKC_API.G_EXCEPTION_ERROR;
12373 
12374 END;
12375 
12376 PROCEDURE prepare_party_payment_dtls (p_old_id IN okc_k_party_roles_b.id%TYPE,
12377                                       p_new_id IN okc_k_party_roles_b.id%TYPE,
12378                                       p_flush IN VARCHAR2) IS
12379 CURSOR c23(p_id NUMBER) IS
12380 SELECT
12381      id, object_version_number, cpl_id,
12382      vendor_id, pay_site_id, payment_term_id,
12383      payment_method_code, pay_group_code, attribute_category,
12384      attribute1, attribute2, attribute3,
12385      attribute4, attribute5, attribute6,
12386      attribute7, attribute8, attribute9,
12387      attribute10, attribute11, attribute12,
12388      attribute13, attribute14, attribute15,
12389      created_by, creation_date, last_updated_by,
12390      last_update_date, last_update_login, payment_hdr_id,
12391      payment_start_date, payment_frequency, remit_days,
12392      disbursement_basis, disbursement_fixed_amount, disbursement_percent,
12393      processing_fee_basis, processing_fee_fixed_amount, processing_fee_percent,
12394      payment_basis
12395 FROM okl_party_payment_dtls
12396 WHERE cpl_id = p_id;
12397 
12398     l_ppid_tab2 l_ppid_type;
12399     l_ppobject_version_number_tab2 l_ppobject_version_number_type;
12400     l_ppcpl_id_tab2 l_ppcpl_id_type;
12401     l_ppvendor_id_tab2 l_ppvendor_id_type;
12402     l_pppay_site_id_tab2 l_pppay_site_id_type;
12403     l_pppayment_term_id_tab2 l_pppayment_term_id_type;
12404     l_pppayment_method_code_tab2 l_pppayment_method_code_type;
12405     l_pppay_group_code_tab2 l_pppay_group_code_type;
12406     l_ppattribute_category_tab2 l_ppattribute_category_type;
12407     l_ppattribute1_tab2 l_ppattribute1_type;
12408     l_ppattribute2_tab2 l_ppattribute2_type;
12409     l_ppattribute3_tab2 l_ppattribute3_type;
12410     l_ppattribute4_tab2 l_ppattribute4_type;
12411     l_ppattribute5_tab2 l_ppattribute5_type;
12412     l_ppattribute6_tab2 l_ppattribute6_type;
12413     l_ppattribute7_tab2 l_ppattribute7_type;
12414     l_ppattribute8_tab2 l_ppattribute8_type;
12415     l_ppattribute9_tab2 l_ppattribute9_type;
12416     l_ppattribute10_tab2 l_ppattribute10_type;
12417     l_ppattribute11_tab2 l_ppattribute11_type;
12418     l_ppattribute12_tab2 l_ppattribute12_type;
12419     l_ppattribute13_tab2 l_ppattribute13_type;
12420     l_ppattribute14_tab2 l_ppattribute14_type;
12421     l_ppattribute15_tab2 l_ppattribute15_type;
12422     l_ppcreated_by_tab2 l_ppcreated_by_type;
12423     l_ppcreation_date_tab2 l_ppcreation_date_type;
12424     l_pplast_updated_by_tab2 l_pplast_updated_by_type;
12425     l_pplast_update_date_tab2 l_pplast_update_date_type;
12426     l_pplast_update_login_tab2 l_pplast_update_login_type;
12427     l_pppayment_hdr_id_tab2 l_pppayment_hdr_id_type;
12428     l_pppayment_start_date_tab2 l_pppayment_start_date_type;
12429     l_pppayment_frequency_tab2 l_pppayment_frequency_type;
12430     l_ppremit_days_tab2 l_ppremit_days_type;
12431     l_ppdisbursement_basis_tab2 l_ppdisbursement_basis_type;
12432     l_ppdisbursement_fixed_am_tab2 l_ppdisbursement_fixed_am_type;
12433     l_ppdisbursement_percent_tab2 l_ppdisbursement_percent_type;
12434     l_ppprocessing_fee_basis_tab2 l_ppprocessing_fee_basis_type;
12435     l_ppprocessing_fee_fixedt_tab2 l_ppprocessing_fee_fixedt_type;
12436     l_ppprocessing_fee_percen_tab2 l_ppprocessing_fee_percen_type;
12437     l_pppayment_basis_tab2 l_pppayment_basis_type;
12438 
12439     l_new_payment_hdr_id NUMBER;
12440 
12441 BEGIN
12442   IF (G_DEBUG_ENABLED = 'Y') THEN
12443     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
12444   END IF;
12445   OPEN c23(p_old_id);
12446   LOOP
12447     FETCH c23 bulk collect INTO
12448      l_ppid_tab2, l_ppobject_version_number_tab2, l_ppcpl_id_tab2,
12449      l_ppvendor_id_tab2, l_pppay_site_id_tab2, l_pppayment_term_id_tab2,
12450      l_pppayment_method_code_tab2, l_pppay_group_code_tab2, l_ppattribute_category_tab2,
12451      l_ppattribute1_tab2, l_ppattribute2_tab2, l_ppattribute3_tab2,
12452      l_ppattribute4_tab2, l_ppattribute5_tab2, l_ppattribute6_tab2,
12453      l_ppattribute7_tab2, l_ppattribute8_tab2, l_ppattribute9_tab2,
12454      l_ppattribute10_tab2, l_ppattribute11_tab2, l_ppattribute12_tab2,
12455      l_ppattribute13_tab2, l_ppattribute14_tab2, l_ppattribute15_tab2,
12456      l_ppcreated_by_tab2, l_ppcreation_date_tab2, l_pplast_updated_by_tab2,
12457      l_pplast_update_date_tab2, l_pplast_update_login_tab2, l_pppayment_hdr_id_tab2,
12458      l_pppayment_start_date_tab2, l_pppayment_frequency_tab2, l_ppremit_days_tab2,
12459      l_ppdisbursement_basis_tab2, l_ppdisbursement_fixed_am_tab2, l_ppdisbursement_percent_tab2,
12460      l_ppprocessing_fee_basis_tab2, l_ppprocessing_fee_fixedt_tab2, l_ppprocessing_fee_percen_tab2,
12461      l_pppayment_basis_tab2
12462     limit G_BULK_SIZE;
12463     EXIT WHEN l_ppid_tab2.COUNT = 0;
12464     FOR i IN l_ppid_tab2.first..l_ppid_tab2.last
12465     LOOP
12466 
12467       l_ppid_tab(l_party_payment_dtls_counter) := l_ppid_tab2(i);
12468       -- Change id
12469       l_ppid_tab(l_party_payment_dtls_counter) := okc_p_util.raw_to_number(sys_guid());
12470 
12471       l_ppobject_version_number_tab(l_party_payment_dtls_counter) := l_ppobject_version_number_tab2(i);
12472       l_ppcpl_id_tab(l_party_payment_dtls_counter) := l_ppcpl_id_tab2(i);
12473       -- Change cpl_id
12474       l_ppcpl_id_tab(l_party_payment_dtls_counter) := p_new_id;
12475 
12476       l_ppvendor_id_tab(l_party_payment_dtls_counter) := l_ppvendor_id_tab2(i);
12477       l_pppay_site_id_tab(l_party_payment_dtls_counter) := l_pppay_site_id_tab2(i);
12478       l_pppayment_term_id_tab(l_party_payment_dtls_counter) := l_pppayment_term_id_tab2(i);
12479       l_pppayment_method_code_tab(l_party_payment_dtls_counter) := l_pppayment_method_code_tab2(i);
12480       l_pppay_group_code_tab(l_party_payment_dtls_counter) := l_pppay_group_code_tab2(i);
12481       l_ppattribute_category_tab(l_party_payment_dtls_counter) := l_ppattribute_category_tab2(i);
12482       l_ppattribute1_tab(l_party_payment_dtls_counter) := l_ppattribute1_tab2(i);
12483       l_ppattribute2_tab(l_party_payment_dtls_counter) := l_ppattribute2_tab2(i);
12484       l_ppattribute3_tab(l_party_payment_dtls_counter) := l_ppattribute3_tab2(i);
12485       l_ppattribute4_tab(l_party_payment_dtls_counter) := l_ppattribute4_tab2(i);
12486       l_ppattribute5_tab(l_party_payment_dtls_counter) := l_ppattribute5_tab2(i);
12487       l_ppattribute6_tab(l_party_payment_dtls_counter) := l_ppattribute6_tab2(i);
12488       l_ppattribute7_tab(l_party_payment_dtls_counter) := l_ppattribute7_tab2(i);
12489       l_ppattribute8_tab(l_party_payment_dtls_counter) := l_ppattribute8_tab2(i);
12490       l_ppattribute9_tab(l_party_payment_dtls_counter) := l_ppattribute9_tab2(i);
12491       l_ppattribute10_tab(l_party_payment_dtls_counter) := l_ppattribute10_tab2(i);
12492       l_ppattribute11_tab(l_party_payment_dtls_counter) := l_ppattribute11_tab2(i);
12493       l_ppattribute12_tab(l_party_payment_dtls_counter) := l_ppattribute12_tab2(i);
12494       l_ppattribute13_tab(l_party_payment_dtls_counter) := l_ppattribute13_tab2(i);
12495       l_ppattribute14_tab(l_party_payment_dtls_counter) := l_ppattribute14_tab2(i);
12496       l_ppattribute15_tab(l_party_payment_dtls_counter) := l_ppattribute15_tab2(i);
12497       l_ppcreated_by_tab(l_party_payment_dtls_counter) := l_ppcreated_by_tab2(i);
12498       l_ppcreation_date_tab(l_party_payment_dtls_counter) := l_ppcreation_date_tab2(i);
12499       l_pplast_updated_by_tab(l_party_payment_dtls_counter) := l_pplast_updated_by_tab2(i);
12500       l_pplast_update_date_tab(l_party_payment_dtls_counter) := l_pplast_update_date_tab2(i);
12501       l_pplast_update_login_tab(l_party_payment_dtls_counter) := l_pplast_update_login_tab2(i);
12502       l_pppayment_hdr_id_tab(l_party_payment_dtls_counter) := l_pppayment_hdr_id_tab2(i);
12503       IF (l_pppayment_hdr_id_tab(l_party_payment_dtls_counter) IS NOT NULL) THEN
12504         l_new_payment_hdr_id := find_phid_mapping_id(
12505                           l_pppayment_hdr_id_tab(l_party_payment_dtls_counter));
12506         l_pppayment_hdr_id_tab(l_party_payment_dtls_counter) := l_new_payment_hdr_id;
12507       END IF;
12508       l_pppayment_start_date_tab(l_party_payment_dtls_counter) := l_pppayment_start_date_tab2(i);
12509       l_pppayment_frequency_tab(l_party_payment_dtls_counter) := l_pppayment_frequency_tab2(i);
12510       l_ppremit_days_tab(l_party_payment_dtls_counter) := l_ppremit_days_tab2(i);
12511       l_ppdisbursement_basis_tab(l_party_payment_dtls_counter) := l_ppdisbursement_basis_tab2(i);
12512       l_ppdisbursement_fixed_am_tab(l_party_payment_dtls_counter) := l_ppdisbursement_fixed_am_tab2(i);
12513       l_ppdisbursement_percent_tab(l_party_payment_dtls_counter) := l_ppdisbursement_percent_tab2(i);
12514       l_ppprocessing_fee_basis_tab(l_party_payment_dtls_counter) := l_ppprocessing_fee_basis_tab2(i);
12515       l_ppprocessing_fee_fixedt_tab(l_party_payment_dtls_counter) := l_ppprocessing_fee_fixedt_tab2(i);
12516       l_ppprocessing_fee_percen_tab(l_party_payment_dtls_counter) := l_ppprocessing_fee_percen_tab2(i);
12517       l_pppayment_basis_tab(l_party_payment_dtls_counter) := l_pppayment_basis_tab2(i);
12518 
12519       l_party_payment_dtls_counter := l_party_payment_dtls_counter + 1;
12520 
12521     END LOOP;
12522   END LOOP;
12523   CLOSE c23;
12524 
12525   IF (p_flush = 'Y') THEN
12526     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
12527           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);
12528     END IF;
12529     IF (l_party_payment_dtls_counter > 1) THEN
12530       forall i IN l_ppid_tab.first..l_ppid_tab.last
12531       INSERT INTO okl_party_payment_dtls (
12532        id, object_version_number, cpl_id,
12533        vendor_id, pay_site_id, payment_term_id,
12534        payment_method_code, pay_group_code, attribute_category,
12535        attribute1, attribute2, attribute3,
12536        attribute4, attribute5, attribute6,
12537        attribute7, attribute8, attribute9,
12538        attribute10, attribute11, attribute12,
12539        attribute13, attribute14, attribute15,
12540        created_by, creation_date, last_updated_by,
12541        last_update_date, last_update_login, payment_hdr_id,
12542        payment_start_date, payment_frequency, remit_days,
12543        disbursement_basis, disbursement_fixed_amount, disbursement_percent,
12544        processing_fee_basis, processing_fee_fixed_amount, processing_fee_percent,
12545        payment_basis
12546       ) VALUES (
12547        l_ppid_tab(i), l_ppobject_version_number_tab(i), l_ppcpl_id_tab(i),
12548        l_ppvendor_id_tab(i), l_pppay_site_id_tab(i), l_pppayment_term_id_tab(i),
12549        l_pppayment_method_code_tab(i), l_pppay_group_code_tab(i), l_ppattribute_category_tab(i),
12550        l_ppattribute1_tab(i), l_ppattribute2_tab(i), l_ppattribute3_tab(i),
12551        l_ppattribute4_tab(i), l_ppattribute5_tab(i), l_ppattribute6_tab(i),
12552        l_ppattribute7_tab(i), l_ppattribute8_tab(i), l_ppattribute9_tab(i),
12553        l_ppattribute10_tab(i), l_ppattribute11_tab(i), l_ppattribute12_tab(i),
12554        l_ppattribute13_tab(i), l_ppattribute14_tab(i), l_ppattribute15_tab(i),
12555        l_created_by, SYSDATE, l_last_updated_by,
12556        SYSDATE, l_last_update_login, l_pppayment_hdr_id_tab(i),
12557        l_pppayment_start_date_tab(i), l_pppayment_frequency_tab(i), l_ppremit_days_tab(i),
12558        l_ppdisbursement_basis_tab(i), l_ppdisbursement_fixed_am_tab(i), l_ppdisbursement_percent_tab(i),
12559        l_ppprocessing_fee_basis_tab(i), l_ppprocessing_fee_fixedt_tab(i), l_ppprocessing_fee_percen_tab(i),
12560        l_pppayment_basis_tab(i)
12561       );
12562     END IF;
12563   END IF;
12564 
12565 EXCEPTION WHEN OTHERS THEN
12566 
12567   x_return_status := OKL_API.G_RET_STS_ERROR;
12568   /*OKL_API.set_message(p_app_name => 'OKL',
12569                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
12570                       p_token1 => 'ASSET_NUMBER',
12571                       p_token1_value => 'prepare_party_payment_dtls');*/
12572     /* DEBUG */
12573   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
12574       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
12575     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing prepare_party_payment_dtls:l_ppid_tab.count=' ||l_ppid_tab.COUNT || ' ...');
12576   END IF;
12577   IF (l_ppid_tab.COUNT > 0) THEN
12578   FOR i IN l_ppid_tab.first..l_ppid_tab.last
12579   LOOP
12580     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
12581           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppid_tab('||i||')=' || l_ppid_tab(i));
12582       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppobject_version_number_tab('||i||')=' || l_ppobject_version_number_tab(i));
12583       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppcpl_id_tab('||i||')=' || l_ppcpl_id_tab(i));
12584       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppvendor_id_tab('||i||')=' || l_ppvendor_id_tab(i));
12585       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_pppay_site_id_tab('||i||')=' || l_pppay_site_id_tab(i));
12586       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_pppayment_term_id_tab('||i||')=' || l_pppayment_term_id_tab(i));
12587       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_pppayment_method_code_tab('||i||')=' || l_pppayment_method_code_tab(i));
12588       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_pppay_group_code_tab('||i||')=' || l_pppay_group_code_tab(i));
12589       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute_category_tab('||i||')=' || l_ppattribute_category_tab(i));
12590       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute1_tab('||i||')=' || l_ppattribute1_tab(i));
12591       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute2_tab('||i||')=' || l_ppattribute2_tab(i));
12592       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute3_tab('||i||')=' || l_ppattribute3_tab(i));
12593       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute4_tab('||i||')=' || l_ppattribute4_tab(i));
12594       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute5_tab('||i||')=' || l_ppattribute5_tab(i));
12595       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute6_tab('||i||')=' || l_ppattribute6_tab(i));
12596       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute7_tab('||i||')=' || l_ppattribute7_tab(i));
12597       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute8_tab('||i||')=' || l_ppattribute8_tab(i));
12598       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute9_tab('||i||')=' || l_ppattribute9_tab(i));
12599       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute10_tab('||i||')=' || l_ppattribute10_tab(i));
12600       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute11_tab('||i||')=' || l_ppattribute11_tab(i));
12601       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute12_tab('||i||')=' || l_ppattribute12_tab(i));
12602       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute13_tab('||i||')=' || l_ppattribute13_tab(i));
12603       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute14_tab('||i||')=' || l_ppattribute14_tab(i));
12604       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppattribute15_tab('||i||')=' || l_ppattribute15_tab(i));
12605       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppPAYMENT_HDR_ID_tab('||i||')=' || l_ppPAYMENT_HDR_ID_tab(i));
12606       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppPAYMENT_START_DATE_tab('||i||')=' || l_ppPAYMENT_START_DATE_tab(i));
12607       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppPAYMENT_FREQUENCY_tab('||i||')=' || l_ppPAYMENT_FREQUENCY_tab(i));
12608       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppREMIT_DAYS_tab('||i||')=' || l_ppREMIT_DAYS_tab(i));
12609       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppDISBURSEMENT_BASIS_tab('||i||')=' || l_ppDISBURSEMENT_BASIS_tab(i));
12610       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppDISBURSEMENT_FIXED_AMOUNT_tab('||i||')=' || l_ppDISBURSEMENT_FIXED_AM_tab(i));
12611       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppDISBURSEMENT_PERCENT_tab('||i||')=' || l_ppDISBURSEMENT_PERCENT_tab(i));
12612       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppPROCESSING_FEE_BASIS_tab('||i||')=' || l_ppPROCESSING_FEE_BASIS_tab(i));
12613       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppPROCESSING_FEE_FIXED_AMOUNT_tab('||i||')=' || l_ppPROCESSING_FEE_FIXEDt_tab(i));
12614       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppPROCESSING_FEE_PERCENT_tab('||i||')=' || l_ppPROCESSING_FEE_PERCEN_tab(i));
12615       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ppPAYMENT_BASIS_tab('||i||')=' || l_ppPAYMENT_BASIS_tab(i));
12616     END IF;
12617   END LOOP;
12618   END IF;
12619 
12620   RAISE OKC_API.G_EXCEPTION_ERROR;
12621 
12622 END; /* prepare_party_payment_dtls */
12623 
12624 FUNCTION find_vid_mapping_id(p_id IN NUMBER) RETURN VARCHAR2 IS
12625 hi NUMBER;
12626 lo NUMBER;
12627 m NUMBER;
12628 BEGIN
12629   lo := 1;
12630   hi := l_vid_counter - 1;
12631   WHILE (lo <= hi) LOOP
12632     m := FLOOR((hi + lo)/2);
12633     IF (l_vid_mapping_tab(m).cle_id = p_id) THEN
12634       RETURN l_vid_mapping_tab(m).object1_id1;
12635     ELSIF (l_vid_mapping_tab(m).cle_id > p_id) THEN
12636       hi := m - 1;
12637     ELSE
12638       lo := m + 1;
12639     END IF;
12640   END LOOP;
12641   RETURN NULL;
12642 END;  /* find_vid_mapping_id */
12643 
12644 PROCEDURE sort_vid_mapping_tab IS
12645   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
12646   --a numtabtype;
12647   l_stack numtabtype;
12648   l_stack_index NUMBER := 0;
12649   N NUMBER;
12650   R NUMBER;
12651   L NUMBER;
12652   P NUMBER;
12653   W NUMBER;
12654   W2 VARCHAR2(40);
12655   X NUMBER;
12656   I NUMBER;
12657   J NUMBER;
12658 BEGIN
12659   IF (G_DEBUG_ENABLED = 'Y') THEN
12660     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
12661   END IF;
12662   NULL;
12663 
12664   N := l_vid_counter - 1;
12665   IF (N < 2) THEN
12666     RETURN;
12667   END IF;
12668   l_stack_index := l_stack_index + 1;
12669   l_stack(l_stack_index) := 1;
12670   l_stack_index := l_stack_index + 1;
12671   l_stack(l_stack_index) := N;
12672 
12673   --dbms_output.put_line('l_stack_index=' || l_stack_index);
12674   WHILE l_stack_index > 0
12675   LOOP
12676     R := l_stack(l_stack_index);
12677     l_stack_index := l_stack_index - 1;
12678     L := l_stack(l_stack_index);
12679     l_stack_index := l_stack_index - 1;
12680     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
12681     WHILE 1=1
12682     LOOP -- loop until L >= R
12683       I := L;
12684       J := R;
12685       P := FLOOR((L+R)/2);
12686       --if (a(L) > a(P)) then
12687       IF (l_vid_mapping_tab(L).cle_id > l_vid_mapping_tab(P).cle_id)
12688       THEN
12689         W := l_vid_mapping_tab(L).cle_id;
12690         W2 := l_vid_mapping_tab(L).object1_id1;
12691         l_vid_mapping_tab(L).cle_id :=l_vid_mapping_tab(P).cle_id;
12692         l_vid_mapping_tab(L).object1_id1 :=l_vid_mapping_tab(P).object1_id1;
12693         l_vid_mapping_tab(P).cle_id := W;
12694         l_vid_mapping_tab(P).object1_id1 := W2;
12695       END IF;
12696       --if (a(L) > a(R)) then
12697       IF (l_vid_mapping_tab(L).cle_id > l_vid_mapping_tab(R).cle_id)
12698       THEN
12699         W := l_vid_mapping_tab(L).cle_id;
12700         W2 := l_vid_mapping_tab(L).object1_id1;
12701         l_vid_mapping_tab(L).cle_id :=l_vid_mapping_tab(R).cle_id;
12702         l_vid_mapping_tab(L).object1_id1 :=l_vid_mapping_tab(R).object1_id1;
12703         l_vid_mapping_tab(R).cle_id := W;
12704         l_vid_mapping_tab(R).object1_id1 := W2;
12705       END IF;
12706       --if (a(P) > a(R)) then
12707       IF (l_vid_mapping_tab(P).cle_id > l_vid_mapping_tab(R).cle_id)
12708       THEN
12709         W := l_vid_mapping_tab(P).cle_id;
12710         W2 := l_vid_mapping_tab(P).object1_id1;
12711         l_vid_mapping_tab(P).cle_id :=l_vid_mapping_tab(R).cle_id;
12712         l_vid_mapping_tab(P).object1_id1 :=l_vid_mapping_tab(R).object1_id1;
12713         l_vid_mapping_tab(R).cle_id := W;
12714         l_vid_mapping_tab(R).object1_id1 := W2;
12715       END IF;
12716       --X := a(P);
12717       X := l_vid_mapping_tab(P).cle_id;
12718       WHILE 1=1
12719       LOOP    -- until I > J
12720         --while (a(I) < X) loop
12721         WHILE (l_vid_mapping_tab(I).cle_id < X) LOOP
12722           I := I + 1;
12723         END LOOP;
12724         WHILE (X < l_vid_mapping_tab(J).cle_id) LOOP
12725           J := J - 1;
12726         END LOOP;
12727         IF (I <= J) THEN
12728           W := l_vid_mapping_tab(I).cle_id;
12729           W2 := l_vid_mapping_tab(I).object1_id1;
12730           l_vid_mapping_tab(I).cle_id :=l_vid_mapping_tab(J).cle_id;
12731           l_vid_mapping_tab(I).object1_id1 :=l_vid_mapping_tab(J).object1_id1;
12732           l_vid_mapping_tab(J).cle_id := W;
12733           l_vid_mapping_tab(J).object1_id1 := W2;
12734           I := I + 1;
12735           J := J - 1;
12736         END IF;
12737         EXIT WHEN I > J;
12738       END LOOP;
12739       IF (J - L < R - I) THEN
12740         IF (I < R) THEN
12741           --push(I); push(R);
12742           l_stack_index := l_stack_index + 1;
12743           l_stack(l_stack_index) := I;
12744           l_stack_index := l_stack_index + 1;
12745           l_stack(l_stack_index) := R;
12746           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
12747         END IF;
12748         R := J;
12749       ELSE
12750         IF (L < J) THEN
12751           --push(L); push(J);
12752           l_stack_index := l_stack_index + 1;
12753           l_stack(l_stack_index) := L;
12754           l_stack_index := l_stack_index + 1;
12755           l_stack(l_stack_index) := J;
12756           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
12757         END IF;
12758         L := I;
12759       END IF;
12760 
12761       EXIT WHEN (L >= R);
12762     END LOOP;
12763   END LOOP;
12764 
12765 EXCEPTION WHEN OTHERS THEN
12766 
12767   x_return_status := OKL_API.G_RET_STS_ERROR;
12768   /*OKL_API.set_message(p_app_name => 'OKL',
12769                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
12770                       p_token1 => 'ASSET_NUMBER',
12771                       p_token1_value => 'sort_vid_mapping_tab');*/
12772     /* DEBUG */
12773   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
12774       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
12775     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_vid_mapping_tab:l_vid_mapping_tab N=' || N || ' ...');
12776   END IF;
12777 
12778   --print array
12779   FOR i IN 1..N
12780   LOOP
12781     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
12782           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);
12783     END IF;
12784   END LOOP;
12785 
12786   RAISE OKC_API.G_EXCEPTION_ERROR;
12787 
12788 END;  /* sort_vid_mapping_tab */
12789 
12790 PROCEDURE insert_okc_k_party_roles(p_old_id IN okc_k_headers_b.id%TYPE,
12791                                    p_new_id IN okc_k_headers_b.id%TYPE) IS
12792 CURSOR c9(p_id okc_k_party_roles_b.dnz_chr_id%TYPE) IS
12793 SELECT
12794      id, chr_id, cle_id,
12795      dnz_chr_id, rle_code, object1_id1,
12796      object1_id2, jtot_object1_code, object_version_number,
12797      created_by, creation_date, last_updated_by,
12798      last_update_date, code, facility,
12799      minority_group_lookup_code, small_business_flag, women_owned_flag,
12800      last_update_login, attribute_category, attribute1,
12801      attribute2, attribute3, attribute4,
12802      attribute5, attribute6, attribute7,
12803      attribute8, attribute9, attribute10,
12804      attribute11, attribute12, attribute13,
12805      attribute14, attribute15, security_group_id,
12806      cpl_id, primary_yn, bill_to_site_use_id,
12807      cust_acct_id, id orig_system_id1
12808   FROM okc_k_party_roles_b
12809   WHERE dnz_chr_id = p_id
12810   AND (
12811     chr_id = chr_id
12812     OR (
12813         NVL(p_copy_lines_yn, 'N') = 'Y'
12814         AND cle_id IS NOT NULL
12815        )
12816   );
12817 
12818     TYPE l_id_type IS TABLE OF okc_k_party_roles_b.id%TYPE INDEX BY BINARY_INTEGER;
12819     TYPE l_chr_id_type IS TABLE OF okc_k_party_roles_b.chr_id%TYPE INDEX BY BINARY_INTEGER;
12820     TYPE l_cle_id_type IS TABLE OF okc_k_party_roles_b.cle_id%TYPE INDEX BY BINARY_INTEGER;
12821     TYPE l_dnz_chr_id_type IS TABLE OF okc_k_party_roles_b.dnz_chr_id%TYPE INDEX BY BINARY_INTEGER;
12822     TYPE l_rle_code_type IS TABLE OF okc_k_party_roles_b.rle_code%TYPE INDEX BY BINARY_INTEGER;
12823     TYPE l_object1_id1_type IS TABLE OF okc_k_party_roles_b.object1_id1%TYPE INDEX BY BINARY_INTEGER;
12824     TYPE l_object1_id2_type IS TABLE OF okc_k_party_roles_b.object1_id2%TYPE INDEX BY BINARY_INTEGER;
12825     TYPE l_jtot_object1_code_type IS TABLE OF okc_k_party_roles_b.jtot_object1_code%TYPE INDEX BY BINARY_INTEGER;
12826     TYPE l_object_version_number_type IS TABLE OF okc_k_party_roles_b.object_version_number%TYPE INDEX BY BINARY_INTEGER;
12827     TYPE l_created_by_type IS TABLE OF okc_k_party_roles_b.created_by%TYPE INDEX BY BINARY_INTEGER;
12828     TYPE l_creation_date_type IS TABLE OF okc_k_party_roles_b.creation_date%TYPE INDEX BY BINARY_INTEGER;
12829     TYPE l_last_updated_by_type IS TABLE OF okc_k_party_roles_b.last_updated_by%TYPE INDEX BY BINARY_INTEGER;
12830     TYPE l_last_update_date_type IS TABLE OF okc_k_party_roles_b.last_update_date%TYPE INDEX BY BINARY_INTEGER;
12831     TYPE l_code_type IS TABLE OF okc_k_party_roles_b.code%TYPE INDEX BY BINARY_INTEGER;
12832     TYPE l_facility_type IS TABLE OF okc_k_party_roles_b.facility%TYPE INDEX BY BINARY_INTEGER;
12833     TYPE l_minority_group_lookup_c_type IS TABLE OF okc_k_party_roles_b.minority_group_lookup_code%TYPE INDEX BY BINARY_INTEGER;
12834     TYPE l_small_business_flag_type IS TABLE OF okc_k_party_roles_b.small_business_flag%TYPE INDEX BY BINARY_INTEGER;
12835     TYPE l_women_owned_flag_type IS TABLE OF okc_k_party_roles_b.women_owned_flag%TYPE INDEX BY BINARY_INTEGER;
12836     TYPE l_last_update_login_type IS TABLE OF okc_k_party_roles_b.last_update_login%TYPE INDEX BY BINARY_INTEGER;
12837     TYPE l_attribute_category_type IS TABLE OF okc_k_party_roles_b.attribute_category%TYPE INDEX BY BINARY_INTEGER;
12838     TYPE l_attribute1_type IS TABLE OF okc_k_party_roles_b.attribute1%TYPE INDEX BY BINARY_INTEGER;
12839     TYPE l_attribute2_type IS TABLE OF okc_k_party_roles_b.attribute2%TYPE INDEX BY BINARY_INTEGER;
12840     TYPE l_attribute3_type IS TABLE OF okc_k_party_roles_b.attribute3%TYPE INDEX BY BINARY_INTEGER;
12841     TYPE l_attribute4_type IS TABLE OF okc_k_party_roles_b.attribute4%TYPE INDEX BY BINARY_INTEGER;
12842     TYPE l_attribute5_type IS TABLE OF okc_k_party_roles_b.attribute5%TYPE INDEX BY BINARY_INTEGER;
12843     TYPE l_attribute6_type IS TABLE OF okc_k_party_roles_b.attribute6%TYPE INDEX BY BINARY_INTEGER;
12844     TYPE l_attribute7_type IS TABLE OF okc_k_party_roles_b.attribute7%TYPE INDEX BY BINARY_INTEGER;
12845     TYPE l_attribute8_type IS TABLE OF okc_k_party_roles_b.attribute8%TYPE INDEX BY BINARY_INTEGER;
12846     TYPE l_attribute9_type IS TABLE OF okc_k_party_roles_b.attribute9%TYPE INDEX BY BINARY_INTEGER;
12847     TYPE l_attribute10_type IS TABLE OF okc_k_party_roles_b.attribute10%TYPE INDEX BY BINARY_INTEGER;
12848     TYPE l_attribute11_type IS TABLE OF okc_k_party_roles_b.attribute11%TYPE INDEX BY BINARY_INTEGER;
12849     TYPE l_attribute12_type IS TABLE OF okc_k_party_roles_b.attribute12%TYPE INDEX BY BINARY_INTEGER;
12850     TYPE l_attribute13_type IS TABLE OF okc_k_party_roles_b.attribute13%TYPE INDEX BY BINARY_INTEGER;
12851     TYPE l_attribute14_type IS TABLE OF okc_k_party_roles_b.attribute14%TYPE INDEX BY BINARY_INTEGER;
12852     TYPE l_attribute15_type IS TABLE OF okc_k_party_roles_b.attribute15%TYPE INDEX BY BINARY_INTEGER;
12853     TYPE l_security_group_id_type IS TABLE OF okc_k_party_roles_b.security_group_id%TYPE INDEX BY BINARY_INTEGER;
12854     TYPE l_cpl_id_type IS TABLE OF okc_k_party_roles_b.cpl_id%TYPE INDEX BY BINARY_INTEGER;
12855     TYPE l_primary_yn_type IS TABLE OF okc_k_party_roles_b.primary_yn%TYPE INDEX BY BINARY_INTEGER;
12856     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;
12857     TYPE l_cust_acct_id_type IS TABLE OF okc_k_party_roles_b.cust_acct_id%TYPE INDEX BY BINARY_INTEGER;
12858     TYPE l_orig_system_id1_type IS TABLE OF okc_k_party_roles_b.orig_system_id1%TYPE INDEX BY BINARY_INTEGER;
12859 
12860     l_id_tab_old l_id_type;
12861 
12862     l_id_tab l_id_type;
12863     l_chr_id_tab l_chr_id_type;
12864     l_cle_id_tab l_cle_id_type;
12865     l_dnz_chr_id_tab l_dnz_chr_id_type;
12866     l_rle_code_tab l_rle_code_type;
12867     l_object1_id1_tab l_object1_id1_type;
12868     l_object1_id2_tab l_object1_id2_type;
12869     l_jtot_object1_code_tab l_jtot_object1_code_type;
12870     l_object_version_number_tab l_object_version_number_type;
12871     l_created_by_tab l_created_by_type;
12872     l_creation_date_tab l_creation_date_type;
12873     l_last_updated_by_tab l_last_updated_by_type;
12874     l_last_update_date_tab l_last_update_date_type;
12875     l_code_tab l_code_type;
12876     l_facility_tab l_facility_type;
12877     l_minority_group_lookup_c_tab l_minority_group_lookup_c_type;
12878     l_small_business_flag_tab l_small_business_flag_type;
12879     l_women_owned_flag_tab l_women_owned_flag_type;
12880     l_last_update_login_tab l_last_update_login_type;
12881     l_attribute_category_tab l_attribute_category_type;
12882     l_attribute1_tab l_attribute1_type;
12883     l_attribute2_tab l_attribute2_type;
12884     l_attribute3_tab l_attribute3_type;
12885     l_attribute4_tab l_attribute4_type;
12886     l_attribute5_tab l_attribute5_type;
12887     l_attribute6_tab l_attribute6_type;
12888     l_attribute7_tab l_attribute7_type;
12889     l_attribute8_tab l_attribute8_type;
12890     l_attribute9_tab l_attribute9_type;
12891     l_attribute10_tab l_attribute10_type;
12892     l_attribute11_tab l_attribute11_type;
12893     l_attribute12_tab l_attribute12_type;
12894     l_attribute13_tab l_attribute13_type;
12895     l_attribute14_tab l_attribute14_type;
12896     l_attribute15_tab l_attribute15_type;
12897     l_security_group_id_tab l_security_group_id_type;
12898     l_cpl_id_tab l_cpl_id_type;
12899     l_primary_yn_tab l_primary_yn_type;
12900     l_bill_to_site_use_id_tab l_bill_to_site_use_id_type;
12901     l_cust_acct_id_tab l_cust_acct_id_type;
12902     l_orig_system_id1_tab l_orig_system_id1_type;
12903 
12904     l_id_tab2 l_id_type;
12905     l_chr_id_tab2 l_chr_id_type;
12906     l_cle_id_tab2 l_cle_id_type;
12907     l_dnz_chr_id_tab2 l_dnz_chr_id_type;
12908     l_rle_code_tab2 l_rle_code_type;
12909     l_object1_id1_tab2 l_object1_id1_type;
12910     l_object1_id2_tab2 l_object1_id2_type;
12911     l_jtot_object1_code_tab2 l_jtot_object1_code_type;
12912     l_object_version_number_tab2 l_object_version_number_type;
12913     l_created_by_tab2 l_created_by_type;
12914     l_creation_date_tab2 l_creation_date_type;
12915     l_last_updated_by_tab2 l_last_updated_by_type;
12916     l_last_update_date_tab2 l_last_update_date_type;
12917     l_code_tab2 l_code_type;
12918     l_facility_tab2 l_facility_type;
12919     l_minority_group_lookup_c_tab2 l_minority_group_lookup_c_type;
12920     l_small_business_flag_tab2 l_small_business_flag_type;
12921     l_women_owned_flag_tab2 l_women_owned_flag_type;
12922     l_last_update_login_tab2 l_last_update_login_type;
12923     l_attribute_category_tab2 l_attribute_category_type;
12924     l_attribute1_tab2 l_attribute1_type;
12925     l_attribute2_tab2 l_attribute2_type;
12926     l_attribute3_tab2 l_attribute3_type;
12927     l_attribute4_tab2 l_attribute4_type;
12928     l_attribute5_tab2 l_attribute5_type;
12929     l_attribute6_tab2 l_attribute6_type;
12930     l_attribute7_tab2 l_attribute7_type;
12931     l_attribute8_tab2 l_attribute8_type;
12932     l_attribute9_tab2 l_attribute9_type;
12933     l_attribute10_tab2 l_attribute10_type;
12934     l_attribute11_tab2 l_attribute11_type;
12935     l_attribute12_tab2 l_attribute12_type;
12936     l_attribute13_tab2 l_attribute13_type;
12937     l_attribute14_tab2 l_attribute14_type;
12938     l_attribute15_tab2 l_attribute15_type;
12939     l_security_group_id_tab2 l_security_group_id_type;
12940     l_cpl_id_tab2 l_cpl_id_type;
12941     l_primary_yn_tab2 l_primary_yn_type;
12942     l_bill_to_site_use_id_tab2 l_bill_to_site_use_id_type;
12943     l_cust_acct_id_tab2 l_cust_acct_id_type;
12944     l_orig_system_id1_tab2 l_orig_system_id1_type;
12945 
12946     l_loop_counter NUMBER := 0;
12947     l_new_cle_id NUMBER := 0;
12948 
12949 BEGIN
12950   IF (G_DEBUG_ENABLED = 'Y') THEN
12951     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
12952   END IF;
12953   NULL;
12954   OPEN c9(p_old_id);
12955   LOOP
12956     FETCH c9 bulk collect INTO
12957       l_id_tab2, l_chr_id_tab2, l_cle_id_tab2,
12958       l_dnz_chr_id_tab2, l_rle_code_tab2, l_object1_id1_tab2,
12959       l_object1_id2_tab2, l_jtot_object1_code_tab2, l_object_version_number_tab2,
12960       l_created_by_tab2, l_creation_date_tab2, l_last_updated_by_tab2,
12961       l_last_update_date_tab2, l_code_tab2, l_facility_tab2,
12962       l_minority_group_lookup_c_tab2, l_small_business_flag_tab2, l_women_owned_flag_tab2,
12963       l_last_update_login_tab2, l_attribute_category_tab2, l_attribute1_tab2,
12964       l_attribute2_tab2, l_attribute3_tab2, l_attribute4_tab2,
12965       l_attribute5_tab2, l_attribute6_tab2, l_attribute7_tab2,
12966       l_attribute8_tab2, l_attribute9_tab2, l_attribute10_tab2,
12967       l_attribute11_tab2, l_attribute12_tab2, l_attribute13_tab2,
12968       l_attribute14_tab2, l_attribute15_tab2, l_security_group_id_tab2,
12969       l_cpl_id_tab2, l_primary_yn_tab2, l_bill_to_site_use_id_tab2,
12970       l_cust_acct_id_tab2, l_orig_system_id1_tab2
12971     limit G_BULK_SIZE;
12972     EXIT WHEN l_id_tab2.COUNT = 0;
12973 
12974     FOR i IN l_id_tab2.first..l_id_tab2.last
12975     LOOP
12976       l_loop_counter := l_loop_counter + 1;
12977 
12978       -- Store old ids
12979       l_id_tab_old(l_loop_counter) := l_id_tab2(i);
12980 
12981       l_id_tab(l_loop_counter) := l_id_tab2(i);
12982 
12983       -- Store party old_id and new_id in mapping table
12984       l_party_id_mapping_tab(l_party_counter).old_id := l_id_tab2(i);
12985 
12986       -- Replace l_id_tab
12987       l_id_tab(l_loop_counter) := okc_p_util.raw_to_number(sys_guid());
12988       l_prid_tab(l_loop_counter) := l_id_tab(l_loop_counter);
12989 
12990       l_party_id_mapping_tab(l_party_counter).new_id := l_id_tab(l_loop_counter);
12991       l_chr_id_tab(l_loop_counter) := l_chr_id_tab2(i);
12992 
12993       -- Replace l_chr_id_tab
12994       IF (l_chr_id_tab(l_loop_counter) IS NOT NULL) THEN
12995         l_chr_id_tab(l_loop_counter) := p_new_id;
12996       END IF;
12997 
12998       l_cle_id_tab(l_loop_counter) := l_cle_id_tab2(i);
12999 
13000       -- Replace l_cle_id_tab
13001       IF (l_cle_id_tab(l_loop_counter) IS NOT NULL) THEN
13002         l_new_cle_id := find_mapping_id(l_cle_id_tab(l_loop_counter));
13003         IF (l_new_cle_id = -1) THEN
13004           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13005                       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR : Mapping id not found for ' || l_cle_id_tab(l_loop_counter));
13006           END IF;
13007           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
13008         END IF;
13009         l_cle_id_tab(l_loop_counter) := l_new_cle_id;
13010       END IF;
13011 
13012       l_dnz_chr_id_tab(l_loop_counter) := l_dnz_chr_id_tab2(i);
13013 
13014       -- Replace dnz_chr_id
13015       l_dnz_chr_id_tab(l_loop_counter) := p_new_id;
13016 
13017       l_rle_code_tab(l_loop_counter) := l_rle_code_tab2(i);
13018 
13019       l_object1_id1_tab(l_loop_counter) := l_object1_id1_tab2(i);
13020       l_probject1_id1_tab(l_loop_counter) := l_object1_id1_tab(l_loop_counter);
13021 
13022       -- Store vendor id mapping for business event processing only
13023       IF (l_rle_code_tab(l_loop_counter) = 'OKL_VENDOR' AND
13024           l_cle_id_tab(l_loop_counter) IS NOT NULL) THEN
13025         l_vid_mapping_tab(l_vid_counter).cle_id :=  l_cle_id_tab(l_loop_counter);
13026         l_vid_mapping_tab(l_vid_counter).object1_id1 :=  l_object1_id1_tab(l_loop_counter);
13027         l_vid_counter := l_vid_counter + 1;
13028       END IF;
13029 
13030 
13031       l_object1_id2_tab(l_loop_counter) := l_object1_id2_tab2(i);
13032       l_jtot_object1_code_tab(l_loop_counter) := l_jtot_object1_code_tab2(i);
13033       l_object_version_number_tab(l_loop_counter) := l_object_version_number_tab2(i);
13034       l_created_by_tab(l_loop_counter) := l_created_by_tab2(i);
13035       l_creation_date_tab(l_loop_counter) := l_creation_date_tab2(i);
13036       l_last_updated_by_tab(l_loop_counter) := l_last_updated_by_tab2(i);
13037       l_last_update_date_tab(l_loop_counter) := l_last_update_date_tab2(i);
13038       l_code_tab(l_loop_counter) := l_code_tab2(i);
13039       l_facility_tab(l_loop_counter) := l_facility_tab2(i);
13040       l_minority_group_lookup_c_tab(l_loop_counter) := l_minority_group_lookup_c_tab2(i);
13041       l_small_business_flag_tab(l_loop_counter) := l_small_business_flag_tab2(i);
13042       l_women_owned_flag_tab(l_loop_counter) := l_women_owned_flag_tab2(i);
13043       l_last_update_login_tab(l_loop_counter) := l_last_update_login_tab2(i);
13044       l_attribute_category_tab(l_loop_counter) := l_attribute_category_tab2(i);
13045       l_attribute1_tab(l_loop_counter) := l_attribute1_tab2(i);
13046       l_attribute2_tab(l_loop_counter) := l_attribute2_tab2(i);
13047       l_attribute3_tab(l_loop_counter) := l_attribute3_tab2(i);
13048       l_attribute4_tab(l_loop_counter) := l_attribute4_tab2(i);
13049       l_attribute5_tab(l_loop_counter) := l_attribute5_tab2(i);
13050       l_attribute6_tab(l_loop_counter) := l_attribute6_tab2(i);
13051       l_attribute7_tab(l_loop_counter) := l_attribute7_tab2(i);
13052       l_attribute8_tab(l_loop_counter) := l_attribute8_tab2(i);
13053       l_attribute9_tab(l_loop_counter) := l_attribute9_tab2(i);
13054       l_attribute10_tab(l_loop_counter) := l_attribute10_tab2(i);
13055       l_attribute11_tab(l_loop_counter) := l_attribute11_tab2(i);
13056       l_attribute12_tab(l_loop_counter) := l_attribute12_tab2(i);
13057       l_attribute13_tab(l_loop_counter) := l_attribute13_tab2(i);
13058       l_attribute14_tab(l_loop_counter) := l_attribute14_tab2(i);
13059       l_attribute15_tab(l_loop_counter) := l_attribute15_tab2(i);
13060       l_security_group_id_tab(l_loop_counter) := l_security_group_id_tab2(i);
13061       l_cpl_id_tab(l_loop_counter) := l_cpl_id_tab2(i);
13062       l_primary_yn_tab(l_loop_counter) := l_primary_yn_tab2(i);
13063       l_bill_to_site_use_id_tab(l_loop_counter) := l_bill_to_site_use_id_tab2(i);
13064       l_cust_acct_id_tab(l_loop_counter) := l_cust_acct_id_tab2(i);
13065       l_orig_system_id1_tab(l_loop_counter) := l_orig_system_id1_tab2(i);
13066 
13067       l_party_counter := l_party_counter + 1;
13068     END LOOP;
13069   END LOOP;
13070   CLOSE c9;
13071   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13072       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_vid_counter=' || l_vid_counter);
13073   END IF;
13074   IF (l_vid_counter > 1) THEN
13075     sort_vid_mapping_tab;
13076   END IF;
13077 
13078   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13079       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);
13080   END IF;
13081   IF (l_party_counter > 1) THEN
13082     forall i IN l_id_tab.first..l_id_tab.last
13083       INSERT INTO okc_k_party_roles_b (
13084        id, chr_id, cle_id,
13085        dnz_chr_id, rle_code, object1_id1,
13086        object1_id2, jtot_object1_code, object_version_number,
13087        created_by, creation_date, last_updated_by,
13088        last_update_date, code, facility,
13089        minority_group_lookup_code, small_business_flag, women_owned_flag,
13090        last_update_login, attribute_category, attribute1,
13091        attribute2, attribute3, attribute4,
13092        attribute5, attribute6, attribute7,
13093        attribute8, attribute9, attribute10,
13094        attribute11, attribute12, attribute13,
13095        attribute14, attribute15, security_group_id,
13096        cpl_id, primary_yn, bill_to_site_use_id,
13097        cust_acct_id, orig_system_id1
13098      ) VALUES (
13099        l_id_tab(i), l_chr_id_tab(i), l_cle_id_tab(i),
13100        l_dnz_chr_id_tab(i), l_rle_code_tab(i), l_object1_id1_tab(i),
13101        l_object1_id2_tab(i), l_jtot_object1_code_tab(i), 1,
13102        l_created_by, SYSDATE, l_last_updated_by,
13103        SYSDATE, l_code_tab(i), l_facility_tab(i),
13104        l_minority_group_lookup_c_tab(i), l_small_business_flag_tab(i), l_women_owned_flag_tab(i),
13105        l_last_update_login, l_attribute_category_tab(i), l_attribute1_tab(i),
13106        l_attribute2_tab(i), l_attribute3_tab(i), l_attribute4_tab(i),
13107        l_attribute5_tab(i), l_attribute6_tab(i), l_attribute7_tab(i),
13108        l_attribute8_tab(i), l_attribute9_tab(i), l_attribute10_tab(i),
13109        l_attribute11_tab(i), l_attribute12_tab(i), l_attribute13_tab(i),
13110        l_attribute14_tab(i), l_attribute15_tab(i), l_security_group_id_tab(i),
13111        l_cpl_id_tab(i), l_primary_yn_tab(i), l_bill_to_site_use_id_tab(i),
13112        l_cust_acct_id_tab(i), l_orig_system_id1_tab(i)
13113      );
13114 
13115      do_sort_party_mapping_id;
13116 
13117      IF (l_id_tab_old.COUNT > 0) THEN
13118        FOR i IN l_id_tab_old.first..l_id_tab_old.last
13119        LOOP
13120           IF (i = l_id_tab.last)
13121           THEN
13122             prepare_party_roles_tl(l_id_tab_old(i), l_id_tab(i), 'L');
13123           ELSE
13124             prepare_party_roles_tl(l_id_tab_old(i), l_id_tab(i), 'NL');
13125           END IF;
13126        END LOOP;
13127 
13128        l_message := 'OKL_NEW_COPY_KPR_ERROR';
13129        FOR i IN l_id_tab_old.first..l_id_tab_old.last
13130        LOOP
13131           IF (i = l_id_tab.last)
13132           THEN
13133             prepare_okl_party_roles(l_id_tab_old(i), l_id_tab(i), 'Y');
13134           ELSE
13135             prepare_okl_party_roles(l_id_tab_old(i), l_id_tab(i), 'N');
13136           END IF;
13137        END LOOP;
13138 
13139        l_message := 'OKL_NEW_COPY_CRO_ERROR';
13140        FOR i IN l_id_tab_old.first..l_id_tab_old.last
13141        LOOP
13142           IF (i = l_id_tab.last)
13143           THEN
13144             prepare_contacts(l_id_tab_old(i), l_id_tab(i), 'L');
13145           ELSE
13146             prepare_contacts(l_id_tab_old(i), l_id_tab(i), 'NL');
13147           END IF;
13148        END LOOP;
13149 
13150        l_message := 'OKL_NEW_COPY_PHD_ERROR';
13151        IF (p_copy_lines_yn = 'Y') THEN
13152          IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13153                     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Calling party_payment_hdr...');
13154          END IF;
13155          copy_party_payment_hdr(p_old_id, p_new_id);
13156        END IF;
13157 
13158        IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13159                 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Calling party_payment_dtls...');
13160        END IF;
13161        l_message := 'OKL_NEW_COPY_PYD_ERROR';
13162        FOR i IN l_id_tab_old.first..l_id_tab_old.last
13163        LOOP
13164           IF (i = l_id_tab.last)
13165           THEN
13166             prepare_party_payment_dtls(l_id_tab_old(i), l_id_tab(i), 'Y');
13167           ELSE
13168             prepare_party_payment_dtls(l_id_tab_old(i), l_id_tab(i), 'N');
13169           END IF;
13170        END LOOP;
13171      END IF;
13172   END IF;
13173 
13174 EXCEPTION WHEN OTHERS THEN
13175 
13176   x_return_status := OKL_API.G_RET_STS_ERROR;
13177   /*OKL_API.set_message(p_app_name => 'OKL',
13178                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
13179                       p_token1 => 'ASSET_NUMBER',
13180                       p_token1_value => 'insert_okc_k_party_roles');*/
13181     /* DEBUG */
13182   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13183       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
13184     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 || ' ...');
13185   END IF;
13186   IF (l_id_tab.COUNT > 0) THEN
13187   FOR i IN l_id_tab.first..l_id_tab.last
13188   LOOP
13189     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13190           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_id_tab('||i||')=' || l_id_tab(i));
13191       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_chr_id_tab('||i||')=' || l_chr_id_tab(i));
13192       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cle_id_tab('||i||')=' || l_cle_id_tab(i));
13193       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dnz_chr_id_tab('||i||')=' || l_dnz_chr_id_tab(i));
13194       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rle_code_tab('||i||')=' || l_rle_code_tab(i));
13195       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_object1_id1_tab('||i||')=' || l_object1_id1_tab(i));
13196       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_object1_id2_tab('||i||')=' || l_object1_id2_tab(i));
13197       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_jtot_object1_code_tab('||i||')=' || l_jtot_object1_code_tab(i));
13198       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_code_tab('||i||')=' || l_code_tab(i));
13199       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_facility_tab('||i||')=' || l_facility_tab(i));
13200       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));
13201       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_small_business_flag_tab('||i||')=' || l_small_business_flag_tab(i));
13202       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_women_owned_flag_tab('||i||')=' || l_women_owned_flag_tab(i));
13203       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute_category_tab('||i||')=' || l_attribute_category_tab(i));
13204       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute1_tab('||i||')=' || l_attribute1_tab(i));
13205       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute2_tab('||i||')=' || l_attribute2_tab(i));
13206       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute3_tab('||i||')=' || l_attribute3_tab(i));
13207       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute4_tab('||i||')=' || l_attribute4_tab(i));
13208       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute5_tab('||i||')=' || l_attribute5_tab(i));
13209       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute6_tab('||i||')=' || l_attribute6_tab(i));
13210       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute7_tab('||i||')=' || l_attribute7_tab(i));
13211       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute8_tab('||i||')=' || l_attribute8_tab(i));
13212       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute9_tab('||i||')=' || l_attribute9_tab(i));
13213       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute10_tab('||i||')=' || l_attribute10_tab(i));
13214       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute11_tab('||i||')=' || l_attribute11_tab(i));
13215       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute12_tab('||i||')=' || l_attribute12_tab(i));
13216       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute13_tab('||i||')=' || l_attribute13_tab(i));
13217       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute14_tab('||i||')=' || l_attribute14_tab(i));
13218       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_attribute15_tab('||i||')=' || l_attribute15_tab(i));
13219       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_security_group_id_tab('||i||')=' || l_security_group_id_tab(i));
13220       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cpl_id_tab('||i||')=' || l_cpl_id_tab(i));
13221       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_primary_yn_tab('||i||')=' || l_primary_yn_tab(i));
13222       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));
13223       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cust_acct_id_tab('||i||')=' || l_cust_acct_id_tab(i));
13224       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_orig_system_id1_tab('||i||')=' || l_orig_system_id1_tab(i));
13225     END IF;
13226   END LOOP;
13227   END IF;
13228 
13229   RAISE OKC_API.G_EXCEPTION_ERROR;
13230 
13231 END; /* insert_okc_k_party_roles */
13232 
13233 FUNCTION find_rid_mapping_id(p_id IN NUMBER) RETURN NUMBER IS
13234 hi NUMBER;
13235 lo NUMBER;
13236 m NUMBER;
13237 BEGIN
13238   lo := 1;
13239   hi := l_rule_groups_b_counter - 1;
13240   WHILE (lo <= hi) LOOP
13241     m := FLOOR((hi + lo)/2);
13242     IF (l_rid_mapping_tab(m).old_id = p_id) THEN
13243       RETURN l_rid_mapping_tab(m).new_id;
13244     ELSIF (l_rid_mapping_tab(m).old_id > p_id) THEN
13245       hi := m - 1;
13246     ELSE
13247       lo := m + 1;
13248     END IF;
13249   END LOOP;
13250   RETURN -1;
13251 END;  /* find_rid_mapping_id */
13252 
13253 PROCEDURE sort_rid_mapping_tab IS
13254   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
13255   --a numtabtype;
13256   l_stack numtabtype;
13257   l_stack_index NUMBER := 0;
13258   N NUMBER;
13259   R NUMBER;
13260   L NUMBER;
13261   P NUMBER;
13262   W NUMBER;
13263   W2 NUMBER;
13264   X NUMBER;
13265   I NUMBER;
13266   J NUMBER;
13267 BEGIN
13268   IF (G_DEBUG_ENABLED = 'Y') THEN
13269     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
13270   END IF;
13271   NULL;
13272 
13273   N := l_rule_groups_b_counter - 1;
13274   IF (N < 2) THEN
13275     RETURN;
13276   END IF;
13277   l_stack_index := l_stack_index + 1;
13278   l_stack(l_stack_index) := 1;
13279   l_stack_index := l_stack_index + 1;
13280   l_stack(l_stack_index) := N;
13281 
13282   --dbms_output.put_line('l_stack_index=' || l_stack_index);
13283   WHILE l_stack_index > 0
13284   LOOP
13285     R := l_stack(l_stack_index);
13286     l_stack_index := l_stack_index - 1;
13287     L := l_stack(l_stack_index);
13288     l_stack_index := l_stack_index - 1;
13289     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
13290     WHILE 1=1
13291     LOOP -- loop until L >= R
13292       I := L;
13293       J := R;
13294       P := FLOOR((L+R)/2);
13295       --if (a(L) > a(P)) then
13296       IF (l_rid_mapping_tab(L).old_id > l_rid_mapping_tab(P).old_id)
13297       THEN
13298         W := l_rid_mapping_tab(L).old_id;
13299         W2 := l_rid_mapping_tab(L).new_id;
13300         l_rid_mapping_tab(L).old_id :=l_rid_mapping_tab(P).old_id;
13301         l_rid_mapping_tab(L).new_id :=l_rid_mapping_tab(P).new_id;
13302         l_rid_mapping_tab(P).old_id := W;
13303         l_rid_mapping_tab(P).new_id := W2;
13304       END IF;
13305       --if (a(L) > a(R)) then
13306       IF (l_rid_mapping_tab(L).old_id > l_rid_mapping_tab(R).old_id)
13307       THEN
13308         W := l_rid_mapping_tab(L).old_id;
13309         W2 := l_rid_mapping_tab(L).new_id;
13310         l_rid_mapping_tab(L).old_id :=l_rid_mapping_tab(R).old_id;
13311         l_rid_mapping_tab(L).new_id :=l_rid_mapping_tab(R).new_id;
13312         l_rid_mapping_tab(R).old_id := W;
13313         l_rid_mapping_tab(R).new_id := W2;
13314       END IF;
13315       --if (a(P) > a(R)) then
13316       IF (l_rid_mapping_tab(P).old_id > l_rid_mapping_tab(R).old_id)
13317       THEN
13318         W := l_rid_mapping_tab(P).old_id;
13319         W2 := l_rid_mapping_tab(P).new_id;
13320         l_rid_mapping_tab(P).old_id :=l_rid_mapping_tab(R).old_id;
13321         l_rid_mapping_tab(P).new_id :=l_rid_mapping_tab(R).new_id;
13322         l_rid_mapping_tab(R).old_id := W;
13323         l_rid_mapping_tab(R).new_id := W2;
13324       END IF;
13325       --X := a(P);
13326       X := l_rid_mapping_tab(P).old_id;
13327       WHILE 1=1
13328       LOOP    -- until I > J
13329         --while (a(I) < X) loop
13330         WHILE (l_rid_mapping_tab(I).old_id < X) LOOP
13331           I := I + 1;
13332         END LOOP;
13333         WHILE (X < l_rid_mapping_tab(J).old_id) LOOP
13334           J := J - 1;
13335         END LOOP;
13336         IF (I <= J) THEN
13337           W := l_rid_mapping_tab(I).old_id;
13338           W2 := l_rid_mapping_tab(I).new_id;
13339           l_rid_mapping_tab(I).old_id :=l_rid_mapping_tab(J).old_id;
13340           l_rid_mapping_tab(I).new_id :=l_rid_mapping_tab(J).new_id;
13341           l_rid_mapping_tab(J).old_id := W;
13342           l_rid_mapping_tab(J).new_id := W2;
13343           I := I + 1;
13344           J := J - 1;
13345         END IF;
13346         EXIT WHEN I > J;
13347       END LOOP;
13348       IF (J - L < R - I) THEN
13349         IF (I < R) THEN
13350           --push(I); push(R);
13351           l_stack_index := l_stack_index + 1;
13352           l_stack(l_stack_index) := I;
13353           l_stack_index := l_stack_index + 1;
13354           l_stack(l_stack_index) := R;
13355           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
13356         END IF;
13357         R := J;
13358       ELSE
13359         IF (L < J) THEN
13360           --push(L); push(J);
13361           l_stack_index := l_stack_index + 1;
13362           l_stack(l_stack_index) := L;
13363           l_stack_index := l_stack_index + 1;
13364           l_stack(l_stack_index) := J;
13365           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
13366         END IF;
13367         L := I;
13368       END IF;
13369 
13370       EXIT WHEN (L >= R);
13371     END LOOP;
13372   END LOOP;
13373 
13374 EXCEPTION WHEN OTHERS THEN
13375 
13376   x_return_status := OKL_API.G_RET_STS_ERROR;
13377   /*OKL_API.set_message(p_app_name => 'OKL',
13378                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
13379                       p_token1 => 'ASSET_NUMBER',
13380                       p_token1_value => 'sort_rid_mapping_tab');*/
13381     /* DEBUG */
13382   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13383       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
13384     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_rid_mapping_tab:l_rid_mapping_tab N=' || N || ' ...');
13385   END IF;
13386 
13387   --print array
13388   FOR i IN 1..N
13389   LOOP
13390     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13391           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);
13392     END IF;
13393   END LOOP;
13394 
13395   RAISE OKC_API.G_EXCEPTION_ERROR;
13396 
13397 END;  /* sort_rid_mapping_tab */
13398 
13399 
13400 FUNCTION find_rrid_mapping_id(p_id IN NUMBER) RETURN NUMBER IS
13401 hi NUMBER;
13402 lo NUMBER;
13403 m NUMBER;
13404 BEGIN
13405   lo := 1;
13406   hi := l_rules_b_counter - 1;
13407   WHILE (lo <= hi) LOOP
13408     m := FLOOR((hi + lo)/2);
13409     IF (l_rrid_mapping_tab(m).old_id = p_id) THEN
13410       RETURN l_rrid_mapping_tab(m).new_id;
13411     ELSIF (l_rrid_mapping_tab(m).old_id > p_id) THEN
13412       hi := m - 1;
13413     ELSE
13414       lo := m + 1;
13415     END IF;
13416   END LOOP;
13417   RETURN -1;
13418 END;  /* find_rrid_mapping_id */
13419 
13420 PROCEDURE sort_rrid_mapping_tab IS
13421   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
13422   --a numtabtype;
13423   l_stack numtabtype;
13424   l_stack_index NUMBER := 0;
13425   N NUMBER;
13426   R NUMBER;
13427   L NUMBER;
13428   P NUMBER;
13429   W NUMBER;
13430   W2 NUMBER;
13431   X NUMBER;
13432   I NUMBER;
13433   J NUMBER;
13434 BEGIN
13435   IF (G_DEBUG_ENABLED = 'Y') THEN
13436     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
13437   END IF;
13438   NULL;
13439 
13440   N := l_rules_b_counter - 1;
13441   IF (N < 2) THEN
13442     RETURN;
13443   END IF;
13444   l_stack_index := l_stack_index + 1;
13445   l_stack(l_stack_index) := 1;
13446   l_stack_index := l_stack_index + 1;
13447   l_stack(l_stack_index) := N;
13448 
13449   --dbms_output.put_line('l_stack_index=' || l_stack_index);
13450   WHILE l_stack_index > 0
13451   LOOP
13452     R := l_stack(l_stack_index);
13453     l_stack_index := l_stack_index - 1;
13454     L := l_stack(l_stack_index);
13455     l_stack_index := l_stack_index - 1;
13456     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
13457     WHILE 1=1
13458     LOOP -- loop until L >= R
13459       I := L;
13460       J := R;
13461       P := FLOOR((L+R)/2);
13462       --if (a(L) > a(P)) then
13463       IF (l_rrid_mapping_tab(L).old_id > l_rrid_mapping_tab(P).old_id)
13464       THEN
13465         W := l_rrid_mapping_tab(L).old_id;
13466         W2 := l_rrid_mapping_tab(L).new_id;
13467         l_rrid_mapping_tab(L).old_id :=l_rrid_mapping_tab(P).old_id;
13468         l_rrid_mapping_tab(L).new_id :=l_rrid_mapping_tab(P).new_id;
13469         l_rrid_mapping_tab(P).old_id := W;
13470         l_rrid_mapping_tab(P).new_id := W2;
13471       END IF;
13472       --if (a(L) > a(R)) then
13473       IF (l_rrid_mapping_tab(L).old_id > l_rrid_mapping_tab(R).old_id)
13474       THEN
13475         W := l_rrid_mapping_tab(L).old_id;
13476         W2 := l_rrid_mapping_tab(L).new_id;
13477         l_rrid_mapping_tab(L).old_id :=l_rrid_mapping_tab(R).old_id;
13478         l_rrid_mapping_tab(L).new_id :=l_rrid_mapping_tab(R).new_id;
13479         l_rrid_mapping_tab(R).old_id := W;
13480         l_rrid_mapping_tab(R).new_id := W2;
13481       END IF;
13482       --if (a(P) > a(R)) then
13483       IF (l_rrid_mapping_tab(P).old_id > l_rrid_mapping_tab(R).old_id)
13484       THEN
13485         W := l_rrid_mapping_tab(P).old_id;
13486         W2 := l_rrid_mapping_tab(P).new_id;
13487         l_rrid_mapping_tab(P).old_id :=l_rrid_mapping_tab(R).old_id;
13488         l_rrid_mapping_tab(P).new_id :=l_rrid_mapping_tab(R).new_id;
13489         l_rrid_mapping_tab(R).old_id := W;
13490         l_rrid_mapping_tab(R).new_id := W2;
13491       END IF;
13492       --X := a(P);
13493       X := l_rrid_mapping_tab(P).old_id;
13494       WHILE 1=1
13495       LOOP    -- until I > J
13496         --while (a(I) < X) loop
13497         WHILE (l_rrid_mapping_tab(I).old_id < X) LOOP
13498           I := I + 1;
13499         END LOOP;
13500         WHILE (X < l_rrid_mapping_tab(J).old_id) LOOP
13501           J := J - 1;
13502         END LOOP;
13503         IF (I <= J) THEN
13504           W := l_rrid_mapping_tab(I).old_id;
13505           W2 := l_rrid_mapping_tab(I).new_id;
13506           l_rrid_mapping_tab(I).old_id :=l_rrid_mapping_tab(J).old_id;
13507           l_rrid_mapping_tab(I).new_id :=l_rrid_mapping_tab(J).new_id;
13508           l_rrid_mapping_tab(J).old_id := W;
13509           l_rrid_mapping_tab(J).new_id := W2;
13510           I := I + 1;
13511           J := J - 1;
13512         END IF;
13513         EXIT WHEN I > J;
13514       END LOOP;
13515       IF (J - L < R - I) THEN
13516         IF (I < R) THEN
13517           --push(I); push(R);
13518           l_stack_index := l_stack_index + 1;
13519           l_stack(l_stack_index) := I;
13520           l_stack_index := l_stack_index + 1;
13521           l_stack(l_stack_index) := R;
13522           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
13523         END IF;
13524         R := J;
13525       ELSE
13526         IF (L < J) THEN
13527           --push(L); push(J);
13528           l_stack_index := l_stack_index + 1;
13529           l_stack(l_stack_index) := L;
13530           l_stack_index := l_stack_index + 1;
13531           l_stack(l_stack_index) := J;
13532           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
13533         END IF;
13534         L := I;
13535       END IF;
13536 
13537       EXIT WHEN (L >= R);
13538     END LOOP;
13539   END LOOP;
13540 
13541 EXCEPTION WHEN OTHERS THEN
13542 
13543   x_return_status := OKL_API.G_RET_STS_ERROR;
13544   /*OKL_API.set_message(p_app_name => 'OKL',
13545                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
13546                       p_token1 => 'ASSET_NUMBER',
13547                       p_token1_value => 'sort_rrid_mapping_tab');*/
13548     /* DEBUG */
13549   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13550       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
13551     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_rrid_mapping_tab:l_rrid_mapping_tab N=' || N || ' ...');
13552   END IF;
13553 
13554   --print array
13555   FOR i IN 1..N
13556   LOOP
13557     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13558           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);
13559     END IF;
13560   END LOOP;
13561 
13562   RAISE OKC_API.G_EXCEPTION_ERROR;
13563 
13564 END;  /* sort_rrid_mapping_tab */
13565 
13566 
13567 PROCEDURE prepare_rule_groups_tl(p_old_id IN okc_rule_groups_b.id%TYPE,
13568                                  p_new_id IN okc_rule_groups_b.id%TYPE,
13569                                  p_flush IN VARCHAR2) IS
13570 CURSOR c13(p_id NUMBER) IS
13571 SELECT
13572      id, LANGUAGE, source_lang,
13573      sfwt_flag, comments, created_by,
13574      creation_date, last_updated_by, last_update_date,
13575      last_update_login, security_group_id
13576 FROM okc_rule_groups_tl
13577 WHERE id = p_id;
13578 
13579     l_rtid_tab2 l_rtid_type;
13580     l_rtlanguage_tab2 l_rtlanguage_type;
13581     l_rtsource_lang_tab2 l_rtsource_lang_type;
13582     l_rtsfwt_flag_tab2 l_rtsfwt_flag_type;
13583     l_rtcomments_tab2 l_rtcomments_type;
13584     l_rtcreated_by_tab2 l_rtcreated_by_type;
13585     l_rtcreation_date_tab2 l_rtcreation_date_type;
13586     l_rtlast_updated_by_tab2 l_rtlast_updated_by_type;
13587     l_rtlast_update_date_tab2 l_rtlast_update_date_type;
13588     l_rtlast_update_login_tab2 l_rtlast_update_login_type;
13589     l_rtsecurity_group_id_tab2 l_rtsecurity_group_id_type;
13590 
13591 BEGIN
13592   IF (G_DEBUG_ENABLED = 'Y') THEN
13593     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
13594   END IF;
13595   NULL;
13596   OPEN c13(p_old_id);
13597   LOOP
13598     FETCH c13 bulk collect INTO
13599       l_rtid_tab2, l_rtlanguage_tab2, l_rtsource_lang_tab2,
13600       l_rtsfwt_flag_tab2, l_rtcomments_tab2, l_rtcreated_by_tab2,
13601       l_rtcreation_date_tab2,l_rtlast_updated_by_tab2,l_rtlast_update_date_tab2,
13602       l_rtlast_update_login_tab2, l_rtsecurity_group_id_tab2
13603     limit G_BULK_SIZE;
13604     EXIT WHEN l_rtid_tab2.COUNT = 0;
13605     FOR i IN l_rtid_tab2.first..l_rtid_tab2.last
13606     LOOP
13607       l_rtid_tab(l_rule_groups_tl_counter) := l_rtid_tab2(i);
13608 
13609       -- Change id
13610       l_rtid_tab(l_rule_groups_tl_counter) := p_new_id;
13611 
13612       l_rtlanguage_tab(l_rule_groups_tl_counter) := l_rtlanguage_tab2(i);
13613       l_rtsource_lang_tab(l_rule_groups_tl_counter) := l_rtsource_lang_tab2(i);
13614       l_rtsfwt_flag_tab(l_rule_groups_tl_counter) := l_rtsfwt_flag_tab2(i);
13615       l_rtcomments_tab(l_rule_groups_tl_counter) := l_rtcomments_tab2(i);
13616       l_rtcreated_by_tab(l_rule_groups_tl_counter) := l_rtcreated_by_tab2(i);
13617       l_rtcreation_date_tab(l_rule_groups_tl_counter) := l_rtcreation_date_tab2(i);
13618       l_rtlast_updated_by_tab(l_rule_groups_tl_counter) := l_rtlast_updated_by_tab2(i);
13619       l_rtlast_update_date_tab(l_rule_groups_tl_counter) := l_rtlast_update_date_tab2(i);
13620       l_rtlast_update_login_tab(l_rule_groups_tl_counter) := l_rtlast_update_login_tab2(i);
13621       l_rtsecurity_group_id_tab(l_rule_groups_tl_counter) := l_rtsecurity_group_id_tab2(i);
13622 
13623       l_rule_groups_tl_counter := l_rule_groups_tl_counter + 1;
13624     END LOOP;
13625   END LOOP;
13626   CLOSE c13;
13627 
13628   IF (p_flush = 'Y') THEN
13629     IF (l_rule_groups_tl_counter > 1) THEN
13630       forall i IN l_rtid_tab.first..l_rtid_tab.last
13631       INSERT INTO okc_rule_groups_tl (
13632         id, LANGUAGE, source_lang,
13633         sfwt_flag, comments, created_by,
13634         creation_date, last_updated_by, last_update_date,
13635         last_update_login, security_group_id
13636       ) VALUES (
13637         l_rtid_tab(i), l_rtlanguage_tab(i), l_rtsource_lang_tab(i),
13638         'N', l_rtcomments_tab(i), l_created_by,
13639         SYSDATE, l_last_updated_by, SYSDATE,
13640         l_last_update_login, l_rtsecurity_group_id_tab(i)
13641       );
13642     END IF;
13643   END IF;
13644 
13645 EXCEPTION WHEN OTHERS THEN
13646 
13647   x_return_status := OKL_API.G_RET_STS_ERROR;
13648   /*OKL_API.set_message(p_app_name => 'OKL',
13649                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
13650                       p_token1 => 'ASSET_NUMBER',
13651                       p_token1_value => 'prepare_rule_groups_tl');*/
13652     /* DEBUG */
13653   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13654       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
13655     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing prepare_rule_groups_tl:l_rtid_tab.count=' || l_rtid_tab.COUNT || ' ...');
13656   END IF;
13657   IF (l_rtid_tab.COUNT > 0) THEN
13658   FOR i IN l_rtid_tab.first..l_rtid_tab.last
13659   LOOP
13660     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13661           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rtid_tab('||i||')=' || l_rtid_tab(i));
13662       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rtlanguage_tab('||i||')=' || l_rtlanguage_tab(i));
13663       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rtsource_lang_tab('||i||')=' || l_rtsource_lang_tab(i));
13664       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rtcomments_tab('||i||')=' || l_rtcomments_tab(i));
13665       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rtsecurity_group_id_tab('||i||')=' || l_rtsecurity_group_id_tab(i));
13666     END IF;
13667   END LOOP;
13668   END IF;
13669 
13670   RAISE OKC_API.G_EXCEPTION_ERROR;
13671 
13672 END;  /* prepare_rule_groups_tl */
13673 
13674 PROCEDURE insert_okc_rules_tl(p_old_id IN okc_rules_b.id%TYPE,
13675                               p_new_id okc_rules_b.id%TYPE,
13676                               p_flush IN VARCHAR2 ) IS
13677 CURSOR c15(p_id okc_rules_b.id%TYPE) IS
13678 SELECT
13679      id, LANGUAGE, source_lang,
13680      sfwt_flag, comments, text,
13681      created_by, creation_date, last_updated_by,
13682      last_update_date, last_update_login, security_group_id
13683 FROM okc_rules_tl
13684 WHERE id = p_id;
13685 
13686     l_trid_tab2 l_trid_type;
13687     l_trlanguage_tab2 l_trlanguage_type;
13688     l_trsource_lang_tab2 l_trsource_lang_type;
13689     l_trsfwt_flag_tab2 l_trsfwt_flag_type;
13690     l_trcomments_tab2 l_trcomments_type;
13691     l_trtext_tab2 l_trtext_type;
13692     l_trcreated_by_tab2 l_trcreated_by_type;
13693     l_trcreation_date_tab2 l_trcreation_date_type;
13694     l_trlast_updated_by_tab2 l_trlast_updated_by_type;
13695     l_trlast_update_date_tab2 l_trlast_update_date_type;
13696     l_trlast_update_login_tab2 l_trlast_update_login_type;
13697     l_trsecurity_group_id_tab2 l_trsecurity_group_id_type;
13698 
13699 BEGIN
13700   IF (G_DEBUG_ENABLED = 'Y') THEN
13701     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
13702   END IF;
13703   OPEN c15(p_old_id);
13704   LOOP
13705     FETCH c15 bulk collect INTO
13706      l_trid_tab2, l_trlanguage_tab2, l_trsource_lang_tab2,
13707      l_trsfwt_flag_tab2, l_trcomments_tab2, l_trtext_tab2,
13708      l_trcreated_by_tab2, l_trcreation_date_tab2, l_trlast_updated_by_tab2,
13709      l_trlast_update_date_tab2, l_trlast_update_login_tab2, l_trsecurity_group_id_tab2
13710     limit G_BULK_SIZE;
13711     EXIT WHEN l_trid_tab2.COUNT = 0;
13712     FOR i IN l_trid_tab2.first..l_trid_tab2.last
13713     LOOP
13714 
13715       l_trid_tab(l_rules_tl_counter) := l_trid_tab2(i);
13716       -- Change id
13717       l_trid_tab(l_rules_tl_counter) := p_new_id;
13718 
13719       l_trlanguage_tab(l_rules_tl_counter) := l_trlanguage_tab2(i);
13720       l_trsource_lang_tab(l_rules_tl_counter) := l_trsource_lang_tab2(i);
13721       l_trsfwt_flag_tab(l_rules_tl_counter) := l_trsfwt_flag_tab2(i);
13722       l_trcomments_tab(l_rules_tl_counter) := l_trcomments_tab2(i);
13723       l_trtext_tab(l_rules_tl_counter) := l_trtext_tab2(i);
13724       l_trcreated_by_tab(l_rules_tl_counter) := l_trcreated_by_tab2(i);
13725       l_trcreation_date_tab(l_rules_tl_counter) := l_trcreation_date_tab2(i);
13726       l_trlast_updated_by_tab(l_rules_tl_counter) := l_trlast_updated_by_tab2(i);
13727       l_trlast_update_date_tab(l_rules_tl_counter) := l_trlast_update_date_tab2(i);
13728       l_trlast_update_login_tab(l_rules_tl_counter) := l_trlast_update_login_tab2(i);
13729       l_trsecurity_group_id_tab(l_rules_tl_counter) := l_trsecurity_group_id_tab2(i);
13730 
13731       l_rules_tl_counter := l_rules_tl_counter + 1;
13732     END LOOP;
13733   END LOOP;
13734   CLOSE c15;
13735 
13736   IF (p_flush = 'Y') THEN
13737     IF (l_rules_tl_counter > 1) THEN
13738       forall i IN l_trid_tab.first..l_trid_tab.last
13739       INSERT INTO okc_rules_tl (
13740         id, LANGUAGE, source_lang,
13741         sfwt_flag, comments, text,
13742         created_by, creation_date, last_updated_by,
13743         last_update_date, last_update_login, security_group_id
13744       ) VALUES (
13745         l_trid_tab(i), l_trlanguage_tab(i), l_trsource_lang_tab(i),
13746         l_trsfwt_flag_tab(i), l_trcomments_tab(i), l_trtext_tab(i),
13747         l_trcreated_by_tab(i), l_trcreation_date_tab(i), l_trlast_updated_by_tab(i),
13748         l_trlast_update_date_tab(i), l_trlast_update_login_tab(i), l_trsecurity_group_id_tab(i)
13749       );
13750     END IF;
13751   END IF;
13752 
13753 EXCEPTION WHEN OTHERS THEN
13754 
13755   x_return_status := OKL_API.G_RET_STS_ERROR;
13756   /*OKL_API.set_message(p_app_name => 'OKL',
13757                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
13758                       p_token1 => 'ASSET_NUMBER',
13759                       p_token1_value => 'insert_okc_rules_tl');*/
13760     /* DEBUG */
13761   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13762       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
13763     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing insert_okc_rules_tl:l_trid_tab.count=' || l_trid_tab.COUNT || ' ...');
13764   END IF;
13765   IF (l_trid_tab.COUNT > 0 ) THEN
13766   FOR i IN l_trid_tab.first..l_trid_tab.last
13767   LOOP
13768     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
13769           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_trid_tab('||i||')=' || l_trid_tab(i));
13770       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_trlanguage_tab('||i||')=' || l_trlanguage_tab(i));
13771       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_trsource_lang_tab('||i||')=' || l_trsource_lang_tab(i));
13772       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_trsfwt_flag_tab('||i||')=' || l_trsfwt_flag_tab(i));
13773       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_trcomments_tab('||i||')=' || l_trcomments_tab(i));
13774       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_trtext_tab('||i||')=' || l_trtext_tab(i));
13775       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_trsecurity_group_id_tab('||i||')=' || l_trsecurity_group_id_tab(i));
13776     END IF;
13777   END LOOP;
13778   END IF;
13779 
13780   RAISE OKC_API.G_EXCEPTION_ERROR;
13781 
13782 END; /* insert_okc_rules_tl */
13783 
13784 PROCEDURE insert_okc_rules_b( p_old_id IN okc_rule_groups_b.id%TYPE,
13785                               p_new_id IN okc_rule_groups_b.id%TYPE) IS
13786 CURSOR c14(p_id okc_rule_groups_b.id%TYPE) IS
13787 SELECT
13788      a.id, a.rgp_id, a.object1_id1,
13789      a.object2_id1, a.object3_id1, a.object1_id2,
13790      a.object2_id2, a.object3_id2, a.jtot_object1_code,
13791      a.jtot_object2_code, a.jtot_object3_code, a.dnz_chr_id,
13792      a.std_template_yn, a.warn_yn, a.priority,
13793      a.object_version_number, a.created_by, a.creation_date,
13794      a.last_updated_by, a.last_update_date, a.last_update_login,
13795      a.attribute_category, a.attribute1, a.attribute2,
13796      a.attribute3, a.attribute4, a.attribute5,
13797      a.attribute6, a.attribute7, a.attribute8,
13798      a.attribute9, a.attribute10, a.attribute11,
13799      a.attribute12, a.attribute13, a.attribute14,
13800      a.attribute15, a.rule_information_category, a.rule_information1,
13801      a.rule_information2, a.rule_information3, a.rule_information4,
13802      a.rule_information5, a.rule_information6, a.rule_information7,
13803      a.rule_information8, a.rule_information9, a.rule_information10,
13804      a.rule_information11, a.rule_information12, a.rule_information13,
13805      a.rule_information14, a.rule_information15, a.security_group_id,
13806      a.template_yn, a.ans_set_jtot_object_code, a.ans_set_jtot_object_id1,
13807      a.ans_set_jtot_object_id2, a.display_sequence, a.comments
13808 FROM okc_rules_b a,
13809      okc_rule_groups_b rgp,
13810      okc_rg_def_rules rgdef
13811 WHERE a.dnz_chr_id=p_id
13812 AND a.rgp_id=rgp.id
13813 AND rgp.rgd_code=rgdef.rgd_code
13814 AND a.rule_information_category = rgdef.rdf_code
13815   AND (
13816     rgp.chr_id = rgp.chr_id
13817     OR (
13818         NVL(p_copy_lines_yn, 'N') = 'Y'
13819         AND rgp.cle_id IS NOT NULL
13820        )
13821   );
13822 
13823     l_rrid_tab2 l_rrid_type;
13824     l_rrrgp_id_tab2 l_rrrgp_id_type;
13825     l_rrobject1_id1_tab2 l_rrobject1_id1_type;
13826     l_rrobject2_id1_tab2 l_rrobject2_id1_type;
13827     l_rrobject3_id1_tab2 l_rrobject3_id1_type;
13828     l_rrobject1_id2_tab2 l_rrobject1_id2_type;
13829     l_rrobject2_id2_tab2 l_rrobject2_id2_type;
13830     l_rrobject3_id2_tab2 l_rrobject3_id2_type;
13831     l_rrjtot_object1_code_tab2 l_rrjtot_object1_code_type;
13832     l_rrjtot_object2_code_tab2 l_rrjtot_object2_code_type;
13833     l_rrjtot_object3_code_tab2 l_rrjtot_object3_code_type;
13834     l_rrdnz_chr_id_tab2 l_rrdnz_chr_id_type;
13835     l_rrstd_template_yn_tab2 l_rrstd_template_yn_type;
13836     l_rrwarn_yn_tab2 l_rrwarn_yn_type;
13837     l_rrpriority_tab2 l_rrpriority_type;
13838     l_rrobject_version_number_tab2 l_rrobject_version_number_type;
13839     l_rrcreated_by_tab2 l_rrcreated_by_type;
13840     l_rrcreation_date_tab2 l_rrcreation_date_type;
13841     l_rrlast_updated_by_tab2 l_rrlast_updated_by_type;
13842     l_rrlast_update_date_tab2 l_rrlast_update_date_type;
13843     l_rrlast_update_login_tab2 l_rrlast_update_login_type;
13844     l_rrattribute_category_tab2 l_rrattribute_category_type;
13845     l_rrattribute1_tab2 l_rrattribute1_type;
13846     l_rrattribute2_tab2 l_rrattribute2_type;
13847     l_rrattribute3_tab2 l_rrattribute3_type;
13848     l_rrattribute4_tab2 l_rrattribute4_type;
13849     l_rrattribute5_tab2 l_rrattribute5_type;
13850     l_rrattribute6_tab2 l_rrattribute6_type;
13851     l_rrattribute7_tab2 l_rrattribute7_type;
13852     l_rrattribute8_tab2 l_rrattribute8_type;
13853     l_rrattribute9_tab2 l_rrattribute9_type;
13854     l_rrattribute10_tab2 l_rrattribute10_type;
13855     l_rrattribute11_tab2 l_rrattribute11_type;
13856     l_rrattribute12_tab2 l_rrattribute12_type;
13857     l_rrattribute13_tab2 l_rrattribute13_type;
13858     l_rrattribute14_tab2 l_rrattribute14_type;
13859     l_rrattribute15_tab2 l_rrattribute15_type;
13860     l_rrrule_information_cate_tab2 l_rrrule_information_cate_type;
13861     l_rrrule_information1_tab2 l_rrrule_information1_type;
13862     l_rrrule_information2_tab2 l_rrrule_information2_type;
13863     l_rrrule_information3_tab2 l_rrrule_information3_type;
13864     l_rrrule_information4_tab2 l_rrrule_information4_type;
13865     l_rrrule_information5_tab2 l_rrrule_information5_type;
13866     l_rrrule_information6_tab2 l_rrrule_information6_type;
13867     l_rrrule_information7_tab2 l_rrrule_information7_type;
13868     l_rrrule_information8_tab2 l_rrrule_information8_type;
13869     l_rrrule_information9_tab2 l_rrrule_information9_type;
13870     l_rrrule_information10_tab2 l_rrrule_information10_type;
13871     l_rrrule_information11_tab2 l_rrrule_information11_type;
13872     l_rrrule_information12_tab2 l_rrrule_information12_type;
13873     l_rrrule_information13_tab2 l_rrrule_information13_type;
13874     l_rrrule_information14_tab2 l_rrrule_information14_type;
13875     l_rrrule_information15_tab2 l_rrrule_information15_type;
13876     l_rrsecurity_group_id_tab2 l_rrsecurity_group_id_type;
13877     l_rrtemplate_yn_tab2 l_rrtemplate_yn_type;
13878     l_rrans_set_jtot_object_c_tab2 l_rrans_set_jtot_object_c_type;
13879     l_rrans_set_jtot_object_1_tab2 l_rrans_set_jtot_object_1_type;
13880     l_rrans_set_jtot_object_2_tab2 l_rrans_set_jtot_object_2_type;
13881     l_rrdisplay_sequence_tab2 l_rrdisplay_sequence_type;
13882     l_rrcomments_tab2 l_rrcomments_type;
13883 
13884     l_new_rgp_id NUMBER;
13885     l_new_id     NUMBER;
13886 
13887     l_return_status2 VARCHAR2(1);
13888     l_unsched_prin_stream_id NUMBER := NULL;
13889     l_unsched_loan_stream_id NUMBER := NULL;
13890     l_proceed_processing BOOLEAN := TRUE;
13891     l_prin_rule_id NUMBER := NULL;
13892     l_loan_rule_id NUMBER := NULL;
13893 BEGIN
13894   IF (G_DEBUG_ENABLED = 'Y') THEN
13895     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
13896   END IF;
13897   NULL;
13898   okl_streams_util.get_dependent_stream_type (
13899        p_khr_id                => p_old_id,
13900        p_primary_sty_purpose   => 'RENT',
13901        p_dependent_sty_purpose => 'UNSCHEDULED_PRINCIPAL_PAYMENT',
13902        x_return_status	       => l_return_status2,
13903        x_dependent_sty_id      => l_unsched_prin_stream_id);
13904   IF (l_return_status2 <> OKC_API.G_RET_STS_SUCCESS) THEN
13905     l_unsched_prin_stream_id := NULL;
13906   END IF;
13907 
13908   okl_streams_util.get_dependent_stream_type (
13909        p_khr_id                => p_old_id,
13910        p_primary_sty_purpose   => 'RENT',
13911        p_dependent_sty_purpose => 'UNSCHEDULED_LOAN_PAYMENT',
13912        x_return_status	       => l_return_status2,
13913        x_dependent_sty_id      => l_unsched_loan_stream_id);
13914   IF (l_return_status2 <> OKC_API.G_RET_STS_SUCCESS) THEN
13915     l_unsched_loan_stream_id := NULL;
13916   END IF;
13917 
13918   --print('AKP:l_unsched_prin_stream_id=' || l_unsched_prin_stream_id);
13919   --print('AKP:l_unsched_loan_stream_id=' || l_unsched_loan_stream_id);
13920   OPEN c14(p_old_id);
13921   LOOP
13922     FETCH c14 bulk collect INTO
13923       l_rrid_tab2, l_rrrgp_id_tab2, l_rrobject1_id1_tab2,
13924       l_rrobject2_id1_tab2, l_rrobject3_id1_tab2, l_rrobject1_id2_tab2,
13925       l_rrobject2_id2_tab2, l_rrobject3_id2_tab2, l_rrjtot_object1_code_tab2,
13926       l_rrjtot_object2_code_tab2, l_rrjtot_object3_code_tab2, l_rrdnz_chr_id_tab2,
13927       l_rrstd_template_yn_tab2, l_rrwarn_yn_tab2, l_rrpriority_tab2,
13928       l_rrobject_version_number_tab2, l_rrcreated_by_tab2, l_rrcreation_date_tab2,
13929       l_rrlast_updated_by_tab2, l_rrlast_update_date_tab2, l_rrlast_update_login_tab2,
13930       l_rrattribute_category_tab2, l_rrattribute1_tab2, l_rrattribute2_tab2,
13931       l_rrattribute3_tab2, l_rrattribute4_tab2, l_rrattribute5_tab2,
13932       l_rrattribute6_tab2, l_rrattribute7_tab2, l_rrattribute8_tab2,
13933       l_rrattribute9_tab2, l_rrattribute10_tab2, l_rrattribute11_tab2,
13934       l_rrattribute12_tab2, l_rrattribute13_tab2, l_rrattribute14_tab2,
13935       l_rrattribute15_tab2, l_rrrule_information_cate_tab2, l_rrrule_information1_tab2,
13936       l_rrrule_information2_tab2, l_rrrule_information3_tab2, l_rrrule_information4_tab2,
13937       l_rrrule_information5_tab2, l_rrrule_information6_tab2, l_rrrule_information7_tab2,
13938       l_rrrule_information8_tab2, l_rrrule_information9_tab2, l_rrrule_information10_tab2,
13939       l_rrrule_information11_tab2, l_rrrule_information12_tab2, l_rrrule_information13_tab2,
13940       l_rrrule_information14_tab2, l_rrrule_information15_tab2, l_rrsecurity_group_id_tab2,
13941       l_rrtemplate_yn_tab2, l_rrans_set_jtot_object_c_tab2, l_rrans_set_jtot_object_1_tab2,
13942       l_rrans_set_jtot_object_2_tab2, l_rrdisplay_sequence_tab2, l_rrcomments_tab2
13943     limit G_BULK_SIZE;
13944     EXIT WHEN l_rrid_tab2.COUNT = 0;
13945     FOR i IN l_rrid_tab2.first..l_rrid_tab2.last
13946     LOOP
13947 
13948       l_proceed_processing := TRUE;
13949       IF p_trans_type not in ('CRB', 'CRL', 'CSP', 'CRV', 'ALI') THEN
13950         IF (l_rrobject1_id1_tab2(i) = to_char(l_unsched_prin_stream_id)) THEN
13951           l_proceed_processing := FALSE;
13952           l_prin_rule_id := l_rrid_tab2(i);
13953           --print('AKP:l_prin_rule_id=' || l_prin_rule_id);
13954         END IF;
13955 
13956         IF (l_rrobject1_id1_tab2(i) = to_char(l_unsched_loan_stream_id)) THEN
13957           l_proceed_processing := FALSE;
13958           l_loan_rule_id := l_rrid_tab2(i);
13959         END IF;
13960 
13961         IF (l_rrobject2_id1_tab2(i) = to_char(l_prin_rule_id)) THEN
13962           l_proceed_processing := FALSE;
13963         END IF;
13964 
13965         IF (l_rrobject2_id1_tab2(i) = to_char(l_loan_rule_id)) THEN
13966           l_proceed_processing := FALSE;
13967         END IF;
13968 
13969       END IF;
13970 
13971       /*IF (l_proceed_processing) THEN
13972       print('AKP: i=' || i || ': l_proceed_processing = TRUE');
13973       ELSE
13974       print('AKP: i=' || i || ': l_proceed_processing = FALSE');
13975       END IF;*/
13976 
13977       IF (l_proceed_processing) THEN
13978       -- Store old in tab3
13979       l_rrid_tab3(l_rules_b_counter) := l_rrid_tab2(i);
13980 
13981       l_rrid_tab(l_rules_b_counter) := l_rrid_tab2(i);
13982       -- Change id
13983       l_rrid_tab(l_rules_b_counter) := okc_p_util.raw_to_number(sys_guid());
13984 
13985       l_rrid_mapping_tab(l_rules_b_counter).old_id := l_rrid_tab3(l_rules_b_counter);
13986       l_rrid_mapping_tab(l_rules_b_counter).new_id := l_rrid_tab(l_rules_b_counter);
13987 
13988       l_rrrgp_id_tab(l_rules_b_counter) := l_rrrgp_id_tab2(i);
13989       -- Change rgp_id
13990       l_new_rgp_id := find_rid_mapping_id(l_rrrgp_id_tab(l_rules_b_counter));
13991       l_rrrgp_id_tab(l_rules_b_counter) := l_new_rgp_id;
13992 
13993       l_rrobject1_id1_tab(l_rules_b_counter) := l_rrobject1_id1_tab2(i);
13994       l_rrobject2_id1_tab(l_rules_b_counter) := l_rrobject2_id1_tab2(i);
13995       l_rrobject3_id1_tab(l_rules_b_counter) := l_rrobject3_id1_tab2(i);
13996       l_rrobject1_id2_tab(l_rules_b_counter) := l_rrobject1_id2_tab2(i);
13997       l_rrobject2_id2_tab(l_rules_b_counter) := l_rrobject2_id2_tab2(i);
13998       l_rrobject3_id2_tab(l_rules_b_counter) := l_rrobject3_id2_tab2(i);
13999       l_rrjtot_object1_code_tab(l_rules_b_counter) := l_rrjtot_object1_code_tab2(i);
14000       l_rrjtot_object2_code_tab(l_rules_b_counter) := l_rrjtot_object2_code_tab2(i);
14001       l_rrjtot_object3_code_tab(l_rules_b_counter) := l_rrjtot_object3_code_tab2(i);
14002       l_rrdnz_chr_id_tab(l_rules_b_counter) := l_rrdnz_chr_id_tab2(i);
14003       -- Change dnz_chr_id
14004       l_rrdnz_chr_id_tab(l_rules_b_counter) := p_new_id;
14005 
14006       l_rrstd_template_yn_tab(l_rules_b_counter) := l_rrstd_template_yn_tab2(i);
14007       l_rrwarn_yn_tab(l_rules_b_counter) := l_rrwarn_yn_tab2(i);
14008       l_rrpriority_tab(l_rules_b_counter) := l_rrpriority_tab2(i);
14009       l_rrobject_version_number_tab(l_rules_b_counter) := l_rrobject_version_number_tab2(i);
14010       l_rrcreated_by_tab(l_rules_b_counter) := l_rrcreated_by_tab2(i);
14011       l_rrcreation_date_tab(l_rules_b_counter) := l_rrcreation_date_tab2(i);
14012       l_rrlast_updated_by_tab(l_rules_b_counter) := l_rrlast_updated_by_tab2(i);
14013       l_rrlast_update_date_tab(l_rules_b_counter) := l_rrlast_update_date_tab2(i);
14014       l_rrlast_update_login_tab(l_rules_b_counter) := l_rrlast_update_login_tab2(i);
14015       l_rrattribute_category_tab(l_rules_b_counter) := l_rrattribute_category_tab2(i);
14016       l_rrattribute1_tab(l_rules_b_counter) := l_rrattribute1_tab2(i);
14017       l_rrattribute2_tab(l_rules_b_counter) := l_rrattribute2_tab2(i);
14018       l_rrattribute3_tab(l_rules_b_counter) := l_rrattribute3_tab2(i);
14019       l_rrattribute4_tab(l_rules_b_counter) := l_rrattribute4_tab2(i);
14020       l_rrattribute5_tab(l_rules_b_counter) := l_rrattribute5_tab2(i);
14021       l_rrattribute6_tab(l_rules_b_counter) := l_rrattribute6_tab2(i);
14022       l_rrattribute7_tab(l_rules_b_counter) := l_rrattribute7_tab2(i);
14023       l_rrattribute8_tab(l_rules_b_counter) := l_rrattribute8_tab2(i);
14024       l_rrattribute9_tab(l_rules_b_counter) := l_rrattribute9_tab2(i);
14025       l_rrattribute10_tab(l_rules_b_counter) := l_rrattribute10_tab2(i);
14026       l_rrattribute11_tab(l_rules_b_counter) := l_rrattribute11_tab2(i);
14027       l_rrattribute12_tab(l_rules_b_counter) := l_rrattribute12_tab2(i);
14028       l_rrattribute13_tab(l_rules_b_counter) := l_rrattribute13_tab2(i);
14029       l_rrattribute14_tab(l_rules_b_counter) := l_rrattribute14_tab2(i);
14030       l_rrattribute15_tab(l_rules_b_counter) := l_rrattribute15_tab2(i);
14031       l_rrrule_information_cate_tab(l_rules_b_counter) := l_rrrule_information_cate_tab2(i);
14032       l_rrrule_information1_tab(l_rules_b_counter) := l_rrrule_information1_tab2(i);
14033       --gboomina Bug 5362977 - Start
14034       -- Do not set Re-lease asset Flag to 'N' for Rebook and Re-lease copy
14035       -- contracts
14036       IF ( NVL(l_orig_system_source_code,OKL_API.G_MISS_CHAR) IN ('OKL_REBOOK','OKL_RELEASE'))
14037       THEN
14038         NULL;
14039       ELSE
14040         IF ( l_rrrule_information_cate_tab(l_rules_b_counter) = 'LARLES') THEN
14041           l_rrrule_information1_tab(l_rules_b_counter) := 'N';
14042         END IF;
14043       END IF;
14044       -- gboomina Bug 5362977 - End
14045 
14046       l_rrrule_information2_tab(l_rules_b_counter) := l_rrrule_information2_tab2(i);
14047       l_rrrule_information3_tab(l_rules_b_counter) := l_rrrule_information3_tab2(i);
14048       l_rrrule_information4_tab(l_rules_b_counter) := l_rrrule_information4_tab2(i);
14049       l_rrrule_information5_tab(l_rules_b_counter) := l_rrrule_information5_tab2(i);
14050       l_rrrule_information6_tab(l_rules_b_counter) := l_rrrule_information6_tab2(i);
14051       l_rrrule_information7_tab(l_rules_b_counter) := l_rrrule_information7_tab2(i);
14052       l_rrrule_information8_tab(l_rules_b_counter) := l_rrrule_information8_tab2(i);
14053       l_rrrule_information9_tab(l_rules_b_counter) := l_rrrule_information9_tab2(i);
14054       l_rrrule_information10_tab(l_rules_b_counter) := l_rrrule_information10_tab2(i);
14055       l_rrrule_information11_tab(l_rules_b_counter) := l_rrrule_information11_tab2(i);
14056       l_rrrule_information12_tab(l_rules_b_counter) := l_rrrule_information12_tab2(i);
14057       -- bug 6489689 veramach start
14058       IF (l_rrrule_information_cate_tab(l_rules_b_counter) = 'LASLL') THEN
14059         l_rrrule_information13_tab(l_rules_b_counter) := NULL;
14060       ELSE
14061         l_rrrule_information13_tab(l_rules_b_counter) := l_rrrule_information13_tab2(i);
14062       END IF;
14063       -- bug 6489689 veramach end
14064       l_rrrule_information14_tab(l_rules_b_counter) := l_rrrule_information14_tab2(i);
14065       l_rrrule_information15_tab(l_rules_b_counter) := l_rrrule_information15_tab2(i);
14066       l_rrsecurity_group_id_tab(l_rules_b_counter) := l_rrsecurity_group_id_tab2(i);
14067       l_rrtemplate_yn_tab(l_rules_b_counter) := l_rrtemplate_yn_tab2(i);
14068       l_rrans_set_jtot_object_c_tab(l_rules_b_counter) := l_rrans_set_jtot_object_c_tab2(i);
14069       l_rrans_set_jtot_object_1_tab(l_rules_b_counter) := l_rrans_set_jtot_object_1_tab2(i);
14070       l_rrans_set_jtot_object_2_tab(l_rules_b_counter) := l_rrans_set_jtot_object_2_tab2(i);
14071       l_rrdisplay_sequence_tab(l_rules_b_counter) := l_rrdisplay_sequence_tab2(i);
14072       l_rrcomments_tab(l_rules_b_counter) := l_rrcomments_tab2(i);
14073 
14074       l_rules_b_counter := l_rules_b_counter + 1;
14075 
14076       END IF; -- if proceed_processing
14077     END LOOP;
14078   END LOOP;
14079   CLOSE c14;
14080 
14081   IF (l_rules_b_counter > 1) THEN
14082     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
14083           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);
14084     END IF;
14085     sort_rrid_mapping_tab;
14086     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
14087           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sort_rrid_mapping_tab done...');
14088     END IF;
14089     -- Replace object1_id2
14090     FOR i IN l_rrid_tab.first..l_rrid_tab.last
14091     LOOP
14092        IF ((l_rrobject2_id1_tab(i) IS NOT NULL) AND
14093            --(l_rrobject2_id1_tab(i)  != '#' ) and
14094            (l_rrrule_information_cate_tab(i) = 'LASLL')) THEN
14095          BEGIN
14096          l_new_id := find_rrid_mapping_id(TO_NUMBER(l_rrobject2_id1_tab(i)));
14097          IF (l_new_id = -1) THEN
14098           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
14099                       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR : Mapping id not found for ' || l_rrobject2_id1_tab(i));
14100           END IF;
14101           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14102          END IF;
14103          l_rrobject2_id1_tab(i) := l_new_id;
14104          --print('object2_id1:l_new_id=' || l_new_id);
14105          EXCEPTION WHEN OTHERS THEN
14106            NULL;
14107            --print('l_rrobject2_id1_tab(i)=' || l_rrobject2_id1_tab(i));
14108          END;
14109        END IF;
14110     END LOOP;
14111     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
14112           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'replacing object1_id2 done...');
14113     END IF;
14114 
14115     forall i IN l_rrid_tab.first..l_rrid_tab.last
14116     INSERT INTO okc_rules_b (
14117      id, rgp_id, object1_id1,
14118      object2_id1, object3_id1, object1_id2,
14119      object2_id2, object3_id2, jtot_object1_code,
14120      jtot_object2_code, jtot_object3_code, dnz_chr_id,
14121      std_template_yn, warn_yn, priority,
14122      object_version_number, created_by, creation_date,
14123      last_updated_by, last_update_date, last_update_login,
14124      attribute_category, attribute1, attribute2,
14125      attribute3, attribute4, attribute5,
14126      attribute6, attribute7, attribute8,
14127      attribute9, attribute10, attribute11,
14128      attribute12, attribute13, attribute14,
14129      attribute15, rule_information_category, rule_information1,
14130      rule_information2, rule_information3, rule_information4,
14131      rule_information5, rule_information6, rule_information7,
14132      rule_information8, rule_information9, rule_information10,
14133      rule_information11, rule_information12, rule_information13,
14134      rule_information14, rule_information15, security_group_id,
14135      template_yn, ans_set_jtot_object_code, ans_set_jtot_object_id1,
14136      ans_set_jtot_object_id2, display_sequence, comments
14137     ) VALUES (
14138      l_rrid_tab(i), l_rrrgp_id_tab(i), l_rrobject1_id1_tab(i),
14139      l_rrobject2_id1_tab(i), l_rrobject3_id1_tab(i), l_rrobject1_id2_tab(i),
14140      l_rrobject2_id2_tab(i), l_rrobject3_id2_tab(i), l_rrjtot_object1_code_tab(i),
14141      l_rrjtot_object2_code_tab(i), l_rrjtot_object3_code_tab(i), l_rrdnz_chr_id_tab(i),
14142      l_rrstd_template_yn_tab(i), l_rrwarn_yn_tab(i), l_rrpriority_tab(i),
14143      1, l_created_by, SYSDATE,
14144      l_last_updated_by, SYSDATE, l_last_update_login,
14145      l_rrattribute_category_tab(i), l_rrattribute1_tab(i), l_rrattribute2_tab(i),
14146      l_rrattribute3_tab(i), l_rrattribute4_tab(i), l_rrattribute5_tab(i),
14147      l_rrattribute6_tab(i), l_rrattribute7_tab(i), l_rrattribute8_tab(i),
14148      l_rrattribute9_tab(i), l_rrattribute10_tab(i), l_rrattribute11_tab(i),
14149      l_rrattribute12_tab(i), l_rrattribute13_tab(i), l_rrattribute14_tab(i),
14150      l_rrattribute15_tab(i), l_rrrule_information_cate_tab(i), l_rrrule_information1_tab(i),
14151      l_rrrule_information2_tab(i), l_rrrule_information3_tab(i), l_rrrule_information4_tab(i),
14152      l_rrrule_information5_tab(i), l_rrrule_information6_tab(i), l_rrrule_information7_tab(i),
14153      l_rrrule_information8_tab(i), l_rrrule_information9_tab(i), l_rrrule_information10_tab(i),
14154      l_rrrule_information11_tab(i), l_rrrule_information12_tab(i), l_rrrule_information13_tab(i),
14155      l_rrrule_information14_tab(i), l_rrrule_information15_tab(i), l_rrsecurity_group_id_tab(i),
14156      l_rrtemplate_yn_tab(i), l_rrans_set_jtot_object_c_tab(i), l_rrans_set_jtot_object_1_tab(i),
14157      l_rrans_set_jtot_object_2_tab(i), l_rrdisplay_sequence_tab(i), l_rrcomments_tab(i)
14158     );
14159     -- AKP: Special processing link_slh_sll ???
14160     FOR i IN l_rrid_tab.first..l_rrid_tab.last
14161     LOOP
14162       IF ( i = l_rrid_tab.last) THEN
14163         insert_okc_rules_tl(l_rrid_tab3(i),l_rrid_tab(i), 'Y');
14164       ELSE
14165         insert_okc_rules_tl(l_rrid_tab3(i),l_rrid_tab(i), 'N');
14166       END IF;
14167     END LOOP;
14168 
14169   END IF;
14170 
14171 EXCEPTION WHEN OTHERS THEN
14172 
14173   x_return_status := OKL_API.G_RET_STS_ERROR;
14174   /*OKL_API.set_message(p_app_name => 'OKL',
14175                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
14176                       p_token1 => 'ASSET_NUMBER',
14177                       p_token1_value => 'insert_okc_rules_b');*/
14178     /* DEBUG */
14179   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
14180       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
14181     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing insert_okc_rules_b:l_rrid_tab.count=' || l_rrid_tab.COUNT || ' ...');
14182   END IF;
14183 
14184   IF (l_rrid_tab.COUNT > 0) THEN
14185   FOR i IN l_rrid_tab.first..l_rrid_tab.last
14186   LOOP
14187     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
14188           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrid_tab('||i||')=' || l_rrid_tab(i));
14189       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrgp_id_tab('||i||')=' || l_rrrgp_id_tab(i));
14190       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrobject1_id1_tab('||i||')=' || l_rrobject1_id1_tab(i));
14191       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrobject2_id1_tab('||i||')=' || l_rrobject2_id1_tab(i));
14192       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrobject3_id1_tab('||i||')=' || l_rrobject3_id1_tab(i));
14193       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrobject1_id2_tab('||i||')=' || l_rrobject1_id2_tab(i));
14194       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrobject2_id2_tab('||i||')=' || l_rrobject2_id2_tab(i));
14195       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrobject3_id2_tab('||i||')=' || l_rrobject3_id2_tab(i));
14196       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrjtot_object1_code_tab('||i||')=' || l_rrjtot_object1_code_tab(i));
14197       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrjtot_object2_code_tab('||i||')=' || l_rrjtot_object2_code_tab(i));
14198       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrjtot_object3_code_tab('||i||')=' || l_rrjtot_object3_code_tab(i));
14199       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrdnz_chr_id_tab('||i||')=' || l_rrdnz_chr_id_tab(i));
14200       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrstd_template_yn_tab('||i||')=' || l_rrstd_template_yn_tab(i));
14201       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrwarn_yn_tab('||i||')=' || l_rrwarn_yn_tab(i));
14202       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrpriority_tab('||i||')=' || l_rrpriority_tab(i));
14203       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute_category_tab('||i||')=' || l_rrattribute_category_tab(i));
14204       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute1_tab('||i||')=' || l_rrattribute1_tab(i));
14205       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute2_tab('||i||')=' || l_rrattribute2_tab(i));
14206       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute3_tab('||i||')=' || l_rrattribute3_tab(i));
14207       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute4_tab('||i||')=' || l_rrattribute4_tab(i));
14208       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute5_tab('||i||')=' || l_rrattribute5_tab(i));
14209       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute6_tab('||i||')=' || l_rrattribute6_tab(i));
14210       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute7_tab('||i||')=' || l_rrattribute7_tab(i));
14211       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute8_tab('||i||')=' || l_rrattribute8_tab(i));
14212       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute9_tab('||i||')=' || l_rrattribute9_tab(i));
14213       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute10_tab('||i||')=' || l_rrattribute10_tab(i));
14214       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute11_tab('||i||')=' || l_rrattribute11_tab(i));
14215       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute12_tab('||i||')=' || l_rrattribute12_tab(i));
14216       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute13_tab('||i||')=' || l_rrattribute13_tab(i));
14217       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute14_tab('||i||')=' || l_rrattribute14_tab(i));
14218       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrattribute15_tab('||i||')=' || l_rrattribute15_tab(i));
14219       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information_cate_tab('||i||')=' || l_rrrule_information_cate_tab(i));
14220       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information1_tab('||i||')=' || l_rrrule_information1_tab(i));
14221       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information2_tab('||i||')=' || l_rrrule_information2_tab(i));
14222       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information3_tab('||i||')=' || l_rrrule_information3_tab(i));
14223       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information4_tab('||i||')=' || l_rrrule_information4_tab(i));
14224       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information5_tab('||i||')=' || l_rrrule_information5_tab(i));
14225       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information6_tab('||i||')=' || l_rrrule_information6_tab(i));
14226       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information7_tab('||i||')=' || l_rrrule_information7_tab(i));
14227       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information8_tab('||i||')=' || l_rrrule_information8_tab(i));
14228       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information9_tab('||i||')=' || l_rrrule_information9_tab(i));
14229       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information10_tab('||i||')=' || l_rrrule_information10_tab(i));
14230       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information11_tab('||i||')=' || l_rrrule_information11_tab(i));
14231       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information12_tab('||i||')=' || l_rrrule_information12_tab(i));
14232       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information13_tab('||i||')=' || l_rrrule_information13_tab(i));
14233       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information14_tab('||i||')=' || l_rrrule_information14_tab(i));
14234       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrrule_information15_tab('||i||')=' || l_rrrule_information15_tab(i));
14235       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrsecurity_group_id_tab('||i||')=' || l_rrsecurity_group_id_tab(i));
14236       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrtemplate_yn_tab('||i||')=' || l_rrtemplate_yn_tab(i));
14237       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));
14238       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));
14239       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));
14240       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrdisplay_sequence_tab('||i||')=' || l_rrdisplay_sequence_tab(i));
14241       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrcomments_tab('||i||')=' || l_rrcomments_tab(i));
14242     END IF;
14243   END LOOP;
14244   END IF;
14245 
14246   RAISE OKC_API.G_EXCEPTION_ERROR;
14247 
14248 END; /* insert_okc_rules_b */
14249 
14250 FUNCTION find_tid_mapping_id(p_id IN VARCHAR2) RETURN NUMBER IS
14251 hi NUMBER;
14252 lo NUMBER;
14253 m NUMBER;
14254 BEGIN
14255   lo := 1;
14256   hi := l_tid_counter - 1;
14257   WHILE (lo <= hi) LOOP
14258     m := FLOOR((hi + lo)/2);
14259     IF (l_tid_mapping_tab(m).rgd_code = p_id) THEN
14260       RETURN l_tid_mapping_tab(m).id;
14261     ELSIF (l_tid_mapping_tab(m).rgd_code > p_id) THEN
14262       hi := m - 1;
14263     ELSE
14264       lo := m + 1;
14265     END IF;
14266   END LOOP;
14267   RETURN -1;
14268 END;  /* find_tid_mapping_id */
14269 
14270 PROCEDURE sort_tid_mapping_tab IS
14271   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
14272   --a numtabtype;
14273   l_stack numtabtype;
14274   l_stack_index NUMBER := 0;
14275   N NUMBER;
14276   R NUMBER;
14277   L NUMBER;
14278   P NUMBER;
14279   W VARCHAR2(30);
14280   W2 NUMBER;
14281   X VARCHAR2(30);
14282   I NUMBER;
14283   J NUMBER;
14284 BEGIN
14285   IF (G_DEBUG_ENABLED = 'Y') THEN
14286     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
14287   END IF;
14288   NULL;
14289 
14290   N := l_tid_counter - 1;
14291   IF (N < 2) THEN
14292     RETURN;
14293   END IF;
14294   l_stack_index := l_stack_index + 1;
14295   l_stack(l_stack_index) := 1;
14296   l_stack_index := l_stack_index + 1;
14297   l_stack(l_stack_index) := N;
14298 
14299   --dbms_output.put_line('l_stack_index=' || l_stack_index);
14300   WHILE l_stack_index > 0
14301   LOOP
14302     R := l_stack(l_stack_index);
14303     l_stack_index := l_stack_index - 1;
14304     L := l_stack(l_stack_index);
14305     l_stack_index := l_stack_index - 1;
14306     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
14307     WHILE 1=1
14308     LOOP -- loop until L >= R
14309       I := L;
14310       J := R;
14311       P := FLOOR((L+R)/2);
14312       --if (a(L) > a(P)) then
14313       IF (l_tid_mapping_tab(L).rgd_code > l_tid_mapping_tab(P).rgd_code)
14314       THEN
14315         W := l_tid_mapping_tab(L).rgd_code;
14316         W2 := l_tid_mapping_tab(L).id;
14317         l_tid_mapping_tab(L).rgd_code :=l_tid_mapping_tab(P).rgd_code;
14318         l_tid_mapping_tab(L).id :=l_tid_mapping_tab(P).id;
14319         l_tid_mapping_tab(P).rgd_code := W;
14320         l_tid_mapping_tab(P).id := W2;
14321       END IF;
14322       --if (a(L) > a(R)) then
14323       IF (l_tid_mapping_tab(L).rgd_code > l_tid_mapping_tab(R).rgd_code)
14324       THEN
14325         W := l_tid_mapping_tab(L).rgd_code;
14326         W2 := l_tid_mapping_tab(L).id;
14327         l_tid_mapping_tab(L).rgd_code :=l_tid_mapping_tab(R).rgd_code;
14328         l_tid_mapping_tab(L).id :=l_tid_mapping_tab(R).id;
14329         l_tid_mapping_tab(R).rgd_code := W;
14330         l_tid_mapping_tab(R).id := W2;
14331       END IF;
14332       --if (a(P) > a(R)) then
14333       IF (l_tid_mapping_tab(P).rgd_code > l_tid_mapping_tab(R).rgd_code)
14334       THEN
14335         W := l_tid_mapping_tab(P).rgd_code;
14336         W2 := l_tid_mapping_tab(P).id;
14337         l_tid_mapping_tab(P).rgd_code :=l_tid_mapping_tab(R).rgd_code;
14338         l_tid_mapping_tab(P).id :=l_tid_mapping_tab(R).id;
14339         l_tid_mapping_tab(R).rgd_code := W;
14340         l_tid_mapping_tab(R).id := W2;
14341       END IF;
14342       --X := a(P);
14343       X := l_tid_mapping_tab(P).rgd_code;
14344       WHILE 1=1
14345       LOOP    -- until I > J
14346         --while (a(I) < X) loop
14347         WHILE (l_tid_mapping_tab(I).rgd_code < X) LOOP
14348           I := I + 1;
14349         END LOOP;
14350         WHILE (X < l_tid_mapping_tab(J).rgd_code) LOOP
14351           J := J - 1;
14352         END LOOP;
14353         IF (I <= J) THEN
14354           W := l_tid_mapping_tab(I).rgd_code;
14355           W2 := l_tid_mapping_tab(I).id;
14356           l_tid_mapping_tab(I).rgd_code :=l_tid_mapping_tab(J).rgd_code;
14357           l_tid_mapping_tab(I).id :=l_tid_mapping_tab(J).id;
14358           l_tid_mapping_tab(J).rgd_code := W;
14359           l_tid_mapping_tab(J).id := W2;
14360           I := I + 1;
14361           J := J - 1;
14362         END IF;
14363         EXIT WHEN I > J;
14364       END LOOP;
14365       IF (J - L < R - I) THEN
14366         IF (I < R) THEN
14367           --push(I); push(R);
14368           l_stack_index := l_stack_index + 1;
14369           l_stack(l_stack_index) := I;
14370           l_stack_index := l_stack_index + 1;
14371           l_stack(l_stack_index) := R;
14372           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
14373         END IF;
14374         R := J;
14375       ELSE
14376         IF (L < J) THEN
14377           --push(L); push(J);
14378           l_stack_index := l_stack_index + 1;
14379           l_stack(l_stack_index) := L;
14380           l_stack_index := l_stack_index + 1;
14381           l_stack(l_stack_index) := J;
14382           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
14383         END IF;
14384         L := I;
14385       END IF;
14386 
14387       EXIT WHEN (L >= R);
14388     END LOOP;
14389   END LOOP;
14390 
14391 EXCEPTION WHEN OTHERS THEN
14392 
14393   x_return_status := OKL_API.G_RET_STS_ERROR;
14394   /*OKL_API.set_message(p_app_name => 'OKL',
14395                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
14396                       p_token1 => 'ASSET_NUMBER',
14397                       p_token1_value => 'sort_tid_mapping_tab');*/
14398     /* DEBUG */
14399   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
14400       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
14401     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_tid_mapping_tab:l_tid_mapping_tab N=' || N || ' ...');
14402   END IF;
14403 
14404   --print array
14405   FOR i IN 1..N
14406   LOOP
14407     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
14408           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);
14409     END IF;
14410   END LOOP;
14411 
14412   RAISE OKC_API.G_EXCEPTION_ERROR;
14413 
14414 END;  /* sort_tid_mapping_tab */
14415 
14416 PROCEDURE insert_okc_rule_groups (p_old_id IN okc_k_headers_b.id%TYPE,
14417                                   p_new_id IN okc_k_headers_b.id%TYPE) IS
14418 CURSOR c12(p_id NUMBER) IS
14419 SELECT
14420      id, rgd_code, chr_id,
14421      cle_id, dnz_chr_id, parent_rgp_id,
14422      sat_code, object_version_number, rgp_type,
14423      created_by, creation_date, last_updated_by,
14424      last_update_date, last_update_login, attribute_category,
14425      attribute1, attribute2, attribute3,
14426      attribute4, attribute5, attribute6,
14427      attribute7, attribute8, attribute9,
14428      attribute10, attribute11, attribute12,
14429      attribute13, attribute14, attribute15,
14430      security_group_id
14431 FROM okc_rule_groups_b
14432 WHERE dnz_chr_id = p_id
14433   AND (
14434     chr_id = chr_id
14435     OR (
14436         NVL(p_copy_lines_yn, 'N') = 'Y'
14437         AND cle_id IS NOT NULL
14438        )
14439   );
14440 
14441     l_rid_tab2 l_rid_type;
14442     l_rrgd_code_tab2 l_rrgd_code_type;
14443     l_rchr_id_tab2 l_rchr_id_type;
14444     l_rcle_id_tab2 l_rcle_id_type;
14445     l_rdnz_chr_id_tab2 l_rdnz_chr_id_type;
14446     l_rparent_rgp_id_tab2 l_rparent_rgp_id_type;
14447     l_rsat_code_tab2 l_rsat_code_type;
14448     l_robject_version_number_tab2 l_robject_version_number_type;
14449     l_rrgp_type_tab2 l_rrgp_type_type;
14450     l_rcreated_by_tab2 l_rcreated_by_type;
14451     l_rcreation_date_tab2 l_rcreation_date_type;
14452     l_rlast_updated_by_tab2 l_rlast_updated_by_type;
14453     l_rlast_update_date_tab2 l_rlast_update_date_type;
14454     l_rlast_update_login_tab2 l_rlast_update_login_type;
14455     l_rattribute_category_tab2 l_rattribute_category_type;
14456     l_rattribute1_tab2 l_rattribute1_type;
14457     l_rattribute2_tab2 l_rattribute2_type;
14458     l_rattribute3_tab2 l_rattribute3_type;
14459     l_rattribute4_tab2 l_rattribute4_type;
14460     l_rattribute5_tab2 l_rattribute5_type;
14461     l_rattribute6_tab2 l_rattribute6_type;
14462     l_rattribute7_tab2 l_rattribute7_type;
14463     l_rattribute8_tab2 l_rattribute8_type;
14464     l_rattribute9_tab2 l_rattribute9_type;
14465     l_rattribute10_tab2 l_rattribute10_type;
14466     l_rattribute11_tab2 l_rattribute11_type;
14467     l_rattribute12_tab2 l_rattribute12_type;
14468     l_rattribute13_tab2 l_rattribute13_type;
14469     l_rattribute14_tab2 l_rattribute14_type;
14470     l_rattribute15_tab2 l_rattribute15_type;
14471     l_rsecurity_group_id_tab2 l_rsecurity_group_id_type;
14472 
14473     l_new_cle_id NUMBER;
14474 BEGIN
14475   IF (G_DEBUG_ENABLED = 'Y') THEN
14476     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
14477   END IF;
14478   NULL;
14479   OPEN c12(p_old_id);
14480   LOOP
14481     FETCH c12 bulk collect INTO
14482      l_rid_tab2, l_rrgd_code_tab2, l_rchr_id_tab2,
14483      l_rcle_id_tab2, l_rdnz_chr_id_tab2, l_rparent_rgp_id_tab2,
14484      l_rsat_code_tab2, l_robject_version_number_tab2, l_rrgp_type_tab2,
14485      l_rcreated_by_tab2, l_rcreation_date_tab2, l_rlast_updated_by_tab2,
14486      l_rlast_update_date_tab2, l_rlast_update_login_tab2, l_rattribute_category_tab2,
14487      l_rattribute1_tab2, l_rattribute2_tab2, l_rattribute3_tab2,
14488      l_rattribute4_tab2, l_rattribute5_tab2, l_rattribute6_tab2,
14489      l_rattribute7_tab2, l_rattribute8_tab2, l_rattribute9_tab2,
14490      l_rattribute10_tab2, l_rattribute11_tab2, l_rattribute12_tab2,
14491      l_rattribute13_tab2, l_rattribute14_tab2, l_rattribute15_tab2,
14492      l_rsecurity_group_id_tab2
14493     limit G_BULK_SIZE;
14494     EXIT WHEN l_rid_tab2.COUNT = 0;
14495     FOR i IN l_rid_tab2.first..l_rid_tab2.last
14496     LOOP
14497 
14498       l_rid_tab(l_rule_groups_b_counter) := l_rid_tab2(i);
14499       -- Store old value in tab3
14500       l_rid_tab3(l_rule_groups_b_counter) := l_rid_tab2(i);
14501       -- Change id
14502       l_rid_tab(l_rule_groups_b_counter) :=okc_p_util.raw_to_number(sys_guid());
14503 
14504       l_rid_mapping_tab(l_rule_groups_b_counter).old_id := l_rid_tab3(l_rule_groups_b_counter);
14505       l_rid_mapping_tab(l_rule_groups_b_counter).new_id := l_rid_tab(l_rule_groups_b_counter);
14506 
14507       l_rrgd_code_tab(l_rule_groups_b_counter) := l_rrgd_code_tab2(i);
14508       l_rchr_id_tab(l_rule_groups_b_counter) := l_rchr_id_tab2(i);
14509       -- Change chr_id
14510       IF (l_rchr_id_tab(l_rule_groups_b_counter) IS NOT NULL) THEN
14511         l_rchr_id_tab(l_rule_groups_b_counter) := p_new_id;
14512       END IF;
14513 
14514       l_rcle_id_tab(l_rule_groups_b_counter) := l_rcle_id_tab2(i);
14515       -- Change cle_id
14516       IF (l_rcle_id_tab(l_rule_groups_b_counter) IS NOT NULL) THEN
14517         l_new_cle_id := find_mapping_id(l_rcle_id_tab(l_rule_groups_b_counter));
14518         IF (l_new_cle_id = -1) THEN
14519           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
14520                       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));
14521           END IF;
14522           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
14523         END IF;
14524         l_rcle_id_tab(l_rule_groups_b_counter) := l_new_cle_id;
14525       END IF;
14526 
14527       l_rdnz_chr_id_tab(l_rule_groups_b_counter) := l_rdnz_chr_id_tab2(i);
14528       -- Change dnz_chr_id
14529       IF (l_rdnz_chr_id_tab(l_rule_groups_b_counter) IS NOT NULL) THEN
14530         l_rdnz_chr_id_tab(l_rule_groups_b_counter) := p_new_id;
14531       END IF;
14532 
14533       -- Store terms id for business event processing
14534       IF (l_rcle_id_tab(l_rule_groups_b_counter) IS NULL) THEN
14535         l_tid_mapping_tab(l_tid_counter).rgd_code := l_rrgd_code_tab(l_rule_groups_b_counter);
14536         l_tid_mapping_tab(l_tid_counter).id := l_rid_tab(l_rule_groups_b_counter);
14537         l_tid_counter := l_tid_counter + 1;
14538       END IF;
14539 
14540       l_rparent_rgp_id_tab(l_rule_groups_b_counter) := l_rparent_rgp_id_tab2(i);
14541       -- Change parent_rgp_id ??? AKP
14542 
14543       l_rsat_code_tab(l_rule_groups_b_counter) := l_rsat_code_tab2(i);
14544       l_robject_version_number_tab(l_rule_groups_b_counter) := l_robject_version_number_tab2(i);
14545       l_rrgp_type_tab(l_rule_groups_b_counter) := l_rrgp_type_tab2(i);
14546       l_rcreated_by_tab(l_rule_groups_b_counter) := l_rcreated_by_tab2(i);
14547       l_rcreation_date_tab(l_rule_groups_b_counter) := l_rcreation_date_tab2(i);
14548       l_rlast_updated_by_tab(l_rule_groups_b_counter) := l_rlast_updated_by_tab2(i);
14549       l_rlast_update_date_tab(l_rule_groups_b_counter) := l_rlast_update_date_tab2(i);
14550       l_rlast_update_login_tab(l_rule_groups_b_counter) := l_rlast_update_login_tab2(i);
14551       l_rattribute_category_tab(l_rule_groups_b_counter) := l_rattribute_category_tab2(i);
14552       l_rattribute1_tab(l_rule_groups_b_counter) := l_rattribute1_tab2(i);
14553       l_rattribute2_tab(l_rule_groups_b_counter) := l_rattribute2_tab2(i);
14554       l_rattribute3_tab(l_rule_groups_b_counter) := l_rattribute3_tab2(i);
14555       l_rattribute4_tab(l_rule_groups_b_counter) := l_rattribute4_tab2(i);
14556       l_rattribute5_tab(l_rule_groups_b_counter) := l_rattribute5_tab2(i);
14557       l_rattribute6_tab(l_rule_groups_b_counter) := l_rattribute6_tab2(i);
14558       l_rattribute7_tab(l_rule_groups_b_counter) := l_rattribute7_tab2(i);
14559       l_rattribute8_tab(l_rule_groups_b_counter) := l_rattribute8_tab2(i);
14560       l_rattribute9_tab(l_rule_groups_b_counter) := l_rattribute9_tab2(i);
14561       l_rattribute10_tab(l_rule_groups_b_counter) := l_rattribute10_tab2(i);
14562       l_rattribute11_tab(l_rule_groups_b_counter) := l_rattribute11_tab2(i);
14563       l_rattribute12_tab(l_rule_groups_b_counter) := l_rattribute12_tab2(i);
14564       l_rattribute13_tab(l_rule_groups_b_counter) := l_rattribute13_tab2(i);
14565       l_rattribute14_tab(l_rule_groups_b_counter) := l_rattribute14_tab2(i);
14566       l_rattribute15_tab(l_rule_groups_b_counter) := l_rattribute15_tab2(i);
14567       l_rsecurity_group_id_tab(l_rule_groups_b_counter) := l_rsecurity_group_id_tab2(i);
14568 
14569       l_rule_groups_b_counter := l_rule_groups_b_counter + 1;
14570     END LOOP;
14571   END LOOP;
14572   CLOSE c12;
14573   sort_tid_mapping_tab;
14574 
14575   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
14576       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);
14577   END IF;
14578   IF (l_rule_groups_b_counter > 1) THEN
14579     sort_rid_mapping_tab;
14580 
14581     forall i IN l_rid_tab.first..l_rid_tab.last
14582     INSERT INTO okc_rule_groups_b (
14583      id, rgd_code, chr_id,
14584      cle_id, dnz_chr_id, parent_rgp_id,
14585      sat_code, object_version_number, rgp_type,
14586      created_by, creation_date, last_updated_by,
14587      last_update_date, last_update_login, attribute_category,
14588      attribute1, attribute2, attribute3,
14589      attribute4, attribute5, attribute6,
14590      attribute7, attribute8, attribute9,
14591      attribute10, attribute11, attribute12,
14592      attribute13, attribute14, attribute15,
14593      security_group_id
14594     ) VALUES (
14595      l_rid_tab(i), l_rrgd_code_tab(i), l_rchr_id_tab(i),
14596      l_rcle_id_tab(i), l_rdnz_chr_id_tab(i), l_rparent_rgp_id_tab(i),
14597      l_rsat_code_tab(i), 1, l_rrgp_type_tab(i),
14598      l_created_by, SYSDATE, l_last_updated_by,
14599      SYSDATE, l_last_update_login, l_rattribute_category_tab(i),
14600      l_rattribute1_tab(i), l_rattribute2_tab(i), l_rattribute3_tab(i),
14601      l_rattribute4_tab(i), l_rattribute5_tab(i), l_rattribute6_tab(i),
14602      l_rattribute7_tab(i), l_rattribute8_tab(i), l_rattribute9_tab(i),
14603      l_rattribute10_tab(i), l_rattribute11_tab(i), l_rattribute12_tab(i),
14604      l_rattribute13_tab(i), l_rattribute14_tab(i), l_rattribute15_tab(i),
14605      l_rsecurity_group_id_tab(i)
14606     );
14607    FOR i IN l_rid_tab.first..l_rid_tab.last
14608    LOOP
14609      IF (i = l_rid_tab.last) THEN
14610        prepare_rule_groups_tl(l_rid_tab3(i), l_rid_tab(i), 'Y');
14611      ELSE
14612        prepare_rule_groups_tl(l_rid_tab3(i), l_rid_tab(i), 'N');
14613      END IF;
14614    END LOOP;
14615 
14616   l_message := 'OKL_NEW_COPY_RUL_ERROR';
14617   insert_okc_rules_b(p_chr_id, l_copied_id);
14618 
14619   END IF;
14620 
14621 EXCEPTION WHEN OTHERS THEN
14622 
14623   x_return_status := OKL_API.G_RET_STS_ERROR;
14624   /*OKL_API.set_message(p_app_name => 'OKL',
14625                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
14626                       p_token1 => 'ASSET_NUMBER',
14627                       p_token1_value => 'insert_okc_rule_groups');*/
14628     /* DEBUG */
14629   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
14630       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
14631     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing insert_okc_rule_groups:l_rid_tab.count=' || l_rid_tab.COUNT || ' ...');
14632   END IF;
14633   IF (l_rid_tab.COUNT > 0) THEN
14634   FOR i IN l_rid_tab.first..l_rid_tab.last
14635   LOOP
14636     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
14637           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rid_tab('||i||')=' || l_rid_tab(i));
14638       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrgd_code_tab('||i||')=' || l_rrgd_code_tab(i));
14639       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rchr_id_tab('||i||')=' || l_rchr_id_tab(i));
14640       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rcle_id_tab('||i||')=' || l_rcle_id_tab(i));
14641       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rdnz_chr_id_tab('||i||')=' || l_rdnz_chr_id_tab(i));
14642       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rparent_rgp_id_tab('||i||')=' || l_rparent_rgp_id_tab(i));
14643       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rsat_code_tab('||i||')=' || l_rsat_code_tab(i));
14644       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rrgp_type_tab('||i||')=' || l_rrgp_type_tab(i));
14645       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute_category_tab('||i||')=' || l_rattribute_category_tab(i));
14646       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute1_tab('||i||')=' || l_rattribute1_tab(i));
14647       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute2_tab('||i||')=' || l_rattribute2_tab(i));
14648       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute3_tab('||i||')=' || l_rattribute3_tab(i));
14649       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute4_tab('||i||')=' || l_rattribute4_tab(i));
14650       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute5_tab('||i||')=' || l_rattribute5_tab(i));
14651       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute6_tab('||i||')=' || l_rattribute6_tab(i));
14652       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute7_tab('||i||')=' || l_rattribute7_tab(i));
14653       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute8_tab('||i||')=' || l_rattribute8_tab(i));
14654       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute9_tab('||i||')=' || l_rattribute9_tab(i));
14655       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute10_tab('||i||')=' || l_rattribute10_tab(i));
14656       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute11_tab('||i||')=' || l_rattribute11_tab(i));
14657       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute12_tab('||i||')=' || l_rattribute12_tab(i));
14658       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute13_tab('||i||')=' || l_rattribute13_tab(i));
14659       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute14_tab('||i||')=' || l_rattribute14_tab(i));
14660       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rattribute15_tab('||i||')=' || l_rattribute15_tab(i));
14661       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_rsecurity_group_id_tab('||i||')=' || l_rsecurity_group_id_tab(i));
14662     END IF;
14663   END LOOP;
14664   END IF;
14665 
14666   RAISE OKC_API.G_EXCEPTION_ERROR;
14667 
14668 END;  /* insert_okc_rule_groups */
14669 
14670 FUNCTION find_oid_mapping_id(p_id IN NUMBER) RETURN VARCHAR2 IS
14671 hi NUMBER;
14672 lo NUMBER;
14673 m NUMBER;
14674 p VARCHAR2(2) := '-1';
14675 BEGIN
14676   lo := 1;
14677   hi := l_items_counter - 1;
14678   WHILE (lo <= hi) LOOP
14679     m := FLOOR((hi + lo)/2);
14680     IF (l_oid_mapping_tab(m).cle_id = p_id) THEN
14681       RETURN l_oid_mapping_tab(m).object1_id1;
14682     ELSIF (l_oid_mapping_tab(m).cle_id > p_id) THEN
14683       hi := m - 1;
14684     ELSE
14685       lo := m + 1;
14686     END IF;
14687   END LOOP;
14688   RETURN p;
14689 END;  /* find_oid_mapping_id */
14690 
14691 PROCEDURE sort_oid_mapping_tab IS
14692   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
14693   --a numtabtype;
14694   l_stack numtabtype;
14695   l_stack_index NUMBER := 0;
14696   N NUMBER;
14697   R NUMBER;
14698   L NUMBER;
14699   P NUMBER;
14700 
14701   W NUMBER;
14702   W2 VARCHAR2(150);
14703   X NUMBER;
14704   I NUMBER;
14705   J NUMBER;
14706 BEGIN
14707   IF (G_DEBUG_ENABLED = 'Y') THEN
14708     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
14709   END IF;
14710   NULL;
14711 
14712   N := l_items_counter - 1;
14713   IF (N < 2) THEN
14714     RETURN;
14715   END IF;
14716   l_stack_index := l_stack_index + 1;
14717   l_stack(l_stack_index) := 1;
14718   l_stack_index := l_stack_index + 1;
14719   l_stack(l_stack_index) := N;
14720 
14721   --dbms_output.put_line('l_stack_index=' || l_stack_index);
14722   WHILE l_stack_index > 0
14723   LOOP
14724     R := l_stack(l_stack_index);
14725     l_stack_index := l_stack_index - 1;
14726     L := l_stack(l_stack_index);
14727     l_stack_index := l_stack_index - 1;
14728     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
14729     WHILE 1=1
14730     LOOP -- loop until L >= R
14731       I := L;
14732       J := R;
14733       P := FLOOR((L+R)/2);
14734       --if (a(L) > a(P)) then
14735       IF (l_oid_mapping_tab(L).cle_id > l_oid_mapping_tab(P).cle_id)
14736       THEN
14737         W := l_oid_mapping_tab(L).cle_id;
14738         W2 := l_oid_mapping_tab(L).object1_id1;
14739         l_oid_mapping_tab(L).cle_id :=l_oid_mapping_tab(P).cle_id;
14740         l_oid_mapping_tab(L).object1_id1 :=l_oid_mapping_tab(P).object1_id1;
14741         l_oid_mapping_tab(P).cle_id := W;
14742         l_oid_mapping_tab(P).object1_id1 := W2;
14743       END IF;
14744       --if (a(L) > a(R)) then
14745       IF (l_oid_mapping_tab(L).cle_id > l_oid_mapping_tab(R).cle_id)
14746       THEN
14747         W := l_oid_mapping_tab(L).cle_id;
14748         W2 := l_oid_mapping_tab(L).object1_id1;
14749         l_oid_mapping_tab(L).cle_id :=l_oid_mapping_tab(R).cle_id;
14750         l_oid_mapping_tab(L).object1_id1 :=l_oid_mapping_tab(R).object1_id1;
14751         l_oid_mapping_tab(R).cle_id := W;
14752         l_oid_mapping_tab(R).object1_id1 := W2;
14753       END IF;
14754       --if (a(P) > a(R)) then
14755       IF (l_oid_mapping_tab(P).cle_id > l_oid_mapping_tab(R).cle_id)
14756       THEN
14757         W := l_oid_mapping_tab(P).cle_id;
14758         W2 := l_oid_mapping_tab(P).object1_id1;
14759         l_oid_mapping_tab(P).cle_id :=l_oid_mapping_tab(R).cle_id;
14760         l_oid_mapping_tab(P).object1_id1 :=l_oid_mapping_tab(R).object1_id1;
14761         l_oid_mapping_tab(R).cle_id := W;
14762         l_oid_mapping_tab(R).object1_id1 := W2;
14763       END IF;
14764       --X := a(P);
14765       X := l_oid_mapping_tab(P).cle_id;
14766       WHILE 1=1
14767       LOOP    -- until I > J
14768         --while (a(I) < X) loop
14769         WHILE (l_oid_mapping_tab(I).cle_id < X) LOOP
14770           I := I + 1;
14771         END LOOP;
14772         WHILE (X < l_oid_mapping_tab(J).cle_id) LOOP
14773           J := J - 1;
14774         END LOOP;
14775         IF (I <= J) THEN
14776           W := l_oid_mapping_tab(I).cle_id;
14777           W2 := l_oid_mapping_tab(I).object1_id1;
14778           l_oid_mapping_tab(I).cle_id :=l_oid_mapping_tab(J).cle_id;
14779           l_oid_mapping_tab(I).object1_id1 :=l_oid_mapping_tab(J).object1_id1;
14780           l_oid_mapping_tab(J).cle_id := W;
14781           l_oid_mapping_tab(J).object1_id1 := W2;
14782           I := I + 1;
14783           J := J - 1;
14784         END IF;
14785         EXIT WHEN I > J;
14786       END LOOP;
14787       IF (J - L < R - I) THEN
14788         IF (I < R) THEN
14789           --push(I); push(R);
14790           l_stack_index := l_stack_index + 1;
14791           l_stack(l_stack_index) := I;
14792           l_stack_index := l_stack_index + 1;
14793           l_stack(l_stack_index) := R;
14794           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
14795         END IF;
14796         R := J;
14797       ELSE
14798         IF (L < J) THEN
14799           --push(L); push(J);
14800           l_stack_index := l_stack_index + 1;
14801           l_stack(l_stack_index) := L;
14802           l_stack_index := l_stack_index + 1;
14803           l_stack(l_stack_index) := J;
14804           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
14805         END IF;
14806         L := I;
14807       END IF;
14808 
14809       EXIT WHEN (L >= R);
14810     END LOOP;
14811   END LOOP;
14812 
14813 EXCEPTION WHEN OTHERS THEN
14814 
14815   x_return_status := OKL_API.G_RET_STS_ERROR;
14816   /*OKL_API.set_message(p_app_name => 'OKL',
14817                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
14818                       p_token1 => 'ASSET_NUMBER',
14819                       p_token1_value => 'sort_oid_mapping_tab');*/
14820     /* DEBUG */
14821   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
14822       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
14823     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_oid_mapping_tab:l_oid_mapping_tab N=' || N || ' ...');
14824   END IF;
14825 
14826   --print array
14827   FOR i IN 1..N
14828   LOOP
14829     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
14830           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);
14831     END IF;
14832   END LOOP;
14833 
14834   RAISE OKC_API.G_EXCEPTION_ERROR;
14835 
14836 END;  /* sort_oid_mapping_tab */
14837 
14838 FUNCTION find_okc_k_items_rec(p_id IN NUMBER) RETURN l_okc_k_items_rec_type IS
14839 hi NUMBER;
14840 lo NUMBER;
14841 m NUMBER;
14842 l_dummy_rec l_okc_k_items_rec_type;
14843 BEGIN
14844   lo := 1;
14845   hi := l_okc_k_items_rec_counter - 1;
14846   WHILE (lo <= hi) LOOP
14847     m := FLOOR((hi + lo)/2);
14848     IF (l_okc_k_items_rec(m).id = p_id) THEN
14849       RETURN l_okc_k_items_rec(m);
14850     ELSIF (l_okc_k_items_rec(m).id > p_id) THEN
14851       hi := m - 1;
14852     ELSE
14853       lo := m + 1;
14854     END IF;
14855   END LOOP;
14856   l_dummy_rec.number_of_items := OKC_API.G_MISS_NUM;
14857   RETURN l_dummy_rec;
14858 END;  /* find_okc_k_items_rec */
14859 
14860 PROCEDURE sort_okc_k_items_rec IS
14861   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
14862   --a numtabtype;
14863   l_stack numtabtype;
14864   l_stack_index NUMBER := 0;
14865   N NUMBER;
14866   R NUMBER;
14867   L NUMBER;
14868   P NUMBER;
14869   W NUMBER;
14870   W2 NUMBER;
14871   W3 VARCHAR2(40);
14872   W4 VARCHAR2(200);
14873   X NUMBER;
14874   I NUMBER;
14875   J NUMBER;
14876 BEGIN
14877   IF (G_DEBUG_ENABLED = 'Y') THEN
14878     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
14879   END IF;
14880   NULL;
14881 
14882   N := l_okc_k_items_rec_counter - 1;
14883   IF (N < 2) THEN
14884     RETURN;
14885   END IF;
14886   l_stack_index := l_stack_index + 1;
14887   l_stack(l_stack_index) := 1;
14888   l_stack_index := l_stack_index + 1;
14889   l_stack(l_stack_index) := N;
14890 
14891   --dbms_output.put_line('l_stack_index=' || l_stack_index);
14892   WHILE l_stack_index > 0
14893   LOOP
14894     R := l_stack(l_stack_index);
14895     l_stack_index := l_stack_index - 1;
14896     L := l_stack(l_stack_index);
14897     l_stack_index := l_stack_index - 1;
14898     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
14899     WHILE 1=1
14900     LOOP -- loop until L >= R
14901       I := L;
14902       J := R;
14903       P := FLOOR((L+R)/2);
14904       --if (a(L) > a(P)) then
14905       IF (l_okc_k_items_rec(L).id > l_okc_k_items_rec(P).id)
14906       THEN
14907         W := l_okc_k_items_rec(L).id;
14908         W2 := l_okc_k_items_rec(L).number_of_items;
14909         W3 := l_okc_k_items_rec(L).object1_id1;
14910         W4 := l_okc_k_items_rec(L).object1_id2;
14911         l_okc_k_items_rec(L).id :=l_okc_k_items_rec(P).id;
14912         l_okc_k_items_rec(L).number_of_items :=l_okc_k_items_rec(P).number_of_items;
14913         l_okc_k_items_rec(L).object1_id1 :=l_okc_k_items_rec(P).object1_id1;
14914         l_okc_k_items_rec(L).object1_id2 :=l_okc_k_items_rec(P).object1_id2;
14915         l_okc_k_items_rec(P).id := W;
14916         l_okc_k_items_rec(P).number_of_items := W2;
14917         l_okc_k_items_rec(P).object1_id1 := W3;
14918         l_okc_k_items_rec(P).object1_id2 := W4;
14919       END IF;
14920       --if (a(L) > a(R)) then
14921       IF (l_okc_k_items_rec(L).id > l_okc_k_items_rec(R).id)
14922       THEN
14923         W := l_okc_k_items_rec(L).id;
14924         W2 := l_okc_k_items_rec(L).number_of_items;
14925         W3 := l_okc_k_items_rec(L).object1_id1;
14926         W4 := l_okc_k_items_rec(L).object1_id2;
14927         l_okc_k_items_rec(L).id :=l_okc_k_items_rec(R).id;
14928         l_okc_k_items_rec(L).number_of_items :=l_okc_k_items_rec(R).number_of_items;
14929         l_okc_k_items_rec(L).object1_id1 :=l_okc_k_items_rec(R).object1_id1;
14930         l_okc_k_items_rec(L).object1_id2 :=l_okc_k_items_rec(R).object1_id2;
14931         l_okc_k_items_rec(R).id := W;
14932         l_okc_k_items_rec(R).number_of_items := W2;
14933         l_okc_k_items_rec(R).object1_id1 := W3;
14934         l_okc_k_items_rec(R).object1_id2 := W4;
14935       END IF;
14936       --if (a(P) > a(R)) then
14937       IF (l_okc_k_items_rec(P).id > l_okc_k_items_rec(R).id)
14938       THEN
14939         W := l_okc_k_items_rec(P).id;
14940         W2 := l_okc_k_items_rec(P).number_of_items;
14941         W3 := l_okc_k_items_rec(P).object1_id1;
14942         W4 := l_okc_k_items_rec(P).object1_id2;
14943         l_okc_k_items_rec(P).id :=l_okc_k_items_rec(R).id;
14944         l_okc_k_items_rec(P).number_of_items :=l_okc_k_items_rec(R).number_of_items;
14945         l_okc_k_items_rec(P).object1_id1 :=l_okc_k_items_rec(R).object1_id1;
14946         l_okc_k_items_rec(P).object1_id2 :=l_okc_k_items_rec(R).object1_id2;
14947         l_okc_k_items_rec(R).id := W;
14948         l_okc_k_items_rec(R).number_of_items := W2;
14949         l_okc_k_items_rec(R).object1_id1 := W3;
14950         l_okc_k_items_rec(R).object1_id2 := W4;
14951       END IF;
14952       --X := a(P);
14953       X := l_okc_k_items_rec(P).id;
14954       WHILE 1=1
14955       LOOP    -- until I > J
14956         --while (a(I) < X) loop
14957         WHILE (l_okc_k_items_rec(I).id < X) LOOP
14958           I := I + 1;
14959         END LOOP;
14960         WHILE (X < l_okc_k_items_rec(J).id) LOOP
14961           J := J - 1;
14962         END LOOP;
14963         IF (I <= J) THEN
14964           W := l_okc_k_items_rec(I).id;
14965           W2 := l_okc_k_items_rec(I).number_of_items;
14966           W3 := l_okc_k_items_rec(I).object1_id1;
14967           W4 := l_okc_k_items_rec(I).object1_id2;
14968           l_okc_k_items_rec(I).id :=l_okc_k_items_rec(J).id;
14969           l_okc_k_items_rec(I).number_of_items :=l_okc_k_items_rec(J).number_of_items;
14970           l_okc_k_items_rec(I).object1_id1 :=l_okc_k_items_rec(J).object1_id1;
14971           l_okc_k_items_rec(I).object1_id2 :=l_okc_k_items_rec(J).object1_id2;
14972           l_okc_k_items_rec(J).id := W;
14973           l_okc_k_items_rec(J).number_of_items := W2;
14974           l_okc_k_items_rec(J).object1_id1 := W3;
14975           l_okc_k_items_rec(J).object1_id2 := W4;
14976           I := I + 1;
14977           J := J - 1;
14978         END IF;
14979         EXIT WHEN I > J;
14980       END LOOP;
14981       IF (J - L < R - I) THEN
14982         IF (I < R) THEN
14983           --push(I); push(R);
14984           l_stack_index := l_stack_index + 1;
14985           l_stack(l_stack_index) := I;
14986           l_stack_index := l_stack_index + 1;
14987           l_stack(l_stack_index) := R;
14988           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
14989         END IF;
14990         R := J;
14991       ELSE
14992         IF (L < J) THEN
14993           --push(L); push(J);
14994           l_stack_index := l_stack_index + 1;
14995           l_stack(l_stack_index) := L;
14996           l_stack_index := l_stack_index + 1;
14997           l_stack(l_stack_index) := J;
14998           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
14999         END IF;
15000         L := I;
15001       END IF;
15002 
15003       EXIT WHEN (L >= R);
15004     END LOOP;
15005   END LOOP;
15006   /*print('Now Printing okc_k_items_rec...');
15007   for i in 1..N
15008   loop
15009     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 );
15010   end loop;*/
15011 
15012 
15013 EXCEPTION WHEN OTHERS THEN
15014 
15015   x_return_status := OKL_API.G_RET_STS_ERROR;
15016   /*OKL_API.set_message(p_app_name => 'OKL',
15017                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
15018                       p_token1 => 'ASSET_NUMBER',
15019                       p_token1_value => 'sort_okc_k_items_rec');*/
15020     /* DEBUG */
15021   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15022       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
15023     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_okc_k_items_rec:l_okc_k_items_rec N=' || N || ' ...');
15024   END IF;
15025 
15026   --print array
15027   FOR i IN 1..N
15028   LOOP
15029     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15030           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_okc_k_items_rec('||i||')='
15031 	  || l_okc_k_items_rec(i).id || ':' || l_okc_k_items_rec(i).number_of_items || ':'
15032 	  || l_okc_k_items_rec(i).object1_id1 || ':' || l_okc_k_items_rec(i).object1_id2 );
15033     END IF;
15034   END LOOP;
15035 
15036   RAISE OKC_API.G_EXCEPTION_ERROR;
15037 
15038 END;  /* sort_okc_k_items_rec */
15039 
15040 
15041 
15042 PROCEDURE insert_okc_k_items (p_old_id IN okc_k_headers_b.id%TYPE,
15043                        p_new_id IN okc_k_headers_b.id%TYPE) IS
15044 CURSOR c16(p_id NUMBER) IS
15045 SELECT
15046      a.id, a.cle_id, a.chr_id,
15047      a.cle_id_for, a.dnz_chr_id, a.object1_id1,
15048      a.object1_id2, a.jtot_object1_code, a.uom_code,
15049      a.exception_yn, a.number_of_items, a.priced_item_yn,
15050      a.object_version_number, a.created_by, a.creation_date,
15051      a.last_updated_by, a.last_update_date, a.last_update_login,
15052      a.security_group_id, a.upg_orig_system_ref, a.upg_orig_system_ref_id,
15053      a.program_application_id, a.program_id, a.program_update_date,
15054      a.request_id, b.lse_id
15055 FROM okc_k_items a,
15056      okc_k_lines_b b
15057 WHERE a.dnz_chr_id = p_id
15058 AND   a.cle_id = b.id;
15059 
15060     TYPE l_ilse_id_type IS TABLE OF okc_k_lines_b.lse_id%TYPE INDEX BY BINARY_INTEGER;
15061     l_iid_tab2 l_iid_type;
15062     l_icle_id_tab2 l_icle_id_type;
15063     l_ichr_id_tab2 l_ichr_id_type;
15064     l_icle_id_for_tab2 l_icle_id_for_type;
15065     l_idnz_chr_id_tab2 l_idnz_chr_id_type;
15066     l_iobject1_id1_tab2 l_iobject1_id1_type;
15067     l_iobject1_id2_tab2 l_iobject1_id2_type;
15068     l_ijtot_object1_code_tab2 l_ijtot_object1_code_type;
15069     l_iuom_code_tab2 l_iuom_code_type;
15070     l_iexception_yn_tab2 l_iexception_yn_type;
15071     l_inumber_of_items_tab2 l_inumber_of_items_type;
15072     l_ipriced_item_yn_tab2 l_ipriced_item_yn_type;
15073     l_iobject_version_number_tab2 l_iobject_version_number_type;
15074     l_icreated_by_tab2 l_icreated_by_type;
15075     l_icreation_date_tab2 l_icreation_date_type;
15076     l_ilast_updated_by_tab2 l_ilast_updated_by_type;
15077     l_ilast_update_date_tab2 l_ilast_update_date_type;
15078     l_ilast_update_login_tab2 l_ilast_update_login_type;
15079     l_isecurity_group_id_tab2 l_isecurity_group_id_type;
15080     l_iupg_orig_system_ref_tab2 l_iupg_orig_system_ref_type;
15081     l_iupg_orig_system_ref_id_tab2 l_iupg_orig_system_ref_id_type;
15082     l_iprogram_application_id_tab2 l_iprogram_application_id_type;
15083     l_iprogram_id_tab2 l_iprogram_id_type;
15084     l_iprogram_update_date_tab2 l_iprogram_update_date_type;
15085     l_irequest_id_tab2 l_irequest_id_type;
15086     l_ilse_id_tab2 l_ilse_id_type;
15087 
15088     l_new_cle_id NUMBER;
15089     l_new_object1_id1 NUMBER;
15090 BEGIN
15091 
15092   OPEN c16(p_old_id);
15093   LOOP
15094     FETCH c16 bulk collect INTO
15095      l_iid_tab2, l_icle_id_tab2, l_ichr_id_tab2,
15096      l_icle_id_for_tab2, l_idnz_chr_id_tab2, l_iobject1_id1_tab2,
15097      l_iobject1_id2_tab2, l_ijtot_object1_code_tab2, l_iuom_code_tab2,
15098      l_iexception_yn_tab2, l_inumber_of_items_tab2, l_ipriced_item_yn_tab2,
15099      l_iobject_version_number_tab2, l_icreated_by_tab2, l_icreation_date_tab2,
15100      l_ilast_updated_by_tab2, l_ilast_update_date_tab2, l_ilast_update_login_tab2,
15101      l_isecurity_group_id_tab2, l_iupg_orig_system_ref_tab2, l_iupg_orig_system_ref_id_tab2,
15102      l_iprogram_application_id_tab2, l_iprogram_id_tab2, l_iprogram_update_date_tab2,
15103      l_irequest_id_tab2, l_ilse_id_tab2
15104     limit G_BULK_SIZE;
15105     EXIT WHEN l_iid_tab2.COUNT = 0;
15106     FOR i IN l_iid_tab2.first..l_iid_tab2.last
15107     LOOP
15108 
15109       l_iid_tab(l_items_counter) := l_iid_tab2(i);
15110       -- Change id
15111       l_iid_tab(l_items_counter) := okc_p_util.raw_to_number(sys_guid());
15112 
15113       l_icle_id_tab(l_items_counter) := l_icle_id_tab2(i);
15114       -- Change cle_id
15115       IF (l_icle_id_tab(l_items_counter) IS NOT NULL) THEN
15116         l_new_cle_id := find_mapping_id(l_icle_id_tab(l_items_counter));
15117         IF (l_new_cle_id = -1) THEN
15118           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15119                       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));
15120           END IF;
15121           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
15122         END IF;
15123         l_icle_id_tab(l_items_counter) := l_new_cle_id;
15124       END IF;
15125 
15126       l_ichr_id_tab(l_items_counter) := l_ichr_id_tab2(i);
15127       -- Change chr_id
15128       IF (l_ichr_id_tab(l_items_counter) IS NOT NULL) THEN
15129         l_ichr_id_tab(l_items_counter):= p_new_id;
15130       END IF;
15131 
15132       l_icle_id_for_tab(l_items_counter) := l_icle_id_for_tab2(i);
15133       -- Change cle_id_for ??? AKP
15134 
15135       l_idnz_chr_id_tab(l_items_counter) := l_idnz_chr_id_tab2(i);
15136       -- Change dnz_chr_id
15137       l_idnz_chr_id_tab(l_items_counter) := p_new_id;
15138 
15139       l_iobject1_id1_tab(l_items_counter) := l_iobject1_id1_tab2(i);
15140       -- Change object1_id1
15141       IF(l_ilse_id_tab2(i) IN (53, 49, 57)) THEN
15142         -- Bug 4891184
15143         IF (l_iobject1_id1_tab(l_items_counter) IS NOT NULL) THEN
15144         l_new_object1_id1 := find_mapping_id(l_iobject1_id1_tab(l_items_counter));
15145         IF (l_new_object1_id1 = -1) THEN
15146           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15147                       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));
15148           END IF;
15149           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
15150         END IF;
15151         l_iobject1_id1_tab(l_items_counter) := l_new_object1_id1;
15152         END IF;
15153       END IF;
15154       l_iobject1_id2_tab(l_items_counter) := l_iobject1_id2_tab2(i);
15155       -- Change object1_id1 and object1_id2
15156 
15157       IF (p_trans_type NOT IN ('OKL_REBOOK', 'OKL_RELEASE') AND
15158           l_ilse_id_tab2(i) IN (42, 45)) THEN
15159         l_iobject1_id1_tab(l_items_counter) := NULL;
15160         l_iobject1_id2_tab(l_items_counter) := NULL;
15161       END IF;
15162 
15163       -- Store cle_id to object1_id1 mapping (needed for business function)
15164       l_oid_mapping_tab(l_items_counter).cle_id := l_icle_id_tab(l_items_counter);
15165       l_oid_mapping_tab(l_items_counter).object1_id1 := l_iobject1_id1_tab(l_items_counter);
15166 
15167       l_ijtot_object1_code_tab(l_items_counter) := l_ijtot_object1_code_tab2(i);
15168       l_iuom_code_tab(l_items_counter) := l_iuom_code_tab2(i);
15169       l_iexception_yn_tab(l_items_counter) := l_iexception_yn_tab2(i);
15170       l_inumber_of_items_tab(l_items_counter) := l_inumber_of_items_tab2(i);
15171       l_ipriced_item_yn_tab(l_items_counter) := l_ipriced_item_yn_tab2(i);
15172       l_iobject_version_number_tab(l_items_counter) := l_iobject_version_number_tab2(i);
15173       l_icreated_by_tab(l_items_counter) := l_icreated_by_tab2(i);
15174       l_icreation_date_tab(l_items_counter) := l_icreation_date_tab2(i);
15175       l_ilast_updated_by_tab(l_items_counter) := l_ilast_updated_by_tab2(i);
15176       l_ilast_update_date_tab(l_items_counter) := l_ilast_update_date_tab2(i);
15177       l_ilast_update_login_tab(l_items_counter) := l_ilast_update_login_tab2(i);
15178       l_isecurity_group_id_tab(l_items_counter) := l_isecurity_group_id_tab2(i);
15179       l_iupg_orig_system_ref_tab(l_items_counter) := l_iupg_orig_system_ref_tab2(i);
15180       l_iupg_orig_system_ref_id_tab(l_items_counter) := l_iupg_orig_system_ref_id_tab2(i);
15181       l_iprogram_application_id_tab(l_items_counter) := l_iprogram_application_id_tab2(i);
15182       l_iprogram_id_tab(l_items_counter) := l_iprogram_id_tab2(i);
15183       l_iprogram_update_date_tab(l_items_counter) := l_iprogram_update_date_tab2(i);
15184       l_irequest_id_tab(l_items_counter) := l_irequest_id_tab2(i);
15185 
15186       l_okc_k_items_rec(l_okc_k_items_rec_counter).id := l_icle_id_tab(l_items_counter);
15187       l_okc_k_items_rec(l_okc_k_items_rec_counter).number_of_items := l_inumber_of_items_tab(l_items_counter);
15188       l_okc_k_items_rec(l_okc_k_items_rec_counter).object1_id1 := l_iobject1_id1_tab(l_items_counter);
15189       l_okc_k_items_rec(l_okc_k_items_rec_counter).object1_id2 := l_iobject1_id2_tab(l_items_counter);
15190       l_okc_k_items_rec_counter := l_okc_k_items_rec_counter + 1 ;
15191 
15192       l_items_counter := l_items_counter + 1;
15193     END LOOP;
15194   END LOOP;
15195   CLOSE c16;
15196   sort_oid_mapping_tab;
15197   sort_okc_k_items_rec;
15198 
15199   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15200       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);
15201   END IF;
15202   IF (l_items_counter > 1) THEN
15203     forall i IN l_iid_tab.first..l_iid_tab.last
15204      INSERT INTO okc_k_items (
15205        id, cle_id, chr_id,
15206        cle_id_for, dnz_chr_id, object1_id1,
15207        object1_id2, jtot_object1_code, uom_code,
15208        exception_yn, number_of_items, priced_item_yn,
15209        object_version_number, created_by, creation_date,
15210        last_updated_by, last_update_date, last_update_login,
15211        security_group_id, upg_orig_system_ref, upg_orig_system_ref_id,
15212        program_application_id, program_id, program_update_date,
15213        request_id
15214      ) VALUES (
15215        l_iid_tab(i), l_icle_id_tab(i), l_ichr_id_tab(i),
15216        l_icle_id_for_tab(i), l_idnz_chr_id_tab(i), l_iobject1_id1_tab(i),
15217        l_iobject1_id2_tab(i), l_ijtot_object1_code_tab(i), l_iuom_code_tab(i),
15218        l_iexception_yn_tab(i), l_inumber_of_items_tab(i), l_ipriced_item_yn_tab(i),
15219        1, l_icreated_by_tab(i), l_icreation_date_tab(i),
15220        l_ilast_updated_by_tab(i), l_ilast_update_date_tab(i), l_ilast_update_login_tab(i),
15221        l_isecurity_group_id_tab(i), l_iupg_orig_system_ref_tab(i), l_iupg_orig_system_ref_id_tab(i),
15222        l_iprogram_application_id_tab(i), l_iprogram_id_tab(i), l_iprogram_update_date_tab(i),
15223        l_irequest_id_tab(i)
15224      );
15225   END IF;
15226 
15227 EXCEPTION WHEN OTHERS THEN
15228 
15229   x_return_status := OKL_API.G_RET_STS_ERROR;
15230   /*OKL_API.set_message(p_app_name => 'OKL',
15231                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
15232                       p_token1 => 'ASSET_NUMBER',
15233                       p_token1_value => 'insert_okc_k_items');*/
15234     /* DEBUG */
15235   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15236       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
15237     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing insert_okc_k_items:l_iid_tab.count=' || l_iid_tab.COUNT || ' ...');
15238   END IF;
15239   IF (l_iid_tab.COUNT > 0) THEN
15240   FOR i IN l_iid_tab.first..l_iid_tab.last
15241   LOOP
15242     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15243           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_iid_tab('||i||')=' || l_iid_tab(i));
15244       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_icle_id_tab('||i||')=' || l_icle_id_tab(i));
15245       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ichr_id_tab('||i||')=' || l_ichr_id_tab(i));
15246       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_icle_id_for_tab('||i||')=' || l_icle_id_for_tab(i));
15247       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_idnz_chr_id_tab('||i||')=' || l_idnz_chr_id_tab(i));
15248       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_iobject1_id1_tab('||i||')=' || l_iobject1_id1_tab(i));
15249       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_iobject1_id2_tab('||i||')=' || l_iobject1_id2_tab(i));
15250       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ijtot_object1_code_tab('||i||')=' || l_ijtot_object1_code_tab(i));
15251       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_iuom_code_tab('||i||')=' || l_iuom_code_tab(i));
15252       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_iexception_yn_tab('||i||')=' || l_iexception_yn_tab(i));
15253       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_inumber_of_items_tab('||i||')=' || l_inumber_of_items_tab(i));
15254       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ipriced_item_yn_tab('||i||')=' || l_ipriced_item_yn_tab(i));
15255       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_isecurity_group_id_tab('||i||')=' || l_isecurity_group_id_tab(i));
15256       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));
15257       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));
15258       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_iprogram_application_id_tab('||i||')=' || l_iprogram_application_id_tab(i));
15259       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_iprogram_id_tab('||i||')=' || l_iprogram_id_tab(i));
15260       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_iprogram_update_date_tab('||i||')=' || l_iprogram_update_date_tab(i));
15261       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_irequest_id_tab('||i||')=' || l_irequest_id_tab(i));
15262     END IF;
15263   END LOOP;
15264   END IF;
15265 
15266   RAISE OKC_API.G_EXCEPTION_ERROR;
15267 
15268 END;  /* insert okc_k_items */
15269 
15270 PROCEDURE sort_trx_id_mapping_tab IS
15271   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
15272   --a numtabtype;
15273   l_stack numtabtype;
15274   l_stack_index NUMBER := 0;
15275   N NUMBER;
15276   R NUMBER;
15277   L NUMBER;
15278   P NUMBER;
15279   W NUMBER;
15280   W2 NUMBER;
15281   X NUMBER;
15282   I NUMBER;
15283   J NUMBER;
15284 BEGIN
15285   IF (G_DEBUG_ENABLED = 'Y') THEN
15286     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
15287   END IF;
15288   NULL;
15289 
15290   N := l_trx_assets_counter - 1;
15291   IF (N < 2) THEN
15292     RETURN;
15293   END IF;
15294   l_stack_index := l_stack_index + 1;
15295   l_stack(l_stack_index) := 1;
15296   l_stack_index := l_stack_index + 1;
15297   l_stack(l_stack_index) := N;
15298 
15299   --dbms_output.put_line('l_stack_index=' || l_stack_index);
15300   WHILE l_stack_index > 0
15301   LOOP
15302     R := l_stack(l_stack_index);
15303     l_stack_index := l_stack_index - 1;
15304     L := l_stack(l_stack_index);
15305     l_stack_index := l_stack_index - 1;
15306     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
15307     WHILE 1=1
15308     LOOP -- loop until L >= R
15309       I := L;
15310       J := R;
15311       P := FLOOR((L+R)/2);
15312       --if (a(L) > a(P)) then
15313       IF (l_trx_id_mapping_tab(L).old_id > l_trx_id_mapping_tab(P).old_id)
15314       THEN
15315         W := l_trx_id_mapping_tab(L).old_id;
15316         W2 := l_trx_id_mapping_tab(L).new_id;
15317         l_trx_id_mapping_tab(L).old_id :=l_trx_id_mapping_tab(P).old_id;
15318         l_trx_id_mapping_tab(L).new_id :=l_trx_id_mapping_tab(P).new_id;
15319         l_trx_id_mapping_tab(P).old_id := W;
15320         l_trx_id_mapping_tab(P).new_id := W2;
15321       END IF;
15322       --if (a(L) > a(R)) then
15323       IF (l_trx_id_mapping_tab(L).old_id > l_trx_id_mapping_tab(R).old_id)
15324       THEN
15325         W := l_trx_id_mapping_tab(L).old_id;
15326         W2 := l_trx_id_mapping_tab(L).new_id;
15327         l_trx_id_mapping_tab(L).old_id :=l_trx_id_mapping_tab(R).old_id;
15328         l_trx_id_mapping_tab(L).new_id :=l_trx_id_mapping_tab(R).new_id;
15329         l_trx_id_mapping_tab(R).old_id := W;
15330         l_trx_id_mapping_tab(R).new_id := W2;
15331       END IF;
15332       --if (a(P) > a(R)) then
15333       IF (l_trx_id_mapping_tab(P).old_id > l_trx_id_mapping_tab(R).old_id)
15334       THEN
15335         W := l_trx_id_mapping_tab(P).old_id;
15336         W2 := l_trx_id_mapping_tab(P).new_id;
15337         l_trx_id_mapping_tab(P).old_id :=l_trx_id_mapping_tab(R).old_id;
15338         l_trx_id_mapping_tab(P).new_id :=l_trx_id_mapping_tab(R).new_id;
15339         l_trx_id_mapping_tab(R).old_id := W;
15340         l_trx_id_mapping_tab(R).new_id := W2;
15341       END IF;
15342       --X := a(P);
15343       X := l_trx_id_mapping_tab(P).old_id;
15344       WHILE 1=1
15345       LOOP    -- until I > J
15346         --while (a(I) < X) loop
15347         WHILE (l_trx_id_mapping_tab(I).old_id < X) LOOP
15348           I := I + 1;
15349         END LOOP;
15350         WHILE (X < l_trx_id_mapping_tab(J).old_id) LOOP
15351           J := J - 1;
15352         END LOOP;
15353         IF (I <= J) THEN
15354           W := l_trx_id_mapping_tab(I).old_id;
15355           W2 := l_trx_id_mapping_tab(I).new_id;
15356           l_trx_id_mapping_tab(I).old_id :=l_trx_id_mapping_tab(J).old_id;
15357           l_trx_id_mapping_tab(I).new_id :=l_trx_id_mapping_tab(J).new_id;
15358           l_trx_id_mapping_tab(J).old_id := W;
15359           l_trx_id_mapping_tab(J).new_id := W2;
15360           I := I + 1;
15361           J := J - 1;
15362         END IF;
15363         EXIT WHEN I > J;
15364       END LOOP;
15365       IF (J - L < R - I) THEN
15366         IF (I < R) THEN
15367           --push(I); push(R);
15368           l_stack_index := l_stack_index + 1;
15369           l_stack(l_stack_index) := I;
15370           l_stack_index := l_stack_index + 1;
15371           l_stack(l_stack_index) := R;
15372           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
15373         END IF;
15374         R := J;
15375       ELSE
15376         IF (L < J) THEN
15377           --push(L); push(J);
15378           l_stack_index := l_stack_index + 1;
15379           l_stack(l_stack_index) := L;
15380           l_stack_index := l_stack_index + 1;
15381           l_stack(l_stack_index) := J;
15382           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
15383         END IF;
15384         L := I;
15385       END IF;
15386 
15387       EXIT WHEN (L >= R);
15388     END LOOP;
15389   END LOOP;
15390 
15391 EXCEPTION WHEN OTHERS THEN
15392 
15393   x_return_status := OKL_API.G_RET_STS_ERROR;
15394   /*OKL_API.set_message(p_app_name => 'OKL',
15395                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
15396                       p_token1 => 'ASSET_NUMBER',
15397                       p_token1_value => 'sort_trx_id_mapping_tab');*/
15398     /* DEBUG */
15399   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15400       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
15401     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_trx_id_mapping_tab:l_trx_id_mapping_tab N=' || N || ' ...');
15402   END IF;
15403 
15404   --print array
15405   FOR i IN 1..N
15406   LOOP
15407     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15408           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);
15409     END IF;
15410   END LOOP;
15411 
15412   RAISE OKC_API.G_EXCEPTION_ERROR;
15413 
15414 END;  /* sort_trx_id_mapping_tab */
15415 
15416 FUNCTION find_trx_mapping_id(p_id IN NUMBER) RETURN NUMBER IS
15417 hi NUMBER;
15418 lo NUMBER;
15419 m NUMBER;
15420 BEGIN
15421   lo := 1;
15422   hi := l_trx_assets_counter - 1;
15423   WHILE (lo <= hi) LOOP
15424     m := FLOOR((hi + lo)/2);
15425     IF (l_trx_id_mapping_tab(m).old_id = p_id) THEN
15426       RETURN l_trx_id_mapping_tab(m).new_id;
15427     ELSIF (l_trx_id_mapping_tab(m).old_id > p_id) THEN
15428       hi := m - 1;
15429     ELSE
15430       lo := m + 1;
15431     END IF;
15432   END LOOP;
15433   RETURN -1;
15434 END;  /* find_trx_mapping_id */
15435 
15436 
15437 PROCEDURE sort_trx_id_mapping_tab2 IS
15438   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
15439   --a numtabtype;
15440   l_stack numtabtype;
15441   l_stack_index NUMBER := 0;
15442   N NUMBER;
15443   R NUMBER;
15444   L NUMBER;
15445   P NUMBER;
15446   W NUMBER;
15447   W2 NUMBER;
15448   X NUMBER;
15449   I NUMBER;
15450   J NUMBER;
15451 BEGIN
15452   IF (G_DEBUG_ENABLED = 'Y') THEN
15453     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
15454   END IF;
15455   NULL;
15456 
15457   N := l_trx_assets_counter2 - 1;
15458   IF (N < 2) THEN
15459     RETURN;
15460   END IF;
15461   l_stack_index := l_stack_index + 1;
15462   l_stack(l_stack_index) := 1;
15463   l_stack_index := l_stack_index + 1;
15464   l_stack(l_stack_index) := N;
15465 
15466   --dbms_output.put_line('l_stack_index=' || l_stack_index);
15467   WHILE l_stack_index > 0
15468   LOOP
15469     R := l_stack(l_stack_index);
15470     l_stack_index := l_stack_index - 1;
15471     L := l_stack(l_stack_index);
15472     l_stack_index := l_stack_index - 1;
15473     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
15474     WHILE 1=1
15475     LOOP -- loop until L >= R
15476       I := L;
15477       J := R;
15478       P := FLOOR((L+R)/2);
15479       --if (a(L) > a(P)) then
15480       IF (l_trx_id_mapping_tab2(L).old_id > l_trx_id_mapping_tab2(P).old_id)
15481       THEN
15482         W := l_trx_id_mapping_tab2(L).old_id;
15483         W2 := l_trx_id_mapping_tab2(L).new_id;
15484         l_trx_id_mapping_tab2(L).old_id :=l_trx_id_mapping_tab2(P).old_id;
15485         l_trx_id_mapping_tab2(L).new_id :=l_trx_id_mapping_tab2(P).new_id;
15486         l_trx_id_mapping_tab2(P).old_id := W;
15487         l_trx_id_mapping_tab2(P).new_id := W2;
15488       END IF;
15489       --if (a(L) > a(R)) then
15490       IF (l_trx_id_mapping_tab2(L).old_id > l_trx_id_mapping_tab2(R).old_id)
15491       THEN
15492         W := l_trx_id_mapping_tab2(L).old_id;
15493         W2 := l_trx_id_mapping_tab2(L).new_id;
15494         l_trx_id_mapping_tab2(L).old_id :=l_trx_id_mapping_tab2(R).old_id;
15495         l_trx_id_mapping_tab2(L).new_id :=l_trx_id_mapping_tab2(R).new_id;
15496         l_trx_id_mapping_tab2(R).old_id := W;
15497         l_trx_id_mapping_tab2(R).new_id := W2;
15498       END IF;
15499       --if (a(P) > a(R)) then
15500       IF (l_trx_id_mapping_tab2(P).old_id > l_trx_id_mapping_tab2(R).old_id)
15501       THEN
15502         W := l_trx_id_mapping_tab2(P).old_id;
15503         W2 := l_trx_id_mapping_tab2(P).new_id;
15504         l_trx_id_mapping_tab2(P).old_id :=l_trx_id_mapping_tab2(R).old_id;
15505         l_trx_id_mapping_tab2(P).new_id :=l_trx_id_mapping_tab2(R).new_id;
15506         l_trx_id_mapping_tab2(R).old_id := W;
15507         l_trx_id_mapping_tab2(R).new_id := W2;
15508       END IF;
15509       --X := a(P);
15510       X := l_trx_id_mapping_tab2(P).old_id;
15511       WHILE 1=1
15512       LOOP    -- until I > J
15513         --while (a(I) < X) loop
15514         WHILE (l_trx_id_mapping_tab2(I).old_id < X) LOOP
15515           I := I + 1;
15516         END LOOP;
15517         WHILE (X < l_trx_id_mapping_tab2(J).old_id) LOOP
15518           J := J - 1;
15519         END LOOP;
15520         IF (I <= J) THEN
15521           W := l_trx_id_mapping_tab2(I).old_id;
15522           W2 := l_trx_id_mapping_tab2(I).new_id;
15523           l_trx_id_mapping_tab2(I).old_id :=l_trx_id_mapping_tab2(J).old_id;
15524           l_trx_id_mapping_tab2(I).new_id :=l_trx_id_mapping_tab2(J).new_id;
15525           l_trx_id_mapping_tab2(J).old_id := W;
15526           l_trx_id_mapping_tab2(J).new_id := W2;
15527           I := I + 1;
15528           J := J - 1;
15529         END IF;
15530         EXIT WHEN I > J;
15531       END LOOP;
15532       IF (J - L < R - I) THEN
15533         IF (I < R) THEN
15534           --push(I); push(R);
15535           l_stack_index := l_stack_index + 1;
15536           l_stack(l_stack_index) := I;
15537           l_stack_index := l_stack_index + 1;
15538           l_stack(l_stack_index) := R;
15539           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
15540         END IF;
15541         R := J;
15542       ELSE
15543         IF (L < J) THEN
15544           --push(L); push(J);
15545           l_stack_index := l_stack_index + 1;
15546           l_stack(l_stack_index) := L;
15547           l_stack_index := l_stack_index + 1;
15548           l_stack(l_stack_index) := J;
15549           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
15550         END IF;
15551         L := I;
15552       END IF;
15553 
15554       EXIT WHEN (L >= R);
15555     END LOOP;
15556   END LOOP;
15557 
15558 EXCEPTION WHEN OTHERS THEN
15559 
15560   x_return_status := OKL_API.G_RET_STS_ERROR;
15561   /*OKL_API.set_message(p_app_name => 'OKL',
15562                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
15563                       p_token1 => 'ASSET_NUMBER',
15564                       p_token1_value => 'sort_trx_id_mapping_tab2');*/
15565     /* DEBUG */
15566   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15567       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
15568     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_trx_id_mapping_tab2:l_trx_id_mapping_tab2 N=' || N || ' ...');
15569   END IF;
15570 
15571   --print array
15572   FOR i IN 1..N
15573   LOOP
15574     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15575           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);
15576     END IF;
15577   END LOOP;
15578 
15579   RAISE OKC_API.G_EXCEPTION_ERROR;
15580 
15581 END;  /* sort_trx_id_mapping_tab2 */
15582 
15583 FUNCTION find_trx_mapping_id2(p_id IN NUMBER) RETURN NUMBER IS
15584 hi NUMBER;
15585 lo NUMBER;
15586 m NUMBER;
15587 BEGIN
15588   lo := 1;
15589   hi := l_trx_assets_counter2 - 1;
15590   WHILE (lo <= hi) LOOP
15591     m := FLOOR((hi + lo)/2);
15592     IF (l_trx_id_mapping_tab2(m).old_id = p_id) THEN
15593       RETURN l_trx_id_mapping_tab2(m).new_id;
15594     ELSIF (l_trx_id_mapping_tab2(m).old_id > p_id) THEN
15595       hi := m - 1;
15596     ELSE
15597       lo := m + 1;
15598     END IF;
15599   END LOOP;
15600   RETURN -1;
15601 END;  /* find_trx_mapping_id2 */
15602 
15603 PROCEDURE sort_txl_id_mapping_tab IS
15604   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
15605   --a numtabtype;
15606   l_stack numtabtype;
15607   l_stack_index NUMBER := 0;
15608   N NUMBER;
15609   R NUMBER;
15610   L NUMBER;
15611   P NUMBER;
15612   W NUMBER;
15613   W2 NUMBER;
15614   X NUMBER;
15615   I NUMBER;
15616   J NUMBER;
15617 BEGIN
15618   IF (G_DEBUG_ENABLED = 'Y') THEN
15619     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
15620   END IF;
15621   NULL;
15622 
15623   N := l_txl_assets_b_counter - 1;
15624   IF (N < 2) THEN
15625     RETURN;
15626   END IF;
15627   l_stack_index := l_stack_index + 1;
15628   l_stack(l_stack_index) := 1;
15629   l_stack_index := l_stack_index + 1;
15630   l_stack(l_stack_index) := N;
15631 
15632   --dbms_output.put_line('l_stack_index=' || l_stack_index);
15633   WHILE l_stack_index > 0
15634   LOOP
15635     R := l_stack(l_stack_index);
15636     l_stack_index := l_stack_index - 1;
15637     L := l_stack(l_stack_index);
15638     l_stack_index := l_stack_index - 1;
15639     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
15640     WHILE 1=1
15641     LOOP -- loop until L >= R
15642       I := L;
15643       J := R;
15644       P := FLOOR((L+R)/2);
15645       --if (a(L) > a(P)) then
15646       IF (l_txl_id_mapping_tab(L).old_id > l_txl_id_mapping_tab(P).old_id)
15647       THEN
15648         W := l_txl_id_mapping_tab(L).old_id;
15649         W2 := l_txl_id_mapping_tab(L).new_id;
15650         l_txl_id_mapping_tab(L).old_id :=l_txl_id_mapping_tab(P).old_id;
15651         l_txl_id_mapping_tab(L).new_id :=l_txl_id_mapping_tab(P).new_id;
15652         l_txl_id_mapping_tab(P).old_id := W;
15653         l_txl_id_mapping_tab(P).new_id := W2;
15654       END IF;
15655       --if (a(L) > a(R)) then
15656       IF (l_txl_id_mapping_tab(L).old_id > l_txl_id_mapping_tab(R).old_id)
15657       THEN
15658         W := l_txl_id_mapping_tab(L).old_id;
15659         W2 := l_txl_id_mapping_tab(L).new_id;
15660         l_txl_id_mapping_tab(L).old_id :=l_txl_id_mapping_tab(R).old_id;
15661         l_txl_id_mapping_tab(L).new_id :=l_txl_id_mapping_tab(R).new_id;
15662         l_txl_id_mapping_tab(R).old_id := W;
15663         l_txl_id_mapping_tab(R).new_id := W2;
15664       END IF;
15665       --if (a(P) > a(R)) then
15666       IF (l_txl_id_mapping_tab(P).old_id > l_txl_id_mapping_tab(R).old_id)
15667       THEN
15668         W := l_txl_id_mapping_tab(P).old_id;
15669         W2 := l_txl_id_mapping_tab(P).new_id;
15670         l_txl_id_mapping_tab(P).old_id :=l_txl_id_mapping_tab(R).old_id;
15671         l_txl_id_mapping_tab(P).new_id :=l_txl_id_mapping_tab(R).new_id;
15672         l_txl_id_mapping_tab(R).old_id := W;
15673         l_txl_id_mapping_tab(R).new_id := W2;
15674       END IF;
15675       --X := a(P);
15676       X := l_txl_id_mapping_tab(P).old_id;
15677       WHILE 1=1
15678       LOOP    -- until I > J
15679         --while (a(I) < X) loop
15680         WHILE (l_txl_id_mapping_tab(I).old_id < X) LOOP
15681           I := I + 1;
15682         END LOOP;
15683         WHILE (X < l_txl_id_mapping_tab(J).old_id) LOOP
15684           J := J - 1;
15685         END LOOP;
15686         IF (I <= J) THEN
15687           W := l_txl_id_mapping_tab(I).old_id;
15688           W2 := l_txl_id_mapping_tab(I).new_id;
15689           l_txl_id_mapping_tab(I).old_id :=l_txl_id_mapping_tab(J).old_id;
15690           l_txl_id_mapping_tab(I).new_id :=l_txl_id_mapping_tab(J).new_id;
15691           l_txl_id_mapping_tab(J).old_id := W;
15692           l_txl_id_mapping_tab(J).new_id := W2;
15693           I := I + 1;
15694           J := J - 1;
15695         END IF;
15696         EXIT WHEN I > J;
15697       END LOOP;
15698       IF (J - L < R - I) THEN
15699         IF (I < R) THEN
15700           --push(I); push(R);
15701           l_stack_index := l_stack_index + 1;
15702           l_stack(l_stack_index) := I;
15703           l_stack_index := l_stack_index + 1;
15704           l_stack(l_stack_index) := R;
15705           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
15706         END IF;
15707         R := J;
15708       ELSE
15709         IF (L < J) THEN
15710           --push(L); push(J);
15711           l_stack_index := l_stack_index + 1;
15712           l_stack(l_stack_index) := L;
15713           l_stack_index := l_stack_index + 1;
15714           l_stack(l_stack_index) := J;
15715           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
15716         END IF;
15717         L := I;
15718       END IF;
15719 
15720       EXIT WHEN (L >= R);
15721     END LOOP;
15722   END LOOP;
15723 
15724 EXCEPTION WHEN OTHERS THEN
15725 
15726   x_return_status := OKL_API.G_RET_STS_ERROR;
15727   /*OKL_API.set_message(p_app_name => 'OKL',
15728                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
15729                       p_token1 => 'ASSET_NUMBER',
15730                       p_token1_value => 'sort_txl_id_mapping_tab');*/
15731     /* DEBUG */
15732   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15733       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
15734     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_txl_id_mapping_tab:l_txl_id_mapping_tab N=' || N || ' ...');
15735   END IF;
15736 
15737   --print array
15738   FOR i IN 1..N
15739   LOOP
15740     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15741           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);
15742     END IF;
15743   END LOOP;
15744 
15745   RAISE OKC_API.G_EXCEPTION_ERROR;
15746 
15747 END;  /* sort_txl_id_mapping_tab */
15748 
15749 FUNCTION find_txl_mapping_id(p_id IN NUMBER) RETURN NUMBER IS
15750 hi NUMBER;
15751 lo NUMBER;
15752 m NUMBER;
15753 BEGIN
15754   lo := 1;
15755   hi := l_txl_assets_b_counter - 1;
15756   WHILE (lo <= hi) LOOP
15757     m := FLOOR((hi + lo)/2);
15758     IF (l_txl_id_mapping_tab(m).old_id = p_id) THEN
15759       RETURN l_txl_id_mapping_tab(m).new_id;
15760     ELSIF (l_txl_id_mapping_tab(m).old_id > p_id) THEN
15761       hi := m - 1;
15762     ELSE
15763       lo := m + 1;
15764     END IF;
15765   END LOOP;
15766   RETURN -1;
15767 END;  /* find_txl_mapping_id */
15768 
15769 PROCEDURE insert_okl_txl_assets_tl(p_old_id IN okl_txl_assets_b.id%TYPE,
15770                                    p_new_id IN okl_txl_assets_b.id%TYPE,
15771                                    p_flush IN VARCHAR2 ) IS
15772 CURSOR c19(p_id NUMBER) IS
15773 SELECT
15774      id, LANGUAGE, source_lang,
15775      sfwt_flag, description, created_by,
15776      creation_date, last_updated_by, last_update_date,
15777      last_update_login
15778 FROM okl_txl_assets_tl
15779 WHERE id = p_id;
15780 
15781     l_tlid_tab2 l_tlid_type;
15782     l_tllanguage_tab2 l_tllanguage_type;
15783     l_tlsource_lang_tab2 l_tlsource_lang_type;
15784     l_tlsfwt_flag_tab2 l_tlsfwt_flag_type;
15785     l_tldescription_tab2 l_tldescription_type;
15786     l_tlcreated_by_tab2 l_tlcreated_by_type;
15787     l_tlcreation_date_tab2 l_tlcreation_date_type;
15788     l_tllast_updated_by_tab2 l_tllast_updated_by_type;
15789     l_tllast_update_date_tab2 l_tllast_update_date_type;
15790     l_tllast_update_login_tab2 l_tllast_update_login_type;
15791 
15792 BEGIN
15793   IF (G_DEBUG_ENABLED = 'Y') THEN
15794     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
15795   END IF;
15796   OPEN c19(p_old_id);
15797   LOOP
15798     FETCH c19 bulk collect INTO
15799      l_tlid_tab2, l_tllanguage_tab2, l_tlsource_lang_tab2,
15800      l_tlsfwt_flag_tab2, l_tldescription_tab2, l_tlcreated_by_tab2,
15801      l_tlcreation_date_tab2, l_tllast_updated_by_tab2, l_tllast_update_date_tab2,
15802      l_tllast_update_login_tab2
15803     limit G_BULK_SIZE;
15804     EXIT WHEN l_tlid_tab2.COUNT=0;
15805     FOR i IN l_tlid_tab2.first..l_tlid_tab2.last
15806     LOOP
15807 
15808       l_tlid_tab(l_txl_assets_tl_counter) := l_tlid_tab2(i);
15809       -- Change id
15810       l_tlid_tab(l_txl_assets_tl_counter) := p_new_id;
15811 
15812       l_tllanguage_tab(l_txl_assets_tl_counter) := l_tllanguage_tab2(i);
15813       l_tlsource_lang_tab(l_txl_assets_tl_counter) := l_tlsource_lang_tab2(i);
15814       l_tlsfwt_flag_tab(l_txl_assets_tl_counter) := l_tlsfwt_flag_tab2(i);
15815       l_tldescription_tab(l_txl_assets_tl_counter) := l_tldescription_tab2(i);
15816       l_tlcreated_by_tab(l_txl_assets_tl_counter) := l_tlcreated_by_tab2(i);
15817       l_tlcreation_date_tab(l_txl_assets_tl_counter) := l_tlcreation_date_tab2(i);
15818       l_tllast_updated_by_tab(l_txl_assets_tl_counter) := l_tllast_updated_by_tab2(i);
15819       l_tllast_update_date_tab(l_txl_assets_tl_counter) := l_tllast_update_date_tab2(i);
15820       l_tllast_update_login_tab(l_txl_assets_tl_counter) := l_tllast_update_login_tab2(i);
15821 
15822       l_txl_assets_tl_counter := l_txl_assets_tl_counter + 1;
15823 
15824     END LOOP;
15825   END LOOP;
15826   CLOSE c19;
15827 
15828   IF (p_flush = 'Y') THEN
15829     IF (l_txl_assets_tl_counter > 1) THEN
15830       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15831               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);
15832       END IF;
15833       forall i IN l_tlid_tab.first..l_tlid_tab.last
15834         INSERT INTO okl_txl_assets_tl (
15835          id, LANGUAGE, source_lang,
15836          sfwt_flag, description, created_by,
15837          creation_date, last_updated_by, last_update_date,
15838          last_update_login
15839         ) VALUES (
15840          l_tlid_tab(i), l_tllanguage_tab(i), l_tlsource_lang_tab(i),
15841          l_tlsfwt_flag_tab(i), l_tldescription_tab(i), l_created_by,
15842          SYSDATE, l_last_updated_by, SYSDATE,
15843          l_last_update_login
15844         );
15845     END IF;
15846   END IF;
15847 
15848 EXCEPTION WHEN OTHERS THEN
15849 
15850   x_return_status := OKL_API.G_RET_STS_ERROR;
15851   /*OKL_API.set_message(p_app_name => 'OKL',
15852                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
15853                       p_token1 => 'ASSET_NUMBER',
15854                       p_token1_value => 'insert_okl_txl_assets_tl');*/
15855     /* DEBUG */
15856   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15857       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
15858     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 || ' ...');
15859   END IF;
15860   IF (l_tlid_tab.COUNT > 0) THEN
15861   FOR i IN l_tlid_tab.first..l_tlid_tab.last
15862   LOOP
15863     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15864           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tlid_tab('||i||')=' || l_tlid_tab(i));
15865       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tllanguage_tab('||i||')=' || l_tllanguage_tab(i));
15866       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tlsource_lang_tab('||i||')=' || l_tlsource_lang_tab(i));
15867       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tlsfwt_flag_tab('||i||')=' || l_tlsfwt_flag_tab(i));
15868       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tldescription_tab('||i||')=' || l_tldescription_tab(i));
15869     END IF;
15870   END LOOP;
15871   END IF;
15872 
15873   RAISE OKC_API.G_EXCEPTION_ERROR;
15874 
15875 END;  /* insert_okl_txl_assets_tl */
15876 
15877 PROCEDURE insert_okl_txd_assets_tl(p_old_id IN okc_k_headers_b.id%TYPE,
15878                                    p_new_id IN okc_k_headers_b.id%TYPE,
15879                                    p_flush IN VARCHAR2) IS
15880 CURSOR c21(p_id NUMBER) IS
15881 SELECT
15882      id, LANGUAGE, source_lang,
15883      sfwt_flag, description, created_by,
15884      creation_date, last_updated_by, last_update_date,
15885      last_update_login
15886 FROM okl_txd_assets_tl
15887 WHERE id = p_id
15888 AND id IN (
15889   SELECT b.id FROM okl_txd_assets_b b, okl_txl_assets_b c
15890   WHERE b.id = p_id
15891   AND   b.tal_id = c.id
15892   AND   c.dnz_khr_id = p_chr_id
15893 );
15894 
15895     l_dlid_tab2 l_dlid_type;
15896     l_dllanguage_tab2 l_dllanguage_type;
15897     l_dlsource_lang_tab2 l_dlsource_lang_type;
15898     l_dlsfwt_flag_tab2 l_dlsfwt_flag_type;
15899     l_dldescription_tab2 l_dldescription_type;
15900     l_dlcreated_by_tab2 l_dlcreated_by_type;
15901     l_dlcreation_date_tab2 l_dlcreation_date_type;
15902     l_dllast_updated_by_tab2 l_dllast_updated_by_type;
15903     l_dllast_update_date_tab2 l_dllast_update_date_type;
15904     l_dllast_update_login_tab2 l_dllast_update_login_type;
15905 
15906 BEGIN
15907   IF (G_DEBUG_ENABLED = 'Y') THEN
15908     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
15909   END IF;
15910   OPEN c21(p_old_id);
15911   LOOP
15912     FETCH c21 bulk collect INTO
15913       l_dlid_tab2, l_dllanguage_tab2, l_dlsource_lang_tab2,
15914       l_dlsfwt_flag_tab2, l_dldescription_tab2, l_dlcreated_by_tab2,
15915       l_dlcreation_date_tab2, l_dllast_updated_by_tab2, l_dllast_update_date_tab2,
15916       l_dllast_update_login_tab2
15917     limit G_BULK_SIZE;
15918     EXIT WHEN l_dlid_tab2.COUNT = 0;
15919     FOR i IN l_dlid_tab2.first..l_dlid_tab2.last
15920     LOOP
15921 
15922       l_dlid_tab(l_txd_assets_tl_counter) := l_dlid_tab2(i);
15923       -- Change id
15924       l_dlid_tab(l_txd_assets_tl_counter) := p_new_id;
15925 
15926       l_dllanguage_tab(l_txd_assets_tl_counter) := l_dllanguage_tab2(i);
15927       l_dlsource_lang_tab(l_txd_assets_tl_counter) := l_dlsource_lang_tab2(i);
15928       l_dlsfwt_flag_tab(l_txd_assets_tl_counter) := l_dlsfwt_flag_tab2(i);
15929       l_dldescription_tab(l_txd_assets_tl_counter) := l_dldescription_tab2(i);
15930       l_dlcreated_by_tab(l_txd_assets_tl_counter) := l_dlcreated_by_tab2(i);
15931       l_dlcreation_date_tab(l_txd_assets_tl_counter) := l_dlcreation_date_tab2(i);
15932       l_dllast_updated_by_tab(l_txd_assets_tl_counter) := l_dllast_updated_by_tab2(i);
15933       l_dllast_update_date_tab(l_txd_assets_tl_counter) := l_dllast_update_date_tab2(i);
15934       l_dllast_update_login_tab(l_txd_assets_tl_counter) := l_dllast_update_login_tab2(i);
15935 
15936       l_txd_assets_tl_counter := l_txd_assets_tl_counter + 1;
15937 
15938     END LOOP;
15939   END LOOP;
15940   CLOSE c21;
15941   IF (p_flush = 'Y') THEN
15942     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15943           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);
15944     END IF;
15945     IF (l_txd_assets_tl_counter > 1) THEN
15946       forall i IN l_dlid_tab.first..l_dlid_tab.last
15947       INSERT INTO okl_txd_assets_tl (
15948        id, LANGUAGE, source_lang,
15949        sfwt_flag, description, created_by,
15950        creation_date, last_updated_by, last_update_date,
15951        last_update_login
15952       ) VALUES (
15953        l_dlid_tab(i), l_dllanguage_tab(i), l_dlsource_lang_tab(i),
15954        l_dlsfwt_flag_tab(i), l_dldescription_tab(i), l_created_by,
15955        SYSDATE, l_last_updated_by, SYSDATE,
15956        l_last_update_login
15957       );
15958     END IF;
15959   END IF;
15960 EXCEPTION WHEN OTHERS THEN
15961 
15962   x_return_status := OKL_API.G_RET_STS_ERROR;
15963   /*OKL_API.set_message(p_app_name => 'OKL',
15964                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
15965                       p_token1 => 'ASSET_NUMBER',
15966                       p_token1_value => 'insert_okl_txd_assets_tl');*/
15967     /* DEBUG */
15968   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15969       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
15970     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 || ' ...');
15971   END IF;
15972   IF (l_dlid_tab.COUNT > 0) THEN
15973   FOR i IN l_dlid_tab.first..l_dlid_tab.last
15974   LOOP
15975     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
15976           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dlid_tab('||i||')=' || l_dlid_tab(i));
15977       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dllanguage_tab('||i||')=' || l_dllanguage_tab(i));
15978       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dlsource_lang_tab('||i||')=' || l_dlsource_lang_tab(i));
15979       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dlsfwt_flag_tab('||i||')=' || l_dlsfwt_flag_tab(i));
15980       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dldescription_tab('||i||')=' || l_dldescription_tab(i));
15981     END IF;
15982   END LOOP;
15983   END IF;
15984 
15985   RAISE OKC_API.G_EXCEPTION_ERROR;
15986 
15987 END;  /* insert_okl_txd_assets_tl */
15988 
15989 PROCEDURE insert_okl_txd_assets_b(p_old_id IN okc_k_headers_b.id%TYPE,
15990                                   p_new_id IN okc_k_headers_b.id%TYPE) IS
15991 CURSOR c20(p_id NUMBER) IS
15992 SELECT
15993      id, object_version_number, tal_id,
15994      target_kle_id, line_detail_number, asset_number,
15995      quantity, cost, tax_book,
15996      life_in_months_tax, deprn_method_tax, deprn_rate_tax,
15997      salvage_value, split_percent, inventory_item_id,
15998      attribute_category, attribute1, attribute2,
15999      attribute3, attribute4, attribute5,
16000      attribute6, attribute7, attribute8,
16001      attribute9, attribute10, attribute11,
16002      attribute12, attribute13, attribute14,
16003      attribute15, created_by, creation_date,
16004      last_updated_by, last_update_date, last_update_login,
16005      currency_code, currency_conversion_type, currency_conversion_rate,
16006      currency_conversion_date
16007 FROM okl_txd_assets_b
16008 WHERE tal_id IN (
16009               SELECT a.id
16010               FROM okl_txl_assets_b a,
16011                         okc_k_lines_b b,
16012                         okc_k_items c
16013                  WHERE  a.dnz_khr_id = p_id
16014                  AND    b.dnz_chr_id = p_id
16015                  AND    c.dnz_chr_id = p_id
16016                  AND    b.lse_id = 42
16017                  AND    a.kle_id = b.id
16018                  AND    a.kle_id = c.cle_id
16019                  AND    c.object1_id1 IS NULL
16020                  AND    c.object1_id2 IS NULL
16021             );
16022 
16023     l_dbid_tab2 l_dbid_type;
16024     l_dbobject_version_number_tab2 l_dbobject_version_number_type;
16025     l_dbtal_id_tab2 l_dbtal_id_type;
16026     l_dbtarget_kle_id_tab2 l_dbtarget_kle_id_type;
16027     l_dbline_detail_number_tab2 l_dbline_detail_number_type;
16028     l_dbasset_number_tab2 l_dbasset_number_type;
16029     l_dbquantity_tab2 l_dbquantity_type;
16030     l_dbcost_tab2 l_dbcost_type;
16031     l_dbtax_book_tab2 l_dbtax_book_type;
16032     l_dblife_in_months_tax_tab2 l_dblife_in_months_tax_type;
16033     l_dbdeprn_method_tax_tab2 l_dbdeprn_method_tax_type;
16034     l_dbdeprn_rate_tax_tab2 l_dbdeprn_rate_tax_type;
16035     l_dbsalvage_value_tab2 l_dbsalvage_value_type;
16036     l_dbsplit_percent_tab2 l_dbsplit_percent_type;
16037     l_dbinventory_item_id_tab2 l_dbinventory_item_id_type;
16038     l_dbattribute_category_tab2 l_dbattribute_category_type;
16039     l_dbattribute1_tab2 l_dbattribute1_type;
16040     l_dbattribute2_tab2 l_dbattribute2_type;
16041     l_dbattribute3_tab2 l_dbattribute3_type;
16042     l_dbattribute4_tab2 l_dbattribute4_type;
16043     l_dbattribute5_tab2 l_dbattribute5_type;
16044     l_dbattribute6_tab2 l_dbattribute6_type;
16045     l_dbattribute7_tab2 l_dbattribute7_type;
16046     l_dbattribute8_tab2 l_dbattribute8_type;
16047     l_dbattribute9_tab2 l_dbattribute9_type;
16048     l_dbattribute10_tab2 l_dbattribute10_type;
16049     l_dbattribute11_tab2 l_dbattribute11_type;
16050     l_dbattribute12_tab2 l_dbattribute12_type;
16051     l_dbattribute13_tab2 l_dbattribute13_type;
16052     l_dbattribute14_tab2 l_dbattribute14_type;
16053     l_dbattribute15_tab2 l_dbattribute15_type;
16054     l_dbcreated_by_tab2 l_dbcreated_by_type;
16055     l_dbcreation_date_tab2 l_dbcreation_date_type;
16056     l_dblast_updated_by_tab2 l_dblast_updated_by_type;
16057     l_dblast_update_date_tab2 l_dblast_update_date_type;
16058     l_dblast_update_login_tab2 l_dblast_update_login_type;
16059     l_dbcurrency_code_tab2 l_dbcurrency_code_type;
16060     l_dbcurrency_convers_type_tab2 l_dbcurrency_convers_type_type;
16061     l_dbcurrency_convers_rate_tab2 l_dbcurrency_convers_rate_type;
16062     l_dbcurrency_convers_date_tab2 l_dbcurrency_convers_date_type;
16063 
16064     l_new_tal_id NUMBER;
16065     l_new_kle_id NUMBER;
16066 
16067 BEGIN
16068   IF (G_DEBUG_ENABLED = 'Y') THEN
16069     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
16070   END IF;
16071   OPEN c20(p_old_id);
16072   LOOP
16073     FETCH c20 bulk collect INTO
16074       l_dbid_tab2, l_dbobject_version_number_tab2, l_dbtal_id_tab2,
16075       l_dbtarget_kle_id_tab2, l_dbline_detail_number_tab2, l_dbasset_number_tab2,
16076       l_dbquantity_tab2, l_dbcost_tab2, l_dbtax_book_tab2,
16077       l_dblife_in_months_tax_tab2, l_dbdeprn_method_tax_tab2, l_dbdeprn_rate_tax_tab2,
16078       l_dbsalvage_value_tab2, l_dbsplit_percent_tab2, l_dbinventory_item_id_tab2,
16079       l_dbattribute_category_tab2, l_dbattribute1_tab2, l_dbattribute2_tab2,
16080       l_dbattribute3_tab2, l_dbattribute4_tab2, l_dbattribute5_tab2,
16081       l_dbattribute6_tab2, l_dbattribute7_tab2, l_dbattribute8_tab2,
16082       l_dbattribute9_tab2, l_dbattribute10_tab2, l_dbattribute11_tab2,
16083       l_dbattribute12_tab2, l_dbattribute13_tab2, l_dbattribute14_tab2,
16084       l_dbattribute15_tab2, l_dbcreated_by_tab2, l_dbcreation_date_tab2,
16085       l_dblast_updated_by_tab2, l_dblast_update_date_tab2, l_dblast_update_login_tab2,
16086       l_dbcurrency_code_tab2, l_dbcurrency_convers_type_tab2, l_dbcurrency_convers_rate_tab2,
16087       l_dbcurrency_convers_date_tab2
16088     limit G_BULK_SIZE;
16089     EXIT WHEN l_dbid_tab2.COUNT = 0;
16090     FOR i IN l_dbid_tab2.first..l_dbid_tab2.last
16091     LOOP
16092 
16093       l_dbid_tab3(l_txd_assets_b_counter) := l_dbid_tab2(i);
16094       l_dbid_tab(l_txd_assets_b_counter) := l_dbid_tab2(i);
16095       -- Change id
16096       l_dbid_tab(l_txd_assets_b_counter) := okc_p_util.raw_to_number(sys_guid());
16097 
16098       l_dbobject_version_number_tab(l_txd_assets_b_counter) := l_dbobject_version_number_tab2(i);
16099       l_dbtal_id_tab(l_txd_assets_b_counter) := l_dbtal_id_tab2(i);
16100       -- Change tal_id
16101       l_new_tal_id := find_txl_mapping_id(l_dbtal_id_tab(l_txd_assets_b_counter));
16102       l_dbtal_id_tab(l_txd_assets_b_counter) := l_new_tal_id;
16103 
16104       l_dbtarget_kle_id_tab(l_txd_assets_b_counter) := l_dbtarget_kle_id_tab2(i);
16105       -- Change target_kle_id ??? AKP
16106       --l_new_kle_id := find_mapping_id(l_dbtarget_kle_id_tab(l_txd_assets_b_counter));
16107       --l_dbtarget_kle_id_tab(l_txd_assets_b_counter) := l_new_kle_id;
16108       l_dbtarget_kle_id_tab(l_txd_assets_b_counter) := NULL;
16109 
16110       l_dbline_detail_number_tab(l_txd_assets_b_counter) := l_dbline_detail_number_tab2(i);
16111       l_dbasset_number_tab(l_txd_assets_b_counter) := l_dbasset_number_tab2(i);
16112       l_dbquantity_tab(l_txd_assets_b_counter) := l_dbquantity_tab2(i);
16113       l_dbcost_tab(l_txd_assets_b_counter) := l_dbcost_tab2(i);
16114       l_dbtax_book_tab(l_txd_assets_b_counter) := l_dbtax_book_tab2(i);
16115       l_dblife_in_months_tax_tab(l_txd_assets_b_counter) := l_dblife_in_months_tax_tab2(i);
16116       l_dbdeprn_method_tax_tab(l_txd_assets_b_counter) := l_dbdeprn_method_tax_tab2(i);
16117       l_dbdeprn_rate_tax_tab(l_txd_assets_b_counter) := l_dbdeprn_rate_tax_tab2(i);
16118       l_dbsalvage_value_tab(l_txd_assets_b_counter) := l_dbsalvage_value_tab2(i);
16119       l_dbsplit_percent_tab(l_txd_assets_b_counter) := l_dbsplit_percent_tab2(i);
16120       l_dbinventory_item_id_tab(l_txd_assets_b_counter) := l_dbinventory_item_id_tab2(i);
16121       l_dbattribute_category_tab(l_txd_assets_b_counter) := l_dbattribute_category_tab2(i);
16122       l_dbattribute1_tab(l_txd_assets_b_counter) := l_dbattribute1_tab2(i);
16123       l_dbattribute2_tab(l_txd_assets_b_counter) := l_dbattribute2_tab2(i);
16124       l_dbattribute3_tab(l_txd_assets_b_counter) := l_dbattribute3_tab2(i);
16125       l_dbattribute4_tab(l_txd_assets_b_counter) := l_dbattribute4_tab2(i);
16126       l_dbattribute5_tab(l_txd_assets_b_counter) := l_dbattribute5_tab2(i);
16127       l_dbattribute6_tab(l_txd_assets_b_counter) := l_dbattribute6_tab2(i);
16128       l_dbattribute7_tab(l_txd_assets_b_counter) := l_dbattribute7_tab2(i);
16129       l_dbattribute8_tab(l_txd_assets_b_counter) := l_dbattribute8_tab2(i);
16130       l_dbattribute9_tab(l_txd_assets_b_counter) := l_dbattribute9_tab2(i);
16131       l_dbattribute10_tab(l_txd_assets_b_counter) := l_dbattribute10_tab2(i);
16132       l_dbattribute11_tab(l_txd_assets_b_counter) := l_dbattribute11_tab2(i);
16133       l_dbattribute12_tab(l_txd_assets_b_counter) := l_dbattribute12_tab2(i);
16134       l_dbattribute13_tab(l_txd_assets_b_counter) := l_dbattribute13_tab2(i);
16135       l_dbattribute14_tab(l_txd_assets_b_counter) := l_dbattribute14_tab2(i);
16136       l_dbattribute15_tab(l_txd_assets_b_counter) := l_dbattribute15_tab2(i);
16137       l_dbcreated_by_tab(l_txd_assets_b_counter) := l_dbcreated_by_tab2(i);
16138       l_dbcreation_date_tab(l_txd_assets_b_counter) := l_dbcreation_date_tab2(i);
16139       l_dblast_updated_by_tab(l_txd_assets_b_counter) := l_dblast_updated_by_tab2(i);
16140       l_dblast_update_date_tab(l_txd_assets_b_counter) := l_dblast_update_date_tab2(i);
16141       l_dblast_update_login_tab(l_txd_assets_b_counter) := l_dblast_update_login_tab2(i);
16142       /*l_dbcurrency_code_tab(l_txd_assets_b_counter) := l_dbcurrency_code_tab2(i);
16143       l_dbcurrency_convers_type_tab(l_txd_assets_b_counter) := l_dbcurrency_convers_type_tab2(i);
16144       l_dbcurrency_convers_rate_tab(l_txd_assets_b_counter) := l_dbcurrency_convers_rate_tab2(i);
16145       l_dbcurrency_convers_date_tab(l_txd_assets_b_counter) := l_dbcurrency_convers_date_tab2(i); */
16146       -- AKP: Default the following four from the contract header
16147       l_dbcurrency_code_tab(l_txd_assets_b_counter) := l_contract_currency;
16148       l_dbcurrency_convers_type_tab(l_txd_assets_b_counter) := l_conversion_type;
16149       l_dbcurrency_convers_rate_tab(l_txd_assets_b_counter) := l_conversion_rate;
16150       l_dbcurrency_convers_date_tab(l_txd_assets_b_counter) := l_conversion_rate_date;
16151 
16152       l_txd_assets_b_counter := l_txd_assets_b_counter + 1;
16153 
16154     END LOOP;
16155   END LOOP;
16156   CLOSE c20;
16157   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16158       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);
16159   END IF;
16160   IF (l_txd_assets_b_counter > 1) THEN
16161     forall i IN l_dbid_tab.first..l_dbid_tab.last
16162     INSERT INTO okl_txd_assets_b (
16163      id, object_version_number, tal_id,
16164      target_kle_id, line_detail_number, asset_number,
16165      quantity, cost, tax_book,
16166      life_in_months_tax, deprn_method_tax, deprn_rate_tax,
16167      salvage_value, split_percent, inventory_item_id,
16168      attribute_category, attribute1, attribute2,
16169      attribute3, attribute4, attribute5,
16170      attribute6, attribute7, attribute8,
16171      attribute9, attribute10, attribute11,
16172      attribute12, attribute13, attribute14,
16173      attribute15, created_by, creation_date,
16174      last_updated_by, last_update_date, last_update_login,
16175      currency_code, currency_conversion_type, currency_conversion_rate,
16176      currency_conversion_date
16177     ) VALUES (
16178      l_dbid_tab(i), 1, l_dbtal_id_tab(i),
16179      l_dbtarget_kle_id_tab(i), l_dbline_detail_number_tab(i), l_dbasset_number_tab(i),
16180      l_dbquantity_tab(i), l_dbcost_tab(i), l_dbtax_book_tab(i),
16181      l_dblife_in_months_tax_tab(i), l_dbdeprn_method_tax_tab(i), l_dbdeprn_rate_tax_tab(i),
16182      l_dbsalvage_value_tab(i), l_dbsplit_percent_tab(i), l_dbinventory_item_id_tab(i),
16183      l_dbattribute_category_tab(i), l_dbattribute1_tab(i), l_dbattribute2_tab(i),
16184      l_dbattribute3_tab(i), l_dbattribute4_tab(i), l_dbattribute5_tab(i),
16185      l_dbattribute6_tab(i), l_dbattribute7_tab(i), l_dbattribute8_tab(i),
16186      l_dbattribute9_tab(i), l_dbattribute10_tab(i), l_dbattribute11_tab(i),
16187      l_dbattribute12_tab(i), l_dbattribute13_tab(i), l_dbattribute14_tab(i),
16188      l_dbattribute15_tab(i), l_created_by, SYSDATE,
16189      l_last_updated_by, SYSDATE, l_last_update_login,
16190      l_dbcurrency_code_tab(i), l_dbcurrency_convers_type_tab(i), l_dbcurrency_convers_rate_tab(i),
16191      l_dbcurrency_convers_date_tab(i)
16192     );
16193     FOR i IN l_dbid_tab.first..l_dbid_tab.last
16194     LOOP
16195       IF (i = l_dbid_tab.last) THEN
16196         insert_okl_txd_assets_tl(l_dbid_tab3(i),l_dbid_tab(i), 'Y');
16197       ELSE
16198         insert_okl_txd_assets_tl(l_dbid_tab3(i),l_dbid_tab(i), 'N');
16199       END IF;
16200     END LOOP;
16201   END IF;
16202 EXCEPTION WHEN OTHERS THEN
16203 
16204   x_return_status := OKL_API.G_RET_STS_ERROR;
16205   /*OKL_API.set_message(p_app_name => 'OKL',
16206                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
16207                       p_token1 => 'ASSET_NUMBER',
16208                       p_token1_value => 'insert_okl_txd_assets_b');*/
16209     /* DEBUG */
16210   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16211       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
16212     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 || ' ...');
16213   END IF;
16214   IF (l_dbid_tab.COUNT > 0) THEN
16215   FOR i IN l_dbid_tab.first..l_dbid_tab.last
16216   LOOP
16217     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16218           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbid_tab('||i||')=' || l_dbid_tab(i));
16219       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbtal_id_tab('||i||')=' || l_dbtal_id_tab(i));
16220       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbtarget_kle_id_tab('||i||')=' || l_dbtarget_kle_id_tab(i));
16221       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbline_detail_number_tab('||i||')=' || l_dbline_detail_number_tab(i));
16222       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbasset_number_tab('||i||')=' || l_dbasset_number_tab(i));
16223       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbquantity_tab('||i||')=' || l_dbquantity_tab(i));
16224       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbcost_tab('||i||')=' || l_dbcost_tab(i));
16225       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbtax_book_tab('||i||')=' || l_dbtax_book_tab(i));
16226       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));
16227       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbdeprn_method_tax_tab('||i||')=' || l_dbdeprn_method_tax_tab(i));
16228       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbdeprn_rate_tax_tab('||i||')=' || l_dbdeprn_rate_tax_tab(i));
16229       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbsalvage_value_tab('||i||')=' || l_dbsalvage_value_tab(i));
16230       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbsplit_percent_tab('||i||')=' || l_dbsplit_percent_tab(i));
16231       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbinventory_item_id_tab('||i||')=' || l_dbinventory_item_id_tab(i));
16232       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute_category_tab('||i||')=' || l_dbattribute_category_tab(i));
16233       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute1_tab('||i||')=' || l_dbattribute1_tab(i));
16234       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute2_tab('||i||')=' || l_dbattribute2_tab(i));
16235       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute3_tab('||i||')=' || l_dbattribute3_tab(i));
16236       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute4_tab('||i||')=' || l_dbattribute4_tab(i));
16237       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute5_tab('||i||')=' || l_dbattribute5_tab(i));
16238       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute6_tab('||i||')=' || l_dbattribute6_tab(i));
16239       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute7_tab('||i||')=' || l_dbattribute7_tab(i));
16240       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute8_tab('||i||')=' || l_dbattribute8_tab(i));
16241       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute9_tab('||i||')=' || l_dbattribute9_tab(i));
16242       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute10_tab('||i||')=' || l_dbattribute10_tab(i));
16243       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute11_tab('||i||')=' || l_dbattribute11_tab(i));
16244       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute12_tab('||i||')=' || l_dbattribute12_tab(i));
16245       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute13_tab('||i||')=' || l_dbattribute13_tab(i));
16246       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute14_tab('||i||')=' || l_dbattribute14_tab(i));
16247       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbattribute15_tab('||i||')=' || l_dbattribute15_tab(i));
16248       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbcurrency_code_tab('||i||')=' || l_dbcurrency_code_tab(i));
16249       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbcurrency_convers_type_tab('||i||')=' || l_dbcurrency_convers_type_tab(i));
16250       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbcurrency_convers_rate_tab('||i||')=' || l_dbcurrency_convers_rate_tab(i));
16251       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dbcurrency_convers_date_tab('||i||')=' || l_dbcurrency_convers_date_tab(i));
16252     END IF;
16253   END LOOP;
16254   END IF;
16255 
16256   RAISE OKC_API.G_EXCEPTION_ERROR;
16257 
16258 END; /* insert_okl_txd_assets_b */
16259 
16260 FUNCTION find_dbid_mapping_id(p_id IN NUMBER) RETURN NUMBER IS
16261 hi NUMBER;
16262 lo NUMBER;
16263 m NUMBER;
16264 BEGIN
16265   lo := 1;
16266   hi := l_tal_to_kle_counter - 1;
16267   WHILE (lo <= hi) LOOP
16268     m := FLOOR((hi + lo)/2);
16269     IF (l_dbid_mapping_tab(m).tal_id = p_id) THEN
16270       RETURN l_dbid_mapping_tab(m).kle_id;
16271     ELSIF (l_dbid_mapping_tab(m).tal_id > p_id) THEN
16272       hi := m - 1;
16273     ELSE
16274       lo := m + 1;
16275     END IF;
16276   END LOOP;
16277   RETURN -1;
16278 END;  /* find_dbid_mapping_id */
16279 
16280 PROCEDURE sort_dbid_mapping_tab IS
16281   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
16282   --a numtabtype;
16283   l_stack numtabtype;
16284   l_stack_index NUMBER := 0;
16285   N NUMBER;
16286   R NUMBER;
16287   L NUMBER;
16288   P NUMBER;
16289   W NUMBER;
16290   W2 NUMBER;
16291   X NUMBER;
16292   I NUMBER;
16293   J NUMBER;
16294 BEGIN
16295   IF (G_DEBUG_ENABLED = 'Y') THEN
16296     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
16297   END IF;
16298   NULL;
16299 
16300   N := l_tal_to_kle_counter - 1;
16301   IF (N < 2) THEN
16302     RETURN;
16303   END IF;
16304   l_stack_index := l_stack_index + 1;
16305   l_stack(l_stack_index) := 1;
16306   l_stack_index := l_stack_index + 1;
16307   l_stack(l_stack_index) := N;
16308 
16309   --dbms_output.put_line('l_stack_index=' || l_stack_index);
16310   WHILE l_stack_index > 0
16311   LOOP
16312     R := l_stack(l_stack_index);
16313     l_stack_index := l_stack_index - 1;
16314     L := l_stack(l_stack_index);
16315     l_stack_index := l_stack_index - 1;
16316     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
16317     WHILE 1=1
16318     LOOP -- loop until L >= R
16319       I := L;
16320       J := R;
16321       P := FLOOR((L+R)/2);
16322       --if (a(L) > a(P)) then
16323       IF (l_dbid_mapping_tab(L).tal_id > l_dbid_mapping_tab(P).tal_id)
16324       THEN
16325         W := l_dbid_mapping_tab(L).tal_id;
16326         W2 := l_dbid_mapping_tab(L).kle_id;
16327         l_dbid_mapping_tab(L).tal_id :=l_dbid_mapping_tab(P).tal_id;
16328         l_dbid_mapping_tab(L).kle_id :=l_dbid_mapping_tab(P).kle_id;
16329         l_dbid_mapping_tab(P).tal_id := W;
16330         l_dbid_mapping_tab(P).kle_id := W2;
16331       END IF;
16332       --if (a(L) > a(R)) then
16333       IF (l_dbid_mapping_tab(L).tal_id > l_dbid_mapping_tab(R).tal_id)
16334       THEN
16335         W := l_dbid_mapping_tab(L).tal_id;
16336         W2 := l_dbid_mapping_tab(L).kle_id;
16337         l_dbid_mapping_tab(L).tal_id :=l_dbid_mapping_tab(R).tal_id;
16338         l_dbid_mapping_tab(L).kle_id :=l_dbid_mapping_tab(R).kle_id;
16339         l_dbid_mapping_tab(R).tal_id := W;
16340         l_dbid_mapping_tab(R).kle_id := W2;
16341       END IF;
16342       --if (a(P) > a(R)) then
16343       IF (l_dbid_mapping_tab(P).tal_id > l_dbid_mapping_tab(R).tal_id)
16344       THEN
16345         W := l_dbid_mapping_tab(P).tal_id;
16346         W2 := l_dbid_mapping_tab(P).kle_id;
16347         l_dbid_mapping_tab(P).tal_id :=l_dbid_mapping_tab(R).tal_id;
16348         l_dbid_mapping_tab(P).kle_id :=l_dbid_mapping_tab(R).kle_id;
16349         l_dbid_mapping_tab(R).tal_id := W;
16350         l_dbid_mapping_tab(R).kle_id := W2;
16351       END IF;
16352       --X := a(P);
16353       X := l_dbid_mapping_tab(P).tal_id;
16354       WHILE 1=1
16355       LOOP    -- until I > J
16356         --while (a(I) < X) loop
16357         WHILE (l_dbid_mapping_tab(I).tal_id < X) LOOP
16358           I := I + 1;
16359         END LOOP;
16360         WHILE (X < l_dbid_mapping_tab(J).tal_id) LOOP
16361           J := J - 1;
16362         END LOOP;
16363         IF (I <= J) THEN
16364           W := l_dbid_mapping_tab(I).tal_id;
16365           W2 := l_dbid_mapping_tab(I).kle_id;
16366           l_dbid_mapping_tab(I).tal_id :=l_dbid_mapping_tab(J).tal_id;
16367           l_dbid_mapping_tab(I).kle_id :=l_dbid_mapping_tab(J).kle_id;
16368           l_dbid_mapping_tab(J).tal_id := W;
16369           l_dbid_mapping_tab(J).kle_id := W2;
16370           I := I + 1;
16371           J := J - 1;
16372         END IF;
16373         EXIT WHEN I > J;
16374       END LOOP;
16375       IF (J - L < R - I) THEN
16376         IF (I < R) THEN
16377           --push(I); push(R);
16378           l_stack_index := l_stack_index + 1;
16379           l_stack(l_stack_index) := I;
16380           l_stack_index := l_stack_index + 1;
16381           l_stack(l_stack_index) := R;
16382           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
16383         END IF;
16384         R := J;
16385       ELSE
16386         IF (L < J) THEN
16387           --push(L); push(J);
16388           l_stack_index := l_stack_index + 1;
16389           l_stack(l_stack_index) := L;
16390           l_stack_index := l_stack_index + 1;
16391           l_stack(l_stack_index) := J;
16392           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
16393         END IF;
16394         L := I;
16395       END IF;
16396 
16397       EXIT WHEN (L >= R);
16398     END LOOP;
16399   END LOOP;
16400 
16401 EXCEPTION WHEN OTHERS THEN
16402 
16403   x_return_status := OKL_API.G_RET_STS_ERROR;
16404   /*OKL_API.set_message(p_app_name => 'OKL',
16405                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
16406                       p_token1 => 'ASSET_NUMBER',
16407                       p_token1_value => 'sort_dbid_mapping_tab');*/
16408     /* DEBUG */
16409   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16410       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
16411     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_dbid_mapping_tab:l_dbid_mapping_tab N=' || N || ' ...');
16412   END IF;
16413 
16414   --print array
16415   FOR i IN 1..N
16416   LOOP
16417     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16418           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);
16419     END IF;
16420   END LOOP;
16421 
16422   RAISE OKC_API.G_EXCEPTION_ERROR;
16423 
16424 END;  /* sort_dbid_mapping_tab */
16425 
16426 PROCEDURE insert_okl_txl_assets_b(p_old_id IN okc_k_headers_b.id%TYPE,
16427                                   p_new_id IN okc_k_headers_b.id%TYPE) IS
16428 CURSOR c18(p_id NUMBER) IS
16429 SELECT
16430        a.id, a.object_version_number, a.tas_id,
16431        a.ilo_id, a.ilo_id_old, a.iay_id,
16432        a.iay_id_new, a.kle_id, a.dnz_khr_id,
16433        a.line_number, a.org_id, a.tal_type,
16434        a.asset_number, a.fa_location_id, a.original_cost,
16435        a.current_units, a.manufacturer_name, a.year_manufactured,
16436        a.supplier_id, a.used_asset_yn, a.tag_number,
16437        a.model_number, a.corporate_book, a.date_purchased,
16438        a.date_delivery, a.in_service_date, a.life_in_months,
16439        a.depreciation_id, a.depreciation_cost, a.deprn_method,
16440        a.deprn_rate, a.salvage_value, a.percent_salvage_value,
16441        a.attribute_category, a.attribute1, a.attribute2,
16442        a.attribute3, a.attribute4, a.attribute5,
16443        a.attribute6, a.attribute7, a.attribute8,
16444        a.attribute9, a.attribute10, a.attribute11,
16445        a.attribute12, a.attribute13, a.attribute14,
16446        a.attribute15, a.created_by, a.creation_date,
16447        a.last_updated_by, a.last_update_date, a.last_update_login,
16448        a.depreciate_yn, a.hold_period_days, a.old_salvage_value,
16449        a.new_residual_value, a.old_residual_value, a.units_retired,
16450        a.cost_retired, a.sale_proceeds, a.removal_cost,
16451        a.dnz_asset_id, a.date_due, a.rep_asset_id,
16452        a.lke_asset_id, a.match_amount, a.split_into_singles_flag,
16453        a.split_into_units, a.currency_code, a.currency_conversion_type,
16454        a.currency_conversion_rate, a.currency_conversion_date, a.asset_key_id,
16455        a.fa_trx_date
16456 FROM okl_txl_assets_b a,
16457           okc_k_lines_b b,
16458           okc_k_items c
16459    WHERE  a.dnz_khr_id = p_id
16460    AND    b.dnz_chr_id = p_id
16461    AND    c.dnz_chr_id = p_id
16462    AND    b.lse_id = 42
16463    AND    a.kle_id = b.id
16464    AND    a.kle_id = c.cle_id
16465    AND    c.object1_id1 IS NULL
16466    AND    c.object1_id2 IS NULL;
16467 
16468     l_tbid_tab2 l_tbid_type;
16469     l_tbobject_version_number_tab2 l_tbobject_version_number_type;
16470     l_tbtas_id_tab2 l_tbtas_id_type;
16471     l_tbilo_id_tab2 l_tbilo_id_type;
16472     l_tbilo_id_old_tab2 l_tbilo_id_old_type;
16473     l_tbiay_id_tab2 l_tbiay_id_type;
16474     l_tbiay_id_new_tab2 l_tbiay_id_new_type;
16475     l_tbkle_id_tab2 l_tbkle_id_type;
16476     l_tbdnz_khr_id_tab2 l_tbdnz_khr_id_type;
16477     l_tbline_number_tab2 l_tbline_number_type;
16478     l_tborg_id_tab2 l_tborg_id_type;
16479     l_tbtal_type_tab2 l_tbtal_type_type;
16480     l_tbasset_number_tab2 l_tbasset_number_type;
16481     l_tbfa_location_id_tab2 l_tbfa_location_id_type;
16482     l_tboriginal_cost_tab2 l_tboriginal_cost_type;
16483     l_tbcurrent_units_tab2 l_tbcurrent_units_type;
16484     l_tbmanufacturer_name_tab2 l_tbmanufacturer_name_type;
16485     l_tbyear_manufactured_tab2 l_tbyear_manufactured_type;
16486     l_tbsupplier_id_tab2 l_tbsupplier_id_type;
16487     l_tbused_asset_yn_tab2 l_tbused_asset_yn_type;
16488     l_tbtag_number_tab2 l_tbtag_number_type;
16489     l_tbmodel_number_tab2 l_tbmodel_number_type;
16490     l_tbcorporate_book_tab2 l_tbcorporate_book_type;
16491     l_tbdate_purchased_tab2 l_tbdate_purchased_type;
16492     l_tbdate_delivery_tab2 l_tbdate_delivery_type;
16493     l_tbin_service_date_tab2 l_tbin_service_date_type;
16494     l_tblife_in_months_tab2 l_tblife_in_months_type;
16495     l_tbdepreciation_id_tab2 l_tbdepreciation_id_type;
16496     l_tbdepreciation_cost_tab2 l_tbdepreciation_cost_type;
16497     l_tbdeprn_method_tab2 l_tbdeprn_method_type;
16498     l_tbdeprn_rate_tab2 l_tbdeprn_rate_type;
16499     l_tbsalvage_value_tab2 l_tbsalvage_value_type;
16500     l_tbpercent_salvage_value_tab2 l_tbpercent_salvage_value_type;
16501     l_tbattribute_category_tab2 l_tbattribute_category_type;
16502     l_tbattribute1_tab2 l_tbattribute1_type;
16503     l_tbattribute2_tab2 l_tbattribute2_type;
16504     l_tbattribute3_tab2 l_tbattribute3_type;
16505     l_tbattribute4_tab2 l_tbattribute4_type;
16506     l_tbattribute5_tab2 l_tbattribute5_type;
16507     l_tbattribute6_tab2 l_tbattribute6_type;
16508     l_tbattribute7_tab2 l_tbattribute7_type;
16509     l_tbattribute8_tab2 l_tbattribute8_type;
16510     l_tbattribute9_tab2 l_tbattribute9_type;
16511     l_tbattribute10_tab2 l_tbattribute10_type;
16512     l_tbattribute11_tab2 l_tbattribute11_type;
16513     l_tbattribute12_tab2 l_tbattribute12_type;
16514     l_tbattribute13_tab2 l_tbattribute13_type;
16515     l_tbattribute14_tab2 l_tbattribute14_type;
16516     l_tbattribute15_tab2 l_tbattribute15_type;
16517     l_tbcreated_by_tab2 l_tbcreated_by_type;
16518     l_tbcreation_date_tab2 l_tbcreation_date_type;
16519     l_tblast_updated_by_tab2 l_tblast_updated_by_type;
16520     l_tblast_update_date_tab2 l_tblast_update_date_type;
16521     l_tblast_update_login_tab2 l_tblast_update_login_type;
16522     l_tbdepreciate_yn_tab2 l_tbdepreciate_yn_type;
16523     l_tbhold_period_days_tab2 l_tbhold_period_days_type;
16524     l_tbold_salvage_value_tab2 l_tbold_salvage_value_type;
16525     l_tbnew_residual_value_tab2 l_tbnew_residual_value_type;
16526     l_tbold_residual_value_tab2 l_tbold_residual_value_type;
16527     l_tbunits_retired_tab2 l_tbunits_retired_type;
16528     l_tbcost_retired_tab2 l_tbcost_retired_type;
16529     l_tbsale_proceeds_tab2 l_tbsale_proceeds_type;
16530     l_tbremoval_cost_tab2 l_tbremoval_cost_type;
16531     l_tbdnz_asset_id_tab2 l_tbdnz_asset_id_type;
16532     l_tbdate_due_tab2 l_tbdate_due_type;
16533     l_tbrep_asset_id_tab2 l_tbrep_asset_id_type;
16534     l_tblke_asset_id_tab2 l_tblke_asset_id_type;
16535     l_tbmatch_amount_tab2 l_tbmatch_amount_type;
16536     l_tbsplit_into_singles_fl_tab2 l_tbsplit_into_singles_fl_type;
16537     l_tbsplit_into_units_tab2 l_tbsplit_into_units_type;
16538     l_tbcurrency_code_tab2 l_tbcurrency_code_type;
16539     l_tbcurrency_convers_type_tab2 l_tbcurrency_convers_type_type;
16540     l_tbcurrency_convers_rate_tab2 l_tbcurrency_convers_rate_type;
16541     l_tbcurrency_convers_date_tab2 l_tbcurrency_convers_date_type;
16542     l_tbasset_key_id_tab2 l_tbasset_key_id_type;
16543     l_tbfa_trx_date_tab2 l_tbfa_trx_date_type;
16544 
16545   l_new_tas_id NUMBER;
16546   l_new_kle_id NUMBER;
16547   l_new_asset_number VARCHAR2(15);
16548 
16549 BEGIN
16550   IF (G_DEBUG_ENABLED = 'Y') THEN
16551     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
16552   END IF;
16553   OPEN c18(p_old_id);
16554   LOOP
16555     FETCH c18 bulk collect INTO
16556       l_tbid_tab2, l_tbobject_version_number_tab2, l_tbtas_id_tab2,
16557       l_tbilo_id_tab2, l_tbilo_id_old_tab2, l_tbiay_id_tab2,
16558       l_tbiay_id_new_tab2, l_tbkle_id_tab2, l_tbdnz_khr_id_tab2,
16559       l_tbline_number_tab2, l_tborg_id_tab2, l_tbtal_type_tab2,
16560       l_tbasset_number_tab2, l_tbfa_location_id_tab2, l_tboriginal_cost_tab2,
16561       l_tbcurrent_units_tab2, l_tbmanufacturer_name_tab2, l_tbyear_manufactured_tab2,
16562       l_tbsupplier_id_tab2, l_tbused_asset_yn_tab2, l_tbtag_number_tab2,
16563       l_tbmodel_number_tab2, l_tbcorporate_book_tab2, l_tbdate_purchased_tab2,
16564       l_tbdate_delivery_tab2, l_tbin_service_date_tab2, l_tblife_in_months_tab2,
16565       l_tbdepreciation_id_tab2, l_tbdepreciation_cost_tab2, l_tbdeprn_method_tab2,
16566       l_tbdeprn_rate_tab2, l_tbsalvage_value_tab2, l_tbpercent_salvage_value_tab2,
16567       l_tbattribute_category_tab2, l_tbattribute1_tab2, l_tbattribute2_tab2,
16568       l_tbattribute3_tab2, l_tbattribute4_tab2, l_tbattribute5_tab2,
16569       l_tbattribute6_tab2, l_tbattribute7_tab2, l_tbattribute8_tab2,
16570       l_tbattribute9_tab2, l_tbattribute10_tab2, l_tbattribute11_tab2,
16571       l_tbattribute12_tab2, l_tbattribute13_tab2, l_tbattribute14_tab2,
16572       l_tbattribute15_tab2, l_tbcreated_by_tab2, l_tbcreation_date_tab2,
16573       l_tblast_updated_by_tab2, l_tblast_update_date_tab2, l_tblast_update_login_tab2,
16574       l_tbdepreciate_yn_tab2, l_tbhold_period_days_tab2, l_tbold_salvage_value_tab2,
16575       l_tbnew_residual_value_tab2, l_tbold_residual_value_tab2, l_tbunits_retired_tab2,
16576       l_tbcost_retired_tab2, l_tbsale_proceeds_tab2, l_tbremoval_cost_tab2,
16577       l_tbdnz_asset_id_tab2, l_tbdate_due_tab2, l_tbrep_asset_id_tab2,
16578       l_tblke_asset_id_tab2, l_tbmatch_amount_tab2, l_tbsplit_into_singles_fl_tab2,
16579       l_tbsplit_into_units_tab2, l_tbcurrency_code_tab2, l_tbcurrency_convers_type_tab2,
16580       l_tbcurrency_convers_rate_tab2, l_tbcurrency_convers_date_tab2, l_tbasset_key_id_tab2,
16581       l_tbfa_trx_date_tab2
16582     limit G_BULK_SIZE;
16583     EXIT WHEN l_tbid_tab2.COUNT = 0;
16584     FOR i IN l_tbid_tab2.first..l_tbid_tab2.last
16585     LOOP
16586 
16587       l_tbid_tab3(l_txl_assets_b_counter) := l_tbid_tab2(i);
16588       l_tbid_tab(l_txl_assets_b_counter) := l_tbid_tab2(i);
16589       -- Change id
16590       l_tbid_tab(l_txl_assets_b_counter) := okc_p_util.raw_to_number(sys_guid());
16591       l_txl_id_mapping_tab(l_txl_assets_b_counter).old_id := l_tbid_tab3(l_txl_assets_b_counter);
16592       l_txl_id_mapping_tab(l_txl_assets_b_counter).new_id := l_tbid_tab(l_txl_assets_b_counter);
16593 
16594       l_tbobject_version_number_tab(l_txl_assets_b_counter) := l_tbobject_version_number_tab2(i);
16595       l_tbtas_id_tab(l_txl_assets_b_counter) := l_tbtas_id_tab2(i);
16596       --Change tas_id
16597       l_new_tas_id := find_trx_mapping_id( l_tbtas_id_tab(l_txl_assets_b_counter));
16598         IF (l_new_tas_id = -1) THEN
16599           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16600                       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));
16601           END IF;
16602           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
16603         END IF;
16604       l_tbtas_id_tab(l_txl_assets_b_counter) := l_new_tas_id;
16605 
16606       l_tbilo_id_tab(l_txl_assets_b_counter) := l_tbilo_id_tab2(i);
16607       l_tbilo_id_old_tab(l_txl_assets_b_counter) := l_tbilo_id_old_tab2(i);
16608       l_tbiay_id_tab(l_txl_assets_b_counter) := l_tbiay_id_tab2(i);
16609       l_tbiay_id_new_tab(l_txl_assets_b_counter) := l_tbiay_id_new_tab2(i);
16610       l_tbkle_id_tab(l_txl_assets_b_counter) := l_tbkle_id_tab2(i);
16611       -- Change kle_id
16612       IF (l_tbkle_id_tab(l_txl_assets_b_counter) IS NOT NULL) THEN
16613         l_new_kle_id := find_mapping_id(l_tbkle_id_tab(l_txl_assets_b_counter));
16614         IF (l_new_kle_id = -1) THEN
16615           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16616                       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));
16617           END IF;
16618           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
16619         END IF;
16620         l_tbkle_id_tab(l_txl_assets_b_counter) := l_new_kle_id;
16621       END IF;
16622 
16623       -- Store Tal id to kle_id mapping
16624       l_dbid_mapping_tab(l_tal_to_kle_counter).tal_id := l_tbid_tab(l_txl_assets_b_counter);
16625       l_dbid_mapping_tab(l_tal_to_kle_counter).kle_id := l_tbkle_id_tab(l_txl_assets_b_counter);
16626       l_tal_to_kle_counter := l_tal_to_kle_counter + 1;
16627 
16628       l_tbdnz_khr_id_tab(l_txl_assets_b_counter) := l_tbdnz_khr_id_tab2(i);
16629       -- Change dnz_chr_id
16630       IF (l_tbdnz_khr_id_tab(l_txl_assets_b_counter) IS NOT NULL) THEN
16631         l_tbdnz_khr_id_tab(l_txl_assets_b_counter) := p_new_id;
16632       END IF;
16633 
16634       l_tbline_number_tab(l_txl_assets_b_counter) := l_tbline_number_tab2(i);
16635       l_tborg_id_tab(l_txl_assets_b_counter) := l_tborg_id_tab2(i);
16636       l_tbtal_type_tab(l_txl_assets_b_counter) := l_tbtal_type_tab2(i);
16637       l_tbasset_number_tab(l_txl_assets_b_counter) := l_tbasset_number_tab2(i);
16638       -- Change asset_number
16639       l_new_asset_number := find_aid_mapping_id(l_tbasset_number_tab(l_txl_assets_b_counter));
16640       IF (l_new_asset_number <> '-1') THEN
16641         l_tbasset_number_tab(l_txl_assets_b_counter) := l_new_asset_number;
16642       END IF;
16643 
16644       l_tbfa_location_id_tab(l_txl_assets_b_counter) := l_tbfa_location_id_tab2(i);
16645       l_tboriginal_cost_tab(l_txl_assets_b_counter) := l_tboriginal_cost_tab2(i);
16646       l_tbcurrent_units_tab(l_txl_assets_b_counter) := l_tbcurrent_units_tab2(i);
16647       l_tbmanufacturer_name_tab(l_txl_assets_b_counter) := l_tbmanufacturer_name_tab2(i);
16648       l_tbyear_manufactured_tab(l_txl_assets_b_counter) := l_tbyear_manufactured_tab2(i);
16649       l_tbsupplier_id_tab(l_txl_assets_b_counter) := l_tbsupplier_id_tab2(i);
16650       l_tbused_asset_yn_tab(l_txl_assets_b_counter) := l_tbused_asset_yn_tab2(i);
16651       l_tbtag_number_tab(l_txl_assets_b_counter) := l_tbtag_number_tab2(i);
16652       l_tbmodel_number_tab(l_txl_assets_b_counter) := l_tbmodel_number_tab2(i);
16653       l_tbcorporate_book_tab(l_txl_assets_b_counter) := l_tbcorporate_book_tab2(i);
16654       l_tbdate_purchased_tab(l_txl_assets_b_counter) := l_tbdate_purchased_tab2(i);
16655       l_tbdate_delivery_tab(l_txl_assets_b_counter) := l_tbdate_delivery_tab2(i);
16656       l_tbin_service_date_tab(l_txl_assets_b_counter) := l_tbin_service_date_tab2(i);
16657       l_tblife_in_months_tab(l_txl_assets_b_counter) := l_tblife_in_months_tab2(i);
16658       l_tbdepreciation_id_tab(l_txl_assets_b_counter) := l_tbdepreciation_id_tab2(i);
16659       l_tbdepreciation_cost_tab(l_txl_assets_b_counter) := l_tbdepreciation_cost_tab2(i);
16660       l_tbdeprn_method_tab(l_txl_assets_b_counter) := l_tbdeprn_method_tab2(i);
16661       l_tbdeprn_rate_tab(l_txl_assets_b_counter) := l_tbdeprn_rate_tab2(i);
16662       l_tbsalvage_value_tab(l_txl_assets_b_counter) := l_tbsalvage_value_tab2(i);
16663       l_tbpercent_salvage_value_tab(l_txl_assets_b_counter) := l_tbpercent_salvage_value_tab2(i);
16664       l_tbattribute_category_tab(l_txl_assets_b_counter) := l_tbattribute_category_tab2(i);
16665       l_tbattribute1_tab(l_txl_assets_b_counter) := l_tbattribute1_tab2(i);
16666       l_tbattribute2_tab(l_txl_assets_b_counter) := l_tbattribute2_tab2(i);
16667       l_tbattribute3_tab(l_txl_assets_b_counter) := l_tbattribute3_tab2(i);
16668       l_tbattribute4_tab(l_txl_assets_b_counter) := l_tbattribute4_tab2(i);
16669       l_tbattribute5_tab(l_txl_assets_b_counter) := l_tbattribute5_tab2(i);
16670       l_tbattribute6_tab(l_txl_assets_b_counter) := l_tbattribute6_tab2(i);
16671       l_tbattribute7_tab(l_txl_assets_b_counter) := l_tbattribute7_tab2(i);
16672       l_tbattribute8_tab(l_txl_assets_b_counter) := l_tbattribute8_tab2(i);
16673       l_tbattribute9_tab(l_txl_assets_b_counter) := l_tbattribute9_tab2(i);
16674       l_tbattribute10_tab(l_txl_assets_b_counter) := l_tbattribute10_tab2(i);
16675       l_tbattribute11_tab(l_txl_assets_b_counter) := l_tbattribute11_tab2(i);
16676       l_tbattribute12_tab(l_txl_assets_b_counter) := l_tbattribute12_tab2(i);
16677       l_tbattribute13_tab(l_txl_assets_b_counter) := l_tbattribute13_tab2(i);
16678       l_tbattribute14_tab(l_txl_assets_b_counter) := l_tbattribute14_tab2(i);
16679       l_tbattribute15_tab(l_txl_assets_b_counter) := l_tbattribute15_tab2(i);
16680       l_tbcreated_by_tab(l_txl_assets_b_counter) := l_tbcreated_by_tab2(i);
16681       l_tbcreation_date_tab(l_txl_assets_b_counter) := l_tbcreation_date_tab2(i);
16682       l_tblast_updated_by_tab(l_txl_assets_b_counter) := l_tblast_updated_by_tab2(i);
16683       l_tblast_update_date_tab(l_txl_assets_b_counter) := l_tblast_update_date_tab2(i);
16684       l_tblast_update_login_tab(l_txl_assets_b_counter) := l_tblast_update_login_tab2(i);
16685       l_tbdepreciate_yn_tab(l_txl_assets_b_counter) := l_tbdepreciate_yn_tab2(i);
16686       l_tbhold_period_days_tab(l_txl_assets_b_counter) := l_tbhold_period_days_tab2(i);
16687       l_tbold_salvage_value_tab(l_txl_assets_b_counter) := l_tbold_salvage_value_tab2(i);
16688       l_tbnew_residual_value_tab(l_txl_assets_b_counter) := l_tbnew_residual_value_tab2(i);
16689       l_tbold_residual_value_tab(l_txl_assets_b_counter) := l_tbold_residual_value_tab2(i);
16690       l_tbunits_retired_tab(l_txl_assets_b_counter) := l_tbunits_retired_tab2(i);
16691       l_tbcost_retired_tab(l_txl_assets_b_counter) := l_tbcost_retired_tab2(i);
16692       l_tbsale_proceeds_tab(l_txl_assets_b_counter) := l_tbsale_proceeds_tab2(i);
16693       l_tbremoval_cost_tab(l_txl_assets_b_counter) := l_tbremoval_cost_tab2(i);
16694       l_tbdnz_asset_id_tab(l_txl_assets_b_counter) := l_tbdnz_asset_id_tab2(i);
16695       l_tbdate_due_tab(l_txl_assets_b_counter) := l_tbdate_due_tab2(i);
16696       l_tbrep_asset_id_tab(l_txl_assets_b_counter) := l_tbrep_asset_id_tab2(i);
16697       l_tblke_asset_id_tab(l_txl_assets_b_counter) := l_tblke_asset_id_tab2(i);
16698       l_tbmatch_amount_tab(l_txl_assets_b_counter) := l_tbmatch_amount_tab2(i);
16699       l_tbsplit_into_singles_fl_tab(l_txl_assets_b_counter) := l_tbsplit_into_singles_fl_tab2(i);
16700       l_tbsplit_into_units_tab(l_txl_assets_b_counter) := l_tbsplit_into_units_tab2(i);
16701       /*l_tbcurrency_code_tab(l_txl_assets_b_counter) := l_tbcurrency_code_tab2(i);
16702       l_tbcurrency_convers_type_tab(l_txl_assets_b_counter) := l_tbcurrency_convers_type_tab2(i);
16703       l_tbcurrency_convers_rate_tab(l_txl_assets_b_counter) := l_tbcurrency_convers_rate_tab2(i);
16704       l_tbcurrency_convers_date_tab(l_txl_assets_b_counter) := l_tbcurrency_convers_date_tab2(i);*/
16705       -- AKP: Default the following four from the contract header
16706       l_tbcurrency_code_tab(l_txl_assets_b_counter) := l_contract_currency;
16707       l_tbcurrency_convers_type_tab(l_txl_assets_b_counter) := l_conversion_type;
16708       l_tbcurrency_convers_rate_tab(l_txl_assets_b_counter) := l_conversion_rate;
16709       l_tbcurrency_convers_date_tab(l_txl_assets_b_counter) := l_conversion_rate_date;
16710       l_tbasset_key_id_tab(l_txl_assets_b_counter) := l_tbasset_key_id_tab2(i);
16711       l_tbfa_trx_date_tab(l_txl_assets_b_counter) := l_tbfa_trx_date_tab2(i);
16712 
16713       l_txl_assets_b_counter := l_txl_assets_b_counter + 1;
16714 
16715     END LOOP;
16716   END LOOP;
16717   CLOSE c18;
16718   sort_dbid_mapping_tab;
16719 
16720   IF (l_txl_assets_b_counter > 1) THEN
16721     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16722           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);
16723     END IF;
16724     forall i IN l_tbid_tab.first..l_tbid_tab.last
16725     INSERT INTO okl_txl_assets_b (
16726      id, object_version_number, tas_id,
16727      ilo_id, ilo_id_old, iay_id,
16728      iay_id_new, kle_id, dnz_khr_id,
16729      line_number, org_id, tal_type,
16730      asset_number, fa_location_id, original_cost,
16731      current_units, manufacturer_name, year_manufactured,
16732      supplier_id, used_asset_yn, tag_number,
16733      model_number, corporate_book, date_purchased,
16734      date_delivery, in_service_date, life_in_months,
16735      depreciation_id, depreciation_cost, deprn_method,
16736      deprn_rate, salvage_value, percent_salvage_value,
16737      attribute_category, attribute1, attribute2,
16738      attribute3, attribute4, attribute5,
16739      attribute6, attribute7, attribute8,
16740      attribute9, attribute10, attribute11,
16741      attribute12, attribute13, attribute14,
16742      attribute15, created_by, creation_date,
16743      last_updated_by, last_update_date, last_update_login,
16744      depreciate_yn, hold_period_days, old_salvage_value,
16745      new_residual_value, old_residual_value, units_retired,
16746      cost_retired, sale_proceeds, removal_cost,
16747      dnz_asset_id, date_due, rep_asset_id,
16748      lke_asset_id, match_amount, split_into_singles_flag,
16749      split_into_units, currency_code, currency_conversion_type,
16750      currency_conversion_rate, currency_conversion_date, asset_key_id,
16751      fa_trx_date
16752     ) VALUES (
16753      l_tbid_tab(i), 1, l_tbtas_id_tab(i),
16754      l_tbilo_id_tab(i), l_tbilo_id_old_tab(i), l_tbiay_id_tab(i),
16755      l_tbiay_id_new_tab(i), l_tbkle_id_tab(i), l_tbdnz_khr_id_tab(i),
16756      l_tbline_number_tab(i), l_tborg_id_tab(i), p_trans_type,
16757      l_tbasset_number_tab(i), l_tbfa_location_id_tab(i), l_tboriginal_cost_tab(i),
16758      l_tbcurrent_units_tab(i), l_tbmanufacturer_name_tab(i), l_tbyear_manufactured_tab(i),
16759      l_tbsupplier_id_tab(i), l_tbused_asset_yn_tab(i), l_tbtag_number_tab(i),
16760      l_tbmodel_number_tab(i), l_tbcorporate_book_tab(i), l_tbdate_purchased_tab(i),
16761      l_tbdate_delivery_tab(i), l_tbin_service_date_tab(i), l_tblife_in_months_tab(i),
16762      l_tbdepreciation_id_tab(i), l_tbdepreciation_cost_tab(i), l_tbdeprn_method_tab(i),
16763      l_tbdeprn_rate_tab(i), l_tbsalvage_value_tab(i), l_tbpercent_salvage_value_tab(i),
16764      l_tbattribute_category_tab(i), l_tbattribute1_tab(i), l_tbattribute2_tab(i),
16765      l_tbattribute3_tab(i), l_tbattribute4_tab(i), l_tbattribute5_tab(i),
16766      l_tbattribute6_tab(i), l_tbattribute7_tab(i), l_tbattribute8_tab(i),
16767      l_tbattribute9_tab(i), l_tbattribute10_tab(i), l_tbattribute11_tab(i),
16768      l_tbattribute12_tab(i), l_tbattribute13_tab(i), l_tbattribute14_tab(i),
16769      l_tbattribute15_tab(i), l_created_by, SYSDATE,
16770      l_last_updated_by, SYSDATE, l_last_update_login,
16771      l_tbdepreciate_yn_tab(i), l_tbhold_period_days_tab(i), l_tbold_salvage_value_tab(i),
16772      l_tbnew_residual_value_tab(i), l_tbold_residual_value_tab(i), l_tbunits_retired_tab(i),
16773      l_tbcost_retired_tab(i), l_tbsale_proceeds_tab(i), l_tbremoval_cost_tab(i),
16774      l_tbdnz_asset_id_tab(i), l_tbdate_due_tab(i), l_tbrep_asset_id_tab(i),
16775      l_tblke_asset_id_tab(i), l_tbmatch_amount_tab(i), l_tbsplit_into_singles_fl_tab(i),
16776      l_tbsplit_into_units_tab(i), l_tbcurrency_code_tab(i), l_tbcurrency_convers_type_tab(i),
16777      l_tbcurrency_convers_rate_tab(i), l_tbcurrency_convers_date_tab(i), l_tbasset_key_id_tab(i),
16778      NULL
16779     );
16780 
16781     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16782           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okl_txl_assets_b done...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
16783     END IF;
16784     sort_txl_id_mapping_tab;
16785     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16786           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okl_txl_assets_tl...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
16787     END IF;
16788     FOR i IN l_tbid_tab.first..l_tbid_tab.last
16789     LOOP
16790       IF (i = l_tbid_tab.last) THEN
16791         insert_okl_txl_assets_tl(l_tbid_tab3(i), l_tbid_tab(i), 'Y');
16792       ELSE
16793         insert_okl_txl_assets_tl(l_tbid_tab3(i), l_tbid_tab(i), 'N');
16794       END IF;
16795     END LOOP;
16796 
16797     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16798           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okl_txd_assets_b ' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
16799     END IF;
16800     l_message := 'OKL_NEW_COPY_ASD_ERROR';
16801     insert_okl_txd_assets_b(p_chr_id, l_copied_id);
16802   END IF;
16803 
16804 EXCEPTION WHEN OTHERS THEN
16805 
16806   x_return_status := OKL_API.G_RET_STS_ERROR;
16807   /*OKL_API.set_message(p_app_name => 'OKL',
16808                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
16809                       p_token1 => 'ASSET_NUMBER',
16810                       p_token1_value => 'insert_okl_txl_assets_b');*/
16811     /* DEBUG */
16812   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16813       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
16814     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 || ' ...');
16815   END IF;
16816   IF (l_tbid_tab.COUNT > 0) THEN
16817   FOR i IN l_tbid_tab.first..l_tbid_tab.last
16818   LOOP
16819     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
16820           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbid_tab('||i||')=' || l_tbid_tab(i));
16821       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbtas_id_tab('||i||')=' || l_tbtas_id_tab(i));
16822       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbilo_id_tab('||i||')=' || l_tbilo_id_tab(i));
16823       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbilo_id_old_tab('||i||')=' || l_tbilo_id_old_tab(i));
16824       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbiay_id_tab('||i||')=' || l_tbiay_id_tab(i));
16825       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbiay_id_new_tab('||i||')=' || l_tbiay_id_new_tab(i));
16826       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbkle_id_tab('||i||')=' || l_tbkle_id_tab(i));
16827       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbdnz_khr_id_tab('||i||')=' || l_tbdnz_khr_id_tab(i));
16828       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbline_number_tab('||i||')=' || l_tbline_number_tab(i));
16829       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tborg_id_tab('||i||')=' || l_tborg_id_tab(i));
16830       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbasset_number_tab('||i||')=' || l_tbasset_number_tab(i));
16831       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbfa_location_id_tab('||i||')=' || l_tbfa_location_id_tab(i));
16832       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tboriginal_cost_tab('||i||')=' || l_tboriginal_cost_tab(i));
16833       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbcurrent_units_tab('||i||')=' || l_tbcurrent_units_tab(i));
16834       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbmanufacturer_name_tab('||i||')=' || l_tbmanufacturer_name_tab(i));
16835       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbyear_manufactured_tab('||i||')=' || l_tbyear_manufactured_tab(i));
16836       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbsupplier_id_tab('||i||')=' || l_tbsupplier_id_tab(i));
16837       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbused_asset_yn_tab('||i||')=' || l_tbused_asset_yn_tab(i));
16838       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbtag_number_tab('||i||')=' || l_tbtag_number_tab(i));
16839       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbmodel_number_tab('||i||')=' || l_tbmodel_number_tab(i));
16840       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbcorporate_book_tab('||i||')=' || l_tbcorporate_book_tab(i));
16841       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbdate_purchased_tab('||i||')=' || l_tbdate_purchased_tab(i));
16842       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbdate_delivery_tab('||i||')=' || l_tbdate_delivery_tab(i));
16843       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbin_service_date_tab('||i||')=' || l_tbin_service_date_tab(i));
16844       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tblife_in_months_tab('||i||')=' || l_tblife_in_months_tab(i));
16845       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbdepreciation_id_tab('||i||')=' || l_tbdepreciation_id_tab(i));
16846       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbdepreciation_cost_tab('||i||')=' || l_tbdepreciation_cost_tab(i));
16847       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbdeprn_method_tab('||i||')=' || l_tbdeprn_method_tab(i));
16848       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbdeprn_rate_tab('||i||')=' || l_tbdeprn_rate_tab(i));
16849       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbsalvage_value_tab('||i||')=' || l_tbsalvage_value_tab(i));
16850       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbpercent_salvage_value_tab('||i||')=' || l_tbpercent_salvage_value_tab(i));
16851       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute_category_tab('||i||')=' || l_tbattribute_category_tab(i));
16852       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute1_tab('||i||')=' || l_tbattribute1_tab(i));
16853       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute2_tab('||i||')=' || l_tbattribute2_tab(i));
16854       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute3_tab('||i||')=' || l_tbattribute3_tab(i));
16855       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute4_tab('||i||')=' || l_tbattribute4_tab(i));
16856       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute5_tab('||i||')=' || l_tbattribute5_tab(i));
16857       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute6_tab('||i||')=' || l_tbattribute6_tab(i));
16858       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute7_tab('||i||')=' || l_tbattribute7_tab(i));
16859       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute8_tab('||i||')=' || l_tbattribute8_tab(i));
16860       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute9_tab('||i||')=' || l_tbattribute9_tab(i));
16861       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute10_tab('||i||')=' || l_tbattribute10_tab(i));
16862       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute11_tab('||i||')=' || l_tbattribute11_tab(i));
16863       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute12_tab('||i||')=' || l_tbattribute12_tab(i));
16864       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute13_tab('||i||')=' || l_tbattribute13_tab(i));
16865       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute14_tab('||i||')=' || l_tbattribute14_tab(i));
16866       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbattribute15_tab('||i||')=' || l_tbattribute15_tab(i));
16867       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbdepreciate_yn_tab('||i||')=' || l_tbdepreciate_yn_tab(i));
16868       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbhold_period_days_tab('||i||')=' || l_tbhold_period_days_tab(i));
16869       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbold_salvage_value_tab('||i||')=' || l_tbold_salvage_value_tab(i));
16870       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbnew_residual_value_tab('||i||')=' || l_tbnew_residual_value_tab(i));
16871       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbold_residual_value_tab('||i||')=' || l_tbold_residual_value_tab(i));
16872       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbunits_retired_tab('||i||')=' || l_tbunits_retired_tab(i));
16873       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbcost_retired_tab('||i||')=' || l_tbcost_retired_tab(i));
16874       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbsale_proceeds_tab('||i||')=' || l_tbsale_proceeds_tab(i));
16875       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbremoval_cost_tab('||i||')=' || l_tbremoval_cost_tab(i));
16876       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbdnz_asset_id_tab('||i||')=' || l_tbdnz_asset_id_tab(i));
16877       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbdate_due_tab('||i||')=' || l_tbdate_due_tab(i));
16878       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbrep_asset_id_tab('||i||')=' || l_tbrep_asset_id_tab(i));
16879       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tblke_asset_id_tab('||i||')=' || l_tblke_asset_id_tab(i));
16880       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbmatch_amount_tab('||i||')=' || l_tbmatch_amount_tab(i));
16881       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));
16882       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbsplit_into_units_tab('||i||')=' || l_tbsplit_into_units_tab(i));
16883       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbcurrency_code_tab('||i||')=' || l_tbcurrency_code_tab(i));
16884       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbcurrency_convers_type_tab('||i||')=' || l_tbcurrency_convers_type_tab(i));
16885       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbcurrency_convers_rate_tab('||i||')=' || l_tbcurrency_convers_rate_tab(i));
16886       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbcurrency_convers_date_tab('||i||')=' || l_tbcurrency_convers_date_tab(i));
16887       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tbasset_key_id_tab('||i||')=' || l_tbasset_key_id_tab(i));
16888     END IF;
16889   END LOOP;
16890   END IF;
16891 
16892   RAISE OKC_API.G_EXCEPTION_ERROR;
16893 
16894 END;  /* insert_okl_txl_assets_b */
16895 
16896 PROCEDURE insert_okl_trx_assets(p_old_id IN okc_k_headers_b.id%TYPE,
16897                                 p_new_id IN okc_k_headers_b.id%TYPE) IS
16898 CURSOR c17(p_id NUMBER) IS
16899 SELECT
16900      id, ica_id, tas_type,
16901      object_version_number, attribute_category, attribute1,
16902      attribute2, attribute3, attribute4,
16903      attribute5, attribute6, attribute7,
16904      attribute8, attribute9, attribute10,
16905      attribute11, attribute12, attribute13,
16906      attribute14, attribute15, created_by,
16907      creation_date, last_updated_by, last_update_date,
16908      last_update_login, tsu_code, try_id,
16909      date_trans_occurred, trans_number, comments,
16910      req_asset_id, total_match_amount, org_id,legal_entity_id
16911 FROM okl_trx_assets
16912 WHERE id IN
16913   (SELECT a.tas_id FROM okl_txl_assets_b a,
16914           okc_k_lines_b b,
16915           okc_k_items c
16916    WHERE  a.dnz_khr_id = p_id
16917    AND    b.dnz_chr_id = p_id
16918    AND    c.dnz_chr_id = p_id
16919    AND    b.lse_id = 42
16920    AND    a.kle_id = b.id
16921    AND    a.kle_id = c.cle_id
16922    AND    c.object1_id1 IS NULL
16923    AND    c.object1_id2 IS NULL);
16924 
16925     l_tid_tab2 l_tid_type;
16926     l_tica_id_tab2 l_tica_id_type;
16927     l_ttas_type_tab2 l_ttas_type_type;
16928     l_tobject_version_number_tab2 l_tobject_version_number_type;
16929     l_tattribute_category_tab2 l_tattribute_category_type;
16930     l_tattribute1_tab2 l_tattribute1_type;
16931     l_tattribute2_tab2 l_tattribute2_type;
16932     l_tattribute3_tab2 l_tattribute3_type;
16933     l_tattribute4_tab2 l_tattribute4_type;
16934     l_tattribute5_tab2 l_tattribute5_type;
16935     l_tattribute6_tab2 l_tattribute6_type;
16936     l_tattribute7_tab2 l_tattribute7_type;
16937     l_tattribute8_tab2 l_tattribute8_type;
16938     l_tattribute9_tab2 l_tattribute9_type;
16939     l_tattribute10_tab2 l_tattribute10_type;
16940     l_tattribute11_tab2 l_tattribute11_type;
16941     l_tattribute12_tab2 l_tattribute12_type;
16942     l_tattribute13_tab2 l_tattribute13_type;
16943     l_tattribute14_tab2 l_tattribute14_type;
16944     l_tattribute15_tab2 l_tattribute15_type;
16945     l_tcreated_by_tab2 l_tcreated_by_type;
16946     l_tcreation_date_tab2 l_tcreation_date_type;
16947     l_tlast_updated_by_tab2 l_tlast_updated_by_type;
16948     l_tlast_update_date_tab2 l_tlast_update_date_type;
16949     l_tlast_update_login_tab2 l_tlast_update_login_type;
16950     l_ttsu_code_tab2 l_ttsu_code_type;
16951     l_ttry_id_tab2 l_ttry_id_type;
16952     l_tdate_trans_occurred_tab2 l_tdate_trans_occurred_type;
16953     l_ttrans_number_tab2 l_ttrans_number_type;
16954     l_tcomments_tab2 l_tcomments_type;
16955     l_treq_asset_id_tab2 l_treq_asset_id_type;
16956     l_ttotal_match_amount_tab2 l_ttotal_match_amount_type;
16957     l_torg_id_tab2 l_torg_id_type;
16958     l_tlegal_entity_id_tab2  l_tlegal_entity_id_type;
16959 
16960 BEGIN
16961   IF (G_DEBUG_ENABLED = 'Y') THEN
16962     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
16963   END IF;
16964   OPEN c17(p_old_id);
16965   LOOP
16966     FETCH c17 bulk collect INTO
16967      l_tid_tab2, l_tica_id_tab2, l_ttas_type_tab2,
16968      l_tobject_version_number_tab2, l_tattribute_category_tab2, l_tattribute1_tab2,
16969      l_tattribute2_tab2, l_tattribute3_tab2, l_tattribute4_tab2,
16970      l_tattribute5_tab2, l_tattribute6_tab2, l_tattribute7_tab2,
16971      l_tattribute8_tab2, l_tattribute9_tab2, l_tattribute10_tab2,
16972      l_tattribute11_tab2, l_tattribute12_tab2, l_tattribute13_tab2,
16973      l_tattribute14_tab2, l_tattribute15_tab2, l_tcreated_by_tab2,
16974      l_tcreation_date_tab2, l_tlast_updated_by_tab2, l_tlast_update_date_tab2,
16975      l_tlast_update_login_tab2, l_ttsu_code_tab2, l_ttry_id_tab2,
16976      l_tdate_trans_occurred_tab2, l_ttrans_number_tab2, l_tcomments_tab2,
16977      l_treq_asset_id_tab2, l_ttotal_match_amount_tab2, l_torg_id_tab2,l_tlegal_entity_id_tab2
16978     limit G_BULK_SIZE;
16979     EXIT WHEN l_tid_tab2.COUNT = 0;
16980     FOR i IN l_tid_tab2.first..l_tid_tab2.last
16981     LOOP
16982 
16983       l_tid_tab(l_trx_assets_counter) := l_tid_tab2(i);
16984       l_trx_id_mapping_tab(l_trx_assets_counter).old_id := l_tid_tab2(i);
16985 
16986       --Change id
16987       l_tid_tab(l_trx_assets_counter) := okc_p_util.raw_to_number(sys_guid());
16988       l_trx_id_mapping_tab(l_trx_assets_counter).new_id := l_tid_tab(l_trx_assets_counter);
16989 
16990       l_tica_id_tab(l_trx_assets_counter) := l_tica_id_tab2(i);
16991       l_ttas_type_tab(l_trx_assets_counter) := l_ttas_type_tab2(i);
16992       l_tobject_version_number_tab(l_trx_assets_counter) := l_tobject_version_number_tab2(i);
16993       l_tattribute_category_tab(l_trx_assets_counter) := l_tattribute_category_tab2(i);
16994       l_tattribute1_tab(l_trx_assets_counter) := l_tattribute1_tab2(i);
16995       l_tattribute2_tab(l_trx_assets_counter) := l_tattribute2_tab2(i);
16996       l_tattribute3_tab(l_trx_assets_counter) := l_tattribute3_tab2(i);
16997       l_tattribute4_tab(l_trx_assets_counter) := l_tattribute4_tab2(i);
16998       l_tattribute5_tab(l_trx_assets_counter) := l_tattribute5_tab2(i);
16999       l_tattribute6_tab(l_trx_assets_counter) := l_tattribute6_tab2(i);
17000       l_tattribute7_tab(l_trx_assets_counter) := l_tattribute7_tab2(i);
17001       l_tattribute8_tab(l_trx_assets_counter) := l_tattribute8_tab2(i);
17002       l_tattribute9_tab(l_trx_assets_counter) := l_tattribute9_tab2(i);
17003       l_tattribute10_tab(l_trx_assets_counter) := l_tattribute10_tab2(i);
17004       l_tattribute11_tab(l_trx_assets_counter) := l_tattribute11_tab2(i);
17005       l_tattribute12_tab(l_trx_assets_counter) := l_tattribute12_tab2(i);
17006       l_tattribute13_tab(l_trx_assets_counter) := l_tattribute13_tab2(i);
17007       l_tattribute14_tab(l_trx_assets_counter) := l_tattribute14_tab2(i);
17008       l_tattribute15_tab(l_trx_assets_counter) := l_tattribute15_tab2(i);
17009       l_tcreated_by_tab(l_trx_assets_counter) := l_tcreated_by_tab2(i);
17010       l_tcreation_date_tab(l_trx_assets_counter) := l_tcreation_date_tab2(i);
17011       l_tlast_updated_by_tab(l_trx_assets_counter) := l_tlast_updated_by_tab2(i);
17012       l_tlast_update_date_tab(l_trx_assets_counter) := l_tlast_update_date_tab2(i);
17013       l_tlast_update_login_tab(l_trx_assets_counter) := l_tlast_update_login_tab2(i);
17014       l_ttsu_code_tab(l_trx_assets_counter) := l_ttsu_code_tab2(i);
17015       l_ttry_id_tab(l_trx_assets_counter) := l_ttry_id_tab2(i);
17016       l_tdate_trans_occurred_tab(l_trx_assets_counter) := l_tdate_trans_occurred_tab2(i);
17017       l_ttrans_number_tab(l_trx_assets_counter) := l_ttrans_number_tab2(i);
17018       l_tcomments_tab(l_trx_assets_counter) := l_tcomments_tab2(i);
17019       l_treq_asset_id_tab(l_trx_assets_counter) := l_treq_asset_id_tab2(i);
17020       l_ttotal_match_amount_tab(l_trx_assets_counter) := l_ttotal_match_amount_tab2(i);
17021       l_torg_id_tab(l_trx_assets_counter) := l_torg_id_tab2(i);
17022       l_tlegal_entity_id_tab(l_trx_assets_counter) := l_tlegal_entity_id_tab2(i);
17023 
17024       l_trx_assets_counter := l_trx_assets_counter + 1;
17025     END LOOP;
17026   END LOOP;
17027   CLOSE c17;
17028 
17029   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
17030       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);
17031   END IF;
17032   IF (l_trx_assets_counter > 1) THEN
17033     forall i IN l_tid_tab.first..l_tid_tab.last
17034     INSERT INTO okl_trx_assets (
17035      id, ica_id, tas_type,
17036      object_version_number, attribute_category, attribute1,
17037      attribute2, attribute3, attribute4,
17038      attribute5, attribute6, attribute7,
17039      attribute8, attribute9, attribute10,
17040      attribute11, attribute12, attribute13,
17041      attribute14, attribute15, created_by,
17042      creation_date, last_updated_by, last_update_date,
17043      last_update_login, tsu_code, try_id,
17044      date_trans_occurred, trans_number, comments,
17045      req_asset_id, total_match_amount, org_id,legal_entity_id
17046      ,transaction_date
17047     ) VALUES (
17048      l_tid_tab(i), l_tica_id_tab(i), p_trans_type,
17049      1, l_tattribute_category_tab(i), l_tattribute1_tab(i),
17050      l_tattribute2_tab(i), l_tattribute3_tab(i), l_tattribute4_tab(i),
17051      l_tattribute5_tab(i), l_tattribute6_tab(i), l_tattribute7_tab(i),
17052      l_tattribute8_tab(i), l_tattribute9_tab(i), l_tattribute10_tab(i),
17053      l_tattribute11_tab(i), l_tattribute12_tab(i), l_tattribute13_tab(i),
17054      l_tattribute14_tab(i), l_tattribute15_tab(i), l_created_by,
17055      SYSDATE, l_last_updated_by, SYSDATE,
17056      l_last_update_login, 'ENTERED', l_ttry_id_tab(i),
17057      SYSDATE, okl_trn_seq.NEXTVAL, l_tcomments_tab(i),
17058      l_treq_asset_id_tab(i), l_ttotal_match_amount_tab(i), l_torg_id_tab(i),l_tlegal_entity_id_tab(i)
17059      ,SYSDATE
17060     );
17061 
17062     sort_trx_id_mapping_tab;
17063 
17064     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
17065           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okl_txl_assets_b...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
17066     END IF;
17067     l_message := 'OKL_NEW_COPY_TAL_ERROR';
17068     insert_okl_txl_assets_b(p_chr_id, l_copied_id);
17069 
17070   END IF;
17071 EXCEPTION WHEN OTHERS THEN
17072 
17073   x_return_status := OKL_API.G_RET_STS_ERROR;
17074   /*OKL_API.set_message(p_app_name => 'OKL',
17075                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
17076                       p_token1 => 'ASSET_NUMBER',
17077                       p_token1_value => 'insert_okl_trx_assets');*/
17078     /* DEBUG */
17079   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
17080       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
17081     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing insert_okl_trx_assets:l_tid_tab.count=' || l_tid_tab.COUNT || ' ...');
17082   END IF;
17083   IF (l_tid_tab.COUNT > 0) THEN
17084   FOR i IN l_tid_tab.first..l_tid_tab.last
17085   LOOP
17086     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
17087           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tid_tab('||i||')=' || l_tid_tab(i));
17088       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tica_id_tab('||i||')=' || l_tica_id_tab(i));
17089       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute_category_tab('||i||')=' || l_tattribute_category_tab(i));
17090       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute1_tab('||i||')=' || l_tattribute1_tab(i));
17091       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute2_tab('||i||')=' || l_tattribute2_tab(i));
17092       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute3_tab('||i||')=' || l_tattribute3_tab(i));
17093       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute4_tab('||i||')=' || l_tattribute4_tab(i));
17094       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute5_tab('||i||')=' || l_tattribute5_tab(i));
17095       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute6_tab('||i||')=' || l_tattribute6_tab(i));
17096       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute7_tab('||i||')=' || l_tattribute7_tab(i));
17097       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute8_tab('||i||')=' || l_tattribute8_tab(i));
17098       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute9_tab('||i||')=' || l_tattribute9_tab(i));
17099       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute10_tab('||i||')=' || l_tattribute10_tab(i));
17100       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute11_tab('||i||')=' || l_tattribute11_tab(i));
17101       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute12_tab('||i||')=' || l_tattribute12_tab(i));
17102       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute13_tab('||i||')=' || l_tattribute13_tab(i));
17103       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute14_tab('||i||')=' || l_tattribute14_tab(i));
17104       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tattribute15_tab('||i||')=' || l_tattribute15_tab(i));
17105       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ttry_id_tab('||i||')=' || l_ttry_id_tab(i));
17106       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tcomments_tab('||i||')=' || l_tcomments_tab(i));
17107       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_treq_asset_id_tab('||i||')=' || l_treq_asset_id_tab(i));
17108       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ttotal_match_amount_tab('||i||')=' || l_ttotal_match_amount_tab(i));
17109       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_torg_id_tab('||i||')=' || l_torg_id_tab(i));
17110     END IF;
17111   END LOOP;
17112   END IF;
17113 
17114   RAISE OKC_API.G_EXCEPTION_ERROR;
17115 
17116 END;  /* insert_okl_trx_assets */
17117 
17118 PROCEDURE insert_okl_trx_assets_2(p_old_id IN okc_k_headers_b.id%TYPE,
17119                                  p_new_id IN okc_k_headers_b.id%TYPE) IS
17120 CURSOR c17_2(p_id NUMBER) IS
17121 SELECT
17122      id, ica_id, tas_type,
17123      object_version_number, attribute_category, attribute1,
17124      attribute2, attribute3, attribute4,
17125      attribute5, attribute6, attribute7,
17126      attribute8, attribute9, attribute10,
17127      attribute11, attribute12, attribute13,
17128      attribute14, attribute15, created_by,
17129      creation_date, last_updated_by, last_update_date,
17130      last_update_login, tsu_code, try_id,
17131      date_trans_occurred, trans_number, comments,
17132      req_asset_id, total_match_amount, org_id,legal_entity_id
17133 FROM okl_trx_assets
17134 WHERE id IN
17135 (
17136   SELECT tas_id
17137   FROM okl_txl_itm_insts b
17138   WHERE kle_id IN
17139    (SELECT a.id
17140     FROM okc_k_lines_b a,
17141          okc_k_items   c
17142     WHERE   a.dnz_chr_id = p_id
17143     AND c.dnz_chr_id = p_id
17144     AND c.cle_id = a.id
17145     AND    a.lse_id = 45
17146     AND    c.object1_id1 IS NULL
17147     AND    c.object1_id2 IS NULL)
17148 );
17149 
17150     l_t2id_tab2 l_t2id_type;
17151     l_t2ica_id_tab2 l_t2ica_id_type;
17152     l_t2tas_type_tab2 l_t2tas_type_type;
17153     l_t2object_version_number_tab2 l_t2object_version_number_type;
17154     l_t2attribute_category_tab2 l_t2attribute_category_type;
17155     l_t2attribute1_tab2 l_t2attribute1_type;
17156     l_t2attribute2_tab2 l_t2attribute2_type;
17157     l_t2attribute3_tab2 l_t2attribute3_type;
17158     l_t2attribute4_tab2 l_t2attribute4_type;
17159     l_t2attribute5_tab2 l_t2attribute5_type;
17160     l_t2attribute6_tab2 l_t2attribute6_type;
17161     l_t2attribute7_tab2 l_t2attribute7_type;
17162     l_t2attribute8_tab2 l_t2attribute8_type;
17163     l_t2attribute9_tab2 l_t2attribute9_type;
17164     l_t2attribute10_tab2 l_t2attribute10_type;
17165     l_t2attribute11_tab2 l_t2attribute11_type;
17166     l_t2attribute12_tab2 l_t2attribute12_type;
17167     l_t2attribute13_tab2 l_t2attribute13_type;
17168     l_t2attribute14_tab2 l_t2attribute14_type;
17169     l_t2attribute15_tab2 l_t2attribute15_type;
17170     l_t2created_by_tab2 l_t2created_by_type;
17171     l_t2creation_date_tab2 l_t2creation_date_type;
17172     l_t2last_updated_by_tab2 l_t2last_updated_by_type;
17173     l_t2last_update_date_tab2 l_t2last_update_date_type;
17174     l_t2last_update_login_tab2 l_t2last_update_login_type;
17175     l_t2tsu_code_tab2 l_t2tsu_code_type;
17176     l_t2try_id_tab2 l_t2try_id_type;
17177     l_t2date_trans_occurred_tab2 l_t2date_trans_occurred_type;
17178     l_t2trans_number_tab2 l_t2trans_number_type;
17179     l_t2comments_tab2 l_t2comments_type;
17180     l_t2req_asset_id_tab2 l_t2req_asset_id_type;
17181     l_t2total_match_amount_tab2 l_t2total_match_amount_type;
17182     l_t2org_id_tab2 l_t2org_id_type;
17183     l_t2legal_entity_id_tab2 l_t2legal_entity_id_type;
17184 
17185 BEGIN
17186   IF (G_DEBUG_ENABLED = 'Y') THEN
17187     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
17188   END IF;
17189   OPEN c17_2(p_old_id);
17190   LOOP
17191     FETCH c17_2 bulk collect INTO
17192      l_t2id_tab2, l_t2ica_id_tab2, l_t2tas_type_tab2,
17193      l_t2object_version_number_tab2, l_t2attribute_category_tab2, l_t2attribute1_tab2,
17194      l_t2attribute2_tab2, l_t2attribute3_tab2, l_t2attribute4_tab2,
17195      l_t2attribute5_tab2, l_t2attribute6_tab2, l_t2attribute7_tab2,
17196      l_t2attribute8_tab2, l_t2attribute9_tab2, l_t2attribute10_tab2,
17197      l_t2attribute11_tab2, l_t2attribute12_tab2, l_t2attribute13_tab2,
17198      l_t2attribute14_tab2, l_t2attribute15_tab2, l_t2created_by_tab2,
17199      l_t2creation_date_tab2, l_t2last_updated_by_tab2, l_t2last_update_date_tab2,
17200      l_t2last_update_login_tab2, l_t2tsu_code_tab2, l_t2try_id_tab2,
17201      l_t2date_trans_occurred_tab2, l_t2trans_number_tab2, l_t2comments_tab2,
17202      l_t2req_asset_id_tab2, l_t2total_match_amount_tab2, l_t2org_id_tab2,l_t2legal_entity_id_tab2
17203     limit G_BULK_SIZE;
17204     EXIT WHEN l_t2id_tab2.COUNT = 0;
17205     FOR i IN l_t2id_tab2.first..l_t2id_tab2.last
17206     LOOP
17207 
17208       l_t2id_tab(l_trx_assets_counter2) := l_t2id_tab2(i);
17209       l_trx_id_mapping_tab2(l_trx_assets_counter2).old_id := l_t2id_tab2(i);
17210       -- Change id
17211       l_t2id_tab(l_trx_assets_counter2) := okc_p_util.raw_to_number(sys_guid());
17212       l_trx_id_mapping_tab2(l_trx_assets_counter2).new_id := l_t2id_tab(l_trx_assets_counter2);
17213 
17214       l_t2ica_id_tab(l_trx_assets_counter2) := l_t2ica_id_tab2(i);
17215       l_t2tas_type_tab(l_trx_assets_counter2) := l_t2tas_type_tab2(i);
17216       l_t2object_version_number_tab(l_trx_assets_counter2) := l_t2object_version_number_tab2(i);
17217       l_t2attribute_category_tab(l_trx_assets_counter2) := l_t2attribute_category_tab2(i);
17218       l_t2attribute1_tab(l_trx_assets_counter2) := l_t2attribute1_tab2(i);
17219       l_t2attribute2_tab(l_trx_assets_counter2) := l_t2attribute2_tab2(i);
17220       l_t2attribute3_tab(l_trx_assets_counter2) := l_t2attribute3_tab2(i);
17221       l_t2attribute4_tab(l_trx_assets_counter2) := l_t2attribute4_tab2(i);
17222       l_t2attribute5_tab(l_trx_assets_counter2) := l_t2attribute5_tab2(i);
17223       l_t2attribute6_tab(l_trx_assets_counter2) := l_t2attribute6_tab2(i);
17224       l_t2attribute7_tab(l_trx_assets_counter2) := l_t2attribute7_tab2(i);
17225       l_t2attribute8_tab(l_trx_assets_counter2) := l_t2attribute8_tab2(i);
17226       l_t2attribute9_tab(l_trx_assets_counter2) := l_t2attribute9_tab2(i);
17227       l_t2attribute10_tab(l_trx_assets_counter2) := l_t2attribute10_tab2(i);
17228       l_t2attribute11_tab(l_trx_assets_counter2) := l_t2attribute11_tab2(i);
17229       l_t2attribute12_tab(l_trx_assets_counter2) := l_t2attribute12_tab2(i);
17230       l_t2attribute13_tab(l_trx_assets_counter2) := l_t2attribute13_tab2(i);
17231       l_t2attribute14_tab(l_trx_assets_counter2) := l_t2attribute14_tab2(i);
17232       l_t2attribute15_tab(l_trx_assets_counter2) := l_t2attribute15_tab2(i);
17233       l_t2created_by_tab(l_trx_assets_counter2) := l_t2created_by_tab2(i);
17234       l_t2creation_date_tab(l_trx_assets_counter2) := l_t2creation_date_tab2(i);
17235       l_t2last_updated_by_tab(l_trx_assets_counter2) := l_t2last_updated_by_tab2(i);
17236       l_t2last_update_date_tab(l_trx_assets_counter2) := l_t2last_update_date_tab2(i);
17237       l_t2last_update_login_tab(l_trx_assets_counter2) := l_t2last_update_login_tab2(i);
17238       l_t2tsu_code_tab(l_trx_assets_counter2) := l_t2tsu_code_tab2(i);
17239       l_t2try_id_tab(l_trx_assets_counter2) := l_t2try_id_tab2(i);
17240       l_t2date_trans_occurred_tab(l_trx_assets_counter2) := l_t2date_trans_occurred_tab2(i);
17241       l_t2trans_number_tab(l_trx_assets_counter2) := l_t2trans_number_tab2(i);
17242       l_t2comments_tab(l_trx_assets_counter2) := l_t2comments_tab2(i);
17243       l_t2req_asset_id_tab(l_trx_assets_counter2) := l_t2req_asset_id_tab2(i);
17244       l_t2total_match_amount_tab(l_trx_assets_counter2) := l_t2total_match_amount_tab2(i);
17245       l_t2org_id_tab(l_trx_assets_counter2) := l_t2org_id_tab2(i);
17246       l_t2legal_entity_id_tab(l_trx_assets_counter2) := l_t2legal_entity_id_tab2(i);
17247 
17248       l_trx_assets_counter2 := l_trx_assets_counter2 + 1;
17249 
17250     END LOOP;
17251   END LOOP;
17252   CLOSE c17_2;
17253 
17254   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
17255       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);
17256   END IF;
17257   IF (l_trx_assets_counter2 > 1) THEN
17258     forall i IN l_t2id_tab.first..l_t2id_tab.last
17259     INSERT INTO okl_trx_assets (
17260      id, ica_id, tas_type,
17261      object_version_number, attribute_category, attribute1,
17262      attribute2, attribute3, attribute4,
17263      attribute5, attribute6, attribute7,
17264      attribute8, attribute9, attribute10,
17265      attribute11, attribute12, attribute13,
17266      attribute14, attribute15, created_by,
17267      creation_date, last_updated_by, last_update_date,
17268      last_update_login, tsu_code, try_id,
17269      date_trans_occurred, trans_number, comments,
17270      req_asset_id, total_match_amount, org_id,legal_entity_id
17271      ,transaction_date
17272     ) VALUES (
17273      l_t2id_tab(i), l_t2ica_id_tab(i), p_trans_type,
17274      1, l_t2attribute_category_tab(i), l_t2attribute1_tab(i),
17275      l_t2attribute2_tab(i), l_t2attribute3_tab(i), l_t2attribute4_tab(i),
17276      l_t2attribute5_tab(i), l_t2attribute6_tab(i), l_t2attribute7_tab(i),
17277      l_t2attribute8_tab(i), l_t2attribute9_tab(i), l_t2attribute10_tab(i),
17278      l_t2attribute11_tab(i), l_t2attribute12_tab(i), l_t2attribute13_tab(i),
17279      l_t2attribute14_tab(i), l_t2attribute15_tab(i), l_created_by,
17280      SYSDATE, l_last_updated_by, SYSDATE,
17281      l_last_update_login, 'ENTERED', l_t2try_id_tab(i),
17282      SYSDATE, okl_trn_seq.NEXTVAL, l_t2comments_tab(i),
17283      l_t2req_asset_id_tab(i), l_t2total_match_amount_tab(i), l_t2org_id_tab(i),l_t2legal_entity_id_tab(i)
17284      ,SYSDATE
17285     );
17286 
17287     sort_trx_id_mapping_tab2;
17288 
17289   END IF;
17290 EXCEPTION WHEN OTHERS THEN
17291 
17292   x_return_status := OKL_API.G_RET_STS_ERROR;
17293   /*OKL_API.set_message(p_app_name => 'OKL',
17294                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
17295                       p_token1 => 'ASSET_NUMBER',
17296                       p_token1_value => 'insert_okl_trx_assets_2');*/
17297     /* DEBUG */
17298   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
17299       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
17300     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 || ' ...');
17301   END IF;
17302   IF (l_t2id_tab.COUNT > 0) THEN
17303   FOR i IN l_t2id_tab.first..l_t2id_tab.last
17304   LOOP
17305     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
17306           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2id_tab('||i||')=' || l_t2id_tab(i));
17307       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2ica_id_tab('||i||')=' || l_t2ica_id_tab(i));
17308       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute_category_tab('||i||')=' || l_t2attribute_category_tab(i));
17309       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute1_tab('||i||')=' || l_t2attribute1_tab(i));
17310       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute2_tab('||i||')=' || l_t2attribute2_tab(i));
17311       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute3_tab('||i||')=' || l_t2attribute3_tab(i));
17312       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute4_tab('||i||')=' || l_t2attribute4_tab(i));
17313       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute5_tab('||i||')=' || l_t2attribute5_tab(i));
17314       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute6_tab('||i||')=' || l_t2attribute6_tab(i));
17315       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute7_tab('||i||')=' || l_t2attribute7_tab(i));
17316       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute8_tab('||i||')=' || l_t2attribute8_tab(i));
17317       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute9_tab('||i||')=' || l_t2attribute9_tab(i));
17318       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute10_tab('||i||')=' || l_t2attribute10_tab(i));
17319       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute11_tab('||i||')=' || l_t2attribute11_tab(i));
17320       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute12_tab('||i||')=' || l_t2attribute12_tab(i));
17321       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute13_tab('||i||')=' || l_t2attribute13_tab(i));
17322       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute14_tab('||i||')=' || l_t2attribute14_tab(i));
17323       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2attribute15_tab('||i||')=' || l_t2attribute15_tab(i));
17324       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2try_id_tab('||i||')=' || l_t2try_id_tab(i));
17325       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2comments_tab('||i||')=' || l_t2comments_tab(i));
17326       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2req_asset_id_tab('||i||')=' || l_t2req_asset_id_tab(i));
17327       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2total_match_amount_tab('||i||')=' || l_t2total_match_amount_tab(i));
17328       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t2org_id_tab('||i||')=' || l_t2org_id_tab(i));
17329     END IF;
17330   END LOOP;
17331   END IF;
17332 
17333   RAISE OKC_API.G_EXCEPTION_ERROR;
17334 
17335 END;  /* insert_okl_trx_assets_2 */
17336 
17337 -- AKP: Delete this function from here. And use
17338 -- okl_copy_asset_pvt.generate_instance_number_ib instead
17339 
17340   FUNCTION generate_instance_number_ib(x_instance_number_ib  OUT NOCOPY  OKL_TXL_ITM_INSTS_V.INSTANCE_NUMBER_IB%TYPE)
17341   RETURN VARCHAR2 IS
17342     x_return_status            VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
17343     G_APP_NAME                    CONSTANT  VARCHAR2(3)   :=  OKL_API.G_APP_NAME;
17344     G_UNEXPECTED_ERROR            CONSTANT  VARCHAR2(200) := 'OKL_CONTRACTS_UNEXP_ERROR';
17345     G_SQLCODE_TOKEN               CONSTANT  VARCHAR2(200) := 'SQLcode';
17346     G_SQLERRM_TOKEN               CONSTANT  VARCHAR2(200) := 'SQLerrm';
17347     -- cursor to get sequence number for asset number
17348     CURSOR c_instance_no_ib IS
17349     SELECT TO_CHAR(OKL_IBN_SEQ.NEXTVAL)
17350     FROM dual;
17351   BEGIN
17352     OPEN  c_instance_no_ib;
17353     FETCH c_instance_no_ib INTO x_instance_number_ib;
17354     IF (c_instance_no_ib%NOTFOUND) THEN
17355       x_return_status := OKC_API.G_RET_STS_ERROR;
17356       OKL_API.SET_MESSAGE(p_app_name 	 => g_app_name,
17357                           p_msg_name	 => g_unexpected_error,
17358                           p_token1	 => g_sqlcode_token,
17359                           p_token1_value => SQLCODE,
17360 			  p_token2	 => g_sqlerrm_token,
17361 			  p_token2_value => SQLERRM);
17362     END IF;
17363     CLOSE c_instance_no_ib;
17364     RETURN x_return_status;
17365   EXCEPTION
17366     WHEN OTHERS THEN
17367       IF c_instance_no_ib%ISOPEN THEN
17368         CLOSE c_instance_no_ib;
17369       END IF;
17370       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
17371       OKL_API.SET_MESSAGE(p_app_name 	 => g_app_name,
17372                           p_msg_name	 => g_unexpected_error,
17373                           p_token1	 => g_sqlcode_token,
17374                           p_token1_value => SQLCODE,
17375 			  p_token2	 => g_sqlerrm_token,
17376 			  p_token2_value => SQLERRM);
17377     RETURN x_return_status;
17378   END generate_instance_number_ib;
17379 
17380 PROCEDURE insert_okl_txl_itm_insts(p_old_id IN okc_k_headers_b.id%TYPE,
17381                                    p_new_id IN okc_k_headers_b.id%TYPE) IS
17382 CURSOR c22(p_id NUMBER) IS
17383 SELECT
17384      p.id, p.object_version_number, p.tas_id,
17385      p.tal_id, p.kle_id, p.tal_type,
17386      p.line_number, p.instance_number_ib, p.object_id1_new,
17387      p.object_id2_new, p.jtot_object_code_new, p.object_id1_old,
17388      p.object_id2_old, p.jtot_object_code_old, p.inventory_org_id,
17389      p.serial_number, p.mfg_serial_number_yn, p.inventory_item_id,
17390      p.inv_master_org_id, p.attribute_category, p.attribute1,
17391      p.attribute2, p.attribute3, p.attribute4,
17392      p.attribute5, p.attribute6, p.attribute7,
17393      p.attribute8, p.attribute9, p.attribute10,
17394      p.attribute11, p.attribute12, p.attribute13,
17395      p.attribute14, p.attribute15, p.created_by,
17396      p.creation_date, p.last_updated_by, p.last_update_date,
17397      p.last_update_login, p.dnz_cle_id, p.instance_id,
17398      p.selected_for_split_flag, p.asd_id
17399 FROM okl_txl_itm_insts p
17400 WHERE p.kle_id IN
17401 (
17402   SELECT a.id
17403   FROM okc_k_lines_b a,
17404        okc_k_items   c
17405   WHERE   a.dnz_chr_id = p_id
17406   AND c.dnz_chr_id = p_id
17407   AND c.cle_id = a.id
17408   AND    a.lse_id = 45
17409   AND    c.object1_id1 IS NULL
17410   AND    c.object1_id2 IS NULL
17411 );
17412 
17413     l_tiid_tab2 l_tiid_type;
17414     l_tiobject_version_number_tab2 l_tiobject_version_number_type;
17415     l_titas_id_tab2 l_titas_id_type;
17416     l_tital_id_tab2 l_tital_id_type;
17417     l_tikle_id_tab2 l_tikle_id_type;
17418     l_tital_type_tab2 l_tital_type_type;
17419     l_tiline_number_tab2 l_tiline_number_type;
17420     l_tiinstance_number_ib_tab2 l_tiinstance_number_ib_type;
17421     l_tiobject_id1_new_tab2 l_tiobject_id1_new_type;
17422     l_tiobject_id2_new_tab2 l_tiobject_id2_new_type;
17423     l_tijtot_object_code_new_tab2 l_tijtot_object_code_new_type;
17424     l_tiobject_id1_old_tab2 l_tiobject_id1_old_type;
17425     l_tiobject_id2_old_tab2 l_tiobject_id2_old_type;
17426     l_tijtot_object_code_old_tab2 l_tijtot_object_code_old_type;
17427     l_tiinventory_org_id_tab2 l_tiinventory_org_id_type;
17428     l_tiserial_number_tab2 l_tiserial_number_type;
17429     l_timfg_serial_number_yn_tab2 l_timfg_serial_number_yn_type;
17430     l_tiinventory_item_id_tab2 l_tiinventory_item_id_type;
17431     l_tiinv_master_org_id_tab2 l_tiinv_master_org_id_type;
17432     l_tiattribute_category_tab2 l_tiattribute_category_type;
17433     l_tiattribute1_tab2 l_tiattribute1_type;
17434     l_tiattribute2_tab2 l_tiattribute2_type;
17435     l_tiattribute3_tab2 l_tiattribute3_type;
17436     l_tiattribute4_tab2 l_tiattribute4_type;
17437     l_tiattribute5_tab2 l_tiattribute5_type;
17438     l_tiattribute6_tab2 l_tiattribute6_type;
17439     l_tiattribute7_tab2 l_tiattribute7_type;
17440     l_tiattribute8_tab2 l_tiattribute8_type;
17441     l_tiattribute9_tab2 l_tiattribute9_type;
17442     l_tiattribute10_tab2 l_tiattribute10_type;
17443     l_tiattribute11_tab2 l_tiattribute11_type;
17444     l_tiattribute12_tab2 l_tiattribute12_type;
17445     l_tiattribute13_tab2 l_tiattribute13_type;
17446     l_tiattribute14_tab2 l_tiattribute14_type;
17447     l_tiattribute15_tab2 l_tiattribute15_type;
17448     l_ticreated_by_tab2 l_ticreated_by_type;
17449     l_ticreation_date_tab2 l_ticreation_date_type;
17450     l_tilast_updated_by_tab2 l_tilast_updated_by_type;
17451     l_tilast_update_date_tab2 l_tilast_update_date_type;
17452     l_tilast_update_login_tab2 l_tilast_update_login_type;
17453     l_tidnz_cle_id_tab2 l_tidnz_cle_id_type;
17454     l_tiinstance_id_tab2 l_tiinstance_id_type;
17455     l_tiselected_for_split_fl_tab2 l_tiselected_for_split_fl_type;
17456     l_tiasd_id_tab2 l_tiasd_id_type;
17457 
17458     l_new_tas_id NUMBER;
17459     l_new_tal_id NUMBER;
17460     l_new_kle_id NUMBER;
17461     l_new_dnz_cle_id NUMBER;
17462     l_new_asset_name VARCHAR2(150);
17463     l_generated_instance_number_ib NUMBER;
17464   l_return_status VARCHAR2(30);
17465 
17466 BEGIN
17467   IF (G_DEBUG_ENABLED = 'Y') THEN
17468     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
17469   END IF;
17470   OPEN c22(p_old_id);
17471   LOOP
17472     FETCH c22 bulk collect INTO
17473       l_tiid_tab2, l_tiobject_version_number_tab2, l_titas_id_tab2,
17474       l_tital_id_tab2, l_tikle_id_tab2, l_tital_type_tab2,
17475       l_tiline_number_tab2, l_tiinstance_number_ib_tab2, l_tiobject_id1_new_tab2,
17476       l_tiobject_id2_new_tab2, l_tijtot_object_code_new_tab2, l_tiobject_id1_old_tab2,
17477       l_tiobject_id2_old_tab2, l_tijtot_object_code_old_tab2, l_tiinventory_org_id_tab2,
17478       l_tiserial_number_tab2, l_timfg_serial_number_yn_tab2, l_tiinventory_item_id_tab2,
17479       l_tiinv_master_org_id_tab2, l_tiattribute_category_tab2, l_tiattribute1_tab2,
17480       l_tiattribute2_tab2, l_tiattribute3_tab2, l_tiattribute4_tab2,
17481       l_tiattribute5_tab2, l_tiattribute6_tab2, l_tiattribute7_tab2,
17482       l_tiattribute8_tab2, l_tiattribute9_tab2, l_tiattribute10_tab2,
17483       l_tiattribute11_tab2, l_tiattribute12_tab2, l_tiattribute13_tab2,
17484       l_tiattribute14_tab2, l_tiattribute15_tab2, l_ticreated_by_tab2,
17485       l_ticreation_date_tab2, l_tilast_updated_by_tab2, l_tilast_update_date_tab2,
17486       l_tilast_update_login_tab2, l_tidnz_cle_id_tab2, l_tiinstance_id_tab2,
17487       l_tiselected_for_split_fl_tab2, l_tiasd_id_tab2
17488     limit G_BULK_SIZE;
17489     EXIT WHEN l_tiid_tab2.COUNT = 0;
17490     FOR i IN l_tiid_tab2.first..l_tiid_tab2.last
17491     LOOP
17492 
17493       l_tiid_tab(l_txl_itm_insts_counter) := l_tiid_tab2(i);
17494       -- Change id
17495       l_tiid_tab(l_txl_itm_insts_counter) := okc_p_util.raw_to_number(sys_guid());
17496 
17497       l_tiobject_version_number_tab(l_txl_itm_insts_counter) := l_tiobject_version_number_tab2(i);
17498       l_titas_id_tab(l_txl_itm_insts_counter) := l_titas_id_tab2(i);
17499       -- Change tas_id
17500       l_new_tas_id := find_trx_mapping_id2(l_titas_id_tab(l_txl_itm_insts_counter));
17501       l_titas_id_tab(l_txl_itm_insts_counter) := l_new_tas_id;
17502 
17503       l_tital_id_tab(l_txl_itm_insts_counter) := l_tital_id_tab2(i);
17504       -- Change tal_id
17505       --l_new_tal_id := find_txl_mapping_id(l_tital_id_tab(l_txl_itm_insts_counter));
17506       --l_tital_id_tab(l_txl_itm_insts_counter) := l_new_tal_id;
17507       l_new_tal_id := NULL;
17508 
17509       l_tikle_id_tab(l_txl_itm_insts_counter) := l_tikle_id_tab2(i);
17510       -- Change kle_id
17511       l_new_kle_id := find_mapping_id(l_tikle_id_tab(l_txl_itm_insts_counter));
17512         IF (l_new_kle_id = -1) THEN
17513           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
17514                       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));
17515           END IF;
17516           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
17517         END IF;
17518       l_tikle_id_tab(l_txl_itm_insts_counter) := l_new_kle_id;
17519 
17520       l_tital_type_tab(l_txl_itm_insts_counter) := l_tital_type_tab2(i);
17521       l_tiline_number_tab(l_txl_itm_insts_counter) := l_tiline_number_tab2(i);
17522       l_tiinstance_number_ib_tab(l_txl_itm_insts_counter) := l_tiinstance_number_ib_tab2(i);
17523 
17524       -- Change instance_number_ib
17525       --print('Old asset_name: ' || l_tiinstance_number_ib_tab(l_txl_itm_insts_counter));
17526       --l_new_asset_name := find_aid_mapping_id(l_tiinstance_number_ib_tab(l_txl_itm_insts_counter));
17527       -- To do: expose okl_copy_asset_pvt.generate_instance_number_ib
17528       -- Use the package call instead
17529       l_return_status := generate_instance_number_ib(l_generated_instance_number_ib);
17530       IF l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
17531         RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
17532       ELSIF l_return_status = OKL_API.G_RET_STS_ERROR THEN
17533         RAISE OKL_API.G_EXCEPTION_ERROR;
17534       END IF;
17535 
17536       l_tiinstance_number_ib_tab(l_txl_itm_insts_counter) := l_generated_instance_number_ib;
17537 
17538       l_tiobject_id1_new_tab(l_txl_itm_insts_counter) := l_tiobject_id1_new_tab2(i);
17539       l_tiobject_id2_new_tab(l_txl_itm_insts_counter) := l_tiobject_id2_new_tab2(i);
17540       l_tijtot_object_code_new_tab(l_txl_itm_insts_counter) := l_tijtot_object_code_new_tab2(i);
17541       l_tiobject_id1_old_tab(l_txl_itm_insts_counter) := l_tiobject_id1_old_tab2(i);
17542       l_tiobject_id2_old_tab(l_txl_itm_insts_counter) := l_tiobject_id2_old_tab2(i);
17543       l_tijtot_object_code_old_tab(l_txl_itm_insts_counter) := l_tijtot_object_code_old_tab2(i);
17544       l_tiinventory_org_id_tab(l_txl_itm_insts_counter) := l_tiinventory_org_id_tab2(i);
17545       l_tiserial_number_tab(l_txl_itm_insts_counter) := l_tiserial_number_tab2(i);
17546       l_timfg_serial_number_yn_tab(l_txl_itm_insts_counter) := l_timfg_serial_number_yn_tab2(i);
17547       l_tiinventory_item_id_tab(l_txl_itm_insts_counter) := l_tiinventory_item_id_tab2(i);
17548       l_tiinv_master_org_id_tab(l_txl_itm_insts_counter) := l_tiinv_master_org_id_tab2(i);
17549       l_tiattribute_category_tab(l_txl_itm_insts_counter) := l_tiattribute_category_tab2(i);
17550       l_tiattribute1_tab(l_txl_itm_insts_counter) := l_tiattribute1_tab2(i);
17551       l_tiattribute2_tab(l_txl_itm_insts_counter) := l_tiattribute2_tab2(i);
17552       l_tiattribute3_tab(l_txl_itm_insts_counter) := l_tiattribute3_tab2(i);
17553       l_tiattribute4_tab(l_txl_itm_insts_counter) := l_tiattribute4_tab2(i);
17554       l_tiattribute5_tab(l_txl_itm_insts_counter) := l_tiattribute5_tab2(i);
17555       l_tiattribute6_tab(l_txl_itm_insts_counter) := l_tiattribute6_tab2(i);
17556       l_tiattribute7_tab(l_txl_itm_insts_counter) := l_tiattribute7_tab2(i);
17557       l_tiattribute8_tab(l_txl_itm_insts_counter) := l_tiattribute8_tab2(i);
17558       l_tiattribute9_tab(l_txl_itm_insts_counter) := l_tiattribute9_tab2(i);
17559       l_tiattribute10_tab(l_txl_itm_insts_counter) := l_tiattribute10_tab2(i);
17560       l_tiattribute11_tab(l_txl_itm_insts_counter) := l_tiattribute11_tab2(i);
17561       l_tiattribute12_tab(l_txl_itm_insts_counter) := l_tiattribute12_tab2(i);
17562       l_tiattribute13_tab(l_txl_itm_insts_counter) := l_tiattribute13_tab2(i);
17563       l_tiattribute14_tab(l_txl_itm_insts_counter) := l_tiattribute14_tab2(i);
17564       l_tiattribute15_tab(l_txl_itm_insts_counter) := l_tiattribute15_tab2(i);
17565       l_ticreated_by_tab(l_txl_itm_insts_counter) := l_ticreated_by_tab2(i);
17566       l_ticreation_date_tab(l_txl_itm_insts_counter) := l_ticreation_date_tab2(i);
17567       l_tilast_updated_by_tab(l_txl_itm_insts_counter) := l_tilast_updated_by_tab2(i);
17568       l_tilast_update_date_tab(l_txl_itm_insts_counter) := l_tilast_update_date_tab2(i);
17569       l_tilast_update_login_tab(l_txl_itm_insts_counter) := l_tilast_update_login_tab2(i);
17570       l_tidnz_cle_id_tab(l_txl_itm_insts_counter) := l_tidnz_cle_id_tab2(i);
17571       -- Change dnz_cle_id ??? AKP
17572       l_new_dnz_cle_id := find_mapping_id(l_tidnz_cle_id_tab(l_txl_itm_insts_counter));
17573         /*if (l_new_dnz_cle_id = -1) then
17574           print('ERROR : Mapping id not found for ' || l_tidnz_cle_id_tab(l_txl_itm_insts_counter));
17575           raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
17576         end if;*/
17577       l_tidnz_cle_id_tab(l_txl_itm_insts_counter) := l_new_dnz_cle_id;
17578 
17579       l_tiinstance_id_tab(l_txl_itm_insts_counter) := l_tiinstance_id_tab2(i);
17580       l_tiselected_for_split_fl_tab(l_txl_itm_insts_counter) := l_tiselected_for_split_fl_tab2(i);
17581       l_tiasd_id_tab(l_txl_itm_insts_counter) := l_tiasd_id_tab2(i);
17582 
17583       l_txl_itm_insts_counter := l_txl_itm_insts_counter + 1;
17584 
17585     END LOOP;
17586   END LOOP;
17587   CLOSE c22;
17588 
17589   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
17590       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);
17591   END IF;
17592   IF (l_txl_itm_insts_counter > 1) THEN
17593     forall i IN l_tiid_tab.first..l_tiid_tab.last
17594       INSERT INTO okl_txl_itm_insts (
17595        id, object_version_number, tas_id,
17596        tal_id, kle_id, tal_type,
17597        line_number, instance_number_ib, object_id1_new,
17598        object_id2_new, jtot_object_code_new, object_id1_old,
17599        object_id2_old, jtot_object_code_old, inventory_org_id,
17600        serial_number, mfg_serial_number_yn, inventory_item_id,
17601        inv_master_org_id, attribute_category, attribute1,
17602        attribute2, attribute3, attribute4,
17603        attribute5, attribute6, attribute7,
17604        attribute8, attribute9, attribute10,
17605        attribute11, attribute12, attribute13,
17606        attribute14, attribute15, created_by,
17607        creation_date, last_updated_by, last_update_date,
17608        last_update_login, dnz_cle_id, instance_id,
17609        selected_for_split_flag, asd_id
17610       ) VALUES (
17611        l_tiid_tab(i), 1, l_titas_id_tab(i),
17612        l_tital_id_tab(i), l_tikle_id_tab(i), p_trans_type,
17613        l_tiline_number_tab(i), l_tiinstance_number_ib_tab(i), l_tiobject_id1_new_tab(i),
17614        l_tiobject_id2_new_tab(i), l_tijtot_object_code_new_tab(i), l_tiobject_id1_old_tab(i),
17615        l_tiobject_id2_old_tab(i), l_tijtot_object_code_old_tab(i), l_tiinventory_org_id_tab(i),
17616        l_tiserial_number_tab(i), l_timfg_serial_number_yn_tab(i), l_tiinventory_item_id_tab(i),
17617        l_tiinv_master_org_id_tab(i), l_tiattribute_category_tab(i), l_tiattribute1_tab(i),
17618        l_tiattribute2_tab(i), l_tiattribute3_tab(i), l_tiattribute4_tab(i),
17619        l_tiattribute5_tab(i), l_tiattribute6_tab(i), l_tiattribute7_tab(i),
17620        l_tiattribute8_tab(i), l_tiattribute9_tab(i), l_tiattribute10_tab(i),
17621        l_tiattribute11_tab(i), l_tiattribute12_tab(i), l_tiattribute13_tab(i),
17622        l_tiattribute14_tab(i), l_tiattribute15_tab(i), l_created_by,
17623        SYSDATE, l_last_updated_by, SYSDATE,
17624        l_last_update_login, l_tidnz_cle_id_tab(i), l_tiinstance_id_tab(i),
17625        l_tiselected_for_split_fl_tab(i), l_tiasd_id_tab(i)
17626       );
17627   END IF;
17628 EXCEPTION WHEN OTHERS THEN
17629 
17630   x_return_status := OKL_API.G_RET_STS_ERROR;
17631   /*OKL_API.set_message(p_app_name => 'OKL',
17632                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
17633                       p_token1 => 'ASSET_NUMBER',
17634                       p_token1_value => 'insert_okl_txl_itm_insts');*/
17635     /* DEBUG */
17636   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
17637       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
17638     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 || ' ...');
17639   END IF;
17640   IF (l_tiid_tab.COUNT > 0) THEN
17641   FOR i IN l_tiid_tab.first..l_tiid_tab.last
17642   LOOP
17643     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
17644           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiid_tab('||i||')=' || l_tiid_tab(i));
17645       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_titas_id_tab('||i||')=' || l_titas_id_tab(i));
17646       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tital_id_tab('||i||')=' || l_tital_id_tab(i));
17647       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tikle_id_tab('||i||')=' || l_tikle_id_tab(i));
17648       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiline_number_tab('||i||')=' || l_tiline_number_tab(i));
17649       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiinstance_number_ib_tab('||i||')=' || l_tiinstance_number_ib_tab(i));
17650       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiobject_id1_new_tab('||i||')=' || l_tiobject_id1_new_tab(i));
17651       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiobject_id2_new_tab('||i||')=' || l_tiobject_id2_new_tab(i));
17652       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));
17653       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiobject_id1_old_tab('||i||')=' || l_tiobject_id1_old_tab(i));
17654       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiobject_id2_old_tab('||i||')=' || l_tiobject_id2_old_tab(i));
17655       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));
17656       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiinventory_org_id_tab('||i||')=' || l_tiinventory_org_id_tab(i));
17657       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiserial_number_tab('||i||')=' || l_tiserial_number_tab(i));
17658       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));
17659       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiinventory_item_id_tab('||i||')=' || l_tiinventory_item_id_tab(i));
17660       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));
17661       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute_category_tab('||i||')=' || l_tiattribute_category_tab(i));
17662       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute1_tab('||i||')=' || l_tiattribute1_tab(i));
17663       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute2_tab('||i||')=' || l_tiattribute2_tab(i));
17664       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute3_tab('||i||')=' || l_tiattribute3_tab(i));
17665       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute4_tab('||i||')=' || l_tiattribute4_tab(i));
17666       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute5_tab('||i||')=' || l_tiattribute5_tab(i));
17667       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute6_tab('||i||')=' || l_tiattribute6_tab(i));
17668       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute7_tab('||i||')=' || l_tiattribute7_tab(i));
17669       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute8_tab('||i||')=' || l_tiattribute8_tab(i));
17670       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute9_tab('||i||')=' || l_tiattribute9_tab(i));
17671       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute10_tab('||i||')=' || l_tiattribute10_tab(i));
17672       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute11_tab('||i||')=' || l_tiattribute11_tab(i));
17673       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute12_tab('||i||')=' || l_tiattribute12_tab(i));
17674       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute13_tab('||i||')=' || l_tiattribute13_tab(i));
17675       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute14_tab('||i||')=' || l_tiattribute14_tab(i));
17676       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiattribute15_tab('||i||')=' || l_tiattribute15_tab(i));
17677       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tidnz_cle_id_tab('||i||')=' || l_tidnz_cle_id_tab(i));
17678       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiinstance_id_tab('||i||')=' || l_tiinstance_id_tab(i));
17679       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));
17680       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tiasd_id_tab('||i||')=' || l_tiasd_id_tab(i));
17681     END IF;
17682   END LOOP;
17683   END IF;
17684 
17685   RAISE OKC_API.G_EXCEPTION_ERROR;
17686 
17687 END;  /* insert_okl_txl_itm_insts */
17688 
17689 PROCEDURE get_orig_depreciation_cost( p_fa_cost IN NUMBER,
17690                                       x_original_cost OUT NOCOPY NUMBER,
17691                                       x_depreciable_cost OUT NOCOPY NUMBER) IS
17692 l_func_currency             VARCHAR2(15);
17693 l_k_currency                VARCHAR2(15);
17694 x_contract_currency         VARCHAR2(15);
17695 x_currency_conversion_type  okl_txl_assets_b.currency_conversion_type%TYPE;
17696 x_currency_conversion_rate  okl_txl_assets_b.currency_conversion_rate%TYPE;
17697 x_currency_conversion_date  okl_txl_assets_b.currency_conversion_date%TYPE;
17698 l_converted_cost            NUMBER;
17699 BEGIN
17700   IF (G_DEBUG_ENABLED = 'Y') THEN
17701     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
17702   END IF;
17703   l_func_currency := OKL_ACCOUNTING_UTIL.get_func_curr_code;
17704   l_k_currency    := l_contract_currency;
17705 
17706   IF (l_func_currency = l_k_currency)  THEN
17707      x_original_cost := p_fa_cost;
17708      x_depreciable_cost :=  p_fa_cost;
17709   ELSE
17710      IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
17711             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);
17712      END IF;
17713      okl_accounting_util.convert_to_contract_currency(
17714                           p_khr_id                    => l_copied_id,
17715                           p_from_currency             => l_func_currency,
17716                           p_transaction_date          => l_contract_start_date,
17717                           p_amount                    => p_fa_cost,
17718                           x_contract_currency         => x_contract_currency,
17719                           x_currency_conversion_type  => x_currency_conversion_type,
17720                           x_currency_conversion_rate  => x_currency_conversion_rate,
17721                           x_currency_conversion_date  => x_currency_conversion_date,
17722                           x_converted_amount          => l_converted_cost);
17723           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
17724                       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'p_fa_cost='|| p_fa_cost || ' l_converted_cost='||l_converted_cost);
17725           END IF;
17726           IF (p_fa_cost >= 0) AND (l_converted_cost < 0) THEN
17727                 --currency conversion rate was not found in Oracle GL
17728                 OKC_API.set_message(p_app_name     => 'OKL_COPY_CONTRACT_PVT',
17729                                p_msg_name     => 'OKL_LLA_CONV_RATE_NOT_FOUND',
17730                                p_token1       => 'FROM_CURRENCY',
17731                                p_token1_value => x_contract_currency,
17732                                p_token2       => 'TO_CURRENCY',
17733                                p_token2_value => l_func_currency,
17734                                p_token3       => 'CONVERSION_TYPE',
17735                                p_token3_value => x_currency_conversion_type,
17736                                p_token4       => 'CONVERSION_DATE',
17737                                p_token4_value => TO_CHAR(x_currency_conversion_date,'DD-MON-YYYY'));
17738                 RAISE OKL_API.G_EXCEPTION_ERROR;
17739           END IF;
17740           x_original_cost := l_converted_cost;
17741           x_depreciable_cost :=  l_converted_cost;
17742     END IF;
17743 
17744 END; /* get_orig_depreciation_cost */
17745 
17746 PROCEDURE get_deprn_details(p_deprn_method_code IN fa_books.deprn_method_code%TYPE,
17747                             p_life_in_months IN fa_books.life_in_months%TYPE,
17748                             p_adjusted_rate IN fa_books.adjusted_rate%TYPE, --vthiruva bug#4439068.
17749                             x_deprn_rate OUT NOCOPY fa_books.adjusted_rate%TYPE,
17750                             x_life_in_months OUT NOCOPY fa_books.life_in_months%TYPE)
17751 IS
17752     --cursors
17753     CURSOR l_life_in_months_csr (p_deprn_method IN VARCHAR2,
17754                                  p_life_in_months IN NUMBER) IS
17755     SELECT 'Y'
17756     FROM   fa_methods
17757     WHERE  method_code = p_deprn_method
17758     AND    life_in_months = p_life_in_months
17759     AND    life_in_months IS NOT NULL;
17760 
17761     CURSOR l_rate_csr (p_deprn_method IN VARCHAR2,
17762                        p_rate         IN NUMBER) IS
17763     SELECT 'Y'
17764     FROM   fa_flat_rates ffr,
17765            fa_methods    fm
17766     WHERE  fm.method_code     = p_deprn_method
17767     AND    ffr.method_id      = fm.method_id
17768     AND    ffr.adjusted_rate  = p_rate
17769     AND    ffr.adjusting_rate  = 0;
17770 
17771     l_life_in_months_exists VARCHAR2(1);
17772 
17773     l_rate_exists VARCHAR2(1);
17774 
17775 BEGIN
17776       --logic
17777       l_life_in_months_exists := 'N';
17778       OPEN l_life_in_months_csr(p_deprn_method   => p_deprn_method_code,
17779                                 p_life_in_months => p_life_in_months);
17780       FETCH l_life_in_months_csr INTO l_life_in_months_exists;
17781       IF l_life_in_months_csr%NOTFOUND THEN
17782           NULL;
17783       END IF;
17784       CLOSE l_life_in_months_csr;
17785 
17786       IF l_life_in_months_exists = 'Y' THEN
17787           x_life_in_months := p_life_in_months;
17788           x_deprn_rate     := NULL;
17789       ELSIF l_life_in_months_exists = 'N' THEN
17790           l_rate_exists := 'N';
17791           OPEN l_rate_csr (p_deprn_method => p_deprn_method_code,
17792                            p_rate         => p_adjusted_rate);
17793           FETCH l_rate_csr INTO l_rate_exists;
17794           IF l_rate_csr%NOTFOUND THEN
17795              NULL;
17796           END IF;
17797           CLOSE l_rate_csr;
17798           IF l_rate_exists = 'Y' THEN
17799               x_deprn_rate     := p_adjusted_rate;
17800               x_life_in_months := NULL;
17801           END IF;
17802       END IF;
17803 
17804 END; /* get_deprn_details */
17805 
17806 PROCEDURE get_salvage_value(
17807         p_salvage_value IN fa_books.salvage_value%TYPE,
17808         p_percent_salvage_value IN fa_books.percent_salvage_value%TYPE,
17809         x_salvage_value OUT NOCOPY fa_books.salvage_value%TYPE,
17810         x_percent_salvage_value OUT NOCOPY fa_books.percent_salvage_value%TYPE) IS
17811 
17812 l_func_currency             VARCHAR2(15);
17813 l_k_currency                VARCHAR2(15);
17814 x_contract_currency         VARCHAR2(15);
17815 x_currency_conversion_type  okl_txl_assets_b.currency_conversion_type%TYPE;
17816 x_currency_conversion_rate  okl_txl_assets_b.currency_conversion_rate%TYPE;
17817 x_currency_conversion_date  okl_txl_assets_b.currency_conversion_date%TYPE;
17818 l_salvage_value            NUMBER;
17819 BEGIN
17820   l_func_currency := OKL_ACCOUNTING_UTIL.get_func_curr_code;
17821   l_k_currency    := l_contract_currency;
17822 
17823   IF (p_percent_salvage_value IS NULL) THEN
17824    IF (l_k_currency <> l_func_currency) THEN
17825      x_salvage_value := NULL;
17826      okl_accounting_util.convert_to_contract_currency(
17827                           p_khr_id                    => l_copied_id,
17828                           p_from_currency             => l_func_currency,
17829                           p_transaction_date          => l_contract_start_date,
17830                           p_amount                    => p_salvage_value,
17831                           x_contract_currency         => x_contract_currency,
17832                           x_currency_conversion_type  => x_currency_conversion_type,
17833                           x_currency_conversion_rate  => x_currency_conversion_rate,
17834                           x_currency_conversion_date  => x_currency_conversion_date,
17835                           x_converted_amount          => l_salvage_value);
17836           IF (p_salvage_value >= 0) AND (l_salvage_value < 0) THEN
17837                 --currency conversion rate was not found in Oracle GL
17838                 OKC_API.set_message(p_app_name     => 'OKL_COPY_CONTRACT_PVT',
17839                                p_msg_name     => 'OKL_LLA_CONV_RATE_NOT_FOUND',
17840                                p_token1       => 'FROM_CURRENCY',
17841                                p_token1_value => x_contract_currency,
17842                                p_token2       => 'TO_CURRENCY',
17843                                p_token2_value => l_func_currency,
17844                                p_token3       => 'CONVERSION_TYPE',
17845                                p_token3_value => x_currency_conversion_type,
17846                                p_token4       => 'CONVERSION_DATE',
17847                                p_token4_value => TO_CHAR(x_currency_conversion_date,'DD-MON-YYYY'));
17848                 RAISE OKL_API.G_EXCEPTION_ERROR;
17849           END IF;
17850           x_salvage_value := l_salvage_value;
17851           --x_percent_salvage_value := null;
17852         ELSE
17853           x_salvage_value :=  p_salvage_value;
17854           --x_percent_salvage_value := null;
17855         END IF;
17856     ELSE
17857      x_percent_salvage_value := p_percent_salvage_value * 100;
17858     END IF;
17859 
17860 END; /* get_salvage_value */
17861 
17862 PROCEDURE insert_okl_trx_assets_3(p_old_id IN okc_k_headers_b.id%TYPE,
17863                            p_new_id IN okc_k_headers_b.id%TYPE) IS
17864 CURSOR c27(p_id NUMBER) IS
17865 SELECT
17866   fa.asset_id ID1,
17867   '#' ID2,
17868   fa.asset_number NAME,
17869   fat.description DESCRIPTION,
17870   fa.Asset_Id ASSET_ID,
17871   fa.Asset_Number ASSET_NUMBER,
17872   fb.book_type_code BOOK_TYPE_CODE,
17873   fb.life_in_months LIFE_IN_MONTHS,
17874   fb.original_cost ORIGINAL_COST,
17875   fb.cost COST,
17876   fb.adjusted_cost ADJUSTED_COST,
17877   fa.tag_number TAG_NUMBER,
17878   fa.current_units CURRENT_UNITS,
17879   fa.serial_number SERIAL_NUMBER,
17880   fb.reval_ceiling REVAL_CEILING,
17881   fa.new_used NEW_USED,
17882   fb.date_placed_in_service IN_SERVICE_DATE,
17883   fa.manufacturer_name MANUFACTURER_NAME,
17884   fa.model_number MODEL_NUMBER,
17885   fa.asset_type ASSET_TYPE,
17886   fb.salvage_value SALVAGE_VALUE,
17887   fb.percent_salvage_value PERCENT_SALVAGE_VALUE,
17888   fa.asset_category_id DEPRECIATION_CATEGORY,
17889   fb.deprn_start_date DEPR_START_DATE,
17890   fb.deprn_method_code DEPRN_METHOD_CODE,
17891   fb.rate_adjustment_factor RATE_ADJUSTMENT_FACTOR,
17892   fb.basic_rate BASIC_RATE,
17893   fb.adjusted_rate ADJUSTED_RATE,
17894   fb.Date_effective START_DATE_ACTIVE,
17895   fb.Date_ineffective END_DATE_ACTIVE,
17896   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,
17897   NULL PRIMARY_UOM_CODE,
17898   fb.recoverable_cost RECOVERABLE_COST,
17899   fbc.org_id ORG_ID,
17900   fbc.set_of_books_id SET_OF_BOOKS_ID,
17901   fa.property_type_code PROPERTY_TYPE_CODE,
17902   fa.property_1245_1250_code PROPERTY_1245_1250_CODE,
17903   fa.in_use_flag IN_USE_FLAG,
17904   fa.owned_leased OWNED_LEASED,
17905   fa.inventorial INVENTORIAL,
17906   fa.ASSET_KEY_CCID ASSET_KEY_CCID,
17907   fbc.book_class book_class ,
17908   b.id,
17909   b.cle_id
17910 FROM FA_BOOK_CONTROLS FBC,
17911      FA_BOOKS FB,
17912      FA_ADDITIONS_TL FAT,
17913      FA_ADDITIONS_B FA ,
17914      okc_k_items c,
17915      okc_k_lines_b b
17916 WHERE
17917 fbc.book_type_code = fb.book_type_code
17918 AND NVL(fbc.date_ineffective,SYSDATE+1) > SYSDATE
17919 AND fb.asset_id = fa.asset_id
17920 AND fb.transaction_header_id_out IS NULL
17921 AND fat.asset_id = fa.asset_id
17922 AND fat.LANGUAGE = USERENV('LANG')
17923 AND fa.asset_id = TO_CHAR(c.object1_id1) --for LSE_ID = 42
17924 AND c.cle_id = b.id
17925 AND c.object1_id1 IS NOT NULL
17926 AND c.object1_id2 IS NOT NULL
17927 AND b.lse_id = 42
17928 AND b.dnz_chr_id=p_id
17929 AND c.dnz_chr_id=p_id
17930 AND fbc.book_class IN ('CORPORATE', 'TAX')
17931 ORDER BY b.cle_id;
17932 
17933 
17934 
17935 CURSOR c_base_language IS
17936   SELECT language_code
17937   FROM   fnd_languages
17938   WHERE installed_flag = 'B';
17939 
17940 CURSOR c_languages IS
17941   SELECT language_code
17942   FROM   fnd_languages
17943   WHERE installed_flag IN ('B','I');
17944 
17945 -- Bug# 5591618
17946 /*
17947 Changed the cursor to consider the try_id of 'Internal Asset Creation' for US
17948 language. The base language could be different in different instances and
17949 the cursor returns null if the base language is other than U.S lang.
17950 This resulted in try_id turning 1 which is not a valid try_id and therefore
17951 not able to activate a copied contract.
17952 */
17953 
17954 CURSOR c_try_id IS
17955 SELECT id
17956 FROM   okl_trx_types_tl
17957 WHERE  name = 'Internal Asset Creation'
17958 AND    LANGUAGE = 'US';
17959 
17960 --Bug# 5591618
17961 /*
17962 --CURSOR c_try_id IS
17963 --SELECT a.id
17964 --FROM   okl_trx_types_tl a,
17965        --fnd_languages b
17966 --WHERE  a.name = 'Internal Asset Creation'
17967 --AND    a.LANGUAGE = b.language_code
17968 --AND    b.installed_flag = 'B';
17969 */
17970 
17971 CURSOR c_location_id(p_asset_id IN fa_additions_b.asset_id%TYPE,
17972                      p_book_type_code IN fa_books.book_type_code%TYPE) IS
17973 SELECT location_id
17974 FROM   fa_distribution_history
17975 WHERE  asset_id = p_asset_id
17976 AND    book_type_code = p_book_type_code
17977 AND    transaction_header_id_out IS NULL
17978 AND    ROWNUM < 2;
17979 
17980     TYPE l_ID1_type IS TABLE OF fa_additions_b.asset_id%TYPE INDEX BY BINARY_INTEGER;
17981     TYPE l_ID2_type IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
17982     TYPE l_NAME_type IS TABLE OF fa_additions_b.asset_number%TYPE INDEX BY BINARY_INTEGER;
17983     TYPE l_DESCRIPTION_type IS TABLE OF fa_additions_tl.description%TYPE INDEX BY BINARY_INTEGER;
17984     TYPE l_ASSET_ID_type IS TABLE OF fa_additions_b.asset_id%TYPE INDEX BY BINARY_INTEGER;
17985     TYPE l_ASSET_NUMBER_type IS TABLE OF fa_additions_b.asset_number%TYPE INDEX BY BINARY_INTEGER;
17986     TYPE l_BOOK_TYPE_CODE_type IS TABLE OF fa_books.book_type_code%TYPE INDEX BY BINARY_INTEGER;
17987     TYPE l_LIFE_IN_MONTHS_type IS TABLE OF fa_books.life_in_months%TYPE INDEX BY BINARY_INTEGER;
17988     TYPE l_ORIGINAL_COST_type IS TABLE OF fa_books.original_cost%TYPE INDEX BY BINARY_INTEGER;
17989     TYPE l_COST_type IS TABLE OF fa_books.cost%TYPE INDEX BY BINARY_INTEGER;
17990     TYPE l_ADJUSTED_COST_type IS TABLE OF fa_books.adjusted_cost%TYPE INDEX BY BINARY_INTEGER;
17991     TYPE l_TAG_NUMBER_type IS TABLE OF fa_additions_b.tag_number%TYPE INDEX BY BINARY_INTEGER;
17992     TYPE l_CURRENT_UNITS_type IS TABLE OF fa_additions_b.current_units%TYPE INDEX BY BINARY_INTEGER;
17993     TYPE l_SERIAL_NUMBER_type IS TABLE OF fa_additions_b.serial_number%TYPE INDEX BY BINARY_INTEGER;
17994     TYPE l_REVAL_CEILING_type IS TABLE OF fa_books.reval_ceiling%TYPE INDEX BY BINARY_INTEGER;
17995     TYPE l_NEW_USED_type IS TABLE OF fa_additions_b.new_used%TYPE INDEX BY BINARY_INTEGER;
17996     TYPE l_IN_SERVICE_DATE_type IS TABLE OF fa_books.date_placed_in_service%TYPE INDEX BY BINARY_INTEGER;
17997     TYPE l_MANUFACTURER_NAME_type IS TABLE OF fa_additions_b.manufacturer_name%TYPE INDEX BY BINARY_INTEGER;
17998     TYPE l_MODEL_NUMBER_type IS TABLE OF fa_additions_b.model_number%TYPE INDEX BY BINARY_INTEGER;
17999     TYPE l_ASSET_TYPE_type IS TABLE OF fa_additions_b.asset_type%TYPE INDEX BY BINARY_INTEGER;
18000     TYPE l_SALVAGE_VALUE_type IS TABLE OF fa_books.salvage_value%TYPE INDEX BY BINARY_INTEGER;
18001     TYPE l_PERCENT_SALVAGE_VALUE_type IS TABLE OF fa_books.percent_salvage_value%TYPE INDEX BY BINARY_INTEGER;
18002     TYPE l_DEPRECIATION_CATEGORY_type IS TABLE OF fa_additions_b.asset_category_id%TYPE INDEX BY BINARY_INTEGER;
18003     TYPE l_DEPR_START_DATE_type IS TABLE OF fa_books.deprn_start_date%TYPE INDEX BY BINARY_INTEGER;
18004     TYPE l_DEPRN_METHOD_CODE_type IS TABLE OF fa_books.deprn_method_code%TYPE INDEX BY BINARY_INTEGER;
18005     TYPE l_RATE_ADJUSTMENT_FACTOR_type IS TABLE OF fa_books.rate_adjustment_factor%TYPE INDEX BY BINARY_INTEGER;
18006     TYPE l_BASIC_RATE_type IS TABLE OF fa_books.basic_rate%TYPE INDEX BY BINARY_INTEGER;
18007     TYPE l_ADJUSTED_RATE_type IS TABLE OF fa_books.adjusted_rate%TYPE INDEX BY BINARY_INTEGER;
18008     TYPE l_START_DATE_ACTIVE_type IS TABLE OF fa_books.date_effective%TYPE INDEX BY BINARY_INTEGER;
18009     TYPE l_END_DATE_ACTIVE_type IS TABLE OF fa_books.date_ineffective%TYPE INDEX BY BINARY_INTEGER;
18010     TYPE l_STATUS_type IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
18011     TYPE l_PRIMARY_UOM_CODE_type IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
18012     TYPE l_RECOVERABLE_COST_type IS TABLE OF fa_books.recoverable_cost%TYPE INDEX BY BINARY_INTEGER;
18013     TYPE l_ORG_ID_type IS TABLE OF fa_book_controls.org_id%TYPE INDEX BY BINARY_INTEGER;
18014     TYPE l_SET_OF_BOOKS_ID_type IS TABLE OF fa_book_controls.set_of_books_id%TYPE INDEX BY BINARY_INTEGER;
18015     TYPE l_PROPERTY_TYPE_CODE_type IS TABLE OF fa_additions_b.property_type_code%TYPE INDEX BY BINARY_INTEGER;
18016     TYPE l_PROPERTY_1245_1250_CODE_type IS TABLE OF fa_additions_b.property_1245_1250_code%TYPE INDEX BY BINARY_INTEGER;
18017     TYPE l_IN_USE_FLAG_type IS TABLE OF fa_additions_b.in_use_flag%TYPE INDEX BY BINARY_INTEGER;
18018     TYPE l_OWNED_LEASED_type IS TABLE OF fa_additions_b.owned_leased%TYPE INDEX BY BINARY_INTEGER;
18019     TYPE l_INVENTORIAL_type IS TABLE OF fa_additions_b.inventorial%TYPE INDEX BY BINARY_INTEGER;
18020     TYPE l_ASSET_KEY_CCID_type IS TABLE OF fa_additions_b.asset_key_ccid%TYPE INDEX BY BINARY_INTEGER;
18021     TYPE l_book_class_type IS TABLE OF fa_book_controls.book_class%TYPE INDEX BY BINARY_INTEGER;
18022     TYPE l_id_type IS TABLE OF okc_k_lines_b.id%TYPE INDEX BY BINARY_INTEGER;
18023     TYPE l_cle_id_type IS TABLE OF okc_k_lines_b.cle_id%TYPE INDEX BY BINARY_INTEGER;
18024 
18025     TYPE l_lang_tab_type IS TABLE OF fnd_languages.language_code%TYPE INDEX BY BINARY_INTEGER;
18026 
18027     l_ID1_tab l_ID1_type;
18028     l_ID2_tab l_ID2_type;
18029     l_NAME_local_tab l_NAME_type;
18030     l_DESCRIPTION_tab l_DESCRIPTION_type;
18031     l_ASSET_ID_tab l_ASSET_ID_type;
18032     l_ASSET_NUMBER_tab l_ASSET_NUMBER_type;
18033     l_BOOK_TYPE_CODE_tab l_BOOK_TYPE_CODE_type;
18034     l_LIFE_IN_MONTHS_tab l_LIFE_IN_MONTHS_type;
18035     l_ORIGINAL_COST_tab l_ORIGINAL_COST_type;
18036     l_COST_tab l_COST_type;
18037     l_ADJUSTED_COST_tab l_ADJUSTED_COST_type;
18038     l_TAG_NUMBER_tab l_TAG_NUMBER_type;
18039     l_CURRENT_UNITS_tab l_CURRENT_UNITS_type;
18040     l_SERIAL_NUMBER_tab l_SERIAL_NUMBER_type;
18041     l_REVAL_CEILING_tab l_REVAL_CEILING_type;
18042     l_NEW_USED_tab l_NEW_USED_type;
18043     l_IN_SERVICE_DATE_tab l_IN_SERVICE_DATE_type;
18044     l_MANUFACTURER_NAME_tab l_MANUFACTURER_NAME_type;
18045     l_MODEL_NUMBER_tab l_MODEL_NUMBER_type;
18046     l_ASSET_TYPE_tab l_ASSET_TYPE_type;
18047     l_SALVAGE_VALUE_tab l_SALVAGE_VALUE_type;
18048     l_PERCENT_SALVAGE_VALUE_tab l_PERCENT_SALVAGE_VALUE_type;
18049     l_DEPRECIATION_CATEGORY_tab l_DEPRECIATION_CATEGORY_type;
18050     l_DEPR_START_DATE_tab l_DEPR_START_DATE_type;
18051     l_DEPRN_METHOD_CODE_tab l_DEPRN_METHOD_CODE_type;
18052     l_RATE_ADJUSTMENT_FACTOR_tab l_RATE_ADJUSTMENT_FACTOR_type;
18053     l_BASIC_RATE_tab l_BASIC_RATE_type;
18054     l_ADJUSTED_RATE_tab l_ADJUSTED_RATE_type;
18055     l_START_DATE_ACTIVE_tab l_START_DATE_ACTIVE_type;
18056     l_END_DATE_ACTIVE_tab l_END_DATE_ACTIVE_type;
18057     l_STATUS_tab l_STATUS_type;
18058     l_PRIMARY_UOM_CODE_tab l_PRIMARY_UOM_CODE_type;
18059     l_RECOVERABLE_COST_tab l_RECOVERABLE_COST_type;
18060     l_ORG_ID_tab l_ORG_ID_type;
18061     l_SET_OF_BOOKS_ID_tab l_SET_OF_BOOKS_ID_type;
18062     l_PROPERTY_TYPE_CODE_tab l_PROPERTY_TYPE_CODE_type;
18063     l_PROPERTY_1245_1250_CODE_tab l_PROPERTY_1245_1250_CODE_type;
18064     l_IN_USE_FLAG_tab l_IN_USE_FLAG_type;
18065     l_OWNED_LEASED_tab l_OWNED_LEASED_type;
18066     l_INVENTORIAL_tab l_INVENTORIAL_type;
18067     l_ASSET_KEY_CCID_tab l_ASSET_KEY_CCID_type;
18068     l_book_class_tab l_book_class_type;
18069     l_id_local_tab l_id_type;
18070 
18071     l_okl_trx_counter3 NUMBER := 1;
18072 
18073     l_ID1_tab2 l_ID1_type;
18074     l_ID2_tab2 l_ID2_type;
18075     l_NAME_local_tab2 l_NAME_type;
18076     l_DESCRIPTION_tab2 l_DESCRIPTION_type;
18077     l_ASSET_ID_tab2 l_ASSET_ID_type;
18078     l_ASSET_NUMBER_tab2 l_ASSET_NUMBER_type;
18079     l_BOOK_TYPE_CODE_tab2 l_BOOK_TYPE_CODE_type;
18080     l_LIFE_IN_MONTHS_tab2 l_LIFE_IN_MONTHS_type;
18081     l_ORIGINAL_COST_tab2 l_ORIGINAL_COST_type;
18082     l_COST_tab2 l_COST_type;
18083     l_ADJUSTED_COST_tab2 l_ADJUSTED_COST_type;
18084     l_TAG_NUMBER_tab2 l_TAG_NUMBER_type;
18085     l_CURRENT_UNITS_tab2 l_CURRENT_UNITS_type;
18086     l_SERIAL_NUMBER_tab2 l_SERIAL_NUMBER_type;
18087     l_REVAL_CEILING_tab2 l_REVAL_CEILING_type;
18088     l_NEW_USED_tab2 l_NEW_USED_type;
18089     l_IN_SERVICE_DATE_tab2 l_IN_SERVICE_DATE_type;
18090     l_MANUFACTURER_NAME_tab2 l_MANUFACTURER_NAME_type;
18091     l_MODEL_NUMBER_tab2 l_MODEL_NUMBER_type;
18092     l_ASSET_TYPE_tab2 l_ASSET_TYPE_type;
18093     l_SALVAGE_VALUE_tab2 l_SALVAGE_VALUE_type;
18094     l_PERCENT_SALVAGE_VALUE_tab2 l_PERCENT_SALVAGE_VALUE_type;
18095     l_DEPRECIATION_CATEGORY_tab2 l_DEPRECIATION_CATEGORY_type;
18096     l_DEPR_START_DATE_tab2 l_DEPR_START_DATE_type;
18097     l_DEPRN_METHOD_CODE_tab2 l_DEPRN_METHOD_CODE_type;
18098     l_RATE_ADJUSTMENT_FACTOR_tab2 l_RATE_ADJUSTMENT_FACTOR_type;
18099     l_BASIC_RATE_tab2 l_BASIC_RATE_type;
18100     l_ADJUSTED_RATE_tab2 l_ADJUSTED_RATE_type;
18101     l_START_DATE_ACTIVE_tab2 l_START_DATE_ACTIVE_type;
18102     l_END_DATE_ACTIVE_tab2 l_END_DATE_ACTIVE_type;
18103     l_STATUS_tab2 l_STATUS_type;
18104     l_PRIMARY_UOM_CODE_tab2 l_PRIMARY_UOM_CODE_type;
18105     l_RECOVERABLE_COST_tab2 l_RECOVERABLE_COST_type;
18106     l_ORG_ID_tab2 l_ORG_ID_type;
18107     l_SET_OF_BOOKS_ID_tab2 l_SET_OF_BOOKS_ID_type;
18108     l_PROPERTY_TYPE_CODE_tab2 l_PROPERTY_TYPE_CODE_type;
18109     l_PROPERTY_1245_1250_CODE_tab2 l_PROPERTY_1245_1250_CODE_type;
18110     l_IN_USE_FLAG_tab2 l_IN_USE_FLAG_type;
18111     l_OWNED_LEASED_tab2 l_OWNED_LEASED_type;
18112     l_INVENTORIAL_tab2 l_INVENTORIAL_type;
18113     l_ASSET_KEY_CCID_tab2 l_ASSET_KEY_CCID_type;
18114     l_book_class_tab2 l_book_class_type;
18115     l_id_local_tab2 l_id_type;
18116     l_cle_id_tab2 l_cle_id_type;
18117 
18118   l_new_id NUMBER;
18119   l_t3id_tab l_tid_type;
18120 
18121     -- okl_txl_assets_tl
18122     l_tl2id_tab l_tlid_type;
18123     l_tl2description_tab l_tldescription_type;
18124     l_tl2language_tab l_tllanguage_type;
18125 
18126     l_txl_assets_tl_counter4 NUMBER := 1;
18127     l_lang_tab l_lang_tab_type;
18128     l_base_language fnd_languages.language_code%TYPE;
18129 
18130   l_orig_cost NUMBER;
18131   l_depreciable_cost NUMBER;
18132   l_deprn_rate fa_books.adjusted_rate%TYPE;
18133   l_life_in_months fa_books.life_in_months%TYPE;
18134   l_salvage_value fa_books.salvage_value%TYPE;
18135   l_percent_salvage_value fa_books.percent_salvage_value%TYPE;
18136 
18137   --okl_txd_assets_b
18138   l_db2id_tab l_dbid_type;
18139     l_db2tal_id_tab l_dbtal_id_type;
18140     l_db2line_detail_number_tab l_dbline_detail_number_type;
18141     l_db2asset_number_tab l_dbasset_number_type;
18142     l_db2quantity_tab l_dbquantity_type;
18143     l_db2cost_tab l_dbcost_type;
18144     l_db2tax_book_tab l_dbtax_book_type;
18145     l_db2life_in_months_tax_tab l_dblife_in_months_tax_type;
18146     l_db2deprn_method_tax_tab l_dbdeprn_method_tax_type;
18147     l_db2deprn_rate_tax_tab l_dbdeprn_rate_tax_type;
18148     l_db2salvage_value_tab l_dbsalvage_value_type;
18149 
18150     l_txd_assets_b_counter4 NUMBER := 1;
18151   l_new_tal_id NUMBER;
18152   l_new_line_number NUMBER;
18153   l_junk_cost NUMBER;
18154 
18155     -- okl_txd_assets_tl
18156     l_dl2id_tab l_dlid_type;
18157     l_dl2description_tab l_dldescription_type;
18158     l_dl2language_tab l_dllanguage_type;
18159 
18160     l_txd_assets_tl_counter4 NUMBER := 1;
18161 
18162     l_location_id NUMBER;
18163     l_new_asset_number fa_additions_b.asset_number%TYPE;
18164     l_tmp_okl_42_rec l_okl_k_lines_rec_type;
18165     l_tmp_itm_rec l_okc_k_items_rec_type;
18166 
18167     l_cle_id NUMBER;
18168     l_new_33_id NUMBER;
18169     l_tmp_okl_33_rec l_okl_k_lines_rec_type;
18170     l_tmp_okc_34_rec l_okc_k_items_rec_type;
18171     l_new_34_id NUMBER;
18172     l_asset_name_old okc_k_lines_tl.name%TYPE;
18173     l_multi_gaap_profile okl_txd_assets_b.tax_book%TYPE;
18174 
18175    --Added by dpsingh for LE Uptake
18176   CURSOR contract_num_csr (p_ctr_id1 NUMBER) IS
18177   SELECT  contract_number
18178   FROM OKC_K_HEADERS_B
18179   WHERE id = p_ctr_id1;
18180 
18181   l_cntrct_number          OKC_K_HEADERS_B.CONTRACT_NUMBER%TYPE;
18182   l_legal_entity_id NUMBER;
18183 
18184 BEGIN
18185   OPEN c_try_id;
18186   FETCH c_try_id INTO l_try_id;
18187   IF (c_try_id%NOTFOUND) THEN
18188     l_try_id := 1;
18189   END IF;
18190   CLOSE c_try_id;
18191 
18192   OPEN c_languages;
18193   FETCH c_languages bulk collect INTO
18194     l_lang_tab
18195   limit G_BULK_SIZE;
18196   CLOSE c_languages;
18197 
18198   FOR r IN c_base_language
18199   LOOP
18200     l_base_language := r.language_code;
18201   END LOOP;
18202 
18203   OPEN c27(p_old_id);
18204   LOOP
18205     FETCH c27 bulk collect INTO
18206      l_ID1_tab2, l_ID2_tab2, l_NAME_local_tab2,
18207      l_DESCRIPTION_tab2, l_ASSET_ID_tab2, l_ASSET_NUMBER_tab2,
18208      l_BOOK_TYPE_CODE_tab2, l_LIFE_IN_MONTHS_tab2, l_ORIGINAL_COST_tab2,
18209      l_COST_tab2, l_ADJUSTED_COST_tab2, l_TAG_NUMBER_tab2,
18210      l_CURRENT_UNITS_tab2, l_SERIAL_NUMBER_tab2, l_REVAL_CEILING_tab2,
18211      l_NEW_USED_tab2, l_IN_SERVICE_DATE_tab2, l_MANUFACTURER_NAME_tab2,
18212      l_MODEL_NUMBER_tab2, l_ASSET_TYPE_tab2, l_SALVAGE_VALUE_tab2,
18213      l_PERCENT_SALVAGE_VALUE_tab2, l_DEPRECIATION_CATEGORY_tab2, l_DEPR_START_DATE_tab2,
18214      l_DEPRN_METHOD_CODE_tab2, l_RATE_ADJUSTMENT_FACTOR_tab2, l_BASIC_RATE_tab2,
18215      l_ADJUSTED_RATE_tab2, l_START_DATE_ACTIVE_tab2, l_END_DATE_ACTIVE_tab2,
18216      l_STATUS_tab2, l_PRIMARY_UOM_CODE_tab2, l_RECOVERABLE_COST_tab2,
18217      l_ORG_ID_tab2, l_SET_OF_BOOKS_ID_tab2, l_PROPERTY_TYPE_CODE_tab2,
18218      l_PROPERTY_1245_1250_CODE_tab2, l_IN_USE_FLAG_tab2, l_OWNED_LEASED_tab2,
18219      l_INVENTORIAL_tab2, l_ASSET_KEY_CCID_tab2, l_book_class_tab2,
18220      l_id_local_tab2, l_cle_id_tab2
18221     limit G_BULK_SIZE;
18222     EXIT WHEN l_ID1_tab2.COUNT=0;
18223     FOR i IN l_ID1_tab2.first..l_ID1_tab2.last
18224     LOOP
18225       l_ID1_tab(l_okl_trx_counter3) := l_ID1_tab2(i);
18226       l_ID2_tab(l_okl_trx_counter3) := l_ID2_tab2(i);
18227       l_NAME_local_tab(l_okl_trx_counter3) := l_NAME_local_tab2(i);
18228       l_DESCRIPTION_tab(l_okl_trx_counter3) := l_DESCRIPTION_tab2(i);
18229       l_ASSET_ID_tab(l_okl_trx_counter3) := l_ASSET_ID_tab2(i);
18230       l_ASSET_NUMBER_tab(l_okl_trx_counter3) := l_ASSET_NUMBER_tab2(i);
18231       l_BOOK_TYPE_CODE_tab(l_okl_trx_counter3) := l_BOOK_TYPE_CODE_tab2(i);
18232       l_LIFE_IN_MONTHS_tab(l_okl_trx_counter3) := l_LIFE_IN_MONTHS_tab2(i);
18233       l_ORIGINAL_COST_tab(l_okl_trx_counter3) := l_ORIGINAL_COST_tab2(i);
18234       l_COST_tab(l_okl_trx_counter3) := l_COST_tab2(i);
18235       l_ADJUSTED_COST_tab(l_okl_trx_counter3) := l_ADJUSTED_COST_tab2(i);
18236       l_TAG_NUMBER_tab(l_okl_trx_counter3) := l_TAG_NUMBER_tab2(i);
18237       l_CURRENT_UNITS_tab(l_okl_trx_counter3) := l_CURRENT_UNITS_tab2(i);
18238       l_SERIAL_NUMBER_tab(l_okl_trx_counter3) := l_SERIAL_NUMBER_tab2(i);
18239       l_REVAL_CEILING_tab(l_okl_trx_counter3) := l_REVAL_CEILING_tab2(i);
18240       l_NEW_USED_tab(l_okl_trx_counter3) := l_NEW_USED_tab2(i);
18241       l_IN_SERVICE_DATE_tab(l_okl_trx_counter3) := l_IN_SERVICE_DATE_tab2(i);
18242       l_MANUFACTURER_NAME_tab(l_okl_trx_counter3) := l_MANUFACTURER_NAME_tab2(i);
18243       l_MODEL_NUMBER_tab(l_okl_trx_counter3) := l_MODEL_NUMBER_tab2(i);
18244       l_ASSET_TYPE_tab(l_okl_trx_counter3) := l_ASSET_TYPE_tab2(i);
18245       l_SALVAGE_VALUE_tab(l_okl_trx_counter3) := l_SALVAGE_VALUE_tab2(i);
18246       l_PERCENT_SALVAGE_VALUE_tab(l_okl_trx_counter3) := l_PERCENT_SALVAGE_VALUE_tab2(i);
18247       l_DEPRECIATION_CATEGORY_tab(l_okl_trx_counter3) := l_DEPRECIATION_CATEGORY_tab2(i);
18248       l_DEPR_START_DATE_tab(l_okl_trx_counter3) := l_DEPR_START_DATE_tab2(i);
18249       l_DEPRN_METHOD_CODE_tab(l_okl_trx_counter3) := l_DEPRN_METHOD_CODE_tab2(i);
18250       l_RATE_ADJUSTMENT_FACTOR_tab(l_okl_trx_counter3) := l_RATE_ADJUSTMENT_FACTOR_tab2(i);
18251       l_BASIC_RATE_tab(l_okl_trx_counter3) := l_BASIC_RATE_tab2(i);
18252       l_ADJUSTED_RATE_tab(l_okl_trx_counter3) := l_ADJUSTED_RATE_tab2(i);
18253       l_START_DATE_ACTIVE_tab(l_okl_trx_counter3) := l_START_DATE_ACTIVE_tab2(i);
18254       l_END_DATE_ACTIVE_tab(l_okl_trx_counter3) := l_END_DATE_ACTIVE_tab2(i);
18255       l_STATUS_tab(l_okl_trx_counter3) := l_STATUS_tab2(i);
18256       l_PRIMARY_UOM_CODE_tab(l_okl_trx_counter3) := l_PRIMARY_UOM_CODE_tab2(i);
18257       l_RECOVERABLE_COST_tab(l_okl_trx_counter3) := l_RECOVERABLE_COST_tab2(i);
18258       l_ORG_ID_tab(l_okl_trx_counter3) := l_ORG_ID_tab2(i);
18259       l_SET_OF_BOOKS_ID_tab(l_okl_trx_counter3) := l_SET_OF_BOOKS_ID_tab2(i);
18260       l_PROPERTY_TYPE_CODE_tab(l_okl_trx_counter3) := l_PROPERTY_TYPE_CODE_tab2(i);
18261       l_PROPERTY_1245_1250_CODE_tab(l_okl_trx_counter3) := l_PROPERTY_1245_1250_CODE_tab2(i);
18262       l_IN_USE_FLAG_tab(l_okl_trx_counter3) := l_IN_USE_FLAG_tab2(i);
18263       l_OWNED_LEASED_tab(l_okl_trx_counter3) := l_OWNED_LEASED_tab2(i);
18264       l_INVENTORIAL_tab(l_okl_trx_counter3) := l_INVENTORIAL_tab2(i);
18265       l_ASSET_KEY_CCID_tab(l_okl_trx_counter3) := l_ASSET_KEY_CCID_tab2(i);
18266       l_book_class_tab(l_okl_trx_counter3) := l_book_class_tab2(i);
18267       l_ID_local_tab(l_okl_trx_counter3) := l_ID_local_tab2(i);
18268 
18269       -- Change id (which is same as kle_id)
18270       l_new_id := find_mapping_id(l_ID_local_tab(l_okl_trx_counter3));
18271         IF (l_new_id = -1) THEN
18272           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18273                       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));
18274           END IF;
18275           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
18276         END IF;
18277       l_ID_local_tab(l_okl_trx_counter3) := l_new_id;
18278 
18279       l_okl_trx_counter3 := l_okl_trx_counter3 + 1;
18280 
18281     END LOOP;
18282   END LOOP;
18283   CLOSE c27;
18284   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18285       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ID1_tab.count=' || l_ID1_tab.COUNT);
18286   END IF;
18287   IF (l_ID1_tab.COUNT > 0) THEN
18288   FOR i IN l_ID1_tab.first..l_ID1_tab.last
18289   LOOP
18290     IF (l_book_class_tab(i) = 'CORPORATE') THEN
18291       -- Populate okl_trx_assets
18292       l_t3id_tab(l_trx_assets_counter4) := okc_p_util.raw_to_number(sys_guid());
18293       -- Populate kle to tas_id mapping
18294       l_cle_mapping_tab(l_trx_assets_counter4).old_id := l_ID_local_tab(i); -- kle_id
18295       --l_cle_mapping_tab(l_trx_assets_counter4).new_id :=  l_t3id_tab(l_trx_assets_counter4);
18296       l_cle_mapping_tab(l_trx_assets_counter4).line_number :=  1;
18297 
18298       -- Populate okl_txl_assets_b
18299       l_tb2id_tab(l_trx_assets_counter4) := okc_p_util.raw_to_number(sys_guid());
18300       l_cle_mapping_tab(l_trx_assets_counter4).new_id :=  l_tb2id_tab(l_trx_assets_counter4);
18301       l_tb2object_version_number_tab(l_trx_assets_counter4) := 1;
18302       l_tb2tas_id_tab(l_trx_assets_counter4) := l_t3id_tab(l_trx_assets_counter4);
18303       -- id already changed earlier
18304       l_tb2kle_id_tab(l_trx_assets_counter4) := l_ID_local_tab(i);
18305 
18306       -- Store Tal id to kle_id mapping
18307       l_dbid_mapping_tab(l_tal_to_kle_counter).tal_id := l_tb2id_tab(l_trx_assets_counter4);
18308       l_dbid_mapping_tab(l_tal_to_kle_counter).kle_id := l_tb2kle_id_tab(l_trx_assets_counter4);
18309       l_tal_to_kle_counter := l_tal_to_kle_counter + 1;
18310 
18311       l_tb2dnz_khr_id_tab(l_trx_assets_counter4) := l_copied_id;
18312       l_tb2asset_number_tab(l_trx_assets_counter4) := l_ASSET_NUMBER_tab(i);
18313       -- Change asset_number AKP???
18314       /* Bug 4439068 */
18315       IF p_trans_type not in ('CRB', 'CRL', 'CSP', 'CRV', 'ALI') THEN
18316         l_new_asset_number := find_aid_mapping_id(l_tb2asset_number_tab(l_trx_assets_counter4));
18317         IF (l_new_asset_number <> '-1') THEN
18318           l_tb2asset_number_tab(l_trx_assets_counter4) := l_new_asset_number;
18319         END IF;
18320       END IF;
18321       /* Bug 4439068 */
18322 
18323       l_tb2line_number_tab(l_trx_assets_counter4) := 1;
18324       l_tb2tal_type_tab(l_trx_assets_counter4) := p_trans_type;
18325 
18326       -- Populate location_id
18327       OPEN c_location_id(l_asset_id_tab(i), l_BOOK_TYPE_CODE_tab(i));
18328       FETCH c_location_id
18329       INTO  l_location_id;
18330       IF (c_location_id%NOTFOUND) THEN
18331         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18332                   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));
18333         END IF;
18334         x_return_status := OKL_API.G_RET_STS_ERROR;
18335         CLOSE c_location_id;
18336         RAISE OKL_API.G_EXCEPTION_ERROR;
18337       END IF;
18338       CLOSE c_location_id;
18339       l_tb2fa_location_id_tab(l_trx_assets_counter4) := l_location_id;
18340 
18341       -- Todo AKP
18342 
18343       get_orig_depreciation_cost(l_COST_tab(i), l_orig_cost, l_depreciable_cost);
18344       l_tb2original_cost_tab(l_trx_assets_counter4) := l_orig_cost;
18345       l_tb2depreciation_cost_tab(l_trx_assets_counter4) := l_depreciable_cost;
18346       -- Bug 4636587
18347       IF (p_trans_type = 'CRB') THEN
18348         l_tb2fa_cost_tab(l_trx_assets_counter4) := l_depreciable_cost;
18349       ELSE
18350         l_tb2fa_cost_tab(l_trx_assets_counter4) := NULL;
18351       END IF;
18352 
18353       l_tb2current_units_tab(l_trx_assets_counter4) := l_CURRENT_UNITS_tab(i);
18354       l_tb2manufacturer_name_tab(l_trx_assets_counter4) := l_MANUFACTURER_NAME_tab(i);
18355       l_tmp_okl_42_rec := find_okl_k_lines_rec(l_id_local_tab(i));
18356       IF (l_tmp_okl_42_rec.year_built = OKC_API.G_MISS_NUM ) THEN
18357         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18358                   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));
18359         END IF;
18360         RAISE OKL_API.G_EXCEPTION_ERROR;
18361       END IF;
18362 
18363       l_tb2year_manufactured_tab(l_trx_assets_counter4) := l_tmp_okl_42_rec.year_built;
18364       -- Todo AKP
18365 
18366       IF (l_NEW_USED_tab(i) = 'NEW' OR l_NEW_USED_tab(i) IS NULL) THEN
18367         l_tb2used_asset_yn_tab(l_trx_assets_counter4) := NULL;
18368       ELSE
18369         l_tb2used_asset_yn_tab(l_trx_assets_counter4) := 'Y';
18370       END IF;
18371 
18372       l_tb2tag_number_tab(l_trx_assets_counter4) := l_TAG_NUMBER_tab(i);
18373       l_tb2model_number_tab(l_trx_assets_counter4) := l_MODEL_NUMBER_tab(i);
18374       l_tb2corporate_book_tab(l_trx_assets_counter4) := l_BOOK_TYPE_CODE_tab(i);
18375       l_tb2in_service_date_tab(l_trx_assets_counter4) := l_IN_SERVICE_DATE_tab(i);
18376       l_tb2depreciation_id_tab(l_trx_assets_counter4) := l_DEPRECIATION_CATEGORY_tab(i);
18377       l_tb2deprn_method_tab(l_trx_assets_counter4) := l_DEPRN_METHOD_CODE_tab(i);
18378       -- Todo AKP
18379 
18380       get_deprn_details(l_DEPRN_METHOD_CODE_tab(i),
18381                         l_LIFE_IN_MONTHS_tab(i),
18382                         l_ADJUSTED_RATE_tab(i),
18383                         l_deprn_rate,
18384                         l_life_in_months);
18385       l_tb2deprn_rate_tab(l_trx_assets_counter4) := l_deprn_rate;
18386       l_tb2life_in_months_tab(l_trx_assets_counter4) := l_life_in_months;
18387 
18388       get_salvage_value(l_SALVAGE_VALUE_tab(i),
18389                         l_PERCENT_SALVAGE_VALUE_tab(i),
18390                         l_salvage_value,
18391                         l_percent_salvage_value);
18392       l_tb2salvage_value_tab(l_trx_assets_counter4) := l_salvage_value;
18393       l_tb2percent_salvage_value_tab(l_trx_assets_counter4) := l_percent_salvage_value;
18394 
18395       l_tb2asset_key_id_tab(l_trx_assets_counter4) := l_ASSET_KEY_CCID_tab(i);
18396       l_tb2fa_trx_date_tab(l_trx_assets_counter4) := NULL;
18397 
18398       -- Populate okl_trx_assets_tl
18399       FOR j IN l_lang_tab.first..l_lang_tab.last
18400       LOOP
18401         l_tl2id_tab(l_txl_assets_tl_counter4) := l_tb2id_tab(l_trx_assets_counter4);
18402         l_tl2description_tab(l_txl_assets_tl_counter4) := l_DESCRIPTION_tab(i);
18403         l_tl2language_tab(l_txl_assets_tl_counter4) := l_lang_tab(j);
18404 
18405         l_txl_assets_tl_counter4 := l_txl_assets_tl_counter4 + 1;
18406       END LOOP;
18407 
18408       l_trx_assets_counter4 := l_trx_assets_counter4 + 1;
18409     END IF;  /* if CORPORATE */
18410   END LOOP; /* end loop i */
18411   END IF; /* end if l_ID1_tab.count > 0*/
18412   sort_cle_mapping_tab;
18413   sort_dbid_mapping_tab;
18414 
18415   IF (l_ID1_tab.COUNT > 0) THEN
18416   l_multi_gaap_profile := OKL_SYSTEM_PARAMS_ALL_PUB.get_system_param_value(OKL_SYSTEM_PARAMS_ALL_PUB.G_RPT_PROD_BOOK_TYPE_CODE);
18417   IF (l_multi_gaap_profile IS NULL) THEN
18418     l_multi_gaap_profile := ' ';
18419   END IF;
18420   FOR i IN l_ID1_tab.first..l_ID1_tab.last
18421   LOOP
18422     IF (l_book_class_tab(i) = 'TAX') THEN
18423       IF ((l_BOOK_TYPE_CODE_tab(i) = l_multi_gaap_profile) AND
18424           p_trans_type NOT IN ('CRB', 'CRL')) THEN
18425         NULL;
18426       ELSE
18427       l_db2id_tab(l_txd_assets_b_counter4) := okc_p_util.raw_to_number(sys_guid());
18428       l_new_tal_id := find_cle_mapping_id(l_ID_local_tab(i));
18429       IF (l_new_tal_id = -1) THEN
18430         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18431                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR!!!!Mapping tal_id not found');
18432         END IF;
18433         RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
18434       END IF;
18435       l_db2tal_id_tab(l_txd_assets_b_counter4) := l_new_tal_id;
18436       --print('l_new_tal_id='|| l_new_tal_id);
18437       l_db2asset_number_tab(l_txd_assets_b_counter4) := l_ASSET_NUMBER_tab(i);
18438       /* Bug 4439068 */
18439       IF p_trans_type not in ('CRB', 'CRL', 'CSP', 'CRV', 'ALI') THEN
18440       IF (l_db2asset_number_tab(l_txd_assets_b_counter4) IS NOT NULL) THEN
18441         l_new_asset_number := find_aid_mapping_id(l_db2asset_number_tab(l_txd_assets_b_counter4));
18442         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18443                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_new_asset_number=' || l_new_asset_number);
18444         END IF;
18445         IF (l_new_asset_number <> '-1') THEN
18446           l_db2asset_number_tab(l_txd_assets_b_counter4) := l_new_asset_number;
18447         END IF;
18448       END IF;
18449       END IF;
18450       /* Bug 4439068 */
18451 
18452       l_new_line_number := find_cle_line_number(l_ID_local_tab(i));
18453       IF (l_new_line_number = -1) THEN
18454         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18455                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR!!!!Mapping line_number not found');
18456         END IF;
18457         RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
18458       END IF;
18459       l_db2line_detail_number_tab(l_txd_assets_b_counter4) := l_new_line_number;
18460 
18461       l_db2quantity_tab(l_txd_assets_b_counter4) := l_CURRENT_UNITS_tab(i);
18462 
18463       get_orig_depreciation_cost(l_COST_tab(i), l_orig_cost, l_junk_cost);
18464       l_db2cost_tab(l_txd_assets_b_counter4) := l_orig_cost;
18465       l_db2tax_book_tab(l_txd_assets_b_counter4) := l_BOOK_TYPE_CODE_tab(i);
18466       l_db2salvage_value_tab(l_txd_assets_b_counter4) := l_SALVAGE_VALUE_tab(i);
18467       l_db2deprn_method_tax_tab(l_txd_assets_b_counter4) := l_DEPRN_METHOD_CODE_tab(i);
18468 
18469       get_deprn_details(l_DEPRN_METHOD_CODE_tab(i),
18470                         l_LIFE_IN_MONTHS_tab(i),
18471                         l_ADJUSTED_RATE_tab(i),
18472                         l_deprn_rate,
18473                         l_life_in_months);
18474       l_db2deprn_rate_tax_tab(l_txd_assets_b_counter4) := l_deprn_rate;
18475       l_db2life_in_months_tax_tab(l_txd_assets_b_counter4) := l_life_in_months;
18476 
18477       -- Populate okl_txd_assets_tl
18478       FOR j IN l_lang_tab.first..l_lang_tab.last
18479       LOOP
18480         l_dl2id_tab(l_txd_assets_tl_counter4) := l_db2id_tab(l_txd_assets_b_counter4);
18481         l_dl2description_tab(l_txd_assets_tl_counter4) := l_DESCRIPTION_tab(i);
18482         l_dl2language_tab(l_txd_assets_tl_counter4) := l_lang_tab(j);
18483 
18484         l_txd_assets_tl_counter4 := l_txd_assets_tl_counter4 + 1;
18485       END LOOP;
18486 
18487       l_txd_assets_b_counter4 := l_txd_assets_b_counter4 + 1;
18488     END IF; /* if multi-gaap */
18489     END IF;  /* TAX */
18490   END LOOP;
18491   END IF;
18492 
18493   IF (l_ID1_tab.COUNT < 1) THEN
18494     -- LOAN or LOAN-REVOLVING and BOOKED case
18495     --l_loan_booked_condition := false;
18496     --l_loan_booked_condition := check_loan_booked_condition;
18497     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18498           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);
18499         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);
18500     END IF;
18501     IF (l_deal_type IN ('LOAN', 'LOAN-REVOLVING')
18502         -- 4911174
18503         AND l_sts_code_orig IN ('BOOKED','EVERGREEN','EXPIRED','TERMINATED')) THEN
18504       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18505               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_id_tab.count=' || l_id_tab.COUNT);
18506       END IF;
18507       IF (l_id_tab.count > 0) THEN
18508       FOR i IN l_id_tab.first..l_id_tab.last LOOP
18509         IF (l_lse_id_tab(i) = 42) THEN
18510           --print('Found 42: l_id_tab(' ||i || ')=' || l_id_tab(i) ||' l_name_tab('||i||')=' || l_name_tab(i));
18511           l_tmp_itm_rec := find_okc_k_items_rec(l_id_tab(i));
18512           --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);
18513           IF (l_tmp_itm_rec.number_of_items = OKL_API.G_MISS_NUM ) THEN
18514             IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18515                           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR: Mapping okc_k_items rec not found for ' || l_id_tab(i));
18516             END IF;
18517             RAISE OKL_API.G_EXCEPTION_ERROR;
18518           END IF;
18519           IF ((l_tmp_itm_rec.object1_id1 IS NULL) AND
18520                (l_tmp_itm_rec.object1_id2 IS NULL)) THEN
18521             -- Populate okl_trx_assets
18522             --print('Yes object1_id1 and id2 null...');
18523             l_t3id_tab(l_trx_assets_counter4) := okc_p_util.raw_to_number(sys_guid());
18524             --print('Upto 1...');
18525             -- Populate kle to tas_id mapping
18526             l_cle_mapping_tab(l_trx_assets_counter4).old_id := l_id_tab(i); -- kle_id
18527             l_cle_mapping_tab(l_trx_assets_counter4).line_number :=  1;
18528 
18529             --print('Upto 2...');
18530             -- Populate okl_txl_assets_b
18531             l_tb2id_tab(l_trx_assets_counter4) := okc_p_util.raw_to_number(sys_guid());
18532             l_cle_mapping_tab(l_trx_assets_counter4).new_id :=  l_tb2id_tab(l_trx_assets_counter4);
18533             --print('Upto 3...');
18534             l_tb2object_version_number_tab(l_trx_assets_counter4) := 1;
18535             l_tb2tas_id_tab(l_trx_assets_counter4) := l_t3id_tab(l_trx_assets_counter4);
18536             -- id already changed earlier
18537             l_tb2kle_id_tab(l_trx_assets_counter4) := l_id_tab(i);
18538 
18539             --print('Upto 4...');
18540             -- Store Tal id to kle_id mapping
18541             l_dbid_mapping_tab(l_tal_to_kle_counter).tal_id := l_tb2id_tab(l_trx_assets_counter4);
18542             l_dbid_mapping_tab(l_tal_to_kle_counter).kle_id := l_tb2kle_id_tab(l_trx_assets_counter4);
18543             l_tal_to_kle_counter := l_tal_to_kle_counter + 1;
18544 
18545             --print('Upto asset_number...');
18546             --print('l_trx_assets_counter4=' || l_trx_assets_counter4);
18547             l_tb2dnz_khr_id_tab(l_trx_assets_counter4) := l_copied_id;
18548             --print('Upto asset_number l_name_tab('|| i || ')=' || l_name_tab(i));
18549             l_cle_id := find_cid_mapping_id(l_tb2kle_id_tab(l_trx_assets_counter4));
18550             --print('Upto 6 l_cle_id=' || l_cle_id);
18551             IF (l_cle_id = -1) THEN
18552                 IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18553                                   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));
18554                 END IF;
18555                 RAISE OKL_API.G_EXCEPTION_ERROR;
18556             END IF;
18557 
18558             l_asset_name_old := find_bid_mapping_id(l_cle_id, 33);
18559             IF (l_asset_name_old = '-1') THEN
18560               IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18561                               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR: Mapping bid_mapping not found for ' || l_cle_id);
18562               END IF;
18563               RAISE OKL_API.G_EXCEPTION_ERROR;
18564             END IF;
18565             IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18566                           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_asset_name_old=' || l_asset_name_old);
18567             END IF;
18568             l_tb2asset_number_tab(l_trx_assets_counter4) := l_asset_name_old; --old asset
18569             --print('Upto asset_number l_name_tab('|| i || ')=' || l_name_tab(i));
18570             IF (l_tb2asset_number_tab(l_trx_assets_counter4) IS NOT NULL) THEN
18571               l_new_asset_number := find_aid_mapping_id(l_tb2asset_number_tab(l_trx_assets_counter4));
18572               IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18573                               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_new_asset_number=' || l_new_asset_number);
18574               END IF;
18575               IF (l_new_asset_number <> '-1') THEN
18576                 l_tb2asset_number_tab(l_trx_assets_counter4) := l_new_asset_number;
18577               END IF;
18578             END IF;
18579 
18580             --print('Upto asset_number...');
18581             l_tb2line_number_tab(l_trx_assets_counter4) := 1;
18582             l_tb2tal_type_tab(l_trx_assets_counter4) := p_trans_type;
18583 
18584             -- Populate location_id
18585             l_tb2fa_location_id_tab(l_trx_assets_counter4) := NULL;
18586 
18587             -- Todo AKP
18588             l_tmp_okl_33_rec := find_okl_k_lines_rec(l_cle_id);
18589             --print('Upto 8...l_tmp_okl_33_rec.oec=' || l_tmp_okl_33_rec.oec);
18590             IF (l_tmp_okl_33_rec.oec = OKL_API.G_MISS_NUM ) THEN
18591               IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18592                               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR: Mapping okl_k_lines_rec not found for ' || l_cle_id );
18593               END IF;
18594               RAISE OKL_API.G_EXCEPTION_ERROR;
18595             END IF;
18596 
18597             --print('Calling find_cle_lse_mapping with ' || l_cle_id || ':34');
18598             l_new_34_id := find_cle_lse_mapping_id(l_cle_id, 34);
18599             --print('Upto 9... l_new_34_id = ' || l_new_34_id);
18600             IF (l_new_34_id = -1) THEN
18601                 IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18602                                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR: Mapping cle_lse_mapping not found for ' || l_cle_id || ':33');
18603                 END IF;
18604                 RAISE OKL_API.G_EXCEPTION_ERROR;
18605             END IF;
18606             l_tmp_okc_34_rec := find_okc_k_items_rec(l_new_34_id);
18607             --print('Upto 10... l_tmp_okc_34_rec.number_of_items='|| l_tmp_okc_34_rec.number_of_items);
18608             IF (l_tmp_okc_34_rec.number_of_items = OKL_API.G_MISS_NUM) THEN
18609               IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18610                               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR: Mapping okl_k_lines_rec not found for ' || l_new_34_id );
18611               END IF;
18612               RAISE OKL_API.G_EXCEPTION_ERROR;
18613             END IF;
18614 
18615             --print('Upto 11...');
18616             l_tb2original_cost_tab(l_trx_assets_counter4) := l_tmp_okl_33_rec.oec;
18617             l_tb2depreciation_cost_tab(l_trx_assets_counter4) := l_tmp_okl_33_rec.oec;
18618             l_tb2current_units_tab(l_trx_assets_counter4) :=  l_tmp_okc_34_rec.number_of_items;
18619             -- Bug 4636587
18620             IF (p_trans_type = 'CRB') THEN
18621               l_tb2fa_cost_tab(l_trx_assets_counter4) := l_tmp_okl_33_rec.oec;
18622             ELSE
18623               l_tb2fa_cost_tab(l_trx_assets_counter4) := NULL;
18624             END IF;
18625             --print('Upto 11.1...');
18626 
18627             --print('Upto 12...');
18628 
18629             l_tmp_okl_42_rec := find_okl_k_lines_rec(l_id_tab(i));
18630             --print('Upto 13 l_tmp_okl_42_rec.year_built=' || l_tmp_okl_42_rec.year_built);
18631             IF (l_tmp_okl_42_rec.year_built = OKL_API.G_MISS_NUM) THEN
18632               IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18633                               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR: Mapping okl_k_lines_rec not found for ' || l_id_tab(i));
18634               END IF;
18635               RAISE OKL_API.G_EXCEPTION_ERROR;
18636             END IF;
18637 
18638             l_tb2year_manufactured_tab(l_trx_assets_counter4) := l_tmp_okl_42_rec.year_built;
18639 
18640             l_tb2manufacturer_name_tab(l_trx_assets_counter4) := NULL;
18641             l_tb2used_asset_yn_tab(l_trx_assets_counter4) := NULL;
18642 
18643 
18644             l_tb2tag_number_tab(l_trx_assets_counter4) := NULL;
18645             l_tb2model_number_tab(l_trx_assets_counter4) := NULL;
18646             l_tb2corporate_book_tab(l_trx_assets_counter4) := NULL;
18647             l_tb2in_service_date_tab(l_trx_assets_counter4) := NULL;
18648             l_tb2depreciation_id_tab(l_trx_assets_counter4) := NULL;
18649             l_tb2deprn_method_tab(l_trx_assets_counter4) := NULL;
18650             l_tb2deprn_rate_tab(l_trx_assets_counter4) := NULL;
18651             l_tb2life_in_months_tab(l_trx_assets_counter4) := NULL;
18652             l_tb2salvage_value_tab(l_trx_assets_counter4) := NULL;
18653             l_tb2percent_salvage_value_tab(l_trx_assets_counter4) := NULL;
18654 
18655             l_tb2asset_key_id_tab(l_trx_assets_counter4) := NULL;
18656             l_tb2fa_trx_date_tab(l_trx_assets_counter4) := NULL;
18657 
18658             --print('Upto 14...');
18659 
18660             -- Populate okl_trx_assets_tl
18661             FOR j IN l_lang_tab.first..l_lang_tab.last
18662             LOOP
18663             --print('Upto 15...');
18664               l_tl2id_tab(l_txl_assets_tl_counter4) := l_tb2id_tab(l_trx_assets_counter4);
18665               l_tl2description_tab(l_txl_assets_tl_counter4) := l_tmp_okl_33_rec.item_description;
18666               l_tl2language_tab(l_txl_assets_tl_counter4) := l_lang_tab(j);
18667 
18668               l_txl_assets_tl_counter4 := l_txl_assets_tl_counter4 + 1;
18669             END LOOP;
18670 
18671             l_trx_assets_counter4 := l_trx_assets_counter4 + 1;
18672 
18673           END IF; /* if object1_id1 is null and object1_id2 is null */
18674 
18675         END IF;  /* if lse_id_tab(i) = 42 */
18676       END LOOP;  /* loop on l_id_tab(i) */
18677       END IF; /* if l_id_tab.count > 0 */
18678 
18679     END IF; /* if loan BOOKED condition */
18680   END IF; /* if l_ID1_tab.count < 1 */
18681 
18682   -- By this time populated everything
18683 
18684   -- Insert into corr tables
18685   IF (l_trx_assets_counter4 > 1) THEN
18686     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18687           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);
18688     END IF;
18689 
18690    --Added by dpsingh for LE Uptake
18691     l_legal_entity_id  := OKL_LEGAL_ENTITY_UTIL.get_khr_le_id(p_old_id) ;
18692     IF l_legal_entity_id IS NULL THEN
18693         -- get the contract number
18694        OPEN contract_num_csr(p_old_id);
18695        FETCH contract_num_csr INTO l_cntrct_number;
18696        CLOSE contract_num_csr;
18697 	Okl_Api.set_message(p_app_name     => g_app_name,
18698                              p_msg_name     => 'OKL_LE_NOT_EXIST_CNTRCT',
18699 			     p_token1           =>  'CONTRACT_NUMBER',
18700 			     p_token1_value  =>  l_cntrct_number);
18701          RAISE OKL_API.G_EXCEPTION_ERROR;
18702     END IF;
18703     forall i IN l_t3id_tab.first..l_t3id_tab.last
18704       INSERT INTO okl_trx_assets (
18705         id, tas_type, object_version_number,
18706         tsu_code, try_id, date_trans_occurred,
18707         created_by, creation_date, last_updated_by,
18708         last_update_date, last_update_login, trans_number,legal_entity_id
18709         ,transaction_date
18710       ) VALUES (
18711         l_t3id_tab(i), p_trans_type, 1,
18712         'ENTERED', l_try_id, SYSDATE, -- AKP: populate try_id properly
18713         l_created_by, SYSDATE, l_last_updated_by,
18714         SYSDATE, l_last_update_login, okl_trn_seq.NEXTVAL,l_legal_entity_id
18715         ,SYSDATE
18716       );
18717 
18718     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18719           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);
18720     END IF;
18721 
18722     IF (l_tb2id_tab.COUNT > 0) THEN
18723     forall i IN l_tb2id_tab.first..l_tb2id_tab.last
18724       INSERT INTO okl_txl_assets_b (
18725         id, object_version_number, tas_id,
18726         kle_id, dnz_khr_id, line_number,
18727         asset_number, tal_type, original_cost,
18728         depreciation_cost, current_units, manufacturer_name,
18729         used_asset_yn, tag_number, model_number,
18730         corporate_book, in_service_date, depreciation_id,
18731         deprn_method, deprn_rate, life_in_months,
18732         salvage_value, percent_salvage_value, asset_key_id,
18733         fa_trx_date, created_by, creation_date,
18734         last_updated_by, last_update_date, last_update_login,
18735         fa_location_id, currency_code, currency_conversion_type,
18736         currency_conversion_rate, currency_conversion_date, year_manufactured,
18737         fa_cost
18738       ) VALUES (
18739         l_tb2id_tab(i), 1, l_tb2tas_id_tab(i),
18740         l_tb2kle_id_tab(i), l_tb2dnz_khr_id_tab(i), l_tb2line_number_tab(i),
18741         l_tb2asset_number_tab(i), l_tb2tal_type_tab(i), l_tb2original_cost_tab(i),
18742         l_tb2depreciation_cost_tab(i), l_tb2current_units_tab(i), l_tb2manufacturer_name_tab(i),
18743         l_tb2used_asset_yn_tab(i), l_tb2tag_number_tab(i), l_tb2model_number_tab(i),
18744         l_tb2corporate_book_tab(i), l_tb2in_service_date_tab(i), l_tb2depreciation_id_tab(i),
18745         l_tb2deprn_method_tab(i), l_tb2deprn_rate_tab(i), l_tb2life_in_months_tab(i),
18746         l_tb2salvage_value_tab(i), l_tb2percent_salvage_value_tab(i), l_tb2asset_key_id_tab(i),
18747         l_tb2fa_trx_date_tab(i), l_created_by, SYSDATE,
18748         l_last_updated_by, SYSDATE, l_last_update_login,
18749         l_tb2fa_location_id_tab(i), l_contract_currency, l_conversion_type,
18750         l_conversion_rate, l_conversion_rate_date, l_tb2year_manufactured_tab(i),
18751         l_tb2fa_cost_tab(i)
18752       );
18753       END IF;
18754 
18755       IF (l_txl_assets_tl_counter4 > 1) THEN
18756         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18757                   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);
18758         END IF;
18759         IF (l_tl2id_tab.COUNT > 0) THEN
18760         forall i IN l_tl2id_tab.first..l_tl2id_tab.last
18761           INSERT INTO okl_txl_assets_tl (
18762             id, LANGUAGE, source_lang,
18763             sfwt_flag, description, created_by,
18764             creation_date, last_updated_by, last_update_date,
18765             last_update_login
18766           ) VALUES (
18767             l_tl2id_tab(i), l_tl2language_tab(i), l_base_language,
18768             'N', l_tl2description_tab(i), l_created_by,
18769             SYSDATE, l_last_updated_by, SYSDATE,
18770             l_last_update_login
18771           );
18772          END IF;
18773       END IF;
18774   END IF;
18775 
18776   IF ( l_txd_assets_b_counter4  > 1) THEN
18777     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18778           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);
18779     END IF;
18780     IF (l_db2id_tab.COUNT > 0) THEN
18781     forall i IN l_db2id_tab.first..l_db2id_tab.last
18782       INSERT INTO okl_txd_assets_b (
18783         id, object_version_number, tal_id,
18784         asset_number, line_detail_number, quantity,
18785         cost, tax_book, salvage_value,
18786         deprn_method_tax, life_in_months_tax, deprn_rate_tax,
18787         created_by, creation_date, last_updated_by,
18788         last_update_date, last_update_login, currency_code,
18789         currency_conversion_type, currency_conversion_rate, currency_conversion_date
18790       ) VALUES (
18791         l_db2id_tab(i), 1, l_db2tal_id_tab(i),
18792         l_db2asset_number_tab(i), l_db2line_detail_number_tab(i), l_db2quantity_tab(i),
18793         l_db2cost_tab(i), l_db2tax_book_tab(i), l_db2salvage_value_tab(i),
18794         l_db2deprn_method_tax_tab(i), l_db2life_in_months_tax_tab(i), l_db2deprn_rate_tax_tab(i),
18795         l_created_by, SYSDATE, l_last_updated_by,
18796         SYSDATE, l_last_update_login, l_contract_currency,
18797         l_conversion_type, l_conversion_rate, l_conversion_rate_date
18798       );
18799       END IF;
18800 
18801       IF ( l_txd_assets_tl_counter4  > 1) THEN
18802         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18803                   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);
18804         END IF;
18805         IF (l_dl2id_tab.COUNT > 0) THEN
18806         forall i IN l_dl2id_tab.first..l_dl2id_tab.last
18807           INSERT INTO okl_txd_assets_tl (
18808             id, LANGUAGE, source_lang,
18809             sfwt_flag, description, created_by,
18810             creation_date, last_updated_by, last_update_date,
18811             last_update_login
18812           ) VALUES (
18813             l_dl2id_tab(i), l_dl2language_tab(i), l_base_language,
18814             'N', l_dl2description_tab(i), l_created_by,
18815             SYSDATE, l_last_updated_by, SYSDATE,
18816             l_last_update_login
18817           );
18818         END IF;
18819       END IF;
18820   END IF;
18821 
18822 EXCEPTION WHEN OTHERS THEN
18823   -- AKP: Replace OKL_AM_NO_OLD_SALVAGE_VALUE globally
18824   -- AKP: change p_msg_name to proper name
18825   -- AKP: Change p_token1 to proper token
18826   -- AKP: Change p_token1_value to proper value
18827 
18828   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18829       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
18830   END IF;
18831   x_return_status := OKL_API.G_RET_STS_ERROR;
18832     /* DEBUG */
18833   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18834       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing okl_trx_assets:l_t3id_tab.count=' || l_t3id_tab.COUNT || ' ...');
18835     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_try_id=' || l_try_id);
18836   END IF;
18837   IF (l_t3id_tab.COUNT > 0) THEN
18838   FOR i IN l_t3id_tab.first..l_t3id_tab.last
18839   LOOP
18840     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18841           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t3id_tab('||i||')=' || l_t3id_tab(i));
18842     END IF;
18843   END LOOP;
18844   END IF;
18845 
18846     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18847           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing l_tb2id_tab.count' || l_tb2id_tab.COUNT || ' ...');
18848     END IF;
18849     IF (l_tb2id_tab.COUNT > 0) THEN
18850     FOR i IN l_tb2id_tab.first..l_tb2id_tab.last
18851     LOOP
18852       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18853               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2id_tab('||i||')='|| l_tb2id_tab(i));
18854         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2tas_id_tab('||i||')=' ||  l_tb2tas_id_tab(i));
18855         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2kle_id_tab('||i||')=' ||  l_tb2kle_id_tab(i));
18856         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2dnz_khr_id_tab('||i||')=' ||  l_tb2dnz_khr_id_tab(i));
18857         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2line_number_tab('||i||')=' ||  l_tb2line_number_tab(i));
18858         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2asset_number_tab('||i||')=' ||  l_tb2asset_number_tab(i));
18859         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2tal_type_tab('||i||')=' ||  l_tb2tal_type_tab(i));
18860         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2original_cost_tab('||i||')=' ||  l_tb2original_cost_tab(i));
18861         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2depreciation_cost_tab('||i||')=' ||  l_tb2depreciation_cost_tab(i));
18862         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2current_units_tab('||i||')=' ||  l_tb2current_units_tab(i));
18863         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2manufacturer_name_tab('||i||')=' ||  l_tb2manufacturer_name_tab(i));
18864         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2used_asset_yn_tab('||i||')=' || l_tb2used_asset_yn_tab(i));
18865         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2tag_number_tab('||i||')=' || l_tb2tag_number_tab(i));
18866         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2model_number_tab('||i||')=' || l_tb2model_number_tab(i));
18867         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2corporate_book_tab('||i||')=' || l_tb2corporate_book_tab(i));
18868         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2in_service_date_tab('||i||')=' || l_tb2in_service_date_tab(i));
18869         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2depreciation_id_tab('||i||')=' || l_tb2depreciation_id_tab(i));
18870         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2deprn_method_tab('||i||')=' || l_tb2deprn_method_tab(i));
18871         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2deprn_rate_tab('||i||')=' || l_tb2deprn_rate_tab(i));
18872         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2life_in_months_tab('||i||')=' || l_tb2life_in_months_tab(i));
18873         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2salvage_value_tab('||i||')=' || l_tb2salvage_value_tab(i));
18874         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2percent_salvage_value_tab('||i||')=' || l_tb2percent_salvage_value_tab(i));
18875         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2asset_key_id_tab('||i||')=' || l_tb2asset_key_id_tab(i));
18876         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2fa_trx_date_tab('||i||')=' || l_tb2fa_trx_date_tab(i));
18877         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2fa_location_id_tab('||i||')=' || l_tb2fa_location_id_tab(i));
18878         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tb2fa_cost_tab('||i||')=' ||  l_tb2fa_cost_tab(i));
18879       END IF;
18880 
18881     END LOOP;
18882     END IF;
18883 
18884   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18885       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing l_tl2id_tab.count=' || l_tl2id_tab.COUNT || ' ...');
18886   END IF;
18887   IF (l_tl2id_tab.COUNT > 0) THEN
18888   FOR i IN l_tl2id_tab.first..l_tl2id_tab.last
18889   LOOP
18890     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18891           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tl2id_tab('||i||')=' || l_tl2id_tab(i));
18892       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tl2language_tab('||i||')=' || l_tl2language_tab(i));
18893       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_base_language('||i||')=' || l_base_language);
18894       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_tl2description_tab('||i||')=' || l_tl2description_tab(i));
18895     END IF;
18896   END LOOP;
18897   END IF;
18898 
18899   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18900       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing l_db2id_tab.count=' || l_db2id_tab.COUNT || ' ...');
18901   END IF;
18902   IF (l_db2id_tab.COUNT > 0) THEN
18903   FOR i IN l_db2id_tab.first..l_db2id_tab.last
18904   LOOP
18905     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18906           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_db2id_tab('||i||')=' || l_db2id_tab(i));
18907       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_db2tal_id_tab('||i||')=' || l_db2tal_id_tab(i));
18908       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_db2asset_number_tab('||i||')=' || l_db2asset_number_tab(i));
18909       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_db2line_detail_number_tab('||i||')=' || l_db2line_detail_number_tab(i));
18910       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_db2quantity_tab('||i||')=' || l_db2quantity_tab(i));
18911       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_db2cost_tab('||i||')=' || l_db2cost_tab(i));
18912       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_db2tax_book_tab('||i||')=' || l_db2tax_book_tab(i));
18913       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_db2salvage_value_tab('||i||')=' || l_db2salvage_value_tab(i));
18914       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_db2deprn_method_tax_tab('||i||')=' || l_db2deprn_method_tax_tab(i));
18915       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));
18916       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_db2deprn_rate_tax_tab('||i||')=' || l_db2deprn_rate_tax_tab(i));
18917     END IF;
18918   END LOOP;
18919   END IF;
18920 
18921   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18922       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing l_dl2id_tab.count=' || l_dl2id_tab.COUNT || ' ...');
18923   END IF;
18924   IF (l_dl2id_tab.COUNT > 0) THEN
18925   FOR i IN l_dl2id_tab.first..l_dl2id_tab.last
18926   LOOP
18927     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
18928           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dl2id_tab('||i||')=' || l_dl2id_tab(i));
18929       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dl2language_tab('||i||')=' || l_dl2language_tab(i));
18930       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_base_language('||i||')=' || l_base_language);
18931       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_dl2description_tab('||i||')=' || l_dl2description_tab(i));
18932     END IF;
18933   END LOOP;
18934   END IF;
18935 
18936   RAISE OKC_API.G_EXCEPTION_ERROR;
18937 END; /* insert okl_trx_assets_3 */
18938 
18939 PROCEDURE insert_okc_rg_party_roles(p_old_id IN okc_k_headers_b.id%TYPE,
18940                                     p_new_id IN okc_k_headers_b.id%TYPE) IS
18941 CURSOR c25(p_id NUMBER) IS
18942 SELECT
18943        a.id, a.rgp_id, a.rrd_id,
18944        a.cpl_id, a.dnz_chr_id, a.object_version_number,
18945        a.created_by, a.creation_date, a.last_updated_by,
18946        a.last_update_date, a.last_update_login, a.security_group_id
18947 FROM okc_rg_party_roles a,
18948      okc_rule_groups_b b
18949 WHERE a.rgp_id = b.id
18950 AND   b.dnz_chr_id = p_id
18951   AND (
18952     b.chr_id = b.chr_id
18953     OR (
18954         NVL(p_trans_type, 'N') = 'Y'
18955         AND b.cle_id IS NOT NULL
18956        )
18957   );
18958 
18959     l_gid_tab2 l_gid_type;
18960     l_grgp_id_tab2 l_grgp_id_type;
18961     l_grrd_id_tab2 l_grrd_id_type;
18962     l_gcpl_id_tab2 l_gcpl_id_type;
18963     l_gdnz_chr_id_tab2 l_gdnz_chr_id_type;
18964     l_gobject_version_number_tab2 l_gobject_version_number_type;
18965     l_gcreated_by_tab2 l_gcreated_by_type;
18966     l_gcreation_date_tab2 l_gcreation_date_type;
18967     l_glast_updated_by_tab2 l_glast_updated_by_type;
18968     l_glast_update_date_tab2 l_glast_update_date_type;
18969     l_glast_update_login_tab2 l_glast_update_login_type;
18970     l_gsecurity_group_id_tab2 l_gsecurity_group_id_type;
18971 
18972   l_new_rgp_id NUMBER;
18973   l_new_cpl_id NUMBER;
18974 
18975 BEGIN
18976   IF (G_DEBUG_ENABLED = 'Y') THEN
18977     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
18978   END IF;
18979   OPEN c25(p_old_id);
18980   LOOP
18981     FETCH c25 bulk collect INTO
18982      l_gid_tab2, l_grgp_id_tab2, l_grrd_id_tab2,
18983      l_gcpl_id_tab2, l_gdnz_chr_id_tab2, l_gobject_version_number_tab2,
18984      l_gcreated_by_tab2, l_gcreation_date_tab2, l_glast_updated_by_tab2,
18985      l_glast_update_date_tab2, l_glast_update_login_tab2, l_gsecurity_group_id_tab2
18986 
18987     limit G_BULK_SIZE;
18988     EXIT WHEN l_gid_tab2.COUNT = 0;
18989     FOR i IN l_gid_tab2.first..l_gid_tab2.last
18990     LOOP
18991       l_gid_tab(l_rg_party_roles_counter) := l_gid_tab2(i);
18992       -- Change id
18993       l_gid_tab(l_rg_party_roles_counter) := okc_p_util.raw_to_number(sys_guid());
18994 
18995       l_grgp_id_tab(l_rg_party_roles_counter) := l_grgp_id_tab2(i);
18996       -- Change rgp_id
18997       l_new_rgp_id := find_rid_mapping_id(l_grgp_id_tab(l_rg_party_roles_counter));
18998         IF (l_new_rgp_id = -1) THEN
18999           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19000                       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));
19001           END IF;
19002           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
19003         END IF;
19004       l_grgp_id_tab(l_rg_party_roles_counter) := l_new_rgp_id;
19005 
19006       l_grrd_id_tab(l_rg_party_roles_counter) := l_grrd_id_tab2(i);
19007       -- Change rrd_id ??? AKP
19008 
19009       l_gcpl_id_tab(l_rg_party_roles_counter) := l_gcpl_id_tab2(i);
19010       -- Change cpl_id
19011       l_new_cpl_id := find_party_mapping_id(l_gcpl_id_tab(l_rg_party_roles_counter));
19012       l_gcpl_id_tab(l_rg_party_roles_counter) := l_new_cpl_id;
19013 
19014       l_gdnz_chr_id_tab(l_rg_party_roles_counter) := l_gdnz_chr_id_tab2(i);
19015       -- Change dnz_chr_id
19016       l_gdnz_chr_id_tab(l_rg_party_roles_counter) := p_new_id;
19017 
19018       l_gobject_version_number_tab(l_rg_party_roles_counter) := l_gobject_version_number_tab2(i);
19019       l_gcreated_by_tab(l_rg_party_roles_counter) := l_gcreated_by_tab2(i);
19020       l_gcreation_date_tab(l_rg_party_roles_counter) := l_gcreation_date_tab2(i);
19021       l_glast_updated_by_tab(l_rg_party_roles_counter) := l_glast_updated_by_tab2(i);
19022       l_glast_update_date_tab(l_rg_party_roles_counter) := l_glast_update_date_tab2(i);
19023       l_glast_update_login_tab(l_rg_party_roles_counter) := l_glast_update_login_tab2(i);
19024       l_gsecurity_group_id_tab(l_rg_party_roles_counter) := l_gsecurity_group_id_tab2(i);
19025 
19026       l_rg_party_roles_counter := l_rg_party_roles_counter + 1;
19027 
19028     END LOOP;
19029   END LOOP;
19030   CLOSE c25;
19031   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19032       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);
19033   END IF;
19034   IF (l_rg_party_roles_counter > 1) THEN
19035     forall i IN l_gid_tab.first..l_gid_tab.last
19036     INSERT INTO okc_rg_party_roles (
19037        id, rgp_id, rrd_id,
19038        cpl_id, dnz_chr_id, object_version_number,
19039        created_by, creation_date, last_updated_by,
19040        last_update_date, last_update_login, security_group_id
19041     ) VALUES (
19042        l_gid_tab(i), l_grgp_id_tab(i), l_grrd_id_tab(i),
19043        l_gcpl_id_tab(i), l_gdnz_chr_id_tab(i), l_gobject_version_number_tab(i),
19044        l_created_by, SYSDATE, l_last_updated_by,
19045        SYSDATE, l_last_update_login, l_gsecurity_group_id_tab(i)
19046     );
19047   END IF;
19048 EXCEPTION WHEN OTHERS THEN
19049 
19050   x_return_status := OKL_API.G_RET_STS_ERROR;
19051   /*OKL_API.set_message(p_app_name => 'OKL',
19052                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
19053                       p_token1 => 'ASSET_NUMBER',
19054                       p_token1_value => 'okc_rg_party_roles');*/
19055     /* DEBUG */
19056   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19057       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
19058     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing okc_rg_party_roles: l_gid_tab.count=' || l_gid_tab.COUNT || ' ...');
19059   END IF;
19060   IF (l_gid_tab.COUNT > 0) THEN
19061   FOR i IN l_gid_tab.first..l_gid_tab.last
19062   LOOP
19063     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19064           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_gid_tab('||i||')=' || l_gid_tab(i));
19065       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_grgp_id_tab('||i||')=' || l_grgp_id_tab(i));
19066       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_grrd_id_tab('||i||')=' || l_grrd_id_tab(i));
19067       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_gcpl_id_tab('||i||')=' || l_gcpl_id_tab(i));
19068       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_gdnz_chr_id_tab('||i||')=' || l_gdnz_chr_id_tab(i));
19069       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_gobject_version_number_tab('||i||')=' || l_gobject_version_number_tab(i));
19070       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_gsecurity_group_id_tab('||i||')=' || l_gsecurity_group_id_tab(i));
19071     END IF;
19072   END LOOP;
19073   END IF;
19074 
19075   RAISE OKC_API.G_EXCEPTION_ERROR;
19076 
19077 END; /* insert_okc_rg_party_roles */
19078 
19079 PROCEDURE insert_okl_supp_invoice_dtls(p_old_id IN okc_k_headers_b.id%TYPE)
19080 IS
19081 CURSOR c26(p_id NUMBER) IS
19082 SELECT
19083        a.id, a.object_version_number, a.cle_id,
19084        a.fa_cle_id, a.invoice_number, a.date_invoiced,
19085        a.date_due, a.shipping_address_id1, a.shipping_address_id2,
19086        a.shipping_address_code, a.attribute_category, a.attribute1,
19087        a.attribute2, a.attribute3, a.attribute4,
19088        a.attribute5, a.attribute6, a.attribute7,
19089        a.attribute8, a.attribute9, a.attribute10,
19090        a.attribute11, a.attribute12, a.attribute13,
19091        a.attribute14, a.attribute15, a.created_by,
19092        a.creation_date, a.last_updated_by, a.last_update_date,
19093        a.last_update_login
19094 FROM okl_supp_invoice_dtls a,
19095      okc_k_lines_b b
19096 WHERE b.dnz_chr_id = p_id
19097 AND (
19098     ( a.cle_id = b.id AND b.lse_id IN (34,44) )
19099     -- Bug (duplicate supp invoice dtls lines because of the OR condition)
19100     --OR
19101     --( a.fa_cle_id = b.id AND b.lse_id = 42 )
19102 );
19103 
19104     -- Commented here. Moved it to make global.
19105     /*
19106     TYPE l_osid_type is table of okl_supp_invoice_dtls.id%TYPE index by binary_integer;
19107     TYPE l_osobject_version_number_type is table of okl_supp_invoice_dtls.object_version_number%TYPE index by binary_integer;
19108     TYPE l_oscle_id_type is table of okl_supp_invoice_dtls.cle_id%TYPE index by binary_integer;
19109     TYPE l_osfa_cle_id_type is table of okl_supp_invoice_dtls.fa_cle_id%TYPE index by binary_integer;
19110     TYPE l_osinvoice_number_type is table of okl_supp_invoice_dtls.invoice_number%TYPE index by binary_integer;
19111     TYPE l_osdate_invoiced_type is table of okl_supp_invoice_dtls.date_invoiced%TYPE index by binary_integer;
19112     TYPE l_osdate_due_type is table of okl_supp_invoice_dtls.date_due%TYPE index by binary_integer;
19113     TYPE l_osshipping_address_id1_type is table of okl_supp_invoice_dtls.shipping_address_id1%TYPE index by binary_integer;
19114     TYPE l_osshipping_address_id2_type is table of okl_supp_invoice_dtls.shipping_address_id2%TYPE index by binary_integer;
19115     TYPE l_osshipping_address_code_type is table of okl_supp_invoice_dtls.shipping_address_code%TYPE index by binary_integer;
19116     TYPE l_osattribute_category_type is table of okl_supp_invoice_dtls.attribute_category%TYPE index by binary_integer;
19117     TYPE l_osattribute1_type is table of okl_supp_invoice_dtls.attribute1%TYPE index by binary_integer;
19118     TYPE l_osattribute2_type is table of okl_supp_invoice_dtls.attribute2%TYPE index by binary_integer;
19119     TYPE l_osattribute3_type is table of okl_supp_invoice_dtls.attribute3%TYPE index by binary_integer;
19120     TYPE l_osattribute4_type is table of okl_supp_invoice_dtls.attribute4%TYPE index by binary_integer;
19121     TYPE l_osattribute5_type is table of okl_supp_invoice_dtls.attribute5%TYPE index by binary_integer;
19122     TYPE l_osattribute6_type is table of okl_supp_invoice_dtls.attribute6%TYPE index by binary_integer;
19123     TYPE l_osattribute7_type is table of okl_supp_invoice_dtls.attribute7%TYPE index by binary_integer;
19124     TYPE l_osattribute8_type is table of okl_supp_invoice_dtls.attribute8%TYPE index by binary_integer;
19125     TYPE l_osattribute9_type is table of okl_supp_invoice_dtls.attribute9%TYPE index by binary_integer;
19126     TYPE l_osattribute10_type is table of okl_supp_invoice_dtls.attribute10%TYPE index by binary_integer;
19127     TYPE l_osattribute11_type is table of okl_supp_invoice_dtls.attribute11%TYPE index by binary_integer;
19128     TYPE l_osattribute12_type is table of okl_supp_invoice_dtls.attribute12%TYPE index by binary_integer;
19129     TYPE l_osattribute13_type is table of okl_supp_invoice_dtls.attribute13%TYPE index by binary_integer;
19130     TYPE l_osattribute14_type is table of okl_supp_invoice_dtls.attribute14%TYPE index by binary_integer;
19131     TYPE l_osattribute15_type is table of okl_supp_invoice_dtls.attribute15%TYPE index by binary_integer;
19132     TYPE l_oscreated_by_type is table of okl_supp_invoice_dtls.created_by%TYPE index by binary_integer;
19133     TYPE l_oscreation_date_type is table of okl_supp_invoice_dtls.creation_date%TYPE index by binary_integer;
19134     TYPE l_oslast_updated_by_type is table of okl_supp_invoice_dtls.last_updated_by%TYPE index by binary_integer;
19135     TYPE l_oslast_update_date_type is table of okl_supp_invoice_dtls.last_update_date%TYPE index by binary_integer;
19136     TYPE l_oslast_update_login_type is table of okl_supp_invoice_dtls.last_update_login%TYPE index by binary_integer;
19137 
19138     l_osid_tab l_osid_type;
19139     l_osobject_version_number_tab l_osobject_version_number_type;
19140     l_oscle_id_tab l_oscle_id_type;
19141     l_osfa_cle_id_tab l_osfa_cle_id_type;
19142     l_osinvoice_number_tab l_osinvoice_number_type;
19143     l_osdate_invoiced_tab l_osdate_invoiced_type;
19144     l_osdate_due_tab l_osdate_due_type;
19145     l_osshipping_address_id1_tab l_osshipping_address_id1_type;
19146     l_osshipping_address_id2_tab l_osshipping_address_id2_type;
19147     l_osshipping_address_code_tab l_osshipping_address_code_type;
19148     l_osattribute_category_tab l_osattribute_category_type;
19149     l_osattribute1_tab l_osattribute1_type;
19150     l_osattribute2_tab l_osattribute2_type;
19151     l_osattribute3_tab l_osattribute3_type;
19152     l_osattribute4_tab l_osattribute4_type;
19153     l_osattribute5_tab l_osattribute5_type;
19154     l_osattribute6_tab l_osattribute6_type;
19155     l_osattribute7_tab l_osattribute7_type;
19156     l_osattribute8_tab l_osattribute8_type;
19157     l_osattribute9_tab l_osattribute9_type;
19158     l_osattribute10_tab l_osattribute10_type;
19159     l_osattribute11_tab l_osattribute11_type;
19160     l_osattribute12_tab l_osattribute12_type;
19161     l_osattribute13_tab l_osattribute13_type;
19162     l_osattribute14_tab l_osattribute14_type;
19163     l_osattribute15_tab l_osattribute15_type;
19164     l_oscreated_by_tab l_oscreated_by_type;
19165     l_oscreation_date_tab l_oscreation_date_type;
19166     l_oslast_updated_by_tab l_oslast_updated_by_type;
19167     l_oslast_update_date_tab l_oslast_update_date_type;
19168     l_oslast_update_login_tab l_oslast_update_login_type;
19169 
19170     l_supp_invoice_dtls_counter number := 1;
19171     */
19172 
19173     l_osid_tab2 l_osid_type;
19174     l_osobject_version_number_tab2 l_osobject_version_number_type;
19175     l_oscle_id_tab2 l_oscle_id_type;
19176     l_osfa_cle_id_tab2 l_osfa_cle_id_type;
19177     l_osinvoice_number_tab2 l_osinvoice_number_type;
19178     l_osdate_invoiced_tab2 l_osdate_invoiced_type;
19179     l_osdate_due_tab2 l_osdate_due_type;
19180     l_osshipping_address_id1_tab2 l_osshipping_address_id1_type;
19181     l_osshipping_address_id2_tab2 l_osshipping_address_id2_type;
19182     l_osshipping_address_code_tab2 l_osshipping_address_code_type;
19183     l_osattribute_category_tab2 l_osattribute_category_type;
19184     l_osattribute1_tab2 l_osattribute1_type;
19185     l_osattribute2_tab2 l_osattribute2_type;
19186     l_osattribute3_tab2 l_osattribute3_type;
19187     l_osattribute4_tab2 l_osattribute4_type;
19188     l_osattribute5_tab2 l_osattribute5_type;
19189     l_osattribute6_tab2 l_osattribute6_type;
19190     l_osattribute7_tab2 l_osattribute7_type;
19191     l_osattribute8_tab2 l_osattribute8_type;
19192     l_osattribute9_tab2 l_osattribute9_type;
19193     l_osattribute10_tab2 l_osattribute10_type;
19194     l_osattribute11_tab2 l_osattribute11_type;
19195     l_osattribute12_tab2 l_osattribute12_type;
19196     l_osattribute13_tab2 l_osattribute13_type;
19197     l_osattribute14_tab2 l_osattribute14_type;
19198     l_osattribute15_tab2 l_osattribute15_type;
19199     l_oscreated_by_tab2 l_oscreated_by_type;
19200     l_oscreation_date_tab2 l_oscreation_date_type;
19201     l_oslast_updated_by_tab2 l_oslast_updated_by_type;
19202     l_oslast_update_date_tab2 l_oslast_update_date_type;
19203     l_oslast_update_login_tab2 l_oslast_update_login_type;
19204 
19205   l_new_cle_id NUMBER;
19206   l_new_fa_cle_id NUMBER;
19207 BEGIN
19208   OPEN c26(p_old_id);
19209   LOOP
19210     FETCH c26 bulk collect INTO
19211      l_osid_tab2, l_osobject_version_number_tab2, l_oscle_id_tab2,
19212      l_osfa_cle_id_tab2, l_osinvoice_number_tab2, l_osdate_invoiced_tab2,
19213      l_osdate_due_tab2, l_osshipping_address_id1_tab2, l_osshipping_address_id2_tab2,
19214      l_osshipping_address_code_tab2, l_osattribute_category_tab2, l_osattribute1_tab2,
19215      l_osattribute2_tab2, l_osattribute3_tab2, l_osattribute4_tab2,
19216      l_osattribute5_tab2, l_osattribute6_tab2, l_osattribute7_tab2,
19217      l_osattribute8_tab2, l_osattribute9_tab2, l_osattribute10_tab2,
19218      l_osattribute11_tab2, l_osattribute12_tab2, l_osattribute13_tab2,
19219      l_osattribute14_tab2, l_osattribute15_tab2, l_oscreated_by_tab2,
19220      l_oscreation_date_tab2, l_oslast_updated_by_tab2, l_oslast_update_date_tab2,
19221      l_oslast_update_login_tab2
19222     limit G_BULK_SIZE;
19223     EXIT WHEN l_osid_tab2.COUNT = 0;
19224     FOR i IN l_osid_tab2.first..l_osid_tab2.last
19225     LOOP
19226       l_osid_tab(l_supp_invoice_dtls_counter) := l_osid_tab2(i);
19227       -- Change id
19228       l_osid_tab(l_supp_invoice_dtls_counter) := okc_p_util.raw_to_number(sys_guid());
19229 
19230       l_osobject_version_number_tab(l_supp_invoice_dtls_counter) := l_osobject_version_number_tab2(i);
19231       l_oscle_id_tab(l_supp_invoice_dtls_counter) := l_oscle_id_tab2(i);
19232       -- Change cle_id
19233       IF (l_oscle_id_tab(l_supp_invoice_dtls_counter) IS NOT NULL) THEN
19234         l_new_cle_id := find_mapping_id(l_oscle_id_tab(l_supp_invoice_dtls_counter));
19235         IF (l_new_cle_id = -1) THEN
19236           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19237                       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));
19238           END IF;
19239           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
19240         END IF;
19241         l_oscle_id_tab(l_supp_invoice_dtls_counter) := l_new_cle_id;
19242       END IF;
19243 
19244       l_osfa_cle_id_tab(l_supp_invoice_dtls_counter) := l_osfa_cle_id_tab2(i);
19245       -- Change fa_cle_id
19246       IF (l_osfa_cle_id_tab(l_supp_invoice_dtls_counter) IS NOT NULL) THEN
19247         l_new_fa_cle_id := find_mapping_id(l_osfa_cle_id_tab(l_supp_invoice_dtls_counter));
19248         l_osfa_cle_id_tab(l_supp_invoice_dtls_counter) := l_new_fa_cle_id;
19249       END IF;
19250 
19251       l_osinvoice_number_tab(l_supp_invoice_dtls_counter) := l_osinvoice_number_tab2(i);
19252       l_osdate_invoiced_tab(l_supp_invoice_dtls_counter) := l_osdate_invoiced_tab2(i);
19253       l_osdate_due_tab(l_supp_invoice_dtls_counter) := l_osdate_due_tab2(i);
19254       l_osshipping_address_id1_tab(l_supp_invoice_dtls_counter) := l_osshipping_address_id1_tab2(i);
19255       l_osshipping_address_id2_tab(l_supp_invoice_dtls_counter) := l_osshipping_address_id2_tab2(i);
19256       l_osshipping_address_code_tab(l_supp_invoice_dtls_counter) := l_osshipping_address_code_tab2(i);
19257       l_osattribute_category_tab(l_supp_invoice_dtls_counter) := l_osattribute_category_tab2(i);
19258       l_osattribute1_tab(l_supp_invoice_dtls_counter) := l_osattribute1_tab2(i);
19259       l_osattribute2_tab(l_supp_invoice_dtls_counter) := l_osattribute2_tab2(i);
19260       l_osattribute3_tab(l_supp_invoice_dtls_counter) := l_osattribute3_tab2(i);
19261       l_osattribute4_tab(l_supp_invoice_dtls_counter) := l_osattribute4_tab2(i);
19262       l_osattribute5_tab(l_supp_invoice_dtls_counter) := l_osattribute5_tab2(i);
19263       l_osattribute6_tab(l_supp_invoice_dtls_counter) := l_osattribute6_tab2(i);
19264       l_osattribute7_tab(l_supp_invoice_dtls_counter) := l_osattribute7_tab2(i);
19265       l_osattribute8_tab(l_supp_invoice_dtls_counter) := l_osattribute8_tab2(i);
19266       l_osattribute9_tab(l_supp_invoice_dtls_counter) := l_osattribute9_tab2(i);
19267       l_osattribute10_tab(l_supp_invoice_dtls_counter) := l_osattribute10_tab2(i);
19268       l_osattribute11_tab(l_supp_invoice_dtls_counter) := l_osattribute11_tab2(i);
19269       l_osattribute12_tab(l_supp_invoice_dtls_counter) := l_osattribute12_tab2(i);
19270       l_osattribute13_tab(l_supp_invoice_dtls_counter) := l_osattribute13_tab2(i);
19271       l_osattribute14_tab(l_supp_invoice_dtls_counter) := l_osattribute14_tab2(i);
19272       l_osattribute15_tab(l_supp_invoice_dtls_counter) := l_osattribute15_tab2(i);
19273       l_oscreated_by_tab(l_supp_invoice_dtls_counter) := l_oscreated_by_tab2(i);
19274       l_oscreation_date_tab(l_supp_invoice_dtls_counter) := l_oscreation_date_tab2(i);
19275       l_oslast_updated_by_tab(l_supp_invoice_dtls_counter) := l_oslast_updated_by_tab2(i);
19276       l_oslast_update_date_tab(l_supp_invoice_dtls_counter) := l_oslast_update_date_tab2(i);
19277       l_oslast_update_login_tab(l_supp_invoice_dtls_counter) := l_oslast_update_login_tab2(i);
19278 
19279       l_supp_invoice_dtls_counter := l_supp_invoice_dtls_counter + 1;
19280 
19281     END LOOP;
19282   END LOOP;
19283   CLOSE c26;
19284   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19285       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);
19286   END IF;
19287   IF (l_supp_invoice_dtls_counter > 1) THEN
19288     forall i IN l_osid_tab.first..l_osid_tab.last
19289     INSERT INTO okl_supp_invoice_dtls (
19290        id, object_version_number, cle_id,
19291        fa_cle_id, invoice_number, date_invoiced,
19292        date_due, shipping_address_id1, shipping_address_id2,
19293        shipping_address_code, attribute_category, attribute1,
19294        attribute2, attribute3, attribute4,
19295        attribute5, attribute6, attribute7,
19296        attribute8, attribute9, attribute10,
19297        attribute11, attribute12, attribute13,
19298        attribute14, attribute15, created_by,
19299        creation_date, last_updated_by, last_update_date,
19300        last_update_login
19301     ) VALUES (
19302        l_osid_tab(i), 1, l_oscle_id_tab(i),
19303        l_osfa_cle_id_tab(i), l_osinvoice_number_tab(i), l_osdate_invoiced_tab(i),
19304        l_osdate_due_tab(i), l_osshipping_address_id1_tab(i), l_osshipping_address_id2_tab(i),
19305        l_osshipping_address_code_tab(i), l_osattribute_category_tab(i), l_osattribute1_tab(i),
19306        l_osattribute2_tab(i), l_osattribute3_tab(i), l_osattribute4_tab(i),
19307        l_osattribute5_tab(i), l_osattribute6_tab(i), l_osattribute7_tab(i),
19308        l_osattribute8_tab(i), l_osattribute9_tab(i), l_osattribute10_tab(i),
19309        l_osattribute11_tab(i), l_osattribute12_tab(i), l_osattribute13_tab(i),
19310        l_osattribute14_tab(i), l_osattribute15_tab(i), l_created_by,
19311        SYSDATE, l_last_updated_by, SYSDATE,
19312        l_last_update_login
19313     );
19314   END IF;
19315 
19316 EXCEPTION WHEN OTHERS THEN
19317 
19318   x_return_status := OKL_API.G_RET_STS_ERROR;
19319   /*OKL_API.set_message(p_app_name => 'OKL',
19320                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
19321                       p_token1 => 'ASSET_NUMBER',
19322                       p_token1_value => 'okl_supp_invoice_dtls');*/
19323   /* DEBUG */
19324   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19325       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
19326     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing okl_supp_invoice_dtls: l_osid_tab.count=' || l_osid_tab.COUNT || ' ...');
19327   END IF;
19328   IF (l_osid_tab.COUNT > 0) THEN
19329   FOR i IN l_osid_tab.first..l_osid_tab.last
19330   LOOP
19331     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19332           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osid_tab('||i||')=' || l_osid_tab(i));
19333       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_oscle_id_tab('||i||')=' || l_oscle_id_tab(i));
19334       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osfa_cle_id_tab('||i||')=' || l_osfa_cle_id_tab(i));
19335       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osinvoice_number_tab('||i||')=' || l_osinvoice_number_tab(i));
19336       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osdate_invoiced_tab('||i||')=' || l_osdate_invoiced_tab(i));
19337       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osdate_due_tab('||i||')=' || l_osdate_due_tab(i));
19338       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osshipping_address_id1_tab('||i||')=' || l_osshipping_address_id1_tab(i));
19339       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osshipping_address_id2_tab('||i||')=' || l_osshipping_address_id2_tab(i));
19340       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osshipping_address_code_tab('||i||')=' || l_osshipping_address_code_tab(i));
19341       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute_category_tab('||i||')=' || l_osattribute_category_tab(i));
19342       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute1_tab('||i||')=' || l_osattribute1_tab(i));
19343       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute2_tab('||i||')=' || l_osattribute2_tab(i));
19344       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute3_tab('||i||')=' || l_osattribute3_tab(i));
19345       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute4_tab('||i||')=' || l_osattribute4_tab(i));
19346       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute5_tab('||i||')=' || l_osattribute5_tab(i));
19347       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute6_tab('||i||')=' || l_osattribute6_tab(i));
19348       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute7_tab('||i||')=' || l_osattribute7_tab(i));
19349       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute8_tab('||i||')=' || l_osattribute8_tab(i));
19350       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute9_tab('||i||')=' || l_osattribute9_tab(i));
19351       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute10_tab('||i||')=' || l_osattribute10_tab(i));
19352       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute11_tab('||i||')=' || l_osattribute11_tab(i));
19353       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute12_tab('||i||')=' || l_osattribute12_tab(i));
19354       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute13_tab('||i||')=' || l_osattribute13_tab(i));
19355       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute14_tab('||i||')=' || l_osattribute14_tab(i));
19356       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_osattribute15_tab('||i||')=' || l_osattribute15_tab(i));
19357     END IF;
19358   END LOOP;
19359   END IF;
19360 
19361   RAISE OKC_API.G_EXCEPTION_ERROR;
19362 
19363 END;
19364 
19365 PROCEDURE get_object1_id1(p_install_location_type_code IN okx_install_items_v.location_type_code%TYPE,
19366                           p_install_location_id IN okx_install_items_v.location_id%TYPE,
19367                           p_instance_number IN okx_install_items_v.instance_number%TYPE,
19368                           x_object_id1_new OUT NOCOPY NUMBER
19369 ) IS
19370 
19371     --Cursors
19372     CURSOR c_get_iti_object_id1(p_party_site_id HZ_PARTY_SITE_USES.PARTY_SITE_ID%TYPE)
19373     IS
19374     SELECT psu.party_site_use_id
19375     FROM HZ_PARTY_SITE_USES psu,
19376          HZ_PARTY_SITES ps
19377     WHERE ps.party_site_id =   psu.party_site_id
19378     AND psu.site_use_type = 'INSTALL_AT'
19379     AND psu.party_site_id = p_party_site_id;
19380 
19381     CURSOR l_site_use_csr (p_location_id IN NUMBER) IS
19382     SELECT psu.party_site_use_id
19383     FROM   hz_party_site_uses psu,
19384            hz_party_sites     ps
19385     WHERE  psu.party_site_id     = ps.party_site_id
19386     AND    psu.site_use_type     = 'INSTALL_AT'
19387     AND    ps.location_id        = p_location_id;
19388 
19389     l_site_use_rec    l_site_use_csr%ROWTYPE;
19390 
19391     --Cursor to get address for error
19392     CURSOR l_address_csr (pty_site_id IN NUMBER ) IS
19393     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)
19394     FROM hz_locations hl,
19395          hz_party_sites ps
19396     WHERE hl.location_id = ps.location_id
19397     AND   ps.party_site_id = pty_site_id;
19398 
19399     CURSOR l_address_csr2 (loc_id IN NUMBER) IS
19400     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)
19401     FROM hz_locations hl
19402     WHERE hl.location_id = loc_id;
19403 
19404     l_address VARCHAR2(80);
19405 
19406 BEGIN
19407     --Logic
19408     IF NVL(p_install_location_type_code,OKL_API.G_MISS_CHAR) NOT IN ('HZ_PARTY_SITES','HZ_LOCATIONS') THEN
19409     --Raise Error
19410     OKL_API.Set_Message(p_app_name     => 'OKL_COPY_CONTRACT_PVT',
19411                         p_msg_name     => 'OKL_INVALID_INSTALL_LOC_TYPE',
19412                         p_token1       => 'LOCATION_TYPE',
19413                         p_token1_value => p_install_location_type_code,
19414                         p_token2       => 'LOCATION_TYPE1',
19415                         p_token2_value => 'HZ_PARTY_SITES',
19416                         p_token3       => 'LOCATION_TYPE2',
19417                         p_token3_value => 'HZ_LOCATIONS');
19418     x_return_status := OKL_API.G_RET_STS_ERROR;
19419     RAISE OKL_API.G_EXCEPTION_ERROR;
19420 
19421     ELSIF NVL(p_install_location_type_code,OKL_API.G_MISS_CHAR) = 'HZ_PARTY_SITES' THEN
19422 
19423                 OPEN  c_get_iti_object_id1(p_install_location_id);
19424                 FETCH c_get_iti_object_id1 INTO x_OBJECT_ID1_NEW;
19425                 IF c_get_iti_object_id1%NOTFOUND THEN
19426                     OPEN l_address_csr(pty_site_id => p_install_location_id);
19427                     FETCH l_address_csr INTO l_address;
19428                     CLOSE l_address_csr;
19429                     --Raise Error : not defined as install_at
19430                     OKL_API.Set_Message
19431                              (p_app_name     => 'OKL_COPY_CONTRACT_PVT',
19432                               p_msg_name     => 'OKL_INSTALL_LOC_MISSING_USAGE',
19433                               p_token1       => 'USAGE_TYPE',
19434                               p_token1_value => 'INSTALL_AT',
19435                               p_token2       => 'ADDRESS',
19436                               p_token2_value => l_address,
19437                               p_token3       => 'INSTANCE_NUMBER',
19438                               p_token3_value => p_instance_number);
19439                     x_return_status := OKL_API.G_RET_STS_ERROR;
19440                     RAISE OKL_API.G_EXCEPTION_ERROR;
19441                 END IF;
19442                 CLOSE c_get_iti_object_id1;
19443 
19444     ELSIF NVL(p_install_location_type_code,OKL_API.G_MISS_CHAR) = 'HZ_LOCATIONS' THEN
19445 
19446                 OPEN  l_site_use_csr(p_install_location_id);
19447                 FETCH l_site_use_csr INTO l_site_use_rec;
19448                 IF l_site_use_csr%NOTFOUND THEN
19449                     OPEN l_address_csr2(loc_id => p_install_location_id);
19450                     FETCH l_address_csr2 INTO l_address;
19451                     CLOSE l_address_csr2;
19452                     --Raise Error : not defined as install_at
19453                     OKL_API.Set_Message(p_app_name  => 'OKL_COPY_CONTRACT_PVT2',
19454                               p_msg_name     => 'OKL_INSTALL_LOC_MISSING_USAGE',
19455                               p_token1       => 'USAGE_TYPE',
19456                               p_token1_value => 'INSTALL_AT',
19457                               p_token2       => 'ADDRESS',
19458                               p_token2_value => l_address,
19459                               p_token3       => 'INSTANCE_NUMBER',
19460                               p_token3_value => p_instance_number);
19461                     x_return_status := OKL_API.G_RET_STS_ERROR;
19462                     RAISE OKL_API.G_EXCEPTION_ERROR;
19463 
19464                 END IF;
19465                 x_object_id1_new := l_site_use_rec.party_site_use_id;
19466                 CLOSE l_site_use_csr;
19467 
19468 
19469     END IF;
19470 
19471 END; /* get_object1_id1 */
19472 
19473 PROCEDURE insert_okl_txl_itm_insts2(p_old_id IN okc_k_headers_b.id%TYPE,
19474                                     p_new_id IN okc_k_headers_b.id%TYPE) IS
19475 CURSOR c28(p_id NUMBER) IS
19476 SELECT csi.inventory_item_id,
19477        csi.inv_master_organization_id,
19478        csi.instance_number,
19479        b.id,
19480        b.cle_id,
19481        c.object1_id1,
19482        csi.location_type_code,
19483        csi.location_id,
19484        csi.serial_number
19485 FROM   okx_install_items_v csi,
19486        okc_k_lines_b b,
19487        okc_k_items c
19488 WHERE  b.dnz_chr_id = p_id
19489 AND    b.lse_id = 45
19490 AND    c.dnz_chr_id = p_id
19491 AND    b.id = c.cle_id
19492 AND    csi.id1 = TO_NUMBER(c.object1_id1);
19493 
19494 CURSOR c_get_cle(p_id NUMBER, p_lse_id NUMBER) IS
19495     SELECT id
19496     FROM okc_k_lines_b
19497     WHERE cle_id = p_id
19498     AND lse_id = p_lse_id;
19499 
19500 /*cursor c_get_object1_id1(p_id number, p_lse_id number) is
19501   select c.object1_id2
19502   from   okc_k_items c,
19503          okc_k_lines_b b
19504   where c.cle_id = b.id
19505   and   b.id = p_id
19506   and b.lse_id = p_lse_id;*/
19507 
19508 TYPE l_inventory_item_id_type IS TABLE OF okx_install_items_v.inventory_item_id%TYPE INDEX BY BINARY_INTEGER;
19509 TYPE l_inv_master_org_id_type IS TABLE OF okx_install_items_v.inv_master_organization_id%TYPE INDEX BY BINARY_INTEGER;
19510 TYPE l_instance_number_type IS TABLE OF okx_install_items_v.instance_number%TYPE INDEX BY BINARY_INTEGER;
19511 TYPE l_id_type IS TABLE OF okc_k_lines_b.id%TYPE INDEX BY BINARY_INTEGER;
19512 TYPE l_cle_id_type IS TABLE OF okc_k_lines_b.cle_id%TYPE INDEX BY BINARY_INTEGER;
19513 TYPE l_object1_id1_type IS TABLE OF okc_k_items.object1_id1%TYPE INDEX BY BINARY_INTEGER;
19514 TYPE l_location_type_code_type IS TABLE OF okx_install_items_v.location_type_code%TYPE INDEX BY BINARY_INTEGER;
19515 TYPE l_location_id_type IS TABLE OF okx_install_items_v.location_id%TYPE INDEX BY BINARY_INTEGER;
19516 TYPE l_serial_number_type IS TABLE OF okx_install_items_v.serial_number%TYPE INDEX BY BINARY_INTEGER;
19517 
19518 l_inventory_item_id_tab2 l_inventory_item_id_type;
19519 l_inv_master_org_id_tab2 l_inv_master_org_id_type;
19520 l_instance_number_tab2 l_instance_number_type;
19521 l_id_tab2 l_id_type;
19522 l_cle_id_tab2 l_cle_id_type;
19523 l_object1_id1_tab2 l_object1_id1_type;
19524 l_location_type_code_tab2 l_location_type_code_type;
19525 l_location_id_tab2 l_location_id_type;
19526 l_serial_number_tab2 l_serial_number_type;
19527 
19528 l_inventory_item_id_tab3 l_inventory_item_id_type;
19529 l_inv_master_org_id_tab3 l_inv_master_org_id_type;
19530 l_instance_number_tab3 l_instance_number_type;
19531 l_id_tab3 l_id_type;
19532 l_cle_id_tab3 l_cle_id_type;
19533 l_object1_id1_tab3 l_object1_id1_type;
19534 l_location_type_code_tab3 l_location_type_code_type;
19535 l_location_id_tab3 l_location_id_type;
19536 l_serial_number_tab3 l_serial_number_type;
19537 
19538 -- okl_trx_assets
19539 l_t4id_tab l_tid_type;
19540 l_trx_assets_counter5 NUMBER := 1;
19541 
19542 /* Commented here. To make it global */
19543 -- okl_txl_itm_insts
19544 /*
19545 l_ti2id_tab l_tiid_type;
19546 l_ti2tas_id_tab l_titas_id_type;
19547 l_ti2kle_id_tab l_tikle_id_type;
19548 l_ti2line_number_tab l_tiline_number_type;
19549 l_ti2instance_number_ib_tab l_tiinstance_number_ib_type;
19550 l_ti2object_id1_new_tab l_tiobject_id1_new_type;
19551 l_ti2object_id2_new_tab l_tiobject_id2_new_type;
19552 l_ti2jtot_object_code_new_tab l_tijtot_object_code_new_type;
19553 l_ti2dnz_cle_id_tab l_tidnz_cle_id_type;
19554 l_ti2inventory_item_id_tab l_tiinventory_item_id_type;
19555 l_ti2inv_master_org_id_tab l_tiinv_master_org_id_type;
19556 l_ti2inventory_org_id_tab l_tiinventory_org_id_type;
19557 l_ti2serial_number_tab l_tiserial_number_type;
19558 l_ti2mfg_serial_number_yn_tab l_timfg_serial_number_yn_type;
19559 
19560 --l_txl_itm_insts_counter2 number := 1;
19561 */
19562 l_instance_counter NUMBER := 1;
19563 l_dnz_cle_id NUMBER;
19564 l_object1_id1 VARCHAR2(40);
19565 l_new_kle_id NUMBER;
19566 l_new_cle_id NUMBER;
19567 l_new_line_number NUMBER;
19568 l_new_dnz_cle_id NUMBER;
19569 l_new_object_id1 VARCHAR2(40);
19570 l_new_id NUMBER;
19571 l_local_cle_id NUMBER;
19572 l_local_cle_id2 NUMBER;
19573 
19574 BEGIN
19575   IF (G_DEBUG_ENABLED = 'Y') THEN
19576     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
19577   END IF;
19578   NULL;
19579   OPEN c28(p_old_id);
19580   LOOP
19581     FETCH c28 bulk collect INTO
19582       l_inventory_item_id_tab2, l_inv_master_org_id_tab2,
19583       l_instance_number_tab2, l_id_tab2,
19584       l_cle_id_tab2, l_object1_id1_tab2,
19585       l_location_type_code_tab2, l_location_id_tab2,
19586       l_serial_number_tab2
19587     limit G_BULK_SIZE;
19588     EXIT WHEN l_inventory_item_id_tab2.COUNT=0;
19589     FOR i IN l_inventory_item_id_tab2.first..l_inventory_item_id_tab2.last
19590     LOOP
19591       l_inventory_item_id_tab3(l_instance_counter) := l_inventory_item_id_tab2(i);
19592       l_inv_master_org_id_tab3(l_instance_counter) := l_inv_master_org_id_tab2(i);
19593       l_instance_number_tab3(l_instance_counter) := l_instance_number_tab2(i);
19594       l_id_tab3(l_instance_counter) := l_id_tab2(i);
19595       l_cle_id_tab3(l_instance_counter) := l_cle_id_tab2(i);
19596       l_object1_id1_tab3(l_instance_counter) := l_object1_id1_tab2(i);
19597       l_location_type_code_tab3(l_instance_counter) := l_location_type_code_tab2(i);
19598       l_location_id_tab3(l_instance_counter) := l_location_id_tab2(i);
19599       l_serial_number_tab3(l_instance_counter) := l_serial_number_tab2(i);
19600 
19601       l_instance_counter := l_instance_counter + 1;
19602     END LOOP;
19603   END LOOP;
19604   CLOSE c28;
19605   IF (l_inventory_item_id_tab3.count > 0) THEN
19606   FOR i IN l_inventory_item_id_tab3.first..l_inventory_item_id_tab3.last
19607   LOOP
19608     l_t4id_tab(l_trx_assets_counter5) := okc_p_util.raw_to_number(sys_guid());
19609 
19610     l_ti2id_tab(l_txl_itm_insts_counter2) := okc_p_util.raw_to_number(sys_guid());
19611     l_ti2tas_id_tab(l_txl_itm_insts_counter2) := l_t4id_tab(l_trx_assets_counter5);
19612     l_ti2kle_id_tab(l_txl_itm_insts_counter2) := l_id_tab3(i);
19613     -- Change kle_id
19614     l_new_kle_id := find_mapping_id(l_ti2kle_id_tab(l_txl_itm_insts_counter2));
19615         IF (l_new_kle_id = -1) THEN
19616           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19617                       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));
19618           END IF;
19619           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
19620         END IF;
19621     l_ti2kle_id_tab(l_txl_itm_insts_counter2) := l_new_kle_id;
19622 
19623     l_new_cle_id := find_mapping_id(l_cle_id_tab3(i));
19624     l_new_line_number := find_cle_line_number2(l_new_cle_id);
19625     IF (l_new_line_number = -1) THEN
19626       l_cle_mapping_tab2(l_trx_assets_counter6).old_id := l_new_cle_id;
19627       l_cle_mapping_tab2(l_trx_assets_counter6).new_id := 1;
19628 
19629       l_trx_assets_counter6 := l_trx_assets_counter6 + 1;
19630       l_new_line_number := 1;
19631     END IF;
19632     l_ti2line_number_tab(l_txl_itm_insts_counter2) := l_new_line_number;
19633     l_ti2instance_number_ib_tab(l_txl_itm_insts_counter2) := l_instance_number_tab3(i);
19634 
19635     -- AKP: to do
19636     --l_ti2object_id1_new_tab(l_txl_itm_insts_counter2) := null;
19637 
19638     get_object1_id1(l_location_type_code_tab3(i), l_location_id_tab3(i), l_instance_number_tab3(i), l_new_object_id1);
19639     l_ti2object_id1_new_tab(l_txl_itm_insts_counter2) := l_new_object_id1;
19640 
19641     l_ti2object_id2_new_tab(l_txl_itm_insts_counter2) := '#';
19642     l_ti2jtot_object_code_new_tab(l_txl_itm_insts_counter2) := 'OKX_PARTSITE';
19643 
19644     /*print('l_id_tab3(' || i || ')=' || l_id_tab3(i));
19645     for r in c_get_cle(l_id_tab3(i) , 33 )
19646     loop
19647       l_dnz_cle_id := r.id;
19648     end loop;*/
19649     l_new_id := find_id(l_id_tab3(i));
19650     --print('l_new_id=' || l_new_id);
19651     IF (l_new_id = -1) THEN
19652       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19653               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR: OLD_LINE_ID to NEW_LINE_ID mapping not found');
19654       END IF;
19655       RAISE OKL_API.G_EXCEPTION_ERROR;
19656     END IF;
19657     l_local_cle_id := find_cid_mapping_id(l_new_id);
19658     --print('l_local_cle_id=' || l_local_cle_id);
19659     IF (l_local_cle_id = -1) THEN
19660       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19661               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR: ID to CLE_ID mapping not found');
19662       END IF;
19663       RAISE OKL_API.G_EXCEPTION_ERROR;
19664     END IF;
19665     l_local_cle_id2 := find_cid_mapping_id(l_local_cle_id);
19666     --print('l_local_cle_id2=' || l_local_cle_id2);
19667     IF (l_local_cle_id2 = -1) THEN
19668       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19669               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR: ID to CLE_ID mapping not found');
19670       END IF;
19671       RAISE OKL_API.G_EXCEPTION_ERROR;
19672     END IF;
19673 
19674     --l_new_dnz_cle_id := find_mapping_id(l_dnz_cle_id);
19675     l_ti2dnz_cle_id_tab(l_txl_itm_insts_counter2) := l_local_cle_id2;
19676     l_ti2inventory_item_id_tab(l_txl_itm_insts_counter2) := l_inventory_item_id_tab3(i);
19677     l_ti2inv_master_org_id_tab(l_txl_itm_insts_counter2) := l_inv_master_org_id_tab3(i);
19678 
19679     /*print('Before c_get_object1_id1:l_id_tab3(' || i || ')=' || l_id_tab3(i));
19680     for r in c_get_object1_id1(l_id_tab3(i) , 34 )
19681     loop
19682       l_object1_id1 := r.object1_id2;
19683     end loop;
19684     l_ti2inventory_org_id_tab(l_txl_itm_insts_counter2) := to_number(l_object1_id1);*/
19685     l_ti2inventory_org_id_tab(l_txl_itm_insts_counter2) := l_inventory_org_id;
19686 
19687     l_ti2serial_number_tab(l_txl_itm_insts_counter2) := l_serial_number_tab3(i);
19688     IF (l_ti2serial_number_tab(l_txl_itm_insts_counter2) IS NULL) THEN
19689       l_ti2mfg_serial_number_yn_tab(l_txl_itm_insts_counter2) := 'N';
19690     ELSE
19691       l_ti2mfg_serial_number_yn_tab(l_txl_itm_insts_counter2) := 'Y';
19692     END IF;
19693 
19694     l_txl_itm_insts_counter2 := l_txl_itm_insts_counter2 + 1;
19695 
19696     l_trx_assets_counter5 := l_trx_assets_counter5 + 1;
19697   END LOOP;
19698   END IF; /* if l_inventory_item_id_tab3.count > 0 */
19699 
19700   -- Now populate
19701   IF (l_trx_assets_counter5 > 1) THEN
19702     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19703           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);
19704     END IF;
19705     forall i IN l_t4id_tab.first..l_t4id_tab.last
19706       INSERT INTO okl_trx_assets (
19707         id, tas_type, object_version_number,
19708         tsu_code, try_id, date_trans_occurred,
19709         created_by, creation_date, last_updated_by,
19710         last_update_date, last_update_login, trans_number
19711         ,transaction_date
19712       ) VALUES (
19713         l_t4id_tab(i), p_trans_type, 1,
19714         'ENTERED', l_try_id, SYSDATE, -- AKP: populate try_id properly
19715         l_created_by, SYSDATE, l_last_updated_by,
19716         SYSDATE, l_last_update_login, okl_trn_seq.NEXTVAL
19717         ,SYSDATE
19718       );
19719   END IF;
19720 
19721   IF (l_txl_itm_insts_counter2  > 1) THEN
19722     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19723           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);
19724     END IF;
19725     forall i IN l_ti2id_tab.first..l_ti2id_tab.last
19726     INSERT INTO okl_txl_itm_insts (
19727       id, object_version_number, tas_id,
19728       tal_type, kle_id, line_number,
19729       instance_number_ib, object_id1_new, object_id2_new,
19730       jtot_object_code_new, dnz_cle_id, inventory_item_id,
19731       inv_master_org_id, inventory_org_id, created_by,
19732       creation_date, last_updated_by, last_update_date,
19733       last_update_login, serial_number, mfg_serial_number_yn
19734     ) VALUES (
19735       l_ti2id_tab(i), 1, l_ti2tas_id_tab(i),
19736       p_trans_type, l_ti2kle_id_tab(i), l_ti2line_number_tab(i),
19737       l_ti2instance_number_ib_tab(i), l_ti2object_id1_new_tab(i), l_ti2object_id2_new_tab(i),
19738       l_ti2jtot_object_code_new_tab(i), l_ti2dnz_cle_id_tab(i), l_ti2inventory_item_id_tab(i),
19739       l_ti2inv_master_org_id_tab(i), l_ti2inventory_org_id_tab(i), l_created_by,
19740       SYSDATE, l_last_updated_by, SYSDATE,
19741       l_last_update_login, l_ti2serial_number_tab(i), l_ti2mfg_serial_number_yn_tab(i)
19742     );
19743   END IF;
19744 
19745 EXCEPTION WHEN OTHERS THEN
19746 
19747   x_return_status := OKL_API.G_RET_STS_ERROR;
19748   /*OKL_API.set_message(p_app_name => 'OKL',
19749                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
19750                       p_token1 => 'ASSET_NUMBER',
19751                       p_token1_value => 'insert_okl_txl_itm_instst2');*/
19752     /* DEBUG */
19753   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19754       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
19755     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing okl_trx_assets:l_t4id_tab.count=' || l_t4id_tab.COUNT || ' ...');
19756   END IF;
19757   IF (l_t4id_tab.COUNT > 0) THEN
19758   FOR i IN l_t4id_tab.first..l_t4id_tab.last
19759   LOOP
19760     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19761           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_t4id_tab('||i||')=' || l_t4id_tab(i));
19762       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_try_id=' || l_try_id);
19763       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'p_trans_type=' || p_trans_type);
19764     END IF;
19765   END LOOP;
19766   END IF;
19767 
19768   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19769       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing okl_txl_itm_insts:l_ti2id_tab.count=' || l_ti2id_tab.COUNT || ' ...');
19770   END IF;
19771   IF (l_ti2id_tab.COUNT > 0) THEN
19772   FOR i IN l_ti2id_tab.first..l_ti2id_tab.last
19773   LOOP
19774     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19775           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ti2id_tab('||i||')=' || l_ti2id_tab(i));
19776       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ti2tas_id_tab('||i||')=' || l_ti2tas_id_tab(i));
19777       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'p_trans_type=' || p_trans_type);
19778       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ti2kle_id_tab('||i||')=' || l_ti2kle_id_tab(i));
19779       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ti2line_number_tab('||i||')=' || l_ti2line_number_tab(i));
19780       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ti2instance_number_ib_tab('||i||')=' || l_ti2instance_number_ib_tab(i));
19781       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ti2object_id1_new_tab('||i||')=' || l_ti2object_id1_new_tab(i));
19782       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ti2object_id2_new_tab('||i||')=' || l_ti2object_id2_new_tab(i));
19783       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));
19784       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ti2dnz_cle_id_tab('||i||')=' || l_ti2dnz_cle_id_tab(i));
19785       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ti2inventory_item_id_tab('||i||')=' || l_ti2inventory_item_id_tab(i));
19786       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));
19787       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ti2inventory_org_id_tab('||i||')=' || l_ti2inventory_org_id_tab(i));
19788       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_ti2serial_number_tab('||i||')=' || l_ti2serial_number_tab(i));
19789       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));
19790     END IF;
19791   END LOOP;
19792   END IF;
19793 
19794   RAISE OKC_API.G_EXCEPTION_ERROR;
19795 
19796 END; /* insert_okl_txl_itm_insts2 */
19797 
19798 FUNCTION find_sid_mapping_id(p_id IN NUMBER) RETURN NUMBER IS
19799 hi NUMBER;
19800 lo NUMBER;
19801 m NUMBER;
19802 BEGIN
19803   lo := 1;
19804   hi := l_counter - 1;
19805   WHILE (lo <= hi) LOOP
19806     m := FLOOR((hi + lo)/2);
19807     IF (l_sid_mapping_tab(m).id = p_id) THEN
19808       RETURN l_sid_mapping_tab(m).lse_id;
19809     ELSIF (l_sid_mapping_tab(m).id > p_id) THEN
19810       hi := m - 1;
19811     ELSE
19812       lo := m + 1;
19813     END IF;
19814   END LOOP;
19815   RETURN -1;
19816 END;  /* find_sid_mapping_id */
19817 
19818 PROCEDURE sort_sid_mapping_tab IS
19819   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
19820   --a numtabtype;
19821   l_stack numtabtype;
19822   l_stack_index NUMBER := 0;
19823   N NUMBER;
19824   R NUMBER;
19825   L NUMBER;
19826   P NUMBER;
19827   W NUMBER;
19828   W2 NUMBER;
19829   X NUMBER;
19830   I NUMBER;
19831   J NUMBER;
19832 BEGIN
19833   IF (G_DEBUG_ENABLED = 'Y') THEN
19834     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
19835   END IF;
19836   NULL;
19837 
19838   N := l_counter - 1;
19839   IF (N < 2) THEN
19840     RETURN;
19841   END IF;
19842   l_stack_index := l_stack_index + 1;
19843   l_stack(l_stack_index) := 1;
19844   l_stack_index := l_stack_index + 1;
19845   l_stack(l_stack_index) := N;
19846 
19847   --dbms_output.put_line('l_stack_index=' || l_stack_index);
19848   WHILE l_stack_index > 0
19849   LOOP
19850     R := l_stack(l_stack_index);
19851     l_stack_index := l_stack_index - 1;
19852     L := l_stack(l_stack_index);
19853     l_stack_index := l_stack_index - 1;
19854     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
19855     WHILE 1=1
19856     LOOP -- loop until L >= R
19857       I := L;
19858       J := R;
19859       P := FLOOR((L+R)/2);
19860       --if (a(L) > a(P)) then
19861       IF (l_sid_mapping_tab(L).id > l_sid_mapping_tab(P).id)
19862       THEN
19863         W := l_sid_mapping_tab(L).id;
19864         W2 := l_sid_mapping_tab(L).lse_id;
19865         l_sid_mapping_tab(L).id :=l_sid_mapping_tab(P).id;
19866         l_sid_mapping_tab(L).lse_id :=l_sid_mapping_tab(P).lse_id;
19867         l_sid_mapping_tab(P).id := W;
19868         l_sid_mapping_tab(P).lse_id := W2;
19869       END IF;
19870       --if (a(L) > a(R)) then
19871       IF (l_sid_mapping_tab(L).id > l_sid_mapping_tab(R).id)
19872       THEN
19873         W := l_sid_mapping_tab(L).id;
19874         W2 := l_sid_mapping_tab(L).lse_id;
19875         l_sid_mapping_tab(L).id :=l_sid_mapping_tab(R).id;
19876         l_sid_mapping_tab(L).lse_id :=l_sid_mapping_tab(R).lse_id;
19877         l_sid_mapping_tab(R).id := W;
19878         l_sid_mapping_tab(R).lse_id := W2;
19879       END IF;
19880       --if (a(P) > a(R)) then
19881       IF (l_sid_mapping_tab(P).id > l_sid_mapping_tab(R).id)
19882       THEN
19883         W := l_sid_mapping_tab(P).id;
19884         W2 := l_sid_mapping_tab(P).lse_id;
19885         l_sid_mapping_tab(P).id :=l_sid_mapping_tab(R).id;
19886         l_sid_mapping_tab(P).lse_id :=l_sid_mapping_tab(R).lse_id;
19887         l_sid_mapping_tab(R).id := W;
19888         l_sid_mapping_tab(R).lse_id := W2;
19889       END IF;
19890       --X := a(P);
19891       X := l_sid_mapping_tab(P).id;
19892       WHILE 1=1
19893       LOOP    -- until I > J
19894         --while (a(I) < X) loop
19895         WHILE (l_sid_mapping_tab(I).id < X) LOOP
19896           I := I + 1;
19897         END LOOP;
19898         WHILE (X < l_sid_mapping_tab(J).id) LOOP
19899           J := J - 1;
19900         END LOOP;
19901         IF (I <= J) THEN
19902           W := l_sid_mapping_tab(I).id;
19903           W2 := l_sid_mapping_tab(I).lse_id;
19904           l_sid_mapping_tab(I).id :=l_sid_mapping_tab(J).id;
19905           l_sid_mapping_tab(I).lse_id :=l_sid_mapping_tab(J).lse_id;
19906           l_sid_mapping_tab(J).id := W;
19907           l_sid_mapping_tab(J).lse_id := W2;
19908           I := I + 1;
19909           J := J - 1;
19910         END IF;
19911         EXIT WHEN I > J;
19912       END LOOP;
19913       IF (J - L < R - I) THEN
19914         IF (I < R) THEN
19915           --push(I); push(R);
19916           l_stack_index := l_stack_index + 1;
19917           l_stack(l_stack_index) := I;
19918           l_stack_index := l_stack_index + 1;
19919           l_stack(l_stack_index) := R;
19920           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
19921         END IF;
19922         R := J;
19923       ELSE
19924         IF (L < J) THEN
19925           --push(L); push(J);
19926           l_stack_index := l_stack_index + 1;
19927           l_stack(l_stack_index) := L;
19928           l_stack_index := l_stack_index + 1;
19929           l_stack(l_stack_index) := J;
19930           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
19931         END IF;
19932         L := I;
19933       END IF;
19934 
19935       EXIT WHEN (L >= R);
19936     END LOOP;
19937   END LOOP;
19938 
19939 EXCEPTION WHEN OTHERS THEN
19940 
19941   x_return_status := OKL_API.G_RET_STS_ERROR;
19942   /*OKL_API.set_message(p_app_name => 'OKL',
19943                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
19944                       p_token1 => 'ASSET_NUMBER',
19945                       p_token1_value => 'sort_sid_mapping_tab');*/
19946     /* DEBUG */
19947   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19948       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
19949     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_sid_mapping_tab:l_sid_mapping_tab N=' || N || ' ...');
19950   END IF;
19951 
19952   --print array
19953   FOR i IN 1..N
19954   LOOP
19955     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
19956           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);
19957     END IF;
19958   END LOOP;
19959 
19960   RAISE OKC_API.G_EXCEPTION_ERROR;
19961 
19962 END;  /* sort_sid_mapping_tab */
19963 
19964 PROCEDURE raise_business_event_header(
19965                   p_chr_id IN NUMBER
19966                  ,x_return_status OUT NOCOPY VARCHAR2
19967 )
19968 	IS
19969 	  l_check VARCHAR2(1);
19970           l_parameter_list           wf_parameter_list_t;
19971 BEGIN
19972 
19973   x_return_status := Okc_Api.G_RET_STS_SUCCESS;
19974   -- Our contract is always new. So commented following check
19975   --IF (p_source_code = 'new') THEN
19976    wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID,p_chr_id,l_parameter_list);
19977    OKL_WF_PVT.raise_event (p_api_version    => p_api_version,
19978                                  p_init_msg_list  => p_init_msg_list,
19979 				 x_return_status  => x_return_status,
19980 				 x_msg_count      => x_msg_count,
19981 				 x_msg_data       => x_msg_data,
19982 				 p_event_name     => G_WF_EVT_KHR_CREATED,
19983 				 p_parameters     => l_parameter_list);
19984 
19985   --END IF;
19986 
19987      EXCEPTION
19988      WHEN OTHERS THEN
19989        x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
19990        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
19991 END raise_business_event_header;
19992 
19993 PROCEDURE raise_business_event(
19994                 p_api_version       IN NUMBER,
19995                 p_init_msg_list     IN VARCHAR2,
19996                 x_return_status     OUT NOCOPY VARCHAR2,
19997                 x_msg_count         OUT NOCOPY NUMBER,
19998                 x_msg_data          OUT NOCOPY VARCHAR2,
19999                 p_event_name        IN wf_events.name%TYPE,
20000                 p_parameter_list    IN wf_parameter_list_t,
20001                 p_contract_process  IN VARCHAR2) IS
20002 
20003 l_chr_id              okc_k_headers_b.id%TYPE;
20004 --l_contract_process    VARCHAR2(30);
20005 l_parameter_list      WF_PARAMETER_LIST_T := p_parameter_list;
20006 
20007 BEGIN
20008   -- check to see if the the contract_id is not null, this is required since
20009   -- credit limit events do not necessarily pass a contract
20010   l_chr_id := wf_event.GetValueForParameter(G_WF_ITM_CONTRACT_ID,p_parameter_list);
20011   IF(l_chr_id IS NOT NULL)THEN
20012     -- if there exists a contract in context, then derive the contract process status
20013     --l_contract_process := okl_lla_util_pvt.get_contract_process(l_chr_id);
20014     IF(p_contract_process IS NOT NULL)THEN
20015        -- add the contract process status to the parameter list only the value is not null
20016        wf_event.AddParameterToList(G_WF_ITM_CONTRACT_PROCESS,p_contract_process,l_parameter_list);
20017     END IF;
20018   END IF;
20019   OKL_WF_PVT.raise_event (p_api_version    => p_api_version,
20020 			  p_init_msg_list  => p_init_msg_list,
20021 			  x_return_status  => x_return_status,
20022 			  x_msg_count      => x_msg_count,
20023 			  x_msg_data       => x_msg_data,
20024 			  p_event_name     => p_event_name,
20025 			  p_parameters     => l_parameter_list);
20026 
20027   EXCEPTION
20028     WHEN OTHERS THEN
20029       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
20030       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20031 END raise_business_event;
20032 
20033 PROCEDURE raise_business_event_subsidy(p_api_version IN NUMBER,
20034                                  p_init_msg_list IN VARCHAR2,
20035                                  p_chr_id IN okc_k_headers_b.id%TYPE,
20036                                  p_asset_id IN okc_k_lines_b.id%TYPE,
20037                                  p_subsidy_id IN okl_subsidies_b.id%TYPE,
20038                                  p_event_name IN VARCHAR2,
20039                                  p_contract_process IN VARCHAR2,
20040                                  x_return_status OUT NOCOPY VARCHAR2,
20041                                  x_msg_count OUT NOCOPY NUMBER,
20042                                  x_msg_data OUT NOCOPY VARCHAR2
20043                                  ) IS
20044     l_parameter_list wf_parameter_list_t;
20045     l_contract_process VARCHAR2(20);
20046   BEGIN
20047     x_return_status := OKL_API.G_RET_STS_SUCCESS;
20048 
20049     -- wrapper API to get contract process. this API determines in which status the
20050     -- contract in question is.
20051     --l_contract_process := okl_lla_util_pvt.get_contract_process(p_chr_id => p_chr_id);
20052     wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID, p_chr_id, l_parameter_list);
20053     wf_event.AddParameterToList(G_WF_ITM_ASSET_ID, p_asset_id, l_parameter_list);
20054     wf_event.AddParameterToList(G_WF_ITM_SUBSIDY_ID, p_subsidy_id, l_parameter_list);
20055     wf_event.AddParameterToList(G_WF_ITM_CONTRACT_PROCESS, p_contract_process, l_parameter_list);
20056     OKL_WF_PVT.raise_event(p_api_version    => p_api_version,
20057                            p_init_msg_list  => p_init_msg_list,
20058                            x_return_status  => x_return_status,
20059                            x_msg_count      => x_msg_count,
20060                            x_msg_data       => x_msg_data,
20061                            p_event_name     => p_event_name,
20062                            p_parameters     => l_parameter_list);
20063   EXCEPTION
20064     WHEN OTHERS THEN
20065     x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
20066     RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20067 END raise_business_event_subsidy;
20068 
20069 PROCEDURE raise_business_event_itm(
20070         p_api_version      IN NUMBER
20071        ,p_init_msg_list    IN VARCHAR2 DEFAULT OKC_API.G_FALSE
20072 	      ,x_return_status    OUT NOCOPY VARCHAR2
20073        ,x_msg_count        OUT NOCOPY NUMBER
20074        ,x_msg_data         OUT NOCOPY VARCHAR2
20075        ,p_event_name       IN WF_EVENTS.NAME%TYPE
20076        ,p_event_param_list IN WF_PARAMETER_LIST_T
20077        ,p_contract_process IN VARCHAR2
20078     )IS
20079 	    --l_process VARCHAR2(20);
20080      --p_chr_id  okc_k_headers_b.id%TYPE;
20081      l_parameter_list WF_PARAMETER_LIST_T := p_event_param_list;
20082    BEGIN
20083      --p_chr_id := wf_event.GetValueForParameter(G_WF_ITM_CONTRACT_ID,p_event_param_list);
20084      --l_process := Okl_Lla_Util_Pvt.get_contract_process(p_chr_id);
20085      wf_event.AddParameterToList(G_WF_ITM_CONTRACT_PROCESS,p_contract_process,l_parameter_list);
20086 
20087      OKL_WF_PVT.raise_event (p_api_version    => p_api_version,
20088                              p_init_msg_list  => p_init_msg_list,
20089                              x_return_status  => x_return_status,
20090                              x_msg_count      => x_msg_count,
20091                              x_msg_data       => x_msg_data,
20092                              p_event_name     => p_event_name,
20093                              p_parameters     => l_parameter_list);
20094    EXCEPTION
20095    WHEN OTHERS THEN
20096      x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
20097      RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20098 END raise_business_event_itm;
20099 
20100 PROCEDURE raise_business_event_dep(p_api_version IN NUMBER,
20101                                   p_init_msg_list IN VARCHAR2,
20102                                   p_chr_id IN okc_k_headers_b.id%TYPE,
20103                                   p_asset_id IN okc_k_lines_b.id%TYPE,
20104                                   p_book_code IN okl_txl_assets_b.corporate_book%TYPE,
20105                                   p_event_name IN VARCHAR2,
20106                                   p_contract_process IN VARCHAR2,
20107                                   x_return_status OUT NOCOPY VARCHAR2,
20108                                   x_msg_count OUT NOCOPY NUMBER,
20109                                   x_msg_data OUT NOCOPY VARCHAR2
20110                                   ) IS
20111      l_parameter_list wf_parameter_list_t;
20112    BEGIN
20113      x_return_status := OKL_API.G_RET_STS_SUCCESS;
20114 
20115      -- wrapper API to get contract process. this API determines in which status the
20116      -- contract in question is.
20117      --l_contract_process := okl_lla_util_pvt.get_contract_process(p_chr_id => p_chr_id);
20118      wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID, p_chr_id, l_parameter_list);
20119      wf_event.AddParameterToList(G_WF_ITM_ASSET_ID, p_asset_id, l_parameter_list);
20120      wf_event.AddParameterToList(G_WF_ITM_BOOK_CODE, p_book_code, l_parameter_list);
20121      wf_event.AddParameterToList(G_WF_ITM_CONTRACT_PROCESS, p_contract_process, l_parameter_list);
20122      OKL_WF_PVT.raise_event(p_api_version    => p_api_version,
20123                             p_init_msg_list  => p_init_msg_list,
20124                             x_return_status  => x_return_status,
20125                             x_msg_count      => x_msg_count,
20126                             x_msg_data       => x_msg_data,
20127                             p_event_name     => p_event_name,
20128                             p_parameters     => l_parameter_list);
20129 
20130    EXCEPTION
20131      WHEN OTHERS THEN
20132      x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
20133      RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20134 END raise_business_event_dep;
20135 
20136 
20137    PROCEDURE raise_business_event_txd(p_api_version IN NUMBER,
20138                                   p_init_msg_list IN VARCHAR2,
20139                                   p_chr_id IN okc_k_headers_b.id%TYPE,
20140                                   p_asset_id IN okc_k_lines_b.id%TYPE,
20141                                   p_event_name IN VARCHAR2,
20142                                   p_contract_process IN VARCHAR2,
20143                                   x_return_status OUT NOCOPY VARCHAR2,
20144                                   x_msg_count OUT NOCOPY NUMBER,
20145                                   x_msg_data OUT NOCOPY VARCHAR2
20146                                   ) IS
20147      l_parameter_list wf_parameter_list_t;
20148      --l_contract_process VARCHAR2(20);
20149    BEGIN
20150      x_return_status := OKL_API.G_RET_STS_SUCCESS;
20151 
20152      -- wrapper API to get contract process. this API determines in which status the
20153      -- contract in question is.
20154      --l_contract_process := okl_lla_util_pvt.get_contract_process(p_chr_id => p_chr_id);
20155      wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID, p_chr_id, l_parameter_list);
20156      wf_event.AddParameterToList(G_WF_ITM_ASSET_ID, p_asset_id, l_parameter_list);
20157      wf_event.AddParameterToList(G_WF_ITM_CONTRACT_PROCESS, p_contract_process, l_parameter_list);
20158 
20159      OKL_WF_PVT.raise_event(p_api_version    => p_api_version,
20160                             p_init_msg_list  => p_init_msg_list,
20161                             x_return_status  => x_return_status,
20162                             x_msg_count      => x_msg_count,
20163                             x_msg_data       => x_msg_data,
20164                             p_event_name     => p_event_name,
20165                             p_parameters     => l_parameter_list);
20166    EXCEPTION
20167      WHEN OTHERS THEN
20168      x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
20169      RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20170    END raise_business_event_txd;
20171 
20172 PROCEDURE raise_business_event_itm
20173                            (p_api_version IN NUMBER,
20174                             p_init_msg_list IN VARCHAR2,
20175                             p_chr_id IN okc_k_headers_b.id%TYPE,
20176                             p_asset_id IN okc_k_lines_b.id%TYPE,
20177                             p_ser_num IN okl_txl_itm_insts.serial_number%TYPE,
20178                             p_event_name IN VARCHAR2,
20179                             p_contract_process IN VARCHAR2,
20180                             x_return_status OUT NOCOPY VARCHAR2,
20181                             x_msg_count OUT NOCOPY NUMBER,
20182                             x_msg_data OUT NOCOPY VARCHAR2
20183                            ) IS
20184   l_parameter_list wf_parameter_list_t;
20185 BEGIN
20186   x_return_status := OKL_API.G_RET_STS_SUCCESS;
20187 
20188   wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID, p_chr_id, l_parameter_list);
20189   wf_event.AddParameterToList(G_WF_ITM_ASSET_ID, p_asset_id, l_parameter_list);
20190   wf_event.AddParameterToList(G_WF_ITM_SERIAL_NUM, p_ser_num, l_parameter_list);
20191   wf_event.AddParameterToList(G_WF_ITM_CONTRACT_PROCESS, p_contract_process, l_parameter_list);
20192 
20193   OKL_WF_PVT.raise_event(p_api_version    => p_api_version,
20194                          p_init_msg_list  => p_init_msg_list,
20195                          x_return_status  => x_return_status,
20196                          x_msg_count      => x_msg_count,
20197                          x_msg_data       => x_msg_data,
20198                          p_event_name     => p_event_name,
20199                          p_parameters     => l_parameter_list);
20200 EXCEPTION
20201   WHEN OTHERS THEN
20202   x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
20203   RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20204 END raise_business_event_itm;
20205 
20206    PROCEDURE raise_business_event_supp
20207                                  (p_api_version IN NUMBER,
20208                                   p_init_msg_list IN VARCHAR2,
20209                                   p_chr_id IN okc_k_headers_b.id%TYPE,
20210                                   p_asset_id IN okc_k_lines_b.id%TYPE,
20211                                   p_vendor_id IN po_vendors.vendor_id%TYPE,
20212                                   p_event_name IN VARCHAR2,
20213                                   p_contract_process IN VARCHAR2,
20214                                   x_return_status OUT NOCOPY VARCHAR2,
20215                                   x_msg_count OUT NOCOPY NUMBER,
20216                                   x_msg_data OUT NOCOPY VARCHAR2
20217                                   ) IS
20218      l_parameter_list wf_parameter_list_t;
20219    BEGIN
20220      x_return_status := OKL_API.G_RET_STS_SUCCESS;
20221 
20222      -- wrapper API to get contract process. this API determines in which status the
20223      -- contract in question is.
20224      --l_contract_process := okl_lla_util_pvt.get_contract_process(p_chr_id => p_chr_id);
20225      wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID, p_chr_id, l_parameter_list);
20226      wf_event.AddParameterToList(G_WF_ITM_ASSET_ID, p_asset_id, l_parameter_list);
20227      wf_event.AddParameterToList(G_WF_ITM_PARTY_ID, p_vendor_id, l_parameter_list);
20228      wf_event.AddParameterToList(G_WF_ITM_CONTRACT_PROCESS, p_contract_process, l_parameter_list);
20229 
20230      OKL_WF_PVT.raise_event(p_api_version    => p_api_version,
20231                             p_init_msg_list  => p_init_msg_list,
20232                             x_return_status  => x_return_status,
20233                             x_msg_count      => x_msg_count,
20234                             x_msg_data       => x_msg_data,
20235                             p_event_name     => p_event_name,
20236                             p_parameters     => l_parameter_list);
20237    EXCEPTION
20238      WHEN OTHERS THEN
20239      x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
20240      RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20241    END raise_business_event_supp;
20242 
20243 PROCEDURE raise_business_event_rules
20244                           (p_api_version IN NUMBER,
20245                            p_init_msg_list IN VARCHAR2,
20246                            x_return_status OUT NOCOPY VARCHAR2,
20247                            x_msg_count OUT NOCOPY NUMBER,
20248                            x_msg_data OUT NOCOPY VARCHAR2,
20249                            p_event_name IN VARCHAR2,
20250                            p_event_param_list IN WF_PARAMETER_LIST_T,
20251                            p_contract_process IN VARCHAR2
20252                           ) IS
20253   --l_contract_process VARCHAR2(20);
20254   l_event_param_list WF_PARAMETER_LIST_T := p_event_param_list;
20255 BEGIN
20256   x_return_status := OKL_API.G_RET_STS_SUCCESS;
20257 
20258   wf_event.AddParameterToList(G_WF_ITM_CONTRACT_PROCESS, p_contract_process, l_event_param_list);
20259 
20260   OKL_WF_PVT.raise_event(p_api_version    => p_api_version,
20261                          p_init_msg_list  => p_init_msg_list,
20262                          x_return_status  => x_return_status,
20263                          x_msg_count      => x_msg_count,
20264                          x_msg_data       => x_msg_data,
20265                          p_event_name     => p_event_name,
20266                          p_parameters     => l_event_param_list);
20267 EXCEPTION
20268   WHEN OTHERS THEN
20269   x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
20270   RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20271 END raise_business_event_rules;
20272 
20273 FUNCTION find_ssid_mapping_id(p_id IN NUMBER) RETURN VARCHAR2 IS
20274 hi NUMBER;
20275 lo NUMBER;
20276 m NUMBER;
20277 BEGIN
20278   lo := 1;
20279   hi := l_ssid_counter - 1;
20280   WHILE (lo <= hi) LOOP
20281     m := FLOOR((hi + lo)/2);
20282     IF (l_ssid_mapping_tab(m).cle_id = p_id) THEN
20283       RETURN l_ssid_mapping_tab(m).object1_id1;
20284     ELSIF (l_ssid_mapping_tab(m).cle_id > p_id) THEN
20285       hi := m - 1;
20286     ELSE
20287       lo := m + 1;
20288     END IF;
20289   END LOOP;
20290   RETURN NULL;
20291 END;  /* find_ssid_mapping_id */
20292 
20293 PROCEDURE sort_ssid_mapping_tab IS
20294   TYPE numtabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
20295   --a numtabtype;
20296   l_stack numtabtype;
20297   l_stack_index NUMBER := 0;
20298   N NUMBER;
20299   R NUMBER;
20300   L NUMBER;
20301   P NUMBER;
20302   W NUMBER;
20303   W2 VARCHAR2(40);
20304   X NUMBER;
20305   I NUMBER;
20306   J NUMBER;
20307 BEGIN
20308   IF (G_DEBUG_ENABLED = 'Y') THEN
20309     G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
20310   END IF;
20311   NULL;
20312 
20313   N := l_ssid_counter - 1;
20314   IF (N < 2) THEN
20315     RETURN;
20316   END IF;
20317   l_stack_index := l_stack_index + 1;
20318   l_stack(l_stack_index) := 1;
20319   l_stack_index := l_stack_index + 1;
20320   l_stack(l_stack_index) := N;
20321 
20322   --dbms_output.put_line('l_stack_index=' || l_stack_index);
20323   WHILE l_stack_index > 0
20324   LOOP
20325     R := l_stack(l_stack_index);
20326     l_stack_index := l_stack_index - 1;
20327     L := l_stack(l_stack_index);
20328     l_stack_index := l_stack_index - 1;
20329     --dbms_output.put_line('Pop: l_stack_index=' || l_stack_index);
20330     WHILE 1=1
20331     LOOP -- loop until L >= R
20332       I := L;
20333       J := R;
20334       P := FLOOR((L+R)/2);
20335       --if (a(L) > a(P)) then
20336       IF (l_ssid_mapping_tab(L).cle_id > l_ssid_mapping_tab(P).cle_id)
20337       THEN
20338         W := l_ssid_mapping_tab(L).cle_id;
20339         W2 := l_ssid_mapping_tab(L).object1_id1;
20340         l_ssid_mapping_tab(L).cle_id :=l_ssid_mapping_tab(P).cle_id;
20341         l_ssid_mapping_tab(L).object1_id1 :=l_ssid_mapping_tab(P).object1_id1;
20342         l_ssid_mapping_tab(P).cle_id := W;
20343         l_ssid_mapping_tab(P).object1_id1 := W2;
20344       END IF;
20345       --if (a(L) > a(R)) then
20346       IF (l_ssid_mapping_tab(L).cle_id > l_ssid_mapping_tab(R).cle_id)
20347       THEN
20348         W := l_ssid_mapping_tab(L).cle_id;
20349         W2 := l_ssid_mapping_tab(L).object1_id1;
20350         l_ssid_mapping_tab(L).cle_id :=l_ssid_mapping_tab(R).cle_id;
20351         l_ssid_mapping_tab(L).object1_id1 :=l_ssid_mapping_tab(R).object1_id1;
20352         l_ssid_mapping_tab(R).cle_id := W;
20353         l_ssid_mapping_tab(R).object1_id1 := W2;
20354       END IF;
20355       --if (a(P) > a(R)) then
20356       IF (l_ssid_mapping_tab(P).cle_id > l_ssid_mapping_tab(R).cle_id)
20357       THEN
20358         W := l_ssid_mapping_tab(P).cle_id;
20359         W2 := l_ssid_mapping_tab(P).object1_id1;
20360         l_ssid_mapping_tab(P).cle_id :=l_ssid_mapping_tab(R).cle_id;
20361         l_ssid_mapping_tab(P).object1_id1 :=l_ssid_mapping_tab(R).object1_id1;
20362         l_ssid_mapping_tab(R).cle_id := W;
20363         l_ssid_mapping_tab(R).object1_id1 := W2;
20364       END IF;
20365       --X := a(P);
20366       X := l_ssid_mapping_tab(P).cle_id;
20367       WHILE 1=1
20368       LOOP    -- until I > J
20369         --while (a(I) < X) loop
20370         WHILE (l_ssid_mapping_tab(I).cle_id < X) LOOP
20371           I := I + 1;
20372         END LOOP;
20373         WHILE (X < l_ssid_mapping_tab(J).cle_id) LOOP
20374           J := J - 1;
20375         END LOOP;
20376         IF (I <= J) THEN
20377           W := l_ssid_mapping_tab(I).cle_id;
20378           W2 := l_ssid_mapping_tab(I).object1_id1;
20379           l_ssid_mapping_tab(I).cle_id :=l_ssid_mapping_tab(J).cle_id;
20380           l_ssid_mapping_tab(I).object1_id1 :=l_ssid_mapping_tab(J).object1_id1;
20381           l_ssid_mapping_tab(J).cle_id := W;
20382           l_ssid_mapping_tab(J).object1_id1 := W2;
20383           I := I + 1;
20384           J := J - 1;
20385         END IF;
20386         EXIT WHEN I > J;
20387       END LOOP;
20388       IF (J - L < R - I) THEN
20389         IF (I < R) THEN
20390           --push(I); push(R);
20391           l_stack_index := l_stack_index + 1;
20392           l_stack(l_stack_index) := I;
20393           l_stack_index := l_stack_index + 1;
20394           l_stack(l_stack_index) := R;
20395           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
20396         END IF;
20397         R := J;
20398       ELSE
20399         IF (L < J) THEN
20400           --push(L); push(J);
20401           l_stack_index := l_stack_index + 1;
20402           l_stack(l_stack_index) := L;
20403           l_stack_index := l_stack_index + 1;
20404           l_stack(l_stack_index) := J;
20405           --dbms_output.put_line('Push: l_stack_index=' || l_stack_index);
20406         END IF;
20407         L := I;
20408       END IF;
20409 
20410       EXIT WHEN (L >= R);
20411     END LOOP;
20412   END LOOP;
20413 
20414 EXCEPTION WHEN OTHERS THEN
20415 
20416   x_return_status := OKL_API.G_RET_STS_ERROR;
20417   /*OKL_API.set_message(p_app_name => 'OKL',
20418                       p_msg_name => 'OKL_AM_NO_OLD_SALVAGE_VALUE',
20419                       p_token1 => 'ASSET_NUMBER',
20420                       p_token1_value => 'sort_ssid_mapping_tab');*/
20421     /* DEBUG */
20422   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20423       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
20424     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing sort_ssid_mapping_tab:l_ssid_mapping_tab N=' || N || ' ...');
20425   END IF;
20426 
20427   --print array
20428   FOR i IN 1..N
20429   LOOP
20430     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20431           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);
20432     END IF;
20433   END LOOP;
20434 
20435   RAISE OKC_API.G_EXCEPTION_ERROR;
20436 
20437 END;  /* sort_ssid_mapping_tab */
20438 
20439 BEGIN
20440 
20441    l_message := 'OKL_NEW_COPY_CHR_ERROR';
20442    l_curr_pos := 'okl_copy_lease_contract:1';
20443    x_return_status      := OKL_API.G_RET_STS_SUCCESS;
20444     -- Call start_activity to create savepoint, check compatibility
20445     -- and initialize message list
20446     x_return_status := OKL_API.START_ACTIVITY (
20447                                l_api_name
20448                                ,p_init_msg_list
20449                                ,'_PVT'
20450                                ,x_return_status);
20451     -- Check if activity started successfully
20452     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
20453        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20454     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
20455        RAISE OKL_API.G_EXCEPTION_ERROR;
20456     END IF;
20457 
20458   l_curr_pos := 'okl_copy_lease_contract:2';
20459   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20460       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'p_trans_type=' || p_trans_type);
20461   END IF;
20462   FOR c1rec IN c1(p_chr_id)
20463   LOOP
20464     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20465           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Source id = ' || c1rec.id || ' processing started:' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
20466     END IF;
20467     l_inventory_org_id := c1rec.inv_organization_id;
20468     l_curr_pos := 'okl_copy_lease_contract:3';
20469     l_orig_system_source_code := 'OKC_HDR';
20470     IF (c1rec.scs_code = 'QUOTE') THEN
20471       l_orig_system_source_code := 'OKL_QUOTE';
20472     END IF;
20473     IF (p_trans_type = 'CRB') THEN
20474      l_orig_system_source_code := 'OKL_REBOOK';
20475     ELSIF (p_trans_type = 'CRL') THEN
20476      l_orig_system_source_code := 'OKL_RELEASE';
20477     ELSIF (p_trans_type = 'SPLC') THEN
20478      l_orig_system_source_code := 'OKL_SPLIT';
20479     END IF;
20480 
20481     l_sts_code := 'NEW'; -- 4716939
20482     IF (c1rec.scs_code = 'LEASE') THEN
20483       l_sts_code := 'NEW';
20484     ELSIF (c1rec.scs_code = 'QUOTE') THEN
20485       IF (c1rec.sts_code = 'NEW') THEN
20486         l_sts_code := 'NEW';
20487       ELSE
20488         l_sts_code := 'INCOMPLETE';
20489       END IF;
20490     END IF;
20491     l_sts_code_orig := c1rec.sts_code;
20492 
20493     l_curr_pos := 'okl_copy_lease_contract:4';
20494 -- kmotepal populating contract id from sys guid instead of using OKC sequence which fixes the bug 4436545 (Reverted back for OKL.H)
20495     SELECT  okc_k_headers_b_s.NEXTVAL INTO l_copied_id FROM dual;
20496     --l_copied_id := okc_p_util.raw_to_number(sys_guid());
20497 
20498     l_contract_currency := c1rec.currency_code;
20499     l_contract_start_date := c1rec.start_date;
20500     l_conversion_type := c1rec.CONVERSION_TYPE;
20501     l_conversion_rate :=  c1rec.CONVERSION_RATE;
20502     l_conversion_rate_date := c1rec.CONVERSION_RATE_DATE;
20503     l_template_yn := c1rec.TEMPLATE_YN;
20504 
20505       -- AKP: what api??
20506     --l_contract_number := p_contract_number;
20507 
20508     l_curr_pos := 'okl_copy_lease_contract:5';
20509     IF (p_contract_number IS NULL) THEN
20510       l_curr_pos := 'okl_copy_lease_contract:6';
20511       okc_contract_pvt.generate_contract_number(
20512         p_scs_code => c1rec.scs_code,
20513         p_modifier => p_contract_number_modifier,
20514         x_return_status => x_return_status,
20515         x_contract_number => l_contract_number);
20516       IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
20517   	     OKC_API.SET_MESSAGE(p_app_name	=> g_app_name,
20518                                  p_msg_name	=> g_unexpected_error,
20519                                  p_token1		=> g_sqlcode_token,
20520                                  p_token1_value	=> SQLCODE,
20521                                  p_token2		=> g_sqlerrm_token,
20522                                  p_token2_value	=> SQLERRM);
20523         RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20524       END IF;
20525     ELSE
20526       l_contract_number := p_contract_number;
20527     END IF;
20528 
20529     --print('l_contract_number=' ||l_contract_number);
20530     --print('c1rec.contract_number=' ||c1rec.contract_number);
20531     -- Bug 4738057
20532     l_contract_exists := FALSE;
20533     FOR contract_exists_rec IN contract_exists_csr(l_contract_number)
20534     LOOP
20535       l_contract_exists := TRUE;
20536     END LOOP;
20537     IF ((l_contract_number = c1rec.contract_number) OR
20538         (l_contract_exists) ) THEN
20539       OKL_API.set_message(p_app_name => 'OKC',
20540                       p_msg_name => 'OKC_CONTRACT_EXISTS',
20541                       p_token1 => 'VALUE1',
20542                       p_token1_value => l_contract_number,
20543                       p_token2 => 'VALUE2',
20544                       p_token2_value => ' ');
20545        x_return_status := OKL_API.HANDLE_EXCEPTIONS(
20546                                   l_api_name,
20547                                   G_PKG_NAME,
20548                                   'OKL_API.G_RET_STS_ERROR',
20549                                   x_msg_count,
20550                                   x_msg_data,
20551                                   '_PVT');
20552        RETURN;
20553       --RAISE OKC_API.G_EXCEPTION_ERROR;
20554     END IF;
20555 
20556     l_curr_pos := 'okl_copy_lease_contract:7';
20557     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20558           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_contract_number=' || l_contract_number);
20559     END IF;
20560 
20561     -- AKP: need to do all validatations here
20562     validate_currency_code(x_return_status, l_contract_currency );
20563     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
20564       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20565     END IF;
20566 
20567     l_curr_pos := 'okl_copy_lease_contract:8';
20568     validate_orig_sys_code(x_return_status, l_orig_system_source_code);
20569     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
20570       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20571     END IF;
20572 
20573     l_curr_pos := 'okl_copy_lease_contract:9';
20574     validate_currency_conv_type(x_return_status, l_conversion_type);
20575     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
20576       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20577     END IF;
20578 
20579     BEGIN
20580       l_curr_pos := 'okl_copy_lease_contract:10';
20581       INSERT INTO okc_k_headers_b (
20582        ID, CONTRACT_NUMBER, AUTHORING_ORG_ID,
20583        CONTRACT_NUMBER_MODIFIER, CHR_ID_RESPONSE, CHR_ID_AWARD,
20584        CHR_ID_RENEWED, INV_ORGANIZATION_ID, STS_CODE,
20585        QCL_ID, SCS_CODE, TRN_CODE,
20586        CURRENCY_CODE, ARCHIVED_YN, DELETED_YN,
20587        TEMPLATE_YN, CHR_TYPE, OBJECT_VERSION_NUMBER,
20588        CREATED_BY, CREATION_DATE, LAST_UPDATED_BY,
20589        CUST_PO_NUMBER_REQ_YN, PRE_PAY_REQ_YN, CUST_PO_NUMBER,
20590        DPAS_RATING, TEMPLATE_USED, DATE_APPROVED,
20591        DATETIME_CANCELLED, AUTO_RENEW_DAYS, DATE_ISSUED,
20592        DATETIME_RESPONDED, RFP_TYPE, KEEP_ON_MAIL_LIST,
20593        SET_ASIDE_PERCENT, RESPONSE_COPIES_REQ, DATE_CLOSE_PROJECTED,
20594        DATETIME_PROPOSED, DATE_SIGNED, DATE_TERMINATED,
20595        DATE_RENEWED, START_DATE, END_DATE,
20596        BUY_OR_SELL, ISSUE_OR_RECEIVE, LAST_UPDATE_LOGIN,
20597        ESTIMATED_AMOUNT, ATTRIBUTE_CATEGORY, LAST_UPDATE_DATE,
20598        ATTRIBUTE1, ATTRIBUTE2, ATTRIBUTE3,
20599        ATTRIBUTE4, ATTRIBUTE5, ATTRIBUTE6,
20600        ATTRIBUTE7, ATTRIBUTE8, ATTRIBUTE9,
20601        ATTRIBUTE10, ATTRIBUTE11, ATTRIBUTE12,
20602        ATTRIBUTE13, ATTRIBUTE14, ATTRIBUTE15,
20603        SECURITY_GROUP_ID, CHR_ID_RENEWED_TO, ESTIMATED_AMOUNT_RENEWED,
20604        CURRENCY_CODE_RENEWED, UPG_ORIG_SYSTEM_REF, UPG_ORIG_SYSTEM_REF_ID,
20605        APPLICATION_ID, RESOLVED_UNTIL, ORIG_SYSTEM_SOURCE_CODE,
20606        ORIG_SYSTEM_ID1, ORIG_SYSTEM_REFERENCE1, PROGRAM_APPLICATION_ID,
20607        PROGRAM_ID, PROGRAM_UPDATE_DATE, REQUEST_ID,
20608        PRICE_LIST_ID, PRICING_DATE, TOTAL_LINE_LIST_PRICE,
20609        SIGN_BY_DATE, USER_ESTIMATED_AMOUNT, GOVERNING_CONTRACT_YN,
20610        CONVERSION_TYPE, CONVERSION_RATE,
20611        CONVERSION_RATE_DATE, CONVERSION_EURO_RATE, CUST_ACCT_ID,
20612        BILL_TO_SITE_USE_ID, INV_RULE_ID, RENEWAL_TYPE_CODE,
20613        RENEWAL_NOTIFY_TO, RENEWAL_END_DATE, SHIP_TO_SITE_USE_ID,
20614        PAYMENT_TERM_ID,
20615        ORG_ID   --MOAC
20616       ) VALUES (
20617        l_copied_id, l_contract_number, c1rec.AUTHORING_ORG_ID,
20618        NULL, NULL, NULL,
20619        c1rec.CHR_ID_RENEWED, c1rec.INV_ORGANIZATION_ID, l_sts_code,
20620        c1rec.QCL_ID, c1rec.SCS_CODE, NULL,
20621        c1rec.CURRENCY_CODE, 'N', 'N',
20622        'N', c1rec.CHR_TYPE, 1,
20623        l_created_by, SYSDATE, l_last_updated_by,
20624        c1rec.CUST_PO_NUMBER_REQ_YN, c1rec.PRE_PAY_REQ_YN, c1rec.CUST_PO_NUMBER,
20625        c1rec.DPAS_RATING, DECODE(c1rec.template_yn,'Y',c1rec.CONTRACT_NUMBER,NULL), NULL,
20626        NULL, c1rec.AUTO_RENEW_DAYS, NULL,
20627        NULL, NULL, c1rec.KEEP_ON_MAIL_LIST,
20628        NULL, NULL, NULL,
20629        NULL, c1rec.DATE_SIGNED, NULL,
20630        NULL, c1rec.START_DATE, c1rec.END_DATE,
20631        c1rec.BUY_OR_SELL, c1rec.ISSUE_OR_RECEIVE, l_last_update_login,
20632        c1rec.ESTIMATED_AMOUNT, c1rec.ATTRIBUTE_CATEGORY, SYSDATE,
20633        c1rec.ATTRIBUTE1, c1rec.ATTRIBUTE2, c1rec.ATTRIBUTE3,
20634        c1rec.ATTRIBUTE4, c1rec.ATTRIBUTE5, c1rec.ATTRIBUTE6,
20635        c1rec.ATTRIBUTE7, c1rec.ATTRIBUTE8, c1rec.ATTRIBUTE9,
20636        c1rec.ATTRIBUTE10, c1rec.ATTRIBUTE11, c1rec.ATTRIBUTE12,
20637        c1rec.ATTRIBUTE13, c1rec.ATTRIBUTE14, c1rec.ATTRIBUTE15,
20638        c1rec.SECURITY_GROUP_ID, c1rec.CHR_ID_RENEWED_TO, c1rec.ESTIMATED_AMOUNT_RENEWED,
20639        c1rec.CURRENCY_CODE_RENEWED, c1rec.UPG_ORIG_SYSTEM_REF, c1rec.UPG_ORIG_SYSTEM_REF_ID,
20640        c1rec.APPLICATION_ID, c1rec.RESOLVED_UNTIL, l_orig_system_source_code,
20641        --decode(p_trans_type, 'RBK', c1rec.orig_system_id1, c1rec.ID), null, c1rec.PROGRAM_APPLICATION_ID,
20642        c1rec.ID, NULL, c1rec.PROGRAM_APPLICATION_ID,
20643        c1rec.PROGRAM_ID, c1rec.PROGRAM_UPDATE_DATE, c1rec.REQUEST_ID,
20644        c1rec.PRICE_LIST_ID, c1rec.PRICING_DATE, c1rec.TOTAL_LINE_LIST_PRICE,
20645        c1rec.SIGN_BY_DATE, NULL, c1rec.GOVERNING_CONTRACT_YN,
20646        c1rec.CONVERSION_TYPE, c1rec.CONVERSION_RATE,
20647        c1rec.CONVERSION_RATE_DATE, c1rec.CONVERSION_EURO_RATE, c1rec.CUST_ACCT_ID,
20648        c1rec.BILL_TO_SITE_USE_ID, c1rec.INV_RULE_ID, c1rec.RENEWAL_TYPE_CODE,
20649        c1rec.RENEWAL_NOTIFY_TO, c1rec.RENEWAL_END_DATE, c1rec.SHIP_TO_SITE_USE_ID,
20650        c1rec.PAYMENT_TERM_ID,
20651        c1rec.AUTHORING_ORG_ID   --MOAC
20652       );
20653       --) RETURNING ID into l_copied_id;
20654 
20655       EXCEPTION WHEN OTHERS THEN
20656          IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20657                     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
20658            OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR during insert into okc_k_headers_b...');
20659          END IF;
20660          OKL_API.set_message(p_app_name => 'OKL',
20661                       p_msg_name => l_message,
20662                       p_token1 => 'CONTRACT_NUMBER',
20663                       p_token1_value => l_contract_number);
20664          RAISE OKC_API.G_EXCEPTION_ERROR;
20665     END;
20666     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20667           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_copied_id=' || l_copied_id);
20668     END IF;
20669 
20670     l_curr_pos := 'okl_copy_lease_contract:11';
20671     BEGIN
20672        l_hstv_rec.chr_id := l_copied_id;
20673        l_hstv_rec.sts_code_from := NULL;
20674        l_hstv_rec.sts_code_to := l_sts_code;
20675        l_hstv_rec.reason_code := 'CREATE';
20676        l_hstv_rec.opn_code := 'STS_CHG';
20677        l_hstv_rec.manual_yn := 'N';
20678        l_hstv_rec.contract_version := '1.1';
20679 
20680       l_curr_pos := 'okl_copy_lease_contract:12';
20681        OKC_K_HISTORY_PUB.create_k_history(
20682          p_api_version          => p_api_version,
20683          p_init_msg_list        => p_init_msg_list,
20684          x_return_status   	=> x_return_status,
20685          x_msg_count       	=> x_msg_count,
20686          x_msg_data        	=> x_msg_data,
20687          p_hstv_rec             => l_hstv_rec,
20688          x_hstv_rec             => x_hstv_rec);
20689       IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
20690         RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20691       END IF;
20692       EXCEPTION WHEN OTHERS THEN
20693          IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20694                     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
20695            OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR during insert into create_k_history...');
20696          END IF;
20697          RAISE OKC_API.G_EXCEPTION_ERROR;
20698     END;
20699 
20700     BEGIN
20701       l_curr_pos := 'okl_copy_lease_contract:13';
20702       l_message := 'OKL_NEW_COPY_VER_ERROR';
20703       INSERT INTO okc_k_vers_numbers (
20704          chr_id, major_version, minor_version,
20705          object_version_number, created_by, creation_date,
20706          last_updated_by, last_update_date, last_update_login
20707          --security_group_id
20708       ) VALUES (
20709          l_copied_id, 0, 1,
20710          1, l_created_by, SYSDATE,
20711          l_last_updated_by, SYSDATE, l_last_update_login
20712          --FND_GLOBAL.SECURITY_GROUP_ID
20713       );
20714     EXCEPTION WHEN OTHERS THEN
20715        IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20716                 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
20717          OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR during inser into okc_k_vers_numbers...');
20718        END IF;
20719        OKL_API.set_message(p_app_name => 'OKL',
20720                       p_msg_name => l_message,
20721                       p_token1 => 'CONTRACT_NUMBER',
20722                       p_token1_value => l_contract_number);
20723        RAISE OKC_API.G_EXCEPTION_ERROR;
20724     END;
20725 
20726     l_curr_pos := 'okl_copy_lease_contract:14';
20727     l_message := 'OKL_NEW_COPY_CHR_ERROR';
20728     insert_okc_k_headers_tl(p_chr_id, l_copied_id);
20729     l_curr_pos := 'okl_copy_lease_contract:15';
20730     l_message := 'OKL_NEW_COPY_KHR_ERROR';
20731     insert_okl_k_headers(p_chr_id, l_copied_id);
20732     l_message := 'OKL_NEW_COPY_CSP_ERROR';
20733     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20734           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Calling okl_slctd_optns ...');
20735     END IF;
20736     l_curr_pos := 'okl_copy_lease_contract:16';
20737     insert_okl_slctd_optns(p_chr_id, l_copied_id);
20738   /*end loop;*/
20739 
20740     l_curr_pos := 'okl_copy_lease_contract:17';
20741     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20742           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Governances...');
20743     END IF;
20744     FOR c2rec IN c2(p_chr_id)
20745     LOOP
20746       BEGIN
20747         l_curr_pos := 'okl_copy_lease_contract:18';
20748         l_message := 'OKL_NEW_COPY_GVE_ERROR';
20749         INSERT INTO okc_governances (
20750           ID, DNZ_CHR_ID, CHR_ID,
20751           CLE_ID, CHR_ID_REFERRED, CLE_ID_REFERRED,
20752           ISA_AGREEMENT_ID, COPIED_ONLY_YN, OBJECT_VERSION_NUMBER,
20753           CREATED_BY, CREATION_DATE, LAST_UPDATED_BY,
20754           LAST_UPDATE_DATE, LAST_UPDATE_LOGIN, SECURITY_GROUP_ID
20755         ) VALUES (
20756           okc_p_util.raw_to_number(sys_guid()), l_copied_id, l_copied_id,
20757           c2rec.CLE_ID, c2rec.CHR_ID_REFERRED, c2rec.CLE_ID_REFERRED,
20758           c2rec.ISA_AGREEMENT_ID, c2rec.COPIED_ONLY_YN, c2rec.OBJECT_VERSION_NUMBER,
20759           l_created_by, SYSDATE, l_last_updated_by,
20760           SYSDATE, l_last_update_login, c2rec.SECURITY_GROUP_ID
20761         ) RETURNING ID INTO l_gov_id;
20762         EXCEPTION WHEN OTHERS THEN
20763            IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20764                         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
20765              OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR during inser into okc_governances...');
20766            END IF;
20767            RAISE OKC_API.G_EXCEPTION_ERROR;
20768       END;
20769 
20770       l_curr_pos := 'okl_copy_lease_contract:19';
20771       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20772               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_gov_id=' || l_gov_id);
20773       END IF;
20774       /*  AKP: We dont need okc_governances_h
20775       for c3rec in c3(p_chr_id)
20776       loop
20777         l_curr_pos := 'okl_copy_lease_contract:20';
20778         insert into okc_governances_h (
20779           ID, DNZ_CHR_ID, CHR_ID,
20780           CLE_ID, CHR_ID_REFERRED, CLE_ID_REFERRED,
20781           ISA_AGREEMENT_ID, MAJOR_VERSION, OBJECT_VERSION_NUMBER,
20782           COPIED_ONLY_YN, CREATED_BY, CREATION_DATE,
20783           LAST_UPDATED_BY, LAST_UPDATE_DATE, LAST_UPDATE_LOGIN,
20784           SECURITY_GROUP_ID
20785         ) VALUES (
20786           l_gov_id, l_copied_id, l_copied_id,
20787           c3rec.CLE_ID, c3rec.CHR_ID_REFERRED, c3rec.CLE_ID_REFERRED,
20788           c3rec.ISA_AGREEMENT_ID, c3rec.MAJOR_VERSION, c3rec.OBJECT_VERSION_NUMBER,
20789           c3rec.COPIED_ONLY_YN, c3rec.CREATED_BY, SYSDATE,
20790           c3rec.LAST_UPDATED_BY, SYSDATE, c3rec.LAST_UPDATE_LOGIN,
20791           c3rec.SECURITY_GROUP_ID
20792         );
20793       end loop; */
20794     END LOOP;
20795 
20796     l_curr_pos := 'okl_copy_lease_contract:21';
20797     copy_var_int_rate_params(p_chr_id, l_copied_id, l_contract_start_date,
20798                              p_trans_type, p_rbk_date);
20799     l_curr_pos := 'okl_copy_lease_contract:21.1';
20800     IF (NVL(p_copy_lines_yn, 'N') = 'N') THEN
20801       -- Do only header level rules/roles etc
20802       l_curr_pos := 'okl_copy_lease_contract:22';
20803       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20804               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okc_k_party_roles...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
20805       END IF;
20806       l_message := 'OKL_NEW_COPY_CPL_ERROR';
20807       insert_okc_k_party_roles(p_chr_id, l_copied_id); -- _b _tl contacts okl_party_payment_dtls
20808 
20809       l_curr_pos := 'okl_copy_lease_contract:23';
20810       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20811               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okc_rule_groups...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
20812       END IF;
20813       l_message := 'OKL_NEW_COPY_RGP_ERROR';
20814       insert_okc_rule_groups(p_chr_id, l_copied_id); -- _b,_tl and rules(_b,_tl)
20815 
20816       l_curr_pos := 'okl_copy_lease_contract:24';
20817       l_message := 'OKL_NEW_COPY_RGR_ERROR';
20818       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20819               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okc_rg_party_roles...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
20820       END IF;
20821       insert_okc_rg_party_roles(p_chr_id, l_copied_id);
20822     ELSE
20823 
20824       --Copy lines
20825       l_curr_pos := 'okl_copy_lease_contract:25';
20826       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20827               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'okc_k_lines Lines...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
20828       END IF;
20829       l_counter := 1;
20830       l_message := 'OKL_NEW_COPY_CLE_ERROR';
20831       OPEN c4(p_chr_id);
20832       LOOP
20833         l_curr_pos := 'okl_copy_lease_contract:26';
20834         FETCH c4 bulk collect INTO
20835         l_id_tab2,l_line_number_tab2,l_chr_id_tab2,
20836         l_cle_id_tab2,l_cle_id_renewed_tab2,l_dnz_chr_id_tab2,
20837         l_display_sequence_tab2,l_sts_code_tab2,l_trn_code_tab2,
20838         l_lse_id_tab2,l_exception_yn_tab2,l_object_version_number_tab2,
20839         l_created_by_tab2,l_creation_date_tab2,l_last_updated_by_tab2,
20840         l_last_update_date_tab2,l_hidden_ind_tab2,l_price_negotiated_tab2,
20841         l_price_level_ind_tab2,l_price_unit_tab2,l_price_unit_percent_tab2,
20842         l_invoice_line_level_ind_tab2,l_dpas_rating_tab2,l_template_used_tab2,
20843         l_price_type_tab2,l_currency_code_tab2,l_last_update_login_tab2,
20844         l_date_terminated_tab2,l_start_date_tab2,l_end_date_tab2,
20845         l_attribute_category_tab2,l_attribute1_tab2,l_attribute2_tab2,
20846         l_attribute3_tab2,l_attribute4_tab2,l_attribute5_tab2,
20847         l_attribute6_tab2,l_attribute7_tab2,l_attribute8_tab2,
20848         l_attribute9_tab2,l_attribute10_tab2,l_attribute11_tab2,
20849         l_attribute12_tab2,l_attribute13_tab2,l_attribute14_tab2,
20850         l_attribute15_tab2,l_security_group_id_tab2,l_cle_id_renewed_to_tab2,
20851         l_price_negotiated_renewed_tb2,l_currency_code_renewed_tab2,l_upg_orig_system_ref_tab2,
20852         l_upg_orig_system_ref_id_tab2,l_date_renewed_tab2,l_orig_system_source_code_tab2,
20853         l_orig_system_id1_tab2,l_orig_system_reference1_tab2,l_program_application_id_tab2,
20854         l_program_id_tab2,l_program_update_date_tab2,l_request_id_tab2,
20855         l_price_list_id_tab2,l_price_list_line_id_tab2,l_line_list_price_tab2,
20856         l_item_to_price_yn_tab2,l_pricing_date_tab2,l_price_basis_yn_tab2,
20857         l_config_header_id_tab2,l_config_revision_number_tab2,l_config_complete_yn_tab2,
20858         l_config_valid_yn_tab2,l_config_top_model_line_id_tb2,l_config_item_type_tab2,
20859         l_config_item_id_tab2,l_service_item_yn_tab2,l_ph_pricing_type_tab2,
20860         l_ph_price_break_basis_tab2,l_ph_min_qty_tab2,l_ph_min_amt_tab2,
20861         l_ph_qp_reference_id_tab2,l_ph_value_tab2,l_ph_enforce_price_list_yn_tb2,
20862         l_ph_adjustment_tab2,l_ph_integrated_with_qp_tab2,l_cust_acct_id_tab2,
20863         l_bill_to_site_use_id_tab2,l_inv_rule_id_tab2,l_line_renewal_type_code_tab2,
20864         l_ship_to_site_use_id_tab2,l_payment_term_id_tab2 , l_fee_type_tab2,
20865         l_name_tab2
20866         limit G_BULK_SIZE;
20867 
20868         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
20869                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_id_tab2.count=' || l_id_tab2.COUNT);
20870         END IF;
20871         IF l_id_tab2.COUNT > 0 THEN
20872           NULL;
20873           l_curr_pos := 'okl_copy_lease_contract:27';
20874           FOR i IN l_id_tab2.first..l_id_tab2.last
20875           LOOP
20876             --if ( (l_fee_type_tab2(i) = 'ROLLOVER' and
20877                     --l_lse_id_tab2(i) = 52 and
20878                     --p_trans_type = 'CFA') or
20879                  --(l_sts_code_tab2(i) = 'ABANDONED') or
20880                  --(l_lse_id_tab2(i) = 47) ) then
20881               --null;
20882             --else
20883               l_id_tab3(l_counter) := l_id_tab2(i);
20884               l_id_tab(l_counter) := l_id_tab2(i); -- populate from guid() later
20885               l_line_number_tab(l_counter) := l_line_number_tab2(i);
20886               l_chr_id_tab(l_counter) := l_chr_id_tab2(i);
20887 
20888               -- Change chr_id
20889               IF (l_chr_id_tab(l_counter) IS NOT NULL) THEN
20890                 l_chr_id_tab(l_counter) := l_copied_id;
20891               END IF;
20892 
20893               l_cle_id_tab(l_counter) := l_cle_id_tab2(i);
20894               l_cle_id_renewed_tab(l_counter) := l_cle_id_renewed_tab2(i);
20895 
20896               -- Change dnz_chr_id
20897               --l_dnz_chr_id_tab(l_counter) := l_dnz_chr_id_tab2(i);
20898               l_dnz_chr_id_tab(l_counter) := l_copied_id;
20899 
20900               l_display_sequence_tab(l_counter) := l_display_sequence_tab2(i);
20901               l_sts_code_tab(l_counter) := l_sts_code_tab2(i);
20902               l_trn_code_tab(l_counter) := l_trn_code_tab2(i);
20903               l_lse_id_tab(l_counter) := l_lse_id_tab2(i);
20904               l_exception_yn_tab(l_counter) := l_exception_yn_tab2(i);
20905               l_object_version_number_tab(l_counter) := l_object_version_number_tab2(i);
20906               l_created_by_tab(l_counter) := l_created_by_tab2(i);
20907               l_creation_date_tab(l_counter) := l_creation_date_tab2(i);
20908               l_last_updated_by_tab(l_counter) := l_last_updated_by_tab2(i);
20909               l_last_update_date_tab(l_counter) := l_last_update_date_tab2(i);
20910               l_hidden_ind_tab(l_counter) := l_hidden_ind_tab2(i);
20911               l_price_negotiated_tab(l_counter) := l_price_negotiated_tab2(i);
20912               l_price_level_ind_tab(l_counter) := l_price_level_ind_tab2(i);
20913               l_price_unit_tab(l_counter) := l_price_unit_tab2(i);
20914               l_price_unit_percent_tab(l_counter) := l_price_unit_percent_tab2(i);
20915               l_invoice_line_level_ind_tab(l_counter) := l_invoice_line_level_ind_tab2(i);
20916               l_dpas_rating_tab(l_counter) := l_dpas_rating_tab2(i);
20917               l_template_used_tab(l_counter) := l_template_used_tab2(i);
20918               l_price_type_tab(l_counter) := l_price_type_tab2(i);
20919               l_currency_code_tab(l_counter) := l_currency_code_tab2(i);
20920               l_last_update_login_tab(l_counter) := l_last_update_login_tab2(i);
20921               l_date_terminated_tab(l_counter) := l_date_terminated_tab2(i);
20922               l_start_date_tab(l_counter) := l_start_date_tab2(i);
20923               l_end_date_tab(l_counter) := l_end_date_tab2(i);
20924               l_attribute_category_tab(l_counter) := l_attribute_category_tab2(i);
20925               l_attribute1_tab(l_counter) := l_attribute1_tab2(i);
20926               l_attribute2_tab(l_counter) := l_attribute2_tab2(i);
20927               l_attribute3_tab(l_counter) := l_attribute3_tab2(i);
20928               l_attribute4_tab(l_counter) := l_attribute4_tab2(i);
20929               l_attribute5_tab(l_counter) := l_attribute5_tab2(i);
20930               l_attribute6_tab(l_counter) := l_attribute6_tab2(i);
20931               l_attribute7_tab(l_counter) := l_attribute7_tab2(i);
20932               l_attribute8_tab(l_counter) := l_attribute8_tab2(i);
20933               l_attribute9_tab(l_counter) := l_attribute9_tab2(i);
20934               l_attribute10_tab(l_counter) := l_attribute10_tab2(i);
20935               l_attribute11_tab(l_counter) := l_attribute11_tab2(i);
20936               l_attribute12_tab(l_counter) := l_attribute12_tab2(i);
20937               l_attribute13_tab(l_counter) := l_attribute13_tab2(i);
20938               l_attribute14_tab(l_counter) := l_attribute14_tab2(i);
20939               l_attribute15_tab(l_counter) := l_attribute15_tab2(i);
20940               l_security_group_id_tab(l_counter) := l_security_group_id_tab2(i);
20941               l_cle_id_renewed_to_tab(l_counter) := l_cle_id_renewed_to_tab2(i);
20942               l_price_negotiated_renewed_tab(l_counter) := l_price_negotiated_renewed_tb2(i);
20943               l_currency_code_renewed_tab(l_counter) := l_currency_code_renewed_tab2(i);
20944               l_upg_orig_system_ref_tab(l_counter) := l_upg_orig_system_ref_tab2(i);
20945               l_upg_orig_system_ref_id_tab(l_counter) := l_upg_orig_system_ref_id_tab2(i);
20946               l_date_renewed_tab(l_counter) := l_date_renewed_tab2(i);
20947               l_orig_system_source_code_tab(l_counter) := l_orig_system_source_code_tab2(i);
20948               --l_orig_system_id1_tab(l_counter) := l_orig_system_id1_tab2(i);
20949 
20950               -- Populate proper values
20951               l_orig_system_id1_tab(l_counter) := l_id_tab(l_counter);
20952               l_id_tab(l_counter) := okc_p_util.raw_to_number(sys_guid());
20953               -- Populate proper values done
20954 
20955               -- Store sid mapping for business function processing
20956               l_sid_mapping_tab(l_counter).id := l_id_tab(l_counter);
20957               l_sid_mapping_tab(l_counter).lse_id := l_lse_id_tab(l_counter);
20958 
20959               l_orig_system_reference1_tab(l_counter) := l_orig_system_reference1_tab2(i);
20960               l_program_application_id_tab(l_counter) := l_program_application_id_tab2(i);
20961               l_program_id_tab(l_counter) := l_program_id_tab2(i);
20962               l_program_update_date_tab(l_counter) := l_program_update_date_tab2(i);
20963               l_request_id_tab(l_counter) := l_request_id_tab2(i);
20964               l_price_list_id_tab(l_counter) := l_price_list_id_tab2(i);
20965               l_price_list_line_id_tab(l_counter) := l_price_list_line_id_tab2(i);
20966               l_line_list_price_tab(l_counter) := l_line_list_price_tab2(i);
20967               l_item_to_price_yn_tab(l_counter) := l_item_to_price_yn_tab2(i);
20968               l_pricing_date_tab(l_counter) := l_pricing_date_tab2(i);
20969               l_price_basis_yn_tab(l_counter) := l_price_basis_yn_tab2(i);
20970               l_config_header_id_tab(l_counter) := l_config_header_id_tab2(i);
20971               l_config_revision_number_tab(l_counter) := l_config_revision_number_tab2(i);
20972               l_config_complete_yn_tab(l_counter) := l_config_complete_yn_tab2(i);
20973               l_config_valid_yn_tab(l_counter) := l_config_valid_yn_tab2(i);
20974               l_config_top_model_line_id_tab(l_counter) := l_config_top_model_line_id_tb2(i);
20975               l_config_item_type_tab(l_counter) := l_config_item_type_tab2(i);
20976               l_config_item_id_tab(l_counter) := l_config_item_id_tab2(i);
20977               l_service_item_yn_tab(l_counter) := l_service_item_yn_tab2(i);
20978               l_ph_pricing_type_tab(l_counter) := l_ph_pricing_type_tab2(i);
20979               l_ph_price_break_basis_tab(l_counter) := l_ph_price_break_basis_tab2(i);
20980               l_ph_min_qty_tab(l_counter) := l_ph_min_qty_tab2(i);
20981               l_ph_min_amt_tab(l_counter) := l_ph_min_amt_tab2(i);
20982               l_ph_qp_reference_id_tab(l_counter) := l_ph_qp_reference_id_tab2(i);
20983               l_ph_value_tab(l_counter) := l_ph_value_tab2(i);
20984               l_ph_enforce_price_list_yn_tab(l_counter) := l_ph_enforce_price_list_yn_tb2(i);
20985               l_ph_adjustment_tab(l_counter) := l_ph_adjustment_tab2(i);
20986               l_ph_integrated_with_qp_tab(l_counter) := l_ph_integrated_with_qp_tab2(i);
20987               l_cust_acct_id_tab(l_counter) := l_cust_acct_id_tab2(i);
20988               l_bill_to_site_use_id_tab(l_counter) := l_bill_to_site_use_id_tab2(i);
20989               l_inv_rule_id_tab(l_counter) := l_inv_rule_id_tab2(i);
20990               l_line_renewal_type_code_tab(l_counter) := l_line_renewal_type_code_tab2(i);
20991               l_ship_to_site_use_id_tab(l_counter) := l_ship_to_site_use_id_tab2(i);
20992               l_payment_term_id_tab(l_counter) := l_payment_term_id_tab2(i);
20993               l_name_tab(l_counter) := l_name_tab2(i);
20994               --print('c4:l_name_tab(' || l_counter||')=' || l_name_tab(l_counter) || ' l_lse_id_tab(' || l_counter||')=' || l_lse_id_tab(l_counter));
20995 
20996               -- Another table
20997               l_orig_system_tab(l_counter).orig_system_id1 := l_orig_system_id1_tab(l_counter);
20998               l_orig_system_tab(l_counter).id := l_id_tab(l_counter);
20999 
21000               -- Id Mapping table
21001               l_id_mapping_tab(l_counter).old_id := l_id_tab3(l_counter);
21002               l_id_mapping_tab(l_counter).new_id := l_id_tab(l_counter);
21003 
21004               --l_bid_mapping_tab(l_counter).old_id := l_id_tab(l_counter)*100 + l_lse_id_tab(l_counter);
21005               l_bid_mapping_tab(l_counter).old_id := l_id_tab(l_counter);
21006               l_bid_mapping_tab(l_counter).new_id := l_name_tab(l_counter);
21007 
21008               IF ( (l_fee_type_tab2(i) = 'ROLLOVER' AND
21009                       l_lse_id_tab2(i) = 52 AND
21010                       p_trans_type = 'CFA') OR
21011                    (l_sts_code_tab2(i) = 'ABANDONED') OR
21012                    (l_lse_id_tab2(i) = 47) ) THEN
21013                 IF (l_chr_id_tab(i) IS NOT NULL) THEN
21014                    -- Populate delete id tabs
21015                   l_delete_id_tab(l_delete_counter) := l_id_tab(l_counter);
21016                   l_delete_counter := l_delete_counter + 1;
21017                 ELSE -- Bug 4872258
21018                   IF (l_sts_code_tab2(i) = 'ABANDONED') THEN -- 5127961
21019                     l_delete_id_tab(l_delete_counter) := l_id_tab(l_counter);
21020                     l_delete_counter := l_delete_counter + 1;
21021                   ELSE
21022                   -- Populate 'ENTERED' id tabs
21023                   l_entered_id_tab(l_entered_counter) := l_id_tab(l_counter);
21024                   l_entered_sts_code_tab(l_entered_counter) := 'ENTERED';
21025                   IF (l_sts_code_tab2(i) = 'ABANDONED') THEN
21026                     l_entered_sts_code_tab(l_entered_counter) := 'ABANDONED';
21027                   END IF;
21028                   IF (p_trans_type = 'CRB') THEN  -- Bug 4959361
21029                     IF (l_sts_code_tab2(i) = 'TERMINATED') THEN
21030                       l_entered_sts_code_tab(l_entered_counter) := 'TERMINATED';
21031                     ELSE
21032                       l_date_terminated_tab(l_counter) := NULL;
21033                       l_trn_code_tab(l_counter) := NULL;
21034                     END IF;
21035                   ELSE
21036                       l_date_terminated_tab(l_counter) := NULL;
21037                       l_trn_code_tab(l_counter) := NULL;
21038                   END IF;
21039                   l_entered_counter := l_entered_counter + 1;
21040                   l_id2_tab(l_id2_tab_counter) := l_id_tab(i);
21041                   l_lse_id2_tab(l_id2_tab_counter) := l_lse_id_tab(i);
21042                   l_id2_tab_counter := l_id2_tab_counter + 1;
21043                   END IF; -- 5127961
21044                 END IF;
21045               ELSE
21046                  -- Populate 'ENTERED' id tabs
21047                 l_entered_id_tab(l_entered_counter) := l_id_tab(l_counter);
21048                 l_entered_sts_code_tab(l_entered_counter) := 'ENTERED';
21049                 --IF (l_sts_code_tab2(i) = 'ABANDONED') THEN
21050                   --l_entered_sts_code_tab(l_entered_counter) := 'ABANDONED';
21051                 --END IF;
21052                 --4959361
21053                 IF (p_trans_type = 'CRB') THEN
21054                   IF (l_sts_code_tab2(i) = 'TERMINATED') THEN
21055                     l_entered_sts_code_tab(l_entered_counter) := 'TERMINATED';
21056                   ELSE
21057                       l_date_terminated_tab(l_counter) := NULL;
21058                       l_trn_code_tab(l_counter) := NULL;
21059                   END IF;
21060                 ELSE
21061                       l_date_terminated_tab(l_counter) := NULL;
21062                       l_trn_code_tab(l_counter) := NULL;
21063                 END IF;
21064                 l_entered_counter := l_entered_counter + 1;
21065                 l_id2_tab(l_id2_tab_counter) := l_id_tab(i);
21066                 l_lse_id2_tab(l_id2_tab_counter) := l_lse_id_tab(i);
21067                 l_id2_tab_counter := l_id2_tab_counter + 1;
21068               END IF;
21069 
21070               l_counter := l_counter + 1;
21071             --end if;
21072           END LOOP;
21073         ELSE
21074           EXIT;
21075         END IF;
21076         l_curr_pos := 'okl_copy_lease_contract:28';
21077 
21078       END LOOP;
21079       CLOSE c4;
21080       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21081               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_counter [ For okc_k_lines_b ] =' || l_counter);
21082       END IF;
21083 
21084       -- Sort l_orig_system_tab
21085       l_curr_pos := 'okl_copy_lease_contract:29';
21086       do_sort;
21087       l_curr_pos := 'okl_copy_lease_contract:30';
21088       do_id_mapping_sort;
21089       l_curr_pos := 'okl_copy_lease_contract:31';
21090       sort_sid_mapping_tab;
21091       l_curr_pos := 'okl_copy_lease_contract:32';
21092       sort_bid_mapping_tab;
21093       l_curr_pos := 'okl_copy_lease_contract:33';
21094       --print('Sort done..');
21095 
21096       /*print('Before update values...');
21097       for i in 1..l_counter-1
21098       loop
21099         print('id='||l_id_tab(i) || ' cle_id=' || l_cle_id_tab(i)||' orig_system_id1='||l_orig_system_id1_tab(i));
21100       end loop;
21101       */
21102 
21103       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21104               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Update Started ...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21105       END IF;
21106       -- Update cle_id
21107       FOR i IN 1..l_counter-1
21108       LOOP
21109         IF (l_cle_id_tab(i) IS NOT NULL) THEN
21110           l_new_id := find_id(l_cle_id_tab(i));
21111           IF (l_new_id = -1) THEN
21112             IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21113                           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR!!!!Mapping line id not found');
21114             END IF;
21115             RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
21116           END IF;
21117           l_cle_id_tab(i) := l_new_id;
21118 
21119           l_cle_lse_mapping_tab(l_cle_lse_counter).cle_id := l_cle_id_tab(i);
21120           l_cle_lse_mapping_tab(l_cle_lse_counter).lse_id := l_lse_id_tab(i);
21121           l_cle_lse_mapping_tab(l_cle_lse_counter).id := l_id_tab(i);
21122           l_cle_lse_counter := l_cle_lse_counter + 1;
21123           --print('Storing cle_lse: ' || l_cle_id_tab(i)||':' || l_lse_id_tab(i) || ':' || l_id_tab(i));
21124 
21125           -- Store id to cle_id mapping in l_cid_mapping_tab
21126           l_cid_mapping_tab(l_cid_counter).old_id := l_id_tab(i);
21127           l_cid_mapping_tab(l_cid_counter).new_id := l_cle_id_tab(i);
21128           --print('l_new_id=' || l_new_id);
21129           l_cid_counter := l_cid_counter + 1;
21130         END IF;
21131       END LOOP;
21132       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21133               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Update Finished ...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21134       END IF;
21135       l_curr_pos := 'okl_copy_lease_contract:34';
21136       sort_cid_mapping_tab;
21137       l_curr_pos := 'okl_copy_lease_contract:35';
21138       sort_cle_lse_mapping_tab;
21139 
21140       /*
21141       print('After update values...');
21142       for i in 1..l_counter-1
21143       loop
21144         print('id='||l_id_tab(i) || ' cle_id=' || l_cle_id_tab(i)||' orig_system_id1='||l_orig_system_id1_tab(i));
21145       end loop;
21146       */
21147 
21148       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21149               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Before Inserting okc_k_lines_b...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21150         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_id_tab.count='||l_id_tab.COUNT);
21151       END IF;
21152       IF (l_id_tab.COUNT > 0) THEN
21153       BEGIN
21154         l_curr_pos := 'okl_copy_lease_contract:36';
21155         forall i IN l_id_tab.first..l_id_tab.last
21156         INSERT INTO okc_k_lines_b (
21157          id, line_number, chr_id,
21158          cle_id, cle_id_renewed, dnz_chr_id,
21159          display_sequence, sts_code, trn_code,
21160          lse_id, exception_yn, object_version_number,
21161          created_by, creation_date, last_updated_by,
21162          last_update_date, hidden_ind, price_negotiated,
21163          price_level_ind, price_unit, price_unit_percent,
21164          invoice_line_level_ind, dpas_rating, template_used,
21165          price_type, currency_code, last_update_login,
21166          date_terminated, start_date, end_date,
21167          attribute_category, attribute1, attribute2,
21168          attribute3, attribute4, attribute5,
21169          attribute6, attribute7, attribute8,
21170          attribute9, attribute10, attribute11,
21171          attribute12, attribute13, attribute14,
21172          attribute15, security_group_id, cle_id_renewed_to,
21173          price_negotiated_renewed, currency_code_renewed, upg_orig_system_ref,
21174          upg_orig_system_ref_id, date_renewed, orig_system_source_code,
21175          orig_system_id1, orig_system_reference1, program_application_id,
21176          program_id, program_update_date, request_id,
21177          price_list_id, price_list_line_id, line_list_price,
21178          item_to_price_yn, pricing_date, price_basis_yn,
21179          config_header_id, config_revision_number, config_complete_yn,
21180          config_valid_yn, config_top_model_line_id, config_item_type,
21181          config_item_id, service_item_yn, ph_pricing_type,
21182          ph_price_break_basis, ph_min_qty, ph_min_amt,
21183          ph_qp_reference_id, ph_value, ph_enforce_price_list_yn,
21184          ph_adjustment, ph_integrated_with_qp, cust_acct_id,
21185          bill_to_site_use_id, inv_rule_id, line_renewal_type_code,
21186          ship_to_site_use_id, payment_term_id)
21187         VALUES (
21188          l_id_tab(i), l_line_number_tab(i), l_chr_id_tab(i),
21189          l_cle_id_tab(i), l_cle_id_renewed_tab(i), l_dnz_chr_id_tab(i),
21190          l_display_sequence_tab(i), 'ENTERED', l_trn_code_tab(i), -- Bug 4959361 NULL,
21191          l_lse_id_tab(i), l_exception_yn_tab(i), 1,
21192          l_created_by, SYSDATE, l_last_updated_by,
21193          SYSDATE, l_hidden_ind_tab(i), l_price_negotiated_tab(i),
21194          l_price_level_ind_tab(i), l_price_unit_tab(i), l_price_unit_percent_tab(i),
21195          l_invoice_line_level_ind_tab(i), l_dpas_rating_tab(i), l_template_used_tab(i),
21196          l_price_type_tab(i), l_currency_code_tab(i), l_last_update_login,
21197          -- Bug 4959361 NULL, l_start_date_tab(i), l_end_date_tab(i),
21198          l_date_terminated_tab(i), l_start_date_tab(i), l_end_date_tab(i),
21199          l_attribute_category_tab(i), l_attribute1_tab(i), l_attribute2_tab(i),
21200          l_attribute3_tab(i), l_attribute4_tab(i), l_attribute5_tab(i),
21201          l_attribute6_tab(i), l_attribute7_tab(i), l_attribute8_tab(i),
21202          l_attribute9_tab(i), l_attribute10_tab(i), l_attribute11_tab(i),
21203          l_attribute12_tab(i), l_attribute13_tab(i), l_attribute14_tab(i),
21204          l_attribute15_tab(i), l_security_group_id_tab(i), l_cle_id_renewed_to_tab(i),
21205          l_price_negotiated_renewed_tab(i), l_currency_code_renewed_tab(i), l_upg_orig_system_ref_tab(i),
21206          l_upg_orig_system_ref_id_tab(i), NULL, 'OKC_LINE',
21207          l_id_tab3(i), l_orig_system_reference1_tab(i), l_program_application_id_tab(i),
21208          l_program_id_tab(i), l_program_update_date_tab(i), l_request_id_tab(i),
21209          l_price_list_id_tab(i), l_price_list_line_id_tab(i), l_line_list_price_tab(i),
21210          l_item_to_price_yn_tab(i), l_pricing_date_tab(i), l_price_basis_yn_tab(i),
21211          l_config_header_id_tab(i), l_config_revision_number_tab(i), l_config_complete_yn_tab(i),
21212          l_config_valid_yn_tab(i), l_config_top_model_line_id_tab(i), l_config_item_type_tab(i),
21213          l_config_item_id_tab(i), l_service_item_yn_tab(i), l_ph_pricing_type_tab(i),
21214          l_ph_price_break_basis_tab(i), l_ph_min_qty_tab(i), l_ph_min_amt_tab(i),
21215          NULL, l_ph_value_tab(i), l_ph_enforce_price_list_yn_tab(i),
21216          l_ph_adjustment_tab(i), NULL, l_cust_acct_id_tab(i),
21217          l_bill_to_site_use_id_tab(i), l_inv_rule_id_tab(i), l_line_renewal_type_code_tab(i),
21218          l_ship_to_site_use_id_tab(i), l_payment_term_id_tab(i)
21219         );
21220       EXCEPTION WHEN OTHERS THEN
21221          IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21222                     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
21223            OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR during insert into okc_k_lines_b...');
21224          END IF;
21225          RAISE OKC_API.G_EXCEPTION_ERROR;
21226     END;
21227     END IF;
21228 
21229       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21230               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okc_k_lines_tl...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21231       END IF;
21232       -- Now insert okc_k_lines_tl
21233       /*
21234       for i in 1..l_counter-1 loop
21235         --old id to be used to query, new id to update
21236         -- Store okc_k_lines_b l_id_tab into l_id_tab3 for future reference
21237         if (i = l_counter - 1) then
21238           insert_okc_k_lines_tl_old(l_id_tab3(i), l_id_tab(i), 'Y');
21239         else
21240           insert_okc_k_lines_tl_old(l_id_tab3(i), l_id_tab(i), 'N');
21241         end if;
21242       end loop;
21243       */
21244       l_curr_pos := 'okl_copy_lease_contract:37';
21245       l_message := 'OKL_NEW_COPY_CLE_ERROR';
21246       insert_okc_k_lines_tl(p_chr_id);
21247       --sort_aid_mapping_tab;
21248       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21249               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'After sort_aid_mapping_tab...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21250       END IF;
21251 
21252       l_message := 'OKL_NEW_COPY_KLE_ERROR';
21253       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21254               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okl_k_lines...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21255       END IF;
21256       l_curr_pos := 'okl_copy_lease_contract:38';
21257       insert_okl_k_lines;
21258 
21259       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21260               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okc_k_party_roles...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21261       END IF;
21262       l_curr_pos := 'okl_copy_lease_contract:39';
21263       l_message := 'OKL_NEW_COPY_CPL_ERROR';
21264       insert_okc_k_party_roles(p_chr_id, l_copied_id); -- _b _tl contacts okl_party_payment_dtls
21265 
21266       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21267               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okc_rule_groups...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21268       END IF;
21269       l_curr_pos := 'okl_copy_lease_contract:40';
21270       l_message := 'OKL_NEW_COPY_RGP_ERROR';
21271       insert_okc_rule_groups(p_chr_id, l_copied_id); -- _b,_tl and rules(_b,_tl)
21272 
21273       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21274               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okc_rg_party_roles...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21275       END IF;
21276       l_curr_pos := 'okl_copy_lease_contract:41';
21277       l_message := 'OKL_NEW_COPY_RGR_ERROR';
21278       insert_okc_rg_party_roles(p_chr_id, l_copied_id);
21279 
21280       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21281               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okc_k_items...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21282       END IF;
21283       l_curr_pos := 'okl_copy_lease_contract:42';
21284       l_message := 'OKL_NEW_COPY_CIM_ERROR';
21285       insert_okc_k_items(p_chr_id, l_copied_id);
21286 
21287       IF ((l_sts_code_orig IN (
21288          'APPROVED', 'COMPLETE', 'INCOMPLETE', 'NEW',
21289           'PASSED', 'PENDING_APPROVAL')) OR
21290           (nvl(l_template_yn, 'N') = 'Y' )) THEN
21291         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21292                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okl_trx_assets...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21293         END IF;
21294         l_curr_pos := 'okl_copy_lease_contract:43';
21295         l_message := 'OKL_NEW_COPY_ASSET_TAS_ERROR';
21296         insert_okl_trx_assets(p_chr_id, l_copied_id);
21297 
21298         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21299                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okl_txl_itm_insts...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21300         END IF;
21301         l_curr_pos := 'okl_copy_lease_contract:44';
21302         l_message := 'OKL_NEW_COPY_IB_TAS_ERROR';
21303         insert_okl_trx_assets_2(p_chr_id, l_copied_id);
21304         l_curr_pos := 'okl_copy_lease_contract:45';
21305         l_message := 'OKL_NEW_COPY_ITI_ERROR';
21306         insert_okl_txl_itm_insts(p_chr_id, l_copied_id);
21307       ELSE
21308         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21309                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okl_trx_assets BOOKED...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21310         END IF;
21311         l_curr_pos := 'okl_copy_lease_contract:46';
21312         l_message := 'OKL_NEW_COPY_ASSET_TAS_ERROR';
21313         insert_okl_trx_assets_3(p_chr_id, l_copied_id);
21314         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21315                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okl_txl_itm_insts BOOKED...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21316         END IF;
21317         l_curr_pos := 'okl_copy_lease_contract:47';
21318         l_message := 'OKL_NEW_COPY_IB_TAS_ERROR';
21319         insert_okl_txl_itm_insts2(p_chr_id, l_copied_id);
21320       END IF;
21321 
21322       -- Delete the abandoned/rollover/insurance lines now
21323       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21324               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Delete started ' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21325       END IF;
21326       l_curr_pos := 'okl_copy_lease_contract:48';
21327       IF (l_delete_counter > 1) THEN
21328         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21329                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_delete_counter=' || l_delete_counter);
21330         END IF;
21331         FOR i IN l_delete_id_tab.first..l_delete_id_tab.last
21332         LOOP
21333           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21334                       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_delete_id_tab(' || i || ')=' || l_delete_id_tab(i));
21335           END IF;
21336           select count(1) into l_line_count  -- 5207066
21337           FROM   okc_k_lines_b
21338           where  id = l_delete_id_tab(i);
21339           IF (l_line_count > 0) THEN  -- 5207066
21340           Okl_Contract_Pub.delete_contract_line(
21341               p_api_version    => p_api_version,
21342               p_init_msg_list  => p_init_msg_list,
21343               x_return_status  => x_return_status,
21344               x_msg_count      => x_msg_count,
21345               x_msg_data       => x_msg_data,
21346               p_line_id        => l_delete_id_tab(i));
21347           IF x_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
21348               RAISE G_EXCEPTION_HALT_PROCESS;
21349           END IF;
21350           END IF;
21351 
21352         END LOOP;
21353       END IF;
21354 
21355       -- Update status as ENTERED
21356       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21357               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Update sts_code started ' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21358       END IF;
21359       l_curr_pos := 'okl_copy_lease_contract:49';
21360       IF (l_entered_counter > 1) THEN
21361 
21362         forall i IN l_entered_id_tab.first..l_entered_id_tab.last
21363           UPDATE okc_k_lines_b
21364           SET sts_code = l_entered_sts_code_tab(i) -- Bug 4872258
21365           --SET sts_code = 'ENTERED'
21366           WHERE id = l_entered_id_tab(i);
21367       END IF;
21368 
21369       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21370               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting okl_supp_invoice_dtls...' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21371       END IF;
21372       l_curr_pos := 'okl_copy_lease_contract:50';
21373       l_message := 'OKL_NEW_COPY_SID_ERROR';
21374       insert_okl_supp_invoice_dtls(p_chr_id);
21375       /* AKP: Commented out for now: it takes lot of time to execute formula
21376       print('Before formula execute x_return_status='||x_return_status || ' ' || to_char(sysdate,'HH24:MI:SS'));
21377 
21378       -- Post Processing (to calculate CAPITAL_AMOUNT)
21379       l_curr_pos := 'okl_copy_lease_contract:51';
21380       if (l_id2_tab.count > 0) then
21381       for i in l_id2_tab.first..l_id2_tab.last
21382       loop
21383         if (l_lse_id2_tab(i) = 33) then
21384           --print('Calling with ' || l_id2_tab(i));
21385           okl_execute_formula_pub.execute(p_api_version=> p_api_version,
21386                         p_init_msg_list => p_init_msg_list,
21387                         x_return_status => x_return_status,
21388                         x_msg_count => x_msg_count,
21389                         x_msg_data => x_msg_data,
21390                         p_formula_name => 'LINE_CAP_AMNT',
21391                         p_contract_id => l_copied_id,
21392                         p_line_id => l_id2_tab(i),
21393                         x_value => l_capital_amount);
21394           if (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
21395             raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
21396           elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
21397             raise OKC_API.G_EXCEPTION_ERROR;
21398           end if;
21399         end if;
21400       end loop;
21401       end if;
21402       */
21403     END IF; /* if copy_lines_yn <> 'N' */
21404     END LOOP; /* for c1rec */
21405       --x_return_status := OKL_API.G_RET_STS_SUCCESS;
21406 
21407     x_chr_id := l_copied_id;
21408     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21409           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'));
21410     END IF;
21411 
21412     -- Now do all the business events processing
21413     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21414           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Doing raise_business_event_header...' );
21415     END IF;
21416     l_curr_pos := 'okl_copy_lease_contract:52';
21417     raise_business_event_header(p_chr_id        => x_chr_id
21418 	                       ,x_return_status => x_return_status);
21419     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
21420        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
21421     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
21422        RAISE OKL_API.G_EXCEPTION_ERROR;
21423     END IF;
21424 
21425     -- For Create Top Line and Subsidy
21426 
21427     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21428           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Doing raise_business_event...' );
21429     END IF;
21430     l_curr_pos := 'okl_copy_lease_contract:53';
21431     l_contract_process := okl_lla_util_pvt.get_contract_process(l_copied_id);
21432 
21433     IF (l_counter > 1) THEN
21434       l_parameter_list := NULL;
21435       l_raise_business_event := OKL_API.G_FALSE;
21436       l_event_name := NULL;
21437       l_curr_pos := 'okl_copy_lease_contract:54';
21438       FOR i IN l_id_tab.first..l_id_tab.last
21439       LOOP
21440         IF l_lse_id_tab(i) = 58 THEN
21441             -- raise the business event for create credit limit, if line style code is FREE_FORM
21442             l_event_name  := G_WF_EVT_CR_LMT_CREATED;
21443             l_raise_business_event := OKL_API.G_TRUE;
21444             wf_event.AddParameterToList(G_WF_ITM_CR_LINE_ID,l_copied_id,l_parameter_list);
21445             wf_event.AddParameterToList(G_WF_ITM_CR_LMT_ID,l_id_tab(i),l_parameter_list);
21446         ELSIF l_lse_id_tab(i) = 33 THEN
21447             -- raise the business event for create asset, if line style code is FREE_FORM1
21448             l_event_name  := G_WF_EVT_ASSET_CREATED;
21449             wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID,l_copied_id,l_parameter_list);
21450             wf_event.AddParameterToList(G_WF_ITM_ASSET_ID,l_id_tab(i),l_parameter_list);
21451         ELSIF l_lse_id_tab(i) = 48 THEN
21452             -- raise the business event for create service, if line style code is SOLD_SERVICE
21453             l_event_name  := G_WF_EVT_SERVICE_CREATED;
21454             wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID,l_copied_id,l_parameter_list);
21455             wf_event.AddParameterToList(G_WF_ITM_SRV_LINE_ID,l_id_tab(i),l_parameter_list);
21456         --create_fee event is raised from here rather than okl_maintain_fee_pvt
21457         --as contract import process does not call okl_maintain_fee_pvt, but directly calls
21458         --okl_contract_pvt
21459         ELSIF l_lse_id_tab(i) = 52 THEN
21460             -- raise the business event for create fee, if line style code is FEE
21461             l_event_name  := G_WF_EVT_FEE_CREATED;
21462             wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID,l_copied_id,l_parameter_list);
21463             wf_event.AddParameterToList(G_WF_ITM_FEE_LINE_ID,l_id_tab(i),l_parameter_list);
21464         END IF;
21465 
21466         -- raise business event only if the contract is a lease contract, the raise_event flag is on and business event
21467         -- name is specified. the event should also be raised if this is a credit limit, in which case is_lease_contract
21468         -- does not hold good
21469         IF(l_raise_business_event = OKL_API.G_TRUE AND l_event_name IS NOT NULL) THEN
21470         	 raise_business_event(p_api_version    => p_api_version,
21471                               p_init_msg_list  => p_init_msg_list,
21472                               x_return_status  => x_return_status,
21473                               x_msg_count      => x_msg_count,
21474                               x_msg_data       => x_msg_data,
21475                               p_event_name     => l_event_name,
21476                               p_parameter_list => l_parameter_list,
21477                               p_contract_process  => l_contract_process );
21478           IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
21479             RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
21480           ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
21481             RAISE OKL_API.G_EXCEPTION_ERROR;
21482           END IF;
21483           l_parameter_list := NULL;
21484           l_raise_business_event := OKL_API.G_FALSE;
21485           l_event_name := NULL;
21486         END IF;
21487 
21488         -- Subsidy
21489         IF (l_lse_id_tab(i) = 70) THEN
21490          raise_business_event_subsidy(p_api_version         => p_api_version,
21491                               p_init_msg_list    => p_init_msg_list,
21492                               p_chr_id           => l_copied_id,
21493                               p_asset_id         => l_cle_id_tab(i),
21494                               p_subsidy_id       => find_osid_mapping_id(l_id_tab(i)),
21495                               p_event_name       => G_WF_EVT_ASSET_SUBSIDY_CRTD,
21496                               p_contract_process => l_contract_process,
21497                               x_return_status    => x_return_status,
21498                               x_msg_count        => x_msg_count,
21499                               x_msg_data         => x_msg_data
21500                              );
21501          IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
21502             RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
21503          ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
21504             RAISE OKL_API.G_EXCEPTION_ERROR;
21505          END IF;
21506 
21507         END IF;
21508       END LOOP;
21509     END IF;
21510 
21511     IF (l_counter > 1) THEN
21512       l_curr_pos := 'okl_copy_lease_contract:55';
21513       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21514               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Doing raise_business_event_itm...' );
21515       END IF;
21516       -- For Create Fee Asset and Create Usage Line and Create Usage Asset
21517       l_parameter_list := NULL;
21518       l_raise_business_event := OKL_API.G_FALSE;
21519       l_business_event_name := NULL;
21520       FOR i IN l_id_tab.first..l_id_tab.last
21521       LOOP
21522 
21523         IF(l_lse_id_tab(i) = 53 ) THEN
21524            l_raise_business_event := OKL_API.G_TRUE;
21525            l_business_event_name  := G_WF_EVT_ASSET_FEE_CREATED;
21526            wf_event.AddParameterToList(G_WF_ITM_FEE_LINE_ID,l_cle_id_tab(i),l_parameter_list);
21527         ELSIF(l_lse_id_tab(i) = 49 ) THEN
21528            l_raise_business_event := OKL_API.G_TRUE;
21529            l_business_event_name  := G_WF_EVT_ASSET_SERV_FEE_CRTD;
21530            wf_event.AddParameterToList(G_WF_ITM_SERV_LINE_ID,l_cle_id_tab(i),l_parameter_list);
21531         END IF;
21532 
21533         IF(l_raise_business_event = OKL_API.G_TRUE AND l_business_event_name IS NOT NULL)THEN
21534       	   wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID,l_copied_id,l_parameter_list);
21535              --Ashish ??? Done
21536       	   --wf_event.AddParameterToList(G_WF_ITM_ASSET_ID,p_cimv_rec.object1_id1,l_parameter_list);
21537              l_new_object1_id1 := find_oid_mapping_id(l_id_tab(i));
21538              IF (l_new_object1_id1 = '-1') THEN
21539                IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21540                                 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Can not find mapping object1_id1 for ' || l_id_tab(i));
21541                END IF;
21542                RAISE OKL_API.G_EXCEPTION_ERROR;
21543              END IF;
21544       	   wf_event.AddParameterToList(G_WF_ITM_ASSET_ID,l_new_object1_id1,l_parameter_list);
21545 
21546     	   raise_business_event_itm(p_api_version      => p_api_version
21547                                ,p_init_msg_list    => p_init_msg_list
21548     	                     ,x_return_status    => x_return_status
21549                                ,x_msg_count        => x_msg_count
21550                                ,x_msg_data         => x_msg_data
21551                                ,p_event_name       => l_business_event_name
21552                                ,p_event_param_list => l_parameter_list
21553                                ,p_contract_process => l_contract_process);
21554           l_raise_business_event := OKL_API.G_FALSE;
21555           l_business_event_name := NULL;
21556           l_parameter_list := NULL;
21557         END IF;
21558 
21559         IF (l_lse_id_tab(i) = 56) THEN
21560           okl_ubb_wf_pvt.raise_create_event (
21561                            p_api_version    => p_api_version,
21562                            p_init_msg_list  => p_init_msg_list,
21563                            x_return_status  => x_return_status,
21564                            x_msg_count      => x_msg_count,
21565                            x_msg_data       => x_msg_data,
21566                            p_chr_id         => l_copied_id,
21567                            p_ubb_id         => l_id_tab(i));
21568           IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
21569             RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
21570           ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
21571             RAISE OKL_API.G_EXCEPTION_ERROR;
21572           END IF;
21573         ELSIF (l_lse_id_tab(i) = 57) THEN
21574           okl_ubb_wf_pvt.raise_add_asset_event (
21575                            p_api_version    => p_api_version,
21576                            p_init_msg_list  => p_init_msg_list,
21577                            x_return_status  => x_return_status,
21578                            x_msg_count      => x_msg_count,
21579                            x_msg_data       => x_msg_data,
21580                            p_chr_id         => l_copied_id,
21581                            p_ubb_id         => l_cle_id_tab(i),
21582                            p_cle_id         => l_id_tab(i));
21583         END IF;
21584 
21585       END LOOP;
21586     END IF;
21587 
21588     IF (l_party_counter > 1) THEN
21589       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21590               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Doing raise_business_event_itm again...' );
21591       END IF;
21592       l_curr_pos := 'okl_copy_lease_contract:56';
21593       -- For create party
21594       l_parameter_list := NULL;
21595       FOR i IN l_prid_tab.first..l_prid_tab.last
21596       LOOP
21597 
21598         wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID,l_copied_id,l_parameter_list);
21599         --vthiruva..04-jan-2004.. Modified to pass object1_id1 as party id and
21600         --added party_role_id to list of paramters passed to raise business event.
21601         --wf_event.AddParameterToList(G_WF_ITM_PARTY_ID,p_cplv_rec.object1_id1,l_parameter_list);
21602         --wf_event.AddParameterToList(G_WF_ITM_PARTY_ROLE_ID,x_cplv_rec.id,l_parameter_list);
21603         wf_event.AddParameterToList(G_WF_ITM_PARTY_ID,l_probject1_id1_tab(i),l_parameter_list);
21604         wf_event.AddParameterToList(G_WF_ITM_PARTY_ROLE_ID,l_prid_tab(i),l_parameter_list);
21605 
21606   	  raise_business_event_itm(p_api_version      => p_api_version
21607                             ,p_init_msg_list    => p_init_msg_list
21608   	                  ,x_return_status    => x_return_status
21609                             ,x_msg_count        => x_msg_count
21610                             ,x_msg_data         => x_msg_data
21611                             ,p_event_name       => G_WF_EVT_KHR_PARTY_CREATED
21612                             ,p_event_param_list => l_parameter_list
21613                             ,p_contract_process => l_contract_process);
21614 
21615         IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
21616            RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
21617         ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
21618            RAISE OKL_API.G_EXCEPTION_ERROR;
21619         END IF;
21620         l_parameter_list := NULL;
21621 
21622       END LOOP;
21623     END IF;
21624 
21625     IF (l_txl_assets_b_counter > 1) THEN
21626       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21627               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Doing raise_business_event_dep...' );
21628       END IF;
21629       l_curr_pos := 'okl_copy_lease_contract:57';
21630       -- For Create book Depreciation
21631       FOR i IN l_tbid_tab.first..l_tbid_tab.last
21632       LOOP
21633         IF (l_tbcorporate_book_tab(i) IS NOT NULL) THEN
21634          raise_business_event_dep
21635                              (p_api_version         => p_api_version,
21636                               p_init_msg_list       => p_init_msg_list,
21637                               p_chr_id              => l_copied_id,
21638                               p_asset_id            => find_cid_mapping_id(l_tbkle_id_tab(i)),
21639                               p_book_code           => l_tbcorporate_book_tab(i),
21640                               p_event_name          => G_WF_EVT_ASSETBOOK_DPRN_CRTD,
21641                               p_contract_process    => l_contract_process,
21642                               x_return_status       => x_return_status,
21643                               x_msg_count           => x_msg_count,
21644                               x_msg_data            => x_msg_data
21645                              );
21646          IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
21647             RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
21648          ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
21649             RAISE OKL_API.G_EXCEPTION_ERROR;
21650          END IF;
21651         END IF;
21652       END LOOP;
21653     END IF;
21654 
21655     IF (l_trx_assets_counter4 > 1) THEN
21656       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21657               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Doing raise_business_event_dep 2...' );
21658       END IF;
21659       l_curr_pos := 'okl_copy_lease_contract:58';
21660       FOR i IN l_tb2id_tab.first..l_tb2id_tab.last
21661       LOOP
21662         IF (l_tb2corporate_book_tab(i) IS NOT NULL) THEN
21663          raise_business_event_dep
21664                              (p_api_version         => p_api_version,
21665                               p_init_msg_list       => p_init_msg_list,
21666                               p_chr_id              => l_copied_id,
21667                               p_asset_id            => find_cid_mapping_id(l_tb2kle_id_tab(i)),
21668                               p_book_code           => l_tb2corporate_book_tab(i),
21669                               p_event_name          => G_WF_EVT_ASSETBOOK_DPRN_CRTD,
21670                               p_contract_process    => l_contract_process,
21671                               x_return_status       => x_return_status,
21672                               x_msg_count           => x_msg_count,
21673                               x_msg_data            => x_msg_data
21674                              );
21675          IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
21676             RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
21677          ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
21678             RAISE OKL_API.G_EXCEPTION_ERROR;
21679          END IF;
21680         END IF;
21681       END LOOP;
21682     END IF;
21683 
21684     -- Create Tax Depreciation
21685     IF (l_tal_to_kle_counter > 1) THEN
21686       l_curr_pos := 'okl_copy_lease_contract:59';
21687       FOR i IN l_dbid_mapping_tab.first..l_dbid_mapping_tab.last
21688       LOOP
21689         l_tal_kle_cle_id := find_cid_mapping_id(l_dbid_mapping_tab(i).kle_id);
21690         IF (l_tal_kle_cle_id = -1) THEN
21691           IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21692                       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR: TAL_ID to KLE_ID to CLE_ID mapping not found');
21693           END IF;
21694           RAISE OKL_API.G_EXCEPTION_ERROR;
21695         END IF;
21696         raise_business_event_txd
21697                    ( p_api_version         => p_api_version,
21698                      p_init_msg_list       => p_init_msg_list,
21699                      p_chr_id              => l_copied_id,
21700                      p_asset_id            => l_tal_kle_cle_id,
21701                      p_event_name          => G_WF_EVT_ASSETTAX_DPRN_CRTD,
21702                      p_contract_process    => l_contract_process,
21703                      x_return_status       => x_return_status,
21704                      x_msg_count           => x_msg_count,
21705                      x_msg_data            => x_msg_data
21706                    );
21707         IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
21708           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
21709         ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
21710           RAISE OKL_API.G_EXCEPTION_ERROR;
21711         END IF;
21712       END LOOP;
21713     END IF;
21714 
21715     -- Create Serial Number
21716     IF ( l_txl_itm_insts_counter > 1 ) THEN
21717       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21718               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Doing raise_business_event_itm...');
21719       END IF;
21720       l_curr_pos := 'okl_copy_lease_contract:60';
21721       FOR i IN l_tiid_tab.first..l_tiid_tab.last
21722       LOOP
21723         IF (l_tiserial_number_tab(i) IS NOT NULL) THEN
21724           raise_business_event_itm
21725                     ( p_api_version         => p_api_version,
21726                       p_init_msg_list       => p_init_msg_list,
21727                       p_chr_id              => l_copied_id,
21728                       p_asset_id            => l_tidnz_cle_id_tab(i),
21729                       p_ser_num             => l_tiserial_number_tab(i),
21730                       p_event_name          => G_WF_EVT_ASSET_SERIAL_CRTD,
21731                       p_contract_process    => l_contract_process,
21732                       x_return_status       => x_return_status,
21733                       x_msg_count           => x_msg_count,
21734                       x_msg_data            => x_msg_data
21735                     );
21736        IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
21737           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
21738        ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
21739           RAISE OKL_API.G_EXCEPTION_ERROR;
21740        END IF;
21741         END IF;
21742       END LOOP;
21743     END IF;
21744 
21745     -- Create Serial Number2
21746     IF ( l_txl_itm_insts_counter2 > 1 ) THEN
21747       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21748               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Doing raise_business_event_itm 2...');
21749       END IF;
21750       l_curr_pos := 'okl_copy_lease_contract:61';
21751       FOR i IN l_ti2id_tab.first..l_ti2id_tab.last
21752       LOOP
21753         IF (l_ti2serial_number_tab(i) IS NOT NULL) THEN
21754           raise_business_event_itm
21755                     ( p_api_version         => p_api_version,
21756                       p_init_msg_list       => p_init_msg_list,
21757                       p_chr_id              => l_copied_id,
21758                       p_asset_id            => l_ti2dnz_cle_id_tab(i),
21759                       p_ser_num             => l_ti2serial_number_tab(i),
21760                       p_event_name          => G_WF_EVT_ASSET_SERIAL_CRTD,
21761                       p_contract_process    => l_contract_process,
21762                       x_return_status       => x_return_status,
21763                       x_msg_count           => x_msg_count,
21764                       x_msg_data            => x_msg_data
21765                     );
21766        IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
21767           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
21768        ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
21769           RAISE OKL_API.G_EXCEPTION_ERROR;
21770        END IF;
21771         END IF;
21772       END LOOP;
21773     END IF;
21774 
21775     -- For Create Supplier Invoice Details
21776     IF (l_supp_invoice_dtls_counter > 1) THEN
21777       l_curr_pos := 'okl_copy_lease_contract:62';
21778       FOR i IN l_osid_tab.first..l_osid_tab.last
21779       LOOP
21780         l_vendor_id := NULL;
21781         IF (l_vid_counter > 1) THEN
21782           l_vendor_id  := find_vid_mapping_id(l_oscle_id_tab(i));
21783         END IF;
21784         raise_business_event_supp
21785              ( p_api_version         => p_api_version,
21786                p_init_msg_list       => p_init_msg_list,
21787                p_chr_id              => l_copied_id,
21788                p_asset_id            => l_oscle_id_tab(i),
21789                p_vendor_id           => l_vendor_id,
21790                p_event_name          => G_WF_EVT_ASSET_SUP_INV_CRTD,
21791                p_contract_process    => l_contract_process,
21792                x_return_status       => x_return_status,
21793                x_msg_count           => x_msg_count,
21794                x_msg_data            => x_msg_data
21795              );
21796        IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
21797           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
21798        ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
21799           RAISE OKL_API.G_EXCEPTION_ERROR;
21800        END IF;
21801       END LOOP;
21802     END IF;
21803 
21804     -- For Rule Groups
21805     IF (l_rule_groups_b_counter > 1) THEN
21806       l_raise_business_event := OKL_API.G_FALSE;
21807       l_business_event_name := NULL;
21808       l_curr_pos := 'okl_copy_lease_contract:63';
21809 
21810       FOR i IN l_rid_tab.first..l_rid_tab.last
21811       LOOP
21812 
21813         l_terms_id := NULL;
21814         IF(l_rrgd_code_tab(i) = 'LAAFLG' AND l_rchr_id_tab(i) IS NOT NULL)
21815         THEN
21816           -- raise business event for the Liens and Title for Terms and Conditions for the Contract
21817           l_raise_business_event := OKL_API.G_TRUE;
21818           l_business_event_name := G_WF_EVT_CONTRACT_TERM_UPDATED;
21819           l_terms_id := find_tid_mapping_id(l_rrgd_code_tab(i));
21820           IF(l_terms_id IS NOT NULL)THEN
21821             wf_event.AddParameterToList(G_WF_ITM_TERMS_ID, l_terms_id, l_parameter_list);
21822           END IF;
21823         ELSIF(l_rrgd_code_tab(i) = 'LAAFLG' AND l_rcle_id_tab(i) IS NOT NULL)
21824         THEN
21825           --raise business event for Liens Title and Registration for the Assets
21826           l_raise_business_event := OKL_API.G_TRUE;
21827           l_business_event_name := G_WF_EVT_ASSET_FILING_UPDATED;
21828           wf_event.AddParameterToList(G_WF_ITM_ASSET_ID, l_rcle_id_tab(i), l_parameter_list);
21829         ELSIF(l_rrgd_code_tab(i) = 'LAASTX' AND l_rcle_id_tab(i) IS NOT NULL)
21830         THEN
21831           -- raise business event for tax, property tax updated.
21832           l_raise_business_event := OKL_API.G_TRUE;
21833           l_business_event_name := G_WF_EVT_ASSET_PROPTAX_UPDATED;
21834           wf_event.AddParameterToList(G_WF_ITM_ASSET_ID, l_rcle_id_tab(i), l_parameter_list);
21835         ELSIF(l_rrgd_code_tab(i) = 'LAPSTH' AND l_rcle_id_tab(i) IS NOT NULL)
21836         THEN
21837           l_line_style := find_sid_mapping_id(l_rcle_id_tab(i));
21838           -- raise business event for service line update passthru
21839           IF(l_line_style IS NOT NULL AND l_line_style = 48)THEN
21840             l_raise_business_event := OKL_API.G_TRUE;
21841             l_business_event_name := G_WF_EVT_SERV_PASS_UPDATED;
21842             wf_event.AddParameterToList(G_WF_ITM_SERV_LINE_ID, l_rcle_id_tab(i), l_parameter_list);
21843             -- check if the service line in context has a service contract associated with it
21844             -- if so, pass the service contract id and service contract line id as parameters
21845             IF (NOT(l_queried)) THEN
21846               OPEN c29(l_copied_id);
21847               LOOP
21848                 FETCH c29 bulk collect INTO
21849                 l_s2cle_id_tab, l_s2object1_id1_tab;
21850                 EXIT WHEN l_s2cle_id_tab.COUNT = 0;
21851                 FOR j IN l_s2cle_id_tab.first..l_s2cle_id_tab.last
21852                 LOOP
21853                   -- Store cle_id and object1_id1 for business function only
21854                   l_ssid_mapping_tab(l_ssid_counter).cle_id := l_s2cle_id_tab(j);
21855                   l_ssid_mapping_tab(l_ssid_counter).object1_id1 := l_s2object1_id1_tab(j);
21856                   l_ssid_counter := l_ssid_counter + 1;
21857                 END LOOP;
21858               END LOOP;
21859               CLOSE c29;
21860               sort_ssid_mapping_tab;
21861               l_queried := TRUE;
21862             END IF;
21863             l_service_top_line_id := find_ssid_mapping_id(l_rcle_id_tab(i));
21864             IF(l_service_top_line_id IS NOT NULL)THEN
21865               l_serv_contract_id := l_copied_id;
21866               wf_event.AddParameterToList(G_WF_ITM_SERV_CHR_ID, l_serv_contract_id, l_parameter_list);
21867               wf_event.AddParameterToList(G_WF_ITM_SERV_CLE_ID, l_service_top_line_id, l_parameter_list);
21868             END IF;
21869           -- raise the business event for update passthrough for Fee Line
21870           ELSIF(l_line_style IS NOT NULL AND l_line_style = 52)THEN
21871             l_raise_business_event := OKL_API.G_TRUE;
21872             l_business_event_name := G_WF_EVT_FEE_PASS_UPDATED;
21873             wf_event.AddParameterToList(G_WF_ITM_FEE_LINE_ID, l_rcle_id_tab(i), l_parameter_list);
21874           END IF;
21875         ELSIF(l_rrgd_code_tab(i) = 'LAFEXP' AND l_rcle_id_tab(i) IS NOT NULL)
21876         THEN
21877           l_line_style := find_sid_mapping_id(l_rcle_id_tab(i));
21878           /*OPEN get_line_style(p_line_id);
21879           FETCH get_line_style INTO l_line_style;
21880           CLOSE get_line_style;*/
21881           -- raise business event for service line update expense
21882           IF(l_line_style IS NOT NULL AND l_line_style = 48)THEN
21883             l_raise_business_event := OKL_API.G_TRUE;
21884             l_business_event_name := G_WF_EVT_SERV_FEXP_UPDATED;
21885             wf_event.AddParameterToList(G_WF_ITM_SERV_LINE_ID, l_rcle_id_tab(i), l_parameter_list);
21886             -- check if the service line in context has a service contract associated with it
21887             -- if so, pass the service contract id and service contract line id as parameters
21888             /*OPEN get_serv_chr_from_serv(p_chr_id, p_line_id);
21889             FETCH get_serv_chr_from_serv INTO l_service_top_line_id;
21890             CLOSE get_serv_chr_from_serv;*/
21891             IF (NOT(l_queried)) THEN
21892               OPEN c29(l_copied_id);
21893               LOOP
21894                 FETCH c29 bulk collect INTO
21895                 l_s2cle_id_tab, l_s2object1_id1_tab;
21896                 EXIT WHEN l_s2cle_id_tab.COUNT = 0;
21897                 FOR j IN l_s2cle_id_tab.first..l_s2cle_id_tab.last
21898                 LOOP
21899                   -- Store cle_id and object1_id1 for business function only
21900                   l_ssid_mapping_tab(l_ssid_counter).cle_id := l_s2cle_id_tab(j);
21901                   l_ssid_mapping_tab(l_ssid_counter).object1_id1 := l_s2object1_id1_tab(j);
21902                   l_ssid_counter := l_ssid_counter + 1;
21903                 END LOOP;
21904               END LOOP;
21905               CLOSE c29;
21906               sort_ssid_mapping_tab;
21907               l_queried := TRUE;
21908             END IF;
21909             l_service_top_line_id := find_ssid_mapping_id(l_rcle_id_tab(i));
21910             IF(l_service_top_line_id IS NOT NULL)THEN
21911               /*OPEN get_serv_cle_from_serv(l_service_top_line_id);
21912               FETCH get_serv_cle_from_serv INTO l_serv_contract_id;
21913               CLOSE get_serv_cle_from_serv; */
21914               l_serv_contract_id := l_copied_id;
21915               wf_event.AddParameterToList(G_WF_ITM_SERV_CHR_ID, l_serv_contract_id, l_parameter_list);
21916               wf_event.AddParameterToList(G_WF_ITM_SERV_CLE_ID, l_service_top_line_id, l_parameter_list);
21917             END IF;
21918           ELSIF(l_line_style IS NOT NULL AND l_line_style = 52)THEN
21919             l_raise_business_event := OKL_API.G_TRUE;
21920             l_business_event_name := G_WF_EVT_FEE_EXP_UPDATED;
21921             wf_event.AddParameterToList(G_WF_ITM_FEE_LINE_ID, l_rcle_id_tab(i), l_parameter_list);
21922           END IF;
21923         END IF;
21924 
21925      -- check if the business event needs to be raised
21926       IF (l_raise_business_event = OKL_API.G_TRUE AND
21927           l_business_event_name IS NOT NULL )THEN
21928        -- since contract id is called as 'CONTRACT_ID'  for all the above events, it is being
21929        -- added to the parameter list here, than duplicating it in all the above if conditions
21930 
21931         wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID, l_copied_id, l_parameter_list);
21932         raise_business_event_rules
21933                            (p_api_version     => p_api_version,
21934                             p_init_msg_list   => p_init_msg_list,
21935                             x_return_status   => x_return_status,
21936                             x_msg_count       => x_msg_count,
21937                             x_msg_data        => x_msg_data,
21938                             p_event_name      => l_business_event_name,
21939                             p_event_param_list => l_parameter_list,
21940                             p_contract_process => l_contract_process
21941                            );
21942         IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
21943           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
21944         ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
21945           RAISE OKL_API.G_EXCEPTION_ERROR;
21946         END IF;
21947 
21948         l_raise_business_event := OKL_API.G_FALSE;
21949         l_business_event_name := NULL;
21950 
21951       END IF;
21952 
21953       END LOOP;
21954     END IF;
21955 
21956     -- End of business events processing
21957 
21958     l_curr_pos := 'okl_copy_lease_contract:64';
21959     OKL_API.END_ACTIVITY (x_msg_count,
21960                           x_msg_data );
21961     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21962           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Done ' || TO_CHAR(SYSDATE,'HH24:MI:SS'));
21963     END IF;
21964      EXCEPTION
21965        WHEN OKL_API.G_EXCEPTION_ERROR THEN
21966          IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21967                     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
21968          END IF;
21969          OKL_API.set_message(p_app_name => 'OKL',
21970                       p_msg_name => l_message,
21971                       p_token1 => 'CONTRACT_NUMBER',
21972                       p_token1_value => l_contract_number);
21973        x_return_status := OKL_API.HANDLE_EXCEPTIONS(
21974                                   l_api_name,
21975                                   G_PKG_NAME,
21976                                   'OKL_API.G_RET_STS_ERROR',
21977                                   x_msg_count,
21978                                   x_msg_data,
21979                                   '_PVT');
21980        IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21981                 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_curr_pos='||l_curr_pos);
21982        END IF;
21983        --print('sqlcode='||sqlcode || ':sqlerrm=' || sqlerrm);
21984        IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21985                 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing copy_lease_contract:l_id_tab ...');
21986        END IF;
21987        FOR i IN 1..l_counter-1
21988        LOOP
21989          IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21990                     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));
21991            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));
21992          END IF;
21993        END LOOP;
21994        WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
21995          IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
21996                     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
21997          END IF;
21998          OKL_API.set_message(p_app_name => 'OKL',
21999                       p_msg_name => l_message,
22000                       p_token1 => 'CONTRACT_NUMBER',
22001                       p_token1_value => l_contract_number);
22002        x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
22003                                  l_api_name,
22004                                  G_PKG_NAME,
22005                                  'OKL_API.G_RET_STS_UNEXP_ERROR',
22006                                  x_msg_count,
22007                                  x_msg_data,
22008                                  '_PVT');
22009        IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
22010                 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_curr_pos='||l_curr_pos);
22011        END IF;
22012        --print('sqlcode='||sqlcode || ':sqlerrm=' || sqlerrm);
22013        IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
22014                 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing copy_lease_contract:l_id_tab ...');
22015        END IF;
22016        FOR i IN 1..l_counter-1
22017        LOOP
22018          IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
22019                     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));
22020            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));
22021          END IF;
22022        END LOOP;
22023        WHEN OTHERS THEN
22024          IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
22025                     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'sqlcode=' || SQLCODE || ':sqlerrm=' || SQLERRM);
22026          END IF;
22027          OKL_API.set_message(p_app_name => 'OKL',
22028                       p_msg_name => l_message,
22029                       p_token1 => 'CONTRACT_NUMBER',
22030                       p_token1_value => l_contract_number);
22031        x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
22032                                  l_api_name,
22033                                  G_PKG_NAME,
22034                                  'OTHERS',
22035                                  x_msg_count,
22036                                  x_msg_data,
22037                                  '_PVT');
22038        IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
22039                 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_curr_pos='||l_curr_pos);
22040        END IF;
22041        --print('sqlcode='||sqlcode || ':sqlerrm=' || sqlerrm);
22042        IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
22043                 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Printing copy_lease_contract:l_id_tab ...');
22044        END IF;
22045        FOR i IN 1..l_counter-1
22046        LOOP
22047          IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
22048                     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));
22049            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));
22050          END IF;
22051        END LOOP;
22052 END;  /* copy_lease_contract_new */
22053 
22054 --------------------------------------------------------------------------------
22055 -- Start of comments
22056 --
22057 -- Procedure Name  : copy_lease_contract
22058 -- Description     : Copies the contract and all the lines attached to the contract
22059 -- Business Rules  :
22060 -- Parameters      :
22061 -- Version         : 1.0
22062 -- Notes           :
22063 -- End of comments
22064 --------------------------------------------------------------------------------
22065 PROCEDURE copy_lease_contract(
22066             p_api_version              IN  NUMBER,
22067             p_init_msg_list            IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
22068             x_return_status            OUT NOCOPY VARCHAR2,
22069             x_msg_count                OUT NOCOPY NUMBER,
22070             x_msg_data                 OUT NOCOPY VARCHAR2,
22071             p_commit                   IN  VARCHAR2 DEFAULT 'F',
22072             p_chr_id                   IN  NUMBER,
22073             p_contract_number	       IN  VARCHAR2,
22074             p_contract_number_modifier IN  VARCHAR2,
22075             p_to_template_yn	       IN  VARCHAR2 DEFAULT 'N',
22076             p_renew_ref_yn             IN  VARCHAR2,
22077             p_copy_lines_yn            IN VARCHAR2,
22078             p_override_org	           IN  VARCHAR2 DEFAULT 'N',
22079             p_trans_type               IN  VARCHAR2,
22080             x_chr_id                   OUT NOCOPY NUMBER) IS
22081 
22082     l_api_name      CONSTANT VARCHAR2(30) := 'COPY_LEASE_CONTRACT';
22083     lt_klev_tbl_type         klev_tbl_type;
22084     ltx_klev_tbl_type        klev_tbl_type;
22085     i                        NUMBER := 0;
22086 
22087     CURSOR c_get_old_k_top_line(p_dnz_chr_id OKC_K_LINES_B.DNZ_CHR_ID%TYPE) IS
22088 /*
22089     SELECT cle.id top_line
22090     FROM okc_subclasses_b scs,
22091          okc_subclass_top_line stl,
22092          okc_line_styles_b lse,
22093          okc_k_lines_b cle
22094     WHERE cle.dnz_chr_id = p_dnz_chr_id
22095     AND cle.cle_id is null
22096     and cle.chr_id = cle.dnz_chr_id
22097     AND cle.lse_id = lse.id
22098     AND lse.lse_parent_id is null
22099     AND lse.lse_type = 'TLS'
22100     AND lse.id = stl.lse_Id
22101     AND stl.scs_code = scs.code
22102     AND scs.cls_code = 'OKL';
22103 */
22104     SELECT cle.id top_line
22105     FROM okc_line_styles_b lse,
22106          okc_k_lines_b cle
22107     WHERE cle.dnz_chr_id = p_dnz_chr_id
22108     AND cle.cle_id is null
22109     and cle.chr_id = cle.dnz_chr_id
22110     AND cle.lse_id = lse.id
22111     AND lse.lse_type = 'TLS';
22112 
22113 
22114    --cursor to get date signed from original contract
22115    Cursor l_date_sig_csr(p_chr_id       IN NUMBER,
22116                          p_chr_number   IN VARCHAR2,
22117                          p_chr_modifier IN VARCHAR2)  is
22118    Select chr.date_signed
22119    From   okc_k_headers_b chr
22120    where
22121    (      (chr.id = p_chr_id and p_chr_id is not null)
22122    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 )
22123    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)
22124    );
22125 
22126    l_date_signed date;
22127    l_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
22128    lx_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
22129 
22130    --cursor to get insurance top lines after the copy for deletion
22131    --Bug # 2412839 - Since copy insurance functionality is not supported at this
22132    -- time insurance lines will be deleted after they get copied by generic copy
22133    Cursor ins_top_line_csr (p_chr_id IN NUMBER) is
22134    select cle.id
22135    from   OKC_LINE_STYLES_B lse,
22136           OKC_K_LINES_B cle
22137    where  lse.lty_code       = 'INSURANCE'
22138    and    lse.id             = cle.lse_id
22139    and    lse.lse_type       = 'TLS'
22140    and    lse.application_id = 540
22141    and    cle.chr_id         = p_chr_id;
22142 
22143    l_ins_top_line_id   okc_k_lines_b.id%TYPE;
22144    --cursor to get subclass code of the copied contract
22145    --Bug #2555692
22146    Cursor l_scs_csr (p_chr_id IN NUMBER) is
22147    Select scs_code,
22148           orig_system_id1
22149    From   okc_k_headers_b
22150    where  id = p_chr_id;
22151 
22152    l_scs_code okc_k_headers_b.SCS_CODE%TYPE;
22153    l_orig_chr_id   okc_k_headers_b.ORIG_SYSTEM_ID1%TYPE;
22154 
22155    --Bug # 2792330 S and O
22156    --get the status of source contract
22157    Cursor l_sts_csr (pchrid in number) is
22158    Select sts_code
22159    From   OKC_K_HEADERS_B
22160    Where  id = pchrid;
22161 
22162    l_sts_code      okc_k_headers_b.STS_CODE%TYPE;
22163    l_quote_chr_id  okc_k_headers_b.ID%TYPE;
22164 
22165     --Bug# 3621663
22166     --cursor to get multi-gaap reporting book transaction
22167     cursor l_txd_csr (p_book_type_code in varchar2,
22168                       p_chr_id         in number) is
22169     select txdb.id
22170     from   okl_txd_assets_b txdb,
22171            okl_txl_assets_b txlb,
22172            okc_k_lines_b    cleb,
22173            okc_line_styles_b lseb
22174     where  txdb.tax_book         =  p_book_type_code
22175     and    txdb.tal_id           =  txlb.id
22176     and    txlb.kle_id           =  cleb.id
22177     and    cleb.lse_id           = lseb.id
22178     and    lseb.lty_code         = 'FIXED_ASSET'
22179     and    cleb.dnz_chr_id       = p_chr_id;
22180 
22181     l_txd_rec   l_txd_csr%ROWTYPE;
22182 
22183     l_adpv_tbl  OKL_TXD_ASSETS_PUB.adpv_tbl_type;
22184 
22185     l_rep_book_type          okl_txd_assets_b.tax_book%TYPE;
22186     l_rbk_cpy                varchar2(1);
22187 
22188    --cursor to find status of the parent contract
22189     cursor l_parent_sts_csr (p_chr_id in number) is
22190     select stsb.ste_code,
22191            parent_chrb.scs_code
22192     from   okc_statuses_b stsb,
22193            okc_k_headers_b parent_chrb
22194     where  stsb.code       = parent_chrb.sts_code
22195     and    parent_chrb.id  = p_chr_id;
22196 
22197     l_parent_sts_rec l_parent_sts_csr%ROWTYPE;
22198     --Bug# 3621663
22199 
22200     -- apaul,Bug#4381642
22201     lp_khrv_rec Okl_Contract_Pub.khrv_rec_type;
22202     lx_khrv_rec Okl_Contract_Pub.khrv_rec_type;
22203 
22204   BEGIN
22205     x_return_status      := OKL_API.G_RET_STS_SUCCESS;
22206     -- Call start_activity to create savepoint, check compatibility
22207     -- and initialize message list
22208     x_return_status := OKL_API.START_ACTIVITY (
22209                                l_api_name
22210                                ,p_init_msg_list
22211                                ,'_PVT'
22212                                ,x_return_status);
22213     -- Check if activity started successfully
22214     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
22215        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22216     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
22217        RAISE OKL_API.G_EXCEPTION_ERROR;
22218     END IF;
22219     -- TO copy the Copy the contract first
22220     OKL_COPY_CONTRACT_PUB.copy_contract(p_api_version              => p_api_version,
22221                                         p_init_msg_list            => p_init_msg_list,
22222                                         x_return_status            => x_return_status,
22223                                         x_msg_count                => x_msg_count,
22224                                         x_msg_data                 => x_msg_data,
22225                                         p_commit                   => OKL_API.G_FALSE,
22226                                         p_chr_id                   => p_chr_id,
22227                                         p_contract_number          => p_contract_number,
22228                                         p_contract_number_modifier => p_contract_number_modifier,
22229                                         p_to_template_yn           => p_to_template_yn,
22230                                         p_renew_ref_yn             => p_renew_ref_yn,
22231                                         p_copy_lines_yn            => 'N',
22232                                         p_override_org             => p_override_org,
22233                                         x_chr_id                   => x_chr_id);
22234 
22235      IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
22236            --bug # 2518454
22237            --OKL_API.set_message(p_app_name => G_APP_NAME,
22238                                --p_msg_name => G_COPY_HEADER);
22239            RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22240      ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
22241            --bug # 2518454
22242            --OKL_API.set_message(p_app_name => G_APP_NAME,
22243                                --p_msg_name => G_COPY_HEADER);
22244          RAISE OKL_API.G_EXCEPTION_ERROR;
22245      END IF;
22246 
22247      --to update date signed on copied chr
22248      Open  l_date_sig_csr(p_chr_id       => p_chr_id,
22249                           p_chr_number   => p_contract_number,
22250                           p_chr_modifier => p_contract_number_modifier);
22251          Fetch l_date_sig_csr into l_date_signed;
22252          If l_date_sig_csr%NOTFOUND Then
22253              Null;
22254          Else
22255              l_chrv_rec.id := x_chr_id;
22256              l_chrv_rec.date_signed := l_date_signed;
22257 
22258              OKL_OKC_MIGRATION_PVT.update_contract_header(
22259                      p_api_version       => p_api_version,
22260                      p_init_msg_list     => p_init_msg_list,
22261                      x_return_status     => x_return_status,
22262                      x_msg_count         => x_msg_count,
22263                      x_msg_data          => x_msg_data,
22264                      p_restricted_update => OKC_API.G_FALSE,
22265                      p_chrv_rec          => l_chrv_rec,
22266                      x_chrv_rec          => lx_chrv_rec);
22267 
22268             IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
22269                 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22270             ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
22271                 RAISE OKL_API.G_EXCEPTION_ERROR;
22272             End If;
22273 
22274           END IF;
22275     Close l_date_sig_csr;
22276 
22277     If nvl(p_copy_lines_yn,'N') = 'Y' Then
22278         -- Now the Copy the Asset lines
22279         i := 1;
22280         FOR r_get_old_k_top_line IN c_get_old_k_top_line(p_chr_id)
22281         LOOP
22282             lt_klev_tbl_type(i).id  := r_get_old_k_top_line.top_line;
22283             IF c_get_old_k_top_line%NOTFOUND THEN
22284                 -- store SQL error message on message stack
22285                 --OKL_API.set_message(p_app_name     => G_APP_NAME,
22286                 --                    p_msg_name     => G_NO_MATCHING_RECORD,
22287                 --                    p_token1       => G_COL_NAME_TOKEN,
22288                 --                    p_token1_value => 'dnz_chr_id');
22289                 --x_return_status := OKL_API.G_RET_STS_ERROR;
22290                 --EXIT WHEN (x_return_status = OKL_API.G_RET_STS_ERROR);
22291                 EXIT;
22292             END IF;
22293             i := i + 1;
22294         END LOOP;
22295         --IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
22296         --  RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22297         --ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
22298         --  RAISE OKL_API.G_EXCEPTION_ERROR;
22299         --END IF;
22300         If lt_klev_tbl_type.FIRST is NOT NULL Then
22301             --means contract has some lines then
22302             -- Copy all the lines for the old contract number
22303             OKL_COPY_ASSET_PUB.COPY_ALL_LINES(p_api_version        => p_api_version,
22304                                               p_init_msg_list      => p_init_msg_list,
22305                                               x_return_status      => x_return_status,
22306                                               x_msg_count          => x_msg_count,
22307                                               x_msg_data           => x_msg_data,
22308                                               p_from_cle_id_tbl    => lt_klev_tbl_type,
22309                                               p_to_cle_id          => null,
22310                                               p_to_chr_id          => x_chr_id,
22311                                               p_to_template_yn     => 'N',
22312                                               p_copy_reference     => 'COPY',
22313                                               p_copy_line_party_yn => 'Y',
22314                                               p_renew_ref_yn       => 'N',
22315                                               p_trans_type         => p_trans_type,
22316                                               x_cle_id_tbl         => ltx_klev_tbl_type);
22317             IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
22318                 OKL_API.set_message(p_app_name => G_APP_NAME,
22319                                     p_msg_name => G_COPY_LINE);
22320                 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22321             ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
22322                 OKL_API.set_message(p_app_name => G_APP_NAME,
22323                                     p_msg_name => G_COPY_LINE);
22324                 RAISE OKL_API.G_EXCEPTION_ERROR;
22325             END IF;
22326             --
22327             --Bug# 2522268 : Physically delete all the lines with source lines having
22328             --               abandoned status
22329             cleanup_abandoned_lines(p_api_version     => p_api_version,
22330                                     p_init_msg_list   => p_init_msg_list,
22331                                     x_return_status   => x_return_Status,
22332                                     x_msg_count       => x_msg_count,
22333                                     x_msg_data        => x_msg_data,
22334                                     p_chr_id          => x_chr_id);
22335             If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
22336                 raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22337             Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
22338                 raise OKL_API.G_EXCEPTION_ERROR;
22339             End If;
22340             --
22341             --Bug# 2522268 End
22342             --
22343   	    --
22344 	    --Bug# 3923883 : Physically delete all the rollover lines
22345             IF(p_trans_type is not null AND p_trans_type = 'CFA') THEN
22346 
22347 	     cleanup_rollover_lines(p_api_version     => p_api_version,
22348                              p_init_msg_list   => p_init_msg_list,
22349                              x_return_status   => x_return_Status,
22350                              x_msg_count       => x_msg_count,
22351                              x_msg_data        => x_msg_data,
22352                              p_chr_id          => x_chr_id);
22353 	     If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
22354 	         raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22355 	     Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
22356 	         raise OKL_API.G_EXCEPTION_ERROR;
22357 	     End If;
22358 
22359 	    End If;
22360             --
22361 	    --Bug# 3923883 End
22362 	    --
22363 
22364           End If;
22365 
22366     End If; -- if p_copy_lines_y_n flag
22367 /*---------------This pushed into copy asset lines -----------------------------
22368         ------------------------------------------------------------------------
22369         --special process to change the linked line links for covered asset
22370         ------------------------------------------------------------------------
22371      Open l_lnk_csr(p_chr_id => x_chr_id);
22372      Loop
22373          Fetch l_lnk_csr into
22374            l_new_lnk_cle_id,
22375            l_orig_lnk_cle_id,
22376            l_new_lnk_cim_id,
22377            l_jtot_object1_code,
22378            l_object1_id1,
22379            l_object1_id2;
22380 
22381          Exit when l_lnk_csr%NOTFOUND;
22382          If l_jtot_object1_code in  ('OKX_COVASST', 'OKL_USAGE') And
22383                                     (l_object1_id1 is not null)   Then
22384 
22385               link_cov_asst( p_api_version      =>  p_api_version,
22386                              p_init_msg_list    =>  p_init_msg_list,
22387                              x_return_status    =>  x_return_status,
22388                              x_msg_count        =>  x_msg_count,
22389                              x_msg_data         =>  x_msg_data,
22390                              p_orig_lnk_cle_id  =>  l_orig_lnk_cle_id,
22391                              p_new_lnk_cim_id   =>  l_new_lnk_cim_id,
22392                              p_object_code      =>  l_jtot_object1_code,
22393                              p_new_chr_id       =>  x_chr_id );
22394 
22395               If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
22396                   raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22397               Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
22398                   raise OKL_API.G_EXCEPTION_ERROR;
22399               End If;
22400          End If;
22401        End Loop;
22402        Close l_lnk_csr;
22403        -------------------------------------------------------------------------
22404        --end of special processing for fixing linked lines
22405        -------------------------------------------------------------------------
22406 This pushed into copy asset lies----------------------------------------------*/
22407 --------------------------------------------------------------------------------
22408   --Bug # 2337570 - TEMPLATE COPY DOES NOT DEFAULT ALL FIELDS ON HEADER
22409   --copy governances for master lease contract and credit line references
22410 --------------------------------------------------------------------------------
22411     copy_governances(
22412         p_api_version    => p_api_version,
22413         p_init_msg_list  => p_init_msg_list,
22414         x_return_status  => x_return_status,
22415         x_msg_count      => x_msg_count,
22416         x_msg_data       => x_msg_data,
22417         p_from_chr_id    => p_chr_id,
22418         p_to_chr_id      => x_chr_id);
22419 
22420     If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
22421         raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22422     Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
22423         raise OKL_API.G_EXCEPTION_ERROR;
22424     End If;
22425 
22426 --------------------------------------------------------------------------------
22427     --Bug # 2412839 - Since copy insurance functionality is not supported at this
22428    -- time insurance lines will be deleted after they get copied by generic copy
22429 --------------------------------------------------------------------------------
22430    Open ins_top_line_csr(p_chr_id => x_chr_id);
22431    Loop
22432        Fetch ins_top_line_csr into
22433              l_ins_top_line_id;
22434        Exit when ins_top_line_csr%NotFound;
22435        OKL_CONTRACT_PUB.delete_contract_line(
22436              p_api_version    => p_api_version,
22437              p_init_msg_list  => p_init_msg_list,
22438              x_return_status  => x_return_status,
22439              x_msg_count      => x_msg_count,
22440              x_msg_data       => x_msg_data,
22441              p_line_id        => l_ins_top_line_id);
22442        If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
22443            raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22444        Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
22445            raise OKL_API.G_EXCEPTION_ERROR;
22446        End If;
22447    End Loop;
22448    Close ins_top_line_csr;
22449 
22450    --Bug# 3541098 - Do not delete yields and interim interest details
22451    --               for a Re-book or Split contract transaction.
22452    --               Yields and interim interest details are to be
22453    --               deleted for Copy contract or Re-lease transaction.
22454 
22455    if p_trans_type IN ('CFA','CRL') then
22456      --Bug# 3159691
22457      delete_yields(
22458        p_api_version    => p_api_version,
22459        p_init_msg_list  => p_init_msg_list,
22460        x_return_status  => x_return_status,
22461        x_msg_count      => x_msg_count,
22462        x_msg_data       => x_msg_data,
22463        p_chr_id         => x_chr_id,
22464        --Bug# 3973640
22465        p_trans_type     => p_trans_type);
22466    end if;
22467 
22468    --Bug# 3541098 end
22469 
22470    If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
22471        raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22472    Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
22473        raise OKL_API.G_EXCEPTION_ERROR;
22474    End If;
22475 
22476   --Start Bug# 3621663
22477    -----------------------------------------------------------------------------
22478    --delete multigaap reporting books from transaction tables after copy
22479    --if it is not a copy for rebook
22480    ---------------------------------------------------------------------------
22481    open l_parent_sts_csr(p_chr_id => p_chr_id);
22482    fetch l_parent_sts_csr into l_parent_sts_rec;
22483    if l_parent_sts_csr%NOTFOUND then
22484        null;
22485    end if;
22486    close l_parent_sts_csr;
22487 
22488    If nvl(l_parent_sts_rec.ste_code,OKL_API.G_MISS_CHAR) not in ('ENTERED','SIGNED')
22489       and nvl(l_parent_sts_rec.scs_code,OKL_API.G_MISS_CHAR) = 'LEASE'
22490       and nvl(p_copy_lines_yn,'N') = 'Y' then
22491        If nvl(p_trans_type,OKL_API.G_MISS_CHAR) not in ('CRB','CRL') then
22492            l_rep_book_type := OKL_SYSTEM_PARAMS_ALL_PUB.get_system_param_value(OKL_SYSTEM_PARAMS_ALL_PUB.G_RPT_PROD_BOOK_TYPE_CODE);
22493            i := 0;
22494            If nvl(l_rep_book_type,OKL_API.G_MISS_CHAR) <> OKL_API.G_MISS_CHAR then
22495                open l_txd_csr (p_book_type_code  => l_rep_book_type,
22496                                p_chr_id          => x_chr_id);
22497                Loop
22498                    fetch l_txd_csr into l_txd_rec;
22499                    exit when l_txd_csr%NOTFOUND;
22500                    i := i+1;
22501                    l_adpv_tbl(i).id := l_txd_rec.id;
22502                end Loop;
22503                close l_txd_csr;
22504 
22505                If l_adpv_tbl.COUNT <> 0 then
22506                    OKL_TXD_ASSETS_PUB.delete_txd_asset_Def(
22507                        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_adpv_tbl            => l_adpv_tbl);
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                End If;
22519            End If;
22520         End If;
22521    End If;
22522    --End Bug Fix 3621663
22523 
22524    --Start Bug# 2555692
22525    -----------------------------------------------------------------------------
22526    --reset the contract status to 'NEW' for 'LEASE' and 'QUOTE'
22527    -----------------------------------------------------------------------------
22528    Open l_scs_csr(p_chr_id => x_chr_id);
22529    Fetch l_scs_csr into l_scs_code,l_orig_chr_id;
22530    If l_scs_csr%NOTFOUND Then
22531        null;
22532    Else
22533       --Bug # 2792330 : Enhancement for S and O for 'QUOTE' status
22534       --If l_scs_code in ('LEASE','QUOTE') Then
22535       If l_scs_code  = 'LEASE'  Then
22536           reset_contract_status
22537                (p_api_version   => p_api_version,
22538                 p_init_msg_list => p_init_msg_list,
22539                 x_return_status => x_return_status,
22540                 x_msg_count     => x_msg_count,
22541                 x_msg_data      => x_msg_data,
22542                 p_chr_id        => x_chr_id,
22543                 p_status        => 'NEW',
22544                 p_cascade_lines => p_copy_lines_yn);
22545 
22546            If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
22547                raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22548            Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
22549                raise OKL_API.G_EXCEPTION_ERROR;
22550            End If;
22551 
22552 	   -- apaul,Bug#4381642
22553 	   -- Reset Securitized Flag
22554 	    l_chrv_rec.id := x_chr_id;
22555 	    lp_khrv_rec.id := x_chr_id;
22556 	    lp_khrv_rec.SECURITIZED_CODE := NULL;
22557 
22558 	    Okl_Contract_Pub.update_contract_header(
22559 	      p_api_version   => p_api_version,
22560 	      p_init_msg_list => p_init_msg_list,
22561 	      x_return_status => x_return_status,
22562 	      x_msg_count     => x_msg_count,
22563 	      x_msg_data      => x_msg_data,
22564 	      p_chrv_rec      => l_chrv_rec,
22565 	      p_khrv_rec      => lp_khrv_rec,
22566 	      x_chrv_rec      => lx_chrv_rec,
22567 	      x_khrv_rec      => lx_khrv_rec);
22568 
22569 	     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
22570 	       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22571 	     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
22572 	       RAISE OKL_API.G_EXCEPTION_ERROR;
22573 	     END IF;
22574 	   -- END,apaul,Bug#4381642
22575 
22576        ElsIf l_scs_code = 'QUOTE' Then
22577 
22578            Open l_sts_csr(pchrid => l_orig_chr_id);
22579            Fetch l_sts_csr into l_sts_code;
22580            If l_sts_csr%NOTFOUND then
22581                l_sts_code := 'INCOMPLETE';
22582            End If;
22583            Close l_sts_csr;
22584 
22585            If l_sts_code = 'NEW' Then
22586                l_sts_code := 'NEW';
22587            Else
22588               l_sts_code := 'INCOMPLETE';
22589            End If;
22590 
22591            reset_contract_status
22592                (p_api_version   => p_api_version,
22593                 p_init_msg_list => p_init_msg_list,
22594                 x_return_status => x_return_status,
22595                 x_msg_count     => x_msg_count,
22596                 x_msg_data      => x_msg_data,
22597                 p_chr_id        => x_chr_id,
22598                 p_status        => l_sts_code,
22599                 p_cascade_lines => p_copy_lines_yn);
22600 
22601            If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
22602                raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22603            Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
22604                raise OKL_API.G_EXCEPTION_ERROR;
22605            End If;
22606 
22607            /*----Bug# 5591688 : Commenting as okl_quote_plans_pvt is stubbed in R12
22608            -- quotes are no longer copied using copy contract
22609            --call quote API for modification of plan structure
22610            OKL_QUOTE_PLANS_PVT.modify_quote_structure
22611                                    ( p_api_version         => p_api_version,
22612                                      p_init_msg_list       => p_init_msg_list,
22613                                      --Bug# 3143522
22614                                      p_transaction_control => OKL_API.G_FALSE,
22615                                      p_chr_id              => x_chr_id,
22616                                      p_modify_reason_code  => 'COPY_QUOTE',
22617                                      x_chr_id              => l_quote_chr_id,
22618                                      x_return_status       => x_return_status,
22619                                      x_msg_count           => x_msg_count,
22620                                      x_msg_data            => x_msg_data);
22621 
22622            If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
22623                raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
22624            Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
22625                raise OKL_API.G_EXCEPTION_ERROR;
22626            End If;
22627            ------------------------End of commented code----------*/
22628 
22629        End If;
22630    End If;
22631    Close l_scs_csr;
22632    -----------------------------------------------------------------------------
22633    --End of resetting the copied contract status to new
22634    -----------------------------------------------------------------------------
22635    --End Bug# 2555692
22636    OKL_API.END_ACTIVITY (x_msg_count,
22637                           x_msg_data );
22638   EXCEPTION
22639     WHEN OKL_API.G_EXCEPTION_ERROR THEN
22640     x_return_status := OKL_API.HANDLE_EXCEPTIONS(
22641                                l_api_name,
22642                                G_PKG_NAME,
22643                                'OKL_API.G_RET_STS_ERROR',
22644                                x_msg_count,
22645                                x_msg_data,
22646                                '_PVT');
22647     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
22648     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
22649                               l_api_name,
22650                               G_PKG_NAME,
22651                               'OKL_API.G_RET_STS_UNEXP_ERROR',
22652                               x_msg_count,
22653                               x_msg_data,
22654                               '_PVT');
22655     WHEN OTHERS THEN
22656     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
22657                               l_api_name,
22658                               G_PKG_NAME,
22659                               'OTHERS',
22660                               x_msg_count,
22661                               x_msg_data,
22662                               '_PVT');
22663   END copy_lease_contract;
22664 
22665 End okl_copy_contract_Pvt;