DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKE_KCOPY_PKG

Source


1 PACKAGE BODY OKE_KCOPY_PKG AS
2 /*$Header: OKEKCPYB.pls 120.6.12000000.2 2007/02/21 09:25:56 nnadahal ship $ */
3 
4      g_api_type		CONSTANT VARCHAR2(4) := '_PKG';
5      g_projh_overlap_allowed VARCHAR2(30);
6      g_pty_not_copied BOOLEAN;
7 
8     function    get_cimv_rec(p_cim_id in number,
9 		x_cimv_rec out nocopy cimv_rec_type,
10 		p_from_cle_id in number) return  varchar2 is
11 
12       l_return_status	        varchar2(1) := oke_api.g_ret_sts_success;
13       l_no_data_found 		boolean := true;
14       l_line_number		varchar2(150);
15 
16       cursor c_cimv_rec is
17       select	id,
18 		cle_id,
19 		chr_id,
20 		cle_id_for,
21 		dnz_chr_id,
22 		object1_id1,
23 		object1_id2,
24 		jtot_object1_code,
25 		uom_code,
26 		exception_yn,
27 		number_of_items,
28                 priced_item_yn
29 	from    okc_k_items_v
30 	where 	id = p_cim_id;
31 
32     begin
33 
34       open c_cimv_rec;
35       fetch c_cimv_rec
36       into	x_cimv_rec.id,
37 		x_cimv_rec.cle_id,
38 		x_cimv_rec.chr_id,
39 		x_cimv_rec.cle_id_for,
40 		x_cimv_rec.dnz_chr_id,
41 		x_cimv_rec.object1_id1,
42 		x_cimv_rec.object1_id2,
43 		x_cimv_rec.jtot_object1_code,
44 		x_cimv_rec.uom_code,
45 		x_cimv_rec.exception_yn,
46 		x_cimv_rec.number_of_items,
47 		x_cimv_rec.priced_item_yn;
48 
49 
50       l_no_data_found := c_cimv_rec%notfound;
51       close c_cimv_rec;
52       if l_no_data_found then
53         l_return_status := oke_api.g_ret_sts_error;
54         return(l_return_status);
55       else
56         return(l_return_status);
57       end if;
58     exception
59       when others then
60         -- store sql error message on message stack for caller
61 
62 	select line_number into l_line_number
63 	from oke_k_lines_v
64 	where k_line_id=p_from_cle_id;
65 	oke_api.set_message   (
66                 p_app_name              =>'OKE',
67                 p_msg_name              =>'OKE_KCOPY_ITEMS',
68                 p_token1                =>'LINE',
69                 p_token1_value          =>l_line_number);
70 
71         -- notify caller of an unexpected error
72         l_return_status := oke_api.g_ret_sts_unexp_error;
73         return(l_return_status);
74 
75     end get_cimv_rec;
76 
77 
78 
79 
80 procedure get_status( code out nocopy varchar2) is
81     l_sts_code varchar2(30);
82     cursor l_sts_csr is
83       select code
84       from okc_statuses_v
85       where ste_code = 'ENTERED'
86       and default_yn = 'Y'
87       and sysdate between start_date and nvl(end_date,sysdate);
88 begin
89 
90     	open l_sts_csr;
91     	fetch l_sts_csr into l_sts_code;
92     	close l_sts_csr;
93 	code := l_sts_code;
94   exception
95     when no_data_found then
96       if (l_sts_csr%isopen) then
97         close l_sts_csr;
98        end if;
99        code :='ENTERED';
100 
101 end get_status;
102 
103 
104 
105 
106   procedure copy_items(
107     p_api_version                  in number,
108     p_init_msg_list                in varchar2 default oke_api.g_false,
109     x_return_status                out nocopy varchar2,
110     x_msg_count                    out nocopy number,
111     x_msg_data                     out nocopy varchar2,
112     p_from_cle_id                  in number,
113     p_copy_reference               in varchar2 default 'COPY',
114     p_to_cle_id                    in number default oke_api.g_miss_num) is
115 
116     l_num number;
117 
118     l_cimv_rec 	cimv_rec_type;
119     x_cimv_rec 	cimv_rec_type;
120 
121     l_return_status	        varchar2(1) := oke_api.g_ret_sts_success;
122     l_dnz_chr_id		number := oke_api.g_miss_num;
123     l_price_level_ind   	varchar2(20);
124     l_item_name         	varchar2(2000);
125     l_item_desc         	varchar2(2000);
126     l_api_name		constant varchar2(30) := 'COPY_ITEMS';
127     l_api_version	constant number	  := 1.0;
128 
129     cursor c_dnz_chr_id is
130     select dnz_chr_id,price_level_ind
131     from okc_k_lines_b
132     where id = p_to_cle_id;
133 
134     cursor c_cimv is
135     select id
136     from okc_k_items
137     where cle_id = p_from_cle_id;
138 
139   begin
140     x_return_status := oke_api.g_ret_sts_success;
141     l_return_status := oke_api.start_activity(
142 			p_api_name      => l_api_name,
143 			p_pkg_name      => g_pkg_name,
144 			p_init_msg_list => p_init_msg_list,
145 			l_api_version   => l_api_version,
146 			p_api_version   => p_api_version,
147 			p_api_type      => g_api_type,
148 			x_return_status => x_return_status);
149 
150     -- check if activity started successfully
151     if (l_return_status = oke_api.g_ret_sts_unexp_error) then
152        raise oke_api.g_exception_unexpected_error;
153     elsif (l_return_status = oke_api.g_ret_sts_error) then
154        raise oke_api.g_exception_error;
155     end if;
156 
157 
158 
159 
160     open c_dnz_chr_id;
161     fetch c_dnz_chr_id into l_dnz_chr_id,l_price_level_ind;
162     close c_dnz_chr_id;
163 
164 
165     open c_cimv;
166     loop
167     fetch c_cimv into l_num;
168     exit when c_cimv%notfound;
169       l_return_status := get_cimv_rec(	p_cim_id 	=> l_num,
170 					x_cimv_rec 	=> l_cimv_rec,
171 					p_from_cle_id	=> p_from_cle_id);
172      if l_return_status= oke_api.g_ret_sts_success then
173 
174       l_cimv_rec.cle_id := p_to_cle_id;
175       l_cimv_rec.dnz_chr_id := l_dnz_chr_id;
176 	 if p_copy_reference = 'REFERENCE' then
177 	   l_cimv_rec.cle_id_for := p_from_cle_id;
178 	   l_cimv_rec.chr_id := null;
179 	 else
180 	   l_cimv_rec.cle_id_for := null;
181 	 end if;
182 
183 	 if l_price_level_ind = 'N' then
184         l_cimv_rec.priced_item_yn := 'N';
185 	 end if;
186 
187       okc_contract_item_pub.create_contract_item(
188 	      p_api_version	=> p_api_version,
189            p_init_msg_list	=> p_init_msg_list,
190            x_return_status 	=> l_return_status,
191            x_msg_count     	=> x_msg_count,
192            x_msg_data      	=> x_msg_data,
193            p_cimv_rec		=> l_cimv_rec,
194            x_cimv_rec		=> x_cimv_rec);
195 
196       if (l_return_status <> oke_api.g_ret_sts_success) then
197         if (l_return_status = oke_api.g_ret_sts_unexp_error) then
198           x_return_status := l_return_status;
199  		raise oke_api.g_exception_unexpected_error;
200         else
201              x_return_status := l_return_status;
202         end if;
203       end if;
204      end if;
205 
206     end loop;
207     close c_cimv;
208 
209    oke_api.end_activity(	x_msg_count	=> x_msg_count,
210 				x_msg_data	=> x_msg_data);
211   exception
212     when oke_api.g_exception_error then
213       x_return_status := oke_api.handle_exceptions(
214 			p_api_name  => l_api_name,
215 			p_pkg_name  => g_pkg_name,
216 			p_exc_name  => 'OKE_API.G_RET_STS_ERROR',
217 			x_msg_count => x_msg_count,
218 			x_msg_data  => x_msg_data,
219 			p_api_type  => g_api_type);
220 
221     when oke_api.g_exception_unexpected_error then
222       x_return_status := oke_api.handle_exceptions(
223 			p_api_name  => l_api_name,
224 			p_pkg_name  => g_pkg_name,
225 			p_exc_name  => 'OKE_API.G_RET_STS_UNEXP_ERROR',
226 			x_msg_count => x_msg_count,
227 			x_msg_data  => x_msg_data,
228 			p_api_type  => g_api_type);
229 
230     when others then
231       x_return_status := oke_api.handle_exceptions(
232 			p_api_name  => l_api_name,
233 			p_pkg_name  => g_pkg_name,
234 			p_exc_name  => 'OTHERS',
235 			x_msg_count => x_msg_count,
236 			x_msg_data  => x_msg_data,
237 			p_api_type  => g_api_type);
238 
239   end copy_items;
240 
241   -- copy the user attributes  (header)
242 
243   procedure copy_user_attributes( p_k_header_id     in number	,
244   				  p_k_header_id_new in number) is
245 
246      cursor oke_user_attributes_cur is
247        select *
248        from   oke_k_user_attributes
249        where  k_header_id = p_k_header_id
250        and    k_line_id is null;
251 
252      l_user_att_rec  		 oke_k_user_attributes%rowtype;
253      l_row_id	    		 varchar2(5000);
254      l_k_user_attribute_id	 oke_k_user_attributes.k_user_attribute_id%type;
255      l_record_version_number	 oke_k_user_attributes.record_version_number%type;
256 
257   begin
258 
259      open oke_user_attributes_cur;
260      loop
261 
262         fetch oke_user_attributes_cur into l_user_att_rec;
263         exit when oke_user_attributes_cur%notfound;
264 
265         oke_k_user_attributes_pkg.insert_row
266         (x_rowid				=>	l_row_id			,
267          x_k_user_attribute_id			=>	l_k_user_attribute_id		,
268          x_record_version_number		=>	l_record_version_number		,
269          x_creation_date			=>	sysdate				,
270          x_created_by				=>	fnd_global.user_id		,
271          x_last_update_date			=>	sysdate				,
272          x_last_updated_by			=>	fnd_global.user_id		,
273          x_last_update_login			=>	fnd_global.login_id		,
274          x_k_header_id				=>	p_k_header_id_new		,
275          x_k_line_id				=>	l_user_att_rec.k_line_id	,
276          x_user_attribute_context		=>	l_user_att_rec.user_attribute_context	,
277          x_user_attribute01			=>	l_user_att_rec.user_attribute01	,
278          x_user_attribute02			=>	l_user_att_rec.user_attribute02	,
279          x_user_attribute03			=>	l_user_att_rec.user_attribute03	,
280          x_user_attribute04			=>	l_user_att_rec.user_attribute04	,
281          x_user_attribute05			=>	l_user_att_rec.user_attribute05	,
282          x_user_attribute06			=>	l_user_att_rec.user_attribute06	,
283          x_user_attribute07			=>	l_user_att_rec.user_attribute07	,
284          x_user_attribute08			=>	l_user_att_rec.user_attribute08	,
285          x_user_attribute09			=>	l_user_att_rec.user_attribute09	,
286          x_user_attribute10			=>	l_user_att_rec.user_attribute10	,
287  	 x_user_attribute11			=>	l_user_att_rec.user_attribute11	,
288          x_user_attribute12			=>	l_user_att_rec.user_attribute12	,
289          x_user_attribute13			=>	l_user_att_rec.user_attribute13	,
290          x_user_attribute14			=>	l_user_att_rec.user_attribute14	,
291          x_user_attribute15			=>	l_user_att_rec.user_attribute15	,
292          x_user_attribute16			=>	l_user_att_rec.user_attribute16	,
293          x_user_attribute17			=>	l_user_att_rec.user_attribute17	,
294          x_user_attribute18			=>	l_user_att_rec.user_attribute18	,
295          x_user_attribute19			=>	l_user_att_rec.user_attribute19	,
296          x_user_attribute20			=>	l_user_att_rec.user_attribute20	,
297          x_user_attribute21			=>	l_user_att_rec.user_attribute21	,
298          x_user_attribute22			=>	l_user_att_rec.user_attribute22	,
299          x_user_attribute23			=>	l_user_att_rec.user_attribute23	,
300          x_user_attribute24			=>	l_user_att_rec.user_attribute24	,
301          x_user_attribute25			=>	l_user_att_rec.user_attribute25	,
302          x_user_attribute26			=>	l_user_att_rec.user_attribute26	,
303          x_user_attribute27			=>	l_user_att_rec.user_attribute27	,
304          x_user_attribute28			=>	l_user_att_rec.user_attribute28	,
305          x_user_attribute29			=>	l_user_att_rec.user_attribute29	,
306          x_user_attribute30			=>	l_user_att_rec.user_attribute30
307          );
308 
309       end loop;
310       close oke_user_attributes_cur;
311    end copy_user_attributes;
312 
313 
314   -- copy the user attributes  (line)
315 
316   procedure copy_user_attr_line( p_k_header_id 		in number	,
317   				 p_k_header_id_new	in number       ,
318   				 p_k_line_id		in number	,
319   				 p_k_line_id_new	in number       ) is
320      cursor oke_user_attributes_cur2 is
321        select *
322        from   oke_k_user_attributes
323        where  k_header_id = p_k_header_id
324        and    k_line_id = p_k_line_id;
325 
326      l_user_att_rec  		 oke_k_user_attributes%rowtype;
327      l_row_id	    		 varchar2(5000);
328      l_k_user_attribute_id	 oke_k_user_attributes.k_user_attribute_id%type;
329      l_record_version_number	 oke_k_user_attributes.record_version_number%type;
330 
331   begin
332 
333      open oke_user_attributes_cur2;
334      loop
335 
336         fetch oke_user_attributes_cur2 into l_user_att_rec;
337         exit when oke_user_attributes_cur2%notfound;
338 
339         oke_k_user_attributes_pkg.insert_row
340         (x_rowid				=>	l_row_id			,
341          x_k_user_attribute_id			=>	l_k_user_attribute_id		,
342          x_record_version_number		=>	l_record_version_number		,
343          x_creation_date			=>	sysdate				,
344          x_created_by				=>	fnd_global.user_id		,
345          x_last_update_date			=>	sysdate				,
346          x_last_updated_by			=>	fnd_global.user_id		,
347          x_last_update_login			=>	fnd_global.login_id		,
348          x_k_header_id				=>	p_k_header_id_new		,
349          x_k_line_id				=>	p_k_line_id_new			,
350          x_user_attribute_context		=>	l_user_att_rec.user_attribute_context	,
351          x_user_attribute01			=>	l_user_att_rec.user_attribute01	,
352          x_user_attribute02			=>	l_user_att_rec.user_attribute02	,
353          x_user_attribute03			=>	l_user_att_rec.user_attribute03	,
354          x_user_attribute04			=>	l_user_att_rec.user_attribute04	,
355          x_user_attribute05			=>	l_user_att_rec.user_attribute05	,
356          x_user_attribute06			=>	l_user_att_rec.user_attribute06	,
357          x_user_attribute07			=>	l_user_att_rec.user_attribute07	,
358          x_user_attribute08			=>	l_user_att_rec.user_attribute08	,
359          x_user_attribute09			=>	l_user_att_rec.user_attribute09	,
360          x_user_attribute10			=>	l_user_att_rec.user_attribute10	,
361  	 x_user_attribute11			=>	l_user_att_rec.user_attribute11	,
362          x_user_attribute12			=>	l_user_att_rec.user_attribute12	,
363          x_user_attribute13			=>	l_user_att_rec.user_attribute13	,
364          x_user_attribute14			=>	l_user_att_rec.user_attribute14	,
365          x_user_attribute15			=>	l_user_att_rec.user_attribute15	,
366          x_user_attribute16			=>	l_user_att_rec.user_attribute16	,
367          x_user_attribute17			=>	l_user_att_rec.user_attribute17	,
368          x_user_attribute18			=>	l_user_att_rec.user_attribute18	,
369          x_user_attribute19			=>	l_user_att_rec.user_attribute19	,
370          x_user_attribute20			=>	l_user_att_rec.user_attribute20	,
371          x_user_attribute21			=>	l_user_att_rec.user_attribute21	,
372          x_user_attribute22			=>	l_user_att_rec.user_attribute22	,
373          x_user_attribute23			=>	l_user_att_rec.user_attribute23	,
374          x_user_attribute24			=>	l_user_att_rec.user_attribute24	,
375          x_user_attribute25			=>	l_user_att_rec.user_attribute25	,
376          x_user_attribute26			=>	l_user_att_rec.user_attribute26	,
377          x_user_attribute27			=>	l_user_att_rec.user_attribute27	,
378          x_user_attribute28			=>	l_user_att_rec.user_attribute28	,
379          x_user_attribute29			=>	l_user_att_rec.user_attribute29	,
380          x_user_attribute30			=>	l_user_att_rec.user_attribute30
381          );
382 
383       end loop;
384       close oke_user_attributes_cur2;
385    end copy_user_attr_line;
386 
387 /*-------------------------------------------------------------------------
388  procedure get_oke_k_header_rec - get oke contract header information from
389 			 oke_k_headers
390 --------------------------------------------------------------------------*/
391 
392 procedure get_oke_k_header_rec(	p_k_header_id in number,
393 				x_chr_rec out nocopy oke_chr_pvt.chr_rec_type,
394 				x_result out nocopy varchar2) is
395 
396   cursor oke_chr_pk_csr is
397   select
398 	k_header_id,
399 	program_id,
400  	project_id,
401 	boa_id,
402         k_type_code,
403 	priority_code,
404 	prime_k_alias,
405 	prime_k_number,
406 	authorize_date,
407 	authorizing_reason,
408 	award_cancel_date,
409 	award_date,
410 	date_definitized,
411 	date_issued,
412 	date_negotiated,
413 	date_received,
414 	date_sign_by_contractor,
415 	date_sign_by_customer,
416 	faa_approve_date,
417 	faa_reject_date,
418 	booked_flag,
419 	open_flag,
420 	cfe_flag,
421 	vat_code,
422 	country_of_origin_code,
423 	export_flag,
424 	human_subject_flag,
425 	cqa_flag,
426 	interim_rpt_req_flag,
427 	no_competition_authorize,
428 	penalty_clause_flag,
429 	product_line_code,
430 	reporting_flag,
431 	sb_plan_req_flag,
432 	sb_report_flag,
433 	nte_amount,
434 	nte_warning_flag,
435 	bill_without_def_flag,
436 	cas_flag,
437 	classified_flag,
438 	client_approve_req_flag,
439 	cost_of_money,
440 	dcaa_audit_req_flag,
441 	cost_share_flag,
442 	oh_rates_final_flag,
443 	prop_delivery_location,
444 	prop_due_date_time,
445 	prop_expire_date,
446 	copies_required,
447 	sic_code,
448 	tech_data_wh_rate,
449 	progress_payment_flag,
450 	progress_payment_liq_rate,
451 	progress_payment_rate,
452 	alternate_liquidation_rate,
453 	prop_due_time,
454 	definitized_flag,
455 	financial_ctrl_verified_flag,
456 	cost_of_sale_rate,
457 	created_by,
458 	creation_date,
459 	last_updated_by,
460 	last_update_login,
461 	last_update_date,
462 --	line_value_total,
463 --	undef_line_value_total,
464 --	end_date,
465 	owning_organization_id,
466 	default_task_id
467 
468   from oke_k_headers
469   where k_header_id = p_k_header_id;
470 
471 
472 begin
473 
474   open oke_chr_pk_csr;
475   fetch oke_chr_pk_csr into
476 	x_chr_rec.k_header_id,
477 	x_chr_rec.program_id,
478  	x_chr_rec.project_id,
479 	x_chr_rec.boa_id,
480         x_chr_rec.k_type_code,
481 	x_chr_rec.priority_code,
482 	x_chr_rec.prime_k_alias,
483 	x_chr_rec.prime_k_number,
484 	x_chr_rec.authorize_date,
485 	x_chr_rec.authorizing_reason,
486 	x_chr_rec.award_cancel_date,
487 	x_chr_rec.award_date,
488 	x_chr_rec.date_definitized,
489 	x_chr_rec.date_issued,
490 	x_chr_rec.date_negotiated,
491 	x_chr_rec.date_received,
492 	x_chr_rec.date_sign_by_contractor,
493 	x_chr_rec.date_sign_by_customer,
494 	x_chr_rec.faa_approve_date,
495 	x_chr_rec.faa_reject_date,
496 	x_chr_rec.booked_flag,
497 	x_chr_rec.open_flag,
498 	x_chr_rec.cfe_flag,
499 	x_chr_rec.vat_code,
500 	x_chr_rec.country_of_origin_code,
501 	x_chr_rec.export_flag,
502 	x_chr_rec.human_subject_flag,
503 	x_chr_rec.cqa_flag,
504 	x_chr_rec.interim_rpt_req_flag,
505 	x_chr_rec.no_competition_authorize,
506 	x_chr_rec.penalty_clause_flag,
507 	x_chr_rec.product_line_code,
508 	x_chr_rec.reporting_flag,
509 	x_chr_rec.sb_plan_req_flag,
510 	x_chr_rec.sb_report_flag,
511 	x_chr_rec.nte_amount,
512 	x_chr_rec.nte_warning_flag,
513 	x_chr_rec.bill_without_def_flag,
514 	x_chr_rec.cas_flag,
515 	x_chr_rec.classified_flag,
516 	x_chr_rec.client_approve_req_flag,
517 	x_chr_rec.cost_of_money,
518 	x_chr_rec.dcaa_audit_req_flag,
519 	x_chr_rec.cost_share_flag,
520 	x_chr_rec.oh_rates_final_flag,
521 	x_chr_rec.prop_delivery_location,
522 	x_chr_rec.prop_due_date_time,
523 	x_chr_rec.prop_expire_date,
524 	x_chr_rec.copies_required,
525 	x_chr_rec.sic_code,
526 	x_chr_rec.tech_data_wh_rate,
527 	x_chr_rec.progress_payment_flag,
528 	x_chr_rec.progress_payment_liq_rate,
529 	x_chr_rec.progress_payment_rate,
530 	x_chr_rec.alternate_liquidation_rate,
531 	x_chr_rec.prop_due_time,
532 	x_chr_rec.definitized_flag,
533 	x_chr_rec.financial_ctrl_verified_flag,
534 	x_chr_rec.cost_of_sale_rate,
535 	x_chr_rec.created_by,
536 	x_chr_rec.creation_date,
537 	x_chr_rec.last_updated_by,
538 	x_chr_rec.last_update_login,
539 	x_chr_rec.last_update_date,
540 --	x_chr_rec.line_value_total,
541 --	x_chr_rec.undef_line_value_total,
542 --	x_chr_rec.end_date,
543 	x_chr_rec.owning_organization_id,
544 	x_chr_rec.default_task_id;
545 
546 
547   if oke_chr_pk_csr%notfound then
548 	x_result := oke_api.g_ret_sts_error;
549   end if;
550 
551   close oke_chr_pk_csr;
552 
553 
554 
555 end get_oke_k_header_rec;
556 
557 
558 /*-------------------------------------------------------------------------
559  procedure get_okc_k_header_rec - get okc contract header information from
560 			 okc_k_headers_v
561 --------------------------------------------------------------------------*/
562 procedure get_okc_k_header_rec(	p_k_header_id in number,
563 				x_chrv_rec out nocopy okc_chr_pvt.chrv_rec_type,
564 				x_result out nocopy varchar2) is
565 
566     cursor okc_chrv_pk_csr is
567     select
568             id,
569             object_version_number,
570             sfwt_flag,
571             chr_id_response,
572             chr_id_award,
573 --	    chr_id_renewed,
574 	    inv_organization_id,
575             sts_code,
576             qcl_id,
577             scs_code,
578             contract_number,
579             currency_code,
580             contract_number_modifier,
581             archived_yn,
582             deleted_yn,
583             cust_po_number_req_yn,
584             pre_pay_req_yn,
585             cust_po_number,
586             short_description,
587             comments,
588             description,
589             dpas_rating,
590             cognomen,
591             template_yn,
592             template_used,
593             date_approved,
594             datetime_cancelled,
595             auto_renew_days,
596             date_issued,
597             datetime_responded,
598             non_response_reason,
599             non_response_explain,
600             rfp_type,
601             chr_type,
602             keep_on_mail_list,
603             set_aside_reason,
604             set_aside_percent,
605             response_copies_req,
606             date_close_projected,
607             datetime_proposed,
608             date_signed,
609             date_terminated,
610             date_renewed,
611             trn_code,
612             start_date,
613             end_date,
614             authoring_org_id,
615             buy_or_sell,
616             issue_or_receive,
617 	    estimated_amount,
618 --            chr_id_renewed_to,
619             estimated_amount_renewed,
620             currency_code_renewed,
621 	    upg_orig_system_ref,
622 	    upg_orig_system_ref_id,
623             attribute_category,
624             attribute1,
625             attribute2,
626             attribute3,
627             attribute4,
628             attribute5,
629             attribute6,
630             attribute7,
631             attribute8,
632             attribute9,
633             attribute10,
634             attribute11,
635             attribute12,
636             attribute13,
637             attribute14,
638             attribute15,
639             created_by,
640             creation_date,
641             last_updated_by,
642             last_update_date,
643             last_update_login
644       from okc_k_headers_v
645      where okc_k_headers_v.id   = p_k_header_id;
646 
647 begin
648 
649     open okc_chrv_pk_csr;
650     fetch okc_chrv_pk_csr into
651               x_chrv_rec.id,
652               x_chrv_rec.object_version_number,
653               x_chrv_rec.sfwt_flag,
654               x_chrv_rec.chr_id_response,
655               x_chrv_rec.chr_id_award,
656 --	      x_chrv_rec.chr_id_renewed,
657 	      x_chrv_rec.inv_organization_id,
658               x_chrv_rec.sts_code,
659               x_chrv_rec.qcl_id,
660               x_chrv_rec.scs_code,
661               x_chrv_rec.contract_number,
662               x_chrv_rec.currency_code,
663               x_chrv_rec.contract_number_modifier,
664               x_chrv_rec.archived_yn,
665               x_chrv_rec.deleted_yn,
666               x_chrv_rec.cust_po_number_req_yn,
667               x_chrv_rec.pre_pay_req_yn,
668               x_chrv_rec.cust_po_number,
669               x_chrv_rec.short_description,
670               x_chrv_rec.comments,
671               x_chrv_rec.description,
672               x_chrv_rec.dpas_rating,
673               x_chrv_rec.cognomen,
674               x_chrv_rec.template_yn,
675               x_chrv_rec.template_used,
676               x_chrv_rec.date_approved,
677               x_chrv_rec.datetime_cancelled,
678               x_chrv_rec.auto_renew_days,
679               x_chrv_rec.date_issued,
680               x_chrv_rec.datetime_responded,
681               x_chrv_rec.non_response_reason,
682               x_chrv_rec.non_response_explain,
683               x_chrv_rec.rfp_type,
684               x_chrv_rec.chr_type,
685               x_chrv_rec.keep_on_mail_list,
686               x_chrv_rec.set_aside_reason,
687               x_chrv_rec.set_aside_percent,
688               x_chrv_rec.response_copies_req,
689               x_chrv_rec.date_close_projected,
690               x_chrv_rec.datetime_proposed,
691               x_chrv_rec.date_signed,
692               x_chrv_rec.date_terminated,
693               x_chrv_rec.date_renewed,
694               x_chrv_rec.trn_code,
695               x_chrv_rec.start_date,
696               x_chrv_rec.end_date,
697               x_chrv_rec.authoring_org_id,
698               x_chrv_rec.buy_or_sell,
699               x_chrv_rec.issue_or_receive,
700 	      x_chrv_rec.estimated_amount,
701 --              x_chrv_rec.chr_id_renewed_to,
702               x_chrv_rec.estimated_amount_renewed,
703               x_chrv_rec.currency_code_renewed,
704 	      x_chrv_rec.upg_orig_system_ref,
705 	      x_chrv_rec.upg_orig_system_ref_id,
706               x_chrv_rec.attribute_category,
707               x_chrv_rec.attribute1,
708               x_chrv_rec.attribute2,
709               x_chrv_rec.attribute3,
710               x_chrv_rec.attribute4,
711               x_chrv_rec.attribute5,
712               x_chrv_rec.attribute6,
713               x_chrv_rec.attribute7,
714               x_chrv_rec.attribute8,
715               x_chrv_rec.attribute9,
716               x_chrv_rec.attribute10,
717               x_chrv_rec.attribute11,
718               x_chrv_rec.attribute12,
719               x_chrv_rec.attribute13,
720               x_chrv_rec.attribute14,
721               x_chrv_rec.attribute15,
722               x_chrv_rec.created_by,
723               x_chrv_rec.creation_date,
724               x_chrv_rec.last_updated_by,
725               x_chrv_rec.last_update_date,
726               x_chrv_rec.last_update_login;
727 
728 
729   	if okc_chrv_pk_csr%notfound then
730 	x_result := oke_api.g_ret_sts_error;
731   	end if;
732 
733     close okc_chrv_pk_csr;
734 
735 end get_okc_k_header_rec;
736 
737 
738 
739 
740 /*---------------------------------------------------------------------------------------
741  procedure copy_header_party_roles
742 -----------------------------------------------------------------------------------------*/
743 
744 procedure copy_party_roles(p_api_version         in number,
745     			  p_init_msg_list       in varchar2,
746     			  x_return_status       out nocopy varchar2,
747     			  x_msg_count           out nocopy number,
748     			  x_msg_data            out nocopy varchar2,
749 			   f_k_header_id 	in number,  -- orig okc_k_headers_b.id
750 			   n_k_header_id 	in number,  -- new okc_k_headers_b.id
751 			   f_k_line_id 		in number,  -- orig okc_k_lines_b.id
752 			   n_k_line_id 		in number,  -- new okc_k_lines_b.id
753 			   p_k_header_id	in number   -- original header id, must provide, cannot be null
754 			  	) is
755 
756     x_pty_id	number;  -- new party id returned from api call
757     l_return_status	varchar2(1)		  := oke_api.g_ret_sts_success;
758     l_api_name		constant varchar2(30) := 'COPY_PARTY_ROLES';
759     l_api_version	constant number	  := 1.0;
760 
761 
762 -- declare party cursor refer to contract headers
763 cursor hdr_pty_csr is
764 	select  id,jtot_object1_code
765         from okc_k_party_roles_b
766         where okc_k_party_roles_b.dnz_chr_id = f_k_header_id
767 	and okc_k_party_roles_b.chr_id is not null
768 	and okc_k_party_roles_b.cle_id is null;
769 
770 -- declare party cursor refer to contract lines
771 cursor cle_pty_csr is
772 	select  id
773         from okc_k_party_roles_b
774         where okc_k_party_roles_b.cle_id = f_k_line_id
775 	and okc_k_party_roles_b.dnz_chr_id = p_k_header_id
776 	and okc_k_party_roles_b.chr_id is null;
777 
778 TYPE id_list_tbl_type  is table of number index by binary_integer;
779 id_list 	id_list_tbl_type;
780 i 		number;
781 sql_stmt 	varchar2(4000);
782 
783 begin
784     x_return_status := oke_api.g_ret_sts_success;                                 -- call start_activity to create savepoint, check compatibility
785     -- and initialize message list
786     l_return_status := oke_api.start_activity(
787 			p_api_name      => l_api_name,
788 			p_pkg_name      => g_pkg_name,
789 			p_init_msg_list => p_init_msg_list,
790 			l_api_version   => l_api_version,
791 			p_api_version   => p_api_version,
792 			p_api_type      => g_api_type,
793 			x_return_status => x_return_status);
794 
795     -- check if activity started successfully
796     if (l_return_status = oke_api.g_ret_sts_unexp_error) then
797        raise oke_api.g_exception_unexpected_error;
798     elsif (l_return_status = oke_api.g_ret_sts_error) then
799        raise oke_api.g_exception_error;
800     end if;
801 -- bug 4388335
802 OKE_GLOBALS.Set_Globals
803 ( p_k_header_id => n_k_header_id
804 );
805 
806     i:=0;
807 
808    if f_k_line_id is null then   -- copy party_roles for contract header
809     	FOR pty IN hdr_pty_csr LOOP
810 
811 		sql_stmt := OKC_UTIL.GET_SQL_FROM_JTFV(pty.jtot_object1_code);
812 
813 		IF INSTR(UPPER(sql_stmt),'OKE_GLOBALS.K_HEADER_ID') = 0 THEN
814 		-- copy contract party_roles
815 
816 		    OKC_COPY_CONTRACT_PUB.copy_party_roles(
817 			p_api_version		=> p_api_version,
818 			p_init_msg_list		=> p_init_msg_list,
819 			x_return_status 	=> l_return_status,
820 			x_msg_count     	=> x_msg_count,
821 			x_msg_data      	=> x_msg_data,
822       			p_cpl_id		=> pty.id,
823 			p_cle_id		=> null,
824       			p_chr_id		=> n_k_header_id,
825       			p_rle_code		=> null,
826 			x_cpl_id		=> x_pty_id);
827 
828       If l_return_status <> OKE_API.G_RET_STS_SUCCESS THEN
829         g_pty_not_copied := TRUE;
830  		  End If;
831 
832 		ELSE
833 			i:=i+1;
834 			id_list(i) := pty.id;
835 		END IF;
836     	   END LOOP;
837 
838 	   FOR j in 1..i LOOP
839 
840 		    OKC_COPY_CONTRACT_PUB.copy_party_roles(
841 			p_api_version		=> p_api_version,
842 			p_init_msg_list		=> p_init_msg_list,
843 			x_return_status 	=> l_return_status,
844 			x_msg_count     	=> x_msg_count,
845 			x_msg_data      	=> x_msg_data,
846       			p_cpl_id		=> id_list(j),
847 			p_cle_id		=> null,
848       			p_chr_id		=> n_k_header_id,
849       			p_rle_code		=> null,
850 			x_cpl_id		=> x_pty_id);
851 
852       If l_return_status <> OKE_API.G_RET_STS_SUCCESS THEN
853         g_pty_not_copied := TRUE;
854  		  End If;
855 
856 	     END LOOP;
857 
858    ELSIF f_k_header_id is null THEN  -- copy party_roles for contract line
859        FOR pty IN cle_pty_csr LOOP
860 
861 		-- Copy line party_roles
862 		OKC_COPY_CONTRACT_PUB.copy_party_roles(
863 			p_api_version		=> p_api_version,
864 			p_init_msg_list		=> p_init_msg_list,
865 			x_return_status 	=> l_return_status,
866 			x_msg_count     	=> x_msg_count,
867 			x_msg_data      	=> x_msg_data,
868       			p_cpl_id		=> pty.id,
869 			p_cle_id		=> n_k_line_id,
870       			p_chr_id		=> null,
871       			p_rle_code		=> null,
872 			x_cpl_id		=> x_pty_id);
873 
874       If l_return_status <> OKE_API.G_RET_STS_SUCCESS THEN
875         g_pty_not_copied := TRUE;
876  		  End If;
877 
878       	END LOOP;
879    END IF;
880 
881    OKE_API.END_ACTIVITY(	x_msg_count	=> x_msg_count,
882 				x_msg_data	=> x_msg_data);
883   EXCEPTION
884     when OKE_API.G_EXCEPTION_ERROR then
885       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
886 			p_api_name  => l_api_name,
887 			p_pkg_name  => g_pkg_name,
888 			p_exc_name  => 'OKE_API.G_RET_STS_ERROR',
889 			x_msg_count => x_msg_count,
890 			x_msg_data  => x_msg_data,
891 			p_api_type  => g_api_type);
892 
893     when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
894       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
895 			p_api_name  => l_api_name,
896 			p_pkg_name  => g_pkg_name,
897 			p_exc_name  => 'OKE_API.G_RET_STS_UNEXP_ERROR',
898 			x_msg_count => x_msg_count,
899 			x_msg_data  => x_msg_data,
900 			p_api_type  => g_api_type);
901 
902     when OTHERS then
903       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
904 			p_api_name  => l_api_name,
905 			p_pkg_name  => g_pkg_name,
906 			p_exc_name  => 'OTHERS',
907 			x_msg_count => x_msg_count,
908 			x_msg_data  => x_msg_data,
909 			p_api_type  => g_api_type);
910 
911 end copy_party_roles;
912 
913 /*---------------------------------------------------------------------------------------
914  PROCEDURE COPY_ARTICLES
915 -----------------------------------------------------------------------------------------*/
916 
917 PROCEDURE copy_articles(p_api_version         IN NUMBER,
918     			  p_init_msg_list       IN VARCHAR2,
919     			  x_return_status       OUT NOCOPY VARCHAR2,
920     			  x_msg_count           OUT NOCOPY NUMBER,
921     			  x_msg_data            OUT NOCOPY VARCHAR2,
922 			f_k_header_id 	IN NUMBER,  -- Orig OKC_K_HEADERS_B.id
923 			n_k_header_id 	IN NUMBER,  -- New OKC_K_HEADERS_B.id
924 			f_k_line_id 	IN NUMBER,  -- Orig OKC_K_LINES_B.id
925 			n_k_line_id 	IN NUMBER   -- New OKC_K_LINES_B.id
926 		  	) IS
927 
928 l_cat_id	NUMBER;	 -- Old ARTICLE ID
929 x_cat_id	NUMBER;  -- New ARTICLE ID
930     l_return_status	VARCHAR2(1)		  := OKE_API.G_RET_STS_SUCCESS;
931     l_api_name		CONSTANT VARCHAR2(30) := 'COPY_ARTICLES';
932     l_api_version	CONSTANT NUMBER	  := 1.0;
933 
934 
935 -- DECLARE ARTICLE cursor refer to contract headers
936 CURSOR hdr_art_csr IS
937 	SELECT  ID
938         FROM OKC_K_ARTICLES_B
939         WHERE OKC_K_ARTICLES_B.DNZ_CHR_ID = f_k_header_id
940 	AND OKC_K_ARTICLES_B.CHR_ID is not null
941 	AND OKC_K_ARTICLES_B.CLE_ID is null;
942 
943 -- DECLARE ARTICLE cursor refer to contract lines
944 CURSOR cle_art_csr IS
945 	SELECT  ID
946         FROM OKC_K_ARTICLES_B
947         WHERE OKC_K_ARTICLES_B.CLE_ID = f_k_line_id
948 	AND OKC_K_ARTICLES_B.CHR_ID is null;
949 
950     CURSOR c_sav_sae_id(p_cat_id IN NUMBER) IS
951     SELECT sav_sae_id
952     FROM okc_k_articles_b
953     WHERE id = p_cat_id;
954 
955     CURSOR c_latest_version(p_sae_id IN NUMBER) IS
956     SELECT sav_release
957     FROM okc_std_art_versions_v
958     WHERE sae_id = p_sae_id
959        AND date_active = (SELECT max(date_active)
960                             FROM okc_std_art_versions_v
961                             WHERE sae_id = p_sae_id);
962 
963     l_sae_id			   NUMBER;
964     l_sav_release              	   VARCHAR2(150);
965 
966 BEGIN
967     x_return_status := OKE_API.G_RET_STS_SUCCESS;
968     -- call START_ACTIVITY to create savepoint, check compatibility
969     -- and initialize message list
970     l_return_status := OKE_API.START_ACTIVITY(
971 			p_api_name      => l_api_name,
972 			p_pkg_name      => g_pkg_name,
973 			p_init_msg_list => p_init_msg_list,
974 			l_api_version   => l_api_version,
975 			p_api_version   => p_api_version,
976 			p_api_type      => g_api_type,
977 			x_return_status => x_return_status);
978 
979     -- check if activity started successfully
980     If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
981        raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
982     Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
983        raise OKE_API.G_EXCEPTION_ERROR;
984     End If;
985 
986 
987     IF f_k_line_id is null THEN   -- copy articles for contract header
988     	OPEN hdr_art_csr;
989     	   LOOP
990 
991     	        FETCH hdr_art_csr INTO 	l_cat_id;
992 
993      	        EXIT WHEN hdr_art_csr%NOTFOUND;
994 
995 
996 		-- Copy articles
997 
998 	    	OPEN c_sav_sae_id(l_cat_id);
999     		FETCH c_sav_sae_id INTO l_sae_id;
1000     		CLOSE c_sav_sae_id;
1001 
1002     		OPEN c_latest_version(l_sae_id);
1003     		FETCH c_latest_version INTO l_sav_release;
1004     		CLOSE c_latest_version;
1005 
1006 		OKC_COPY_CONTRACT_PUB.copy_articles(
1007 			p_api_version		=> p_api_version,
1008 			p_init_msg_list		=> p_init_msg_list,
1009 			x_return_status 	=> x_return_status,
1010 			x_msg_count     	=> x_msg_count,
1011 			x_msg_data      	=> x_msg_data,
1012       			p_cat_id		=> l_cat_id,
1013 			p_cle_id		=> null,
1014       			p_chr_id		=> n_k_header_id,
1015 			p_sav_sav_release	=> l_sav_release,
1016 			x_cat_id		=> x_cat_id);
1017 
1018 		If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
1019           		raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1020     		Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
1021           		raise OKE_API.G_EXCEPTION_ERROR;
1022     		End If;
1023 
1024 
1025     	   END LOOP;
1026         CLOSE hdr_art_csr;
1027 
1028    ELSIF f_k_header_id is null THEN
1029        OPEN cle_art_csr;
1030     	  LOOP
1031 
1032     		FETCH cle_art_csr INTO 	l_cat_id;
1033 
1034      	  	EXIT WHEN cle_art_csr%NOTFOUND;
1035 
1036 
1037 		-- Copy contract line articles
1038 
1039 	    	OPEN c_sav_sae_id(l_cat_id);
1040     		FETCH c_sav_sae_id INTO l_sae_id;
1041     		CLOSE c_sav_sae_id;
1042 
1043     		OPEN c_latest_version(l_sae_id);
1044     		FETCH c_latest_version INTO l_sav_release;
1045     		CLOSE c_latest_version;
1046 
1047 		OKC_COPY_CONTRACT_PUB.copy_articles(
1048 			p_api_version		=> p_api_version,
1049 			p_init_msg_list		=> p_init_msg_list,
1050 			x_return_status 	=> x_return_status,
1051 			x_msg_count     	=> x_msg_count,
1052 			x_msg_data      	=> x_msg_data,
1053       			p_cat_id		=> l_cat_id,
1054 			p_cle_id		=> n_k_line_id,
1055       			p_chr_id		=> null,
1056 			p_sav_sav_release	=> l_sav_release,
1057 			x_cat_id		=> x_cat_id);
1058 
1059 		If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
1060           		raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1061     		Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
1062           		raise OKE_API.G_EXCEPTION_ERROR;
1063     		End If;
1064 
1065       	END LOOP;
1066       CLOSE cle_art_csr;
1067    END IF;
1068 
1069    OKE_API.END_ACTIVITY(	x_msg_count	=> x_msg_count,
1070 				x_msg_data	=> x_msg_data);
1071   EXCEPTION
1072     when OKE_API.G_EXCEPTION_ERROR then
1073       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
1074 			p_api_name  => l_api_name,
1075 			p_pkg_name  => g_pkg_name,
1076 			p_exc_name  => 'OKE_API.G_RET_STS_ERROR',
1077 			x_msg_count => x_msg_count,
1078 			x_msg_data  => x_msg_data,
1079 			p_api_type  => g_api_type);
1080 
1081     when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
1082       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
1083 			p_api_name  => l_api_name,
1084 			p_pkg_name  => g_pkg_name,
1085 			p_exc_name  => 'OKE_API.G_RET_STS_UNEXP_ERROR',
1086 			x_msg_count => x_msg_count,
1087 			x_msg_data  => x_msg_data,
1088 			p_api_type  => g_api_type);
1089 
1090     when OTHERS then
1091       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
1092 			p_api_name  => l_api_name,
1093 			p_pkg_name  => g_pkg_name,
1094 			p_exc_name  => 'OTHERS',
1095 			x_msg_count => x_msg_count,
1096 			x_msg_data  => x_msg_data,
1097 			p_api_type  => g_api_type);
1098 
1099 end copy_articles;
1100 
1101 
1102 
1103 
1104 
1105 FUNCTION line_has_children(p_k_line_id		IN NUMBER)
1106 
1107 RETURN VARCHAR2 IS
1108 
1109 l_dummy		VARCHAR2(1) := '?';
1110 
1111 CURSOR l_csr IS
1112 SELECT 'x'
1113 FROM okc_k_lines_v
1114 WHERE CLE_ID = p_k_line_id;
1115 
1116 BEGIN
1117 	OPEN l_csr;
1118 	FETCH l_csr INTO l_dummy;
1119 	CLOSE l_csr;
1120 	IF l_dummy='?' THEN RETURN 'N';
1121 	ELSE RETURN 'Y';
1122 	END IF;
1123 END line_has_children;
1124 
1125 
1126 
1127 
1128 
1129 
1130 PROCEDURE copy_sub_lines(p_api_version         IN NUMBER,
1131     			  p_init_msg_list       IN VARCHAR2,
1132     			  x_return_status       OUT NOCOPY VARCHAR2,
1133     			  x_msg_count           OUT NOCOPY NUMBER,
1134     			  x_msg_data            OUT NOCOPY VARCHAR2,
1135 			  f_k_header_id 	IN NUMBER,
1136 		    	  n_k_header_id 	IN NUMBER,
1137 		          l_copy_parties	IN VARCHAR2,
1138 		          l_copy_tncs		IN VARCHAR2,
1139 		          l_copy_articles	IN VARCHAR2,
1140 		          l_copy_standard_notes	IN VARCHAR2,
1141 			  l_copy_items		IN VARCHAR2,
1142 			  l_copy_user_att	IN VARCHAR2,
1143                           p_copy_projecttask_yn IN VARCHAR2,
1144 			  f_k_line_id		IN NUMBER,
1145 			  n_k_line_id		IN NUMBER,
1146 			  start_date		IN DATE,
1147 			  end_date		IN DATE) IS
1148 
1149 
1150     l_api_name		CONSTANT VARCHAR2(30) := 'COPY_SUB_LINES';
1151     l_api_version	CONSTANT NUMBER	  := 1.0;
1152 
1153     l_cle_rec		OKE_CLE_PVT.cle_rec_type;
1154     l_clev_rec		OKC_CLE_PVT.clev_rec_type;
1155 
1156     l_orig_header_id    NUMBER;
1157 
1158     x_cle_rec		OKE_CLE_PVT.cle_rec_type;
1159     x_clev_rec		OKC_CLE_PVT.clev_rec_type;
1160 
1161     iter_from_line_id	NUMBER;
1162     iter_to_line_id	NUMBER;
1163     l_return_status	VARCHAR2(1)		  := OKE_API.G_RET_STS_SUCCESS;
1164 
1165     -- DECLARE OKE cursor for sub-lines
1166 
1167     	CURSOR sub_line_csr IS
1168     	SELECT
1169 		b.K_LINE_ID			,
1170 		b.PARENT_LINE_ID		,
1171 		b.PROJECT_ID			,
1172 		b.TASK_ID			,
1173 		b.BILLING_METHOD_CODE		,
1174 		b.INVENTORY_ITEM_ID		,
1175 		b.DELIVERY_ORDER_FLAG		,
1176 	        b.SPLITED_FLAG			,
1177 		b.PRIORITY_CODE			,
1178 		b.CUSTOMER_ITEM_ID		,
1179 		b.CUSTOMER_ITEM_NUMBER		,
1180 		b.LINE_QUANTITY			,
1181 		b.DELIVERY_DATE			,
1182 		b.UNIT_PRICE			,
1183 		b.UOM_CODE			,
1184 		b.LINE_VALUE			,
1185 --		b.LINE_VALUE_TOTAL		,
1186 		b.UNDEF_UNIT_PRICE		,
1187 		b.UNDEF_LINE_VALUE		,
1188 --		b.UNDEF_LINE_VALUE_TOTAL	,
1189 		b.END_DATE			,
1190 		b.BILLABLE_FLAG			,
1191 		b.SHIPPABLE_FLAG		,
1192 		b.SUBCONTRACTED_FLAG		,
1193 		b.COMPLETED_FLAG		,
1194 		b.NSP_FLAG			,
1195 		b.APP_CODE			,
1196 		b.AS_OF_DATE			,
1197 		b.AUTHORITY			,
1198 		b.COUNTRY_OF_ORIGIN_CODE	,
1199 		b.DROP_SHIPPED_FLAG		,
1200 		b.CUSTOMER_APPROVAL_REQ_FLAG	,
1201 		b.DATE_MATERIAL_REQ		,
1202 		b.INSPECTION_REQ_FLAG		,
1203 		b.INTERIM_RPT_REQ_FLAG		,
1204 		b.SUBJ_A133_FLAG		,
1205 		b.EXPORT_FLAG			,
1206 		b.CFE_REQ_FLAG			,
1207 		b.COP_REQUIRED_FLAG		,
1208 		b.EXPORT_LICENSE_NUM		,
1209 		b.EXPORT_LICENSE_RES		,
1210 		b.COPIES_REQUIRED		,
1211 		b.CDRL_CATEGORY			,
1212 		b.DATA_ITEM_NAME		,
1213 		b.DATA_ITEM_SUBTITLE		,
1214 		b.DATE_OF_FIRST_SUBMISSION	,
1215 		b.FREQUENCY			,
1216 		b.REQUIRING_OFFICE		,
1217 		b.DCAA_AUDIT_REQ_FLAG		,
1218 		b.DEFINITIZED_FLAG		,
1219 		b.COST_OF_MONEY			,
1220 		b.BILL_UNDEFINITIZED_FLAG	,
1221 		b.NSN_NUMBER			,
1222 		b.NTE_WARNING_FLAG		,
1223 		b.DISCOUNT_FOR_PAYMENT		,
1224 		b.FINANCIAL_CTRL_FLAG		,
1225 		b.C_SCS_FLAG			,
1226 		b.C_SSR_FLAG			,
1227 		b.PREPAYMENT_AMOUNT		,
1228 		b.PREPAYMENT_PERCENTAGE		,
1229 		b.PROGRESS_PAYMENT_FLAG		,
1230 		b.PROGRESS_PAYMENT_LIQ_RATE	,
1231 		b.PROGRESS_PAYMENT_RATE		,
1232 		b.AWARD_FEE			,
1233 		b.AWARD_FEE_POOL_AMOUNT		,
1234 		b.BASE_FEE			,
1235 		b.CEILING_COST			,
1236 		b.CEILING_PRICE			,
1237 		b.COST_OVERRUN_SHARE_RATIO	,
1238 		b.COST_UNDERRUN_SHARE_RATIO	,
1239 		b.LABOR_COST_INDEX		,
1240 		b.MATERIAL_COST_INDEX		,
1241 		b.CUSTOMERS_PERCENT_IN_ORDER	,
1242 		b.DATE_OF_PRICE_REDETERMIN	,
1243 		b.ESTIMATED_TOTAL_QUANTITY	,
1244 		b.FEE_AJT_FORMULA		,
1245 		b.FINAL_FEE			,
1246 		b.FINAL_PFT_AJT_FORMULA		,
1247 		b.FIXED_FEE			,
1248 		b.FIXED_QUANTITY		,
1249 		b.INITIAL_FEE			,
1250 		b.INITIAL_PRICE			,
1251 		b.LEVEL_OF_EFFORT_HOURS		,
1252 		b.LINE_LIQUIDATION_RATE		,
1253 		b.MAXIMUM_FEE			,
1254 		b.MAXIMUM_QUANTITY		,
1255 		b.MINIMUM_FEE			,
1256 		b.MINIMUM_QUANTITY		,
1257 		b.NUMBER_OF_OPTIONS		,
1258 		b.REVISED_PRICE			,
1259 		b.TARGET_COST			,
1260 		b.TARGET_DATE_DEFINITIZE	,
1261 		b.TARGET_FEE			,
1262 		b.TARGET_PRICE			,
1263 		b.TOTAL_ESTIMATED_COST		,
1264 		b.PROPOSAL_DUE_DATE		,
1265 		b.COST_OF_SALE_RATE		,
1266 		b.CREATED_BY			,
1267 		b.CREATION_DATE			,
1268 		b.LAST_UPDATED_BY		,
1269 		b.LAST_UPDATE_LOGIN		,
1270 		b.LAST_UPDATE_DATE		,
1271 
1272 
1273             a.ID,
1274             a.OBJECT_VERSION_NUMBER,
1275             a.SFWT_FLAG,
1276             a.CHR_ID,
1277             a.CLE_ID,
1278             a.LSE_ID,
1279             a.LINE_NUMBER,
1280             a.STS_CODE,
1281             a.DISPLAY_SEQUENCE,
1282             a.TRN_CODE,
1283             a.DNZ_CHR_ID,
1284             a.COMMENTS,
1285             a.ITEM_DESCRIPTION,
1286             a.HIDDEN_IND,
1287 	    a.PRICE_UNIT,
1288 	    a.PRICE_UNIT_PERCENT,
1289             a.PRICE_NEGOTIATED,
1290 	    a.PRICE_NEGOTIATED_RENEWED,
1291             a.PRICE_LEVEL_IND,
1292             a.INVOICE_LINE_LEVEL_IND,
1293             a.DPAS_RATING,
1294             a.BLOCK23TEXT,
1295             a.EXCEPTION_YN,
1296             a.TEMPLATE_USED,
1297             a.DATE_TERMINATED,
1298             a.NAME,
1299             a.START_DATE,
1300             a.END_DATE,
1301             a.UPG_ORIG_SYSTEM_REF,
1302             a.UPG_ORIG_SYSTEM_REF_ID,
1303             a.ATTRIBUTE_CATEGORY,
1304             a.ATTRIBUTE1,
1305             a.ATTRIBUTE2,
1306             a.ATTRIBUTE3,
1307             a.ATTRIBUTE4,
1308             a.ATTRIBUTE5,
1309             a.ATTRIBUTE6,
1310             a.ATTRIBUTE7,
1311             a.ATTRIBUTE8,
1312             a.ATTRIBUTE9,
1313             a.ATTRIBUTE10,
1314             a.ATTRIBUTE11,
1315             a.ATTRIBUTE12,
1316             a.ATTRIBUTE13,
1317             a.ATTRIBUTE14,
1318             a.ATTRIBUTE15,
1319             a.CREATED_BY,
1320             a.CREATION_DATE,
1321             a.LAST_UPDATED_BY,
1322             a.LAST_UPDATE_DATE,
1323             a.PRICE_TYPE,
1324             a.CURRENCY_CODE,
1325 	    a.CURRENCY_CODE_RENEWED,
1326             a.LAST_UPDATE_LOGIN
1327 
1328 
1329       FROM okc_K_Lines_V a, oke_k_lines b
1330       WHERE a.cle_id = f_k_line_id AND a.id=b.k_line_id;
1331 
1332 
1333  BEGIN
1334     x_return_status := OKE_API.G_RET_STS_SUCCESS;                                 -- call START_ACTIVITY to create savepoint, check compatibility
1335     -- and initialize message list
1336     l_return_status := OKE_API.START_ACTIVITY(
1337 			p_api_name      => l_api_name,
1338 			p_pkg_name      => g_pkg_name,
1339 			p_init_msg_list => p_init_msg_list,
1340 			l_api_version   => l_api_version,
1341 			p_api_version   => p_api_version,
1342 			p_api_type      => g_api_type,
1343 			x_return_status => x_return_status);
1344 
1345     -- check if activity started successfully
1346     If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
1347        raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1348     Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
1349        raise OKE_API.G_EXCEPTION_ERROR;
1350     End If;
1351 
1352     OPEN sub_line_csr;
1353 
1354     LOOP
1355     -- Get current database values from OKC side
1356     	FETCH sub_line_csr INTO
1357 		l_cle_rec.K_LINE_ID			,
1358 		l_cle_rec.PARENT_LINE_ID		,
1359 		l_cle_rec.PROJECT_ID			,
1360 		l_cle_rec.TASK_ID			,
1361 		l_cle_rec.BILLING_METHOD_CODE		,
1362 		l_cle_rec.INVENTORY_ITEM_ID		,
1363 		l_cle_rec.DELIVERY_ORDER_FLAG		,
1364                 l_cle_rec.SPLITED_FLAG			,
1365 		l_cle_rec.PRIORITY_CODE			,
1366 		l_cle_rec.CUSTOMER_ITEM_ID		,
1367 		l_cle_rec.CUSTOMER_ITEM_NUMBER		,
1368 		l_cle_rec.LINE_QUANTITY			,
1369 		l_cle_rec.DELIVERY_DATE			,
1370 		l_cle_rec.UNIT_PRICE			,
1371 		l_cle_rec.UOM_CODE			,
1372 		l_cle_rec.LINE_VALUE			,
1373 --		l_cle_rec.LINE_VALUE_TOTAL		,
1374 		l_cle_rec.UNDEF_UNIT_PRICE		,
1375 		l_cle_rec.UNDEF_LINE_VALUE		,
1376 --		l_cle_rec.UNDEF_LINE_VALUE_TOTAL	,
1377 		l_cle_rec.END_DATE			,
1378 		l_cle_rec.BILLABLE_FLAG			,
1379 		l_cle_rec.SHIPPABLE_FLAG		,
1380 		l_cle_rec.SUBCONTRACTED_FLAG		,
1381 		l_cle_rec.COMPLETED_FLAG		,
1382 		l_cle_rec.NSP_FLAG			,
1383 		l_cle_rec.APP_CODE			,
1384 		l_cle_rec.AS_OF_DATE			,
1385 		l_cle_rec.AUTHORITY			,
1386 		l_cle_rec.COUNTRY_OF_ORIGIN_CODE	,
1387 		l_cle_rec.DROP_SHIPPED_FLAG		,
1388 		l_cle_rec.CUSTOMER_APPROVAL_REQ_FLAG	,
1389 		l_cle_rec.DATE_MATERIAL_REQ		,
1390 		l_cle_rec.INSPECTION_REQ_FLAG		,
1391 		l_cle_rec.INTERIM_RPT_REQ_FLAG		,
1392 		l_cle_rec.SUBJ_A133_FLAG		,
1393 		l_cle_rec.EXPORT_FLAG			,
1394 		l_cle_rec.CFE_REQ_FLAG			,
1395 		l_cle_rec.COP_REQUIRED_FLAG		,
1396 		l_cle_rec.EXPORT_LICENSE_NUM		,
1397 		l_cle_rec.EXPORT_LICENSE_RES		,
1398 		l_cle_rec.COPIES_REQUIRED		,
1399 		l_cle_rec.CDRL_CATEGORY			,
1400 		l_cle_rec.DATA_ITEM_NAME		,
1401 		l_cle_rec.DATA_ITEM_SUBTITLE		,
1402 		l_cle_rec.DATE_OF_FIRST_SUBMISSION	,
1403 		l_cle_rec.FREQUENCY			,
1404 		l_cle_rec.REQUIRING_OFFICE		,
1405 		l_cle_rec.DCAA_AUDIT_REQ_FLAG		,
1406 		l_cle_rec.DEFINITIZED_FLAG		,
1407 		l_cle_rec.COST_OF_MONEY			,
1408 		l_cle_rec.BILL_UNDEFINITIZED_FLAG	,
1409 		l_cle_rec.NSN_NUMBER			,
1410 		l_cle_rec.NTE_WARNING_FLAG		,
1411 		l_cle_rec.DISCOUNT_FOR_PAYMENT		,
1412 		l_cle_rec.FINANCIAL_CTRL_FLAG		,
1413 		l_cle_rec.C_SCS_FLAG			,
1414 		l_cle_rec.C_SSR_FLAG			,
1415 		l_cle_rec.PREPAYMENT_AMOUNT		,
1416 		l_cle_rec.PREPAYMENT_PERCENTAGE		,
1417 		l_cle_rec.PROGRESS_PAYMENT_FLAG		,
1418 		l_cle_rec.PROGRESS_PAYMENT_LIQ_RATE	,
1419 		l_cle_rec.PROGRESS_PAYMENT_RATE		,
1420 		l_cle_rec.AWARD_FEE			,
1421 		l_cle_rec.AWARD_FEE_POOL_AMOUNT		,
1422 		l_cle_rec.BASE_FEE			,
1423 		l_cle_rec.CEILING_COST			,
1424 		l_cle_rec.CEILING_PRICE			,
1425 		l_cle_rec.COST_OVERRUN_SHARE_RATIO	,
1426 		l_cle_rec.COST_UNDERRUN_SHARE_RATIO	,
1427 		l_cle_rec.LABOR_COST_INDEX		,
1428 		l_cle_rec.MATERIAL_COST_INDEX		,
1429 		l_cle_rec.CUSTOMERS_PERCENT_IN_ORDER	,
1430 		l_cle_rec.DATE_OF_PRICE_REDETERMIN	,
1431 		l_cle_rec.ESTIMATED_TOTAL_QUANTITY	,
1432 		l_cle_rec.FEE_AJT_FORMULA		,
1433 		l_cle_rec.FINAL_FEE			,
1434 		l_cle_rec.FINAL_PFT_AJT_FORMULA		,
1435 		l_cle_rec.FIXED_FEE			,
1436 		l_cle_rec.FIXED_QUANTITY		,
1437 		l_cle_rec.INITIAL_FEE			,
1438 		l_cle_rec.INITIAL_PRICE			,
1439 		l_cle_rec.LEVEL_OF_EFFORT_HOURS		,
1440 		l_cle_rec.LINE_LIQUIDATION_RATE		,
1441 		l_cle_rec.MAXIMUM_FEE			,
1442 		l_cle_rec.MAXIMUM_QUANTITY		,
1443 		l_cle_rec.MINIMUM_FEE			,
1444 		l_cle_rec.MINIMUM_QUANTITY		,
1445 		l_cle_rec.NUMBER_OF_OPTIONS		,
1446 		l_cle_rec.REVISED_PRICE			,
1447 		l_cle_rec.TARGET_COST			,
1448 		l_cle_rec.TARGET_DATE_DEFINITIZE	,
1449 		l_cle_rec.TARGET_FEE			,
1450 		l_cle_rec.TARGET_PRICE			,
1451 		l_cle_rec.TOTAL_ESTIMATED_COST		,
1452 		l_cle_rec.PROPOSAL_DUE_DATE		,
1453 		l_cle_rec.COST_OF_SALE_RATE		,
1454 		l_cle_rec.CREATED_BY			,
1455 		l_cle_rec.CREATION_DATE			,
1456 		l_cle_rec.LAST_UPDATED_BY		,
1457 		l_cle_rec.LAST_UPDATE_LOGIN		,
1458 		l_cle_rec.LAST_UPDATE_DATE		,
1459 
1460               l_clev_rec.ID,
1461               l_clev_rec.OBJECT_VERSION_NUMBER,
1462               l_clev_rec.SFWT_FLAG,
1463               l_clev_rec.CHR_ID,
1464               l_clev_rec.CLE_ID,
1465               l_clev_rec.LSE_ID,
1466               l_clev_rec.LINE_NUMBER,
1467               l_clev_rec.STS_CODE,
1468               l_clev_rec.DISPLAY_SEQUENCE,
1469               l_clev_rec.TRN_CODE,
1470               l_clev_rec.DNZ_CHR_ID,
1471               l_clev_rec.COMMENTS,
1472               l_clev_rec.ITEM_DESCRIPTION,
1473               l_clev_rec.HIDDEN_IND,
1474 	      l_clev_rec.PRICE_UNIT,
1475 	      l_clev_rec.PRICE_UNIT_PERCENT,
1476               l_clev_rec.PRICE_NEGOTIATED,
1477 	      l_clev_rec.PRICE_NEGOTIATED_RENEWED,
1478               l_clev_rec.PRICE_LEVEL_IND,
1479               l_clev_rec.INVOICE_LINE_LEVEL_IND,
1480               l_clev_rec.DPAS_RATING,
1481               l_clev_rec.BLOCK23TEXT,
1482               l_clev_rec.EXCEPTION_YN,
1483               l_clev_rec.TEMPLATE_USED,
1484               l_clev_rec.DATE_TERMINATED,
1485               l_clev_rec.NAME,
1486               l_clev_rec.START_DATE,
1487               l_clev_rec.END_DATE,
1488               l_clev_rec.UPG_ORIG_SYSTEM_REF,
1489               l_clev_rec.UPG_ORIG_SYSTEM_REF_ID,
1490               l_clev_rec.ATTRIBUTE_CATEGORY,
1491               l_clev_rec.ATTRIBUTE1,
1492               l_clev_rec.ATTRIBUTE2,
1493               l_clev_rec.ATTRIBUTE3,
1494               l_clev_rec.ATTRIBUTE4,
1495               l_clev_rec.ATTRIBUTE5,
1496               l_clev_rec.ATTRIBUTE6,
1497               l_clev_rec.ATTRIBUTE7,
1498               l_clev_rec.ATTRIBUTE8,
1499               l_clev_rec.ATTRIBUTE9,
1500               l_clev_rec.ATTRIBUTE10,
1501               l_clev_rec.ATTRIBUTE11,
1502               l_clev_rec.ATTRIBUTE12,
1503               l_clev_rec.ATTRIBUTE13,
1504               l_clev_rec.ATTRIBUTE14,
1505               l_clev_rec.ATTRIBUTE15,
1506               l_clev_rec.CREATED_BY,
1507               l_clev_rec.CREATION_DATE,
1508               l_clev_rec.LAST_UPDATED_BY,
1509               l_clev_rec.LAST_UPDATE_DATE,
1510               l_clev_rec.PRICE_TYPE,
1511               l_clev_rec.CURRENCY_CODE,
1512 	      l_clev_rec.CURRENCY_CODE_RENEWED,
1513               l_clev_rec.LAST_UPDATE_LOGIN;
1514 
1515      	   EXIT WHEN sub_line_csr%NOTFOUND;
1516 
1517 
1518 
1519         l_orig_header_id := l_clev_rec.dnz_chr_id;
1520 
1521 
1522 
1523 	l_clev_rec.cle_id :=  n_k_line_id;
1524 	l_cle_rec.PARENT_LINE_ID:=n_k_line_id;
1525 	l_clev_rec.dnz_chr_id := n_k_header_id;
1526 --	l_clev_rec.sts_code := 'ENTERED';
1527 --	l_clev_rec.sts_code :=null;
1528 	get_status(l_clev_rec.sts_code);
1529 
1530 
1531 
1532 
1533 	l_clev_rec.template_used := NULL;
1534 --	l_cle_rec.billing_method_code := NULL;
1535 	l_clev_rec.start_date := start_date;
1536 	l_clev_rec.end_date := end_date;
1537 
1538        --bug#5680084
1539         IF trunc(start_date) > trunc(l_cle_rec.END_DATE) THEN
1540            l_cle_rec.end_date := NULL;
1541         END IF;
1542        --bug#5680084
1543 
1544 l_cle_rec.DELIVERY_DATE :=null;
1545 l_cle_rec.AS_OF_DATE := null;
1546 l_cle_rec.DATE_MATERIAL_REQ := null;
1547 l_cle_rec.DATE_OF_FIRST_SUBMISSION :=null;
1548 l_cle_rec.DATE_OF_PRICE_REDETERMIN :=null;
1549 l_cle_rec.TARGET_DATE_DEFINITIZE:=null;
1550 l_cle_rec.PROPOSAL_DUE_DATE :=null;
1551 If g_proj_copy_allowed ='N' then
1552    l_cle_rec.PROJECT_ID := null;
1553    l_cle_rec.TASK_ID := null;
1554 end if;
1555 
1556 l_clev_rec.DATE_TERMINATED :=null;
1557 
1558 
1559 	-- Create contract lines
1560 
1561 		OKE_CONTRACT_PUB.create_contract_line(
1562 			p_api_version		=> p_api_version,
1563 			p_init_msg_list		=> p_init_msg_list,
1564 			x_return_status 	=> x_return_status,
1565 			x_msg_count     	=> x_msg_count,
1566 			x_msg_data      	=> x_msg_data,
1567       			p_cle_rec		=> l_cle_rec,
1568 			p_clev_rec		=> l_clev_rec,
1569       			x_cle_rec		=> x_cle_rec,
1570 			x_clev_rec		=> x_clev_rec);
1571 
1572 		If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
1573           		raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1574     		Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
1575           		raise OKE_API.G_EXCEPTION_ERROR;
1576     		End If;
1577 
1578 
1579 
1580 	iter_to_line_id := x_cle_rec.k_line_id;
1581 	iter_from_line_id := l_cle_rec.k_line_id;
1582 
1583 
1584 	IF l_copy_items = 'Y' THEN
1585 		copy_items
1586 		(
1587 		p_api_version     	=>	p_api_version,
1588     		p_init_msg_list     	=>	p_init_msg_list,
1589     		x_return_status      	=>	x_return_status,
1590     		x_msg_count         	=>     	x_msg_count,
1591    		x_msg_data              => 	x_msg_data,
1592     		p_from_cle_id     	=> 	iter_from_line_id,
1593     		p_to_cle_id 		=>	iter_to_line_id
1594 		);
1595 
1596 		If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
1597           		raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1598     		Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
1599           		raise OKE_API.G_EXCEPTION_ERROR;
1600     		End If;
1601 	END IF;
1602 
1603         -- copy user attributes (lines)
1604         IF l_copy_user_att = 'Y' then
1605            copy_user_attr_line (p_k_header_id 	  =>	 f_k_header_id  	 ,
1606                                 p_k_header_id_new =>     n_k_header_id 		 ,
1607                                 p_k_line_id       =>  	 l_cle_rec.k_line_id	 ,
1608                                 p_k_line_id_new   =>     x_cle_rec.k_line_id     );
1609         END IF;
1610 
1611 	IF line_has_children(l_clev_rec.id)='Y' THEN
1612 
1613 	copy_sub_lines(p_api_version         ,
1614     			  p_init_msg_list    ,
1615     			  x_return_status    ,
1616     			  x_msg_count        ,
1617     			  x_msg_data         ,
1618 			  f_k_header_id      ,
1619 		    	  n_k_header_id	     ,
1620 		          l_copy_parties     ,
1621 		          l_copy_tncs        ,
1622 		          l_copy_articles    ,
1623 		          l_copy_standard_notes,
1624 			  l_copy_items,
1625 			  l_copy_user_att,
1626                           p_copy_projecttask_yn,
1627 			  iter_from_line_id  ,
1628 			  iter_to_line_id ,
1629 			  start_date	,
1630 			  end_date      );
1631 
1632 		If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
1633           		raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1634     		Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
1635           		raise OKE_API.G_EXCEPTION_ERROR;
1636     		End If;
1637 
1638 	END IF;
1639 
1640 
1641     IF l_copy_parties = 'Y' then
1642 	copy_party_roles( p_api_version      	,
1643     			  p_init_msg_list    	,
1644     			  x_return_status 	,
1645     			  x_msg_count    	,
1646     			  x_msg_data         	,
1647 			  null			,
1648 			  null			,
1649 			  l_cle_rec.k_line_id	,
1650 			  x_cle_rec.k_line_id	,
1651 			  l_orig_header_id );
1652  		If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
1653           		raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1654     		Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
1655           		raise OKE_API.G_EXCEPTION_ERROR;
1656     		End If;
1657 
1658   END IF;
1659 
1660    IF l_copy_articles = 'Y' then
1661 	copy_articles(	p_api_version		,
1662     			p_init_msg_list		,
1663     			x_return_status		,
1664     			x_msg_count		,
1665     			x_msg_data		,
1666 			null			,
1667 			null			,
1668 			l_cle_rec.k_line_id	,
1669 			x_cle_rec.k_line_id	);
1670 		If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
1671           		raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1672     		Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
1673           		raise OKE_API.G_EXCEPTION_ERROR;
1674     		End If;
1675 
1676    END IF;
1677 
1678 
1679    IF l_copy_tncs = 'Y' then
1680    -- Copy Terms for Contract Header
1681 
1682       OKE_TERMS_PUB.copy_term(
1683 		p_api_version		=> p_api_version,
1684 		p_init_msg_list		=> p_init_msg_list,
1685 		x_return_status 	=> x_return_status,
1686 		x_msg_count     	=> x_msg_count,
1687 		x_msg_data      	=> x_msg_data,
1688     		p_from_level		=> 'L',
1689     		p_to_level		=> 'L',
1690     		p_from_chr_id		=> null,
1691     		p_to_chr_id		=> n_k_header_id,
1692     		p_from_cle_id		=> l_cle_rec.k_line_id,
1693     		p_to_cle_id		=> x_cle_rec.k_line_id
1694     );
1695 
1696 		If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
1697           		raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1698     		Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
1699           		raise OKE_API.G_EXCEPTION_ERROR;
1700     		End If;
1701 
1702    END IF;
1703 
1704    IF l_copy_standard_notes = 'Y' then
1705    -- Copy Standard Notes
1706       OKE_STANDARD_NOTES_PUB.copy_standard_note(
1707 		p_api_version		=> p_api_version,
1708 		p_init_msg_list		=> p_init_msg_list,
1709 		x_return_status 	=> x_return_status,
1710 		x_msg_count     	=> x_msg_count,
1711 		x_msg_data      	=> x_msg_data,
1712       		p_from_hdr_id		=> null,
1713     		p_to_hdr_id	 	=> n_k_header_id,
1714     		p_from_cle_id		=> l_cle_rec.k_line_id,
1715     		p_to_cle_id		=> x_cle_rec.k_line_id,
1716     		p_from_del_id		=> null,
1717     		p_to_del_id		=> null,
1718 		default_flag		=> 'N'
1719      );
1720 		If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
1721           		raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1722     		Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
1723           		raise OKE_API.G_EXCEPTION_ERROR;
1724     		End If;
1725 
1726    END IF;
1727 
1728 
1729   END LOOP;
1730     CLOSE sub_line_csr;
1731 
1732    OKE_API.END_ACTIVITY(	x_msg_count	=> x_msg_count,
1733 				x_msg_data	=> x_msg_data);
1734   EXCEPTION
1735     when OKE_API.G_EXCEPTION_ERROR then
1736       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
1737 			p_api_name  => l_api_name,
1738 			p_pkg_name  => g_pkg_name,
1739 			p_exc_name  => 'OKE_API.G_RET_STS_ERROR',
1740 			x_msg_count => x_msg_count,
1741 			x_msg_data  => x_msg_data,
1742 			p_api_type  => g_api_type);
1743 
1744     when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
1745       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
1746 			p_api_name  => l_api_name,
1747 			p_pkg_name  => g_pkg_name,
1748 			p_exc_name  => 'OKE_API.G_RET_STS_UNEXP_ERROR',
1749 			x_msg_count => x_msg_count,
1750 			x_msg_data  => x_msg_data,
1751 			p_api_type  => g_api_type);
1752 
1753     when OTHERS then
1754       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
1755 			p_api_name  => l_api_name,
1756 			p_pkg_name  => g_pkg_name,
1757 			p_exc_name  => 'OTHERS',
1758 			x_msg_count => x_msg_count,
1759 			x_msg_data  => x_msg_data,
1760 			p_api_type  => g_api_type);
1761 
1762 END copy_sub_lines;
1763 
1764 
1765 
1766 /*-------------------------------------------------------------------------
1767  PROCEDURE get_k_lines_rec - get OKE and OKC contract line information from
1768 			 oke_k_lines, okc_k_lines_v
1769 --------------------------------------------------------------------------*/
1770 
1771 PROCEDURE copy_contract_lines(p_api_version         IN NUMBER,
1772     			  p_init_msg_list       IN VARCHAR2,
1773     			  x_return_status       OUT NOCOPY VARCHAR2,
1774     			  x_msg_count           OUT NOCOPY NUMBER,
1775     			  x_msg_data            OUT NOCOPY VARCHAR2,
1776 			  f_k_header_id 	IN NUMBER,
1777 		    	  n_k_header_id 	IN NUMBER,
1778 		          l_copy_parties	IN VARCHAR2,
1779 		          l_copy_tncs		IN VARCHAR2,
1780 		          l_copy_articles	IN VARCHAR2,
1781 		          l_copy_standard_notes	IN VARCHAR2,
1782 			  l_copy_items		IN VARCHAR2,
1783 			  l_copy_user_att	IN VARCHAR2,
1784                           p_copy_projecttask_yn IN VARCHAR2,
1785 			  start_date		IN DATE,
1786 			  end_date		IN DATE  ) IS
1787 
1788     l_api_name		CONSTANT VARCHAR2(30) := 'COPY_CONTRACT_LINES';
1789     l_api_version	CONSTANT NUMBER	  := 1.0;
1790 
1791     l_cle_rec		OKE_CLE_PVT.cle_rec_type;
1792     l_clev_rec		OKC_CLE_PVT.clev_rec_type;
1793 
1794     x_cle_rec		OKE_CLE_PVT.cle_rec_type;
1795     x_clev_rec		OKC_CLE_PVT.clev_rec_type;
1796 
1797     iter_from_line_id	NUMBER;
1798     iter_to_line_id	NUMBER;
1799     l_return_status	VARCHAR2(1)		  := OKE_API.G_RET_STS_SUCCESS;
1800 
1801     l_orig_header_id    NUMBER;
1802 
1803 
1804     -- DECLARE OKE cursor for top-lines
1805 
1806     	CURSOR top_line_csr IS
1807     	SELECT
1808 		b.K_LINE_ID			,
1809 		b.PARENT_LINE_ID		,
1810 		b.PROJECT_ID			,
1811 		b.TASK_ID			,
1812 		b.BILLING_METHOD_CODE		,
1813 		b.INVENTORY_ITEM_ID		,
1814 		b.DELIVERY_ORDER_FLAG		,
1815 	        b.SPLITED_FLAG			,
1816 		b.PRIORITY_CODE			,
1817 		b.CUSTOMER_ITEM_ID		,
1818 		b.CUSTOMER_ITEM_NUMBER		,
1819 		b.LINE_QUANTITY			,
1820 		b.DELIVERY_DATE			,
1821 		b.UNIT_PRICE			,
1822 		b.UOM_CODE			,
1823 		b.LINE_VALUE			,
1824 --		b.LINE_VALUE_TOTAL		,
1825 		b.UNDEF_UNIT_PRICE		,
1826 		b.UNDEF_LINE_VALUE		,
1827 --		b.UNDEF_LINE_VALUE_TOTAL	,
1828 		b.END_DATE			,
1829 		b.BILLABLE_FLAG			,
1830 		b.SHIPPABLE_FLAG		,
1831 		b.SUBCONTRACTED_FLAG		,
1832 		b.COMPLETED_FLAG		,
1833 		b.NSP_FLAG			,
1834 		b.APP_CODE			,
1835 		b.AS_OF_DATE			,
1836 		b.AUTHORITY			,
1837 		b.COUNTRY_OF_ORIGIN_CODE	,
1838 		b.DROP_SHIPPED_FLAG		,
1839 		b.CUSTOMER_APPROVAL_REQ_FLAG	,
1840 		b.DATE_MATERIAL_REQ		,
1841 		b.INSPECTION_REQ_FLAG		,
1842 		b.INTERIM_RPT_REQ_FLAG		,
1843 		b.SUBJ_A133_FLAG		,
1844 		b.EXPORT_FLAG			,
1845 		b.CFE_REQ_FLAG			,
1846 		b.COP_REQUIRED_FLAG		,
1847 		b.EXPORT_LICENSE_NUM		,
1848 		b.EXPORT_LICENSE_RES		,
1849 		b.COPIES_REQUIRED		,
1850 		b.CDRL_CATEGORY			,
1851 		b.DATA_ITEM_NAME		,
1852 		b.DATA_ITEM_SUBTITLE		,
1853 		b.DATE_OF_FIRST_SUBMISSION	,
1854 		b.FREQUENCY			,
1855 		b.REQUIRING_OFFICE		,
1856 		b.DCAA_AUDIT_REQ_FLAG		,
1857 		b.DEFINITIZED_FLAG		,
1858 		b.COST_OF_MONEY			,
1859 		b.BILL_UNDEFINITIZED_FLAG	,
1860 		b.NSN_NUMBER			,
1861 		b.NTE_WARNING_FLAG		,
1862 		b.DISCOUNT_FOR_PAYMENT		,
1863 		b.FINANCIAL_CTRL_FLAG		,
1864 		b.C_SCS_FLAG			,
1865 		b.C_SSR_FLAG			,
1866 		b.PREPAYMENT_AMOUNT		,
1867 		b.PREPAYMENT_PERCENTAGE		,
1868 		b.PROGRESS_PAYMENT_FLAG		,
1869 		b.PROGRESS_PAYMENT_LIQ_RATE	,
1870 		b.PROGRESS_PAYMENT_RATE		,
1871 		b.AWARD_FEE			,
1872 		b.AWARD_FEE_POOL_AMOUNT		,
1873 		b.BASE_FEE			,
1874 		b.CEILING_COST			,
1875 		b.CEILING_PRICE			,
1876 		b.COST_OVERRUN_SHARE_RATIO	,
1877 		b.COST_UNDERRUN_SHARE_RATIO	,
1878 		b.LABOR_COST_INDEX		,
1879 		b.MATERIAL_COST_INDEX		,
1880 		b.CUSTOMERS_PERCENT_IN_ORDER	,
1881 		b.DATE_OF_PRICE_REDETERMIN	,
1882 		b.ESTIMATED_TOTAL_QUANTITY	,
1883 		b.FEE_AJT_FORMULA		,
1884 		b.FINAL_FEE			,
1885 		b.FINAL_PFT_AJT_FORMULA		,
1886 		b.FIXED_FEE			,
1887 		b.FIXED_QUANTITY		,
1888 		b.INITIAL_FEE			,
1889 		b.INITIAL_PRICE			,
1890 		b.LEVEL_OF_EFFORT_HOURS		,
1891 		b.LINE_LIQUIDATION_RATE		,
1892 		b.MAXIMUM_FEE			,
1893 		b.MAXIMUM_QUANTITY		,
1894 		b.MINIMUM_FEE			,
1895 		b.MINIMUM_QUANTITY		,
1896 		b.NUMBER_OF_OPTIONS		,
1897 		b.REVISED_PRICE			,
1898 		b.TARGET_COST			,
1899 		b.TARGET_DATE_DEFINITIZE	,
1900 		b.TARGET_FEE			,
1901 		b.TARGET_PRICE			,
1902 		b.TOTAL_ESTIMATED_COST		,
1903 		b.PROPOSAL_DUE_DATE		,
1904 		b.COST_OF_SALE_RATE		,
1905 		b.CREATED_BY			,
1906 		b.CREATION_DATE			,
1907 		b.LAST_UPDATED_BY		,
1908 		b.LAST_UPDATE_LOGIN		,
1909 		b.LAST_UPDATE_DATE		,
1910 
1911 
1912             a.ID,
1913             a.OBJECT_VERSION_NUMBER,
1914             a.SFWT_FLAG,
1915             a.CHR_ID,
1916             a.CLE_ID,
1917             a.LSE_ID,
1918             a.LINE_NUMBER,
1919             a.STS_CODE,
1920             a.DISPLAY_SEQUENCE,
1921             a.TRN_CODE,
1922             a.DNZ_CHR_ID,
1923             a.COMMENTS,
1924             a.ITEM_DESCRIPTION,
1925             a.HIDDEN_IND,
1926 	    a.PRICE_UNIT,
1927 	    a.PRICE_UNIT_PERCENT,
1928             a.PRICE_NEGOTIATED,
1929 	    a.PRICE_NEGOTIATED_RENEWED,
1930             a.PRICE_LEVEL_IND,
1931             a.INVOICE_LINE_LEVEL_IND,
1932             a.DPAS_RATING,
1933             a.BLOCK23TEXT,
1934             a.EXCEPTION_YN,
1935             a.TEMPLATE_USED,
1936             a.DATE_TERMINATED,
1937             a.NAME,
1938             a.START_DATE,
1939             a.END_DATE,
1940             a.UPG_ORIG_SYSTEM_REF,
1941             a.UPG_ORIG_SYSTEM_REF_ID,
1942             a.ATTRIBUTE_CATEGORY,
1943             a.ATTRIBUTE1,
1944             a.ATTRIBUTE2,
1945             a.ATTRIBUTE3,
1946             a.ATTRIBUTE4,
1947             a.ATTRIBUTE5,
1948             a.ATTRIBUTE6,
1949             a.ATTRIBUTE7,
1950             a.ATTRIBUTE8,
1951             a.ATTRIBUTE9,
1952             a.ATTRIBUTE10,
1953             a.ATTRIBUTE11,
1954             a.ATTRIBUTE12,
1955             a.ATTRIBUTE13,
1956             a.ATTRIBUTE14,
1957             a.ATTRIBUTE15,
1958             a.CREATED_BY,
1959             a.CREATION_DATE,
1960             a.LAST_UPDATED_BY,
1961             a.LAST_UPDATE_DATE,
1962             a.PRICE_TYPE,
1963             a.CURRENCY_CODE,
1964 	    a.CURRENCY_CODE_RENEWED,
1965             a.LAST_UPDATE_LOGIN
1966 
1967 
1968       FROM okc_K_Lines_V a, oke_k_lines b
1969       WHERE a.chr_id = f_k_header_id AND a.id=b.k_line_id;
1970 
1971 
1972  BEGIN
1973     x_return_status := OKE_API.G_RET_STS_SUCCESS;                                 -- call START_ACTIVITY to create savepoint, check compatibility
1974     -- and initialize message list
1975     l_return_status := OKE_API.START_ACTIVITY(
1976 			p_api_name      => l_api_name,
1977 			p_pkg_name      => g_pkg_name,
1978 			p_init_msg_list => p_init_msg_list,
1979 			l_api_version   => l_api_version,
1980 			p_api_version   => p_api_version,
1981 			p_api_type      => g_api_type,
1982 			x_return_status => x_return_status);
1983 
1984     -- check if activity started successfully
1985     If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
1986        raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1987     Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
1988        raise OKE_API.G_EXCEPTION_ERROR;
1989     End If;
1990 
1991 
1992     OPEN top_line_csr;
1993 
1994     LOOP
1995     -- Get current database values from OKC side
1996 
1997     	FETCH top_line_csr INTO
1998 		l_cle_rec.K_LINE_ID			,
1999 		l_cle_rec.PARENT_LINE_ID		,
2000 		l_cle_rec.PROJECT_ID			,
2001 		l_cle_rec.TASK_ID			,
2002 		l_cle_rec.BILLING_METHOD_CODE		,
2003 		l_cle_rec.INVENTORY_ITEM_ID		,
2004 		l_cle_rec.DELIVERY_ORDER_FLAG		,
2005                 l_cle_rec.SPLITED_FLAG			,
2006 		l_cle_rec.PRIORITY_CODE			,
2007 		l_cle_rec.CUSTOMER_ITEM_ID		,
2008 		l_cle_rec.CUSTOMER_ITEM_NUMBER		,
2009 		l_cle_rec.LINE_QUANTITY			,
2010 		l_cle_rec.DELIVERY_DATE			,
2011 		l_cle_rec.UNIT_PRICE			,
2012 		l_cle_rec.UOM_CODE			,
2013 		l_cle_rec.LINE_VALUE			,
2014 --		l_cle_rec.LINE_VALUE_TOTAL		,
2015 		l_cle_rec.UNDEF_UNIT_PRICE		,
2016 		l_cle_rec.UNDEF_LINE_VALUE		,
2017 --		l_cle_rec.UNDEF_LINE_VALUE_TOTAL	,
2018 		l_cle_rec.END_DATE			,
2019 		l_cle_rec.BILLABLE_FLAG			,
2020 		l_cle_rec.SHIPPABLE_FLAG		,
2021 		l_cle_rec.SUBCONTRACTED_FLAG		,
2022 		l_cle_rec.COMPLETED_FLAG		,
2023 		l_cle_rec.NSP_FLAG			,
2024 		l_cle_rec.APP_CODE			,
2025 		l_cle_rec.AS_OF_DATE			,
2026 		l_cle_rec.AUTHORITY			,
2027 		l_cle_rec.COUNTRY_OF_ORIGIN_CODE	,
2028 		l_cle_rec.DROP_SHIPPED_FLAG		,
2029 		l_cle_rec.CUSTOMER_APPROVAL_REQ_FLAG	,
2030 		l_cle_rec.DATE_MATERIAL_REQ		,
2031 		l_cle_rec.INSPECTION_REQ_FLAG		,
2032 		l_cle_rec.INTERIM_RPT_REQ_FLAG		,
2033 		l_cle_rec.SUBJ_A133_FLAG		,
2034 		l_cle_rec.EXPORT_FLAG			,
2035 		l_cle_rec.CFE_REQ_FLAG			,
2036 		l_cle_rec.COP_REQUIRED_FLAG		,
2037 		l_cle_rec.EXPORT_LICENSE_NUM		,
2038 		l_cle_rec.EXPORT_LICENSE_RES		,
2039 		l_cle_rec.COPIES_REQUIRED		,
2040 		l_cle_rec.CDRL_CATEGORY			,
2041 		l_cle_rec.DATA_ITEM_NAME		,
2042 		l_cle_rec.DATA_ITEM_SUBTITLE		,
2043 		l_cle_rec.DATE_OF_FIRST_SUBMISSION	,
2044 		l_cle_rec.FREQUENCY			,
2045 		l_cle_rec.REQUIRING_OFFICE		,
2046 		l_cle_rec.DCAA_AUDIT_REQ_FLAG		,
2047 		l_cle_rec.DEFINITIZED_FLAG		,
2048 		l_cle_rec.COST_OF_MONEY			,
2049 		l_cle_rec.BILL_UNDEFINITIZED_FLAG	,
2050 		l_cle_rec.NSN_NUMBER			,
2051 		l_cle_rec.NTE_WARNING_FLAG		,
2052 		l_cle_rec.DISCOUNT_FOR_PAYMENT		,
2053 		l_cle_rec.FINANCIAL_CTRL_FLAG		,
2054 		l_cle_rec.C_SCS_FLAG			,
2055 		l_cle_rec.C_SSR_FLAG			,
2056 		l_cle_rec.PREPAYMENT_AMOUNT		,
2057 		l_cle_rec.PREPAYMENT_PERCENTAGE		,
2058 		l_cle_rec.PROGRESS_PAYMENT_FLAG		,
2059 		l_cle_rec.PROGRESS_PAYMENT_LIQ_RATE	,
2060 		l_cle_rec.PROGRESS_PAYMENT_RATE		,
2061 		l_cle_rec.AWARD_FEE			,
2062 		l_cle_rec.AWARD_FEE_POOL_AMOUNT		,
2063 		l_cle_rec.BASE_FEE			,
2064 		l_cle_rec.CEILING_COST			,
2065 		l_cle_rec.CEILING_PRICE			,
2066 		l_cle_rec.COST_OVERRUN_SHARE_RATIO	,
2067 		l_cle_rec.COST_UNDERRUN_SHARE_RATIO	,
2068 		l_cle_rec.LABOR_COST_INDEX		,
2069 		l_cle_rec.MATERIAL_COST_INDEX		,
2070 		l_cle_rec.CUSTOMERS_PERCENT_IN_ORDER	,
2071 		l_cle_rec.DATE_OF_PRICE_REDETERMIN	,
2072 		l_cle_rec.ESTIMATED_TOTAL_QUANTITY	,
2073 		l_cle_rec.FEE_AJT_FORMULA		,
2074 		l_cle_rec.FINAL_FEE			,
2075 		l_cle_rec.FINAL_PFT_AJT_FORMULA		,
2076 		l_cle_rec.FIXED_FEE			,
2077 		l_cle_rec.FIXED_QUANTITY		,
2078 		l_cle_rec.INITIAL_FEE			,
2079 		l_cle_rec.INITIAL_PRICE			,
2080 		l_cle_rec.LEVEL_OF_EFFORT_HOURS		,
2081 		l_cle_rec.LINE_LIQUIDATION_RATE		,
2082 		l_cle_rec.MAXIMUM_FEE			,
2083 		l_cle_rec.MAXIMUM_QUANTITY		,
2084 		l_cle_rec.MINIMUM_FEE			,
2085 		l_cle_rec.MINIMUM_QUANTITY		,
2086 		l_cle_rec.NUMBER_OF_OPTIONS		,
2087 		l_cle_rec.REVISED_PRICE			,
2088 		l_cle_rec.TARGET_COST			,
2089 		l_cle_rec.TARGET_DATE_DEFINITIZE	,
2090 		l_cle_rec.TARGET_FEE			,
2091 		l_cle_rec.TARGET_PRICE			,
2092 		l_cle_rec.TOTAL_ESTIMATED_COST		,
2093 		l_cle_rec.PROPOSAL_DUE_DATE		,
2094 		l_cle_rec.COST_OF_SALE_RATE		,
2095 		l_cle_rec.CREATED_BY			,
2096 		l_cle_rec.CREATION_DATE			,
2097 		l_cle_rec.LAST_UPDATED_BY		,
2098 		l_cle_rec.LAST_UPDATE_LOGIN		,
2099 		l_cle_rec.LAST_UPDATE_DATE		,
2100 
2101               l_clev_rec.ID,
2102               l_clev_rec.OBJECT_VERSION_NUMBER,
2103               l_clev_rec.SFWT_FLAG,
2104               l_clev_rec.CHR_ID,
2105               l_clev_rec.CLE_ID,
2106               l_clev_rec.LSE_ID,
2107               l_clev_rec.LINE_NUMBER,
2108               l_clev_rec.STS_CODE,
2109               l_clev_rec.DISPLAY_SEQUENCE,
2110               l_clev_rec.TRN_CODE,
2111               l_clev_rec.DNZ_CHR_ID,
2112               l_clev_rec.COMMENTS,
2113               l_clev_rec.ITEM_DESCRIPTION,
2114               l_clev_rec.HIDDEN_IND,
2115 	      l_clev_rec.PRICE_UNIT,
2116 	      l_clev_rec.PRICE_UNIT_PERCENT,
2117               l_clev_rec.PRICE_NEGOTIATED,
2118 	      l_clev_rec.PRICE_NEGOTIATED_RENEWED,
2119               l_clev_rec.PRICE_LEVEL_IND,
2120               l_clev_rec.INVOICE_LINE_LEVEL_IND,
2121               l_clev_rec.DPAS_RATING,
2122               l_clev_rec.BLOCK23TEXT,
2123               l_clev_rec.EXCEPTION_YN,
2124               l_clev_rec.TEMPLATE_USED,
2125               l_clev_rec.DATE_TERMINATED,
2126               l_clev_rec.NAME,
2127               l_clev_rec.START_DATE,
2128               l_clev_rec.END_DATE,
2129               l_clev_rec.UPG_ORIG_SYSTEM_REF,
2130               l_clev_rec.UPG_ORIG_SYSTEM_REF_ID,
2131               l_clev_rec.ATTRIBUTE_CATEGORY,
2132               l_clev_rec.ATTRIBUTE1,
2133               l_clev_rec.ATTRIBUTE2,
2134               l_clev_rec.ATTRIBUTE3,
2135               l_clev_rec.ATTRIBUTE4,
2136               l_clev_rec.ATTRIBUTE5,
2137               l_clev_rec.ATTRIBUTE6,
2138               l_clev_rec.ATTRIBUTE7,
2139               l_clev_rec.ATTRIBUTE8,
2140               l_clev_rec.ATTRIBUTE9,
2141               l_clev_rec.ATTRIBUTE10,
2142               l_clev_rec.ATTRIBUTE11,
2143               l_clev_rec.ATTRIBUTE12,
2144               l_clev_rec.ATTRIBUTE13,
2145               l_clev_rec.ATTRIBUTE14,
2146               l_clev_rec.ATTRIBUTE15,
2147               l_clev_rec.CREATED_BY,
2148               l_clev_rec.CREATION_DATE,
2149               l_clev_rec.LAST_UPDATED_BY,
2150               l_clev_rec.LAST_UPDATE_DATE,
2151               l_clev_rec.PRICE_TYPE,
2152               l_clev_rec.CURRENCY_CODE,
2153 	      l_clev_rec.CURRENCY_CODE_RENEWED,
2154               l_clev_rec.LAST_UPDATE_LOGIN;
2155 
2156      	   EXIT WHEN top_line_csr%NOTFOUND;
2157 
2158         l_orig_header_id := l_clev_rec.dnz_chr_id;
2159 
2160 
2161 	l_clev_rec.chr_id :=  n_k_header_id;
2162 	l_clev_rec.dnz_chr_id := n_k_header_id;
2163 --	l_clev_rec.sts_code := 'ENTERED';
2164 --	l_clev_rec.sts_code :=null;
2165 	get_status(l_clev_rec.sts_code);
2166 
2167 	l_clev_rec.template_used := NULL;
2168 --	l_cle_rec.billing_method_code := NULL;
2169 	l_clev_rec.start_date := start_date;
2170 	l_clev_rec.end_date := end_date;
2171 
2172         --bug#5680084
2173         IF trunc(start_date) > trunc(l_cle_rec.END_DATE) THEN
2174            l_cle_rec.end_date := NULL;
2175         END IF;
2176         --bug#5680084
2177 
2178 l_cle_rec.DELIVERY_DATE :=null;
2179 l_cle_rec.AS_OF_DATE := null;
2180 l_cle_rec.DATE_MATERIAL_REQ := null;
2181 l_cle_rec.DATE_OF_FIRST_SUBMISSION :=null;
2182 l_cle_rec.DATE_OF_PRICE_REDETERMIN :=null;
2183 l_cle_rec.TARGET_DATE_DEFINITIZE:=null;
2184 l_cle_rec.PROPOSAL_DUE_DATE :=null;
2185 If g_proj_copy_allowed ='N' then
2186    l_cle_rec.PROJECT_ID := null;
2187    l_cle_rec.TASK_ID := null;
2188 end if;
2189 l_clev_rec.DATE_TERMINATED :=null;
2190 
2191 
2192 	-- Create contract lines
2193 		OKE_CONTRACT_PUB.create_contract_line(
2194 			p_api_version		=> p_api_version,
2195 			p_init_msg_list		=> p_init_msg_list,
2196 			x_return_status 	=> x_return_status,
2197 			x_msg_count     	=> x_msg_count,
2198 			x_msg_data      	=> x_msg_data,
2199       			p_cle_rec		=> l_cle_rec,
2200 			p_clev_rec		=> l_clev_rec,
2201       			x_cle_rec		=> x_cle_rec,
2202 			x_clev_rec		=> x_clev_rec);
2203 
2204 		If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
2205           		raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2206     		Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
2207           		raise OKE_API.G_EXCEPTION_ERROR;
2208     		End If;
2209 
2210 
2211 	iter_to_line_id := x_cle_rec.k_line_id;
2212 	iter_from_line_id := l_cle_rec.k_line_id;
2213 
2214 
2215 	IF l_copy_items = 'Y' THEN
2216 		copy_items
2217 		(
2218 		p_api_version     	=>	p_api_version,
2219     		p_init_msg_list     	=>	p_init_msg_list,
2220     		x_return_status      	=>	x_return_status,
2221     		x_msg_count         	=>     	x_msg_count,
2222    		x_msg_data              => 	x_msg_data,
2223     		p_from_cle_id     	=> 	iter_from_line_id,
2224     		p_to_cle_id 		=>	iter_to_line_id
2225 		);
2226 
2227 		If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
2228           		raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2229     		Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
2230           		raise OKE_API.G_EXCEPTION_ERROR;
2231     		End If;
2232 	END IF;
2233 
2234         -- copy user attributes (lines)
2235         IF l_copy_user_att = 'Y' then
2236            copy_user_attr_line (p_k_header_id 	  =>	 f_k_header_id  	 ,
2237                                 p_k_header_id_new =>     n_k_header_id 		 ,
2238                                 p_k_line_id       =>  	 l_cle_rec.k_line_id	 ,
2239                                 p_k_line_id_new   =>     x_cle_rec.k_line_id     );
2240         END IF;
2241 
2242 	IF line_has_children(l_clev_rec.id)='Y' THEN
2243 
2244 	copy_sub_lines(p_api_version         ,
2245     			  p_init_msg_list    ,
2246     			  x_return_status    ,
2247     			  x_msg_count        ,
2248     			  x_msg_data         ,
2249 			  f_k_header_id      ,
2250 		    	  n_k_header_id	     ,
2251 		          l_copy_parties     ,
2252 		          l_copy_tncs        ,
2253 		          l_copy_articles    ,
2254 		          l_copy_standard_notes,
2255 			  l_copy_items,
2256 			  l_copy_user_att,
2257                           p_copy_projecttask_yn,
2258 			  iter_from_line_id  ,
2259 			  iter_to_line_id     ,
2260 			  start_date		,
2261 			  end_date	  );
2262 
2263 		If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
2264           		raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2265     		Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
2266           		raise OKE_API.G_EXCEPTION_ERROR;
2267     		End If;
2268 
2269 	END IF;
2270 
2271 
2272 
2273    IF l_copy_parties = 'Y' then
2274 	copy_party_roles( p_api_version      	,
2275     			  p_init_msg_list    	,
2276     			  x_return_status 	,
2277     			  x_msg_count    	,
2278     			  x_msg_data         	,
2279 			  null			,
2280 			  null			,
2281 			  l_cle_rec.k_line_id	,
2282 			  x_cle_rec.k_line_id	,
2283 			  l_orig_header_id );
2284 
2285 		If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
2286           		raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2287     		Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
2288           		raise OKE_API.G_EXCEPTION_ERROR;
2289     		End If;
2290 
2291    END IF;
2292 
2293    IF l_copy_articles = 'Y' then
2294 	copy_articles(	p_api_version		,
2295     			p_init_msg_list		,
2296     			x_return_status		,
2297     			x_msg_count		,
2298     			x_msg_data		,
2299 			null			,
2300 			null			,
2301 			l_cle_rec.k_line_id	,
2302 			x_cle_rec.k_line_id	);
2303 
2304 		If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
2305           		raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2306     		Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
2307           		raise OKE_API.G_EXCEPTION_ERROR;
2308     		End If;
2309 
2310    END IF;
2311 
2312 
2313 
2314    IF l_copy_tncs = 'Y' then
2315    -- Copy Terms for Contract Header
2316       OKE_TERMS_PUB.copy_term(
2317 		p_api_version		=> p_api_version,
2318 		p_init_msg_list		=> p_init_msg_list,
2319 		x_return_status 	=> x_return_status,
2320 		x_msg_count     	=> x_msg_count,
2321 		x_msg_data      	=> x_msg_data,
2322     		p_from_level		=> 'L',
2323     		p_to_level		=> 'L',
2324     		p_from_chr_id		=> null,
2325     		p_to_chr_id		=> n_k_header_id,
2326     		p_from_cle_id		=> l_cle_rec.k_line_id,
2327     		p_to_cle_id		=> x_cle_rec.k_line_id
2328     );
2329 
2330 		If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
2331           		raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2332     		Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
2333           		raise OKE_API.G_EXCEPTION_ERROR;
2334     		End If;
2335 
2336    END IF;
2337 
2338    IF l_copy_standard_notes = 'Y' then
2339    -- Copy Standard Notes
2340       OKE_STANDARD_NOTES_PUB.copy_standard_note(
2341 		p_api_version		=> p_api_version,
2342 		p_init_msg_list		=> p_init_msg_list,
2343 		x_return_status 	=> x_return_status,
2344 		x_msg_count     	=> x_msg_count,
2345 		x_msg_data      	=> x_msg_data,
2346       		p_from_hdr_id		=> null,
2347     		p_to_hdr_id	 	=> n_k_header_id,
2348     		p_from_cle_id		=> l_cle_rec.k_line_id,
2349     		p_to_cle_id		=> x_cle_rec.k_line_id,
2350     		p_from_del_id		=> null,
2351     		p_to_del_id		=> null,
2352 		default_flag		=> 'N'
2353      );
2354 		If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
2355           		raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2356     		Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
2357           		raise OKE_API.G_EXCEPTION_ERROR;
2358     		End If;
2359 
2360    END IF;
2361 
2362 
2363   END LOOP;
2364     CLOSE top_line_csr;
2365 
2366    OKE_API.END_ACTIVITY(	x_msg_count	=> x_msg_count,
2367 				x_msg_data	=> x_msg_data);
2368 
2369   EXCEPTION
2370     when OKE_API.G_EXCEPTION_ERROR then
2371       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
2372 			p_api_name  => l_api_name,
2373 			p_pkg_name  => g_pkg_name,
2374 			p_exc_name  => 'OKE_API.G_RET_STS_ERROR',
2375 			x_msg_count => x_msg_count,
2376 			x_msg_data  => x_msg_data,
2377 			p_api_type  => g_api_type);
2378 
2379     when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
2380       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
2381 			p_api_name  => l_api_name,
2382 			p_pkg_name  => g_pkg_name,
2383 			p_exc_name  => 'OKE_API.G_RET_STS_UNEXP_ERROR',
2384 			x_msg_count => x_msg_count,
2385 			x_msg_data  => x_msg_data,
2386 			p_api_type  => g_api_type);
2387 
2388     when OTHERS then
2389       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
2390 			p_api_name  => l_api_name,
2391 			p_pkg_name  => g_pkg_name,
2392 			p_exc_name  => 'OTHERS',
2393 			x_msg_count => x_msg_count,
2394 			x_msg_data  => x_msg_data,
2395 			p_api_type  => g_api_type);
2396 
2397 END copy_contract_lines;
2398 
2399 
2400 PROCEDURE Calculate_Line_Totals(
2401   p_chr_id NUMBER,
2402   p_cle_id NUMBER,
2403   x_total   OUT NOCOPY NUMBER,
2404   x_total_u OUT NOCOPY NUMBER
2405  ) IS
2406   l_amount   NUMBER;
2407   l_amount_u NUMBER;
2408 
2409   CURSOR l_lines IS
2410    SELECT id
2411     FROM okc_k_lines_b
2412     WHERE dnz_chr_id = p_chr_id
2413      AND ( cle_id = p_cle_id AND p_cle_id IS NOT NULL
2414         OR cle_id IS NULL AND p_cle_id IS NULL);
2415 
2416  BEGIN
2417 
2418   x_total   := NULL;
2419   x_total_u := NULL;
2420 
2421   FOR c IN l_lines LOOP
2422 
2423     -- calculate sublines totals
2424     Calculate_Line_Totals( p_chr_id, c.id, l_amount, l_amount_u );
2425 
2426     -- the amounts are null if there is no sublines
2427     IF ( l_amount IS NULL AND l_amount_u IS NULL ) THEN
2428       SELECT Nvl(line_value,0), Nvl(undef_line_value,0)
2429         INTO l_amount, l_amount_u
2430         FROM oke_k_lines
2431         WHERE k_line_id = c.id;
2432     END IF;
2433 
2434     UPDATE oke_k_lines
2435       SET line_value_total = l_amount, undef_line_value_total = l_amount_u
2436       WHERE k_line_id = c.id;
2437 
2438     x_total := Nvl(x_total,0) + l_amount;
2439     x_total_u := Nvl(x_total_u,0) + l_amount_u;
2440 
2441   END LOOP;
2442 
2443 END Calculate_Line_Totals;
2444 
2445 PROCEDURE Calculate_Totals(p_chr_id NUMBER) IS
2446   l_total    NUMBER := NULL;
2447   l_total_u  NUMBER := NULL;
2448  BEGIN
2449 
2450   Calculate_Line_Totals( p_chr_id, NULL, l_total, l_total_u );
2451 
2452   UPDATE oke_k_headers
2453     SET line_value_total=l_total, undef_line_value_total=l_total_u
2454     WHERE k_header_id = p_chr_id;
2455 
2456 END Calculate_Totals;
2457 
2458 
2459 
2460 /*-------------------------------------------------------------------------
2461  PROCEDURE copy_contract - main program called by OKE Widzard UI
2462  ------------------------------------------------------------------------*/
2463 PROCEDURE copy_contract(
2464    		p_api_version 		IN NUMBER,
2465     		p_init_msg_list 	IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
2466     		x_return_status         OUT NOCOPY VARCHAR2,
2467     		x_msg_count            	OUT NOCOPY NUMBER,
2468     		x_msg_data             	OUT NOCOPY VARCHAR2,
2469 
2470 		p_copy_lines		IN VARCHAR2,
2471 		p_copy_parties		IN VARCHAR2,
2472 		p_copy_tncs		IN VARCHAR2,
2473 		p_copy_articles		IN VARCHAR2,
2474 		p_copy_standard_notes	IN VARCHAR2,
2475                 p_copy_user_attributes                  IN VARCHAR2,
2476 		p_copy_admin_yn         IN VARCHAR2,
2477                 p_copy_projecttask_yn   IN VARCHAR2,
2478 		p_dest_doc_type 			IN VARCHAR2,
2479   		p_dest_doc_number 			IN VARCHAR2,
2480 		p_dest_buy_or_sell			IN VARCHAR2,
2481 		p_dest_currency_code			IN VARCHAR2,
2482 		p_dest_start_date			IN DATE,
2483 		p_dest_end_date				IN DATE,
2484 		p_dest_template_yn			IN VARCHAR2,
2485 		p_dest_authoring_org_id			IN NUMBER,
2486 		p_dest_inv_organization_id		IN NUMBER,
2487 		p_dest_boa_id				IN NUMBER,
2488 		p_source_k_header_id			IN NUMBER,
2489 		x_dest_k_header_id 			OUT NOCOPY NUMBER
2490                           )
2491 IS
2492 
2493     l_row_notfound	BOOLEAN := TRUE;
2494     x_chr_rec		OKE_CHR_PVT.chr_rec_type;
2495     x_chrv_rec		OKC_CONTRACT_PUB.chrv_rec_type;
2496     l_chr_rec		OKE_CHR_PVT.chr_rec_type;
2497     l_chrv_rec		OKC_CHR_PVT.chrv_rec_type;
2498 				--OKC_CONTRACT_PUB.chrv_rec_type;
2499 
2500 
2501     l_return_status	VARCHAR2(1)		:= OKE_API.G_RET_STS_SUCCESS;
2502     l_api_name		CONSTANT VARCHAR2(30) 	:= 'COPY_CONTRACT';
2503     l_api_version	NUMBER 			:= 1.0;
2504 
2505 
2506     l_check		VARCHAR2(1) := '?';
2507 
2508     CURSOR c_check_org(h1 NUMBER,h2 NUMBER) IS
2509 	SELECT 'x'
2510 	FROM okc_k_headers_all_b a, okc_k_headers_all_b b
2511 	WHERE a.inv_organization_id=b.inv_organization_id
2512 	AND a.id = h1 AND b.id=h2;
2513 
2514 
2515 CURSOR c_access IS
2516 select distinct role_id,person_id,
2517 decode(sign(trunc(start_date_active)-trunc(sysdate)),1,trunc(start_date_active),trunc(sysdate)),
2518 trunc(end_date_active)
2519 from oke_k_access_v
2520 where object_id=p_source_k_header_id
2521 and (end_date_active is null OR trunc(end_date_active)> trunc(sysdate));
2522 
2523 
2524 cursor c_get_process is
2525 select pdf_id,
2526        ATTRIBUTE_CATEGORY,
2527        ATTRIBUTE1,
2528        ATTRIBUTE2,
2529        ATTRIBUTE3,
2530        ATTRIBUTE4,
2531        ATTRIBUTE5,
2532        ATTRIBUTE6,
2533        ATTRIBUTE7,
2534        ATTRIBUTE8,
2535        ATTRIBUTE9,
2536        ATTRIBUTE10,
2537        ATTRIBUTE11,
2538        ATTRIBUTE12,
2539        ATTRIBUTE13,
2540        ATTRIBUTE14,
2541        ATTRIBUTE15
2542  from OKC_K_PROCESSES
2543  where chr_id=p_source_k_header_id;
2544 
2545 
2546  cursor c_source_doc_class is
2547  select type_class_code
2548  from oke_k_headers chr,
2549       OKE_K_TYPES_b ktype
2550  where chr.k_type_code = ktype.k_type_code
2551  and   chr.k_header_id = p_source_k_header_id;
2552 
2553  cursor c_dest_doc_class is
2554  select type_class_code
2555  from  OKE_K_TYPES_b
2556  where k_type_code =  p_dest_doc_type;
2557 
2558 
2559 l_role 			NUMBER;
2560 l_person 		NUMBER;
2561 l_start_date		DATE:=NULL;
2562 l_end_date		DATE:=NULL;
2563 l_project_party_id 	NUMBER;
2564 l_resource_id		NUMBER;
2565 l_assignment_id		NUMBER;
2566 l_record_version	NUMBER;
2567 
2568 l_cpsv_tbl_in             okc_contract_pub.cpsv_tbl_type;
2569 l_cpsv_tbl_out            okc_contract_pub.cpsv_tbl_type;
2570 l_source_doc_class        varchar2(30);
2571 l_dest_doc_class        varchar2(30);
2572 
2573 
2574 BEGIN
2575     g_pty_not_copied := FALSE;
2576    -- call START_ACTIVITY to create savepoint, check compatibility
2577     -- and initialize message list
2578     l_return_status := OKE_API.START_ACTIVITY(
2579 			p_api_name      => l_api_name,
2580 			p_pkg_name      => g_pkg_name,
2581 			p_init_msg_list => p_init_msg_list,
2582 			l_api_version   => l_api_version,
2583 			p_api_version   => p_api_version,
2584 			p_api_type      => g_api_type,
2585 			x_return_status => l_return_status);
2586 
2587     -- check if activity started successfully
2588     If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
2589        raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2590     Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
2591        raise OKE_API.G_EXCEPTION_ERROR;
2592     End If;
2593 
2594     -- initialize return status
2595     x_return_status := OKE_API.G_RET_STS_SUCCESS;
2596 
2597 --  Get contract header value from oke side.
2598     get_oke_k_header_rec(p_source_k_header_id,
2599 			l_chr_rec,
2600 			l_return_status);
2601     If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
2602        raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2603     Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
2604        raise OKE_API.G_EXCEPTION_ERROR;
2605     End If;
2606 
2607 
2608 --  Get contract header value from okc side.
2609     get_okc_k_header_rec(p_source_k_header_id,
2610 			l_chrv_rec,
2611 			l_return_status);
2612     If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
2613        raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2614     Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
2615        raise OKE_API.G_EXCEPTION_ERROR;
2616     End If;
2617 
2618 
2619 l_chrv_rec.contract_number := p_dest_doc_number;
2620 l_chrv_rec.contract_number_modifier :=
2621 	p_dest_doc_type||'.'||p_dest_buy_or_sell||'.'||p_dest_boa_id;
2622 l_chr_rec.k_type_code := p_dest_doc_type;
2623 l_chrv_rec.buy_or_sell := p_dest_buy_or_sell;
2624 l_chrv_rec.currency_code := p_dest_currency_code;
2625 l_chrv_rec.start_date := p_dest_start_date;
2626 l_chrv_rec.end_date := p_dest_end_date;
2627 l_chrv_rec.template_yn := p_dest_template_yn;
2628 l_chr_rec.boa_id := p_dest_boa_id;
2629 l_chrv_rec.authoring_org_id := p_dest_authoring_org_id;
2630 l_chrv_rec.inv_organization_id :=p_dest_inv_organization_id;
2631 
2632 
2633 
2634 	get_status(l_chrv_rec.sts_code);
2635 
2636         g_projh_overlap_allowed := fnd_profile.value('OKE_PROJH_OVERLAP_ALLOWED');
2637 	l_chr_rec.AUTHORIZE_DATE:=null;
2638 	l_chr_rec.AWARD_CANCEL_DATE:=null;
2639 	l_chr_rec.AWARD_DATE:=null;
2640 	l_chr_rec.DATE_DEFINITIZED:=null;
2641 	l_chr_rec.DATE_ISSUED:=null;
2642 	l_chr_rec.DATE_NEGOTIATED:=null;
2643 	l_chr_rec.DATE_RECEIVED:=null;
2644 	l_chr_rec.DATE_SIGN_BY_CONTRACTOR:=null;
2645 	l_chr_rec.DATE_SIGN_BY_CUSTOMER:=null;
2646 	l_chr_rec.FAA_APPROVE_DATE:=null;
2647 	l_chr_rec.FAA_REJECT_DATE:=null;
2648 	l_chr_rec.PROP_DUE_DATE_TIME:=null;
2649 	l_chr_rec.PROP_EXPIRE_DATE:=null;
2650       IF p_copy_projecttask_yn = 'N' then
2651         g_proj_copy_allowed := 'N';
2652       ELSE
2653         If g_projh_overlap_allowed = 'DISALLOW' THEN
2654          open c_source_doc_class;
2655          fetch c_source_doc_class into l_source_doc_class;
2656          close c_source_doc_class;
2657 
2658          open c_dest_doc_class;
2659          fetch c_dest_doc_class into l_dest_doc_class;
2660          close c_dest_doc_class;
2661          If l_dest_doc_class =l_source_doc_class then
2662            g_proj_copy_allowed := 'N';
2663          else
2664           g_proj_copy_allowed := 'Y';
2665          end if;
2666         else
2667           g_proj_copy_allowed := 'Y';
2668       End if;
2669      END IF;
2670 
2671       If g_proj_copy_allowed ='N' then
2672          l_chr_rec.PROJECT_ID := null;
2673          l_chr_rec.DEFAULT_TASK_ID := null;
2674       end if;
2675 
2676 	l_chrv_rec.DATE_APPROVED:=null;
2677 	l_chrv_rec.DATETIME_CANCELLED:=null;
2678 	l_chrv_rec.DATE_ISSUED:=null;
2679         l_chrv_rec.DATETIME_RESPONDED:=null;
2680         l_chrv_rec.DATE_CLOSE_PROJECTED:=null;
2681         l_chrv_rec.DATETIME_PROPOSED:=null;
2682         l_chrv_rec.DATE_SIGNED:=null;
2683         l_chrv_rec.DATE_TERMINATED:=null;
2684         l_chrv_rec.DATE_RENEWED:=null;
2685 
2686 
2687 -- Create contract header
2688 	OKE_CONTRACT_PUB.create_contract_header(
2689 		p_api_version		=> p_api_version,
2690 		p_init_msg_list		=> p_init_msg_list,
2691 		x_return_status 	=> l_return_status,
2692 		x_msg_count     	=> x_msg_count,
2693 		x_msg_data      	=> x_msg_data,
2694       		p_chr_rec		=> l_chr_rec,
2695 		p_chrv_rec		=> l_chrv_rec,
2696       		x_chr_rec		=> x_chr_rec,
2697 		x_chrv_rec		=> x_chrv_rec);
2698 
2699 		If l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
2700           		raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2701     		Elsif l_return_status = OKE_API.G_RET_STS_ERROR Then
2702           		raise OKE_API.G_EXCEPTION_ERROR;
2703     		End If;
2704 
2705    IF p_copy_admin_yn = 'Y' then
2706           open c_get_process;
2707     fetch c_get_process into
2708         l_cpsv_tbl_in(1).PDF_ID ,
2709         l_cpsv_tbl_in(1).ATTRIBUTE_CATEGORY ,
2710         l_cpsv_tbl_in(1).ATTRIBUTE1 ,
2711         l_cpsv_tbl_in(1).ATTRIBUTE2 ,
2712         l_cpsv_tbl_in(1).ATTRIBUTE3 ,
2713         l_cpsv_tbl_in(1).ATTRIBUTE4 ,
2714         l_cpsv_tbl_in(1).ATTRIBUTE5 ,
2715         l_cpsv_tbl_in(1).ATTRIBUTE6 ,
2716         l_cpsv_tbl_in(1).ATTRIBUTE7 ,
2717         l_cpsv_tbl_in(1).ATTRIBUTE8 ,
2718         l_cpsv_tbl_in(1).ATTRIBUTE9 ,
2719         l_cpsv_tbl_in(1).ATTRIBUTE10 ,
2720         l_cpsv_tbl_in(1).ATTRIBUTE11 ,
2721         l_cpsv_tbl_in(1).ATTRIBUTE12 ,
2722         l_cpsv_tbl_in(1).ATTRIBUTE13 ,
2723         l_cpsv_tbl_in(1).ATTRIBUTE14 ,
2724         l_cpsv_tbl_in(1).ATTRIBUTE15 ;
2725 
2726         l_cpsv_tbl_in(1).chr_ID := x_chr_rec.k_header_id;
2727 
2728     If c_get_process%found then
2729         okc_contract_pub.create_contract_process
2730              ( p_api_version   => l_api_version
2731              , p_init_msg_list => p_init_msg_list
2732              , x_return_status => l_return_status
2733              , x_msg_count     => x_msg_count
2734              , x_msg_data      => x_msg_data
2735              , p_cpsv_tbl      => l_cpsv_tbl_in
2736              , x_cpsv_tbl      => l_cpsv_tbl_out
2737              );
2738 
2739 	    	If l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
2740           		raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2741     		Elsif l_return_status = OKE_API.G_RET_STS_ERROR Then
2742           		raise OKE_API.G_EXCEPTION_ERROR;
2743     		End If;
2744        end if;
2745        close c_get_process;
2746 
2747 
2748 	OPEN c_access;
2749 	LOOP
2750 	FETCH c_access INTO l_role,l_person,l_start_date,l_end_date;
2751 	EXIT WHEN c_access%NOTFOUND;
2752 
2753 	OKE_K_ACCESS_PVT.CREATE_CONTRACT_ACCESS
2754 	( P_COMMIT                     =>	OKE_API.G_FALSE,
2755 	  P_OBJECT_TYPE                =>	'OKE_K_HEADERS',
2756 	  P_OBJECT_ID                  =>     	x_chr_rec.k_header_id,
2757 	  P_ROLE_ID                    =>	l_role,
2758 	  P_PERSON_ID                  =>	l_person,
2759 	  P_START_DATE_ACTIVE          =>	l_start_date,
2760 	  P_END_DATE_ACTIVE            =>	l_end_date,
2761 	  X_PROJECT_PARTY_ID           =>	l_project_party_id,
2762 	  X_RESOURCE_ID                =>	l_resource_id,
2763 	  X_ASSIGNMENT_ID              =>	l_assignment_id,
2764 	  X_RECORD_VERSION_NUMBER      =>	l_record_version,
2765 	  X_RETURN_STATUS              =>	l_return_status,
2766 	  X_MSG_COUNT                  =>	x_msg_count,
2767 	  X_MSG_DATA                   =>	x_msg_data
2768 	);
2769 		If l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
2770           		raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2771     		Elsif l_return_status = OKE_API.G_RET_STS_ERROR Then
2772           		raise OKE_API.G_EXCEPTION_ERROR;
2773     		End If;
2774 
2775 	END LOOP;
2776    END IF;
2777 
2778 	insert into oke_k_billing_methods
2779 	(k_header_id,
2780 	 billing_method_code,
2781 	 creation_date,
2782 	 created_by,
2783 	 last_update_date,
2784 	 last_updated_by,
2785 	 last_update_login,
2786 	 default_flag,
2787 	 attribute_category,
2788 	 attribute1,attribute2,
2789 	 attribute3,attribute4,
2790 	 attribute5,attribute6,
2791 	 attribute7,attribute8,
2792 	 attribute9,attribute10,
2793 	 attribute11,attribute12,
2794 	 attribute13,attribute14,
2795 	 attribute15
2796 	 )
2797 	select x_chr_rec.k_header_id,billing_method_code,sysdate,
2798 		fnd_global.user_id,sysdate,fnd_global.user_id,
2799 		fnd_global.login_id,
2800 		default_flag,attribute_category,attribute1,attribute2,
2801 		attribute3,attribute4,attribute5,attribute6,attribute7,
2802 		attribute8,attribute9,attribute10,attribute11,attribute12,
2803 		attribute13,attribute14,attribute15
2804 
2805 		from oke_k_billing_methods
2806 
2807 		where k_header_id = p_source_k_header_id;
2808 
2809 
2810 
2811 
2812     x_dest_k_header_id := x_chr_rec.k_header_id;
2813    IF p_copy_parties = 'Y' then
2814 	copy_party_roles( p_api_version      	,
2815     			  p_init_msg_list    	,
2816     			  l_return_status 	,
2817     			  x_msg_count    	,
2818     			  x_msg_data         	,
2819 			  l_chr_rec.k_header_id	,
2820 			  x_chr_rec.k_header_id	,
2821 			  null			,
2822 			  null			,
2823 			  l_chr_rec.k_header_id );
2824 
2825 		If l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
2826           		raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2827     		Elsif l_return_status = OKE_API.G_RET_STS_ERROR Then
2828           		raise OKE_API.G_EXCEPTION_ERROR;
2829     		End If;
2830 
2831    End If;
2832 
2833    IF p_copy_articles = 'Y' then
2834 	copy_articles(	p_api_version		,
2835     			p_init_msg_list		,
2836     			l_return_status		,
2837     			x_msg_count		,
2838     			x_msg_data		,
2839 			l_chr_rec.k_header_id	,
2840 			x_chr_rec.k_header_id	,
2841 			null			,
2842 			null			);
2843 
2844 		If l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
2845           		raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2846     		Elsif l_return_status = OKE_API.G_RET_STS_ERROR Then
2847           		raise OKE_API.G_EXCEPTION_ERROR;
2848     		End If;
2849 
2850     End If;
2851 
2852 -- Copy Terms for Contract Header
2853 
2854    IF p_copy_tncs = 'Y' then
2855 
2856    OKE_TERMS_PUB.copy_term(
2857 		p_api_version		=> p_api_version,
2858 		p_init_msg_list		=> p_init_msg_list,
2859 		x_return_status 	=> l_return_status,
2860 		x_msg_count     	=> x_msg_count,
2861 		x_msg_data      	=> x_msg_data,
2862     		p_from_level		=> 'H',
2863     		p_to_level		=> 'H',
2864     		p_from_chr_id		=> p_source_k_header_id,
2865     		p_to_chr_id		=> x_chr_rec.k_header_id,
2866     		p_from_cle_id		=> NULL,
2867     		p_to_cle_id		=> NULL
2868     );
2869 
2870 
2871 		If l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
2872           		raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2873     		Elsif l_return_status = OKE_API.G_RET_STS_ERROR Then
2874           		raise OKE_API.G_EXCEPTION_ERROR;
2875     		End If;
2876    End If;
2877 
2878 
2879 -- Copy Standard Notes
2880 
2881    IF p_copy_standard_notes = 'Y' then
2882     OKE_STANDARD_NOTES_PUB.copy_standard_note(
2883 		p_api_version		=> p_api_version,
2884 		p_init_msg_list		=> p_init_msg_list,
2885 		x_return_status 	=> l_return_status,
2886 		x_msg_count     	=> x_msg_count,
2887 		x_msg_data      	=> x_msg_data,
2888       		p_from_hdr_id		=> p_source_k_header_id,
2889     		p_to_hdr_id	 	=> x_chr_rec.k_header_id,
2890     		p_from_cle_id		=> null,
2891     		p_to_cle_id		=> null,
2892     		p_from_del_id		=> null,
2893     		p_to_del_id		=> null,
2894 		default_flag		=> 'N'
2895      );
2896 
2897 		If l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
2898           		raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2899     		Elsif l_return_status = OKE_API.G_RET_STS_ERROR Then
2900           		raise OKE_API.G_EXCEPTION_ERROR;
2901     		End If;
2902 
2903     End If;
2904 
2905    -- copy user attributes (header)
2906 
2907    IF p_copy_user_attributes = 'Y' then
2908 
2909       copy_user_attributes (p_k_header_id 	=>	 p_source_k_header_id	,
2910       			    p_k_header_id_new   =>       x_chr_rec.k_header_id  );
2911 
2912    END IF;
2913 
2914 
2915 
2916   IF p_copy_lines = 'Y' then
2917 
2918 	OPEN c_check_org(p_source_k_header_id,x_chr_rec.k_header_id);
2919 	FETCH c_check_org INTO l_check;
2920 	CLOSE c_check_org;
2921 
2922 	IF l_check = 'x' THEN
2923 		l_check := 'Y';
2924 	ELSE
2925 		OKE_API.SET_MESSAGE   (
2926                 p_app_name              =>'OKE',
2927                 p_msg_name              =>'OKE_KCOPY_ITEMS_NOCOPY');
2928         x_return_status := OKE_API.G_RET_STS_WARNING;
2929 		l_check := 'N';
2930 	END IF;
2931 
2932 
2933        copy_contract_lines( p_api_version		=> p_api_version,
2934 			p_init_msg_list		=> p_init_msg_list,
2935 			x_return_status 	=> l_return_status,
2936 			x_msg_count     	=> x_msg_count,
2937 			x_msg_data      	=> x_msg_data,
2938 		    	f_k_header_id 		=> p_source_k_header_id,
2939 		    	n_k_header_id 		=> x_chr_rec.k_header_id,
2940 		    	l_copy_parties		=> p_copy_parties,
2941 		    	l_copy_tncs		=> p_copy_tncs,
2942 		    	l_copy_articles		=> p_copy_articles,
2943 		    	l_copy_standard_notes	=> p_copy_standard_notes,
2944 		    	l_copy_user_att		=> p_copy_user_attributes,
2945                         p_copy_projecttask_yn   => p_copy_projecttask_yn,
2946 			l_copy_items		=> l_check,
2947 			start_date		=> --NULL,
2948 						p_dest_start_date	,
2949 			end_date		=> NULL);
2950 						--p_dest_end_date	);
2951 
2952 		If l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
2953           		raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2954     		Elsif l_return_status = OKE_API.G_RET_STS_ERROR Then
2955           		raise OKE_API.G_EXCEPTION_ERROR;
2956     		End If;
2957 
2958 
2959    END IF;
2960 
2961 -- recalculate totals now -- bug#4302591
2962    Calculate_Totals(x_chr_rec.k_header_id);
2963 
2964     IF g_pty_not_copied THEN
2965       OKE_API.SET_MESSAGE   (
2966                 p_app_name  => 'OKE',
2967                 p_msg_name  => 'OKE_KCOPY_PARTIES_NOCOPY');
2968       x_return_status := OKE_API.G_RET_STS_WARNING;
2969     END IF;
2970 
2971     IF x_return_status <> OKE_API.G_RET_STS_SUCCESS THEN
2972       FND_MSG_PUB.Count_And_Get(
2973         p_count  => x_msg_count
2974       , p_data   => x_msg_data
2975       );
2976     END IF;
2977 
2978   EXCEPTION
2979     when OKE_API.G_EXCEPTION_ERROR then
2980       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
2981 			p_api_name  => l_api_name,
2982 			p_pkg_name  => g_pkg_name,
2983 			p_exc_name  => 'OKE_API.G_RET_STS_ERROR',
2984 			x_msg_count => x_msg_count,
2985 			x_msg_data  => x_msg_data,
2986 			p_api_type  => g_api_type);
2987 
2988     when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
2989       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
2990 			p_api_name  => l_api_name,
2991 			p_pkg_name  => g_pkg_name,
2992 			p_exc_name  => 'OKE_API.G_RET_STS_UNEXP_ERROR',
2993 			x_msg_count => x_msg_count,
2994 			x_msg_data  => x_msg_data,
2995 			p_api_type  => g_api_type);
2996 
2997     when OTHERS then
2998       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
2999 			p_api_name  => l_api_name,
3000 			p_pkg_name  => g_pkg_name,
3001 			p_exc_name  => 'OTHERS',
3002 			x_msg_count => x_msg_count,
3003 			x_msg_data  => x_msg_data,
3004 			p_api_type  => g_api_type);
3005 
3006 END copy_contract;
3007 
3008 
3009 END OKE_KCOPY_PKG;