[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;