[Home] [Help]
PACKAGE BODY: APPS.OKE_IMPORT_CONTRACT_PUB
Source
1 PACKAGE BODY OKE_IMPORT_CONTRACT_PUB AS
2 /* $Header: OKEPIMPB.pls 120.2.12020000.3 2013/02/22 06:42:12 ansraj ship $ */
3 g_api_type CONSTANT VARCHAR2(4) := '_PUB';
4
5
6
7 -- GLOBAL MESSAGE CONSTANTS
8
9 G_FND_APP CONSTANT VARCHAR2(200) := OKE_API.G_FND_APP;
10
11 G_FORM_UNABLE_TO_RESERVE_REC CONSTANT VARCHAR2(200) := OKE_API.G_FORM_UNABLE_TO_RESERVE_REC;
12 G_FORM_RECORD_DELETED CONSTANT VARCHAR2(200) := OKE_API.G_FORM_RECORD_DELETED;
13
14 G_FORM_RECORD_CHANGED CONSTANT VARCHAR2(200) := OKE_API.G_FORM_RECORD_CHANGED;
15
16 G_RECORD_LOGICALLY_DELETED CONSTANT VARCHAR2(200) := OKE_API.G_RECORD_LOGICALLY_DELETED;
17 G_REQUIRED_VALUE CONSTANT VARCHAR2(200) := OKE_API.G_REQUIRED_VALUE;
18 G_INVALID_VALUE CONSTANT VARCHAR2(200) := OKE_API.G_INVALID_VALUE;
19 G_COL_NAME_TOKEN CONSTANT VARCHAR2(200) := OKE_API.G_COL_NAME_TOKEN;
20 G_PARENT_TABLE_TOKEN CONSTANT VARCHAR2(200) := OKE_API.G_PARENT_TABLE_TOKEN;
21 G_CHILD_TABLE_TOKEN CONSTANT VARCHAR2(200) := OKE_API.G_CHILD_TABLE_TOKEN;
22
23 G_NO_PARENT_RECORD CONSTANT VARCHAR2(200) := 'OKE_NO_PARENT_RECORD';
24 G_UNEXPECTED_ERROR CONSTANT VARCHAR2(200) := 'OKE_CONTRACTS_UNEXPECTED_ERROR';
25
26 G_SQLERRM_TOKEN CONSTANT VARCHAR2(200) := 'SQLerrm';
27 G_SQLCODE_TOKEN CONSTANT VARCHAR2(200) := 'SQLcode';
28 G_VIEW CONSTANT VARCHAR2(200) := 'OKE_K_LINES_V';
29
30 G_EXCEPTION_HALT_VALIDATION exception;
31
32
33
34 PROCEDURE validate_OKC_header_fields ( x_return_status OUT NOCOPY VARCHAR2,
35 p_chr_rec IN chr_rec_type)IS
36
37 CURSOR l_csr1 IS
38 select 'x'
39 from hr_all_organization_units hr , mtl_parameters mp
40 where mp.organization_id = hr.organization_id
41 and mp.master_organization_id = mp.organization_id
42 and hr.organization_id = p_chr_rec.inv_organization_id;
43
44 CURSOR l_csr2 IS
45 select 'x'
46 from hr_operating_units
47 where organization_id = p_chr_rec.authoring_org_id;
48
49
50 l_dummy1 VARCHAR2(1) := '?';
51 l_dummy2 VARCHAR2(1) := '?';
52
53
54
55 BEGIN
56 x_return_status := OKE_API.G_RET_STS_SUCCESS;
57
58 IF ( p_chr_rec.start_date = OKE_API.G_MISS_DATE
59 OR p_chr_rec.start_date IS NULL) THEN
60 OKE_API.SET_MESSAGE(p_app_name =>g_app_name,
61 p_msg_name =>G_REQUIRED_VALUE,
62 p_token1 =>G_COL_NAME_TOKEN,
63 p_token1_value =>'START_DATE');
64 x_return_status := OKE_API.G_RET_STS_ERROR;
65 END IF;
66
67 IF ( p_chr_rec.inv_organization_id = OKE_API.G_MISS_NUM
68 OR p_chr_rec.inv_organization_id IS NULL) THEN
69 OKE_API.SET_MESSAGE(p_app_name =>g_app_name,
70 p_msg_name =>G_REQUIRED_VALUE,
71 p_token1 =>G_COL_NAME_TOKEN,
72 p_token1_value =>'INV_ORGANIZATION_ID');
73 x_return_status := OKE_API.G_RET_STS_ERROR;
74 END IF;
75
76
77 IF ( p_chr_rec.authoring_org_id = OKE_API.G_MISS_NUM
78 OR p_chr_rec.authoring_org_id IS NULL) THEN
79 OKE_API.SET_MESSAGE(p_app_name =>g_app_name,
80 p_msg_name =>G_REQUIRED_VALUE,
81 p_token1 =>G_COL_NAME_TOKEN,
82 p_token1_value =>'AUTHORING_ORG_ID');
83 x_return_status := OKE_API.G_RET_STS_ERROR;
84 END IF;
85
86
87 IF ( p_chr_rec.inv_organization_id <> OKE_API.G_MISS_NUM
88 AND p_chr_rec.inv_organization_id IS NOT NULL) THEN
89
90 Open l_csr1;
91 Fetch l_csr1 INTO l_dummy1;
92 Close l_csr1;
93
94 If l_dummy1 = '?' Then
95 OKE_API.SET_MESSAGE(p_app_name => g_app_name,
96 p_msg_name => g_no_parent_record,
97 p_token1 => g_col_name_token,
98 p_token1_value => 'INV_ORGANIZATION_ID',
99 p_token2 => g_child_table_token,
100 p_token2_value => G_VIEW,
101 p_token3 => g_parent_table_token,
102 p_token3_value => 'HR_ALL_ORGANIZATION_UNITS,MTL_PARAMETERS');
103 x_return_status := OKE_API.G_RET_STS_ERROR;
104 END IF;
105 END IF;
106
107 IF ( p_chr_rec.authoring_org_id <> OKE_API.G_MISS_NUM
108 AND p_chr_rec.authoring_org_id <> -99
109 AND p_chr_rec.authoring_org_id IS NOT NULL) THEN
110
111 Open l_csr2;
112 Fetch l_csr2 INTO l_dummy2;
113 Close l_csr2;
114
115 If l_dummy2 = '?' Then
116 OKE_API.SET_MESSAGE(p_app_name => g_app_name,
117 p_msg_name => g_no_parent_record,
118 p_token1 => g_col_name_token,
119 p_token1_value => 'AUTHORING_ORG_ID',
120 p_token2 => g_child_table_token,
121 p_token2_value => G_VIEW,
122 p_token3 => g_parent_table_token,
123 p_token3_value => 'HR_OPERATING_UNITS');
124 x_return_status := OKE_API.G_RET_STS_ERROR;
125 END IF;
126 END IF;
127
128
129
130 EXCEPTION
131
132 WHEN OTHERS THEN
133 -- store SQL error message on message stack
134 OKE_API.SET_MESSAGE(
135 p_app_name =>g_app_name,
136 p_msg_name =>G_UNEXPECTED_ERROR,
137 p_token1 =>G_SQLCODE_TOKEN,
138 p_token1_value =>SQLCODE,
139 p_token2 =>G_SQLERRM_TOKEN,
140 p_token2_value =>SQLERRM);
141 x_return_status := OKE_API.G_RET_STS_UNEXP_ERROR;
142
143 END validate_OKC_header_fields;
144
145
146
147
148 PROCEDURE validate_OKC_line_fields ( x_return_status OUT NOCOPY VARCHAR2,
149 p_cle_rec IN cle_rec_type)IS
150
151 CURSOR l_csr1 IS
152 select 'x'
153 FROM Okc_Statuses_B
154 WHERE okc_statuses_b.code = p_cle_rec.sts_code;
155
156 l_dummy1 VARCHAR2(1) := '?';
157 l_line_num VARCHAR2(400);
158
159
160
161
162
163 BEGIN
164 x_return_status := OKE_API.G_RET_STS_SUCCESS;
165
166 IF ( p_cle_rec.sts_code <> OKE_API.G_MISS_CHAR
167 AND p_cle_rec.sts_code IS NOT NULL) THEN
168
169 Open l_csr1;
170 Fetch l_csr1 INTO l_dummy1;
171 Close l_csr1;
172
173 If l_dummy1 = '?' Then
174 OKE_API.SET_MESSAGE(p_app_name => g_app_name,
175 p_msg_name => g_no_parent_record,
176 p_token1 => g_col_name_token,
177 p_token1_value => 'STS_CODE',
178 p_token2 => g_child_table_token,
179 p_token2_value => G_VIEW,
180 p_token3 => g_parent_table_token,
181 p_token3_value => 'OKC_STATUSES_B');
182 x_return_status := OKE_API.G_RET_STS_ERROR;
183 END IF;
184 END IF;
185
186 IF ( p_cle_rec.line_number <> OKE_API.G_MISS_CHAR
187 AND p_cle_rec.line_number IS NOT NULL) THEN
188
189 l_line_num := RTRIM(p_cle_rec.line_number)||' ';
190 IF length(l_line_num)=1 THEN
191
192 OKE_API.SET_MESSAGE(p_app_name =>g_app_name,
193 p_msg_name =>G_REQUIRED_VALUE,
194 p_token1 =>G_COL_NAME_TOKEN,
195 p_token1_value =>'LINE_NUMBER');
196 x_return_status := OKE_API.G_RET_STS_ERROR;
197 END IF;
198
199
200
201 END IF;
202
203
204
205
206 EXCEPTION
207
208 WHEN OTHERS THEN
209 -- store SQL error message on message stack
210 OKE_API.SET_MESSAGE(
211 p_app_name =>g_app_name,
212 p_msg_name =>G_UNEXPECTED_ERROR,
213 p_token1 =>G_SQLCODE_TOKEN,
214 p_token1_value =>SQLCODE,
215 p_token2 =>G_SQLERRM_TOKEN,
216 p_token2_value =>SQLERRM);
217 x_return_status := OKE_API.G_RET_STS_UNEXP_ERROR;
218
219 END validate_OKC_line_fields;
220
221 PROCEDURE validate_delivery_Date (x_return_status OUT NOCOPY VARCHAR2,
222 p_line_id IN NUMBER,
223 p_start_date DATE,
224 p_end_date DATE,
225 p_due_date DATE
226 )
227 IS
228
229 CURSOR c_dates IS
230 select max(start_date), min(end_date)
231 from oke_k_lines_v
232 where k_line_id in (select cle_id_ascendant from okc_ancestrys
233 where cle_id = p_line_id) ;
234
235
236 l_start DATE;
237 l_end DATE;
238 BEGIN
239 x_return_status := OKE_API.G_RET_STS_SUCCESS;
240
241 IF p_end_date IS NOT NULL THEN
242 IF p_end_date < p_due_date THEN
243 x_return_status := OKE_API.G_RET_STS_error;
244 OKE_API.SET_MESSAGE('OKE','OKE_WRONG_DELIVERY_DATE');
245 RETURN;
246 End If;
247 End If;
248
249
250 IF p_start_date IS NOT NULL THEN
251 IF p_start_date > p_due_date THEN
252 x_return_status := OKE_API.G_RET_STS_error;
253 OKE_API.SET_MESSAGE('OKE','OKE_WRONG_DELIVERY_DATE');
254 RETURN;
255 End If;
256 End If;
257
258 EXCEPTION
259
260 WHEN OTHERS THEN
261 -- store SQL error message on message stack
262 OKE_API.SET_MESSAGE(
263 p_app_name =>g_app_name,
264 p_msg_name =>G_UNEXPECTED_ERROR,
265 p_token1 =>G_SQLCODE_TOKEN,
266 p_token1_value =>SQLCODE,
267 p_token2 =>G_SQLERRM_TOKEN,
268 p_token2_value =>SQLERRM);
269 x_return_status := OKE_API.G_RET_STS_UNEXP_ERROR;
270
271 END validate_delivery_Date;
272
273 PROCEDURE validate_proposal_due_date(x_return_status OUT NOCOPY VARCHAR2,p_proposal_due_date IN VARCHAR2)
274 IS
275
276 BEGIN
277 x_return_status := OKE_API.G_RET_STS_SUCCESS;
278 IF To_Number(p_proposal_due_date)<0 THEN
279 RAISE invalid_number;
280 END IF;
281 EXCEPTION
282 WHEN INVALID_NUMBER
283 THEN
284 x_return_status := OKE_API.G_RET_STS_ERROR;
285 OKE_API.SET_MESSAGE('OKE','OKE_INVALID_DAYS_ARO');
286 END validate_proposal_due_date;
287
288 PROCEDURE update_line_total(p_chr_id NUMBER, p_line_id NUMBER, p_parent_id NUMBER, p_diff NUMBER, p_diff_u NUMBER ) IS
289 l_chld_exist VARCHAR2(1) := '?';
290 CURSOR c_children IS
291 SELECT '!'
292 FROM okc_k_lines_b
293 WHERE cle_id = p_LINE_ID;
294 BEGIN
295
296 OPEN c_children;
297 FETCH c_children INTO l_chld_exist;
298 CLOSE c_children;
299
300 IF l_chld_exist='!' THEN RETURN; END IF;
301 IF p_diff <> 0 OR p_diff_u <> 0 THEN
302 UPDATE oke_k_headers
303 SET line_value_total = line_value_total - Nvl(p_diff,0)
304 ,undef_line_value_total = undef_line_value_total - Nvl(p_diff_u,0)
305 WHERE k_header_id = p_chr_id;
306 END IF;
307
308 IF p_diff <> 0 OR p_diff_u <> 0 THEN
309 IF p_parent_id IS NOT NULL THEN
310 update oke_k_lines
311 set line_value_total = Nvl(line_value_total,0) - Nvl(p_diff,0),
312 undef_line_value_total = Nvl(undef_line_value_total,0) - Nvl(p_diff_u,0)
313 where k_line_id IN (
314 SELECT id FROM okc_k_lines_b
315 WHERE id IS NOT NULL
316 START WITH id = p_parent_id
317 CONNECT BY PRIOR CLE_ID = ID);
318 END IF;
319 END IF;
320
321 END update_line_total;
322
323
324 PROCEDURE VALIDATE_line_dates (x_return_status OUT NOCOPY VARCHAR2,
325 p_line_id IN NUMBER,
326 p_col_name IN VARCHAR2,
327 p_line_start_date in DATE,
328 p_line_end_date IN DATE,
329 p_line_due_date IN DATE,
330 p_cle_id IN NUMBER,
331 p_chr_id IN NUMBER
332 )
333 IS
334
335
336 l_line_start_date DATE := p_line_start_date;
337 l_line_end_date DATE := p_line_end_date;
338 l_line_due_date DATE := p_line_due_date;
339 l_parent_start_date DATE;
340 l_parent_end_date DATE;
341
342 l_exit NUMBER := 0;
343
344 cursor parent_cursor(l_id NUMBER) is
345 select start_date, end_date
346 from oke_k_lines_v
347 where k_line_id = l_id;
348
349 cursor child_cursor(l_id NUMBER) is
350 select start_date, end_date
351 from oke_k_lines_v
352 where k_line_id in
353 (
354 select cle_id from okc_ancestrys
355 where cle_id_ascendant=l_id
356 );
357 child_rec child_cursor%ROWTYPE;
358
359
360
361 cursor deliver_cursor(k_id NUMBER, l_id NUMBER) is
362 select start_date, end_date
363 from oke_k_deliverables_b
364 where k_header_id = k_id and k_line_id = l_id;
365 del_rec deliver_cursor%ROWTYPE;
366
367 CURSOR get_header_dates(p_id NUMBER)
368 IS
369 SELECT start_date,end_date
370 FROM okc_k_headers_all_b
371 WHERE id=p_id;
372
373 BEGIN
374 x_return_status := OKE_API.G_RET_STS_SUCCESS;
375
376
377 -- Check if the new SD/ED invalid its SD/ED/DD
378 if (p_col_name = 'Start Date') then
379 if (l_line_start_date is not null AND
380 (l_line_start_date > l_line_due_date OR
381 l_line_start_date > l_line_end_date)
382 )
383 THEN
384 x_return_status := OKE_API.G_RET_STS_ERROR;
385 OKE_API.SET_MESSAGE('OKE','OKE_INVALID_LINE_START_DATE');
386 RETURN;
387 end if;
388 else
389 if (l_line_end_date is not null AND
390 (l_line_end_date < l_line_due_date OR
391 l_line_end_date < l_line_start_date)
392 )
393 THEN
394 x_return_status := OKE_API.G_RET_STS_ERROR;
395 OKE_API.SET_MESSAGE('OKE','OKE_INVALID_LINE_END_DATE');
396 RETURN;
397 end if;
398 end if;
399
400
401 -- if top line, validate the new date against header dates
402 -- else validate the new date against parent line dates
403 if (p_cle_id IS NULL) then
404 OPEN get_header_dates(p_chr_id);
405 FETCH get_header_dates INTO l_parent_start_date,l_parent_end_date;
406 CLOSE get_header_dates;
407
408 if (p_col_name = 'Start Date') then
409 if (l_parent_start_date > l_line_start_date) then
410 x_return_status := OKE_API.G_RET_STS_ERROR;
411 OKE_API.SET_MESSAGE('OKE','OKE_TOPLINE_SD');
412 RETURN;
413 end if;
414 end if;
415
416 if (p_col_name = 'End Date') then
417 if (l_line_end_date is null AND l_parent_end_date IS NOT NULL) then
418 OKE_API.SET_MESSAGE('OKE','OKE_TOPLINE_ED');
419 elsif (l_parent_end_date < l_line_end_date) then
420 OKE_API.SET_MESSAGE('OKE','OKE_TOPLINE_ED');
421 end if;
422 end if;
423
424 else
425 open parent_cursor(p_cle_id);
426 fetch parent_cursor into l_parent_start_date, l_parent_end_date;
427 close parent_cursor;
428 if (p_col_name = 'Start Date') then
429 if (l_parent_start_date > l_line_start_date) THEN
430 x_return_status := OKE_API.G_RET_STS_ERROR;
431 OKE_API.SET_MESSAGE('OKE','OKE_SUBLINE_SD');
432 RETURN;
433 end if;
434 end if;
435
436 if (p_col_name = 'End Date') then
437 if (l_line_end_date is null AND l_parent_end_date IS NOT NULL) then
438 OKE_API.SET_MESSAGE('OKE','OKE_SUBLINE_ED');
439 elsif (l_parent_end_date < l_line_end_date) then
440 OKE_API.SET_MESSAGE('OKE','OKE_SUBLINE_ED');
441 end if;
442 end if;
443 end if;
444
445
446 -- Validate the new date against all children lines
447 open child_cursor(p_line_id);
448 LOOP
449 fetch child_cursor into child_rec;
450 EXIT WHEN (child_cursor%NOTFOUND OR l_exit=1);
451 if (p_col_name = 'Start Date') then
452 if (l_line_start_date > child_rec.start_date) then
453 OKE_API.SET_MESSAGE('OKE','OKE_WRONG_PARENT_SD');
454 x_return_status := OKE_API.G_RET_STS_ERROR;
455 RAISE OKE_API.G_EXCEPTION_ERROR;
456 end if;
457 end if;
458
459 if (p_col_name = 'End Date') then
460 if (l_line_end_date is null AND child_rec.end_date IS NOT NULL) then
461 OKE_API.SET_MESSAGE('OKE','OKE_WRONG_PARENT_ED');
462 l_exit := 1;
463 elsif (l_line_end_date < child_rec.end_date) then
464 OKE_API.SET_MESSAGE('OKE','OKE_WRONG_PARENT_ED');
465 l_exit := 1;
466 end if;
467 end if;
468 END LOOP;
469 close child_cursor;
470
471 -- Validate Deliverables
472 open deliver_cursor(p_chr_id,p_line_id);
473 LOOP
474 fetch deliver_cursor into del_rec;
475 EXIT WHEN (deliver_cursor%NOTFOUND OR l_exit = 1);
476 if (p_col_name = 'Start Date'AND l_line_start_date is not null) then
477 if (del_rec.start_date is null) then
478 OKE_API.SET_MESSAGE('OKE','OKE_LINE_DTS_SD');
479 l_exit := 1;
480 elsif (l_line_start_date > del_rec.start_date) then
481 OKE_API.SET_MESSAGE('OKE','OKE_LINE_DTS_SD');
482 l_exit := 1;
483 end if;
484 end if;
485
486 if (p_col_name = 'End Date'AND l_line_end_date is not null) then
487 if (del_rec.end_date is null) then
488 OKE_API.SET_MESSAGE('OKE','OKE_LINE_DTS_ED');
489 l_exit := 1;
490 elsif (l_line_end_date < del_rec.end_date) then
491 OKE_API.SET_MESSAGE('OKE','OKE_LINE_DTS_ED');
492 l_exit := 1;
493 end if;
494 end if;
495 END LOOP;
496 close deliver_cursor;
497
498 EXCEPTION
499 WHEN OKE_API.G_EXCEPTION_ERROR THEN
500 IF child_cursor%ISOPEN THEN
501 CLOSE child_cursor;
502 END IF;
503 IF deliver_cursor%ISOPEN THEN
504 CLOSE deliver_cursor;
505 END IF;
506 RAISE OKE_API.G_EXCEPTION_ERROR;
507 WHEN OTHERS THEN
508 -- store SQL error message on message stack
509 OKE_API.SET_MESSAGE(
510 p_app_name =>g_app_name,
511 p_msg_name =>G_UNEXPECTED_ERROR,
512 p_token1 =>G_SQLCODE_TOKEN,
513 p_token1_value =>SQLCODE,
514 p_token2 =>G_SQLERRM_TOKEN,
515 p_token2_value =>SQLERRM);
516 x_return_status := OKE_API.G_RET_STS_UNEXP_ERROR;
517
518 END VALIDATE_line_dates;
519
520 PROCEDURE VALIDATE_LINE_STATUS (P_LINE_STS_CODE IN VARCHAR2,x_return_status IN OUT NOCOPY VARCHAR2)
521 IS
522
523 CURSOR c_get_status_type IS
524 SELECT STE_CODE
525 FROM OKC_STATUSES_V
526 WHERE CODE = P_LINE_STS_CODE;
527
528 L_STATUS VARCHAR2(240);
529 BEGIN
530
531 x_return_status := OKE_API.G_RET_STS_SUCCESS;
532
533 OPEN c_get_status_type;
534 FETCH c_get_status_type INTO L_STATUS;
535 CLOSE c_get_status_type;
536
537 IF L_STATUS NOT IN ('ENTERED' , 'CANCELLED') THEN
538 OKE_API.SET_MESSAGE
539 (p_app_name => g_app_name,
540 p_msg_name => 'OKE_KAUWB_LINE_DELETE_STATUS'
541 );
542 x_return_status := OKE_API.G_RET_STS_ERROR;
543 END IF;
544
545 EXCEPTION
546 WHEN OTHERS THEN
547 -- store SQL error message on message stack
548 OKE_API.SET_MESSAGE(
549 p_app_name =>g_app_name,
550 p_msg_name =>G_UNEXPECTED_ERROR,
551 p_token1 =>G_SQLCODE_TOKEN,
552 p_token1_value =>SQLCODE,
553 p_token2 =>G_SQLERRM_TOKEN,
554 p_token2_value =>SQLERRM);
555 x_return_status := OKE_API.G_RET_STS_UNEXP_ERROR;
556 END VALIDATE_line_Status;
557
558 FUNCTION CHILD_LINE_EXISTS(p_contract_line_id NUMBER)
559 RETURN VARCHAR2 IS
560
561 cursor c is
562 select 'X' from okc_k_lines_b
563 where cle_id = p_contract_line_id;
564
565 l_value VARCHAR2(1);
566 l_found boolean;
567 BEGIN
568
569 OPEN c;
570 FETCH c INTO l_value;
571 l_found := c%found;
572 close c;
573
574 if l_found then
575 RETURN 'Y' ;
576 ELSE
577 return 'N';
578 end if;
579
580 END CHILD_LINE_EXISTS;
581
582 FUNCTION CHILD_DELIVERABLE_EXISTS(p_contract_line_id NUMBER)
583 RETURN VARCHAR2 IS
584
585 cursor c is
586 select 'X' from oke_k_deliverables_b
587 where k_line_id = p_contract_line_id;
588
589 l_value VARCHAR2(1);
590 l_found boolean;
591 BEGIN
592
593 OPEN c;
594 FETCH c INTO l_value;
595 l_found := c%found;
596 close c;
597
598 if l_found then
599 RETURN 'Y' ;
600 ELSE
601 return 'N';
602 end if;
603
604 END CHILD_DELIVERABLE_EXISTS;
605
606
607 FUNCTION CHILD_FUNDING_EXISTS(p_contract_line_id NUMBER)
608 RETURN VARCHAR2 IS
609
610 cursor c is
611 select 'X' from oke_k_fund_allocations
612 where k_line_id = p_contract_line_id;
613
614 l_value VARCHAR2(1);
615 l_found boolean;
616 BEGIN
617
618 OPEN c;
619 FETCH c INTO l_value;
620 l_found := c%found;
621 close c;
622
623 if l_found then
624 RETURN 'Y' ;
625 ELSE
626 return 'N';
627 end if;
628
629 END CHILD_FUNDING_EXISTS;
630
631 Function Validate_record( p_del_rec IN del_rec_type
632 ) RETURN VARCHAR2 IS
633
634 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
635 x_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
636
637 ----------------------------------
638 procedure validate_direction ( p_del_rec IN del_rec_type,
639 x_return_status OUT NOCOPY varchar2) is
640 BEGIN
641
642 x_return_status := OKE_API.G_RET_STS_SUCCESS;
643 if p_del_rec.DIRECTION='IN' then
644
645 if nvl(p_del_rec.AVAILABLE_FOR_SHIP_FLAG,'N') = 'Y' then
646
647 OKE_API.SET_MESSAGE( p_app_name => g_app_name,
648 p_msg_name => g_invalid_value,
649 p_token1 => g_col_name_token,
650 p_token1_value => 'AVAILABLE_FOR_SHIP_FLAG');
651 X_Return_Status := OKE_API.G_RET_STS_ERROR;
652 end if;
653 elsif p_del_rec.DIRECTION='OUT' then
654
655 if nvl(p_del_rec.READY_TO_PROCURE,'N') = 'Y' then
656
657 OKE_API.SET_MESSAGE( p_app_name => g_app_name,
658 p_msg_name => g_invalid_value,
659 p_token1 => g_col_name_token,
660 p_token1_value => 'READY_TO_PROCURE');
661 X_Return_Status := OKE_API.G_RET_STS_ERROR;
662 end if;
663 end if;
664
665 EXCEPTION
666
667 WHEN OTHERS THEN
668
669 -- store SQL error message on message stack
670 OKE_API.SET_MESSAGE(p_app_name => g_app_name,
671 p_msg_name => g_unexpected_error,
672 p_token1 => g_sqlcode_token,
673 p_token1_value=> sqlcode,
674 p_token2 => g_sqlerrm_token,
675 p_token2_value=> sqlerrm);
676 -- notify caller of an error as UNEXPETED error
677 X_Return_Status := OKE_API.G_RET_STS_UNEXP_ERROR;
678 end validate_direction ;
679 ------------------------
680 procedure Check_Currency( p_del_rec IN del_rec_type,
681 x_return_status OUT NOCOPY varchar2) IS
682
683 L_Currency_Code VARCHAR2(30);
684
685 CURSOR C ( P_ID NUMBER ) IS
686 SELECT currency_code
687 FROM okc_k_headers_b
688 WHERE id =P_ID ;
689
690
691 Diff_Currency_Code EXCEPTION;
692
693
694 BEGIN
695
696 x_return_status := OKE_API.G_RET_STS_SUCCESS;
697
698 IF p_del_rec.CURRENCY_CODE IS NOT NULL THEN
699
700 OPEN C ( p_del_rec.k_header_id );
701 FETCH C INTO L_Currency_Code;
702 CLOSE C;
703
704 IF NVL(L_Currency_Code, p_del_rec.CURRENCY_CODE ) <> p_del_rec.CURRENCY_CODE THEN
705
706 iF p_del_rec.RATE_TYPE IS NULL OR p_del_rec.RATE_DATE IS NULL OR p_del_rec.EXCHANGE_RATE IS NULL THEN
707
708 OKE_API.SET_MESSAGE( p_app_name => g_app_name,
709 p_msg_name => 'OKE_BILL_NO_CONV_RATE');
710
711 X_Return_Status := OKE_API.G_RET_STS_ERROR;
712
713 END IF;
714
715 END IF;
716
717 END IF;
718
719 EXCEPTION
720
721 WHEN OTHERS THEN
722
723 -- store SQL error message on message stack
724 OKE_API.SET_MESSAGE(p_app_name => g_app_name,
725 p_msg_name => g_unexpected_error,
726 p_token1 => g_sqlcode_token,
727 p_token1_value=> sqlcode,
728 p_token2 => g_sqlerrm_token,
729 p_token2_value=> sqlerrm);
730 -- notify caller of an error as UNEXPETED error
731 X_Return_Status := OKE_API.G_RET_STS_UNEXP_ERROR;
732
733
734 END Check_Currency;
735
736 --------------------------------
737 procedure check_data( p_del_rec IN del_rec_type,
738 x_return_status OUT NOCOPY varchar2) is
739
740 l_message VARCHAR2(2000);
741 l_msg Varchar2(80);
742 l_count number := 0;
743 l_id number;
744 l_value varchar2(1);
745 l_unit Number;
746 l_item Varchar2(150);
747 l_project_id Number;
748 l_not_found Boolean;
749
750 l_hold boolean;
751 l_msg_count number;
752 l_msg_data varchar2(2000);
753 l_return_status varchar2(1);
754 l_inventory_org_id Number := p_del_rec.inventory_org_id;
755 l_control_level Number;
756 l_commit boolean;
757 l_start_dt date;
758 l_end_dt date;
759 need_by_date date;
760 l_Choice NUMBER;
761 raise_date_exception BOOLEAN;
762
763 Cursor Unit_c(p_item_id Number, p_org_id Number) Is
764 Select Effectivity_Control From oke_system_items_v
765 Where Id1 = p_item_id
766 And Id2 = p_org_id;
767
768 cursor l_control_csr is
769 select project_control_level
770 from pjm_org_parameters
771 where organization_id = l_id;
772
773 CURSOR ship_c IS
774 SELECT 'X' FROM OKE_SYSTEM_ITEMS_V
775 WHERE ID1 = l_id
776 AND ID2 = l_inventory_org_id
777 AND SHIPPABLE_ITEM_FLAG = 'Y';
778
779 CURSOR req_c IS
780 SELECT 'X' FROM OKE_SYSTEM_ITEMS_V
781 WHERE ID1 = l_id
782 AND ID2 = l_inventory_org_id
783 AND PURCHASING_ENABLED_FLAG = 'Y';
784
785 cursor bill_c is
786 select 'X' from oke_system_items_v
787 where id1 = l_id
788 and id2 = l_inventory_org_id
789 and invoiceable_item_flag = 'Y';
790
791 CURSOR Item_C IS
792 SELECT 'X'
793 FROM oke_system_items_v
794 WHERE ID1 = L_ID
795 AND ID2 = L_Inventory_Org_ID;
796
797 begin
798
799 x_return_status := OKE_API.G_RET_STS_SUCCESS;
800
801 if nvl(p_del_Rec.create_demand,'N') = 'Y' then
802
803 if p_del_Rec.item_id is null or p_del_Rec.inventory_org_id is null
804 or p_del_Rec.ndb_schedule_designator is null
805 or p_del_Rec.quantity is null
806 or p_del_Rec.uom_code is null
807 or p_del_Rec.expected_shipment_date is null then
808
809
810
811 if p_del_Rec.item_id is null then
812 fnd_message.set_name('OKE', 'OKE_DTS_DATA_ITEM');
813 l_msg := fnd_message.get;
814
815 if l_count = 0 then
816 l_message := l_msg;
817 l_count := 1;
818 else
819 l_message := l_message || ', ' || l_msg;
820 end if;
821
822 end if;
823
824 if p_del_Rec.uom_code is null then
825 fnd_message.set_name('OKE', 'OKE_DTS_DATA_UOM_CODE');
826 l_msg := fnd_message.get;
827
828 if l_count = 0 then
829 l_message := l_msg;
830 l_count := 1;
831 else
832 l_message := l_message || ', ' || l_msg;
833 end if;
834
835 end if;
836
837 if p_del_Rec.quantity is null then
838 fnd_message.set_name('OKE', 'OKE_DTS_DATA_QTY');
839 l_msg := fnd_message.get;
840 if l_count = 0 then
841 l_message := l_msg;
842 l_count := 1;
843 else
844 l_message := l_message || ', ' || l_msg;
845 end if;
846
847 end if;
848
849 if p_del_Rec.inventory_org_id is null then
850 fnd_message.set_name('OKE', 'OKE_DTS_DATA_INV');
851 l_msg := fnd_message.get;
852
853 if l_count = 0 then
854 l_message := l_msg;
855 l_count := 1;
856 else
857 l_message := l_message || ', ' || l_msg;
858 end if;
859
860 end if;
861
862 if p_del_Rec.expected_shipment_date is null then
863 fnd_message.set_name('OKE', 'OKE_DTS_DATA_DATE');
864 l_msg := fnd_message.get;
865 if l_count = 0 then
866 l_message := l_msg;
867 l_count := 1;
868 else
869 l_message := l_message || ', ' || l_msg;
870 end if;
871 end if;
872
873
874 if p_del_Rec.ndb_schedule_designator is null then
875 fnd_message.set_name('OKE', 'OKE_DTS_DATA_PLAN');
876 l_msg := fnd_message.get;
877 if l_count = 0 then
878 l_message := l_msg;
879 l_count := 1;
880 else
881 l_message := l_message || ', ' || l_msg;
882 end if;
883
884 end if;
885
886
887
888 OKE_API.SET_MESSAGE(p_app_name => g_app_name,
889 p_msg_name => 'OKE_DTS_MISS_REQ_DATA',
890 p_token1 => 'DATA1',
891 p_token1_value => l_message);
892 -- notify caller of an error
893 X_Return_Status := OKE_API.G_RET_STS_ERROR;
894
895
896 elsif p_del_rec.ITEM_ID IS NOT NULL THEN
897 -- check if the item is shippable
898 l_id := p_del_rec.ITEM_ID;
899 OPEN ship_c;
900 FETCH ship_c INTO l_value;
901 CLOSE ship_c;
902
903 if l_value <> 'X' OR l_value is null then
904
905
906 OKE_API.SET_MESSAGE(p_app_name => g_app_name,
907 p_msg_name => 'OKE_INVALID_ITEM');
908 -- notify caller of an error
909 X_Return_Status := OKE_API.G_RET_STS_ERROR;
910
911 end if;
912
913 else
914 -- check if the deliverable is on hold
915
916 l_hold := oke_check_hold_pkg.is_hold(
917 1
918 ,'T'
919 ,l_return_status
920 ,l_msg_count
921 ,l_msg_data
922 ,'DELIVERABLE'
923 ,p_del_rec.k_header_id
924 ,p_del_rec.k_line_id
925 ,p_del_rec.deliverable_id);
926
927 if l_hold then
928 OKE_API.SET_MESSAGE(p_app_name => g_app_name,
929 p_msg_name => 'OKE_DELIVERABLE_ON_HOLD');
930 -- notify caller of an error
931 X_Return_Status := OKE_API.G_RET_STS_ERROR;
932
933 end if;
934 end if;
935 end if; --create_demand
936
937 if p_del_Rec.shippable_flag = 'Y' then
938 if p_del_rec.available_for_ship_flag = 'Y' then
939
940 if (p_del_rec.item_id is null and p_del_rec.description is null)
941 or p_del_rec.quantity is null
942 or p_del_rec.uom_code is null
943 or p_del_rec.ship_to_location_id is null
944 or p_del_rec.ship_from_location_id is null
945 or p_del_rec.expected_shipment_date is null then
946
947
948
949 if p_del_rec.item_id is null and p_del_rec.description is null then
950 fnd_message.set_name('OKE', 'OKE_DTS_DATA_ITEM_DESC');
951 l_msg := fnd_message.get;
952 if l_count = 0 then
953 l_message := l_msg;
954 l_count := 1;
955 else
956 l_message := l_message || ', ' || l_msg;
957 end if;
958
959 end if;
960
961 if p_del_rec.uom_code is null then
962 fnd_message.set_name('OKE', 'OKE_DTS_DATA_UOM_CODE');
963 l_msg := fnd_message.get;
964 if l_count = 0 then
965 l_message := l_msg;
966 l_count := 1;
967 else
968 l_message := l_message || ', ' || l_msg;
969 end if;
970
971 end if;
972
973 if p_del_rec.expected_shipment_date is null then
974 fnd_message.set_name('OKE', 'OKE_DTS_DATA_DATE');
975 l_msg := fnd_message.get;
976 if l_count = 0 then
977 l_message := l_msg;
978 l_count := 1;
979 else
980 l_message := l_message || ', ' || l_msg;
981 end if;
982 end if;
983
984
985
986 if p_del_rec.quantity is null then
987 fnd_message.set_name('OKE', 'OKE_DTS_DATA_QTY');
988 l_msg := fnd_message.get;
989 if l_count = 0 then
990 l_message := l_msg;
991 l_count := 1;
992 else
993 l_message := l_message || ', ' || l_msg;
994 end if;
995
996 end if;
997
998 if p_del_rec.ship_to_location_id is null then
999 fnd_message.set_name('OKE', 'OKE_DTS_DATA_TO_LOCATION');
1000 l_msg := fnd_message.get;
1001 if l_count = 0 then
1002 l_message := l_msg;
1003 l_count := 1;
1004 else
1005 l_message := l_message || ', ' || l_msg;
1006 end if;
1007
1008 end if;
1009
1010 if p_del_rec.ship_from_location_id is null then
1011 fnd_message.set_name('OKE', 'OKE_DTS_DATA_FROM_LOCATION');
1012 l_msg := fnd_message.get;
1013 if l_count = 0 then
1014 l_message := l_msg;
1015 l_count := 1;
1016 else
1017 l_message := l_message || ', ' || l_msg;
1018 end if;
1019
1020 end if;
1021
1022 OKE_API.SET_MESSAGE(p_app_name => g_app_name,
1023 p_msg_name => 'OKE_DTS_MISS_REQ_DATA',
1024 p_token1 => 'DATA1',
1025 p_token1_value => l_message);
1026 -- notify caller of an error
1027 X_Return_Status := OKE_API.G_RET_STS_ERROR;
1028
1029
1030
1031 elsif p_del_rec.ITEM_ID IS NOT NULL THEN
1032 -- check if the item is shippable
1033 l_id := p_del_rec.ITEM_ID;
1034 OPEN ship_c;
1035 FETCH ship_c INTO l_value;
1036 CLOSE ship_c;
1037
1038 if l_value <> 'X' OR l_value is null then
1039 fnd_message.set_name('OKE', 'OKE_DTS_NOT_SHIPPABLE');
1040 l_msg := fnd_message.get;
1041
1042 OKE_API.SET_MESSAGE(p_app_name => g_app_name,
1043 p_msg_name => 'OKE_INVALID_ITEM',
1044 p_token1 => 'TOKEN',
1045 p_token1_value => l_msg);
1046 X_Return_Status := OKE_API.G_RET_STS_ERROR;
1047 end if;
1048
1049
1050 else
1051 l_hold := oke_check_hold_pkg.is_hold(
1052 1
1053 ,'T'
1054 ,l_return_status
1055 ,l_msg_count
1056 ,l_msg_data
1057 ,'DELIVERABLE'
1058 ,p_del_rec.k_header_id
1059 ,p_del_rec.k_line_id
1060 ,p_del_rec.deliverable_id);
1061
1062 if l_hold then
1063
1064 OKE_API.SET_MESSAGE(p_app_name => g_app_name,
1065 p_msg_name => 'OKE_DELIVERABLE_ON_HOLD');
1066 X_Return_Status := OKE_API.G_RET_STS_ERROR;
1067 end if;
1068 end if; --item id is null
1069
1070
1071 --
1072 -- If ship undefined item, weight, weight uom, volume, volume uom are required
1073 --
1074
1075 if p_del_rec.item_id is null and p_del_rec.description is not null then
1076
1077 If p_del_rec.weight is null or p_del_rec.weight_uom_code is null or p_del_rec.volume is null or p_del_rec.volume_uom_code is null then
1078
1079
1080 OKE_API.SET_MESSAGE(p_app_name => g_app_name,
1081 p_msg_name => 'OKE_NON_ITEM_SHIP_DATA');
1082 X_Return_Status := OKE_API.G_RET_STS_ERROR;
1083 end if;
1084 end if;
1085
1086 end if; --available for ship
1087
1088 ELSE
1089 IF p_del_rec.available_for_ship_flag = 'Y' THEN
1090 fnd_message.set_name('OKE', 'OKE_DTS_SHIPPABLE');
1091 l_msg := fnd_message.get;
1092
1093
1094
1095 OKE_API.SET_MESSAGE(p_app_name => g_app_name,
1096 p_msg_name => 'OKE_DTS_NOT_ACTION_LINE',
1097 p_token1 => 'TOKEN',
1098 p_token1_value => l_msg);
1099 X_Return_Status := OKE_API.G_RET_STS_ERROR;
1100
1101 END IF;
1102
1103 end if; --shippable_flag
1104
1105
1106 if p_del_rec.ready_to_bill = 'Y' then
1107
1108 if nvl(p_del_rec.billable_flag, 'N') = 'N' then
1109 fnd_message.set_name('OKE', 'OKE_DTS_BILLABLE');
1110 l_msg := fnd_message.get;
1111
1112
1113
1114 OKE_API.SET_MESSAGE(p_app_name => g_app_name,
1115 p_msg_name => 'OKE_DTS_NOT_ACTION_LINE',
1116 p_token1 => 'TOKEN',
1117 p_token1_value => l_msg);
1118 X_Return_Status := OKE_API.G_RET_STS_ERROR;
1119
1120 end if;
1121 end if;
1122
1123 if p_del_rec.billable_flag = 'Y' and p_del_rec.item_id is not null then
1124 l_id :=p_del_rec.item_id;
1125 open bill_c;
1126 fetch bill_c into l_value;
1127 close bill_c;
1128
1129 if l_value <> 'X' or l_value is null then
1130 fnd_message.set_name('OKE', 'OKE_DTS_NOT_BILLABLE');
1131 l_msg := fnd_message.get;
1132
1133
1134 OKE_API.SET_MESSAGE(p_app_name => g_app_name,
1135 p_msg_name => 'OKE_INVALID_ITEM',
1136 p_token1 => 'TOKEN',
1137 p_token1_value => l_msg);
1138 X_Return_Status := OKE_API.G_RET_STS_ERROR;
1139
1140 end if;
1141 end if;
1142
1143
1144 if p_del_rec.shippable_flag = 'Y' and p_del_rec.item_id is not null then
1145 l_id := p_del_rec.item_id;
1146 open ship_c;
1147 fetch ship_c into l_value;
1148 close ship_c;
1149 if l_value <> 'X' or l_value is null then
1150 fnd_message.set_name('OKE', 'OKE_DTS_NOT_SHIPPABLE');
1151 l_msg := fnd_message.get;
1152
1153 OKE_API.SET_MESSAGE(p_app_name => g_app_name,
1154 p_msg_name => 'OKE_INVALID_ITEM',
1155 p_token1 => 'TOKEN',
1156 p_token1_value => l_msg);
1157 X_Return_Status := OKE_API.G_RET_STS_ERROR;
1158 end if;
1159 end if;
1160
1161
1162 if p_del_rec.ready_to_procure = 'Y' then
1163
1164 --
1165 -- Check common fields
1166 --
1167
1168 if p_del_rec.item_id is null
1169 or p_del_rec.quantity is null
1170 or p_del_rec.need_by_date is null
1171 or p_del_rec.ship_to_location_id is null
1172 or p_del_rec.destination_type_code is null
1173 or p_del_rec.destination_type_code = 'EXPENSE' then
1174
1175
1176
1177 if p_del_rec.item_id is null then
1178 if p_del_rec.DESTINATION_TYPE_CODE = 'EXPENSE' then
1179 if p_del_rec.description is null then
1180 fnd_message.set_name('OKE', 'OKE_DTS_DATA_DESC');
1181 l_msg := fnd_message.get;
1182 if l_count = 0 then
1183 l_message := l_msg;
1184 l_count := 1;
1185 else
1186 l_message := l_message || ', ' || l_msg;
1187 end if;
1188 end if;
1189
1190
1191
1192 if p_del_rec.po_category_id is null then
1193 fnd_message.set_name('OKE', 'OKE_DTS_DATA_PO_CATEGORY');
1194 l_msg := fnd_message.get;
1195 if l_count = 0 then
1196 l_message := l_msg;
1197 l_count := 1;
1198 else
1199 l_message := l_message || ', ' || l_msg;
1200 end if;
1201 end if;
1202
1203 if p_del_rec.unit_price is null then
1204 fnd_message.set_name('OKE', 'OKE_DTS_DATA_UNIT_PRICE');
1205 l_msg := fnd_message.get;
1206 if l_count = 0 then
1207 l_message := l_msg;
1208 l_count := 1;
1209 else
1210 l_message := l_message || ', ' || l_msg;
1211 end if;
1212 end if;
1213
1214 else
1215 fnd_message.set_name('OKE', 'OKE_DTS_DATA_ITEM_DESC');
1216 l_msg := fnd_message.get;
1217 if l_count = 0 then
1218 l_message := l_msg;
1219 l_count := 1;
1220 else
1221 l_message := l_message || ', ' || l_msg;
1222 end if;
1223 end if;
1224 end if;
1225
1226 if p_del_rec.quantity is null then
1227 fnd_message.set_name('OKE', 'OKE_DTS_DATA_QTY');
1228 l_msg := fnd_message.get;
1229 if l_count = 0 then
1230 l_message := l_msg;
1231 l_count := 1;
1232 else
1233 l_message := l_message || ', ' || l_msg;
1234 end if;
1235
1236 end if;
1237
1238 if p_del_rec.ship_to_location_id is null then
1239 fnd_message.set_name('OKE', 'OKE_DTS_DATA_TO_LOCATION');
1240 l_msg := fnd_message.get;
1241 if l_count = 0 then
1242 l_message := l_msg;
1243 l_count := 1;
1244 else
1245 l_message := l_message || ', ' || l_msg;
1246 end if;
1247 end if;
1248
1249 if p_del_rec.need_by_date is null then
1250 fnd_message.set_name('OKE', 'OKE_DTS_DATA_PO_DATE');
1251 l_msg := fnd_message.get;
1252 if l_count = 0 then
1253 l_message := l_msg;
1254 l_count := 1;
1255 else
1256 l_message := l_message || ', ' || l_msg;
1257 end if;
1258 end if;
1259
1260 IF p_del_rec.Destination_Type_Code Is Null Then
1261 Fnd_Message.Set_Name('OKE', 'OKE_DTS_DATA_DES_CODE');
1262 l_msg := fnd_message.get;
1263 If L_Count = 0 Then
1264 L_Message := L_Msg;
1265 L_Count := 1;
1266 Else
1267 L_Message := L_Message || ', ' || L_Msg;
1268 End If;
1269 Elsif p_del_rec.Destination_Type_Code = 'EXPENSE' Then
1270
1271
1272
1273
1274 IF p_del_rec.PROJECT_ID IS NOT NULL THEN
1275
1276 IF p_del_rec.TASK_ID IS NULL THEN
1277 FND_MESSAGE.Set_Name('OKE', 'OKE_DTS_DATA_TASK');
1278 L_Msg := FND_MESSAGE.Get;
1279 IF L_Count = 0 THEN
1280 L_Message := L_Msg;
1281 L_Count := 1;
1282 ELSE
1283 L_Message := L_Message || ', ' || L_Msg;
1284 END IF;
1285 END IF;
1286
1287 If p_del_rec.Expenditure_Organization_Id Is Null Then
1288 Fnd_Message.Set_Name('OKE', 'OKE_DTS_DATA_EXP_ORG_ID');
1289 L_Msg := Fnd_Message.Get;
1290 If L_Count = 0 Then
1291 L_Message := L_Msg;
1292 L_Count := 1;
1293 Else
1294 L_Message := L_Message || ', ' || L_Msg;
1295 End If;
1296 End If;
1297
1298 If p_del_rec.Expenditure_Type Is Null Then
1299 Fnd_Message.Set_Name('OKE', 'OKE_DTS_DATA_EXP_TYPE');
1300 L_Msg := Fnd_Message.Get;
1301 If L_Count = 0 Then
1302 L_Message := L_Msg;
1303 L_Count := 1;
1304 Else
1305 L_Message := L_Message || ', ' || L_Msg;
1306 End If;
1307 End If;
1308
1309 If p_del_rec.Expenditure_Item_Date Is Null Then
1310 Fnd_Message.Set_Name('OKE', 'OKE_DTS_DATA_EXP_ITEM_DATE');
1311 L_Msg := Fnd_Message.Get;
1312 If L_Count = 0 Then
1313 L_Message := L_Msg;
1314 L_Count := 1;
1315 Else
1316 L_Message := L_Message || ', ' || L_Msg;
1317 End If;
1318 End If;
1319
1320 END IF;
1321
1322 End If;
1323
1324 If L_Message Is Not Null Then
1325
1326
1327 OKE_API.SET_MESSAGE(p_app_name => g_app_name,
1328 p_msg_name => 'OKE_DTS_MISS_REQ_DATA',
1329 p_token1 =>'DATA1',
1330 p_token1_value => l_message);
1331 X_Return_Status := OKE_API.G_RET_STS_ERROR;
1332 End If;
1333
1334
1335 elsif p_del_rec.ITEM_ID IS NOT NULL THEN
1336
1337 -- check if the item is purchasable
1338 l_id := p_del_rec.ITEM_ID;
1339 OPEN req_c;
1340 FETCH req_c INTO l_value;
1341 CLOSE req_c;
1342
1343 if l_value is null or l_value <> 'X' then
1344 fnd_message.set_name('OKE', 'OKE_DTS_NOT_PURCHASABLE');
1345 l_msg := fnd_message.get;
1346
1347
1348 OKE_API.SET_MESSAGE(p_app_name => g_app_name,
1349 p_msg_name => 'OKE_INVALID_ITEM',
1350 p_token1 =>'TOKEN',
1351 p_token1_value => l_mSG);
1352 X_Return_Status := OKE_API.G_RET_STS_ERROR;
1353 end if;
1354
1355
1356
1357 else
1358 l_hold := oke_check_hold_pkg.is_hold(
1359 1
1360 ,'T'
1361 ,l_return_status
1362 ,l_msg_count
1363 ,l_msg_data
1364 ,'DELIVERABLE'
1365 ,P_DEL_REC.k_header_id
1366 ,p_del_Rec.k_line_id
1367 ,p_del_Rec.deliverable_id);
1368
1369 if l_hold then
1370
1371 OKE_API.SET_MESSAGE(p_app_name => g_app_name,
1372 p_msg_name => 'OKE_DELIVERABLE_ON_HOLD');
1373 X_Return_Status := OKE_API.G_RET_STS_ERROR;
1374 end if;
1375 end if;
1376
1377
1378 end if;
1379
1380
1381 -- check if unit_number is required for the item
1382 if p_del_rec.item_id is not null then
1383 open Unit_c(p_del_rec.item_id, p_del_rec.inventory_org_id);
1384 fetch Unit_c into l_unit;
1385 close Unit_c;
1386
1387 if l_unit = 2 then
1388 if p_del_rec.unit_number is null then
1389
1390 OKE_API.SET_MESSAGE(p_app_name => g_app_name,
1391 p_msg_name => 'OKE_UNIT_NUMBER_REQUIRED');
1392 X_Return_Status := OKE_API.G_RET_STS_ERROR;
1393 end if;
1394 end if;
1395
1396 END IF;
1397
1398 EXCEPTION
1399
1400 WHEN OTHERS THEN
1401
1402 -- store SQL error message on message stack
1403 OKE_API.SET_MESSAGE(p_app_name => g_app_name,
1404 p_msg_name => g_unexpected_error,
1405 p_token1 => g_sqlcode_token,
1406 p_token1_value=> sqlcode,
1407 p_token2 => g_sqlerrm_token,
1408 p_token2_value=> sqlerrm);
1409 -- notify caller of an error as UNEXPETED error
1410 X_Return_Status := OKE_API.G_RET_STS_UNEXP_ERROR;
1411
1412
1413
1414 end check_data;
1415
1416 BEGIN
1417
1418 check_data( p_del_rec => p_del_rec,
1419 x_return_status => l_return_status);
1420
1421 If l_return_status <> OKE_API.G_RET_STS_SUCCESS Then
1422 If x_return_status <> OKE_API.G_RET_STS_UNEXP_ERROR Then
1423 x_return_status := l_return_status;
1424 End If;
1425 End If;
1426
1427 Check_Currency( p_del_rec => p_del_rec,
1428 x_return_status => l_return_status);
1429
1430 If l_return_status <> OKE_API.G_RET_STS_SUCCESS Then
1431 If x_return_status <> OKE_API.G_RET_STS_UNEXP_ERROR Then
1432 x_return_status := l_return_status;
1433 End If;
1434 End If;
1435
1436 Validate_direction( p_del_rec => p_del_rec,
1437 x_return_status => l_return_status);
1438
1439 If l_return_status <> OKE_API.G_RET_STS_SUCCESS Then
1440 If x_return_status <> OKE_API.G_RET_STS_UNEXP_ERROR Then
1441 x_return_status := l_return_status;
1442 End If;
1443 End If;
1444
1445 return (x_return_status);
1446
1447 exception
1448 WHEN OTHERS THEN
1449 -- store SQL error message on message stack
1450 OKE_API.SET_MESSAGE(
1451 p_app_name =>g_app_name,
1452 p_msg_name =>G_UNEXPECTED_ERROR,
1453 p_token1 =>G_SQLCODE_TOKEN,
1454 p_token1_value =>SQLCODE,
1455 p_token2 =>G_SQLERRM_TOKEN,
1456 p_token2_value =>SQLERRM);
1457
1458 x_return_status := OKE_API.G_RET_STS_UNEXP_ERROR;
1459
1460 RETURN(x_return_status);
1461
1462
1463 END validate_record;
1464
1465
1466 PROCEDURE create_contract_header(
1467
1468 p_api_version IN NUMBER,
1469 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
1470 p_ignore_oke_validation IN VARCHAR2 DEFAULT 'N',
1471 x_return_status OUT NOCOPY VARCHAR2,
1472 x_msg_count OUT NOCOPY NUMBER,
1473 x_msg_data OUT NOCOPY VARCHAR2,
1474
1475 p_chr_rec IN chr_rec_type,
1476 x_chr_rec OUT NOCOPY chr_rec_type) IS
1477
1478 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_CONTRACT_HEADER';
1479 l_api_version CONSTANT NUMBER := 1.0;
1480 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
1481
1482
1483 l_okc_chrv_rec OKC_CONTRACT_PUB.chrv_rec_type;
1484 l_oke_chr_rec OKE_CONTRACT_PUB.chr_rec_type;
1485
1486 l_out_chrv OKC_CONTRACT_PUB.chrv_rec_type;
1487 l_out_chr OKE_CONTRACT_PUB.chr_rec_type;
1488
1489
1490
1491 BEGIN
1492 -- call START_ACTIVITY to create savepoint, check compatibility
1493 -- and initialize message list
1494 l_return_status := OKE_API.START_ACTIVITY(
1495 p_api_name => l_api_name,
1496 p_pkg_name => g_pkg_name,
1497 p_init_msg_list => p_init_msg_list,
1498 l_api_version => l_api_version,
1499 p_api_version => p_api_version,
1500 p_api_type => g_api_type,
1501 x_return_status => x_return_status);
1502
1503 -- check if activity started successfully
1504 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
1505 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1506 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
1507 raise OKE_API.G_EXCEPTION_ERROR;
1508 End If;
1509
1510
1511
1512
1513
1514
1515 -- start assigning items into the records
1516
1517
1518 l_oke_chr_rec.k_header_id := p_chr_rec.k_header_id;
1519 l_oke_chr_rec.program_id := p_chr_rec.program_id;
1520 l_oke_chr_rec.project_id := p_chr_rec.project_id;
1521 l_oke_chr_rec.boa_id := p_chr_rec.boa_id;
1522 l_oke_chr_rec.k_type_code := p_chr_rec.k_type_code;
1523 l_oke_chr_rec.priority_code := p_chr_rec.priority_code;
1524 l_oke_chr_rec.prime_k_alias := p_chr_rec.prime_k_alias;
1525 l_oke_chr_rec.prime_k_number := p_chr_rec.prime_k_number;
1526 l_oke_chr_rec.authorize_date := p_chr_rec.authorize_date;
1527 l_oke_chr_rec.authorizing_reason := p_chr_rec.authorizing_reason;
1528 l_oke_chr_rec.award_cancel_date := p_chr_rec.award_cancel_date;
1529 l_oke_chr_rec.award_date := p_chr_rec.award_date;
1530 l_oke_chr_rec.date_definitized := p_chr_rec.date_definitized;
1531 l_oke_chr_rec.date_issued := p_chr_rec.date_issued;
1532 l_oke_chr_rec.date_negotiated := p_chr_rec.date_negotiated;
1533 l_oke_chr_rec.date_received := p_chr_rec.date_received;
1534 l_oke_chr_rec.date_sign_by_contractor := p_chr_rec.date_sign_by_contractor;
1535 l_oke_chr_rec.date_sign_by_customer := p_chr_rec.date_sign_by_customer;
1536 l_oke_chr_rec.faa_approve_date := p_chr_rec.faa_approve_date;
1537 l_oke_chr_rec.faa_reject_date := p_chr_rec.faa_reject_date;
1538 l_oke_chr_rec.booked_flag := p_chr_rec.booked_flag;
1539 l_oke_chr_rec.open_flag := p_chr_rec.open_flag;
1540 l_oke_chr_rec.cfe_flag := p_chr_rec.cfe_flag;
1541 l_oke_chr_rec.vat_code := p_chr_rec.vat_code;
1542 l_oke_chr_rec.country_of_origin_code := p_chr_rec.country_of_origin_code;
1543 l_oke_chr_rec.export_flag := p_chr_rec.export_flag;
1544 l_oke_chr_rec.human_subject_flag := p_chr_rec.human_subject_flag;
1545 l_oke_chr_rec.cqa_flag := p_chr_rec.cqa_flag;
1546 l_oke_chr_rec.interim_rpt_req_flag := p_chr_rec.interim_rpt_req_flag;
1547 l_oke_chr_rec.no_competition_authorize:= p_chr_rec.no_competition_authorize;
1548 l_oke_chr_rec.penalty_clause_flag := p_chr_rec.penalty_clause_flag;
1549 l_oke_chr_rec.product_line_code := p_chr_rec.product_line_code;
1550 l_oke_chr_rec.reporting_flag := p_chr_rec.reporting_flag;
1551 l_oke_chr_rec.sb_plan_req_flag := p_chr_rec.sb_plan_req_flag;
1552 l_oke_chr_rec.sb_report_flag := p_chr_rec.sb_report_flag;
1553 l_oke_chr_rec.nte_amount := p_chr_rec.nte_amount;
1554 l_oke_chr_rec.nte_warning_flag := p_chr_rec.nte_warning_flag;
1555 l_oke_chr_rec.bill_without_def_flag := p_chr_rec.bill_without_def_flag;
1556 l_oke_chr_rec.cas_flag := p_chr_rec.cas_flag;
1557 l_oke_chr_rec.classified_flag := p_chr_rec.classified_flag;
1558 l_oke_chr_rec.client_approve_req_flag := p_chr_rec.client_approve_req_flag;
1559 l_oke_chr_rec.cost_of_money := p_chr_rec.cost_of_money;
1560 l_oke_chr_rec.dcaa_audit_req_flag := p_chr_rec.dcaa_audit_req_flag;
1561 l_oke_chr_rec.cost_share_flag := p_chr_rec.cost_share_flag;
1562 l_oke_chr_rec.oh_rates_final_flag := p_chr_rec.oh_rates_final_flag;
1563 l_oke_chr_rec.prop_delivery_location := p_chr_rec.prop_delivery_location;
1564 l_oke_chr_rec.prop_due_date_time := p_chr_rec.prop_due_date_time;
1565 l_oke_chr_rec.prop_expire_date := p_chr_rec.prop_expire_date;
1566 l_oke_chr_rec.copies_required := p_chr_rec.copies_required;
1567 l_oke_chr_rec.sic_code := p_chr_rec.sic_code;
1568 l_oke_chr_rec.tech_data_wh_rate := p_chr_rec.tech_data_wh_rate;
1569 l_oke_chr_rec.progress_payment_flag := p_chr_rec.progress_payment_flag;
1570 l_oke_chr_rec.progress_payment_liq_rate:=p_chr_rec.progress_payment_liq_rate;
1571 l_oke_chr_rec.progress_payment_rate := p_chr_rec.progress_payment_rate;
1572 l_oke_chr_rec.alternate_liquidation_rate:=p_chr_rec.alternate_liquidation_rate;
1573 l_oke_chr_rec.prop_due_time := p_chr_rec.prop_due_time;
1574 l_oke_chr_rec.definitized_flag := p_chr_rec.definitized_flag;
1575 l_oke_chr_rec.financial_ctrl_verified_flag := p_chr_rec.financial_ctrl_verified_flag;
1576 l_oke_chr_rec.cost_of_sale_rate := p_chr_rec.cost_of_sale_rate;
1577 l_oke_chr_rec.created_by := p_chr_rec.created_by;
1578 l_oke_chr_rec.creation_date := p_chr_rec.creation_date;
1579 l_oke_chr_rec.last_updated_by := p_chr_rec.last_updated_by;
1580 l_oke_chr_rec.last_update_login := p_chr_rec.last_update_login;
1581 l_oke_chr_rec.last_update_date := p_chr_rec.last_update_date;
1582 l_oke_chr_rec.line_value_total := p_chr_rec.line_value_total;
1583 l_oke_chr_rec.undef_line_value_total := p_chr_rec.undef_line_value_total;
1584 l_oke_chr_rec.owning_organization_id := p_chr_rec.owning_organization_id;
1585
1586
1587 l_okc_chrv_rec.id := p_chr_rec.k_header_id;
1588 l_okc_chrv_rec.object_version_number := p_chr_rec.object_version_number;
1589 l_okc_chrv_rec.sfwt_flag := p_chr_rec.sfwt_flag;
1590 l_okc_chrv_rec.chr_id_response := p_chr_rec.chr_id_response;
1591 l_okc_chrv_rec.chr_id_award := p_chr_rec.chr_id_award;
1592
1593 l_okc_chrv_rec.INV_ORGANIZATION_ID := p_chr_rec.INV_ORGANIZATION_ID;
1594 l_okc_chrv_rec.sts_code := p_chr_rec.sts_code;
1595 l_okc_chrv_rec.qcl_id := p_chr_rec.qcl_id;
1596 l_okc_chrv_rec.scs_code := p_chr_rec.scs_code;
1597 l_okc_chrv_rec.contract_number := p_chr_rec.contract_number;
1598 l_okc_chrv_rec.currency_code := p_chr_rec.currency_code;
1599 l_okc_chrv_rec.contract_number_modifier := p_chr_rec.contract_number_modifier;
1600 l_okc_chrv_rec.archived_yn := p_chr_rec.archived_yn;
1601 l_okc_chrv_rec.deleted_yn := p_chr_rec.deleted_yn;
1602 l_okc_chrv_rec.cust_po_number_req_yn := p_chr_rec.cust_po_number_req_yn;
1603 l_okc_chrv_rec.pre_pay_req_yn := p_chr_rec.pre_pay_req_yn;
1604 l_okc_chrv_rec.cust_po_number := p_chr_rec.cust_po_number;
1605 l_okc_chrv_rec.short_description := p_chr_rec.short_description;
1606 l_okc_chrv_rec.comments := p_chr_rec.comments;
1607 l_okc_chrv_rec.description := p_chr_rec.description;
1608 l_okc_chrv_rec.dpas_rating := p_chr_rec.dpas_rating;
1609 l_okc_chrv_rec.cognomen := p_chr_rec.cognomen;
1610 l_okc_chrv_rec.template_yn := p_chr_rec.template_yn;
1611 l_okc_chrv_rec.template_used := p_chr_rec.template_used;
1612 l_okc_chrv_rec.date_approved := p_chr_rec.date_approved;
1613 l_okc_chrv_rec.datetime_cancelled := p_chr_rec.datetime_cancelled;
1614 l_okc_chrv_rec.auto_renew_days := p_chr_rec.auto_renew_days;
1615 l_okc_chrv_rec.date_issued := p_chr_rec.date_issued;
1616 l_okc_chrv_rec.datetime_responded := p_chr_rec.datetime_responded;
1617 l_okc_chrv_rec.non_response_reason := p_chr_rec.non_response_reason;
1618 l_okc_chrv_rec.non_response_explain := p_chr_rec.non_response_explain;
1619 l_okc_chrv_rec.rfp_type := p_chr_rec.rfp_type;
1620 l_okc_chrv_rec.chr_type := p_chr_rec.chr_type;
1621 l_okc_chrv_rec.keep_on_mail_list := p_chr_rec. keep_on_mail_list;
1622 l_okc_chrv_rec.set_aside_reason := p_chr_rec.set_aside_reason;
1623 l_okc_chrv_rec.set_aside_percent := p_chr_rec.set_aside_percent;
1624 l_okc_chrv_rec.response_copies_req := p_chr_rec.response_copies_req;
1625 l_okc_chrv_rec.date_close_projected := p_chr_rec.date_close_projected;
1626 l_okc_chrv_rec.datetime_proposed := p_chr_rec.datetime_proposed;
1627 l_okc_chrv_rec.date_signed := p_chr_rec.date_signed;
1628 l_okc_chrv_rec.date_terminated := p_chr_rec.date_terminated;
1629 l_okc_chrv_rec.date_renewed := p_chr_rec.date_renewed;
1630 l_okc_chrv_rec.trn_code := p_chr_rec.trn_code;
1631 l_okc_chrv_rec.start_date := p_chr_rec.start_date;
1632 l_okc_chrv_rec.end_date := p_chr_rec.end_date;
1633 l_okc_chrv_rec.authoring_org_id := p_chr_rec.authoring_org_id;
1634 l_okc_chrv_rec.buy_or_sell := p_chr_rec.buy_or_sell;
1635 l_okc_chrv_rec.issue_or_receive := p_chr_rec.issue_or_receive;
1636 l_okc_chrv_rec.estimated_amount := p_chr_rec.estimated_amount;
1637
1638 l_okc_chrv_rec.estimated_amount_renewed := p_chr_rec.estimated_amount_renewed;
1639 l_okc_chrv_rec.currency_code_renewed := p_chr_rec.currency_code_renewed;
1640 l_okc_chrv_rec.upg_orig_system_ref := p_chr_rec.upg_orig_system_ref;
1641 l_okc_chrv_rec.upg_orig_system_ref_id := p_chr_rec.upg_orig_system_ref_id;
1642 l_okc_chrv_rec.attribute_category := p_chr_rec.attribute_category;
1643 l_okc_chrv_rec.attribute1 := p_chr_rec.attribute1;
1644 l_okc_chrv_rec.attribute2 := p_chr_rec.attribute2;
1645 l_okc_chrv_rec.attribute3 := p_chr_rec.attribute3;
1646 l_okc_chrv_rec.attribute4 := p_chr_rec.attribute4;
1647 l_okc_chrv_rec.attribute5 := p_chr_rec.attribute5;
1648 l_okc_chrv_rec.attribute6 := p_chr_rec.attribute6;
1649 l_okc_chrv_rec.attribute7 := p_chr_rec.attribute7;
1650 l_okc_chrv_rec.attribute8 := p_chr_rec.attribute8;
1651 l_okc_chrv_rec.attribute9 := p_chr_rec.attribute9;
1652 l_okc_chrv_rec.attribute10 := p_chr_rec.attribute10;
1653 l_okc_chrv_rec.attribute11 := p_chr_rec.attribute11;
1654 l_okc_chrv_rec.attribute12 := p_chr_rec.attribute12;
1655 l_okc_chrv_rec.attribute13 := p_chr_rec.attribute13;
1656 l_okc_chrv_rec.attribute14 := p_chr_rec.attribute14;
1657 l_okc_chrv_rec.attribute15 := p_chr_rec.attribute15;
1658 l_okc_chrv_rec.created_by := p_chr_rec.created_by;
1659 l_okc_chrv_rec.creation_date := p_chr_rec.creation_date;
1660 l_okc_chrv_rec.last_updated_by := p_chr_rec.last_updated_by;
1661 l_okc_chrv_rec.last_update_date := p_chr_rec.last_update_date;
1662 l_okc_chrv_rec.last_update_login := p_chr_rec.last_update_login;
1663
1664
1665
1666
1667 If nvl(p_ignore_oke_validation,'N') = 'N' then
1668 Validate_OKC_header_fields ( l_return_status, p_chr_rec );
1669
1670 --- If any errors happen abort API
1671 IF (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) THEN
1672 RAISE OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1673 ELSIF (l_return_status = OKE_API.G_RET_STS_ERROR) THEN
1674 RAISE OKE_API.G_EXCEPTION_ERROR;
1675 END IF;
1676 end if;
1677
1678 -- assign mandatory values
1679 l_okc_chrv_rec.archived_yn := 'N';
1680 l_okc_chrv_rec.deleted_yn := 'N';
1681 l_okc_chrv_rec.scs_code := 'PROJECT';
1682
1683
1684
1685
1686 OKE_CONTRACT_PUB.create_contract_header(
1687 p_api_version => p_api_version,
1688 p_init_msg_list => p_init_msg_list,
1689 x_return_status => x_return_status,
1690 x_msg_count => x_msg_count,
1691 x_msg_data => x_msg_data,
1692 p_chr_rec => l_oke_chr_rec,
1693 p_chrv_rec => l_okc_chrv_rec,
1694 x_chr_rec => l_out_chr,
1695 x_chrv_rec => l_out_chrv );
1696
1697 If (x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
1698 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1699 Elsif (x_return_status = OKE_API.G_RET_STS_ERROR) then
1700 raise OKE_API.G_EXCEPTION_ERROR;
1701 End If;
1702
1703
1704
1705 -- Added code to update who columns. neccessary for security to work after import process.
1706
1707 IF p_chr_rec.created_by <> OKE_API.G_MISS_NUM AND p_chr_rec.created_by IS NOT NULL THEN
1708 UPDATE OKE_K_HEADERS SET CREATED_BY = p_chr_rec.created_by
1709 WHERE K_HEADER_ID = l_out_chr.k_header_id;
1710 END IF;
1711 IF p_chr_rec.creation_date <> OKE_API.G_MISS_DATE AND p_chr_rec.creation_date IS NOT NULL THEN
1712 UPDATE OKE_K_HEADERS SET CREATION_DATE = p_chr_rec.creation_date
1713 WHERE K_HEADER_ID = l_out_chr.k_header_id;
1714 END IF;
1715 IF p_chr_rec.last_updated_by <> OKE_API.G_MISS_NUM AND p_chr_rec.last_updated_by IS NOT NULL THEN
1716 UPDATE OKE_K_HEADERS SET LAST_UPDATED_BY = p_chr_rec.last_updated_by
1717 WHERE K_HEADER_ID = l_out_chr.k_header_id;
1718 END IF;
1719 IF p_chr_rec.last_update_login <> OKE_API.G_MISS_NUM AND p_chr_rec.last_update_login IS NOT NULL THEN
1720 UPDATE OKE_K_HEADERS SET LAST_UPDATE_LOGIN = p_chr_rec.last_update_login
1721 WHERE K_HEADER_ID = l_out_chr.k_header_id;
1722 END IF;
1723 IF p_chr_rec.last_update_date <> OKE_API.G_MISS_DATE AND p_chr_rec.last_update_date IS NOT NULL THEN
1724 UPDATE OKE_K_HEADERS SET LAST_UPDATE_DATE = p_chr_rec.last_update_date
1725 WHERE K_HEADER_ID = l_out_chr.k_header_id;
1726 END IF;
1727
1728 -- Added code to update who columns. neccessary for security to work after import process.
1729
1730
1731
1732 -- oke stuff
1733
1734 x_chr_rec.k_header_id := l_out_chr.k_header_id;
1735 x_chr_rec.program_id := l_out_chr.program_id;
1736 x_chr_rec.project_id := l_out_chr.project_id;
1737 x_chr_rec.boa_id := l_out_chr.boa_id;
1738 x_chr_rec.k_type_code := l_out_chr.k_type_code;
1739 x_chr_rec.priority_code := l_out_chr.priority_code;
1740 x_chr_rec.prime_k_alias := l_out_chr.prime_k_alias;
1741 x_chr_rec.prime_k_number := l_out_chr.prime_k_number;
1742 x_chr_rec.authorize_date := l_out_chr.authorize_date;
1743 x_chr_rec.authorizing_reason := l_out_chr.authorizing_reason;
1744 x_chr_rec.award_cancel_date := l_out_chr.award_cancel_date;
1745 x_chr_rec.award_date := l_out_chr.award_date;
1746 x_chr_rec.date_definitized := l_out_chr.date_definitized;
1747 x_chr_rec.date_issued := l_out_chr.date_issued;
1748 x_chr_rec.date_negotiated := l_out_chr.date_negotiated;
1749 x_chr_rec.date_received := l_out_chr.date_received;
1750 x_chr_rec.date_sign_by_contractor := l_out_chr.date_sign_by_contractor;
1751 x_chr_rec.date_sign_by_customer := l_out_chr.date_sign_by_customer;
1752 x_chr_rec.faa_approve_date := l_out_chr.faa_approve_date;
1753 x_chr_rec.faa_reject_date := l_out_chr.faa_reject_date;
1754 x_chr_rec.booked_flag := l_out_chr.booked_flag;
1755 x_chr_rec.open_flag := l_out_chr.open_flag;
1756 x_chr_rec.cfe_flag := l_out_chr.cfe_flag;
1757 x_chr_rec.vat_code := l_out_chr.vat_code;
1758 x_chr_rec.country_of_origin_code := l_out_chr.country_of_origin_code;
1759 x_chr_rec.export_flag := l_out_chr.export_flag;
1760 x_chr_rec.human_subject_flag := l_out_chr.human_subject_flag;
1761 x_chr_rec.cqa_flag := l_out_chr.cqa_flag;
1762 x_chr_rec.interim_rpt_req_flag := l_out_chr.interim_rpt_req_flag;
1763 x_chr_rec.no_competition_authorize := l_out_chr.no_competition_authorize;
1764 x_chr_rec.penalty_clause_flag := l_out_chr.penalty_clause_flag;
1765 x_chr_rec.product_line_code := l_out_chr.product_line_code;
1766 x_chr_rec.reporting_flag := l_out_chr.reporting_flag;
1767 x_chr_rec.sb_plan_req_flag := l_out_chr.sb_plan_req_flag;
1768 x_chr_rec.sb_report_flag := l_out_chr.sb_report_flag;
1769 x_chr_rec.nte_amount := l_out_chr.nte_amount;
1770 x_chr_rec.nte_warning_flag := l_out_chr.nte_warning_flag;
1771 x_chr_rec.bill_without_def_flag := l_out_chr.bill_without_def_flag;
1772 x_chr_rec.cas_flag := l_out_chr.cas_flag;
1773 x_chr_rec.classified_flag := l_out_chr.classified_flag;
1774 x_chr_rec.client_approve_req_flag := l_out_chr.client_approve_req_flag;
1775 x_chr_rec.cost_of_money := l_out_chr.cost_of_money;
1776 x_chr_rec.dcaa_audit_req_flag := l_out_chr.dcaa_audit_req_flag;
1777 x_chr_rec.cost_share_flag := l_out_chr.cost_share_flag;
1778 x_chr_rec.oh_rates_final_flag := l_out_chr.oh_rates_final_flag;
1779 x_chr_rec.prop_delivery_location := l_out_chr.prop_delivery_location;
1780 x_chr_rec.prop_due_date_time := l_out_chr.prop_due_date_time;
1781 x_chr_rec.prop_expire_date := l_out_chr.prop_expire_date;
1782 x_chr_rec.copies_required := l_out_chr.copies_required;
1783 x_chr_rec.sic_code := l_out_chr.sic_code;
1784 x_chr_rec.tech_data_wh_rate := l_out_chr.tech_data_wh_rate;
1785 x_chr_rec.progress_payment_flag := l_out_chr.progress_payment_flag;
1786 x_chr_rec.progress_payment_liq_rate := l_out_chr.progress_payment_liq_rate;
1787 x_chr_rec.progress_payment_rate := l_out_chr.progress_payment_rate;
1788 x_chr_rec.alternate_liquidation_rate := l_out_chr.alternate_liquidation_rate;
1789 x_chr_rec.prop_due_time := l_out_chr.prop_due_time;
1790 x_chr_rec.definitized_flag := l_out_chr.definitized_flag;
1791 x_chr_rec.financial_ctrl_verified_flag:= l_out_chr.financial_ctrl_verified_flag;
1792 x_chr_rec.cost_of_sale_rate := l_out_chr.cost_of_sale_rate;
1793 x_chr_rec.created_by := l_out_chr.created_by;
1794 x_chr_rec.creation_date := l_out_chr.creation_date;
1795 x_chr_rec.last_updated_by := l_out_chr.last_updated_by;
1796 x_chr_rec.last_update_login := l_out_chr.last_update_login;
1797 x_chr_rec.last_update_date := l_out_chr.last_update_date;
1798 x_chr_rec.line_value_total := l_out_chr.line_value_total;
1799 x_chr_rec.undef_line_value_total := l_out_chr.undef_line_value_total;
1800 x_chr_rec.owning_organization_id := l_out_chr.owning_organization_id;
1801
1802
1803
1804 -- okc stuff
1805 -- being later thereby overwriting the oke stuff if there is duplicate fields
1806
1807 x_chr_rec.k_header_id := l_out_chrv.id;
1808 x_chr_rec.object_version_number := l_out_chrv.object_version_number;
1809 x_chr_rec.sfwt_flag := l_out_chrv.sfwt_flag;
1810 x_chr_rec.chr_id_response := l_out_chrv.chr_id_response;
1811 x_chr_rec.chr_id_award := l_out_chrv.chr_id_award;
1812
1813 x_chr_rec.INV_ORGANIZATION_ID := l_out_chrv.INV_ORGANIZATION_ID;
1814 x_chr_rec.sts_code := l_out_chrv.sts_code;
1815 x_chr_rec.qcl_id := l_out_chrv.qcl_id;
1816 x_chr_rec.scs_code := l_out_chrv.scs_code;
1817 x_chr_rec.contract_number := l_out_chrv.contract_number;
1818 x_chr_rec.currency_code := l_out_chrv.currency_code;
1819 x_chr_rec.contract_number_modifier := l_out_chrv.contract_number_modifier;
1820 x_chr_rec.archived_yn := l_out_chrv.archived_yn;
1821 x_chr_rec.deleted_yn := l_out_chrv.deleted_yn;
1822 x_chr_rec.cust_po_number_req_yn := l_out_chrv.cust_po_number_req_yn;
1823 x_chr_rec.pre_pay_req_yn := l_out_chrv.pre_pay_req_yn;
1824 x_chr_rec.cust_po_number := l_out_chrv.cust_po_number;
1825 x_chr_rec.short_description := l_out_chrv.short_description;
1826 x_chr_rec.comments := l_out_chrv.comments;
1827 x_chr_rec.description := l_out_chrv.description;
1828 x_chr_rec.dpas_rating := l_out_chrv.dpas_rating;
1829 x_chr_rec.cognomen := l_out_chrv.cognomen;
1830 x_chr_rec.template_yn := l_out_chrv.template_yn;
1831 x_chr_rec.template_used := l_out_chrv.template_used;
1832 x_chr_rec.date_approved := l_out_chrv.date_approved;
1833 x_chr_rec.datetime_cancelled := l_out_chrv.datetime_cancelled;
1834 x_chr_rec.auto_renew_days := l_out_chrv.auto_renew_days;
1835 x_chr_rec.date_issued := l_out_chrv.date_issued;
1836 x_chr_rec.datetime_responded := l_out_chrv.datetime_responded;
1837 x_chr_rec.non_response_reason := l_out_chrv.non_response_reason;
1838 x_chr_rec.non_response_explain := l_out_chrv.non_response_explain;
1839 x_chr_rec.rfp_type := l_out_chrv.rfp_type;
1840 x_chr_rec.chr_type := l_out_chrv.chr_type;
1841 x_chr_rec.keep_on_mail_list := l_out_chrv. keep_on_mail_list;
1842 x_chr_rec.set_aside_reason := l_out_chrv.set_aside_reason;
1843 x_chr_rec.set_aside_percent := l_out_chrv.set_aside_percent;
1844 x_chr_rec.response_copies_req := l_out_chrv.response_copies_req;
1845 x_chr_rec.date_close_projected := l_out_chrv.date_close_projected;
1846 x_chr_rec.datetime_proposed := l_out_chrv.datetime_proposed;
1847 x_chr_rec.date_signed := l_out_chrv.date_signed;
1848 x_chr_rec.date_terminated := l_out_chrv.date_terminated;
1849 x_chr_rec.date_renewed := l_out_chrv.date_renewed;
1850 x_chr_rec.trn_code := l_out_chrv.trn_code;
1851 x_chr_rec.start_date := l_out_chrv.start_date;
1852 x_chr_rec.end_date := l_out_chrv.end_date;
1853 x_chr_rec.authoring_org_id := l_out_chrv.authoring_org_id;
1854 x_chr_rec.buy_or_sell := l_out_chrv.buy_or_sell;
1855 x_chr_rec.issue_or_receive := l_out_chrv.issue_or_receive;
1856 x_chr_rec.estimated_amount := l_out_chrv.estimated_amount;
1857
1858 x_chr_rec.estimated_amount_renewed := l_out_chrv.estimated_amount_renewed;
1859 x_chr_rec.currency_code_renewed := l_out_chrv.currency_code_renewed;
1860 x_chr_rec.upg_orig_system_ref := l_out_chrv.upg_orig_system_ref;
1861 x_chr_rec.upg_orig_system_ref_id := l_out_chrv.upg_orig_system_ref_id;
1862 x_chr_rec.attribute_category := l_out_chrv.attribute_category;
1863 x_chr_rec.attribute1 := l_out_chrv.attribute1;
1864 x_chr_rec.attribute2 := l_out_chrv.attribute2;
1865 x_chr_rec.attribute3 := l_out_chrv.attribute3;
1866 x_chr_rec.attribute4 := l_out_chrv.attribute4;
1867 x_chr_rec.attribute5 := l_out_chrv.attribute5;
1868 x_chr_rec.attribute6 := l_out_chrv.attribute6;
1869 x_chr_rec.attribute7 := l_out_chrv.attribute7;
1870 x_chr_rec.attribute8 := l_out_chrv.attribute8;
1871 x_chr_rec.attribute9 := l_out_chrv.attribute9;
1872 x_chr_rec.attribute10 := l_out_chrv.attribute10;
1873 x_chr_rec.attribute11 := l_out_chrv.attribute11;
1874 x_chr_rec.attribute12 := l_out_chrv.attribute12;
1875 x_chr_rec.attribute13 := l_out_chrv.attribute13;
1876 x_chr_rec.attribute14 := l_out_chrv.attribute14;
1877 x_chr_rec.attribute15 := l_out_chrv.attribute15;
1878 x_chr_rec.created_by := l_out_chrv.created_by;
1879 x_chr_rec.creation_date := l_out_chrv.creation_date;
1880 x_chr_rec.last_updated_by := l_out_chrv.last_updated_by;
1881 x_chr_rec.last_update_date := l_out_chrv.last_update_date;
1882 x_chr_rec.last_update_login := l_out_chrv.last_update_login;
1883
1884
1885
1886 OKE_API.END_ACTIVITY( x_msg_count => x_msg_count,
1887 x_msg_data => x_msg_data);
1888 EXCEPTION
1889 when OKE_API.G_EXCEPTION_ERROR then
1890 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
1891 p_api_name => l_api_name,
1892 p_pkg_name => g_pkg_name,
1893 p_exc_name => 'OKE_API.G_RET_STS_ERROR',
1894 x_msg_count => x_msg_count,
1895 x_msg_data => x_msg_data,
1896 p_api_type => g_api_type);
1897
1898 when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
1899 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
1900 p_api_name => l_api_name,
1901 p_pkg_name => g_pkg_name,
1902 p_exc_name => 'OKE_API.G_RET_STS_UNEXP_ERROR',
1903 x_msg_count => x_msg_count,
1904 x_msg_data => x_msg_data,
1905 p_api_type => g_api_type);
1906
1907 when OTHERS then
1908 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
1909 p_api_name => l_api_name,
1910 p_pkg_name => g_pkg_name,
1911 p_exc_name => 'OTHERS',
1912 x_msg_count => x_msg_count,
1913 x_msg_data => x_msg_data,
1914 p_api_type => g_api_type);
1915
1916 END create_contract_header;
1917
1918
1919 PROCEDURE create_contract_line(
1920
1921 p_api_version IN NUMBER,
1922 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
1923 x_return_status OUT NOCOPY VARCHAR2,
1924 x_msg_count OUT NOCOPY NUMBER,
1925 x_msg_data OUT NOCOPY VARCHAR2,
1926 p_cle_rec IN cle_rec_type,
1927 x_cle_rec OUT NOCOPY cle_rec_type,
1928 p_skip_minor_vers IN VARCHAR2 DEFAULT OKE_API.G_FALSE
1929 ) IS
1930
1931 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_CONTRACT_LINE';
1932 l_api_version CONSTANT NUMBER := 1.0;
1933 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
1934
1935 l_okc_clev_rec OKC_CONTRACT_PUB.clev_rec_type;
1936 l_oke_cle_rec OKE_CONTRACT_PUB.cle_rec_type;
1937 l_out_clev OKC_CONTRACT_PUB.clev_rec_type;
1938 l_out_cle OKE_CONTRACT_PUB.cle_rec_type;
1939
1940 l_cimv_rec CIMV_REC_TYPE;
1941 l_cimv_out CIMV_REC_TYPE;
1942 l_inv_Org NUMBER;
1943
1944 CURSOR get_inventory_org (p_chr NUMBER) IS
1945 SELECT inv_organization_id
1946 FROM OKC_K_HEADERS_B
1947 WHERE ID = p_chr;
1948
1949
1950 BEGIN
1951 -- call START_ACTIVITY to create savepoint, check compatibility
1952 -- and initialize message list
1953 l_return_status := OKE_API.START_ACTIVITY(
1954 p_api_name => l_api_name,
1955 p_pkg_name => g_pkg_name,
1956 p_init_msg_list => p_init_msg_list,
1957 l_api_version => l_api_version,
1958 p_api_version => p_api_version,
1959 p_api_type => g_api_type,
1960 x_return_status => x_return_status);
1961
1962 -- check if activity started successfully
1963 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
1964 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1965 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
1966 raise OKE_API.G_EXCEPTION_ERROR;
1967 End If;
1968
1969
1970
1971
1972 l_oke_cle_rec.k_line_id := p_cle_rec.k_line_id;
1973 l_oke_cle_rec.parent_line_id := p_cle_rec.parent_line_id;
1974 l_oke_cle_rec.project_id := p_cle_rec.project_id;
1975 l_oke_cle_rec.task_id := p_cle_rec.task_id;
1976 l_oke_cle_rec.billing_method_code := p_cle_rec.billing_method_code;
1977 l_oke_cle_rec.inventory_item_id := p_cle_rec.inventory_item_id;
1978 l_oke_cle_rec.delivery_order_flag := p_cle_rec.delivery_order_flag;
1979 l_oke_cle_rec.splited_flag := p_cle_rec.splited_flag;
1980 l_oke_cle_rec.priority_code := p_cle_rec.priority_code;
1981 l_oke_cle_rec.customer_item_id := p_cle_rec.customer_item_id;
1982 l_oke_cle_rec.customer_item_number := p_cle_rec.customer_item_number;
1983 l_oke_cle_rec.line_quantity := p_cle_rec.line_quantity;
1984 l_oke_cle_rec.delivery_date := p_cle_rec.delivery_date;
1985 l_oke_cle_rec.unit_price := p_cle_rec.unit_price;
1986 l_oke_cle_rec.uom_code := p_cle_rec.uom_code;
1987 l_oke_cle_rec.billable_flag := p_cle_rec.billable_flag;
1988 l_oke_cle_rec.shippable_flag := p_cle_rec.shippable_flag;
1989 l_oke_cle_rec.subcontracted_flag := p_cle_rec.subcontracted_flag;
1990 l_oke_cle_rec.completed_flag := p_cle_rec.completed_flag;
1991 l_oke_cle_rec.nsp_flag := p_cle_rec.nsp_flag;
1992 l_oke_cle_rec.app_code := p_cle_rec.app_code;
1993 l_oke_cle_rec.as_of_date := p_cle_rec.as_of_date;
1994 l_oke_cle_rec.authority := p_cle_rec.authority;
1995 l_oke_cle_rec.country_of_origin_code := p_cle_rec.country_of_origin_code;
1996 l_oke_cle_rec.drop_shipped_flag := p_cle_rec.drop_shipped_flag;
1997 l_oke_cle_rec.customer_approval_req_flag := p_cle_rec.customer_approval_req_flag;
1998 l_oke_cle_rec.date_material_req := p_cle_rec.date_material_req;
1999 l_oke_cle_rec.inspection_req_flag := p_cle_rec.inspection_req_flag;
2000 l_oke_cle_rec.interim_rpt_req_flag := p_cle_rec.interim_rpt_req_flag;
2001 l_oke_cle_rec.subj_a133_flag := p_cle_rec.subj_a133_flag;
2002 l_oke_cle_rec.export_flag := p_cle_rec.export_flag;
2003 l_oke_cle_rec.cfe_req_flag := p_cle_rec.cfe_req_flag;
2004 l_oke_cle_rec.cop_required_flag := p_cle_rec.cop_required_flag;
2005 l_oke_cle_rec.export_license_num := p_cle_rec.export_license_num;
2006 l_oke_cle_rec.export_license_res := p_cle_rec.export_license_res;
2007 l_oke_cle_rec.copies_required := p_cle_rec.copies_required;
2008 l_oke_cle_rec.cdrl_category := p_cle_rec.cdrl_category;
2009 l_oke_cle_rec.data_item_name := p_cle_rec.data_item_name;
2010 l_oke_cle_rec.data_item_subtitle := p_cle_rec.data_item_subtitle;
2011 l_oke_cle_rec.date_of_first_submission:= p_cle_rec.date_of_first_submission;
2012 l_oke_cle_rec.frequency := p_cle_rec.frequency;
2013 l_oke_cle_rec.requiring_office := p_cle_rec.requiring_office;
2014 l_oke_cle_rec.dcaa_audit_req_flag := p_cle_rec.dcaa_audit_req_flag;
2015 l_oke_cle_rec.definitized_flag := p_cle_rec.definitized_flag;
2016 l_oke_cle_rec.cost_of_money := p_cle_rec.cost_of_money;
2017 l_oke_cle_rec.bill_undefinitized_flag := p_cle_rec.bill_undefinitized_flag;
2018 l_oke_cle_rec.nsn_number := p_cle_rec.nsn_number;
2019 l_oke_cle_rec.nte_warning_flag := p_cle_rec.nte_warning_flag;
2020 l_oke_cle_rec.discount_for_payment := p_cle_rec.discount_for_payment;
2021 l_oke_cle_rec.financial_ctrl_flag := p_cle_rec.financial_ctrl_flag;
2022 l_oke_cle_rec.c_scs_flag := p_cle_rec.c_scs_flag;
2023 l_oke_cle_rec.c_ssr_flag := p_cle_rec.c_ssr_flag;
2024 l_oke_cle_rec.prepayment_amount := p_cle_rec.prepayment_amount;
2025 l_oke_cle_rec.prepayment_percentage := p_cle_rec.prepayment_percentage;
2026 l_oke_cle_rec.progress_payment_flag := p_cle_rec.progress_payment_flag;
2027 l_oke_cle_rec.progress_payment_liq_rate := p_cle_rec.progress_payment_liq_rate;
2028 l_oke_cle_rec.progress_payment_rate := p_cle_rec.progress_payment_rate;
2029 l_oke_cle_rec.award_fee := p_cle_rec.award_fee;
2030 l_oke_cle_rec.award_fee_pool_amount := p_cle_rec.award_fee_pool_amount;
2031 l_oke_cle_rec.base_fee := p_cle_rec.base_fee;
2032 l_oke_cle_rec.ceiling_cost := p_cle_rec.ceiling_cost;
2033 l_oke_cle_rec.ceiling_price := p_cle_rec.ceiling_price;
2034 l_oke_cle_rec.labor_cost_index := p_cle_rec.labor_cost_index;
2035 l_oke_cle_rec.material_cost_index := p_cle_rec.material_cost_index;
2036 l_oke_cle_rec.customers_percent_in_order := p_cle_rec.customers_percent_in_order;
2037 l_oke_cle_rec.cost_overrun_share_ratio := p_cle_rec.cost_overrun_share_ratio;
2038 l_oke_cle_rec.cost_underrun_share_ratio := p_cle_rec.cost_underrun_share_ratio;
2039 l_oke_cle_rec.date_of_price_redetermin := p_cle_rec.date_of_price_redetermin;
2040 l_oke_cle_rec.estimated_total_quantity := p_cle_rec.estimated_total_quantity;
2041 l_oke_cle_rec.fee_ajt_formula := p_cle_rec.fee_ajt_formula;
2042 l_oke_cle_rec.final_fee := p_cle_rec.final_fee;
2043 l_oke_cle_rec.final_pft_ajt_formula := p_cle_rec.final_pft_ajt_formula;
2044 l_oke_cle_rec.fixed_fee := p_cle_rec.fixed_fee;
2045 l_oke_cle_rec.fixed_quantity := p_cle_rec.fixed_quantity;
2046 l_oke_cle_rec.initial_fee := p_cle_rec.initial_fee;
2047 l_oke_cle_rec.initial_price := p_cle_rec.initial_price;
2048 l_oke_cle_rec.level_of_effort_hours := p_cle_rec.level_of_effort_hours;
2049 l_oke_cle_rec.line_liquidation_rate := p_cle_rec.line_liquidation_rate;
2050 l_oke_cle_rec.maximum_fee := p_cle_rec.maximum_fee;
2051 l_oke_cle_rec.maximum_quantity := p_cle_rec.maximum_quantity;
2052 l_oke_cle_rec.minimum_fee := p_cle_rec.minimum_fee;
2053 l_oke_cle_rec.minimum_quantity := p_cle_rec.minimum_quantity;
2054 l_oke_cle_rec.number_of_options := p_cle_rec.number_of_options;
2055 l_oke_cle_rec.revised_price := p_cle_rec.revised_price;
2056 l_oke_cle_rec.target_cost := p_cle_rec.target_cost;
2057 l_oke_cle_rec.target_date_definitize := p_cle_rec.target_date_definitize;
2058 l_oke_cle_rec.target_fee := p_cle_rec.target_fee;
2059 l_oke_cle_rec.target_price := p_cle_rec.target_price;
2060 l_oke_cle_rec.total_estimated_cost := p_cle_rec.total_estimated_cost;
2061 l_oke_cle_rec.proposal_due_date := p_cle_rec.proposal_due_date;
2062 l_oke_cle_rec.cost_of_sale_rate := p_cle_rec.cost_of_sale_rate;
2063 l_oke_cle_rec.created_by := p_cle_rec.created_by;
2064 l_oke_cle_rec.creation_date := p_cle_rec.creation_date;
2065 l_oke_cle_rec.last_updated_by := p_cle_rec.last_updated_by;
2066 l_oke_cle_rec.last_update_login := p_cle_rec.last_update_login;
2067 l_oke_cle_rec.last_update_date := p_cle_rec.last_update_date;
2068 l_oke_cle_rec.line_value := p_cle_rec.line_value;
2069 l_oke_cle_rec.line_value_total := p_cle_rec.line_value_total;
2070 l_oke_cle_rec.end_date := p_cle_rec.end_date;
2071
2072 l_oke_cle_rec.undef_line_value := p_cle_rec.undef_line_value;
2073 l_oke_cle_rec.undef_line_value_total := p_cle_rec.undef_line_value_total;
2074 l_oke_cle_rec.undef_unit_price := p_cle_rec.undef_unit_price;
2075
2076 l_okc_clev_rec.id := p_cle_rec.k_line_id;
2077 l_okc_clev_rec.object_version_number := p_cle_rec.object_version_number;
2078 l_okc_clev_rec.sfwt_flag := p_cle_rec.sfwt_flag;
2079 l_okc_clev_rec.chr_id := p_cle_rec.chr_id;
2080 l_okc_clev_rec.cle_id := p_cle_rec.cle_id;
2081 l_okc_clev_rec.lse_id := p_cle_rec.lse_id;
2082 l_okc_clev_rec.line_number := p_cle_rec.line_number;
2083 l_okc_clev_rec.sts_code := p_cle_rec.sts_code;
2084 l_okc_clev_rec.display_sequence := p_cle_rec.display_sequence;
2085 l_okc_clev_rec.trn_code := p_cle_rec.trn_code ;
2086 l_okc_clev_rec.dnz_chr_id := p_cle_rec.dnz_chr_id ;
2087 l_okc_clev_rec.comments := p_cle_rec.comments ;
2088 l_okc_clev_rec.item_description := p_cle_rec.item_description ;
2089 l_okc_clev_rec.oke_boe_description := p_cle_rec.oke_boe_description;
2090 l_okc_clev_rec.hidden_ind := p_cle_rec.hidden_ind ;
2091 l_okc_clev_rec.price_unit := p_cle_rec.price_unit;
2092 l_okc_clev_rec.price_unit_percent := p_cle_rec.price_unit_percent;
2093 l_okc_clev_rec.price_negotiated := p_cle_rec.price_negotiated;
2094 l_okc_clev_rec.price_negotiated_renewed := p_cle_rec.price_negotiated_renewed;
2095 l_okc_clev_rec.price_level_ind := p_cle_rec.price_level_ind;
2096 l_okc_clev_rec.invoice_line_level_ind := p_cle_rec.invoice_line_level_ind;
2097 l_okc_clev_rec.dpas_rating := p_cle_rec.dpas_rating;
2098 l_okc_clev_rec.block23text := p_cle_rec.block23text;
2099 l_okc_clev_rec.exception_yn := p_cle_rec.exception_yn;
2100 l_okc_clev_rec.template_used := p_cle_rec.template_used;
2101 l_okc_clev_rec.date_terminated := p_cle_rec.date_terminated;
2102 l_okc_clev_rec.name := p_cle_rec.name;
2103 l_okc_clev_rec.start_date := p_cle_rec.start_date;
2104
2105 l_okc_clev_rec.upg_orig_system_ref := p_cle_rec.upg_orig_system_ref;
2106 l_okc_clev_rec.upg_orig_system_ref_id := p_cle_rec.upg_orig_system_ref_id;
2107 l_okc_clev_rec.attribute_category := p_cle_rec.attribute_category;
2108 l_okc_clev_rec.attribute1 := p_cle_rec.attribute1;
2109 l_okc_clev_rec.attribute2 := p_cle_rec.attribute2;
2110 l_okc_clev_rec.attribute3 := p_cle_rec.attribute3;
2111 l_okc_clev_rec.attribute4 := p_cle_rec.attribute4;
2112 l_okc_clev_rec.attribute5 := p_cle_rec.attribute5;
2113 l_okc_clev_rec.attribute6 := p_cle_rec.attribute6;
2114 l_okc_clev_rec.attribute7 := p_cle_rec.attribute7;
2115 l_okc_clev_rec.attribute8 := p_cle_rec.attribute8;
2116 l_okc_clev_rec.attribute9 := p_cle_rec.attribute9;
2117 l_okc_clev_rec.attribute10 := p_cle_rec.attribute10;
2118 l_okc_clev_rec.attribute11 := p_cle_rec.attribute11;
2119 l_okc_clev_rec.attribute12 := p_cle_rec.attribute12;
2120 l_okc_clev_rec.attribute13 := p_cle_rec.attribute13;
2121 l_okc_clev_rec.attribute14 := p_cle_rec.attribute14;
2122 l_okc_clev_rec.attribute15 := p_cle_rec.attribute15;
2123 l_okc_clev_rec.created_by := p_cle_rec.created_by;
2124 l_okc_clev_rec.creation_date := p_cle_rec.creation_date;
2125 l_okc_clev_rec.last_updated_by := p_cle_rec.last_updated_by;
2126 l_okc_clev_rec.last_update_date := p_cle_rec.last_update_date;
2127 l_okc_clev_rec.price_type := p_cle_rec.price_type;
2128 l_okc_clev_rec.currency_code := p_cle_rec.currency_code;
2129 l_okc_clev_rec.currency_code_renewed := p_cle_rec.currency_code_renewed;
2130 l_okc_clev_rec.last_update_login := p_cle_rec.last_update_login;
2131
2132
2133
2134 Validate_OKC_line_fields ( l_return_status, p_cle_rec );
2135
2136 --- If any errors happen abort API
2137 IF (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) THEN
2138 RAISE OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2139 ELSIF (l_return_status = OKE_API.G_RET_STS_ERROR) THEN
2140 RAISE OKE_API.G_EXCEPTION_ERROR;
2141 END IF;
2142
2143 /*skuchima bugs 14380256 */
2144 IF (FND_API.G_TRUE = p_skip_minor_vers ) THEN
2145 okc_cvm_pvt.defer_minor_version_update('T');
2146 end if;
2147
2148 OKE_CONTRACT_PUB.create_contract_line(
2149 p_api_version => p_api_version,
2150 p_init_msg_list => p_init_msg_list,
2151 x_return_status => x_return_status,
2152 x_msg_count => x_msg_count,
2153 x_msg_data => x_msg_data,
2154 p_cle_rec => l_oke_cle_rec,
2155 p_clev_rec => l_okc_clev_rec,
2156 x_cle_rec => l_out_cle,
2157 x_clev_rec => l_out_clev );
2158
2159 okc_cvm_pvt.defer_minor_version_update('F');
2160
2161 If (x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
2162 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2163 Elsif (x_return_status = OKE_API.G_RET_STS_ERROR) then
2164 raise OKE_API.G_EXCEPTION_ERROR;
2165 End If;
2166
2167
2168 x_cle_rec.k_line_id := l_out_cle.k_line_id;
2169 x_cle_rec.parent_line_id := l_out_cle.parent_line_id;
2170 x_cle_rec.project_id := l_out_cle.project_id;
2171 x_cle_rec.task_id := l_out_cle.task_id;
2172 x_cle_rec.billing_method_code := l_out_cle.billing_method_code;
2173 x_cle_rec.inventory_item_id := l_out_cle.inventory_item_id;
2174 x_cle_rec.delivery_order_flag := l_out_cle.delivery_order_flag;
2175 x_cle_rec.splited_flag := l_out_cle.splited_flag;
2176 x_cle_rec.priority_code := l_out_cle.priority_code;
2177 x_cle_rec.customer_item_id := l_out_cle.customer_item_id;
2178 x_cle_rec.customer_item_number := l_out_cle.customer_item_number;
2179 x_cle_rec.line_quantity := l_out_cle.line_quantity;
2180 x_cle_rec.delivery_date := l_out_cle.delivery_date;
2181 x_cle_rec.unit_price := l_out_cle.unit_price;
2182 x_cle_rec.uom_code := l_out_cle.uom_code;
2183 x_cle_rec.billable_flag := l_out_cle.billable_flag;
2184 x_cle_rec.shippable_flag := l_out_cle.shippable_flag;
2185 x_cle_rec.subcontracted_flag := l_out_cle.subcontracted_flag;
2186 x_cle_rec.completed_flag := l_out_cle.completed_flag;
2187 x_cle_rec.nsp_flag := l_out_cle.nsp_flag;
2188 x_cle_rec.app_code := l_out_cle.app_code;
2189 x_cle_rec.as_of_date := l_out_cle.as_of_date;
2190 x_cle_rec.authority := l_out_cle.authority;
2191 x_cle_rec.country_of_origin_code := l_out_cle.country_of_origin_code;
2192 x_cle_rec.drop_shipped_flag := l_out_cle.drop_shipped_flag;
2193 x_cle_rec.customer_approval_req_flag := l_out_cle.customer_approval_req_flag;
2194 x_cle_rec.date_material_req := l_out_cle.date_material_req;
2195 x_cle_rec.inspection_req_flag := l_out_cle.inspection_req_flag;
2196 x_cle_rec.interim_rpt_req_flag := l_out_cle.interim_rpt_req_flag;
2197 x_cle_rec.subj_a133_flag := l_out_cle.subj_a133_flag;
2198 x_cle_rec.export_flag := l_out_cle.export_flag;
2199 x_cle_rec.cfe_req_flag := l_out_cle.cfe_req_flag;
2200 x_cle_rec.cop_required_flag := l_out_cle.cop_required_flag;
2201 x_cle_rec.export_license_num := l_out_cle.export_license_num;
2202 x_cle_rec.export_license_res := l_out_cle.export_license_res;
2203 x_cle_rec.copies_required := l_out_cle.copies_required;
2204 x_cle_rec.cdrl_category := l_out_cle.cdrl_category;
2205 x_cle_rec.data_item_name := l_out_cle.data_item_name;
2206 x_cle_rec.data_item_subtitle := l_out_cle.data_item_subtitle;
2207 x_cle_rec.date_of_first_submission := l_out_cle.date_of_first_submission;
2208 x_cle_rec.frequency := l_out_cle.frequency;
2209 x_cle_rec.requiring_office := l_out_cle.requiring_office;
2210 x_cle_rec.dcaa_audit_req_flag := l_out_cle.dcaa_audit_req_flag;
2211 x_cle_rec.definitized_flag := l_out_cle.definitized_flag;
2212 x_cle_rec.cost_of_money := l_out_cle.cost_of_money;
2213 x_cle_rec.bill_undefinitized_flag := l_out_cle.bill_undefinitized_flag;
2214 x_cle_rec.nsn_number := l_out_cle.nsn_number;
2215 x_cle_rec.nte_warning_flag := l_out_cle.nte_warning_flag;
2216 x_cle_rec.discount_for_payment := l_out_cle.discount_for_payment;
2217 x_cle_rec.financial_ctrl_flag := l_out_cle.financial_ctrl_flag;
2218 x_cle_rec.c_scs_flag := l_out_cle.c_scs_flag;
2219 x_cle_rec.c_ssr_flag := l_out_cle.c_ssr_flag;
2220 x_cle_rec.prepayment_amount := l_out_cle.prepayment_amount;
2221 x_cle_rec.prepayment_percentage := l_out_cle.prepayment_percentage;
2222 x_cle_rec.progress_payment_flag := l_out_cle.progress_payment_flag;
2223 x_cle_rec.progress_payment_liq_rate := l_out_cle.progress_payment_liq_rate;
2224 x_cle_rec.progress_payment_rate := l_out_cle.progress_payment_rate;
2225 x_cle_rec.award_fee := l_out_cle.award_fee;
2226 x_cle_rec.award_fee_pool_amount := l_out_cle.award_fee_pool_amount;
2227 x_cle_rec.base_fee := l_out_cle.base_fee;
2228 x_cle_rec.ceiling_cost := l_out_cle.ceiling_cost;
2229 x_cle_rec.ceiling_price := l_out_cle.ceiling_price;
2230 x_cle_rec.labor_cost_index := l_out_cle.labor_cost_index;
2231 x_cle_rec.material_cost_index := l_out_cle.material_cost_index;
2232 x_cle_rec.customers_percent_in_order := l_out_cle.customers_percent_in_order;
2233 x_cle_rec.cost_overrun_share_ratio := l_out_cle.cost_overrun_share_ratio;
2234 x_cle_rec.cost_underrun_share_ratio := l_out_cle.cost_underrun_share_ratio;
2235 x_cle_rec.date_of_price_redetermin := l_out_cle.date_of_price_redetermin;
2236 x_cle_rec.estimated_total_quantity := l_out_cle.estimated_total_quantity;
2237 x_cle_rec.fee_ajt_formula := l_out_cle.fee_ajt_formula;
2238 x_cle_rec.final_fee := l_out_cle.final_fee;
2239 x_cle_rec.final_pft_ajt_formula := l_out_cle.final_pft_ajt_formula;
2240 x_cle_rec.fixed_fee := l_out_cle.fixed_fee;
2241 x_cle_rec.fixed_quantity := l_out_cle.fixed_quantity;
2242 x_cle_rec.initial_fee := l_out_cle.initial_fee;
2243 x_cle_rec.initial_price := l_out_cle.initial_price;
2244 x_cle_rec.level_of_effort_hours := l_out_cle.level_of_effort_hours;
2245 x_cle_rec.line_liquidation_rate := l_out_cle.line_liquidation_rate;
2246 x_cle_rec.maximum_fee := l_out_cle.maximum_fee;
2247 x_cle_rec.maximum_quantity := l_out_cle.maximum_quantity;
2248 x_cle_rec.minimum_fee := l_out_cle.minimum_fee;
2249 x_cle_rec.minimum_quantity := l_out_cle.minimum_quantity;
2250 x_cle_rec.number_of_options := l_out_cle.number_of_options;
2251 x_cle_rec.revised_price := l_out_cle.revised_price;
2252 x_cle_rec.target_cost := l_out_cle.target_cost;
2253 x_cle_rec.target_date_definitize := l_out_cle.target_date_definitize;
2254 x_cle_rec.target_fee := l_out_cle.target_fee;
2255 x_cle_rec.target_price := l_out_cle.target_price;
2256 x_cle_rec.total_estimated_cost := l_out_cle.total_estimated_cost;
2257 x_cle_rec.proposal_due_date := l_out_cle.proposal_due_date;
2258 x_cle_rec.cost_of_sale_rate := l_out_cle.cost_of_sale_rate;
2259 x_cle_rec.created_by := l_out_cle.created_by;
2260 x_cle_rec.creation_date := l_out_cle.creation_date;
2261 x_cle_rec.last_updated_by := l_out_cle.last_updated_by;
2262 x_cle_rec.last_update_login := l_out_cle.last_update_login;
2263 x_cle_rec.last_update_date := l_out_cle.last_update_date;
2264 x_cle_rec.line_value := l_out_cle.line_value;
2265 x_cle_rec.line_value_total := l_out_cle.line_value_total;
2266 x_cle_rec.end_date := l_out_cle.end_date;
2267
2268 x_cle_rec.undef_line_value := l_out_cle.undef_line_value;
2269 x_cle_rec.undef_line_value_total := l_out_cle.undef_line_value_total;
2270 x_cle_rec.undef_unit_price := l_out_cle.undef_unit_price;
2271
2272
2273 x_cle_rec.k_line_id := l_out_clev.id;
2274 x_cle_rec.object_version_number := l_out_clev.object_version_number;
2275 x_cle_rec.sfwt_flag := l_out_clev.sfwt_flag;
2276 x_cle_rec.chr_id := l_out_clev.chr_id;
2277 x_cle_rec.cle_id := l_out_clev.cle_id;
2278
2279 x_cle_rec.lse_id := l_out_clev.lse_id;
2280 x_cle_rec.line_number := l_out_clev.line_number;
2281 x_cle_rec.sts_code := l_out_clev.sts_code;
2282 x_cle_rec.display_sequence := l_out_clev.display_sequence;
2283 x_cle_rec.trn_code := l_out_clev.trn_code ;
2284 x_cle_rec.dnz_chr_id := l_out_clev.dnz_chr_id ;
2285 x_cle_rec.comments := l_out_clev.comments ;
2286 x_cle_rec.item_description := l_out_clev.item_description ;
2287 x_cle_rec.oke_boe_description := l_out_clev.oke_boe_description;
2288 x_cle_rec.hidden_ind := l_out_clev.hidden_ind ;
2289 x_cle_rec.price_unit := l_out_clev.price_unit;
2290 x_cle_rec.price_unit_percent := l_out_clev.price_unit_percent;
2291 x_cle_rec.price_negotiated := l_out_clev.price_negotiated;
2292 x_cle_rec.price_negotiated_renewed := l_out_clev.price_negotiated_renewed;
2293 x_cle_rec.price_level_ind := l_out_clev.price_level_ind;
2294 x_cle_rec.invoice_line_level_ind := l_out_clev.invoice_line_level_ind;
2295 x_cle_rec.dpas_rating := l_out_clev.dpas_rating;
2296 x_cle_rec.block23text := l_out_clev.block23text;
2297 x_cle_rec.exception_yn := l_out_clev.exception_yn;
2298 x_cle_rec.template_used := l_out_clev.template_used;
2299 x_cle_rec.date_terminated := l_out_clev.date_terminated;
2300 x_cle_rec.name := l_out_clev.name;
2301 x_cle_rec.start_date := l_out_clev.start_date;
2302
2303 x_cle_rec.upg_orig_system_ref := l_out_clev.upg_orig_system_ref;
2304 x_cle_rec.upg_orig_system_ref_id := l_out_clev.upg_orig_system_ref_id;
2305 x_cle_rec.attribute_category := l_out_clev.attribute_category;
2306 x_cle_rec.attribute1 := l_out_clev.attribute1;
2307 x_cle_rec.attribute2 := l_out_clev.attribute2;
2308 x_cle_rec.attribute3 := l_out_clev.attribute3;
2309 x_cle_rec.attribute4 := l_out_clev.attribute4;
2310 x_cle_rec.attribute5 := l_out_clev.attribute5;
2311 x_cle_rec.attribute6 := l_out_clev.attribute6;
2312 x_cle_rec.attribute7 := l_out_clev.attribute7;
2313 x_cle_rec.attribute8 := l_out_clev.attribute8;
2314 x_cle_rec.attribute9 := l_out_clev.attribute9;
2315 x_cle_rec.attribute10 := l_out_clev.attribute10;
2316 x_cle_rec.attribute11 := l_out_clev.attribute11;
2317 x_cle_rec.attribute12 := l_out_clev.attribute12;
2318 x_cle_rec.attribute13 := l_out_clev.attribute13;
2319 x_cle_rec.attribute14 := l_out_clev.attribute14;
2320 x_cle_rec.attribute15 := l_out_clev.attribute15;
2321 x_cle_rec.created_by := l_out_clev.created_by;
2322 x_cle_rec.creation_date := l_out_clev.creation_date;
2323 x_cle_rec.last_updated_by := l_out_clev.last_updated_by;
2324 x_cle_rec.last_update_date := l_out_clev.last_update_date;
2325 x_cle_rec.price_type := l_out_clev.price_type;
2326 x_cle_rec.currency_code := l_out_clev.currency_code;
2327 x_cle_rec.currency_code_renewed := l_out_clev.currency_code_renewed;
2328 x_cle_rec.last_update_login := l_out_clev.last_update_login;
2329
2330
2331 -- IF successful: create line item if necessary
2332 IF x_return_status = OKE_API.G_RET_STS_SUCCESS
2333 AND x_cle_rec.inventory_item_id IS NOT NULL THEN
2334
2335 OPEN get_inventory_org (x_cle_rec.DNZ_CHR_ID);
2336 FETCH get_inventory_org INTO l_inv_org;
2337 CLOSE get_inventory_org;
2338
2339 l_cimv_rec.DNZ_CHR_ID := x_cle_rec.DNZ_CHR_ID;
2340 l_cimv_rec.CLE_ID := x_cle_rec.K_LINE_ID;
2341 l_cimv_rec.EXCEPTION_YN := 'N';
2342 l_cimv_rec.PRICED_ITEM_YN := 'N';
2343 l_cimv_rec.OBJECT1_ID1 := x_cle_rec.inventory_item_id;
2344 l_cimv_rec.OBJECT1_ID2 := l_inv_org;
2345 l_cimv_rec.JTOT_OBJECT1_CODE := 'OKE_ITEMS';
2346 l_cimv_rec.UOM_CODE := x_cle_rec.UOM_CODE;
2347 l_cimv_rec.NUMBER_OF_ITEMS := x_cle_rec.LINE_QUANTITY;
2348 l_cimv_rec.CREATED_BY := x_cle_rec.CREATED_BY;
2349 l_cimv_rec.CREATION_DATE := x_cle_rec.CREATION_DATE;
2350 l_cimv_rec.LAST_UPDATED_BY := x_cle_rec.LAST_UPDATED_BY;
2351 l_cimv_rec.LAST_UPDATE_DATE := x_cle_rec.LAST_UPDATE_DATE;
2352 l_cimv_rec.LAST_UPDATE_LOGIN := x_cle_rec.LAST_UPDATE_LOGIN;
2353
2354
2355 OKC_CONTEXT.Set_OKC_Org_Context( p_chr_id => x_cle_rec.DNZ_CHR_ID );
2356
2357
2358 Create_Line_Item (
2359 p_api_version => p_api_version,
2360 p_init_msg_list => p_init_msg_list,
2361 x_return_status => x_return_status,
2362 x_msg_count => x_msg_count,
2363 x_msg_data => x_msg_data,
2364 p_cimv_rec => l_cimv_rec,
2365 x_cimv_rec => l_cimv_out );
2366
2367 If (x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
2368 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2369 Elsif (x_return_status = OKE_API.G_RET_STS_ERROR) then
2370 raise OKE_API.G_EXCEPTION_ERROR;
2371 End If;
2372
2373 END IF;
2374
2375
2376 OKE_API.END_ACTIVITY( x_msg_count => x_msg_count,
2377 x_msg_data => x_msg_data);
2378 EXCEPTION
2379 when OKE_API.G_EXCEPTION_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_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 OKE_API.G_EXCEPTION_UNEXPECTED_ERROR 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 => 'OKE_API.G_RET_STS_UNEXP_ERROR',
2393 x_msg_count => x_msg_count,
2394 x_msg_data => x_msg_data,
2395 p_api_type => g_api_type);
2396
2397 when OTHERS then
2398 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
2399 p_api_name => l_api_name,
2400 p_pkg_name => g_pkg_name,
2401 p_exc_name => 'OTHERS',
2402 x_msg_count => x_msg_count,
2403 x_msg_data => x_msg_data,
2404 p_api_type => g_api_type);
2405
2406 END create_contract_line;
2407
2408
2409
2410 PROCEDURE create_deliverable(
2411
2412 p_api_version IN NUMBER,
2413 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
2414 x_return_status OUT NOCOPY VARCHAR2,
2415 x_msg_count OUT NOCOPY NUMBER,
2416 x_msg_data OUT NOCOPY VARCHAR2,
2417
2418 p_del_rec IN del_rec_type,
2419 x_del_rec OUT NOCOPY del_rec_type) IS
2420
2421 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_DELIVERABLE';
2422 l_api_version CONSTANT NUMBER := 1.0;
2423 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
2424
2425 l_del_rec OKE_CONTRACT_PUB.del_rec_type;
2426
2427 CURSOR get_inv_org IS
2428 SELECT INV_ORGANIZATION_ID
2429 FROM OKC_K_HEADERS_B
2430 WHERE ID = p_del_rec.k_header_id;
2431
2432 CURSOR get_intent IS
2433 SELECT BUY_OR_SELL
2434 FROM OKC_K_HEADERS_B
2435 WHERE ID = p_del_rec.k_header_id;
2436 l_sts_code VARCHAR2(30);
2437
2438 Cursor l_sts_csr Is
2439 SELECT CODE
2440 FROM OKC_STATUSES_V
2441 WHERE STE_CODE = 'ENTERED'
2442 AND DEFAULT_YN = 'Y'
2443 AND sysdate BETWEEN START_DATE AND nvl(END_DATE,sysdate);
2444
2445 l_intent VARCHAR2(10);
2446
2447 FUNCTION null_out_defaults(
2448 p_del_rec IN del_rec_type) RETURN del_rec_type IS
2449
2450 l_del_rec del_rec_type := p_del_rec;
2451
2452 BEGIN
2453
2454
2455 IF l_del_rec.DELIVERABLE_ID = OKE_API.G_MISS_NUM THEN
2456 l_del_rec.DELIVERABLE_ID := NULL;
2457 END IF;
2458
2459 IF l_del_rec.DELIVERABLE_NUM = OKE_API.G_MISS_CHAR THEN
2460 l_del_rec.DELIVERABLE_NUM := NULL;
2461 END IF;
2462
2463 IF l_del_rec.PROJECT_ID = OKE_API.G_MISS_NUM THEN
2464 l_del_rec.PROJECT_ID := NULL;
2465 END IF;
2466
2467 IF l_del_rec.TASK_ID = OKE_API.G_MISS_NUM THEN
2468 l_del_rec.TASK_ID := NULL;
2469 END IF;
2470
2471 IF l_del_rec.ITEM_ID = OKE_API.G_MISS_NUM THEN
2472 l_del_rec.ITEM_ID := NULL;
2473 END IF;
2474
2475 IF l_del_rec.K_HEADER_ID = OKE_API.G_MISS_NUM THEN
2476 l_del_rec.K_HEADER_ID := NULL;
2477 END IF;
2478
2479 IF l_del_rec.K_LINE_ID = OKE_API.G_MISS_NUM THEN
2480 l_del_rec.K_LINE_ID := NULL;
2481 END IF;
2482
2483 IF l_del_rec.DELIVERY_DATE = OKE_API.G_MISS_DATE THEN
2484 l_del_rec.DELIVERY_DATE := NULL;
2485 END IF;
2486
2487 IF l_del_rec.STATUS_CODE = OKE_API.G_MISS_CHAR THEN
2488 l_del_rec.STATUS_CODE := NULL;
2489 END IF;
2490
2491 IF l_del_rec.PARENT_DELIVERABLE_ID = OKE_API.G_MISS_NUM THEN
2492 l_del_rec.PARENT_DELIVERABLE_ID := NULL;
2493 END IF;
2494
2495 IF l_del_rec.SHIP_TO_ORG_ID = OKE_API.G_MISS_NUM THEN
2496 l_del_rec.SHIP_TO_ORG_ID := NULL;
2497 END IF;
2498
2499 IF l_del_rec.SHIP_TO_LOCATION_ID = OKE_API.G_MISS_NUM THEN
2500 l_del_rec.SHIP_TO_LOCATION_ID := NULL;
2501 END IF;
2502
2503 IF l_del_rec.SHIP_FROM_ORG_ID = OKE_API.G_MISS_NUM THEN
2504 l_del_rec.SHIP_FROM_ORG_ID := NULL;
2505 END IF;
2506
2507 IF l_del_rec.SHIP_FROM_LOCATION_ID = OKE_API.G_MISS_NUM THEN
2508 l_del_rec.SHIP_FROM_LOCATION_ID := NULL;
2509 END IF;
2510
2511 IF l_del_rec.INVENTORY_ORG_ID = OKE_API.G_MISS_NUM THEN
2512 l_del_rec.INVENTORY_ORG_ID := NULL;
2513 END IF;
2514
2515 IF l_del_rec.DIRECTION = OKE_API.G_MISS_CHAR THEN
2516 l_del_rec.DIRECTION := NULL;
2517 END IF;
2518
2519 IF l_del_rec.DEFAULTED_FLAG = OKE_API.G_MISS_CHAR THEN
2520 l_del_rec.DEFAULTED_FLAG := NULL;
2521 END IF;
2522
2523 IF l_del_rec.IN_PROCESS_FLAG = OKE_API.G_MISS_CHAR THEN
2524 l_del_rec.IN_PROCESS_FLAG := NULL;
2525 END IF;
2526
2527 IF l_del_rec.WF_ITEM_KEY = OKE_API.G_MISS_CHAR THEN
2528 l_del_rec.WF_ITEM_KEY := NULL;
2529 END IF;
2530
2531 IF l_del_rec.SUB_REF_ID = OKE_API.G_MISS_NUM THEN
2532 l_del_rec.SUB_REF_ID := NULL;
2533 END IF;
2534
2535 IF l_del_rec.START_DATE = OKE_API.G_MISS_DATE THEN
2536 l_del_rec.START_DATE := NULL;
2537 END IF;
2538
2539 IF l_del_rec.END_DATE = OKE_API.G_MISS_DATE THEN
2540 l_del_rec.END_DATE := NULL;
2541 END IF;
2542
2543 IF l_del_rec.PRIORITY_CODE = OKE_API.G_MISS_CHAR THEN
2544 l_del_rec.PRIORITY_CODE := NULL;
2545 END IF;
2546
2547 IF l_del_rec.CURRENCY_CODE = OKE_API.G_MISS_CHAR THEN
2548 l_del_rec.CURRENCY_CODE := NULL;
2549 END IF;
2550
2551 IF l_del_rec.UNIT_PRICE = OKE_API.G_MISS_NUM THEN
2552 l_del_rec.UNIT_PRICE := NULL;
2553 END IF;
2554
2555 IF l_del_rec.UOM_CODE = OKE_API.G_MISS_CHAR THEN
2556 l_del_rec.UOM_CODE := NULL;
2557 END IF;
2558
2559 IF l_del_rec.QUANTITY = OKE_API.G_MISS_NUM THEN
2560 l_del_rec.QUANTITY := NULL;
2561 END IF;
2562
2563 IF l_del_rec.COUNTRY_OF_ORIGIN_CODE = OKE_API.G_MISS_CHAR THEN
2564 l_del_rec.COUNTRY_OF_ORIGIN_CODE := NULL;
2565 END IF;
2566
2567 IF l_del_rec.SUBCONTRACTED_FLAG = OKE_API.G_MISS_CHAR THEN
2568 l_del_rec.SUBCONTRACTED_FLAG := NULL;
2569 END IF;
2570
2571 IF l_del_rec.DEPENDENCY_FLAG = OKE_API.G_MISS_CHAR THEN
2572 l_del_rec.DEPENDENCY_FLAG := NULL;
2573 END IF;
2574
2575
2576
2577 IF l_del_rec.BILLABLE_FLAG = OKE_API.G_MISS_CHAR THEN
2578 l_del_rec.BILLABLE_FLAG := NULL;
2579 END IF;
2580
2581 IF l_del_rec.BILLING_EVENT_ID = OKE_API.G_MISS_NUM THEN
2582 l_del_rec.BILLING_EVENT_ID := NULL;
2583 END IF;
2584
2585 IF l_del_rec.DROP_SHIPPED_FLAG = OKE_API.G_MISS_CHAR THEN
2586 l_del_rec.DROP_SHIPPED_FLAG := NULL;
2587 END IF;
2588
2589 IF l_del_rec.COMPLETED_FLAG = OKE_API.G_MISS_CHAR THEN
2590 l_del_rec.COMPLETED_FLAG := NULL;
2591 END IF;
2592
2593 IF l_del_rec.AVAILABLE_FOR_SHIP_FLAG = OKE_API.G_MISS_CHAR THEN
2594 l_del_rec.AVAILABLE_FOR_SHIP_FLAG := NULL;
2595 END IF;
2596
2597 IF l_del_rec.CREATE_DEMAND = OKE_API.G_MISS_CHAR THEN
2598 l_del_rec.CREATE_DEMAND := NULL;
2599 END IF;
2600
2601 IF l_del_rec.READY_TO_BILL = OKE_API.G_MISS_CHAR THEN
2602 l_del_rec.READY_TO_BILL := NULL;
2603 END IF;
2604
2605 IF l_del_rec.NEED_BY_DATE = OKE_API.G_MISS_DATE THEN
2606 l_del_rec.NEED_BY_DATE := NULL;
2607 END IF;
2608
2609 IF l_del_rec.READY_TO_PROCURE = OKE_API.G_MISS_CHAR THEN
2610 l_del_rec.READY_TO_PROCURE := NULL;
2611 END IF;
2612
2613 IF l_del_rec.MPS_TRANSACTION_ID = OKE_API.G_MISS_NUM THEN
2614 l_del_rec.MPS_TRANSACTION_ID := NULL;
2615 END IF;
2616
2617 IF l_del_rec.PO_REF_1 = OKE_API.G_MISS_NUM THEN
2618 l_del_rec.PO_REF_1 := NULL;
2619 END IF;
2620
2621 IF l_del_rec.PO_REF_2 = OKE_API.G_MISS_NUM THEN
2622 l_del_rec.PO_REF_2 := NULL;
2623 END IF;
2624
2625 IF l_del_rec.PO_REF_3 = OKE_API.G_MISS_NUM THEN
2626 l_del_rec.PO_REF_3 := NULL;
2627 END IF;
2628
2629 IF l_del_rec.SHIPPING_REQUEST_ID = OKE_API.G_MISS_NUM THEN
2630 l_del_rec.SHIPPING_REQUEST_ID := NULL;
2631 END IF;
2632
2633 IF l_del_rec.UNIT_NUMBER = OKE_API.G_MISS_CHAR THEN
2634 l_del_rec.UNIT_NUMBER := NULL;
2635 END IF;
2636
2637 IF l_del_rec.NDB_SCHEDULE_DESIGNATOR = OKE_API.G_MISS_CHAR THEN
2638 l_del_rec.NDB_SCHEDULE_DESIGNATOR := NULL;
2639 END IF;
2640
2641 IF l_del_rec.SHIPPABLE_FLAG = OKE_API.G_MISS_CHAR THEN
2642 l_del_rec.SHIPPABLE_FLAG := NULL;
2643 END IF;
2644
2645 IF l_del_rec.CFE_REQ_FLAG = OKE_API.G_MISS_CHAR THEN
2646 l_del_rec.CFE_REQ_FLAG := NULL;
2647 END IF;
2648
2649 IF l_del_rec.INSPECTION_REQ_FLAG = OKE_API.G_MISS_CHAR THEN
2650 l_del_rec.INSPECTION_REQ_FLAG := NULL;
2651 END IF;
2652
2653 IF l_del_rec.INTERIM_RPT_REQ_FLAG = OKE_API.G_MISS_CHAR THEN
2654 l_del_rec.INTERIM_RPT_REQ_FLAG := NULL;
2655 END IF;
2656
2657 IF l_del_rec.LOT_APPLIES_FLAG = OKE_API.G_MISS_CHAR THEN
2658 l_del_rec.LOT_APPLIES_FLAG := NULL;
2659 END IF;
2660
2661 IF l_del_rec.CUSTOMER_APPROVAL_REQ_FLAG = OKE_API.G_MISS_CHAR THEN
2662 l_del_rec.CUSTOMER_APPROVAL_REQ_FLAG := NULL;
2663 END IF;
2664
2665 IF l_del_rec.EXPECTED_SHIPMENT_DATE = OKE_API.G_MISS_DATE THEN
2666 l_del_rec.EXPECTED_SHIPMENT_DATE := NULL;
2667 END IF;
2668
2669 IF l_del_rec.INITIATE_SHIPMENT_DATE = OKE_API.G_MISS_DATE THEN
2670 l_del_rec.INITIATE_SHIPMENT_DATE := NULL;
2671 END IF;
2672
2673 IF l_del_rec.PROMISED_SHIPMENT_DATE = OKE_API.G_MISS_DATE THEN
2674 l_del_rec.PROMISED_SHIPMENT_DATE := NULL;
2675 END IF;
2676
2677 IF l_del_rec.AS_OF_DATE = OKE_API.G_MISS_DATE THEN
2678 l_del_rec.AS_OF_DATE := NULL;
2679 END IF;
2680
2681 IF l_del_rec.DATE_OF_FIRST_SUBMISSION = OKE_API.G_MISS_DATE THEN
2682 l_del_rec.DATE_OF_FIRST_SUBMISSION := NULL;
2683 END IF;
2684
2685 IF l_del_rec.FREQUENCY = OKE_API.G_MISS_CHAR THEN
2686 l_del_rec.FREQUENCY := NULL;
2687 END IF;
2688
2689 IF l_del_rec.ACQ_DOC_NUMBER = OKE_API.G_MISS_CHAR THEN
2690 l_del_rec.ACQ_DOC_NUMBER := NULL;
2691 END IF;
2692
2693 IF l_del_rec.SUBMISSION_FLAG = OKE_API.G_MISS_CHAR THEN
2694 l_del_rec.SUBMISSION_FLAG := NULL;
2695 END IF;
2696
2697 IF l_del_rec.DATA_ITEM_NAME = OKE_API.G_MISS_CHAR THEN
2698 l_del_rec.DATA_ITEM_NAME := NULL;
2699 END IF;
2700
2701 IF l_del_rec.DATA_ITEM_SUBTITLE = OKE_API.G_MISS_CHAR THEN
2702 l_del_rec.DATA_ITEM_SUBTITLE := NULL;
2703 END IF;
2704
2705 IF l_del_rec.TOTAL_NUM_OF_COPIES = OKE_API.G_MISS_NUM THEN
2706 l_del_rec.TOTAL_NUM_OF_COPIES := NULL;
2707 END IF;
2708
2709 IF l_del_rec.CDRL_CATEGORY = OKE_API.G_MISS_CHAR THEN
2710 l_del_rec.CDRL_CATEGORY := NULL;
2711 END IF;
2712
2713 IF l_del_rec.EXPORT_LICENSE_NUM = OKE_API.G_MISS_CHAR THEN
2714 l_del_rec.EXPORT_LICENSE_NUM := NULL;
2715 END IF;
2716
2717 IF l_del_rec.EXPORT_LICENSE_RES = OKE_API.G_MISS_CHAR THEN
2718 l_del_rec.EXPORT_LICENSE_RES := NULL;
2719 END IF;
2720
2721 IF l_del_rec.EXPORT_FLAG = OKE_API.G_MISS_CHAR THEN
2722 l_del_rec.EXPORT_FLAG := NULL;
2723 END IF;
2724
2725 IF l_del_rec.CREATED_BY = OKE_API.G_MISS_NUM THEN
2726 l_del_rec.CREATED_BY := NULL;
2727 END IF;
2728
2729 IF l_del_rec.CREATION_DATE = OKE_API.G_MISS_DATE THEN
2730 l_del_rec.CREATION_DATE := NULL;
2731 END IF;
2732
2733 IF l_del_rec.LAST_UPDATED_BY = OKE_API.G_MISS_NUM THEN
2734 l_del_rec.LAST_UPDATED_BY := NULL;
2735 END IF;
2736
2737 IF l_del_rec.LAST_UPDATE_LOGIN = OKE_API.G_MISS_NUM THEN
2738 l_del_rec.LAST_UPDATE_LOGIN := NULL;
2739 END IF;
2740
2741 IF l_del_rec.LAST_UPDATE_DATE = OKE_API.G_MISS_DATE THEN
2742 l_del_rec.LAST_UPDATE_DATE := NULL;
2743 END IF;
2744
2745 IF l_del_rec.ATTRIBUTE_CATEGORY = OKE_API.G_MISS_CHAR THEN
2746 l_del_rec.ATTRIBUTE_CATEGORY := NULL;
2747 END IF;
2748
2749 IF l_del_rec.ATTRIBUTE1 = OKE_API.G_MISS_CHAR THEN
2750 l_del_rec.ATTRIBUTE1 := NULL;
2751 END IF;
2752
2753 IF l_del_rec.ATTRIBUTE2 = OKE_API.G_MISS_CHAR THEN
2754 l_del_rec.ATTRIBUTE2 := NULL;
2755 END IF;
2756
2757 IF l_del_rec.ATTRIBUTE3 = OKE_API.G_MISS_CHAR THEN
2758 l_del_rec.ATTRIBUTE3 := NULL;
2759 END IF;
2760
2761 IF l_del_rec.ATTRIBUTE4 = OKE_API.G_MISS_CHAR THEN
2762 l_del_rec.ATTRIBUTE4 := NULL;
2763 END IF;
2764
2765 IF l_del_rec.ATTRIBUTE5 = OKE_API.G_MISS_CHAR THEN
2766 l_del_rec.ATTRIBUTE5 := NULL;
2767 END IF;
2768
2769 IF l_del_rec.ATTRIBUTE6 = OKE_API.G_MISS_CHAR THEN
2770 l_del_rec.ATTRIBUTE6 := NULL;
2771 END IF;
2772
2773 IF l_del_rec.ATTRIBUTE7 = OKE_API.G_MISS_CHAR THEN
2774 l_del_rec.ATTRIBUTE7 := NULL;
2775 END IF;
2776
2777 IF l_del_rec.ATTRIBUTE8 = OKE_API.G_MISS_CHAR THEN
2778 l_del_rec.ATTRIBUTE8 := NULL;
2779 END IF;
2780
2781 IF l_del_rec.ATTRIBUTE9 = OKE_API.G_MISS_CHAR THEN
2782 l_del_rec.ATTRIBUTE9 := NULL;
2783 END IF;
2784
2785 IF l_del_rec.ATTRIBUTE10 = OKE_API.G_MISS_CHAR THEN
2786 l_del_rec.ATTRIBUTE10 := NULL;
2787 END IF;
2788
2789 IF l_del_rec.ATTRIBUTE11 = OKE_API.G_MISS_CHAR THEN
2790 l_del_rec.ATTRIBUTE11 := NULL;
2791 END IF;
2792
2793 IF l_del_rec.ATTRIBUTE12 = OKE_API.G_MISS_CHAR THEN
2794 l_del_rec.ATTRIBUTE12 := NULL;
2795 END IF;
2796
2797 IF l_del_rec.ATTRIBUTE13 = OKE_API.G_MISS_CHAR THEN
2798 l_del_rec.ATTRIBUTE13 := NULL;
2799 END IF;
2800
2801 IF l_del_rec.ATTRIBUTE14 = OKE_API.G_MISS_CHAR THEN
2802 l_del_rec.ATTRIBUTE14 := NULL;
2803 END IF;
2804
2805 IF l_del_rec.ATTRIBUTE15 = OKE_API.G_MISS_CHAR THEN
2806 l_del_rec.ATTRIBUTE15 := NULL;
2807 END IF;
2808
2809
2810
2811 IF l_del_rec.comments = OKE_API.G_MISS_CHAR THEN
2812
2813 l_del_rec.comments := NULL;
2814 END IF;
2815
2816 IF l_del_rec.weight = OKE_API.G_MISS_NUM THEN
2817 l_del_rec.weight := NULL;
2818 END IF;
2819
2820 IF l_del_rec.weight_uom_code = OKE_API.G_MISS_CHAR THEN
2821 l_del_rec.weight_uom_code := NULL;
2822 END IF;
2823
2824 IF l_del_rec.volume = OKE_API.G_MISS_NUM THEN
2825 l_del_rec.volume := NULL;
2826 END IF;
2827
2828 IF l_del_rec.volume_uom_code = OKE_API.G_MISS_CHAR THEN
2829 l_del_rec.volume_uom_code := NULL;
2830 END IF;
2831
2832 IF l_del_rec.expenditure_organization_id = OKE_API.G_MISS_NUM THEN
2833 l_del_rec.expenditure_organization_id := NULL;
2834 END IF;
2835
2836 IF l_del_rec.expenditure_type = OKE_API.G_MISS_CHAR THEN
2837 l_del_rec.expenditure_type := NULL;
2838 END IF;
2839
2840 IF l_del_rec.expenditure_item_date = OKE_API.G_MISS_DATE THEN
2841 l_del_rec.expenditure_item_date := NULL;
2842 END IF;
2843
2844 IF l_del_rec.destination_type_code = OKE_API.G_MISS_CHAR THEN
2845 l_del_rec.destination_type_code := NULL;
2846 END IF;
2847
2848 IF l_del_rec.rate_type = OKE_API.G_MISS_CHAR THEN
2849 l_del_rec.rate_type := NULL;
2850 END IF;
2851
2852 IF l_del_rec.rate_date = OKE_API.G_MISS_DATE THEN
2853 l_del_rec.rate_date := NULL;
2854 END IF;
2855
2856 IF l_del_rec.exchange_rate = OKE_API.G_MISS_NUM THEN
2857 l_del_rec.exchange_rate := NULL;
2858 END IF;
2859
2860 IF l_del_rec.description = OKE_API.G_MISS_CHAR THEN
2861 l_del_rec.description := NULL;
2862 END IF;
2863
2864 RETURN(l_del_rec);
2865
2866 END null_out_defaults;
2867
2868 BEGIN
2869 -- call START_ACTIVITY to create savepoint, check compatibility
2870 -- and initialize message list
2871 l_return_status := OKE_API.START_ACTIVITY(
2872 p_api_name => l_api_name,
2873 p_pkg_name => g_pkg_name,
2874 p_init_msg_list => p_init_msg_list,
2875 l_api_version => l_api_version,
2876 p_api_version => p_api_version,
2877 p_api_type => g_api_type,
2878 x_return_status => x_return_status);
2879
2880 -- check if activity started successfully
2881 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
2882 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2883 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
2884 raise OKE_API.G_EXCEPTION_ERROR;
2885 End If;
2886
2887 l_del_rec := null_out_defaults(p_del_rec);
2888
2889 IF p_del_rec.k_header_id IS NOT NULL AND
2890 p_del_rec.k_header_id <> OKE_API.G_MISS_NUM THEN
2891
2892 IF p_del_rec.inventory_org_id IS NULL
2893 OR p_del_rec.inventory_org_id = OKE_API.G_MISS_NUM THEN
2894 OPEN get_inv_org;
2895 FETCH get_inv_org INTO l_del_rec.inventory_org_id;
2896 CLOSE get_inv_org;
2897 END IF;
2898
2899
2900 IF p_del_rec.direction IS NULL
2901 OR p_del_rec.direction = OKE_API.G_MISS_CHAR THEN
2902 OPEN get_intent;
2903 FETCH get_intent INTO l_intent;
2904 CLOSE get_intent;
2905 IF l_intent = 'S' THEN
2906 l_del_rec.direction := 'OUT';
2907 ELSE
2908 l_del_rec.direction := 'IN';
2909 END IF;
2910 END IF;
2911
2912 END IF;
2913
2914 IF p_del_rec.status_code IS NULL
2915 OR p_del_rec.status_code = OKE_API.G_MISS_CHAR THEN
2916 open l_sts_csr;
2917 fetch l_sts_csr into l_sts_code;
2918 close l_sts_csr;
2919 l_del_rec.status_code := l_sts_code;
2920 END IF;
2921
2922
2923
2924 -- Validate deliverable attributes
2925 OKE_CONTRACT_PUB.validate_deliverable(
2926 p_api_version => p_api_version,
2927 p_init_msg_list => p_init_msg_list,
2928 x_return_status => x_return_status,
2929 x_msg_count => x_msg_count,
2930 x_msg_data => x_msg_data,
2931 p_del_rec => l_del_rec);
2932
2933 If (x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
2934 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2935 Elsif (x_return_status = OKE_API.G_RET_STS_ERROR) then
2936 raise OKE_API.G_EXCEPTION_ERROR;
2937 End If;
2938
2939
2940 ---validations
2941 l_return_status:=Validate_record(p_del_rec => l_del_rec
2942 );
2943
2944 If ( l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
2945 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2946 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
2947 raise OKE_API.G_EXCEPTION_ERROR;
2948 End If;
2949
2950 If (x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
2951 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2952 Elsif (x_return_status = OKE_API.G_RET_STS_ERROR) then
2953 raise OKE_API.G_EXCEPTION_ERROR;
2954 End If;
2955
2956
2957 OKE_CONTRACT_PUB.create_deliverable(
2958 p_api_version => p_api_version,
2959 p_init_msg_list => p_init_msg_list,
2960 x_return_status => x_return_status,
2961 x_msg_count => x_msg_count,
2962 x_msg_data => x_msg_data,
2963 p_del_rec => l_del_rec,
2964 x_del_rec => x_del_rec);
2965
2966 If (x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
2967 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2968 Elsif (x_return_status = OKE_API.G_RET_STS_ERROR) then
2969 raise OKE_API.G_EXCEPTION_ERROR;
2970 End If;
2971
2972
2973 OKE_API.END_ACTIVITY( x_msg_count => x_msg_count,
2974 x_msg_data => x_msg_data);
2975 EXCEPTION
2976 when OKE_API.G_EXCEPTION_ERROR then
2977 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
2978 p_api_name => l_api_name,
2979 p_pkg_name => g_pkg_name,
2980 p_exc_name => 'OKE_API.G_RET_STS_ERROR',
2981 x_msg_count => x_msg_count,
2982 x_msg_data => x_msg_data,
2983 p_api_type => g_api_type);
2984
2985 when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
2986 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
2987 p_api_name => l_api_name,
2988 p_pkg_name => g_pkg_name,
2989 p_exc_name => 'OKE_API.G_RET_STS_UNEXP_ERROR',
2990 x_msg_count => x_msg_count,
2991 x_msg_data => x_msg_data,
2992 p_api_type => g_api_type);
2993
2994 when OTHERS then
2995 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
2996 p_api_name => l_api_name,
2997 p_pkg_name => g_pkg_name,
2998 p_exc_name => 'OTHERS',
2999 x_msg_count => x_msg_count,
3000 x_msg_data => x_msg_data,
3001 p_api_type => g_api_type);
3002
3003 END create_deliverable;
3004
3005
3006 FUNCTION validate_billing_method(p_bill_rec IN bill_rec_type) return VARCHAR2 IS
3007
3008 l_k_header_id VARCHAR2(1) := '?';
3009 l_billing_method_code VARCHAR2(1) := '?';
3010 l_default_flag VARCHAR2(1) := '?';
3011
3012 CURSOR c_k_header_id IS
3013 select 'x'
3014 from oke_k_headers
3015 where k_header_id = p_bill_rec.k_header_id;
3016
3017 CURSOR c_billing_method_code IS
3018 select 'x'
3019 from oke_billing_methods_vl
3020 where billing_method_code = p_bill_rec.billing_method_code;
3021
3022 BEGIN
3023
3024 IF p_bill_rec.default_flag <>'N' AND p_bill_rec.default_flag <> 'Y' THEN
3025 return OKE_API.G_RET_STS_ERROR;
3026 END IF;
3027
3028 OPEN c_k_header_id;
3029 FETCH c_k_header_id INTO l_k_header_id;
3030 CLOSE c_k_header_id;
3031
3032 IF l_k_header_id = '?' THEN
3033 return OKE_API.G_RET_STS_ERROR;
3034 END IF;
3035
3036 OPEN c_billing_method_code;
3037 FETCH c_billing_method_code INTO l_billing_method_code;
3038 CLOSE c_billing_method_code;
3039
3040 IF l_billing_method_code = '?' THEN
3041 return OKE_API.G_RET_STS_ERROR;
3042 END IF;
3043
3044 RETURN OKE_API.G_RET_STS_SUCCESS;
3045
3046 END validate_billing_method;
3047
3048
3049 PROCEDURE define_billing_methods(
3050 p_api_version IN NUMBER,
3051 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
3052 x_return_status OUT NOCOPY VARCHAR2,
3053 x_msg_count OUT NOCOPY NUMBER,
3054 x_msg_data OUT NOCOPY VARCHAR2,
3055
3056 p_bill_tbl IN bill_tbl_type) IS
3057
3058 l_api_name CONSTANT VARCHAR2(30) := 'DEFINE_BILLING_METHODS';
3059 l_api_version CONSTANT NUMBER := 1.0;
3060 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
3061
3062 i NUMBER;
3063 l_flag VARCHAR2(1);
3064
3065 l_header_id NUMBER;
3066
3067 BEGIN
3068 -- call START_ACTIVITY to create savepoint, check compatibility
3069 -- and initialize message list
3070 l_return_status := OKE_API.START_ACTIVITY(
3071 p_api_name => l_api_name,
3072 p_pkg_name => g_pkg_name,
3073 p_init_msg_list => p_init_msg_list,
3074 l_api_version => l_api_version,
3075 p_api_version => p_api_version,
3076 p_api_type => g_api_type,
3077 x_return_status => x_return_status);
3078
3079 -- check if activity started successfully
3080 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
3081 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
3082 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
3083 raise OKE_API.G_EXCEPTION_ERROR;
3084 End If;
3085
3086
3087 l_flag := 'N';
3088 IF p_bill_tbl.COUNT > 0 THEN
3089 i:=p_bill_tbl.FIRST;
3090 l_header_id := p_bill_tbl(i).k_header_id;
3091
3092 LOOP
3093
3094 IF l_header_id <> p_bill_tbl(i).k_header_id THEN
3095 raise OKE_API.G_EXCEPTION_ERROR;
3096 END IF;
3097
3098 IF l_flag='Y' AND p_bill_tbl(i).default_flag='Y' THEN
3099 raise OKE_API.G_EXCEPTION_ERROR;
3100 ELSIF l_flag='Y' AND p_bill_tbl(i).default_flag='N' THEN
3101 null;
3102 ELSIF l_flag='N' AND p_bill_tbl(i).default_flag='Y' THEN
3103 l_flag:='Y';
3104 ELSE
3105 null;
3106 END IF;
3107
3108 EXIT WHEN i = p_bill_tbl.LAST;
3109 i:=p_bill_tbl.NEXT(i);
3110 END LOOP;
3111 END IF;
3112
3113
3114 IF p_bill_tbl.COUNT > 0 THEN
3115 i:=p_bill_tbl.FIRST;
3116 LOOP
3117
3118
3119
3120 l_return_status := validate_billing_method(p_bill_tbl(i));
3121
3122
3123 IF l_return_status = 'S' THEN
3124
3125 insert into oke_k_billing_methods
3126 (
3127 k_header_id,
3128 billing_method_code,
3129 creation_date,
3130 created_by,
3131 last_update_date,
3132 last_updated_by,
3133 last_update_login,
3134 default_flag,
3135 attribute_category,
3136 attribute1,
3137 attribute2,
3138 attribute3,
3139 attribute4,
3140 attribute5,
3141 attribute6,
3142 attribute7,
3143 attribute8,
3144 attribute9,
3145 attribute10,
3146 attribute11,
3147 attribute12,
3148 attribute13,
3149 attribute14,
3150 attribute15
3151 )
3152 values
3153 (
3154 p_bill_tbl(i).k_header_id,
3155 p_bill_tbl(i).billing_method_code,
3156 sysdate,
3157 fnd_global.user_id,
3158 sysdate,
3159 fnd_global.user_id,
3160 fnd_global.login_id,
3161 p_bill_tbl(i).default_flag,
3162 p_bill_tbl(i).attribute_category,
3163 p_bill_tbl(i).attribute1,
3164 p_bill_tbl(i).attribute2,
3165 p_bill_tbl(i).attribute3,
3166 p_bill_tbl(i).attribute4,
3167 p_bill_tbl(i).attribute5,
3168 p_bill_tbl(i).attribute6,
3169 p_bill_tbl(i).attribute7,
3170 p_bill_tbl(i).attribute8,
3171 p_bill_tbl(i).attribute9,
3172 p_bill_tbl(i).attribute10,
3173 p_bill_tbl(i).attribute11,
3174 p_bill_tbl(i).attribute12,
3175 p_bill_tbl(i).attribute13,
3176 p_bill_tbl(i).attribute14,
3177 p_bill_tbl(i).attribute15
3178 );
3179 END IF;
3180
3181 EXIT WHEN i = p_bill_tbl.LAST;
3182 i:=p_bill_tbl.NEXT(i);
3183 END LOOP;
3184 END IF;
3185
3186 OKE_API.END_ACTIVITY( x_msg_count => x_msg_count,
3187 x_msg_data => x_msg_data);
3188 EXCEPTION
3189 when OKE_API.G_EXCEPTION_ERROR then
3190 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
3191 p_api_name => l_api_name,
3192 p_pkg_name => g_pkg_name,
3193 p_exc_name => 'OKE_API.G_RET_STS_ERROR',
3194 x_msg_count => x_msg_count,
3195 x_msg_data => x_msg_data,
3196 p_api_type => g_api_type);
3197
3198 when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
3199 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
3200 p_api_name => l_api_name,
3201 p_pkg_name => g_pkg_name,
3202 p_exc_name => 'OKE_API.G_RET_STS_UNEXP_ERROR',
3203 x_msg_count => x_msg_count,
3204 x_msg_data => x_msg_data,
3205 p_api_type => g_api_type);
3206
3207 when OTHERS then
3208 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
3209 p_api_name => l_api_name,
3210 p_pkg_name => g_pkg_name,
3211 p_exc_name => 'OTHERS',
3212 x_msg_count => x_msg_count,
3213 x_msg_data => x_msg_data,
3214 p_api_type => g_api_type);
3215
3216 END define_billing_methods;
3217
3218 PROCEDURE remove_billing_methods(
3219 p_api_version IN NUMBER,
3220 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
3221 x_return_status OUT NOCOPY VARCHAR2,
3222 x_msg_count OUT NOCOPY NUMBER,
3223 x_msg_data OUT NOCOPY VARCHAR2,
3224
3225 p_bill_tbl IN bill_tbl_type) IS
3226
3227 l_api_name CONSTANT VARCHAR2(30) := 'REMOVE_BILLING_METHODS';
3228 l_api_version CONSTANT NUMBER := 1.0;
3229 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
3230
3231 i NUMBER;
3232
3233 l_header_id NUMBER;
3234
3235 CURSOR c_check (p_header_id NUMBER, p_code VARCHAR2) IS
3236 select 'x' from oke_k_lines_v
3237 where billing_method_code = p_code
3238 and header_id = p_header_id;
3239
3240 l_check VARCHAR2(1) := '?';
3241
3242 BEGIN
3243 -- call START_ACTIVITY to create savepoint, check compatibility
3244 -- and initialize message list
3245 l_return_status := OKE_API.START_ACTIVITY(
3246 p_api_name => l_api_name,
3247 p_pkg_name => g_pkg_name,
3248 p_init_msg_list => p_init_msg_list,
3249 l_api_version => l_api_version,
3250 p_api_version => p_api_version,
3251 p_api_type => g_api_type,
3252 x_return_status => x_return_status);
3253
3254 -- check if activity started successfully
3255 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
3256 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
3257 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
3258 raise OKE_API.G_EXCEPTION_ERROR;
3259 End If;
3260
3261 IF p_bill_tbl.COUNT > 0 THEN
3262 i:=p_bill_tbl.FIRST;
3263 l_header_id := p_bill_tbl(i).k_header_id;
3264
3265 LOOP
3266
3267 IF l_header_id <> p_bill_tbl(i).k_header_id THEN
3268 raise OKE_API.G_EXCEPTION_ERROR;
3269 END IF;
3270
3271 EXIT WHEN i = p_bill_tbl.LAST;
3272 i:=p_bill_tbl.NEXT(i);
3273 END LOOP;
3274 END IF;
3275
3276
3277 IF p_bill_tbl.COUNT > 0 THEN
3278 i:=p_bill_tbl.FIRST;
3279 LOOP
3280
3281 IF p_bill_tbl(i).k_header_id <> OKE_API.G_MISS_NUM
3282 AND p_bill_tbl(i).k_header_id is not null
3283 AND p_bill_tbl(i).billing_method_code <> OKE_API.G_MISS_CHAR
3284 AND p_bill_tbl(i).billing_method_code is not null THEN
3285
3286 l_check := '?';
3287 OPEN c_check(p_bill_tbl(i).k_header_id,
3288 p_bill_tbl(i).billing_method_code);
3289 FETCH c_check INTO l_check;
3290 CLOSE c_check;
3291
3292 IF l_check <> 'x' THEN
3293 delete from oke_k_billing_methods
3294 where k_header_id = p_bill_tbl(i).k_header_id
3295 and billing_method_code = p_bill_tbl(i).billing_method_code;
3296 END IF;
3297 END IF;
3298 EXIT WHEN i = p_bill_tbl.LAST;
3299 i:=p_bill_tbl.NEXT(i);
3300 END LOOP;
3301 END IF;
3302
3303 OKE_API.END_ACTIVITY( x_msg_count => x_msg_count,
3304 x_msg_data => x_msg_data);
3305 EXCEPTION
3306 when OKE_API.G_EXCEPTION_ERROR then
3307 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
3308 p_api_name => l_api_name,
3309 p_pkg_name => g_pkg_name,
3310 p_exc_name => 'OKE_API.G_RET_STS_ERROR',
3311 x_msg_count => x_msg_count,
3312 x_msg_data => x_msg_data,
3313 p_api_type => g_api_type);
3314
3315 when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
3316 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
3317 p_api_name => l_api_name,
3318 p_pkg_name => g_pkg_name,
3319 p_exc_name => 'OKE_API.G_RET_STS_UNEXP_ERROR',
3320 x_msg_count => x_msg_count,
3321 x_msg_data => x_msg_data,
3322 p_api_type => g_api_type);
3323
3324 when OTHERS then
3325 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
3326 p_api_name => l_api_name,
3327 p_pkg_name => g_pkg_name,
3328 p_exc_name => 'OTHERS',
3329 x_msg_count => x_msg_count,
3330 x_msg_data => x_msg_data,
3331 p_api_type => g_api_type);
3332
3333 END remove_billing_methods;
3334
3335 PROCEDURE create_line_item(
3336 p_api_version IN NUMBER,
3337 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
3338 x_return_status OUT NOCOPY VARCHAR2,
3339 x_msg_count OUT NOCOPY NUMBER,
3340 x_msg_data OUT NOCOPY VARCHAR2,
3341
3342 p_cimv_rec IN cimv_rec_type,
3343 x_cimv_rec OUT NOCOPY cimv_rec_type,
3344 p_skip_minor_vers IN VARCHAR2 DEFAULT OKE_API.G_FALSE
3345 ) IS
3346
3347 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_LINE_ITEM';
3348 l_api_version CONSTANT NUMBER := 1.0;
3349 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
3350
3351 l_cimv_tbl_in okc_contract_item_pub.cimv_tbl_type;
3352
3353 l_cimv_tbl_out okc_contract_item_pub.cimv_tbl_type;
3354
3355 BEGIN
3356 -- call START_ACTIVITY to create savepoint, check compatibility
3357 -- and initialize message list
3358 l_return_status := OKE_API.START_ACTIVITY(
3359 p_api_name => l_api_name,
3360 p_pkg_name => g_pkg_name,
3361 p_init_msg_list => p_init_msg_list,
3362 l_api_version => l_api_version,
3363 p_api_version => p_api_version,
3364 p_api_type => g_api_type,
3365 x_return_status => x_return_status);
3366
3367 -- check if activity started successfully
3368 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
3369 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
3370 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
3371 raise OKE_API.G_EXCEPTION_ERROR;
3372 End If;
3373
3374 l_cimv_tbl_in(1).ID := p_cimv_rec.ID;
3375 l_cimv_tbl_in(1).OBJECT_VERSION_NUMBER := p_cimv_rec.OBJECT_VERSION_NUMBER;
3376 l_cimv_tbl_in(1).CHR_ID := p_cimv_rec.CHR_ID;
3377 l_cimv_tbl_in(1).CLE_ID := p_cimv_rec.CLE_ID;
3378 l_cimv_tbl_in(1).CLE_ID_FOR := p_cimv_rec.CLE_ID_FOR;
3379 l_cimv_tbl_in(1).DNZ_CHR_ID := p_cimv_rec.DNZ_CHR_ID;
3380 l_cimv_tbl_in(1).EXCEPTION_YN := p_cimv_rec.EXCEPTION_YN;
3381 l_cimv_tbl_in(1).PRICED_ITEM_YN := p_cimv_rec.PRICED_ITEM_YN;
3382 l_cimv_tbl_in(1).OBJECT1_ID1 := p_cimv_rec.OBJECT1_ID1;
3383 l_cimv_tbl_in(1).OBJECT1_ID2 := p_cimv_rec.OBJECT1_ID2;
3384 l_cimv_tbl_in(1).JTOT_OBJECT1_CODE := p_cimv_rec.JTOT_OBJECT1_CODE;
3385 l_cimv_tbl_in(1).UOM_CODE := p_cimv_rec.UOM_CODE;
3386 l_cimv_tbl_in(1).NUMBER_OF_ITEMS := p_cimv_rec.NUMBER_OF_ITEMS;
3387 l_cimv_tbl_in(1).CREATED_BY := p_cimv_rec.CREATED_BY;
3388 l_cimv_tbl_in(1).CREATION_DATE := p_cimv_rec.CREATION_DATE;
3389 l_cimv_tbl_in(1).LAST_UPDATED_BY := p_cimv_rec.LAST_UPDATED_BY;
3390 l_cimv_tbl_in(1).LAST_UPDATE_DATE := p_cimv_rec.LAST_UPDATE_DATE;
3391 l_cimv_tbl_in(1).LAST_UPDATE_LOGIN := p_cimv_rec.LAST_UPDATE_LOGIN;
3392 l_cimv_tbl_in(1).UPG_ORIG_SYSTEM_REF := p_cimv_rec.UPG_ORIG_SYSTEM_REF;
3393 l_cimv_tbl_in(1).UPG_ORIG_SYSTEM_REF_ID := p_cimv_rec.UPG_ORIG_SYSTEM_REF_ID;
3394
3395 /*skuchima bugs 14380256 */
3396 IF (FND_API.G_TRUE = p_skip_minor_vers ) THEN
3397 okc_cvm_pvt.defer_minor_version_update('T');
3398 end if;
3399
3400 okc_contract_item_pub.create_contract_item
3401 ( p_api_version => l_api_version
3402 , p_init_msg_list => p_init_msg_list
3403 , x_return_status => l_return_status
3404 , x_msg_count => x_msg_count
3405 , x_msg_data => x_msg_data
3406 , p_cimv_tbl => l_cimv_tbl_in
3407 , x_cimv_tbl => l_cimv_tbl_out
3408 );
3409
3410 okc_cvm_pvt.defer_minor_version_update('F');
3411
3412 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
3413 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
3414 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
3415 raise OKE_API.G_EXCEPTION_ERROR;
3416 End If;
3417
3418 x_cimv_rec.ID := l_cimv_tbl_out(1).ID;
3419 x_cimv_rec.OBJECT_VERSION_NUMBER := l_cimv_tbl_out(1).OBJECT_VERSION_NUMBER;
3420 x_cimv_rec.CHR_ID := l_cimv_tbl_out(1).CHR_ID;
3421 x_cimv_rec.CLE_ID := l_cimv_tbl_out(1).CLE_ID;
3422 x_cimv_rec.CLE_ID_FOR := l_cimv_tbl_out(1).CLE_ID_FOR;
3423 x_cimv_rec.DNZ_CHR_ID := l_cimv_tbl_out(1).DNZ_CHR_ID;
3424 x_cimv_rec.EXCEPTION_YN := l_cimv_tbl_out(1).EXCEPTION_YN;
3425 x_cimv_rec.PRICED_ITEM_YN := l_cimv_tbl_out(1).PRICED_ITEM_YN;
3426 x_cimv_rec.OBJECT1_ID1 := l_cimv_tbl_out(1).OBJECT1_ID1;
3427 x_cimv_rec.OBJECT1_ID2 := l_cimv_tbl_out(1).OBJECT1_ID2;
3428 x_cimv_rec.JTOT_OBJECT1_CODE := l_cimv_tbl_out(1).JTOT_OBJECT1_CODE;
3429 x_cimv_rec.UOM_CODE := l_cimv_tbl_out(1).UOM_CODE;
3430 x_cimv_rec.NUMBER_OF_ITEMS := l_cimv_tbl_out(1).NUMBER_OF_ITEMS;
3431 x_cimv_rec.CREATED_BY := l_cimv_tbl_out(1).CREATED_BY;
3432 x_cimv_rec.CREATION_DATE := l_cimv_tbl_out(1).CREATION_DATE;
3433 x_cimv_rec.LAST_UPDATED_BY := l_cimv_tbl_out(1).LAST_UPDATED_BY;
3434 x_cimv_rec.LAST_UPDATE_DATE := l_cimv_tbl_out(1).LAST_UPDATE_DATE;
3435 x_cimv_rec.LAST_UPDATE_LOGIN := l_cimv_tbl_out(1).LAST_UPDATE_LOGIN;
3436 x_cimv_rec.UPG_ORIG_SYSTEM_REF := l_cimv_tbl_out(1).UPG_ORIG_SYSTEM_REF;
3437 x_cimv_rec.UPG_ORIG_SYSTEM_REF_ID := l_cimv_tbl_out(1).UPG_ORIG_SYSTEM_REF_ID;
3438
3439 OKE_API.END_ACTIVITY( x_msg_count => x_msg_count,
3440 x_msg_data => x_msg_data);
3441 EXCEPTION
3442 when OKE_API.G_EXCEPTION_ERROR then
3443 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
3444 p_api_name => l_api_name,
3445 p_pkg_name => g_pkg_name,
3446 p_exc_name => 'OKE_API.G_RET_STS_ERROR',
3447 x_msg_count => x_msg_count,
3448 x_msg_data => x_msg_data,
3449 p_api_type => g_api_type);
3450
3451 when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
3452 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
3453 p_api_name => l_api_name,
3454 p_pkg_name => g_pkg_name,
3455 p_exc_name => 'OKE_API.G_RET_STS_UNEXP_ERROR',
3456 x_msg_count => x_msg_count,
3457 x_msg_data => x_msg_data,
3458 p_api_type => g_api_type);
3459
3460 when OTHERS then
3461 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
3462 p_api_name => l_api_name,
3463 p_pkg_name => g_pkg_name,
3464 p_exc_name => 'OTHERS',
3465 x_msg_count => x_msg_count,
3466 x_msg_data => x_msg_data,
3467 p_api_type => g_api_type);
3468
3469 END create_line_item;
3470
3471 PROCEDURE delete_contract_line(p_api_version IN NUMBER,
3472 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
3473 p_contract_line_id IN NUMBER,
3474 x_return_status OUT NOCOPY VARCHAR2,
3475 x_msg_count OUT NOCOPY NUMBER,
3476 x_msg_data OUT NOCOPY VARCHAR2 ,
3477 p_skip_minor_vers IN VARCHAR2 DEFAULT OKE_API.G_FALSE
3478 )
3479 IS
3480
3481
3482 l_api_name CONSTANT VARCHAR2(30) := 'DELETE_CONTRACT_LINE';
3483 l_api_version CONSTANT NUMBER := 1.0;
3484 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
3485 l_msg_count NUMBER;
3486 l_msg_data VARCHAR2(2000);
3487
3488 L_sts_code VARCHAR2(30);
3489 L_object_version_number NUMBER;
3490 l_chr_id NUMBER;
3491 l_line_value_total NUMBER;
3492 l_undef_line_value_total NUMBER;
3493
3494
3495
3496 L_PROGRESS VARCHAR2(3) := '000';
3497
3498 l_cimv_tbl okc_contract_item_pub.cimv_tbl_type;
3499
3500 l_item_id NUMBER;
3501 l_item_obj_vers_num NUMBER;
3502
3503 CURSOR cur_item_exists (p_cle_id NUMBER)
3504 IS
3505 SELECT id,OBJECT_VERSION_NUMBER
3506 FROM okc_k_items
3507 WHERE CLE_ID = p_cle_id;
3508
3509 l_cle_tbl OKE_CLE_PVT.cle_tbl_type;
3510 l_clev_tbl OKC_CONTRACT_PUB.clev_tbl_type;
3511
3512 BEGIN
3513
3514 -- call START_ACTIVITY to create savepoint, check compatibility
3515 -- and initialize message list
3516 l_return_status := OKE_API.START_ACTIVITY(
3517 p_api_name => l_api_name,
3518 p_pkg_name => g_pkg_name,
3519 p_init_msg_list => p_init_msg_list,
3520 l_api_version => l_api_version,
3521 p_api_version => p_api_version,
3522 p_api_type => g_api_type,
3523 x_return_status => x_return_status);
3524
3525 -- check if activity started successfully
3526 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
3527 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
3528 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
3529 raise OKE_API.G_EXCEPTION_ERROR;
3530 End If;
3531
3532 -- Get the Basic info regarding the line.
3533 BEGIN
3534 SELECT cl.sts_code,cl.object_version_number
3535 ,cl.dnz_chr_id, l.line_value_total,
3536 l.undef_line_value_total
3537 INTO L_sts_code, L_object_version_number
3538 ,l_chr_id,l_line_value_total,
3539 l_undef_line_value_total
3540 FROM okc_k_lines_b cl, oke_k_lines l, oke_k_headers kh
3541 WHERE cl.id=l.k_line_id
3542 AND kh.k_header_id=cl.dnz_chr_id
3543 and l.k_line_id=p_contract_line_id;
3544 EXCEPTION
3545 WHEN No_Data_Found THEN
3546 OKE_API.SET_MESSAGE
3547 (p_app_name => g_app_name,
3548 p_msg_name => g_invalid_value,
3549 p_token1 => g_col_name_token,
3550 p_token1_value => 'k_line_id'
3551 );
3552 raise OKE_API.G_EXCEPTION_ERROR;
3553 WHEN OTHERS THEN
3554 x_return_status := OKE_API.G_RET_STS_UNEXP_ERROR;
3555 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
3556 END;
3557
3558 -- 1. Validate line Status
3559 VALIDATE_LINE_STATUS (L_sts_code, l_return_status);
3560 --- If any errors happen abort API
3561 IF (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) THEN
3562 RAISE OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
3563 ELSIF (l_return_status = OKE_API.G_RET_STS_ERROR) THEN
3564 RAISE OKE_API.G_EXCEPTION_ERROR;
3565 END IF;
3566
3567 -- 2. Check if child line exists, no delete for parent line.
3568 IF CHILD_LINE_EXISTS(p_contract_line_id) = 'Y' THEN
3569 OKE_API.SET_MESSAGE
3570 (p_app_name => g_app_name,
3571 p_msg_name => 'OKE_NO_DELETE_PARENT'
3572 );
3573 raise OKE_API.G_EXCEPTION_ERROR;
3574 END IF;
3575
3576 -- 3. Check if deliverable have been defaulted down, if so, no delete
3577 IF CHILD_DELIVERABLE_EXISTS(p_contract_line_id) = 'Y'
3578 THEN
3579 OKE_API.SET_MESSAGE
3580 (p_app_name => g_app_name,
3581 p_msg_name => 'OKE_NO_DELETE_DEFAULTED'
3582 );
3583 raise OKE_API.G_EXCEPTION_ERROR;
3584 END IF;
3585
3586 -- 4. Check if funding exists
3587 IF CHILD_FUNDING_EXISTS(p_contract_line_id) = 'Y'
3588 THEN
3589 OKE_API.SET_MESSAGE
3590 (p_app_name => g_app_name,
3591 p_msg_name => 'OKE_NO_DELETE_FUND_EXISTS'
3592 );
3593 raise OKE_API.G_EXCEPTION_ERROR;
3594 END IF;
3595
3596 -- 5. Update the total amounts the parent and the header
3597 -- line_value_total undef_line_value_total
3598 update oke_k_lines
3599 set line_value_total = Nvl(line_value_total,0) - Nvl(l_line_value_total,0),
3600 undef_line_value_total = Nvl(undef_line_value_total,0) - Nvl(l_undef_line_value_total,0)
3601 where k_line_id IN (
3602 SELECT id FROM okc_k_lines_b
3603 WHERE id IS NOT NULL
3604 START WITH id = p_contract_line_id
3605 CONNECT BY PRIOR CLE_ID = ID );
3606
3607 -- Update Header Amount
3608 UPDATE oke_k_headers
3609 SET line_value_total = Nvl(line_value_total,0) - Nvl(l_line_value_total,0)
3610 ,undef_line_value_total = Nvl(undef_line_value_total,0) - Nvl(l_undef_line_value_total,0)
3611 WHERE k_header_id=l_chr_id;
3612
3613
3614 -- 7. Delete the item.
3615 OPEN cur_item_exists (p_contract_line_id);
3616 FETCH cur_item_exists INTO l_item_id ,l_item_obj_vers_num ;
3617 CLOSE cur_item_exists;
3618
3619 IF (l_item_id IS NOT NULL AND l_item_obj_vers_num IS NOT NULL)
3620 THEN
3621
3622 l_cimv_tbl(1).ID := l_item_id;
3623 l_cimv_tbl(1).OBJECT_VERSION_NUMBER := l_item_obj_vers_num;
3624
3625 /*skuchima bugs 14380256 */
3626 IF (FND_API.G_TRUE = p_skip_minor_vers ) THEN
3627 okc_cvm_pvt.defer_minor_version_update('T');
3628 end if;
3629
3630 okc_contract_item_pub.delete_contract_item
3631 ( p_api_version => l_api_version
3632 , p_init_msg_list => p_init_msg_list
3633 , x_return_status => l_return_status
3634 , x_msg_count => l_msg_count
3635 , x_msg_data => l_msg_data
3636 , p_cimv_tbl => l_cimv_tbl
3637 );
3638 okc_cvm_pvt.defer_minor_version_update('F');
3639
3640 --- If any errors happen abort API
3641 IF (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) THEN
3642 RAISE OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
3643 ELSIF (l_return_status = OKE_API.G_RET_STS_ERROR) THEN
3644 RAISE OKE_API.G_EXCEPTION_ERROR;
3645 END IF;
3646 END IF;
3647
3648 l_clev_tbl(1).ID := p_contract_line_id;
3649 l_clev_tbl(1).OBJECT_VERSION_NUMBER := L_object_version_number;
3650 l_cle_tbl(1).k_line_id := p_contract_line_id;
3651
3652
3653 -- 8. Delete Contract line
3654 oke_contract_pub.delete_contract_line
3655 ( p_api_version => l_api_version
3656 , p_init_msg_list => p_init_msg_list
3657 , x_return_status => l_return_status
3658 , x_msg_count => l_msg_count
3659 , x_msg_data => l_msg_data
3660 , p_cle_tbl => l_cle_tbl
3661 , p_clev_tbl => l_clev_tbl
3662 );
3663 IF (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) THEN
3664 RAISE OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
3665 ELSIF (l_return_status = OKE_API.G_RET_STS_ERROR) THEN
3666 RAISE OKE_API.G_EXCEPTION_ERROR;
3667 END IF;
3668
3669
3670
3671 -- 6. Delete associated party roles. Articles/Standard Notes/User Defined attributes etc
3672 -- and then delete actual line from oke and okc table.
3673
3674 -- Delete User Defined Attributes.
3675 delete from oke_k_user_attributes where k_line_id = p_contract_line_id;
3676
3677 -- Delete Standard Notes.
3678 delete from oke_k_standard_notes_tl
3679 where standard_notes_id in
3680 (select standard_notes_id from oke_k_standard_notes_b
3681 where k_line_id = p_contract_line_id);
3682
3683 delete from oke_k_standard_notes_b where k_line_id = p_contract_line_id;
3684
3685 -- Delete Print Forms
3686 delete from oke_k_print_forms where k_line_id = p_contract_line_id;
3687
3688 -- Delete Terms and Conditions
3689 delete from oke_k_terms where k_line_id = p_contract_line_id;
3690
3691 -- Delete articles
3692 delete from okc_k_articles_tl where id in
3693 (select id from okc_k_articles_b where cle_id=p_contract_line_id);
3694
3695 delete from okc_k_articles_b where cle_id=p_contract_line_id;
3696 -- We need to delete corresonding clauses from the okc_articles_all first?
3697
3698 -- Delete parties and contacts
3699 delete from okc_contacts where cpl_id in
3700 (select id from okc_k_party_roles_b where cle_id=p_contract_line_id);
3701
3702 delete from okc_k_party_roles_tl where id in
3703 (select id from okc_k_party_roles_b where cle_id=p_contract_line_id);
3704
3705 delete from okc_k_party_roles_b where cle_id = p_contract_line_id;
3706
3707
3708
3709 OKE_API.END_ACTIVITY( x_msg_count => x_msg_count,
3710 x_msg_data => x_msg_data);
3711
3712 EXCEPTION
3713 when OKE_API.G_EXCEPTION_ERROR then
3714 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
3715 p_api_name => l_api_name,
3716 p_pkg_name => g_pkg_name,
3717 p_exc_name => 'OKE_API.G_RET_STS_ERROR',
3718 x_msg_count => x_msg_count,
3719 x_msg_data => x_msg_data,
3720 p_api_type => g_api_type);
3721
3722 when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
3723 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
3724 p_api_name => l_api_name,
3725 p_pkg_name => g_pkg_name,
3726 p_exc_name => 'OKE_API.G_RET_STS_UNEXP_ERROR',
3727 x_msg_count => x_msg_count,
3728 x_msg_data => x_msg_data,
3729 p_api_type => g_api_type);
3730
3731 when OTHERS then
3732 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
3733 p_api_name => l_api_name,
3734 p_pkg_name => g_pkg_name,
3735 p_exc_name => 'OTHERS',
3736 x_msg_count => x_msg_count,
3737 x_msg_data => x_msg_data,
3738 p_api_type => g_api_type);
3739 END delete_contract_line;
3740
3741
3742 PROCEDURE update_contract_line(
3743
3744 p_api_version IN NUMBER,
3745 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
3746 x_return_status OUT NOCOPY VARCHAR2,
3747 x_msg_count OUT NOCOPY NUMBER,
3748 x_msg_data OUT NOCOPY VARCHAR2,
3749
3750 p_cle_rec IN cle_rec_type,
3751 x_cle_rec OUT NOCOPY cle_rec_type,
3752 p_skip_minor_vers IN VARCHAR2 DEFAULT OKE_API.G_FALSE
3753 ) IS
3754
3755 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_CONTRACT_LINE';
3756 l_api_version CONSTANT NUMBER := 1.0;
3757 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
3758
3759 l_okc_clev_rec OKC_CONTRACT_PUB.clev_rec_type;
3760 l_oke_cle_rec OKE_CONTRACT_PUB.cle_rec_type;
3761 l_out_clev OKC_CONTRACT_PUB.clev_rec_type;
3762 l_out_cle OKE_CONTRACT_PUB.cle_rec_type;
3763
3764 l_cimv_rec CIMV_REC_TYPE;
3765 l_cimv_out CIMV_REC_TYPE;
3766 l_inv_Org NUMBER;
3767
3768 l_cimv_tbl_in okc_contract_item_pub.cimv_tbl_type;
3769 l_cimv_tbl_out okc_contract_item_pub.cimv_tbl_type;
3770
3771
3772 CURSOR get_inventory_org (p_chr NUMBER) IS
3773 SELECT inv_organization_id
3774 FROM OKC_K_HEADERS_B
3775 WHERE ID = p_chr;
3776
3777 l_value VARCHAR2(1);
3778
3779 CURSOR c_line_exists
3780 IS
3781 SELECT cl.dnz_chr_id,cl.cle_id,cl.sts_code,cl.lse_id, el.export_flag
3782 ,el.PROGRESS_PAYMENT_FLAG,cl.start_date,cl.end_date,el.proposal_due_date, el.delivery_date
3783 ,el.line_quantity,el.unit_price, el.undef_unit_price,el.line_value, el.undef_line_value
3784 ,el.line_value_total,el.undef_line_value_total
3785 FROM okc_k_lines_b cl , oke_k_lines el
3786 WHERE cl.id= p_cle_rec.k_line_id
3787 AND el.k_line_id=cl.id;
3788
3789 l_chr_id NUMBER;
3790 l_cle_id NUMBER;
3791 l_sts_code VARCHAR2(30);
3792 l_lse_id NUMBER;
3793 l_export_flag VARCHAR2(1);
3794 l_PROGRESS_PAYMENT_FLAG varchar2(1);
3795 l_start_date DATE;
3796 l_end_date DATE;
3797 l_proposal_due_date VARCHAR2(80);
3798 l_delivery_date DATE;
3799
3800 l_line_quantity NUMBER;
3801 l_unit_price NUMBER;
3802 l_undef_unit_price NUMBER;
3803
3804
3805 CURSOR c_line_item_exists
3806 IS
3807 SELECT 'Y' , id ,object_version_number
3808 FROM okc_k_items
3809 WHERE cle_id= p_cle_rec.k_line_id;
3810 l_item_exists VARCHAR2(1);
3811 l_k_item_id NUMBER;
3812 l_ovn NUMBER;
3813
3814
3815 CURSOR c (p_number varchar2, p_cle_id NUMBER) is
3816 select 'x'
3817 from OKC_K_LINES_B
3818 WHERE LINE_NUMBER = p_number
3819 AND id<>p_cle_id
3820 AND ( cle_id = l_cle_id
3821 OR (cle_id is null AND l_cle_id is null))
3822 AND dnz_chr_id = l_chr_id;
3823
3824 l_found VARCHAR2(1);
3825 l_line_status VARCHAR2(1);
3826 l_line_number VARCHAR2(240);
3827
3828
3829 cursor c_ste_code(p_status_code varchar2) is
3830 select ste_code from okc_statuses_b where
3831 code = p_status_code;
3832 l_ste_code varchar(40) := null;
3833
3834 l_oval NUMBER ;
3835 l_oval_u NUMBER ;
3836
3837 l_diff NUMBER := 0;
3838 l_diff_u NUMBER := 0;
3839 l_nval NUMBER;
3840 l_nval_u NUMBER;
3841
3842 l_qty_changed_yn VARCHAR2(1) := 'N';
3843 l_price_changed_yn VARCHAR2(1) := 'N';
3844 l_undef_price_changed_yn VARCHAR2(1) := 'N';
3845 l_line_value_total NUMBER;
3846 l_undef_line_value_total NUMBER;
3847
3848 BEGIN
3849
3850 -- call START_ACTIVITY to create savepoint, check compatibility
3851 -- and initialize message list
3852 l_return_status := OKE_API.START_ACTIVITY(
3853 p_api_name => l_api_name,
3854 p_pkg_name => g_pkg_name,
3855 p_init_msg_list => p_init_msg_list,
3856 l_api_version => l_api_version,
3857 p_api_version => p_api_version,
3858 p_api_type => g_api_type,
3859 x_return_status => x_return_status);
3860
3861
3862 -- check if activity started successfully
3863 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
3864 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
3865 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
3866 raise OKE_API.G_EXCEPTION_ERROR;
3867 End If;
3868
3869
3870
3871 /* Adding missing validations */
3872 -- Get the following fields from the OKE_K_LINES
3873 OPEN c_line_exists;
3874 FETCH c_line_exists INTO l_chr_id,l_cle_id,l_sts_code,l_lse_id,l_export_flag,
3875 l_PROGRESS_PAYMENT_FLAG,l_start_date,l_end_date,l_proposal_due_date,l_delivery_date
3876 ,l_line_quantity,l_unit_price,l_undef_unit_price,l_oval,l_oval_u
3877 ,l_line_value_total,l_undef_line_value_total;
3878 IF c_line_exists%NOTFOUND THEN
3879 CLOSE c_line_exists;
3880 OKE_API.SET_MESSAGE
3881 (p_app_name => g_app_name,
3882 p_msg_name => g_invalid_value,
3883 p_token1 => g_col_name_token,
3884 p_token1_value => 'K_Line_ID');
3885
3886 raise OKE_API.G_EXCEPTION_ERROR;
3887 END IF;
3888 CLOSE c_line_exists;
3889
3890
3891 OKC_CONTEXT.Set_OKC_Org_Context( p_chr_id => L_CHR_ID );
3892
3893 -- If the line number is passed as null then set to oke_api.g_miss_char
3894 l_line_number := Nvl(p_cle_rec.line_number,OKE_API.g_Miss_char);
3895
3896 -- Get the current status, if the status is not entered then do no allow update to line number.
3897 open c_ste_code(l_sts_code);
3898 fetch c_ste_code into l_ste_code;
3899 close c_ste_code;
3900
3901 -- If status is not entered then do not allow update to line number.
3902 If l_ste_code <> 'ENTERED' THEN
3903 l_line_number := OKE_API.g_Miss_char;
3904 END IF;
3905
3906 IF l_line_number <> OKE_API.g_miss_char
3907 Then
3908 IF l_line_number IS NOT NULL
3909 THEN
3910 -- check for duplication
3911 open c(p_cle_rec.line_number,l_cle_id);
3912 fetch c into l_found;
3913 IF c%FOUND THEN
3914 CLOSE c;
3915 OKE_API.SET_MESSAGE
3916 (p_app_name => g_app_name,
3917 p_msg_name => 'OKE_NUMBER_EXISTED'
3918 );
3919 raise OKE_API.G_EXCEPTION_ERROR;
3920 END IF;
3921 close c;
3922 -- check if there is a change and if the status is not entered
3923 -- then do not allow update to line number.
3924 END IF;
3925 END IF;
3926
3927 IF Nvl(p_cle_rec.lse_id,-99) <> oke_api.g_miss_num THEN
3928 IF p_cle_rec.lse_id IS NOT NULL THEN
3929 l_lse_id := p_cle_rec.lse_id;
3930 ELSE
3931 -- lse_id can not be null
3932 l_lse_id := oke_api.g_miss_num;
3933 END IF;
3934 END IF;
3935
3936 -- Data Item related validations:
3937 IF l_lse_id IN (703 , 704 , 707) THEN
3938 l_oke_cle_rec.copies_required := p_cle_rec.copies_required;
3939 l_oke_cle_rec.cdrl_category := p_cle_rec.cdrl_category;
3940 l_oke_cle_rec.data_item_name := p_cle_rec.data_item_name;
3941 l_oke_cle_rec.data_item_subtitle := p_cle_rec.data_item_subtitle;
3942 l_oke_cle_rec.date_of_first_submission:= p_cle_rec.date_of_first_submission;
3943 l_oke_cle_rec.frequency := p_cle_rec.frequency;
3944 l_oke_cle_rec.requiring_office := p_cle_rec.requiring_office;
3945 ELSE
3946 l_oke_cle_rec.copies_required := NULL;
3947 l_oke_cle_rec.cdrl_category := NULL;
3948 l_oke_cle_rec.data_item_name :=NULL;
3949 l_oke_cle_rec.data_item_subtitle :=NULL;
3950 l_oke_cle_rec.date_of_first_submission:= NULL;
3951 l_oke_cle_rec.frequency := NULL;
3952 l_oke_cle_rec.requiring_office := NULL;
3953 END IF;
3954
3955 IF Nvl(p_cle_rec.export_flag,'SE') <> oke_api.g_miss_char
3956 THEN
3957 IF p_cle_rec.export_flag IS NOT NULL THEN
3958 l_export_flag := p_cle_rec.export_flag;
3959 ELSE
3960 l_export_flag := 'N';
3961 END IF;
3962 END IF;
3963
3964 IF Nvl(Upper(l_export_flag),'N') = 'N'
3965 THEN
3966 l_oke_cle_rec.EXPORT_LICENSE_NUM := NULL;
3967 l_oke_cle_rec.EXPORT_LICENSE_RES := NULL;
3968 ELSE
3969 l_oke_cle_rec.EXPORT_LICENSE_NUM := p_cle_rec.EXPORT_LICENSE_NUM;
3970 l_oke_cle_rec.EXPORT_LICENSE_RES := p_cle_rec.EXPORT_LICENSE_RES;
3971 END IF;
3972
3973
3974 IF Nvl(p_cle_rec.PROGRESS_PAYMENT_FLAG,'SE') <> oke_api.g_miss_char
3975 THEN
3976 IF l_PROGRESS_PAYMENT_FLAG IS NOT NULL THEN
3977 l_PROGRESS_PAYMENT_FLAG := p_cle_rec.PROGRESS_PAYMENT_FLAG;
3978 ELSE
3979 l_PROGRESS_PAYMENT_FLAG := 'N';
3980 END IF;
3981 END IF;
3982
3983 IF Nvl(l_PROGRESS_PAYMENT_FLAG,'N') = 'N' THEN
3984 l_oke_cle_rec.PROGRESS_PAYMENT_LIQ_RATE := NULL;
3985 l_oke_cle_rec.PROGRESS_PAYMENT_RATE := NULL;
3986 l_oke_cle_rec.LINE_LIQUIDATION_RATE := NULL;
3987 ELSE
3988 l_oke_cle_rec.PROGRESS_PAYMENT_LIQ_RATE := p_cle_rec.PROGRESS_PAYMENT_LIQ_RATE;
3989 l_oke_cle_rec.PROGRESS_PAYMENT_RATE := p_cle_rec.PROGRESS_PAYMENT_RATE;
3990 l_oke_cle_rec.LINE_LIQUIDATION_RATE := p_cle_rec.LINE_LIQUIDATION_RATE;
3991 END IF;
3992
3993 IF p_cle_rec.start_date <> oke_api.g_miss_date THEN
3994 l_start_Date := p_cle_rec.start_date;
3995 END IF;
3996
3997 IF p_cle_rec.end_date <> oke_api.g_miss_date THEN
3998 l_end_Date := p_cle_rec.end_date;
3999 END IF;
4000
4001 IF p_cle_rec.delivery_date <> oke_api.g_miss_date THEN
4002 l_delivery_Date := p_cle_rec.delivery_Date;
4003 END IF;
4004
4005 IF p_cle_rec.proposal_due_date <> oke_api.g_miss_char THEN
4006 l_proposal_due_date := p_cle_rec.proposal_due_date;
4007 END IF;
4008
4009 -- Validate delivery date, if there is a change then only valdiate.
4010 IF p_cle_rec.delivery_date <> oke_api.g_miss_date
4011 AND p_cle_rec.delivery_date IS NOT NULL THEN
4012 validate_delivery_Date (x_return_status => x_return_status,
4013 p_line_id => p_cle_rec.k_line_id,
4014 p_start_date => l_start_date,
4015 p_end_date => l_end_date,
4016 p_due_date => l_delivery_date
4017 );
4018 -- check for errors
4019 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
4020 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
4021 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
4022 raise OKE_API.G_EXCEPTION_ERROR;
4023 End If;
4024 END IF;
4025
4026 -- Validate proposal date
4027 IF p_cle_rec.proposal_due_date <> oke_api.g_miss_char
4028 AND p_cle_rec.proposal_due_date IS NOT NULL THEN
4029 validate_proposal_due_date(x_return_status,l_proposal_due_date);
4030
4031 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
4032 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
4033 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
4034 raise OKE_API.G_EXCEPTION_ERROR;
4035 End If;
4036 END IF;
4037
4038 -- Validate Start date
4039 IF p_cle_rec.start_date <> oke_api.g_miss_date
4040 AND p_cle_rec.start_date IS NOT NULL THEN
4041
4042 VALIDATE_line_dates (x_return_status => x_return_status,
4043 p_line_id => p_cle_rec.k_line_id,
4044 p_col_name => 'Start Date',
4045 p_line_start_date => l_start_date,
4046 p_line_end_date => l_end_date,
4047 p_line_due_date => l_delivery_date,
4048 p_cle_id => l_cle_id,
4049 p_chr_id => l_chr_id
4050 );
4051 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
4052 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
4053 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
4054 raise OKE_API.G_EXCEPTION_ERROR;
4055 End If;
4056 END IF;
4057
4058 -- Validate End date
4059 IF p_cle_rec.end_date <> oke_api.g_miss_date
4060 AND p_cle_rec.end_date IS NOT NULL THEN
4061 VALIDATE_line_dates (x_return_status => x_return_status,
4062 p_line_id => p_cle_rec.k_line_id,
4063 p_col_name => 'End Date',
4064 p_line_start_date => l_start_date,
4065 p_line_end_date => l_end_date,
4066 p_line_due_date => l_delivery_date,
4067 p_cle_id => l_cle_id,
4068 p_chr_id => l_chr_id
4069 );
4070
4071 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
4072 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
4073 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
4074 raise OKE_API.G_EXCEPTION_ERROR;
4075 End If;
4076 END IF;
4077
4078 -- Detect price changes
4079 IF ( p_cle_rec.line_quantity <> oke_api.g_miss_num
4080 AND Nvl(p_cle_rec.line_quantity,-99) <> Nvl(l_line_quantity,-99)
4081 )
4082 THEN
4083 l_qty_changed_yn := 'Y';
4084 l_line_quantity := p_cle_rec.line_quantity;
4085 END IF;
4086 IF (
4087 p_cle_rec.unit_price <> oke_api.g_miss_num
4088 AND Nvl(p_cle_rec.unit_price,-99) <> Nvl(l_unit_price,-99)
4089 )
4090 THEN
4091 l_price_changed_yn := 'Y' ;
4092 l_unit_price := p_cle_rec.unit_price;
4093 END IF;
4094
4095 IF
4096 ( p_cle_rec.undef_unit_price <> oke_api.g_miss_num
4097 AND Nvl(p_cle_rec.undef_unit_price,-99) <> Nvl(l_undef_unit_price,-99)
4098 )
4099 THEN
4100
4101 l_undef_price_changed_yn := 'Y';
4102 l_undef_unit_price := p_cle_rec.undef_unit_price;
4103 END IF;
4104
4105 if l_qty_changed_yn = 'Y' or l_price_changed_yn = 'Y' or l_undef_price_changed_yn = 'Y'
4106 THEN
4107 l_nval := Nvl(l_line_quantity * l_unit_price,l_oval);
4108 l_nval_u := Nvl(l_line_quantity * l_undef_unit_price,l_oval_u);
4109
4110 IF l_price_changed_yn = 'Y' THEN
4111 IF l_oval IS NOT NULL AND l_line_quantity IS NOT NULL AND l_unit_price IS NULL THEN
4112 l_nval := NULL;
4113 END IF;
4114 IF l_line_quantity IS NOT NULL AND l_unit_price IS NOT NULL THEN
4115 NULL;
4116 -- do not allow update to line value manually
4117 --l_oke_cle_rec.line_value := ?
4118 ELSE
4119 -- allow line valuue to be edited manually
4120 l_oke_cle_rec.line_value := p_cle_rec.line_value;
4121 END IF;
4122
4123 END IF;
4124 IF l_undef_price_changed_yn = 'Y' THEN
4125 IF l_oval_u IS NOT NULL AND l_line_quantity IS NOT NULL AND l_undef_unit_price IS NULL THEN
4126 l_nval_u := NULL;
4127 END IF;
4128
4129 IF l_undef_unit_price IS NOT NULL AND l_line_quantity IS NOT NULL THEN
4130 NULL;
4131 -- do not allow update to line value manually
4132 --l_oke_cle_rec.undef_line_value := ?
4133 ELSE
4134 l_oke_cle_rec.undef_line_value := p_cle_rec.undef_line_value;
4135 -- allow line valuue to be edited manually
4136 END IF;
4137 END IF;
4138
4139 l_diff := Nvl(l_oval,0) - Nvl(l_nval,0);
4140 l_oke_cle_rec.line_value := l_nval;
4141 l_oke_cle_rec.line_value_total := Nvl(l_line_value_total,0) - l_diff;
4142
4143 l_diff_u := Nvl(l_oval_u,0) - Nvl(l_nval_u,0);
4144 l_oke_cle_rec.undef_line_value := l_nval_u;
4145 l_oke_cle_rec.undef_line_value_total := Nvl(l_undef_line_value_total,0) - l_diff_u;
4146
4147 update_line_total(l_chr_id , p_cle_rec.k_line_id , l_cle_id , l_diff , l_diff_u);
4148
4149 ELSE
4150 l_oke_cle_rec.undef_line_value_total := oke_api.g_miss_num;
4151 l_oke_cle_rec.line_value_total := oke_api.g_miss_num;
4152 l_oke_cle_rec.undef_line_value := p_cle_rec.undef_line_value;
4153 l_oke_cle_rec.line_value := p_cle_rec.line_value;
4154 END IF;
4155
4156
4157
4158 /* Adding missing validations */
4159
4160 -- Detect the changes
4161 OPEN c_line_item_exists;
4162 FETCH c_line_item_exists INTO l_item_exists,l_k_item_id,l_ovn;
4163 CLOSE c_line_item_exists;
4164 l_item_exists := Nvl(l_item_exists,'N');
4165
4166
4167 -- Make sure that the changes are valid.
4168 l_oke_cle_rec.k_line_id := p_cle_rec.k_line_id;
4169 l_oke_cle_rec.parent_line_id := p_cle_rec.parent_line_id;
4170 l_oke_cle_rec.project_id := p_cle_rec.project_id;
4171 l_oke_cle_rec.task_id := p_cle_rec.task_id;
4172 l_oke_cle_rec.billing_method_code := p_cle_rec.billing_method_code;
4173 l_oke_cle_rec.inventory_item_id := p_cle_rec.inventory_item_id;
4174 l_oke_cle_rec.delivery_order_flag := p_cle_rec.delivery_order_flag;
4175 l_oke_cle_rec.splited_flag := p_cle_rec.splited_flag;
4176 l_oke_cle_rec.priority_code := p_cle_rec.priority_code;
4177 l_oke_cle_rec.customer_item_id := p_cle_rec.customer_item_id;
4178 l_oke_cle_rec.customer_item_number := p_cle_rec.customer_item_number;
4179 l_oke_cle_rec.line_quantity := p_cle_rec.line_quantity;
4180 l_oke_cle_rec.delivery_date := p_cle_rec.delivery_date;
4181 l_oke_cle_rec.unit_price := p_cle_rec.unit_price;
4182 l_oke_cle_rec.uom_code := p_cle_rec.uom_code;
4183 l_oke_cle_rec.billable_flag := p_cle_rec.billable_flag;
4184 l_oke_cle_rec.shippable_flag := p_cle_rec.shippable_flag;
4185 l_oke_cle_rec.subcontracted_flag := p_cle_rec.subcontracted_flag;
4186 l_oke_cle_rec.completed_flag := p_cle_rec.completed_flag;
4187 l_oke_cle_rec.nsp_flag := p_cle_rec.nsp_flag;
4188 l_oke_cle_rec.app_code := p_cle_rec.app_code;
4189 l_oke_cle_rec.as_of_date := p_cle_rec.as_of_date;
4190 l_oke_cle_rec.authority := p_cle_rec.authority;
4191 l_oke_cle_rec.country_of_origin_code := p_cle_rec.country_of_origin_code;
4192 l_oke_cle_rec.drop_shipped_flag := p_cle_rec.drop_shipped_flag;
4193 l_oke_cle_rec.customer_approval_req_flag := p_cle_rec.customer_approval_req_flag;
4194 l_oke_cle_rec.date_material_req := p_cle_rec.date_material_req;
4195 l_oke_cle_rec.inspection_req_flag := p_cle_rec.inspection_req_flag;
4196 l_oke_cle_rec.interim_rpt_req_flag := p_cle_rec.interim_rpt_req_flag;
4197 l_oke_cle_rec.subj_a133_flag := p_cle_rec.subj_a133_flag;
4198 l_oke_cle_rec.export_flag := l_export_flag;
4199 l_oke_cle_rec.cfe_req_flag := p_cle_rec.cfe_req_flag;
4200 l_oke_cle_rec.cop_required_flag := p_cle_rec.cop_required_flag;
4201 --l_oke_cle_rec.export_license_num := p_cle_rec.export_license_num;
4202 --l_oke_cle_rec.export_license_res := p_cle_rec.export_license_res;
4203
4204
4205
4206 l_oke_cle_rec.dcaa_audit_req_flag := p_cle_rec.dcaa_audit_req_flag;
4207 l_oke_cle_rec.definitized_flag := p_cle_rec.definitized_flag;
4208 l_oke_cle_rec.cost_of_money := p_cle_rec.cost_of_money;
4209 l_oke_cle_rec.bill_undefinitized_flag := p_cle_rec.bill_undefinitized_flag;
4210 l_oke_cle_rec.nsn_number := p_cle_rec.nsn_number;
4211 l_oke_cle_rec.nte_warning_flag := p_cle_rec.nte_warning_flag;
4212 l_oke_cle_rec.discount_for_payment := p_cle_rec.discount_for_payment;
4213 l_oke_cle_rec.financial_ctrl_flag := p_cle_rec.financial_ctrl_flag;
4214 l_oke_cle_rec.c_scs_flag := p_cle_rec.c_scs_flag;
4215 l_oke_cle_rec.c_ssr_flag := p_cle_rec.c_ssr_flag;
4216 l_oke_cle_rec.prepayment_amount := p_cle_rec.prepayment_amount;
4217 l_oke_cle_rec.prepayment_percentage := p_cle_rec.prepayment_percentage;
4218 l_oke_cle_rec.progress_payment_flag := l_progress_payment_flag;
4219 l_oke_cle_rec.progress_payment_liq_rate := p_cle_rec.progress_payment_liq_rate;
4220 l_oke_cle_rec.progress_payment_rate := p_cle_rec.progress_payment_rate;
4221 l_oke_cle_rec.award_fee := p_cle_rec.award_fee;
4222 l_oke_cle_rec.award_fee_pool_amount := p_cle_rec.award_fee_pool_amount;
4223 l_oke_cle_rec.base_fee := p_cle_rec.base_fee;
4224 l_oke_cle_rec.ceiling_cost := p_cle_rec.ceiling_cost;
4225 l_oke_cle_rec.ceiling_price := p_cle_rec.ceiling_price;
4226 l_oke_cle_rec.labor_cost_index := p_cle_rec.labor_cost_index;
4227 l_oke_cle_rec.material_cost_index := p_cle_rec.material_cost_index;
4228 l_oke_cle_rec.customers_percent_in_order := p_cle_rec.customers_percent_in_order;
4229 l_oke_cle_rec.cost_overrun_share_ratio := p_cle_rec.cost_overrun_share_ratio;
4230 l_oke_cle_rec.cost_underrun_share_ratio := p_cle_rec.cost_underrun_share_ratio;
4231 l_oke_cle_rec.date_of_price_redetermin := p_cle_rec.date_of_price_redetermin;
4232 l_oke_cle_rec.estimated_total_quantity := p_cle_rec.estimated_total_quantity;
4233 l_oke_cle_rec.fee_ajt_formula := p_cle_rec.fee_ajt_formula;
4234 l_oke_cle_rec.final_fee := p_cle_rec.final_fee;
4235 l_oke_cle_rec.final_pft_ajt_formula := p_cle_rec.final_pft_ajt_formula;
4236 l_oke_cle_rec.fixed_fee := p_cle_rec.fixed_fee;
4237 l_oke_cle_rec.fixed_quantity := p_cle_rec.fixed_quantity;
4238 l_oke_cle_rec.initial_fee := p_cle_rec.initial_fee;
4239 l_oke_cle_rec.initial_price := p_cle_rec.initial_price;
4240 l_oke_cle_rec.level_of_effort_hours := p_cle_rec.level_of_effort_hours;
4241 l_oke_cle_rec.line_liquidation_rate := p_cle_rec.line_liquidation_rate;
4242 l_oke_cle_rec.maximum_fee := p_cle_rec.maximum_fee;
4243 l_oke_cle_rec.maximum_quantity := p_cle_rec.maximum_quantity;
4244 l_oke_cle_rec.minimum_fee := p_cle_rec.minimum_fee;
4245 l_oke_cle_rec.minimum_quantity := p_cle_rec.minimum_quantity;
4246 l_oke_cle_rec.number_of_options := p_cle_rec.number_of_options;
4247 l_oke_cle_rec.revised_price := p_cle_rec.revised_price;
4248 l_oke_cle_rec.target_cost := p_cle_rec.target_cost;
4249 l_oke_cle_rec.target_date_definitize := p_cle_rec.target_date_definitize;
4250 l_oke_cle_rec.target_fee := p_cle_rec.target_fee;
4251 l_oke_cle_rec.target_price := p_cle_rec.target_price;
4252 l_oke_cle_rec.total_estimated_cost := p_cle_rec.total_estimated_cost;
4253 l_oke_cle_rec.proposal_due_date := p_cle_rec.proposal_due_date;
4254 l_oke_cle_rec.cost_of_sale_rate := p_cle_rec.cost_of_sale_rate;
4255 l_oke_cle_rec.created_by := p_cle_rec.created_by;
4256 l_oke_cle_rec.creation_date := p_cle_rec.creation_date;
4257 l_oke_cle_rec.last_updated_by := p_cle_rec.last_updated_by;
4258 l_oke_cle_rec.last_update_login := p_cle_rec.last_update_login;
4259 l_oke_cle_rec.last_update_date := p_cle_rec.last_update_date;
4260 --l_oke_cle_rec.line_value := p_cle_rec.line_value;
4261 --l_oke_cle_rec.line_value_total := p_cle_rec.line_value_total;
4262 l_oke_cle_rec.end_date := p_cle_rec.end_date;
4263
4264 -- l_oke_cle_rec.undef_line_value := p_cle_rec.undef_line_value;
4265 -- l_oke_cle_rec.undef_line_value_total := p_cle_rec.undef_line_value_total;
4266 l_oke_cle_rec.undef_unit_price := p_cle_rec.undef_unit_price;
4267
4268 l_okc_clev_rec.id := p_cle_rec.k_line_id;
4269 l_okc_clev_rec.object_version_number := p_cle_rec.object_version_number;
4270 l_okc_clev_rec.sfwt_flag := p_cle_rec.sfwt_flag;
4271 l_okc_clev_rec.chr_id := p_cle_rec.chr_id;
4272 l_okc_clev_rec.cle_id := p_cle_rec.cle_id;
4273 l_okc_clev_rec.lse_id := l_lse_id;
4274 l_okc_clev_rec.line_number := l_line_number;
4275 --l_okc_clev_rec.sts_code := Nvl(p_cle_rec.sts_code, oke_api.g_miss_char);
4276 -- Pass oke_api.g_miss_char so that status will not be overriden
4277 l_okc_clev_rec.sts_code := oke_api.g_miss_char;
4278 l_okc_clev_rec.display_sequence := p_cle_rec.display_sequence;
4279 l_okc_clev_rec.trn_code := p_cle_rec.trn_code ;
4280 l_okc_clev_rec.dnz_chr_id := p_cle_rec.dnz_chr_id ;
4281 l_okc_clev_rec.comments := p_cle_rec.comments ;
4282 l_okc_clev_rec.item_description := p_cle_rec.item_description ;
4283 l_okc_clev_rec.oke_boe_description := p_cle_rec.oke_boe_description;
4284 l_okc_clev_rec.hidden_ind := p_cle_rec.hidden_ind ;
4285 l_okc_clev_rec.price_unit := p_cle_rec.price_unit;
4286 l_okc_clev_rec.price_unit_percent := p_cle_rec.price_unit_percent;
4287 l_okc_clev_rec.price_negotiated := p_cle_rec.price_negotiated;
4288 l_okc_clev_rec.price_negotiated_renewed := p_cle_rec.price_negotiated_renewed;
4289 l_okc_clev_rec.price_level_ind := p_cle_rec.price_level_ind;
4290 l_okc_clev_rec.invoice_line_level_ind := p_cle_rec.invoice_line_level_ind;
4291 l_okc_clev_rec.dpas_rating := p_cle_rec.dpas_rating;
4292 l_okc_clev_rec.block23text := p_cle_rec.block23text;
4293 l_okc_clev_rec.exception_yn := p_cle_rec.exception_yn;
4294 l_okc_clev_rec.template_used := p_cle_rec.template_used;
4295 l_okc_clev_rec.date_terminated := p_cle_rec.date_terminated;
4296 l_okc_clev_rec.name := p_cle_rec.name;
4297 l_okc_clev_rec.start_date := p_cle_rec.start_date;
4298
4299 l_okc_clev_rec.upg_orig_system_ref := p_cle_rec.upg_orig_system_ref;
4300 l_okc_clev_rec.upg_orig_system_ref_id := p_cle_rec.upg_orig_system_ref_id;
4301 l_okc_clev_rec.attribute_category := p_cle_rec.attribute_category;
4302 l_okc_clev_rec.attribute1 := p_cle_rec.attribute1;
4303 l_okc_clev_rec.attribute2 := p_cle_rec.attribute2;
4304 l_okc_clev_rec.attribute3 := p_cle_rec.attribute3;
4305 l_okc_clev_rec.attribute4 := p_cle_rec.attribute4;
4306 l_okc_clev_rec.attribute5 := p_cle_rec.attribute5;
4307 l_okc_clev_rec.attribute6 := p_cle_rec.attribute6;
4308 l_okc_clev_rec.attribute7 := p_cle_rec.attribute7;
4309 l_okc_clev_rec.attribute8 := p_cle_rec.attribute8;
4310 l_okc_clev_rec.attribute9 := p_cle_rec.attribute9;
4311 l_okc_clev_rec.attribute10 := p_cle_rec.attribute10;
4312 l_okc_clev_rec.attribute11 := p_cle_rec.attribute11;
4313 l_okc_clev_rec.attribute12 := p_cle_rec.attribute12;
4314 l_okc_clev_rec.attribute13 := p_cle_rec.attribute13;
4315 l_okc_clev_rec.attribute14 := p_cle_rec.attribute14;
4316 l_okc_clev_rec.attribute15 := p_cle_rec.attribute15;
4317 l_okc_clev_rec.created_by := p_cle_rec.created_by;
4318 l_okc_clev_rec.creation_date := p_cle_rec.creation_date;
4319 l_okc_clev_rec.last_updated_by := p_cle_rec.last_updated_by;
4320 l_okc_clev_rec.last_update_date := p_cle_rec.last_update_date;
4321 l_okc_clev_rec.price_type := p_cle_rec.price_type;
4322 l_okc_clev_rec.currency_code := p_cle_rec.currency_code;
4323 l_okc_clev_rec.currency_code_renewed := p_cle_rec.currency_code_renewed;
4324 l_okc_clev_rec.last_update_login := p_cle_rec.last_update_login;
4325
4326
4327
4328 Validate_OKC_line_fields ( l_return_status, p_cle_rec );
4329
4330 --- If any errors happen abort API
4331 IF (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) THEN
4332 RAISE OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
4333 ELSIF (l_return_status = OKE_API.G_RET_STS_ERROR) THEN
4334 RAISE OKE_API.G_EXCEPTION_ERROR;
4335 END IF;
4336
4337 /*skuchima bugs 14524245 */
4338 IF (FND_API.G_TRUE = p_skip_minor_vers ) THEN
4339 okc_cvm_pvt.defer_minor_version_update('T');
4340 end if;
4341
4342
4343 OKE_CONTRACT_PUB.update_contract_line(
4344 p_api_version => p_api_version,
4345 p_init_msg_list => p_init_msg_list,
4346 x_return_status => x_return_status,
4347 x_msg_count => x_msg_count,
4348 x_msg_data => x_msg_data,
4349 p_cle_rec => l_oke_cle_rec,
4350 p_clev_rec => l_okc_clev_rec,
4351 x_cle_rec => l_out_cle,
4352 x_clev_rec => l_out_clev );
4353
4354 okc_cvm_pvt.defer_minor_version_update('F');
4355
4356 If (x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
4357 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
4358 Elsif (x_return_status = OKE_API.G_RET_STS_ERROR) then
4359 raise OKE_API.G_EXCEPTION_ERROR;
4360 End If;
4361
4362
4363 x_cle_rec.k_line_id := l_out_cle.k_line_id;
4364 x_cle_rec.parent_line_id := l_out_cle.parent_line_id;
4365 x_cle_rec.project_id := l_out_cle.project_id;
4366 x_cle_rec.task_id := l_out_cle.task_id;
4367 x_cle_rec.billing_method_code := l_out_cle.billing_method_code;
4368 x_cle_rec.inventory_item_id := l_out_cle.inventory_item_id;
4369 x_cle_rec.delivery_order_flag := l_out_cle.delivery_order_flag;
4370 x_cle_rec.splited_flag := l_out_cle.splited_flag;
4371 x_cle_rec.priority_code := l_out_cle.priority_code;
4372 x_cle_rec.customer_item_id := l_out_cle.customer_item_id;
4373 x_cle_rec.customer_item_number := l_out_cle.customer_item_number;
4374 x_cle_rec.line_quantity := l_out_cle.line_quantity;
4375 x_cle_rec.delivery_date := l_out_cle.delivery_date;
4376 x_cle_rec.unit_price := l_out_cle.unit_price;
4377 x_cle_rec.uom_code := l_out_cle.uom_code;
4378 x_cle_rec.billable_flag := l_out_cle.billable_flag;
4379 x_cle_rec.shippable_flag := l_out_cle.shippable_flag;
4380 x_cle_rec.subcontracted_flag := l_out_cle.subcontracted_flag;
4381 x_cle_rec.completed_flag := l_out_cle.completed_flag;
4382 x_cle_rec.nsp_flag := l_out_cle.nsp_flag;
4383 x_cle_rec.app_code := l_out_cle.app_code;
4384 x_cle_rec.as_of_date := l_out_cle.as_of_date;
4385 x_cle_rec.authority := l_out_cle.authority;
4386 x_cle_rec.country_of_origin_code := l_out_cle.country_of_origin_code;
4387 x_cle_rec.drop_shipped_flag := l_out_cle.drop_shipped_flag;
4388 x_cle_rec.customer_approval_req_flag := l_out_cle.customer_approval_req_flag;
4389 x_cle_rec.date_material_req := l_out_cle.date_material_req;
4390 x_cle_rec.inspection_req_flag := l_out_cle.inspection_req_flag;
4391 x_cle_rec.interim_rpt_req_flag := l_out_cle.interim_rpt_req_flag;
4392 x_cle_rec.subj_a133_flag := l_out_cle.subj_a133_flag;
4393 x_cle_rec.export_flag := l_out_cle.export_flag;
4394 x_cle_rec.cfe_req_flag := l_out_cle.cfe_req_flag;
4395 x_cle_rec.cop_required_flag := l_out_cle.cop_required_flag;
4396 x_cle_rec.export_license_num := l_out_cle.export_license_num;
4397 x_cle_rec.export_license_res := l_out_cle.export_license_res;
4398 x_cle_rec.copies_required := l_out_cle.copies_required;
4399 x_cle_rec.cdrl_category := l_out_cle.cdrl_category;
4400 x_cle_rec.data_item_name := l_out_cle.data_item_name;
4401 x_cle_rec.data_item_subtitle := l_out_cle.data_item_subtitle;
4402 x_cle_rec.date_of_first_submission := l_out_cle.date_of_first_submission;
4403 x_cle_rec.frequency := l_out_cle.frequency;
4404 x_cle_rec.requiring_office := l_out_cle.requiring_office;
4405 x_cle_rec.dcaa_audit_req_flag := l_out_cle.dcaa_audit_req_flag;
4406 x_cle_rec.definitized_flag := l_out_cle.definitized_flag;
4407 x_cle_rec.cost_of_money := l_out_cle.cost_of_money;
4408 x_cle_rec.bill_undefinitized_flag := l_out_cle.bill_undefinitized_flag;
4409 x_cle_rec.nsn_number := l_out_cle.nsn_number;
4410 x_cle_rec.nte_warning_flag := l_out_cle.nte_warning_flag;
4411 x_cle_rec.discount_for_payment := l_out_cle.discount_for_payment;
4412 x_cle_rec.financial_ctrl_flag := l_out_cle.financial_ctrl_flag;
4413 x_cle_rec.c_scs_flag := l_out_cle.c_scs_flag;
4414 x_cle_rec.c_ssr_flag := l_out_cle.c_ssr_flag;
4415 x_cle_rec.prepayment_amount := l_out_cle.prepayment_amount;
4416 x_cle_rec.prepayment_percentage := l_out_cle.prepayment_percentage;
4417 x_cle_rec.progress_payment_flag := l_out_cle.progress_payment_flag;
4418 x_cle_rec.progress_payment_liq_rate := l_out_cle.progress_payment_liq_rate;
4419 x_cle_rec.progress_payment_rate := l_out_cle.progress_payment_rate;
4420 x_cle_rec.award_fee := l_out_cle.award_fee;
4421 x_cle_rec.award_fee_pool_amount := l_out_cle.award_fee_pool_amount;
4422 x_cle_rec.base_fee := l_out_cle.base_fee;
4423 x_cle_rec.ceiling_cost := l_out_cle.ceiling_cost;
4424 x_cle_rec.ceiling_price := l_out_cle.ceiling_price;
4425 x_cle_rec.labor_cost_index := l_out_cle.labor_cost_index;
4426 x_cle_rec.material_cost_index := l_out_cle.material_cost_index;
4427 x_cle_rec.customers_percent_in_order := l_out_cle.customers_percent_in_order;
4428 x_cle_rec.cost_overrun_share_ratio := l_out_cle.cost_overrun_share_ratio;
4429 x_cle_rec.cost_underrun_share_ratio := l_out_cle.cost_underrun_share_ratio;
4430 x_cle_rec.date_of_price_redetermin := l_out_cle.date_of_price_redetermin;
4431 x_cle_rec.estimated_total_quantity := l_out_cle.estimated_total_quantity;
4432 x_cle_rec.fee_ajt_formula := l_out_cle.fee_ajt_formula;
4433 x_cle_rec.final_fee := l_out_cle.final_fee;
4434 x_cle_rec.final_pft_ajt_formula := l_out_cle.final_pft_ajt_formula;
4435 x_cle_rec.fixed_fee := l_out_cle.fixed_fee;
4436 x_cle_rec.fixed_quantity := l_out_cle.fixed_quantity;
4437 x_cle_rec.initial_fee := l_out_cle.initial_fee;
4438 x_cle_rec.initial_price := l_out_cle.initial_price;
4439 x_cle_rec.level_of_effort_hours := l_out_cle.level_of_effort_hours;
4440 x_cle_rec.line_liquidation_rate := l_out_cle.line_liquidation_rate;
4441 x_cle_rec.maximum_fee := l_out_cle.maximum_fee;
4442 x_cle_rec.maximum_quantity := l_out_cle.maximum_quantity;
4443 x_cle_rec.minimum_fee := l_out_cle.minimum_fee;
4444 x_cle_rec.minimum_quantity := l_out_cle.minimum_quantity;
4445 x_cle_rec.number_of_options := l_out_cle.number_of_options;
4446 x_cle_rec.revised_price := l_out_cle.revised_price;
4447 x_cle_rec.target_cost := l_out_cle.target_cost;
4448 x_cle_rec.target_date_definitize := l_out_cle.target_date_definitize;
4449 x_cle_rec.target_fee := l_out_cle.target_fee;
4450 x_cle_rec.target_price := l_out_cle.target_price;
4451 x_cle_rec.total_estimated_cost := l_out_cle.total_estimated_cost;
4452 x_cle_rec.proposal_due_date := l_out_cle.proposal_due_date;
4453 x_cle_rec.cost_of_sale_rate := l_out_cle.cost_of_sale_rate;
4454 x_cle_rec.created_by := l_out_cle.created_by;
4455 x_cle_rec.creation_date := l_out_cle.creation_date;
4456 x_cle_rec.last_updated_by := l_out_cle.last_updated_by;
4457 x_cle_rec.last_update_login := l_out_cle.last_update_login;
4458 x_cle_rec.last_update_date := l_out_cle.last_update_date;
4459 x_cle_rec.line_value := l_out_cle.line_value;
4460 x_cle_rec.line_value_total := l_out_cle.line_value_total;
4461 x_cle_rec.end_date := l_out_cle.end_date;
4462
4463 x_cle_rec.undef_line_value := l_out_cle.undef_line_value;
4464 x_cle_rec.undef_line_value_total := l_out_cle.undef_line_value_total;
4465 x_cle_rec.undef_unit_price := l_out_cle.undef_unit_price;
4466
4467
4468 x_cle_rec.k_line_id := l_out_clev.id;
4469 x_cle_rec.object_version_number := l_out_clev.object_version_number;
4470 x_cle_rec.sfwt_flag := l_out_clev.sfwt_flag;
4471 x_cle_rec.chr_id := l_out_clev.chr_id;
4472 x_cle_rec.cle_id := l_out_clev.cle_id;
4473
4474 x_cle_rec.lse_id := l_out_clev.lse_id;
4475 x_cle_rec.line_number := l_out_clev.line_number;
4476 x_cle_rec.sts_code := l_out_clev.sts_code;
4477 x_cle_rec.display_sequence := l_out_clev.display_sequence;
4478 x_cle_rec.trn_code := l_out_clev.trn_code ;
4479 x_cle_rec.dnz_chr_id := l_out_clev.dnz_chr_id ;
4480 x_cle_rec.comments := l_out_clev.comments ;
4481 x_cle_rec.item_description := l_out_clev.item_description ;
4482 x_cle_rec.oke_boe_description := l_out_clev.oke_boe_description;
4483 x_cle_rec.hidden_ind := l_out_clev.hidden_ind ;
4484 x_cle_rec.price_unit := l_out_clev.price_unit;
4485 x_cle_rec.price_unit_percent := l_out_clev.price_unit_percent;
4486 x_cle_rec.price_negotiated := l_out_clev.price_negotiated;
4487 x_cle_rec.price_negotiated_renewed := l_out_clev.price_negotiated_renewed;
4488 x_cle_rec.price_level_ind := l_out_clev.price_level_ind;
4489 x_cle_rec.invoice_line_level_ind := l_out_clev.invoice_line_level_ind;
4490 x_cle_rec.dpas_rating := l_out_clev.dpas_rating;
4491 x_cle_rec.block23text := l_out_clev.block23text;
4492 x_cle_rec.exception_yn := l_out_clev.exception_yn;
4493 x_cle_rec.template_used := l_out_clev.template_used;
4494 x_cle_rec.date_terminated := l_out_clev.date_terminated;
4495 x_cle_rec.name := l_out_clev.name;
4496 x_cle_rec.start_date := l_out_clev.start_date;
4497
4498 x_cle_rec.upg_orig_system_ref := l_out_clev.upg_orig_system_ref;
4499 x_cle_rec.upg_orig_system_ref_id := l_out_clev.upg_orig_system_ref_id;
4500 x_cle_rec.attribute_category := l_out_clev.attribute_category;
4501 x_cle_rec.attribute1 := l_out_clev.attribute1;
4502 x_cle_rec.attribute2 := l_out_clev.attribute2;
4503 x_cle_rec.attribute3 := l_out_clev.attribute3;
4504 x_cle_rec.attribute4 := l_out_clev.attribute4;
4505 x_cle_rec.attribute5 := l_out_clev.attribute5;
4506 x_cle_rec.attribute6 := l_out_clev.attribute6;
4507 x_cle_rec.attribute7 := l_out_clev.attribute7;
4508 x_cle_rec.attribute8 := l_out_clev.attribute8;
4509 x_cle_rec.attribute9 := l_out_clev.attribute9;
4510 x_cle_rec.attribute10 := l_out_clev.attribute10;
4511 x_cle_rec.attribute11 := l_out_clev.attribute11;
4512 x_cle_rec.attribute12 := l_out_clev.attribute12;
4513 x_cle_rec.attribute13 := l_out_clev.attribute13;
4514 x_cle_rec.attribute14 := l_out_clev.attribute14;
4515 x_cle_rec.attribute15 := l_out_clev.attribute15;
4516 x_cle_rec.created_by := l_out_clev.created_by;
4517 x_cle_rec.creation_date := l_out_clev.creation_date;
4518 x_cle_rec.last_updated_by := l_out_clev.last_updated_by;
4519 x_cle_rec.last_update_date := l_out_clev.last_update_date;
4520 x_cle_rec.price_type := l_out_clev.price_type;
4521 x_cle_rec.currency_code := l_out_clev.currency_code;
4522 x_cle_rec.currency_code_renewed := l_out_clev.currency_code_renewed;
4523 x_cle_rec.last_update_login := l_out_clev.last_update_login;
4524
4525
4526 -- IF successful: create line item if necessary
4527 IF x_return_status = OKE_API.G_RET_STS_SUCCESS
4528 AND x_cle_rec.inventory_item_id IS NOT NULL
4529 AND l_item_exists = 'N' THEN
4530
4531 OPEN get_inventory_org (x_cle_rec.DNZ_CHR_ID);
4532 FETCH get_inventory_org INTO l_inv_org;
4533 CLOSE get_inventory_org;
4534
4535 l_cimv_rec.DNZ_CHR_ID := x_cle_rec.DNZ_CHR_ID;
4536 l_cimv_rec.CLE_ID := x_cle_rec.K_LINE_ID;
4537 l_cimv_rec.EXCEPTION_YN := 'N';
4538 l_cimv_rec.PRICED_ITEM_YN := 'N';
4539 l_cimv_rec.OBJECT1_ID1 := x_cle_rec.inventory_item_id;
4540 l_cimv_rec.OBJECT1_ID2 := l_inv_org;
4541 l_cimv_rec.JTOT_OBJECT1_CODE := 'OKE_ITEMS';
4542 l_cimv_rec.UOM_CODE := x_cle_rec.UOM_CODE;
4543 l_cimv_rec.NUMBER_OF_ITEMS := x_cle_rec.LINE_QUANTITY;
4544 l_cimv_rec.CREATED_BY := x_cle_rec.CREATED_BY;
4545 l_cimv_rec.CREATION_DATE := x_cle_rec.CREATION_DATE;
4546 l_cimv_rec.LAST_UPDATED_BY := x_cle_rec.LAST_UPDATED_BY;
4547 l_cimv_rec.LAST_UPDATE_DATE := x_cle_rec.LAST_UPDATE_DATE;
4548 l_cimv_rec.LAST_UPDATE_LOGIN := x_cle_rec.LAST_UPDATE_LOGIN;
4549
4550 Create_Line_Item (
4551 p_api_version => p_api_version,
4552 p_init_msg_list => p_init_msg_list,
4553 x_return_status => x_return_status,
4554 x_msg_count => x_msg_count,
4555 x_msg_data => x_msg_data,
4556 p_cimv_rec => l_cimv_rec,
4557 x_cimv_rec => l_cimv_out,
4558 p_skip_minor_vers => p_skip_minor_vers
4559 );
4560
4561 If (x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
4562 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
4563 Elsif (x_return_status = OKE_API.G_RET_STS_ERROR) then
4564 raise OKE_API.G_EXCEPTION_ERROR;
4565 End If;
4566
4567 END IF;
4568
4569 IF l_item_exists = 'Y'
4570 AND x_cle_rec.inventory_item_id IS NULL
4571 AND x_return_status = OKE_API.G_RET_STS_SUCCESS
4572 THEN
4573 -- Delete the line item
4574 l_cimv_tbl_in(1).id := l_k_item_id;
4575 l_cimv_tbl_in(1).object_version_number := l_ovn;
4576
4577 /*skuchima bugs 14524245 */
4578 IF (FND_API.G_TRUE = p_skip_minor_vers ) THEN
4579 okc_cvm_pvt.defer_minor_version_update('T');
4580 end if;
4581
4582 okc_contract_item_pub.delete_contract_item
4583 ( p_api_version => 1.0
4584 , p_init_msg_list => p_init_msg_list
4585 , x_return_status => x_msg_count
4586 , x_msg_count => x_msg_count
4587 , x_msg_data => x_msg_data
4588 , p_cimv_tbl => l_cimv_tbl_in
4589 );
4590
4591 okc_cvm_pvt.defer_minor_version_update('F');
4592
4593 If (x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
4594 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
4595 Elsif (x_return_status = OKE_API.G_RET_STS_ERROR) then
4596 raise OKE_API.G_EXCEPTION_ERROR;
4597 End If;
4598 END IF;
4599
4600 OKE_API.END_ACTIVITY( x_msg_count => x_msg_count,
4601 x_msg_data => x_msg_data);
4602 EXCEPTION
4603 when OKE_API.G_EXCEPTION_ERROR then
4604 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
4605 p_api_name => l_api_name,
4606 p_pkg_name => g_pkg_name,
4607 p_exc_name => 'OKE_API.G_RET_STS_ERROR',
4608 x_msg_count => x_msg_count,
4609 x_msg_data => x_msg_data,
4610 p_api_type => g_api_type);
4611
4612 when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
4613 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
4614 p_api_name => l_api_name,
4615 p_pkg_name => g_pkg_name,
4616 p_exc_name => 'OKE_API.G_RET_STS_UNEXP_ERROR',
4617 x_msg_count => x_msg_count,
4618 x_msg_data => x_msg_data,
4619 p_api_type => g_api_type);
4620
4621 when OTHERS then
4622 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
4623 p_api_name => l_api_name,
4624 p_pkg_name => g_pkg_name,
4625 p_exc_name => 'OTHERS',
4626 x_msg_count => x_msg_count,
4627 x_msg_data => x_msg_data,
4628 p_api_type => g_api_type);
4629
4630 END update_contract_line;
4631
4632
4633 PROCEDURE update_line_item(
4634 p_api_version IN NUMBER,
4635 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
4636 x_return_status OUT NOCOPY VARCHAR2,
4637 x_msg_count OUT NOCOPY NUMBER,
4638 x_msg_data OUT NOCOPY VARCHAR2,
4639
4640 p_cimv_rec IN cimv_rec_type,
4641 x_cimv_rec OUT NOCOPY cimv_rec_type,
4642 p_skip_minor_vers IN VARCHAR2 DEFAULT OKE_API.G_FALSE
4643 )
4644 IS
4645 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_LINE_ITEM';
4646 l_api_version CONSTANT NUMBER := 1.0;
4647
4648 l_msg_count NUMBER;
4649 l_msg_data VARCHAR2(2000);
4650
4651 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
4652 l_cimv_tbl_in okc_contract_item_pub.cimv_tbl_type;
4653 l_cimv_tbl_out okc_contract_item_pub.cimv_tbl_type;
4654
4655 BEGIN
4656
4657 -- call START_ACTIVITY to create savepoint, check compatibility
4658 -- and initialize message list
4659 l_return_status := OKE_API.START_ACTIVITY(
4660 p_api_name => l_api_name,
4661 p_pkg_name => g_pkg_name,
4662 p_init_msg_list => p_init_msg_list,
4663 l_api_version => l_api_version,
4664 p_api_version => p_api_version,
4665 p_api_type => g_api_type,
4666 x_return_status => x_return_status);
4667
4668 -- check if activity started successfully
4669 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
4670 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
4671 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
4672 raise OKE_API.G_EXCEPTION_ERROR;
4673 End If;
4674
4675 l_cimv_tbl_in(1).ID := p_cimv_rec.ID;
4676 l_cimv_tbl_in(1).OBJECT_VERSION_NUMBER := p_cimv_rec.OBJECT_VERSION_NUMBER;
4677 l_cimv_tbl_in(1).CHR_ID := p_cimv_rec.CHR_ID;
4678 l_cimv_tbl_in(1).CLE_ID := p_cimv_rec.CLE_ID;
4679 l_cimv_tbl_in(1).CLE_ID_FOR := p_cimv_rec.CLE_ID_FOR;
4680 l_cimv_tbl_in(1).DNZ_CHR_ID := p_cimv_rec.DNZ_CHR_ID;
4681 l_cimv_tbl_in(1).EXCEPTION_YN := p_cimv_rec.EXCEPTION_YN;
4682 l_cimv_tbl_in(1).PRICED_ITEM_YN := p_cimv_rec.PRICED_ITEM_YN;
4683 l_cimv_tbl_in(1).OBJECT1_ID1 := p_cimv_rec.OBJECT1_ID1;
4684 l_cimv_tbl_in(1).OBJECT1_ID2 := p_cimv_rec.OBJECT1_ID2;
4685 l_cimv_tbl_in(1).JTOT_OBJECT1_CODE := p_cimv_rec.JTOT_OBJECT1_CODE;
4686 l_cimv_tbl_in(1).UOM_CODE := p_cimv_rec.UOM_CODE;
4687 l_cimv_tbl_in(1).NUMBER_OF_ITEMS := p_cimv_rec.NUMBER_OF_ITEMS;
4688 l_cimv_tbl_in(1).CREATED_BY := p_cimv_rec.CREATED_BY;
4689 l_cimv_tbl_in(1).CREATION_DATE := p_cimv_rec.CREATION_DATE;
4690 l_cimv_tbl_in(1).LAST_UPDATED_BY := p_cimv_rec.LAST_UPDATED_BY;
4691 l_cimv_tbl_in(1).LAST_UPDATE_DATE := p_cimv_rec.LAST_UPDATE_DATE;
4692 l_cimv_tbl_in(1).LAST_UPDATE_LOGIN := p_cimv_rec.LAST_UPDATE_LOGIN;
4693 l_cimv_tbl_in(1).UPG_ORIG_SYSTEM_REF := p_cimv_rec.UPG_ORIG_SYSTEM_REF;
4694 l_cimv_tbl_in(1).UPG_ORIG_SYSTEM_REF_ID := p_cimv_rec.UPG_ORIG_SYSTEM_REF_ID;
4695
4696 /*skuchima bugs 14380256 */
4697 IF (FND_API.G_TRUE = p_skip_minor_vers ) THEN
4698 okc_cvm_pvt.defer_minor_version_update('T');
4699 end if;
4700
4701 okc_contract_item_pub.update_contract_item
4702 ( p_api_version => l_api_version
4703 , p_init_msg_list => p_init_msg_list
4704 , x_return_status => l_return_status
4705 , x_msg_count => x_msg_count
4706 , x_msg_data => x_msg_data
4707 , p_cimv_tbl => l_cimv_tbl_in
4708 , x_cimv_tbl => l_cimv_tbl_out
4709 );
4710
4711 okc_cvm_pvt.defer_minor_version_update('F');
4712
4713 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
4714 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
4715 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
4716 raise OKE_API.G_EXCEPTION_ERROR;
4717 End If;
4718
4719 x_cimv_rec.ID := l_cimv_tbl_out(1).ID;
4720 x_cimv_rec.OBJECT_VERSION_NUMBER := l_cimv_tbl_out(1).OBJECT_VERSION_NUMBER;
4721 x_cimv_rec.CHR_ID := l_cimv_tbl_out(1).CHR_ID;
4722 x_cimv_rec.CLE_ID := l_cimv_tbl_out(1).CLE_ID;
4723 x_cimv_rec.CLE_ID_FOR := l_cimv_tbl_out(1).CLE_ID_FOR;
4724 x_cimv_rec.DNZ_CHR_ID := l_cimv_tbl_out(1).DNZ_CHR_ID;
4725 x_cimv_rec.EXCEPTION_YN := l_cimv_tbl_out(1).EXCEPTION_YN;
4726 x_cimv_rec.PRICED_ITEM_YN := l_cimv_tbl_out(1).PRICED_ITEM_YN;
4727 x_cimv_rec.OBJECT1_ID1 := l_cimv_tbl_out(1).OBJECT1_ID1;
4728 x_cimv_rec.OBJECT1_ID2 := l_cimv_tbl_out(1).OBJECT1_ID2;
4729 x_cimv_rec.JTOT_OBJECT1_CODE := l_cimv_tbl_out(1).JTOT_OBJECT1_CODE;
4730 x_cimv_rec.UOM_CODE := l_cimv_tbl_out(1).UOM_CODE;
4731 x_cimv_rec.NUMBER_OF_ITEMS := l_cimv_tbl_out(1).NUMBER_OF_ITEMS;
4732 x_cimv_rec.CREATED_BY := l_cimv_tbl_out(1).CREATED_BY;
4733 x_cimv_rec.CREATION_DATE := l_cimv_tbl_out(1).CREATION_DATE;
4734 x_cimv_rec.LAST_UPDATED_BY := l_cimv_tbl_out(1).LAST_UPDATED_BY;
4735 x_cimv_rec.LAST_UPDATE_DATE := l_cimv_tbl_out(1).LAST_UPDATE_DATE;
4736 x_cimv_rec.LAST_UPDATE_LOGIN := l_cimv_tbl_out(1).LAST_UPDATE_LOGIN;
4737 x_cimv_rec.UPG_ORIG_SYSTEM_REF := l_cimv_tbl_out(1).UPG_ORIG_SYSTEM_REF;
4738 x_cimv_rec.UPG_ORIG_SYSTEM_REF_ID := l_cimv_tbl_out(1).UPG_ORIG_SYSTEM_REF_ID;
4739
4740 OKE_API.END_ACTIVITY( x_msg_count => x_msg_count,
4741 x_msg_data => x_msg_data);
4742
4743 EXCEPTION
4744 when OKE_API.G_EXCEPTION_ERROR then
4745 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
4746 p_api_name => l_api_name,
4747 p_pkg_name => g_pkg_name,
4748 p_exc_name => 'OKE_API.G_RET_STS_ERROR',
4749 x_msg_count => x_msg_count,
4750 x_msg_data => x_msg_data,
4751 p_api_type => g_api_type);
4752
4753 when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
4754 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
4755 p_api_name => l_api_name,
4756 p_pkg_name => g_pkg_name,
4757 p_exc_name => 'OKE_API.G_RET_STS_UNEXP_ERROR',
4758 x_msg_count => x_msg_count,
4759 x_msg_data => x_msg_data,
4760 p_api_type => g_api_type);
4761
4762 when OTHERS then
4763 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
4764 p_api_name => l_api_name,
4765 p_pkg_name => g_pkg_name,
4766 p_exc_name => 'OTHERS',
4767 x_msg_count => x_msg_count,
4768 x_msg_data => x_msg_data,
4769 p_api_type => g_api_type);
4770
4771
4772 END update_line_item;
4773
4774 PROCEDURE update_deliverable(
4775
4776 p_api_version IN NUMBER,
4777 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
4778 x_return_status OUT NOCOPY VARCHAR2,
4779 x_msg_count OUT NOCOPY NUMBER,
4780 x_msg_data OUT NOCOPY VARCHAR2,
4781 p_del_rec IN del_rec_type,
4782 x_del_rec OUT NOCOPY del_rec_type) IS
4783
4784 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_DELIVERABLE';
4785 l_api_version CONSTANT NUMBER := 1.0;
4786 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
4787
4788 l_del_rec OKE_CONTRACT_PUB.del_rec_type;
4789
4790 CURSOR get_inv_org IS
4791 SELECT INV_ORGANIZATION_ID
4792 FROM OKC_K_HEADERS_B
4793 WHERE ID = p_del_rec.k_header_id;
4794
4795 CURSOR get_intent IS
4796 SELECT BUY_OR_SELL
4797 FROM OKC_K_HEADERS_B
4798 WHERE ID = p_del_rec.k_header_id;
4799
4800 l_intent VARCHAR2(10);
4801
4802 FUNCTION get_rec (
4803 p_del_rec IN del_rec_type,
4804 x_no_data_found OUT NOCOPY BOOLEAN
4805 ) RETURN del_rec_type IS
4806
4807 CURSOR del_pk_csr (p_id IN NUMBER) IS
4808 select b.deliverable_id,
4809 b.deliverable_num,
4810 b.project_id,
4811 b.task_id,
4812 b.item_id,
4813 b.k_header_id,
4814 b.k_line_id,
4815 b.delivery_date,
4816 b.status_code,
4817 b.parent_deliverable_id,
4818 b.ship_to_org_id,
4819 b.ship_to_location_id,
4820 b.ship_from_org_id,
4821 b.ship_from_location_id,
4822 b.inventory_org_id,
4823 b.direction,
4824 b.defaulted_flag,
4825 b.in_process_flag,
4826 b.wf_item_key,
4827 b.sub_ref_id,
4828 b.start_date,
4829 b.end_date,
4830 b.priority_code,
4831 b.currency_code,
4832 b.unit_price,
4833 b.uom_code,
4834 b.quantity,
4835 b.country_of_origin_code,
4836 b.subcontracted_flag,
4837 b.dependency_flag,
4838 b.billable_flag,
4839 b.billing_event_id,
4840 b.drop_shipped_flag,
4841 b.completed_flag,
4842 b.available_for_ship_flag,
4843 b.create_demand,
4844 b.ready_to_bill,
4845 b.need_by_date,
4846 b.ready_to_procure,
4847 b.mps_transaction_id,
4848 b.po_ref_1,
4849 b.po_ref_2,
4850 b.po_ref_3,
4851 b.shipping_request_id,
4852 b.unit_number,
4853 b.ndb_schedule_designator,
4854 b.shippable_flag,
4855 b.cfe_req_flag,
4856 b.inspection_req_flag,
4857 b.interim_rpt_req_flag,
4858 b.lot_applies_flag,
4859 b.customer_approval_req_flag,
4860 b.expected_shipment_date,
4861 b.initiate_shipment_date,
4862 b.promised_shipment_date,
4863 b.as_of_date,
4864 b.date_of_first_submission,
4865 b.frequency,
4866 b.acq_doc_number,
4867 b.submission_flag,
4868 b.data_item_subtitle,
4869 b.total_num_of_copies,
4870 b.cdrl_category,
4871 b.data_item_name,
4872 b.export_flag,
4873 b.export_license_num,
4874 b.export_license_res,
4875 b.created_by,
4876 b.creation_date,
4877 b.last_updated_by,
4878 b.last_update_login,
4879 b.last_update_date,
4880 b.attribute_category,
4881 b.attribute1,
4882 b.attribute2,
4883 b.attribute3,
4884 b.attribute4,
4885 b.attribute5,
4886 b.attribute6,
4887 b.attribute7,
4888 b.attribute8,
4889 b.attribute9,
4890 b.attribute10,
4891 b.attribute11,
4892 b.attribute12,
4893 b.attribute13,
4894 b.attribute14,
4895 b.attribute15,
4896 t.description,
4897 t.comments,
4898 t.sfwt_flag,
4899 b.weight,
4900 b.weight_uom_code,
4901 b.volume,
4902 b.volume_uom_code,
4903 b.expenditure_organization_id,
4904 b.expenditure_type,
4905 b.expenditure_item_date,
4906 b.destination_type_code,
4907 b.rate_type,
4908 b.rate_date,
4909 b.exchange_rate,
4910 b.requisition_line_type_id,
4911 b.po_category_id
4912 from oke_k_deliverables_b b, oke_k_deliverables_tl t
4913 where b.deliverable_id = p_id
4914 and t.deliverable_id = p_id
4915 and t.language = userenv('LANG');
4916
4917 l_del_pk del_pk_csr%ROWTYPE;
4918 l_del_rec del_rec_type;
4919
4920 BEGIN
4921 x_no_data_found := TRUE;
4922
4923 -- get current database value
4924
4925 OPEN del_pk_csr(p_del_rec.deliverable_id);
4926 FETCH del_pk_csr INTO l_del_rec.deliverable_id,
4927 l_del_rec.deliverable_num,
4928 l_del_rec.project_id,
4929 l_del_rec.task_id,
4930 l_del_rec.item_id,
4931 l_del_rec.k_header_id,
4932 l_del_rec.k_line_id,
4933 l_del_rec.delivery_date,
4934 l_del_rec.status_code,
4935 l_del_rec.parent_deliverable_id,
4936 l_del_rec.ship_to_org_id,
4937 l_del_rec.ship_to_location_id,
4938 l_del_rec.ship_from_org_id,
4939 l_del_rec.ship_from_location_id,
4940 l_del_rec.inventory_org_id,
4941 l_del_rec.direction,
4942 l_del_rec.defaulted_flag,
4943 l_del_rec.in_process_flag,
4944 l_del_rec.wf_item_key,
4945 l_del_rec.sub_ref_id,
4946 l_del_rec.start_date,
4947 l_del_rec.end_date,
4948 l_del_rec.priority_code,
4949 l_del_rec.currency_code,
4950 l_del_rec.unit_price,
4951 l_del_rec.uom_code,
4952 l_del_rec.quantity,
4953 l_del_rec.country_of_origin_code,
4954 l_del_rec.subcontracted_flag,
4955 l_del_rec.dependency_flag,
4956 l_del_rec.billable_flag,
4957 l_del_rec.billing_event_id,
4958 l_del_rec.drop_shipped_flag,
4959 l_del_rec.completed_flag,
4960 l_del_rec.available_for_ship_flag,
4961 l_del_rec.create_demand,
4962 l_del_rec.ready_to_bill,
4963 l_del_rec.need_by_date,
4964 l_del_rec.ready_to_procure,
4965 l_del_rec.mps_transaction_id,
4966 l_del_rec.po_ref_1,
4967 l_del_rec.po_ref_2,
4968 l_del_rec.po_ref_3,
4969 l_del_rec.shipping_request_id,
4970 l_del_rec.unit_number,
4971 l_del_rec.ndb_schedule_designator,
4972 l_del_rec.shippable_flag,
4973 l_del_rec.cfe_req_flag,
4974 l_del_rec.inspection_req_flag,
4975 l_del_rec.interim_rpt_req_flag,
4976 l_del_rec.lot_applies_flag,
4977 l_del_rec.customer_approval_req_flag,
4978 l_del_rec.expected_shipment_date,
4979 l_del_rec.initiate_shipment_date,
4980 l_del_rec.promised_shipment_date,
4981 l_del_rec.as_of_date,
4982 l_del_rec.date_of_first_submission,
4983 l_del_rec.frequency,
4984 l_del_rec.acq_doc_number,
4985 l_del_rec.submission_flag,
4986 l_del_rec.data_item_subtitle,
4987 l_del_rec.total_num_of_copies,
4988 l_del_rec.cdrl_category,
4989 l_del_rec.data_item_name,
4990 l_del_rec.export_flag,
4991 l_del_rec.export_license_num,
4992 l_del_rec.export_license_res,
4993 l_del_rec.created_by,
4994 l_del_rec.creation_date,
4995 l_del_rec.last_updated_by,
4996 l_del_rec.last_update_login,
4997 l_del_rec.last_update_date,
4998 l_del_rec.attribute_category,
4999 l_del_rec.attribute1,
5000 l_del_rec.attribute2,
5001 l_del_rec.attribute3,
5002 l_del_rec.attribute4,
5003 l_del_rec.attribute5,
5004 l_del_rec.attribute6,
5005 l_del_rec.attribute7,
5006 l_del_rec.attribute8,
5007 l_del_rec.attribute9,
5008 l_del_rec.attribute10,
5009 l_del_rec.attribute11,
5010 l_del_rec.attribute12,
5011 l_del_rec.attribute13,
5012 l_del_rec.attribute14,
5013 l_del_rec.attribute15,
5014 l_del_rec.description,
5015 l_del_rec.comments,
5016 l_del_rec.sfwt_flag,
5017 l_del_rec.weight,
5018 l_del_rec.weight_uom_code,
5019 l_del_rec.volume,
5020 l_del_rec.volume_uom_code,
5021 l_del_rec.expenditure_organization_id,
5022 l_del_rec.expenditure_type,
5023 l_del_rec.expenditure_item_date,
5024 l_del_rec.destination_type_code,
5025 l_del_rec.rate_type,
5026 l_del_rec.rate_date,
5027 l_del_rec.exchange_rate,
5028 l_del_rec.requisition_line_type_id,
5029 l_del_rec.po_category_id;
5030
5031 x_no_data_found := del_pk_csr%NOTFOUND;
5032
5033 CLOSE del_pk_csr;
5034
5035 RETURN(l_del_rec);
5036
5037 END get_rec;
5038
5039 FUNCTION get_rec (
5040 p_del_rec IN del_rec_type)RETURN del_rec_type IS
5041 l_row_notfound BOOLEAN := TRUE;
5042
5043 BEGIN
5044 RETURN(get_rec(p_del_rec, l_row_notfound));
5045 END get_rec;
5046
5047 -- FUNCTION populate_new_record --
5048 ----------------------------------
5049 FUNCTION populate_new_record (
5050 p_del_rec IN del_rec_type,
5051 x_del_rec OUT NOCOPY del_rec_type
5052 ) RETURN VARCHAR2 IS
5053
5054 l_del_rec del_rec_type;
5055 l_row_notfound BOOLEAN := TRUE;
5056 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
5057
5058 BEGIN
5059
5060
5061 x_del_rec := p_del_rec;
5062
5063
5064 -- Get current database values
5065 l_del_rec := get_rec(p_del_rec, l_row_notfound);
5066
5067 IF (l_row_notfound) THEN
5068 l_return_status := OKE_API.G_RET_STS_UNEXP_ERROR;
5069 END IF;
5070
5071
5072 IF x_del_rec.DELIVERABLE_NUM = OKE_API.G_MISS_CHAR THEN
5073 x_del_rec.DELIVERABLE_NUM := l_del_rec.DELIVERABLE_NUM;
5074 END IF;
5075
5076 IF x_del_rec.PROJECT_ID = OKE_API.G_MISS_NUM THEN
5077 x_del_rec.PROJECT_ID := l_del_rec.PROJECT_ID;
5078 END IF;
5079
5080 IF x_del_rec.TASK_ID = OKE_API.G_MISS_NUM THEN
5081 x_del_rec.TASK_ID := l_del_rec.TASK_ID;
5082 END IF;
5083
5084 IF x_del_rec.ITEM_ID = OKE_API.G_MISS_NUM THEN
5085 x_del_rec.ITEM_ID := l_del_rec.ITEM_ID;
5086 END IF;
5087
5088 IF x_del_rec.K_HEADER_ID = OKE_API.G_MISS_NUM THEN
5089 x_del_rec.K_HEADER_ID := l_del_rec.K_HEADER_ID;
5090 END IF;
5091
5092 IF x_del_rec.K_LINE_ID = OKE_API.G_MISS_NUM THEN
5093 x_del_rec.K_LINE_ID := l_del_rec.K_LINE_ID;
5094 END IF;
5095
5096 IF x_del_rec.DELIVERY_DATE = OKE_API.G_MISS_DATE THEN
5097 x_del_rec.DELIVERY_DATE := l_del_rec.DELIVERY_DATE;
5098 END IF;
5099
5100 IF x_del_rec.STATUS_CODE = OKE_API.G_MISS_CHAR THEN
5101 x_del_rec.STATUS_CODE := l_del_rec.STATUS_CODE;
5102 END IF;
5103
5104 IF x_del_rec.PARENT_DELIVERABLE_ID = OKE_API.G_MISS_NUM THEN
5105 x_del_rec.PARENT_DELIVERABLE_ID := l_del_rec.PARENT_DELIVERABLE_ID;
5106 END IF;
5107
5108 IF x_del_rec.SHIP_TO_ORG_ID = OKE_API.G_MISS_NUM THEN
5109 x_del_rec.SHIP_TO_ORG_ID := l_del_rec.SHIP_TO_ORG_ID;
5110 END IF;
5111
5112 IF x_del_rec.SHIP_TO_LOCATION_ID = OKE_API.G_MISS_NUM THEN
5113 x_del_rec.SHIP_TO_LOCATION_ID := l_del_rec.SHIP_TO_LOCATION_ID;
5114 END IF;
5115
5116 IF x_del_rec.SHIP_FROM_ORG_ID = OKE_API.G_MISS_NUM THEN
5117 x_del_rec.SHIP_FROM_ORG_ID := l_del_rec.SHIP_FROM_ORG_ID;
5118 END IF;
5119
5120 IF x_del_rec.SHIP_FROM_LOCATION_ID = OKE_API.G_MISS_NUM THEN
5121 x_del_rec.SHIP_FROM_LOCATION_ID := l_del_rec.SHIP_FROM_LOCATION_ID;
5122 END IF;
5123
5124 IF x_del_rec.INVENTORY_ORG_ID = OKE_API.G_MISS_NUM THEN
5125 x_del_rec.INVENTORY_ORG_ID := l_del_rec.INVENTORY_ORG_ID;
5126 END IF;
5127
5128 IF x_del_rec.DIRECTION = OKE_API.G_MISS_CHAR THEN
5129 x_del_rec.DIRECTION := l_del_rec.DIRECTION;
5130 END IF;
5131
5132 IF x_del_rec.DEFAULTED_FLAG = OKE_API.G_MISS_CHAR THEN
5133 x_del_rec.DEFAULTED_FLAG := l_del_rec.DEFAULTED_FLAG;
5134 END IF;
5135
5136 IF x_del_rec.IN_PROCESS_FLAG = OKE_API.G_MISS_CHAR THEN
5137 x_del_rec.IN_PROCESS_FLAG := l_del_rec.IN_PROCESS_FLAG;
5138 END IF;
5139
5140 IF x_del_rec.WF_ITEM_KEY = OKE_API.G_MISS_CHAR THEN
5141 x_del_rec.WF_ITEM_KEY := l_del_rec.WF_ITEM_KEY;
5142 END IF;
5143
5144 IF x_del_rec.SUB_REF_ID = OKE_API.G_MISS_NUM THEN
5145 x_del_rec.SUB_REF_ID := l_del_rec.SUB_REF_ID;
5146 END IF;
5147
5148 IF x_del_rec.START_DATE = OKE_API.G_MISS_DATE THEN
5149 x_del_rec.START_DATE := l_del_rec.START_DATE;
5150 END IF;
5151
5152 IF x_del_rec.END_DATE = OKE_API.G_MISS_DATE THEN
5153 x_del_rec.END_DATE := l_del_rec.END_DATE;
5154 END IF;
5155
5156 IF x_del_rec.PRIORITY_CODE = OKE_API.G_MISS_CHAR THEN
5157 x_del_rec.PRIORITY_CODE := l_del_rec.PRIORITY_CODE;
5158 END IF;
5159
5160 IF x_del_rec.CURRENCY_CODE = OKE_API.G_MISS_CHAR THEN
5161 x_del_rec.CURRENCY_CODE := l_del_rec.CURRENCY_CODE;
5162 END IF;
5163
5164 IF x_del_rec.UNIT_PRICE = OKE_API.G_MISS_NUM THEN
5165 x_del_rec.UNIT_PRICE := l_del_rec.UNIT_PRICE;
5166 END IF;
5167
5168 IF x_del_rec.UOM_CODE = OKE_API.G_MISS_CHAR THEN
5169 x_del_rec.UOM_CODE := l_del_rec.UOM_CODE;
5170 END IF;
5171
5172 IF x_del_rec.QUANTITY = OKE_API.G_MISS_NUM THEN
5173 x_del_rec.QUANTITY := l_del_rec.QUANTITY;
5174 END IF;
5175
5176 IF x_del_rec.COUNTRY_OF_ORIGIN_CODE = OKE_API.G_MISS_CHAR THEN
5177 x_del_rec.COUNTRY_OF_ORIGIN_CODE := l_del_rec.COUNTRY_OF_ORIGIN_CODE;
5178 END IF;
5179
5180 IF x_del_rec.SUBCONTRACTED_FLAG = OKE_API.G_MISS_CHAR THEN
5181 x_del_rec.SUBCONTRACTED_FLAG := l_del_rec.SUBCONTRACTED_FLAG;
5182 END IF;
5183
5184 IF x_del_rec.DEPENDENCY_FLAG = OKE_API.G_MISS_CHAR THEN
5185 x_del_rec.DEPENDENCY_FLAG := l_del_rec.DEPENDENCY_FLAG;
5186 END IF;
5187
5188
5189
5190 IF x_del_rec.BILLABLE_FLAG = OKE_API.G_MISS_CHAR THEN
5191 x_del_rec.BILLABLE_FLAG := l_del_rec.BILLABLE_FLAG;
5192 END IF;
5193
5194 IF x_del_rec.BILLING_EVENT_ID = OKE_API.G_MISS_NUM THEN
5195 x_del_rec.BILLING_EVENT_ID := l_del_rec.BILLING_EVENT_ID;
5196 END IF;
5197
5198 IF x_del_rec.DROP_SHIPPED_FLAG = OKE_API.G_MISS_CHAR THEN
5199 x_del_rec.DROP_SHIPPED_FLAG := l_del_rec.DROP_SHIPPED_FLAG;
5200 END IF;
5201
5202 IF x_del_rec.COMPLETED_FLAG = OKE_API.G_MISS_CHAR THEN
5203 x_del_rec.COMPLETED_FLAG := l_del_rec.COMPLETED_FLAG;
5204 END IF;
5205
5206 IF x_del_rec.AVAILABLE_FOR_SHIP_FLAG = OKE_API.G_MISS_CHAR THEN
5207 x_del_rec.AVAILABLE_FOR_SHIP_FLAG := l_del_rec.AVAILABLE_FOR_SHIP_FLAG;
5208 END IF;
5209
5210 IF x_del_rec.CREATE_DEMAND = OKE_API.G_MISS_CHAR THEN
5211 x_del_rec.CREATE_DEMAND := l_del_rec.CREATE_DEMAND;
5212 END IF;
5213
5214 IF x_del_rec.READY_TO_BILL = OKE_API.G_MISS_CHAR THEN
5215 x_del_rec.READY_TO_BILL := l_del_rec.READY_TO_BILL;
5216 END IF;
5217
5218 IF x_del_rec.NEED_BY_DATE = OKE_API.G_MISS_DATE THEN
5219 x_del_rec.NEED_BY_DATE := l_del_rec.NEED_BY_DATE;
5220 END IF;
5221
5222 IF x_del_rec.READY_TO_PROCURE = OKE_API.G_MISS_CHAR THEN
5223 x_del_rec.READY_TO_PROCURE := l_del_rec.READY_TO_PROCURE;
5224 END IF;
5225
5226 IF x_del_rec.MPS_TRANSACTION_ID = OKE_API.G_MISS_NUM THEN
5227 x_del_rec.MPS_TRANSACTION_ID := l_del_rec.MPS_TRANSACTION_ID;
5228 END IF;
5229
5230 IF x_del_rec.PO_REF_1 = OKE_API.G_MISS_NUM THEN
5231 x_del_rec.PO_REF_1 := l_del_rec.PO_REF_1;
5232 END IF;
5233
5234 IF x_del_rec.PO_REF_2 = OKE_API.G_MISS_NUM THEN
5235 x_del_rec.PO_REF_2 := l_del_rec.PO_REF_2;
5236 END IF;
5237
5238 IF x_del_rec.PO_REF_3 = OKE_API.G_MISS_NUM THEN
5239 x_del_rec.PO_REF_3 := l_del_rec.PO_REF_3;
5240 END IF;
5241
5242 IF x_del_rec.SHIPPING_REQUEST_ID = OKE_API.G_MISS_NUM THEN
5243 x_del_rec.SHIPPING_REQUEST_ID := l_del_rec.SHIPPING_REQUEST_ID;
5244 END IF;
5245
5246 IF x_del_rec.UNIT_NUMBER = OKE_API.G_MISS_CHAR THEN
5247 x_del_rec.UNIT_NUMBER := l_del_rec.UNIT_NUMBER;
5248 END IF;
5249
5250 IF x_del_rec.NDB_SCHEDULE_DESIGNATOR = OKE_API.G_MISS_CHAR THEN
5251 x_del_rec.NDB_SCHEDULE_DESIGNATOR := l_del_rec.NDB_SCHEDULE_DESIGNATOR;
5252 END IF;
5253
5254 IF x_del_rec.SHIPPABLE_FLAG = OKE_API.G_MISS_CHAR THEN
5255 x_del_rec.SHIPPABLE_FLAG := l_del_rec.SHIPPABLE_FLAG;
5256 END IF;
5257
5258 IF x_del_rec.CFE_REQ_FLAG = OKE_API.G_MISS_CHAR THEN
5259 x_del_rec.CFE_REQ_FLAG := l_del_rec.CFE_REQ_FLAG;
5260 END IF;
5261
5262 IF x_del_rec.INSPECTION_REQ_FLAG = OKE_API.G_MISS_CHAR THEN
5263 x_del_rec.INSPECTION_REQ_FLAG := l_del_rec.INSPECTION_REQ_FLAG;
5264 END IF;
5265
5266 IF x_del_rec.INTERIM_RPT_REQ_FLAG = OKE_API.G_MISS_CHAR THEN
5267 x_del_rec.INTERIM_RPT_REQ_FLAG := l_del_rec.INTERIM_RPT_REQ_FLAG;
5268 END IF;
5269
5270 IF x_del_rec.LOT_APPLIES_FLAG = OKE_API.G_MISS_CHAR THEN
5271 x_del_rec.LOT_APPLIES_FLAG := l_del_rec.LOT_APPLIES_FLAG;
5272 END IF;
5273
5274 IF x_del_rec.CUSTOMER_APPROVAL_REQ_FLAG = OKE_API.G_MISS_CHAR THEN
5275 x_del_rec.CUSTOMER_APPROVAL_REQ_FLAG := l_del_rec.CUSTOMER_APPROVAL_REQ_FLAG;
5276 END IF;
5277
5278 IF x_del_rec.EXPECTED_SHIPMENT_DATE = OKE_API.G_MISS_DATE THEN
5279 x_del_rec.EXPECTED_SHIPMENT_DATE := l_del_rec.EXPECTED_SHIPMENT_DATE;
5280 END IF;
5281
5282 IF x_del_rec.INITIATE_SHIPMENT_DATE = OKE_API.G_MISS_DATE THEN
5283 x_del_rec.INITIATE_SHIPMENT_DATE := l_del_rec.INITIATE_SHIPMENT_DATE;
5284 END IF;
5285
5286 IF x_del_rec.PROMISED_SHIPMENT_DATE = OKE_API.G_MISS_DATE THEN
5287 x_del_rec.PROMISED_SHIPMENT_DATE := l_del_rec.PROMISED_SHIPMENT_DATE;
5288 END IF;
5289
5290 IF x_del_rec.AS_OF_DATE = OKE_API.G_MISS_DATE THEN
5291 x_del_rec.AS_OF_DATE := l_del_rec.AS_OF_DATE;
5292 END IF;
5293
5294 IF x_del_rec.DATE_OF_FIRST_SUBMISSION = OKE_API.G_MISS_DATE THEN
5295 x_del_rec.DATE_OF_FIRST_SUBMISSION := l_del_rec.DATE_OF_FIRST_SUBMISSION;
5296 END IF;
5297
5298 IF x_del_rec.FREQUENCY = OKE_API.G_MISS_CHAR THEN
5299 x_del_rec.FREQUENCY := l_del_rec.FREQUENCY;
5300 END IF;
5301
5302 IF x_del_rec.ACQ_DOC_NUMBER = OKE_API.G_MISS_CHAR THEN
5303 x_del_rec.ACQ_DOC_NUMBER := l_del_rec.ACQ_DOC_NUMBER;
5304 END IF;
5305
5306 IF x_del_rec.SUBMISSION_FLAG = OKE_API.G_MISS_CHAR THEN
5307 x_del_rec.SUBMISSION_FLAG := l_del_rec.SUBMISSION_FLAG;
5308 END IF;
5309
5310 IF x_del_rec.DATA_ITEM_NAME = OKE_API.G_MISS_CHAR THEN
5311 x_del_rec.DATA_ITEM_NAME := l_del_rec.DATA_ITEM_NAME;
5312 END IF;
5313
5314 IF x_del_rec.DATA_ITEM_SUBTITLE = OKE_API.G_MISS_CHAR THEN
5315 x_del_rec.DATA_ITEM_SUBTITLE := l_del_rec.DATA_ITEM_SUBTITLE;
5316 END IF;
5317
5318 IF x_del_rec.TOTAL_NUM_OF_COPIES = OKE_API.G_MISS_NUM THEN
5319 x_del_rec.TOTAL_NUM_OF_COPIES := l_del_rec.TOTAL_NUM_OF_COPIES;
5320 END IF;
5321
5322 IF x_del_rec.CDRL_CATEGORY = OKE_API.G_MISS_CHAR THEN
5323 x_del_rec.CDRL_CATEGORY := l_del_rec.CDRL_CATEGORY;
5324 END IF;
5325
5326 IF x_del_rec.EXPORT_LICENSE_NUM = OKE_API.G_MISS_CHAR THEN
5327 x_del_rec.EXPORT_LICENSE_NUM := l_del_rec.EXPORT_LICENSE_NUM;
5328 END IF;
5329
5330 IF x_del_rec.EXPORT_LICENSE_RES = OKE_API.G_MISS_CHAR THEN
5331 x_del_rec.EXPORT_LICENSE_RES := l_del_rec.EXPORT_LICENSE_RES;
5332 END IF;
5333
5334 IF x_del_rec.EXPORT_FLAG = OKE_API.G_MISS_CHAR THEN
5335 x_del_rec.EXPORT_FLAG := l_del_rec.EXPORT_FLAG;
5336 END IF;
5337
5338 IF x_del_rec.CREATED_BY = OKE_API.G_MISS_NUM THEN
5339 x_del_rec.CREATED_BY := l_del_rec.CREATED_BY;
5340 END IF;
5341
5342 IF x_del_rec.CREATION_DATE = OKE_API.G_MISS_DATE THEN
5343 x_del_rec.CREATION_DATE := l_del_rec.CREATION_DATE;
5344 END IF;
5345
5346 IF x_del_rec.LAST_UPDATED_BY = OKE_API.G_MISS_NUM THEN
5347 x_del_rec.LAST_UPDATED_BY := l_del_rec.LAST_UPDATED_BY;
5348 END IF;
5349
5350 IF x_del_rec.LAST_UPDATE_LOGIN = OKE_API.G_MISS_NUM THEN
5351 x_del_rec.LAST_UPDATE_LOGIN := l_del_rec.LAST_UPDATE_LOGIN;
5352 END IF;
5353
5354 IF x_del_rec.LAST_UPDATE_DATE = OKE_API.G_MISS_DATE THEN
5355 x_del_rec.LAST_UPDATE_DATE := l_del_rec.LAST_UPDATE_DATE;
5356 END IF;
5357
5358 IF x_del_rec.ATTRIBUTE_CATEGORY = OKE_API.G_MISS_CHAR THEN
5359 x_del_rec.ATTRIBUTE_CATEGORY := l_del_rec.ATTRIBUTE_CATEGORY;
5360 END IF;
5361
5362 IF x_del_rec.ATTRIBUTE1 = OKE_API.G_MISS_CHAR THEN
5363 x_del_rec.ATTRIBUTE1 := l_del_rec.ATTRIBUTE1;
5364 END IF;
5365
5366 IF x_del_rec.ATTRIBUTE2 = OKE_API.G_MISS_CHAR THEN
5367 x_del_rec.ATTRIBUTE2 := l_del_rec.ATTRIBUTE2;
5368 END IF;
5369
5370 IF x_del_rec.ATTRIBUTE3 = OKE_API.G_MISS_CHAR THEN
5371 x_del_rec.ATTRIBUTE3 := l_del_rec.ATTRIBUTE3;
5372 END IF;
5373
5374 IF x_del_rec.ATTRIBUTE4 = OKE_API.G_MISS_CHAR THEN
5375 x_del_rec.ATTRIBUTE4 := l_del_rec.ATTRIBUTE4;
5376 END IF;
5377
5378 IF x_del_rec.ATTRIBUTE5 = OKE_API.G_MISS_CHAR THEN
5379 x_del_rec.ATTRIBUTE5 := l_del_rec.ATTRIBUTE5;
5380 END IF;
5381
5382 IF x_del_rec.ATTRIBUTE6 = OKE_API.G_MISS_CHAR THEN
5383 x_del_rec.ATTRIBUTE6 := l_del_rec.ATTRIBUTE6;
5384 END IF;
5385
5386 IF x_del_rec.ATTRIBUTE7 = OKE_API.G_MISS_CHAR THEN
5387 x_del_rec.ATTRIBUTE7 := l_del_rec.ATTRIBUTE7;
5388 END IF;
5389
5390 IF x_del_rec.ATTRIBUTE8 = OKE_API.G_MISS_CHAR THEN
5391 x_del_rec.ATTRIBUTE8 := l_del_rec.ATTRIBUTE8;
5392 END IF;
5393
5394 IF x_del_rec.ATTRIBUTE9 = OKE_API.G_MISS_CHAR THEN
5395 x_del_rec.ATTRIBUTE9 := l_del_rec.ATTRIBUTE9;
5396 END IF;
5397
5398 IF x_del_rec.ATTRIBUTE10 = OKE_API.G_MISS_CHAR THEN
5399 x_del_rec.ATTRIBUTE10 := l_del_rec.ATTRIBUTE10;
5400 END IF;
5401
5402 IF x_del_rec.ATTRIBUTE11 = OKE_API.G_MISS_CHAR THEN
5403 x_del_rec.ATTRIBUTE11 := l_del_rec.ATTRIBUTE11;
5404 END IF;
5405
5406 IF x_del_rec.ATTRIBUTE12 = OKE_API.G_MISS_CHAR THEN
5407 x_del_rec.ATTRIBUTE12 := l_del_rec.ATTRIBUTE12;
5408 END IF;
5409
5410 IF x_del_rec.ATTRIBUTE13 = OKE_API.G_MISS_CHAR THEN
5411 x_del_rec.ATTRIBUTE13 := l_del_rec.ATTRIBUTE13;
5412 END IF;
5413
5414 IF x_del_rec.ATTRIBUTE14 = OKE_API.G_MISS_CHAR THEN
5415 x_del_rec.ATTRIBUTE14 := l_del_rec.ATTRIBUTE14;
5416 END IF;
5417
5418 IF x_del_rec.ATTRIBUTE15 = OKE_API.G_MISS_CHAR THEN
5419 x_del_rec.ATTRIBUTE15 := l_del_rec.ATTRIBUTE15;
5420 END IF;
5421
5422 IF x_del_rec.WEIGHT = OKE_API.G_MISS_NUM THEN
5423 x_del_rec.WEIGHT := l_del_rec.WEIGHT;
5424 END IF;
5425
5426 IF x_del_rec.WEIGHT_UOM_CODE = OKE_API.G_MISS_CHAR THEN
5427 x_del_rec.WEIGHT_UOM_CODE := l_del_rec.WEIGHT_UOM_CODE;
5428 END IF;
5429
5430 IF x_del_rec.VOLUME = OKE_API.G_MISS_NUM THEN
5431 x_del_rec.VOLUME := l_del_rec.VOLUME;
5432 END IF;
5433
5434 IF x_del_rec.VOLUME_UOM_CODE = OKE_API.G_MISS_CHAR THEN
5435 x_del_rec.VOLUME_UOM_CODE := l_del_rec.VOLUME_UOM_CODE;
5436 END IF;
5437
5438 IF x_del_rec.EXPENDITURE_ORGANIZATION_ID = OKE_API.G_MISS_NUM THEN
5439 x_del_rec.EXPENDITURE_ORGANIZATION_ID := l_del_rec.EXPENDITURE_ORGANIZATION_ID;
5440 END IF;
5441
5442 IF x_del_rec.EXPENDITURE_TYPE = OKE_API.G_MISS_CHAR THEN
5443 x_del_rec.EXPENDITURE_TYPE := l_del_rec.EXPENDITURE_TYPE;
5444 END IF;
5445
5446 IF x_del_rec.DESTINATION_TYPE_CODE = OKE_API.G_MISS_CHAR THEN
5447 x_del_rec.DESTINATION_TYPE_CODE := l_del_rec.DESTINATION_TYPE_CODE;
5448 END IF;
5449
5450 IF x_del_rec.EXPENDITURE_ITEM_DATE = OKE_API.G_MISS_DATE THEN
5451 x_del_rec.EXPENDITURE_ITEM_DATE := l_del_rec.EXPENDITURE_ITEM_DATE;
5452 END IF;
5453
5454 IF x_del_rec.RATE_DATE = OKE_API.G_MISS_DATE THEN
5455 x_del_rec.RATE_DATE := l_del_rec.RATE_DATE;
5456 END IF;
5457
5458 IF x_del_rec.RATE_TYPE = OKE_API.G_MISS_CHAR THEN
5459 x_del_rec.RATE_TYPE := l_del_rec.RATE_TYPE;
5460 END IF;
5461
5462 IF x_del_rec.EXCHANGE_RATE = OKE_API.G_MISS_NUM THEN
5463 x_del_rec.EXCHANGE_RATE := l_del_rec.EXCHANGE_RATE;
5464 END IF;
5465
5466 IF x_del_rec.DESCRIPTION = OKE_API.G_MISS_CHAR THEN
5467 x_del_rec.DESCRIPTION := l_del_rec.DESCRIPTION;
5468 END IF;
5469
5470 IF x_del_rec.COMMENTS = OKE_API.G_MISS_CHAR THEN
5471 x_del_rec.COMMENTS := l_del_rec.COMMENTS;
5472 END IF;
5473
5474 IF x_del_rec.REQUISITION_LINE_TYPE_ID = OKE_API.G_MISS_NUM THEN
5475 x_del_rec.REQUISITION_LINE_TYPE_ID := l_del_rec.REQUISITION_LINE_TYPE_ID;
5476 END IF;
5477
5478 IF x_del_rec.PO_CATEGORY_ID = OKE_API.G_MISS_NUM THEN
5479 x_del_rec.PO_CATEGORY_ID := l_del_rec.PO_CATEGORY_ID;
5480 END IF;
5481
5482 RETURN(l_return_status);
5483
5484
5485
5486 END populate_new_record;
5487
5488
5489 BEGIN
5490 -- call START_ACTIVITY to create savepoint, check compatibility
5491 -- and initialize message list
5492 l_return_status := OKE_API.START_ACTIVITY(
5493 p_api_name => l_api_name,
5494 p_pkg_name => g_pkg_name,
5495 p_init_msg_list => p_init_msg_list,
5496 l_api_version => l_api_version,
5497 p_api_version => p_api_version,
5498 p_api_type => g_api_type,
5499 x_return_status => x_return_status);
5500
5501 -- check if activity started successfully
5502 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
5503 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
5504 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
5505 raise OKE_API.G_EXCEPTION_ERROR;
5506 End If;
5507
5508 --validate mandatory fields
5509 IF ( p_del_rec.deliverable_id IS NULL OR p_del_rec.deliverable_id=OKE_API.G_MISS_NUM) THEN
5510 OKE_API.SET_MESSAGE(p_app_name =>g_app_name,
5511 p_msg_name =>G_REQUIRED_VALUE,
5512 p_token1 =>G_COL_NAME_TOKEN,
5513 p_token1_value =>'deliverable_id');
5514 x_return_status := OKE_API.G_RET_STS_ERROR;
5515 END IF ;
5516
5517 If (x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
5518 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
5519 Elsif (x_return_status = OKE_API.G_RET_STS_ERROR) then
5520 raise OKE_API.G_EXCEPTION_ERROR;
5521 End If;
5522
5523 X_return_status := populate_new_record(P_del_rec, l_del_rec);
5524
5525 If (x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
5526 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
5527 Elsif (x_return_status = OKE_API.G_RET_STS_ERROR) then
5528 raise OKE_API.G_EXCEPTION_ERROR;
5529 End If;
5530
5531
5532 IF l_del_rec.k_header_id IS NOT NULL AND
5533 l_del_rec.k_header_id <> OKE_API.G_MISS_NUM THEN
5534
5535 IF l_del_rec.inventory_org_id IS NULL
5536 OR l_del_rec.inventory_org_id = OKE_API.G_MISS_NUM THEN
5537 OPEN get_inv_org;
5538 FETCH get_inv_org INTO l_del_rec.inventory_org_id;
5539 CLOSE get_inv_org;
5540 END IF;
5541
5542
5543 IF l_del_rec.direction IS NULL
5544 OR l_del_rec.direction = OKE_API.G_MISS_CHAR THEN
5545 OPEN get_intent;
5546 FETCH get_intent INTO l_intent;
5547 CLOSE get_intent;
5548 IF l_intent = 'S' THEN
5549 l_del_rec.direction := 'OUT';
5550 ELSE
5551 l_del_rec.direction := 'IN';
5552 END IF;
5553 END IF;
5554
5555 END IF;
5556
5557 -- Validate deliverable attributes
5558 OKE_CONTRACT_PUB.validate_deliverable(
5559 p_api_version => p_api_version,
5560 p_init_msg_list => p_init_msg_list,
5561 x_return_status => x_return_status,
5562 x_msg_count => x_msg_count,
5563 x_msg_data => x_msg_data,
5564 p_del_rec => l_del_rec);
5565
5566
5567 If (x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
5568 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
5569 Elsif (x_return_status = OKE_API.G_RET_STS_ERROR) then
5570 raise OKE_API.G_EXCEPTION_ERROR;
5571 End If;
5572
5573
5574
5575
5576 ---validations
5577 l_return_status:=Validate_record(p_del_rec => l_del_rec
5578 );
5579
5580 If ( l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
5581 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
5582 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
5583 raise OKE_API.G_EXCEPTION_ERROR;
5584 End If;
5585
5586
5587
5588
5589 OKE_CONTRACT_PUB.update_deliverable(
5590 p_api_version => p_api_version,
5591 p_init_msg_list => p_init_msg_list,
5592 x_return_status => x_return_status,
5593 x_msg_count => x_msg_count,
5594 x_msg_data => x_msg_data,
5595 p_del_rec => l_del_rec,
5596 x_del_rec => x_del_rec);
5597
5598 If (x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
5599 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
5600 Elsif (x_return_status = OKE_API.G_RET_STS_ERROR) then
5601 raise OKE_API.G_EXCEPTION_ERROR;
5602 End If;
5603
5604
5605 OKE_API.END_ACTIVITY( x_msg_count => x_msg_count,
5606 x_msg_data => x_msg_data);
5607 EXCEPTION
5608 when OKE_API.G_EXCEPTION_ERROR then
5609 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
5610 p_api_name => l_api_name,
5611 p_pkg_name => g_pkg_name,
5612 p_exc_name => 'OKE_API.G_RET_STS_ERROR',
5613 x_msg_count => x_msg_count,
5614 x_msg_data => x_msg_data,
5615 p_api_type => g_api_type);
5616
5617 when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
5618 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
5619 p_api_name => l_api_name,
5620 p_pkg_name => g_pkg_name,
5621 p_exc_name => 'OKE_API.G_RET_STS_UNEXP_ERROR',
5622 x_msg_count => x_msg_count,
5623 x_msg_data => x_msg_data,
5624 p_api_type => g_api_type);
5625
5626 when OTHERS then
5627 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
5628 p_api_name => l_api_name,
5629 p_pkg_name => g_pkg_name,
5630 p_exc_name => 'OTHERS',
5631 x_msg_count => x_msg_count,
5632 x_msg_data => x_msg_data,
5633 p_api_type => g_api_type);
5634
5635 END update_deliverable;
5636
5637
5638 /*
5639 * Updates the contract header.
5640 * scope public
5641 * lifecycle active
5642 * displayname Update Project Contract Header
5643 * category BUSINESS_ENTITY OKE_CONTRACT
5644 */
5645 PROCEDURE update_contract_header(
5646
5647 p_api_version IN NUMBER,
5648 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
5649 p_ignore_oke_validation IN VARCHAR2 DEFAULT 'N',
5650 x_return_status OUT NOCOPY VARCHAR2,
5651 x_msg_count OUT NOCOPY NUMBER,
5652 x_msg_data OUT NOCOPY VARCHAR2,
5653 p_chr_rec IN chr_rec_type,
5654 x_chr_rec OUT NOCOPY chr_rec_type) IS
5655
5656
5657
5658 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_CONTRACT_HEADER';
5659 l_api_version CONSTANT NUMBER := 1.0;
5660 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
5661
5662
5663 l_okc_chrv_rec OKC_CONTRACT_PUB.chrv_rec_type;
5664 l_oke_chr_rec OKE_CONTRACT_PUB.chr_rec_type;
5665
5666 l_out_chrv OKC_CONTRACT_PUB.chrv_rec_type;
5667 l_out_chr OKE_CONTRACT_PUB.chr_rec_type;
5668
5669
5670 begin
5671
5672 -- call START_ACTIVITY to create savepoint, check compatibility
5673 -- and initialize message list
5674 l_return_status := OKE_API.START_ACTIVITY(
5675 p_api_name => l_api_name,
5676 p_pkg_name => g_pkg_name,
5677 p_init_msg_list => p_init_msg_list,
5678 l_api_version => l_api_version,
5679 p_api_version => p_api_version,
5680 p_api_type => g_api_type,
5681 x_return_status => x_return_status);
5682
5683 -- check if activity started successfully
5684 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
5685 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
5686 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
5687 raise OKE_API.G_EXCEPTION_ERROR;
5688 End If;
5689
5690
5691
5692 --validate mandatory fields
5693 IF ( p_chr_rec.k_header_id IS NULL OR p_chr_rec.k_header_id=OKE_API.G_MISS_NUM) THEN
5694 OKE_API.SET_MESSAGE(p_app_name =>g_app_name,
5695 p_msg_name =>G_REQUIRED_VALUE,
5696 p_token1 =>G_COL_NAME_TOKEN,
5697 p_token1_value =>'K_HEADER_ID');
5698 l_return_status := OKE_API.G_RET_STS_ERROR;
5699 END IF ;
5700
5701
5702 -- check if activity started successfully
5703 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
5704 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
5705 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
5706 raise OKE_API.G_EXCEPTION_ERROR;
5707 End If;
5708
5709
5710 OKC_CONTEXT.Set_OKC_Org_Context( p_chr_id => p_chr_rec.k_header_id );
5711
5712 -- start assigning items into the records
5713
5714
5715 l_oke_chr_rec.k_header_id := p_chr_rec.k_header_id;
5716 l_oke_chr_rec.program_id := p_chr_rec.program_id;
5717 l_oke_chr_rec.project_id := p_chr_rec.project_id;
5718 l_oke_chr_rec.boa_id := p_chr_rec.boa_id;
5719 l_oke_chr_rec.k_type_code := OKE_API.G_MISS_CHAR ; --p_chr_rec.k_type_code;
5720 l_oke_chr_rec.priority_code := p_chr_rec.priority_code;
5721 l_oke_chr_rec.prime_k_alias := p_chr_rec.prime_k_alias;
5722 l_oke_chr_rec.prime_k_number := p_chr_rec.prime_k_number;
5723 l_oke_chr_rec.authorize_date := p_chr_rec.authorize_date;
5724 l_oke_chr_rec.authorizing_reason := p_chr_rec.authorizing_reason;
5725 l_oke_chr_rec.award_cancel_date := p_chr_rec.award_cancel_date;
5726 l_oke_chr_rec.award_date := p_chr_rec.award_date;
5727 l_oke_chr_rec.date_definitized := p_chr_rec.date_definitized;
5728 l_oke_chr_rec.date_issued := p_chr_rec.date_issued;
5729 l_oke_chr_rec.date_negotiated := p_chr_rec.date_negotiated;
5730 l_oke_chr_rec.date_received := p_chr_rec.date_received;
5731 l_oke_chr_rec.date_sign_by_contractor := p_chr_rec.date_sign_by_contractor;
5732 l_oke_chr_rec.date_sign_by_customer := p_chr_rec.date_sign_by_customer;
5733 l_oke_chr_rec.faa_approve_date := p_chr_rec.faa_approve_date;
5734 l_oke_chr_rec.faa_reject_date := p_chr_rec.faa_reject_date;
5735 l_oke_chr_rec.booked_flag := p_chr_rec.booked_flag;
5736 l_oke_chr_rec.open_flag := p_chr_rec.open_flag;
5737 l_oke_chr_rec.cfe_flag := p_chr_rec.cfe_flag;
5738 l_oke_chr_rec.vat_code := p_chr_rec.vat_code;
5739 l_oke_chr_rec.country_of_origin_code := p_chr_rec.country_of_origin_code;
5740 l_oke_chr_rec.export_flag := p_chr_rec.export_flag;
5741 l_oke_chr_rec.human_subject_flag := p_chr_rec.human_subject_flag;
5742 l_oke_chr_rec.cqa_flag := p_chr_rec.cqa_flag;
5743 l_oke_chr_rec.interim_rpt_req_flag := p_chr_rec.interim_rpt_req_flag;
5744 l_oke_chr_rec.no_competition_authorize:= p_chr_rec.no_competition_authorize;
5745 l_oke_chr_rec.penalty_clause_flag := p_chr_rec.penalty_clause_flag;
5746 l_oke_chr_rec.product_line_code := p_chr_rec.product_line_code;
5747 l_oke_chr_rec.reporting_flag := p_chr_rec.reporting_flag;
5748 l_oke_chr_rec.sb_plan_req_flag := p_chr_rec.sb_plan_req_flag;
5749 l_oke_chr_rec.sb_report_flag := p_chr_rec.sb_report_flag;
5750 l_oke_chr_rec.nte_amount := p_chr_rec.nte_amount;
5751 l_oke_chr_rec.nte_warning_flag := p_chr_rec.nte_warning_flag;
5752 l_oke_chr_rec.bill_without_def_flag := p_chr_rec.bill_without_def_flag;
5753 l_oke_chr_rec.cas_flag := p_chr_rec.cas_flag;
5754 l_oke_chr_rec.classified_flag := p_chr_rec.classified_flag;
5755 l_oke_chr_rec.client_approve_req_flag := p_chr_rec.client_approve_req_flag;
5756 l_oke_chr_rec.cost_of_money := p_chr_rec.cost_of_money;
5757 l_oke_chr_rec.dcaa_audit_req_flag := p_chr_rec.dcaa_audit_req_flag;
5758 l_oke_chr_rec.cost_share_flag := p_chr_rec.cost_share_flag;
5759 l_oke_chr_rec.oh_rates_final_flag := p_chr_rec.oh_rates_final_flag;
5760 l_oke_chr_rec.prop_delivery_location := p_chr_rec.prop_delivery_location;
5761 l_oke_chr_rec.prop_due_date_time := p_chr_rec.prop_due_date_time;
5762 l_oke_chr_rec.prop_expire_date := p_chr_rec.prop_expire_date;
5763 l_oke_chr_rec.copies_required := p_chr_rec.copies_required;
5764 l_oke_chr_rec.sic_code := p_chr_rec.sic_code;
5765 l_oke_chr_rec.tech_data_wh_rate := p_chr_rec.tech_data_wh_rate;
5766 l_oke_chr_rec.progress_payment_flag := p_chr_rec.progress_payment_flag;
5767 l_oke_chr_rec.progress_payment_liq_rate:=p_chr_rec.progress_payment_liq_rate;
5768 l_oke_chr_rec.progress_payment_rate := p_chr_rec.progress_payment_rate;
5769 l_oke_chr_rec.alternate_liquidation_rate:=p_chr_rec.alternate_liquidation_rate;
5770 l_oke_chr_rec.prop_due_time := p_chr_rec.prop_due_time;
5771 l_oke_chr_rec.definitized_flag := p_chr_rec.definitized_flag;
5772 l_oke_chr_rec.financial_ctrl_verified_flag := p_chr_rec.financial_ctrl_verified_flag;
5773 l_oke_chr_rec.cost_of_sale_rate := p_chr_rec.cost_of_sale_rate;
5774 l_oke_chr_rec.created_by := p_chr_rec.created_by;
5775 l_oke_chr_rec.creation_date := p_chr_rec.creation_date;
5776 l_oke_chr_rec.last_updated_by := p_chr_rec.last_updated_by;
5777 l_oke_chr_rec.last_update_login := p_chr_rec.last_update_login;
5778 l_oke_chr_rec.last_update_date := p_chr_rec.last_update_date;
5779 l_oke_chr_rec.line_value_total := p_chr_rec.line_value_total;
5780 l_oke_chr_rec.undef_line_value_total := p_chr_rec.undef_line_value_total;
5781 l_oke_chr_rec.owning_organization_id := p_chr_rec.owning_organization_id;
5782
5783
5784 l_okc_chrv_rec.id := p_chr_rec.k_header_id;
5785 l_okc_chrv_rec.object_version_number := p_chr_rec.object_version_number;
5786 l_okc_chrv_rec.sfwt_flag := p_chr_rec.sfwt_flag;
5787 l_okc_chrv_rec.chr_id_response := p_chr_rec.chr_id_response;
5788 l_okc_chrv_rec.chr_id_award := p_chr_rec.chr_id_award;
5789
5790 -- l_okc_chrv_rec.INV_ORGANIZATION_ID := p_chr_rec.INV_ORGANIZATION_ID;
5791 l_okc_chrv_rec.sts_code := OKE_API.G_MISS_CHAR;-- p_chr_rec.sts_code;
5792 l_okc_chrv_rec.qcl_id := p_chr_rec.qcl_id;
5793 l_okc_chrv_rec.scs_code := p_chr_rec.scs_code;
5794 l_okc_chrv_rec.contract_number := p_chr_rec.contract_number;
5795 l_okc_chrv_rec.currency_code := p_chr_rec.currency_code;
5796 l_okc_chrv_rec.contract_number_modifier := p_chr_rec.contract_number_modifier;
5797 l_okc_chrv_rec.archived_yn := p_chr_rec.archived_yn;
5798 l_okc_chrv_rec.deleted_yn := p_chr_rec.deleted_yn;
5799 l_okc_chrv_rec.cust_po_number_req_yn := p_chr_rec.cust_po_number_req_yn;
5800 l_okc_chrv_rec.pre_pay_req_yn := p_chr_rec.pre_pay_req_yn;
5801 l_okc_chrv_rec.cust_po_number := p_chr_rec.cust_po_number;
5802 l_okc_chrv_rec.short_description := p_chr_rec.short_description;
5803 l_okc_chrv_rec.comments := p_chr_rec.comments;
5804 l_okc_chrv_rec.description := p_chr_rec.description;
5805 l_okc_chrv_rec.dpas_rating := p_chr_rec.dpas_rating;
5806 l_okc_chrv_rec.cognomen := p_chr_rec.cognomen;
5807 l_okc_chrv_rec.template_yn := p_chr_rec.template_yn;
5808 l_okc_chrv_rec.template_used := p_chr_rec.template_used;
5809 l_okc_chrv_rec.date_approved := p_chr_rec.date_approved;
5810 l_okc_chrv_rec.datetime_cancelled := p_chr_rec.datetime_cancelled;
5811 l_okc_chrv_rec.auto_renew_days := p_chr_rec.auto_renew_days;
5812 l_okc_chrv_rec.date_issued := p_chr_rec.date_issued;
5813 l_okc_chrv_rec.datetime_responded := p_chr_rec.datetime_responded;
5814 l_okc_chrv_rec.non_response_reason := p_chr_rec.non_response_reason;
5815 l_okc_chrv_rec.non_response_explain := p_chr_rec.non_response_explain;
5816 l_okc_chrv_rec.rfp_type := p_chr_rec.rfp_type;
5817 l_okc_chrv_rec.chr_type := p_chr_rec.chr_type;
5818 l_okc_chrv_rec.keep_on_mail_list := p_chr_rec. keep_on_mail_list;
5819 l_okc_chrv_rec.set_aside_reason := p_chr_rec.set_aside_reason;
5820 l_okc_chrv_rec.set_aside_percent := p_chr_rec.set_aside_percent;
5821 l_okc_chrv_rec.response_copies_req := p_chr_rec.response_copies_req;
5822 l_okc_chrv_rec.date_close_projected := p_chr_rec.date_close_projected;
5823 l_okc_chrv_rec.datetime_proposed := p_chr_rec.datetime_proposed;
5824 l_okc_chrv_rec.date_signed := p_chr_rec.date_signed;
5825 l_okc_chrv_rec.date_terminated := p_chr_rec.date_terminated;
5826 l_okc_chrv_rec.date_renewed := p_chr_rec.date_renewed;
5827 l_okc_chrv_rec.trn_code := p_chr_rec.trn_code;
5828 l_okc_chrv_rec.start_date := p_chr_rec.start_date;
5829 l_okc_chrv_rec.end_date := p_chr_rec.end_date;
5830 -- l_okc_chrv_rec.authoring_org_id := p_chr_rec.authoring_org_id;
5831 l_okc_chrv_rec.buy_or_sell := OKE_API.G_MISS_CHAR ; --p_chr_rec.buy_or_sell;
5832 l_okc_chrv_rec.issue_or_receive := p_chr_rec.issue_or_receive;
5833 l_okc_chrv_rec.estimated_amount := p_chr_rec.estimated_amount;
5834
5835 l_okc_chrv_rec.estimated_amount_renewed := p_chr_rec.estimated_amount_renewed;
5836 l_okc_chrv_rec.currency_code_renewed := p_chr_rec.currency_code_renewed;
5837 l_okc_chrv_rec.upg_orig_system_ref := p_chr_rec.upg_orig_system_ref;
5838 l_okc_chrv_rec.upg_orig_system_ref_id := p_chr_rec.upg_orig_system_ref_id;
5839 l_okc_chrv_rec.attribute_category := p_chr_rec.attribute_category;
5840 l_okc_chrv_rec.attribute1 := p_chr_rec.attribute1;
5841 l_okc_chrv_rec.attribute2 := p_chr_rec.attribute2;
5842 l_okc_chrv_rec.attribute3 := p_chr_rec.attribute3;
5843 l_okc_chrv_rec.attribute4 := p_chr_rec.attribute4;
5844 l_okc_chrv_rec.attribute5 := p_chr_rec.attribute5;
5845 l_okc_chrv_rec.attribute6 := p_chr_rec.attribute6;
5846 l_okc_chrv_rec.attribute7 := p_chr_rec.attribute7;
5847 l_okc_chrv_rec.attribute8 := p_chr_rec.attribute8;
5848 l_okc_chrv_rec.attribute9 := p_chr_rec.attribute9;
5849 l_okc_chrv_rec.attribute10 := p_chr_rec.attribute10;
5850 l_okc_chrv_rec.attribute11 := p_chr_rec.attribute11;
5851 l_okc_chrv_rec.attribute12 := p_chr_rec.attribute12;
5852 l_okc_chrv_rec.attribute13 := p_chr_rec.attribute13;
5853 l_okc_chrv_rec.attribute14 := p_chr_rec.attribute14;
5854 l_okc_chrv_rec.attribute15 := p_chr_rec.attribute15;
5855 l_okc_chrv_rec.created_by := p_chr_rec.created_by;
5856 l_okc_chrv_rec.creation_date := p_chr_rec.creation_date;
5857 l_okc_chrv_rec.last_updated_by := p_chr_rec.last_updated_by;
5858 l_okc_chrv_rec.last_update_date := p_chr_rec.last_update_date;
5859 l_okc_chrv_rec.last_update_login := p_chr_rec.last_update_login;
5860 l_okc_chrv_rec.VALIDATE_YN :='Y';
5861
5862
5863
5864
5865 -- assign mandatory values
5866 l_okc_chrv_rec.archived_yn := 'N';
5867 l_okc_chrv_rec.deleted_yn := 'N';
5868 l_okc_chrv_rec.scs_code := 'PROJECT';
5869
5870
5871 OKE_CONTRACT_PUB.update_contract_header(
5872 p_api_version => p_api_version,
5873 p_init_msg_list => p_init_msg_list,
5874 x_return_status => x_return_status,
5875 x_msg_count => x_msg_count,
5876 x_msg_data => x_msg_data,
5877 p_chr_rec => l_oke_chr_rec,
5878 p_chrv_rec => l_okc_chrv_rec,
5879 x_chr_rec => l_out_chr,
5880 x_chrv_rec => l_out_chrv );
5881
5882 If (x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
5883 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
5884 Elsif (x_return_status = OKE_API.G_RET_STS_ERROR) then
5885 raise OKE_API.G_EXCEPTION_ERROR;
5886 End If;
5887
5888
5889
5890 -- Added code to update who columns. neccessary for security to work after import process.
5891
5892 IF p_chr_rec.created_by <> OKE_API.G_MISS_NUM AND p_chr_rec.created_by IS NOT NULL THEN
5893 UPDATE OKE_K_HEADERS SET CREATED_BY = p_chr_rec.created_by
5894 WHERE K_HEADER_ID = l_out_chr.k_header_id;
5895 END IF;
5896 IF p_chr_rec.creation_date <> OKE_API.G_MISS_DATE AND p_chr_rec.creation_date IS NOT NULL THEN
5897 UPDATE OKE_K_HEADERS SET CREATION_DATE = p_chr_rec.creation_date
5898 WHERE K_HEADER_ID = l_out_chr.k_header_id;
5899 END IF;
5900 IF p_chr_rec.last_updated_by <> OKE_API.G_MISS_NUM AND p_chr_rec.last_updated_by IS NOT NULL THEN
5901 UPDATE OKE_K_HEADERS SET LAST_UPDATED_BY = p_chr_rec.last_updated_by
5902 WHERE K_HEADER_ID = l_out_chr.k_header_id;
5903 END IF;
5904 IF p_chr_rec.last_update_login <> OKE_API.G_MISS_NUM AND p_chr_rec.last_update_login IS NOT NULL THEN
5905 UPDATE OKE_K_HEADERS SET LAST_UPDATE_LOGIN = p_chr_rec.last_update_login
5906 WHERE K_HEADER_ID = l_out_chr.k_header_id;
5907 END IF;
5908 IF p_chr_rec.last_update_date <> OKE_API.G_MISS_DATE AND p_chr_rec.last_update_date IS NOT NULL THEN
5909 UPDATE OKE_K_HEADERS SET LAST_UPDATE_DATE = p_chr_rec.last_update_date
5910 WHERE K_HEADER_ID = l_out_chr.k_header_id;
5911 END IF;
5912
5913 -- Added code to update who columns. neccessary for security to work after import process.
5914
5915
5916
5917 -- oke stuff
5918
5919 x_chr_rec.k_header_id := l_out_chr.k_header_id;
5920 x_chr_rec.program_id := l_out_chr.program_id;
5921 x_chr_rec.project_id := l_out_chr.project_id;
5922 x_chr_rec.boa_id := l_out_chr.boa_id;
5923 x_chr_rec.k_type_code := l_out_chr.k_type_code;
5924 x_chr_rec.priority_code := l_out_chr.priority_code;
5925 x_chr_rec.prime_k_alias := l_out_chr.prime_k_alias;
5926 x_chr_rec.prime_k_number := l_out_chr.prime_k_number;
5927 x_chr_rec.authorize_date := l_out_chr.authorize_date;
5928 x_chr_rec.authorizing_reason := l_out_chr.authorizing_reason;
5929 x_chr_rec.award_cancel_date := l_out_chr.award_cancel_date;
5930 x_chr_rec.award_date := l_out_chr.award_date;
5931 x_chr_rec.date_definitized := l_out_chr.date_definitized;
5932 x_chr_rec.date_issued := l_out_chr.date_issued;
5933 x_chr_rec.date_negotiated := l_out_chr.date_negotiated;
5934 x_chr_rec.date_received := l_out_chr.date_received;
5935 x_chr_rec.date_sign_by_contractor := l_out_chr.date_sign_by_contractor;
5936 x_chr_rec.date_sign_by_customer := l_out_chr.date_sign_by_customer;
5937 x_chr_rec.faa_approve_date := l_out_chr.faa_approve_date;
5938 x_chr_rec.faa_reject_date := l_out_chr.faa_reject_date;
5939 x_chr_rec.booked_flag := l_out_chr.booked_flag;
5940 x_chr_rec.open_flag := l_out_chr.open_flag;
5941 x_chr_rec.cfe_flag := l_out_chr.cfe_flag;
5942 x_chr_rec.vat_code := l_out_chr.vat_code;
5943 x_chr_rec.country_of_origin_code := l_out_chr.country_of_origin_code;
5944 x_chr_rec.export_flag := l_out_chr.export_flag;
5945 x_chr_rec.human_subject_flag := l_out_chr.human_subject_flag;
5946 x_chr_rec.cqa_flag := l_out_chr.cqa_flag;
5947 x_chr_rec.interim_rpt_req_flag := l_out_chr.interim_rpt_req_flag;
5948 x_chr_rec.no_competition_authorize := l_out_chr.no_competition_authorize;
5949 x_chr_rec.penalty_clause_flag := l_out_chr.penalty_clause_flag;
5950 x_chr_rec.product_line_code := l_out_chr.product_line_code;
5951 x_chr_rec.reporting_flag := l_out_chr.reporting_flag;
5952 x_chr_rec.sb_plan_req_flag := l_out_chr.sb_plan_req_flag;
5953 x_chr_rec.sb_report_flag := l_out_chr.sb_report_flag;
5954 x_chr_rec.nte_amount := l_out_chr.nte_amount;
5955 x_chr_rec.nte_warning_flag := l_out_chr.nte_warning_flag;
5956 x_chr_rec.bill_without_def_flag := l_out_chr.bill_without_def_flag;
5957 x_chr_rec.cas_flag := l_out_chr.cas_flag;
5958 x_chr_rec.classified_flag := l_out_chr.classified_flag;
5959 x_chr_rec.client_approve_req_flag := l_out_chr.client_approve_req_flag;
5960 x_chr_rec.cost_of_money := l_out_chr.cost_of_money;
5961 x_chr_rec.dcaa_audit_req_flag := l_out_chr.dcaa_audit_req_flag;
5962 x_chr_rec.cost_share_flag := l_out_chr.cost_share_flag;
5963 x_chr_rec.oh_rates_final_flag := l_out_chr.oh_rates_final_flag;
5964 x_chr_rec.prop_delivery_location := l_out_chr.prop_delivery_location;
5965 x_chr_rec.prop_due_date_time := l_out_chr.prop_due_date_time;
5966 x_chr_rec.prop_expire_date := l_out_chr.prop_expire_date;
5967 x_chr_rec.copies_required := l_out_chr.copies_required;
5968 x_chr_rec.sic_code := l_out_chr.sic_code;
5969 x_chr_rec.tech_data_wh_rate := l_out_chr.tech_data_wh_rate;
5970 x_chr_rec.progress_payment_flag := l_out_chr.progress_payment_flag;
5971 x_chr_rec.progress_payment_liq_rate := l_out_chr.progress_payment_liq_rate;
5972 x_chr_rec.progress_payment_rate := l_out_chr.progress_payment_rate;
5973 x_chr_rec.alternate_liquidation_rate := l_out_chr.alternate_liquidation_rate;
5974 x_chr_rec.prop_due_time := l_out_chr.prop_due_time;
5975 x_chr_rec.definitized_flag := l_out_chr.definitized_flag;
5976 x_chr_rec.financial_ctrl_verified_flag:= l_out_chr.financial_ctrl_verified_flag;
5977 x_chr_rec.cost_of_sale_rate := l_out_chr.cost_of_sale_rate;
5978 x_chr_rec.created_by := l_out_chr.created_by;
5979 x_chr_rec.creation_date := l_out_chr.creation_date;
5980 x_chr_rec.last_updated_by := l_out_chr.last_updated_by;
5981 x_chr_rec.last_update_login := l_out_chr.last_update_login;
5982 x_chr_rec.last_update_date := l_out_chr.last_update_date;
5983 x_chr_rec.line_value_total := l_out_chr.line_value_total;
5984 x_chr_rec.undef_line_value_total := l_out_chr.undef_line_value_total;
5985 x_chr_rec.owning_organization_id := l_out_chr.owning_organization_id;
5986
5987
5988
5989 -- okc stuff
5990 -- being later thereby overwriting the oke stuff if there is duplicate fields
5991
5992 x_chr_rec.k_header_id := l_out_chrv.id;
5993 x_chr_rec.object_version_number := l_out_chrv.object_version_number;
5994 x_chr_rec.sfwt_flag := l_out_chrv.sfwt_flag;
5995 x_chr_rec.chr_id_response := l_out_chrv.chr_id_response;
5996 x_chr_rec.chr_id_award := l_out_chrv.chr_id_award;
5997
5998 x_chr_rec.INV_ORGANIZATION_ID := l_out_chrv.INV_ORGANIZATION_ID;
5999 x_chr_rec.sts_code := l_out_chrv.sts_code;
6000 x_chr_rec.qcl_id := l_out_chrv.qcl_id;
6001 x_chr_rec.scs_code := l_out_chrv.scs_code;
6002 x_chr_rec.contract_number := l_out_chrv.contract_number;
6003 x_chr_rec.currency_code := l_out_chrv.currency_code;
6004 x_chr_rec.contract_number_modifier := l_out_chrv.contract_number_modifier;
6005 x_chr_rec.archived_yn := l_out_chrv.archived_yn;
6006 x_chr_rec.deleted_yn := l_out_chrv.deleted_yn;
6007 x_chr_rec.cust_po_number_req_yn := l_out_chrv.cust_po_number_req_yn;
6008 x_chr_rec.pre_pay_req_yn := l_out_chrv.pre_pay_req_yn;
6009 x_chr_rec.cust_po_number := l_out_chrv.cust_po_number;
6010 x_chr_rec.short_description := l_out_chrv.short_description;
6011 x_chr_rec.comments := l_out_chrv.comments;
6012 x_chr_rec.description := l_out_chrv.description;
6013 x_chr_rec.dpas_rating := l_out_chrv.dpas_rating;
6014 x_chr_rec.cognomen := l_out_chrv.cognomen;
6015 x_chr_rec.template_yn := l_out_chrv.template_yn;
6016 x_chr_rec.template_used := l_out_chrv.template_used;
6017 x_chr_rec.date_approved := l_out_chrv.date_approved;
6018 x_chr_rec.datetime_cancelled := l_out_chrv.datetime_cancelled;
6019 x_chr_rec.auto_renew_days := l_out_chrv.auto_renew_days;
6020 x_chr_rec.date_issued := l_out_chrv.date_issued;
6021 x_chr_rec.datetime_responded := l_out_chrv.datetime_responded;
6022 x_chr_rec.non_response_reason := l_out_chrv.non_response_reason;
6023 x_chr_rec.non_response_explain := l_out_chrv.non_response_explain;
6024 x_chr_rec.rfp_type := l_out_chrv.rfp_type;
6025 x_chr_rec.chr_type := l_out_chrv.chr_type;
6026 x_chr_rec.keep_on_mail_list := l_out_chrv. keep_on_mail_list;
6027 x_chr_rec.set_aside_reason := l_out_chrv.set_aside_reason;
6028 x_chr_rec.set_aside_percent := l_out_chrv.set_aside_percent;
6029 x_chr_rec.response_copies_req := l_out_chrv.response_copies_req;
6030 x_chr_rec.date_close_projected := l_out_chrv.date_close_projected;
6031 x_chr_rec.datetime_proposed := l_out_chrv.datetime_proposed;
6032 x_chr_rec.date_signed := l_out_chrv.date_signed;
6033 x_chr_rec.date_terminated := l_out_chrv.date_terminated;
6034 x_chr_rec.date_renewed := l_out_chrv.date_renewed;
6035 x_chr_rec.trn_code := l_out_chrv.trn_code;
6036 x_chr_rec.start_date := l_out_chrv.start_date;
6037 x_chr_rec.end_date := l_out_chrv.end_date;
6038 x_chr_rec.authoring_org_id := l_out_chrv.authoring_org_id;
6039 x_chr_rec.buy_or_sell := l_out_chrv.buy_or_sell;
6040 x_chr_rec.issue_or_receive := l_out_chrv.issue_or_receive;
6041 x_chr_rec.estimated_amount := l_out_chrv.estimated_amount;
6042
6043 x_chr_rec.estimated_amount_renewed := l_out_chrv.estimated_amount_renewed;
6044 x_chr_rec.currency_code_renewed := l_out_chrv.currency_code_renewed;
6045 x_chr_rec.upg_orig_system_ref := l_out_chrv.upg_orig_system_ref;
6046 x_chr_rec.upg_orig_system_ref_id := l_out_chrv.upg_orig_system_ref_id;
6047 x_chr_rec.attribute_category := l_out_chrv.attribute_category;
6048 x_chr_rec.attribute1 := l_out_chrv.attribute1;
6049 x_chr_rec.attribute2 := l_out_chrv.attribute2;
6050 x_chr_rec.attribute3 := l_out_chrv.attribute3;
6051 x_chr_rec.attribute4 := l_out_chrv.attribute4;
6052 x_chr_rec.attribute5 := l_out_chrv.attribute5;
6053 x_chr_rec.attribute6 := l_out_chrv.attribute6;
6054 x_chr_rec.attribute7 := l_out_chrv.attribute7;
6055 x_chr_rec.attribute8 := l_out_chrv.attribute8;
6056 x_chr_rec.attribute9 := l_out_chrv.attribute9;
6057 x_chr_rec.attribute10 := l_out_chrv.attribute10;
6058 x_chr_rec.attribute11 := l_out_chrv.attribute11;
6059 x_chr_rec.attribute12 := l_out_chrv.attribute12;
6060 x_chr_rec.attribute13 := l_out_chrv.attribute13;
6061 x_chr_rec.attribute14 := l_out_chrv.attribute14;
6062 x_chr_rec.attribute15 := l_out_chrv.attribute15;
6063 x_chr_rec.created_by := l_out_chrv.created_by;
6064 x_chr_rec.creation_date := l_out_chrv.creation_date;
6065 x_chr_rec.last_updated_by := l_out_chrv.last_updated_by;
6066 x_chr_rec.last_update_date := l_out_chrv.last_update_date;
6067 x_chr_rec.last_update_login := l_out_chrv.last_update_login;
6068
6069
6070
6071 OKE_API.END_ACTIVITY( x_msg_count => x_msg_count,
6072 x_msg_data => x_msg_data);
6073 EXCEPTION
6074 when OKE_API.G_EXCEPTION_ERROR then
6075 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
6076 p_api_name => l_api_name,
6077 p_pkg_name => g_pkg_name,
6078 p_exc_name => 'OKE_API.G_RET_STS_ERROR',
6079 x_msg_count => x_msg_count,
6080 x_msg_data => x_msg_data,
6081 p_api_type => g_api_type);
6082
6083 when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
6084 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
6085 p_api_name => l_api_name,
6086 p_pkg_name => g_pkg_name,
6087 p_exc_name => 'OKE_API.G_RET_STS_UNEXP_ERROR',
6088 x_msg_count => x_msg_count,
6089 x_msg_data => x_msg_data,
6090 p_api_type => g_api_type);
6091
6092 when OTHERS then
6093 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
6094 p_api_name => l_api_name,
6095 p_pkg_name => g_pkg_name,
6096 p_exc_name => 'OTHERS',
6097 x_msg_count => x_msg_count,
6098 x_msg_data => x_msg_data,
6099 p_api_type => g_api_type);
6100
6101 END update_contract_header;
6102
6103
6104
6105
6106 /*
6107 * Deletes the contract
6108 * scope public
6109 * lifecycle active
6110 * displayname Delete Project contract
6111 * category BUSINESS_ENTITY OKE_CONTRACT
6112 */
6113
6114 PROCEDURE delete_contract (
6115 p_api_version IN NUMBER,
6116 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
6117 x_return_status OUT NOCOPY VARCHAR2,
6118 x_msg_count OUT NOCOPY NUMBER,
6119 x_msg_data OUT NOCOPY VARCHAR2,
6120 p_chr_id IN NUMBER) IS
6121
6122
6123 l_api_name CONSTANT VARCHAR2(30) := 'DELETE_CONTRACT';
6124 l_api_version CONSTANT NUMBER := 1.0;
6125 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
6126 l_return_code VARCHAR2(30);
6127 l_docnumber VARCHAR2(240);
6128 l_doctype VARCHAR2(80);
6129 l_wf_name VARCHAR2(200);
6130
6131
6132 CURSOR l_wf IS
6133 SELECT NAME FROM okc_process_defs_v dv, okc_k_processes ps
6134 WHERE ps.pdf_id = dv.id
6135 AND ps.chr_id= p_chr_id
6136 AND ps.last_update_date =
6137 (SELECT max(last_update_date) FROM okc_k_processes
6138 WHERE chr_id= p_chr_id );
6139
6140
6141 CURSOR get_k IS
6142 SELECT k_type,k_number
6143 FROM oke_k_headers_full_v
6144 WHERE k_header_id = p_chr_id;
6145
6146 BEGIN
6147 -- call START_ACTIVITY to create savepoint, check compatibility
6148 -- and initialize message list
6149 l_return_status := OKE_API.START_ACTIVITY(
6150 p_api_name => l_api_name,
6151 p_pkg_name => g_pkg_name,
6152 p_init_msg_list => p_init_msg_list,
6153 l_api_version => l_api_version,
6154 p_api_version => p_api_version,
6155 p_api_type => g_api_type,
6156 x_return_status => x_return_status);
6157
6158 -- check if activity started successfully
6159 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
6160 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
6161 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
6162 raise OKE_API.G_EXCEPTION_ERROR;
6163 End If;
6164
6165 --validate mandatory fields
6166 IF ( p_chr_id IS NULL OR p_chr_id=OKE_API.G_MISS_NUM) THEN
6167 OKE_API.SET_MESSAGE(p_app_name =>g_app_name,
6168 p_msg_name =>G_REQUIRED_VALUE,
6169 p_token1 =>G_COL_NAME_TOKEN,
6170 p_token1_value =>'P_CHR_ID/Contract');
6171 l_return_status := OKE_API.G_RET_STS_ERROR;
6172 END IF ;
6173
6174 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
6175 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
6176 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
6177 raise OKE_API.G_EXCEPTION_ERROR;
6178 End If;
6179
6180 OKC_CONTEXT.Set_OKC_Org_Context( p_chr_id => P_CHR_ID );
6181
6182 OKE_CONTRACT_PUB.Check_Delete_Contract(
6183 p_api_version => 1.0,
6184 p_init_msg_list => 'F',
6185 x_return_status => l_return_status,
6186 x_msg_count => x_msg_count,
6187 x_msg_data => x_msg_data,
6188 p_chr_id => p_chr_id,
6189 x_return_code => l_return_code
6190 );
6191
6192
6193
6194 OPEN get_k;
6195 FETCH get_k INTO l_doctype,l_docnumber;
6196 CLOSE get_k;
6197
6198 IF l_return_status <> 'S' THEN
6199 IF l_return_code = 'OPN' THEN
6200
6201 OKE_API.SET_MESSAGE(p_app_name =>g_app_name,
6202 p_msg_name =>'OKE_NO_DELETE_OPN',
6203 p_token1 =>'DOCTYPE',
6204 p_token1_value =>l_doctype,
6205 p_token2 =>'DOCNUMBER',
6206 p_token2_value =>l_docnumber
6207 );
6208
6209
6210 ELSIF l_return_code = 'BOA' THEN
6211
6212 OKE_API.SET_MESSAGE(p_app_name =>g_app_name,
6213 p_msg_name =>'OKE_NO_DELETE_BOA',
6214 p_token1 =>'DOCTYPE',
6215 p_token1_value =>l_doctype,
6216 p_token2 =>'DOCNUMBER',
6217 p_token2_value =>l_docnumber
6218 );
6219
6220
6221 ELSIF l_return_code = 'STS' THEN
6222 OKE_API.SET_MESSAGE(p_app_name =>g_app_name,
6223 p_msg_name =>'OKE_NO_DELETE_STATUS',
6224 p_token1 =>'DOCTYPE',
6225 p_token1_value =>l_doctype,
6226 p_token2 =>'DOCNUMBER',
6227 p_token2_value =>l_docnumber
6228 );
6229
6230
6231 ELSIF l_return_code = 'PO' THEN
6232
6233 OKE_API.SET_MESSAGE(p_app_name =>g_app_name,
6234 p_msg_name =>'OKE_NO_DELETE_PO');
6235
6236
6237
6238 ELSIF l_return_code = 'PLAN' THEN
6239 OKE_API.SET_MESSAGE(p_app_name =>g_app_name,
6240 p_msg_name =>'OKE_NO_DELETE_PLAN');
6241
6242
6243
6244 ELSIF l_return_code = 'SHIP' THEN
6245
6246 OKE_API.SET_MESSAGE(p_app_name =>g_app_name,
6247 p_msg_name =>'OKE_NO_DELETE_SHIP');
6248
6249
6250 ELSIF l_return_code = 'FUND' THEN
6251
6252 OKE_API.SET_MESSAGE(p_app_name =>g_app_name,
6253 p_msg_name =>'OKE_NO_DELETE_FUNDING');
6254
6255
6256 ELSIF l_return_code ='WFA' THEN
6257 OPEN l_wf;
6258 FETCH l_wf INTO l_wf_name;
6259 CLOSE l_wf;
6260
6261 OKE_API.SET_MESSAGE(p_app_name =>g_app_name,
6262 p_msg_name =>'OKE_PROCESS_ACTIVE',
6263 p_token1 =>'VALUE',
6264 p_token1_value =>l_wf_name
6265 );
6266
6267 END IF;
6268
6269 x_return_status := OKE_API.G_RET_STS_ERROR ;
6270
6271 END IF;
6272
6273 If ( l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
6274 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
6275 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
6276 raise OKE_API.G_EXCEPTION_ERROR;
6277 End If;
6278
6279 oke_contract_pub.delete_contract (
6280 p_api_version => p_api_version,
6281 p_init_msg_list => p_init_msg_list,
6282 x_return_status => x_return_status,
6283 x_msg_count => x_msg_count,
6284 x_msg_data => x_msg_data,
6285 p_chr_id =>p_chr_id,
6286 p_pre_deletion_check_yn =>'N') ;
6287
6288 If (x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
6289 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
6290 Elsif (x_return_status = OKE_API.G_RET_STS_ERROR) then
6291 raise OKE_API.G_EXCEPTION_ERROR;
6292 End If;
6293
6294 OKE_API.END_ACTIVITY( x_msg_count => x_msg_count,
6295 x_msg_data => x_msg_data);
6296 EXCEPTION
6297 when OKE_API.G_EXCEPTION_ERROR then
6298 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
6299 p_api_name => l_api_name,
6300 p_pkg_name => g_pkg_name,
6301 p_exc_name => 'OKE_API.G_RET_STS_ERROR',
6302 x_msg_count => x_msg_count,
6303 x_msg_data => x_msg_data,
6304 p_api_type => g_api_type);
6305
6306 when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
6307 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
6308 p_api_name => l_api_name,
6309 p_pkg_name => g_pkg_name,
6310 p_exc_name => 'OKE_API.G_RET_STS_UNEXP_ERROR',
6311 x_msg_count => x_msg_count,
6312 x_msg_data => x_msg_data,
6313 p_api_type => g_api_type);
6314
6315 when OTHERS then
6316 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
6317 p_api_name => l_api_name,
6318 p_pkg_name => g_pkg_name,
6319 p_exc_name => 'OTHERS',
6320 x_msg_count => x_msg_count,
6321 x_msg_data => x_msg_data,
6322 p_api_type => g_api_type);
6323
6324 END delete_contract;
6325
6326
6327 Function Validate_delete_deliverable(p_deliverable_id in number
6328 ) RETURN VARCHAR2 is
6329
6330 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
6331 x_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
6332
6333 ---------------------------
6334 procedure check_opn_code (p_deliverable_id in number,
6335 x_return_status out nocopy varchar2 ) is
6336
6337 cursor c(p_deliverable_id Number) IS
6338 select okl.sts_code from okc_k_lines_b okl , oke_k_deliverables_b okb
6339 where okl.id = okb.k_line_id
6340 and okb.deliverable_id=p_deliverable_id;
6341
6342 cursor opn_csr(p_sts_code varchar2, p_opn_code varchar2) is
6343 select 'x' from okc_assents
6344 where opn_code = p_opn_code
6345 and sts_code = p_sts_code
6346 and scs_code = 'PROJECT'
6347 and allowed_yn = 'Y';
6348
6349
6350 l_code varchar2(80);
6351 l_opn_code varchar2(30);
6352 l_found boolean := FALSE;
6353 l_value varchar2(1);
6354
6355
6356 begin
6357
6358 x_return_status := OKE_API.G_RET_STS_SUCCESS;
6359
6360 open c(p_deliverable_id);
6361 fetch c into l_code;
6362 close c;
6363
6364 l_opn_code := 'DELETE_DELV';
6365
6366 IF l_opn_code is not null then
6367 open opn_csr(l_code, l_opn_code);
6368 fetch opn_csr into l_value;
6369 l_found := opn_csr%found;
6370 close opn_csr;
6371 end if;
6372
6373 if not l_found then
6374
6375 OKE_API.SET_MESSAGE(p_app_name => 'OKE',
6376 p_msg_name => 'OKE_OPN_NO_DELETE_DLV');
6377
6378 X_Return_Status := OKE_API.G_RET_STS_ERROR;
6379
6380 end if;
6381
6382 end check_opn_code;
6383
6384 -------------------------------
6385 procedure check_deliverable_in_progress(p_deliverable_id in number,
6386 x_return_status out nocopy varchar2 ) is
6387 cursor get_del_dtls is
6388 select mps_transaction_id,po_ref_1,shipping_request_id,completed_flag from oke_k_deliverables_b where deliverable_id=p_deliverable_id;
6389
6390 CURSOR c1(l_mps_id number) IS
6391 SELECT 'X' FROM MRP_SCHEDULE_DATES
6392 WHERE MPS_TRANSACTION_ID = l_mps_id;
6393
6394 CURSOR c_po IS
6395 select 'X' from po_distributions_all
6396 where oke_contract_deliverable_id =p_deliverable_id;
6397
6398 CURSOR c_req IS
6399 select 'X' from po_req_distributions_all
6400 where oke_contract_deliverable_id =p_deliverable_id;
6401
6402 CURSOR c3(l_req_id number) IS
6403 SELECT 'X' FROM PO_REQUISITIONS_INTERFACE_ALL
6404 WHERE batch_id = l_req_id
6405 AND OKE_CONTRACT_DELIVERABLE_ID =p_deliverable_id;
6406
6407 CURSOR c2(l_ship_id number) IS
6408 SELECT 'X' FROM WSH_DELIVERY_DETAILS
6409 WHERE delivery_detail_id = l_ship_id;
6410
6411 cinfo1 varchar2(1);
6412 cinfo2 varchar2(1);
6413 cinfo3 varchar2(1);
6414
6415
6416
6417 l_mps_transaction_id number;
6418 l_po_ref_1 number;
6419 l_shipping_request_id number;
6420 l_completed_flag varchar2(1);
6421 l_found boolean;
6422 deletable boolean := TRUE;
6423
6424 l_message varchar2(2000);
6425 l_msg Varchar2(80);
6426 l_count number := 0;
6427
6428 begin
6429
6430 x_return_status := OKE_API.G_RET_STS_SUCCESS;
6431
6432 open get_del_dtls ;
6433 fetch get_del_dtls into l_mps_transaction_id,l_po_ref_1,l_shipping_request_id,l_completed_flag;
6434 close get_del_dtls;
6435
6436 -- validate if the deliverable is in any process, if yes, no delete
6437
6438 if l_mps_transaction_id is not null then
6439 open c1(l_mps_transaction_id);
6440 fetch c1 into cinfo1;
6441 l_found := c1%found;
6442 close c1;
6443
6444 if l_found then
6445 fnd_message.set_name('OKE', 'OKE_DTS_PROGRESS_MDS');
6446 l_msg := fnd_message.get;
6447 if l_count = 0 then
6448
6449 l_message := l_msg;
6450 l_count := 1;
6451 else
6452 l_message := l_message || ', ' || l_msg;
6453 end if;
6454
6455 deletable := FALSE;
6456 end if;
6457 end if;
6458
6459 if l_po_ref_1 is not null then
6460
6461 open c_po;
6462 fetch c_po into cinfo3;
6463 l_found := c_po%found;
6464 close c_po;
6465
6466 if not l_found then -- po not found
6467 open c_req;
6468 fetch c_req into cinfo3;
6469 l_found := c_req%found;
6470 close c_req;
6471
6472 if not l_found then -- req not found
6473 open c3(l_po_ref_1);
6474 fetch c3 into cinfo3;
6475 l_found := c3%found;
6476 close c3;
6477 end if;
6478 end if;
6479
6480
6481 if l_found then -- interface/po/req rec found
6482 fnd_message.set_name('OKE', 'OKE_DTS_PROGRESS_REQ');
6483 l_msg := fnd_message.get;
6484 if l_count = 0 then
6485 l_message := l_msg;
6486 l_count := 1;
6487 else
6488 l_message := l_message || ', ' || l_msg;
6489 end if;
6490
6491 deletable := FALSE;
6492 end if;
6493 end if;
6494
6495 if l_shipping_request_id is not null then
6496 open c2(l_shipping_request_id);
6497 fetch c2 into cinfo2;
6498 l_found := c2%found;
6499 close c2;
6500
6501 if l_found then
6502 fnd_message.set_name('OKE', 'OKE_DTS_PROGRESS_WSH');
6503 l_msg := fnd_message.get;
6504 if l_count = 0 then
6505 l_message := l_msg;
6506 l_count := 1;
6507 else
6508 l_message := l_message || ', ' || l_msg;
6509 end if;
6510
6511 deletable := FALSE;
6512 end if;
6513 end if;
6514
6515 if nvl(l_completed_flag,'N') = 'Y' then
6516 fnd_message.set_name('OKE', 'OKE_DTS_DATA_COMPLETED');
6517 l_msg := fnd_message.get;
6518 if l_count = 0 then
6519 l_message := l_msg;
6520 l_count := 1;
6521 else
6522 l_message := l_message || ', ' || l_msg;
6523 end if;
6524
6525 deletable := FALSE;
6526 end if;
6527
6528 if deletable = FALSE then
6529
6530 OKE_API.SET_MESSAGE(p_app_name =>'OKE',
6531 p_msg_name => 'OKE_DTS_NO_DELETE_ALLOWED',
6532 p_token1 => 'TOKEN',
6533 p_token1_value => l_message);
6534 -- notify caller of an error
6535 X_Return_Status := OKE_API.G_RET_STS_ERROR;
6536
6537 end if;
6538 end check_deliverable_in_progress;
6539 -----------------------------
6540 begin
6541 check_opn_code(p_deliverable_id => p_deliverable_id ,
6542 x_return_status => l_return_status);
6543
6544 If l_return_status <> OKE_API.G_RET_STS_SUCCESS Then
6545 If x_return_status <> OKE_API.G_RET_STS_UNEXP_ERROR Then
6546 x_return_status := l_return_status;
6547 End If;
6548 End If;
6549
6550 check_deliverable_in_progress(p_deliverable_id => p_deliverable_id ,
6551 x_return_status => l_return_status);
6552
6553 If l_return_status <> OKE_API.G_RET_STS_SUCCESS Then
6554 If x_return_status <> OKE_API.G_RET_STS_UNEXP_ERROR Then
6555 x_return_status := l_return_status;
6556 End If;
6557 End If;
6558 return (x_return_status);
6559
6560 exception
6561 WHEN OTHERS THEN
6562 -- store SQL error message on message stack
6563 OKE_API.SET_MESSAGE(
6564 p_app_name =>g_app_name,
6565 p_msg_name =>G_UNEXPECTED_ERROR,
6566 p_token1 =>G_SQLCODE_TOKEN,
6567 p_token1_value =>SQLCODE,
6568 p_token2 =>G_SQLERRM_TOKEN,
6569 p_token2_value =>SQLERRM);
6570
6571 x_return_status := OKE_API.G_RET_STS_UNEXP_ERROR;
6572
6573 RETURN(x_return_status);
6574
6575
6576 end Validate_delete_deliverable;
6577
6578 /*
6579 * Delete Deliverable.
6580 * scope public
6581 * lifecycle active
6582 * displayname Delete Deliverable
6583 * category BUSINESS_ENTITY OKE_CONTRACT
6584 */
6585
6586 PROCEDURE delete_deliverable(
6587 p_api_version IN NUMBER,
6588 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
6589 x_return_status OUT NOCOPY VARCHAR2,
6590 x_msg_count OUT NOCOPY NUMBER,
6591 x_msg_data OUT NOCOPY VARCHAR2,
6592 p_deliverable_id IN NUMBER) IS
6593
6594 l_api_name CONSTANT VARCHAR2(30) := 'DELETE_DELIVERABLE';
6595 l_api_version CONSTANT NUMBER := 1.0;
6596 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
6597
6598 l_del_tbl_in oke_deliverable_pvt.del_tbl_type;
6599
6600 CURSOR c4 IS
6601 SELECT STANDARD_NOTES_ID FROM OKE_K_STANDARD_NOTES_B
6602 WHERE DELIVERABLE_ID = p_deliverable_id;
6603
6604
6605 BEGIN
6606 -- call START_ACTIVITY to create savepoint, check compatibility
6607 -- and initialize message list
6608 l_return_status := OKE_API.START_ACTIVITY(
6609 p_api_name => l_api_name,
6610 p_pkg_name => g_pkg_name,
6611 p_init_msg_list => p_init_msg_list,
6612 l_api_version => l_api_version,
6613 p_api_version => p_api_version,
6614 p_api_type => g_api_type,
6615 x_return_status => x_return_status);
6616
6617 -- check if activity started successfully
6618 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
6619 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
6620 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
6621 raise OKE_API.G_EXCEPTION_ERROR;
6622 End If;
6623
6624 --validate mandatory fields
6625 IF ( p_deliverable_id IS NULL OR p_deliverable_id=OKE_API.G_MISS_NUM) THEN
6626 OKE_API.SET_MESSAGE(p_app_name =>g_app_name,
6627 p_msg_name =>G_REQUIRED_VALUE,
6628 p_token1 =>G_COL_NAME_TOKEN,
6629 p_token1_value =>'DELIVERABLE_ID');
6630 l_return_status := OKE_API.G_RET_STS_ERROR;
6631 END IF ;
6632
6633 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
6634 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
6635 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
6636 raise OKE_API.G_EXCEPTION_ERROR;
6637 End If;
6638
6639 ---validations
6640 l_return_status:=Validate_delete_deliverable(p_deliverable_id );
6641
6642 If ( l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
6643 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
6644 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
6645 raise OKE_API.G_EXCEPTION_ERROR;
6646 End If;
6647
6648
6649 -- delete dependency
6650 delete from oke_dependencies
6651 where deliverable_id = p_deliverable_id;
6652
6653 -- delete standard notes
6654 for cinfo in c4 loop
6655 delete from oke_k_standard_notes_b
6656 where standard_notes_id = cinfo.standard_notes_id;
6657
6658 delete from oke_k_standard_notes_tl
6659 where standard_notes_id = cinfo.standard_notes_id;
6660 end loop;
6661
6662 l_del_tbl_in(1).DELIVERABLE_ID := p_deliverable_id ;
6663
6664 -- Stop workflow
6665 OKE_DTS_WORKFLOW.ABORT_PROCESS(L_DEL_TBL_IN(1).Deliverable_ID);
6666
6667 -- delete deliverable
6668 OKE_CONTRACT_PVT.delete_deliverable (
6669 p_api_version => p_api_version,
6670 p_init_msg_list => p_init_msg_list,
6671 x_return_status => x_return_status,
6672 x_msg_count => x_msg_count,
6673 x_msg_data => x_msg_data,
6674 p_del_tbl => l_del_tbl_in);
6675
6676
6677 If (x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
6678 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
6679 Elsif (x_return_status = OKE_API.G_RET_STS_ERROR) then
6680 raise OKE_API.G_EXCEPTION_ERROR;
6681 End If;
6682
6683
6684 OKE_API.END_ACTIVITY( x_msg_count => x_msg_count,
6685 x_msg_data => x_msg_data);
6686 EXCEPTION
6687 when OKE_API.G_EXCEPTION_ERROR then
6688 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
6689 p_api_name => l_api_name,
6690 p_pkg_name => g_pkg_name,
6691 p_exc_name => 'OKE_API.G_RET_STS_ERROR',
6692 x_msg_count => x_msg_count,
6693 x_msg_data => x_msg_data,
6694 p_api_type => g_api_type);
6695
6696 when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
6697 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
6698 p_api_name => l_api_name,
6699 p_pkg_name => g_pkg_name,
6700 p_exc_name => 'OKE_API.G_RET_STS_UNEXP_ERROR',
6701 x_msg_count => x_msg_count,
6702 x_msg_data => x_msg_data,
6703 p_api_type => g_api_type);
6704
6705 when OTHERS then
6706 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
6707 p_api_name => l_api_name,
6708 p_pkg_name => g_pkg_name,
6709 p_exc_name => 'OTHERS',
6710 x_msg_count => x_msg_count,
6711 x_msg_data => x_msg_data,
6712 p_api_type => g_api_type);
6713
6714 END delete_deliverable;
6715
6716
6717
6718 END OKE_IMPORT_CONTRACT_PUB;