[Home] [Help]
PACKAGE BODY: APPS.OKE_IMPORT_CONTRACT_PUB
Source
1 PACKAGE BODY OKE_IMPORT_CONTRACT_PUB AS
2 /* $Header: OKEPIMPB.pls 120.2 2006/03/06 15:29:12 ausmani noship $ */
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 BEGIN
161 x_return_status := OKE_API.G_RET_STS_SUCCESS;
162
163 IF ( p_cle_rec.sts_code <> OKE_API.G_MISS_CHAR
164 AND p_cle_rec.sts_code IS NOT NULL) THEN
165
166 Open l_csr1;
167 Fetch l_csr1 INTO l_dummy1;
168 Close l_csr1;
169
170 If l_dummy1 = '?' Then
171 OKE_API.SET_MESSAGE(p_app_name => g_app_name,
172 p_msg_name => g_no_parent_record,
173 p_token1 => g_col_name_token,
174 p_token1_value => 'STS_CODE',
175 p_token2 => g_child_table_token,
176 p_token2_value => G_VIEW,
177 p_token3 => g_parent_table_token,
178 p_token3_value => 'OKC_STATUSES_B');
179 x_return_status := OKE_API.G_RET_STS_ERROR;
180 END IF;
181 END IF;
182
183 IF ( p_cle_rec.line_number <> OKE_API.G_MISS_CHAR
184 AND p_cle_rec.line_number IS NOT NULL) THEN
185
186 l_line_num := RTRIM(p_cle_rec.line_number)||' ';
187 IF length(l_line_num)=1 THEN
188
189 OKE_API.SET_MESSAGE(p_app_name =>g_app_name,
190 p_msg_name =>G_REQUIRED_VALUE,
191 p_token1 =>G_COL_NAME_TOKEN,
192 p_token1_value =>'LINE_NUMBER');
193 x_return_status := OKE_API.G_RET_STS_ERROR;
194 END IF;
195 END IF;
196
197
198 EXCEPTION
199
200 WHEN OTHERS THEN
201 -- store SQL error message on message stack
202 OKE_API.SET_MESSAGE(
203 p_app_name =>g_app_name,
204 p_msg_name =>G_UNEXPECTED_ERROR,
205 p_token1 =>G_SQLCODE_TOKEN,
206 p_token1_value =>SQLCODE,
207 p_token2 =>G_SQLERRM_TOKEN,
208 p_token2_value =>SQLERRM);
209 x_return_status := OKE_API.G_RET_STS_UNEXP_ERROR;
210
211 END validate_OKC_line_fields;
212
213
214
215
216
217
218
219 PROCEDURE create_contract_header(
220
221 p_api_version IN NUMBER,
222 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
223 p_ignore_oke_validation IN VARCHAR2 DEFAULT 'N',
224 x_return_status OUT NOCOPY VARCHAR2,
225 x_msg_count OUT NOCOPY NUMBER,
226 x_msg_data OUT NOCOPY VARCHAR2,
227
228 p_chr_rec IN chr_rec_type,
229 x_chr_rec OUT NOCOPY chr_rec_type) IS
230
231 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_CONTRACT_HEADER';
232 l_api_version CONSTANT NUMBER := 1.0;
233 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
234
235
236 l_okc_chrv_rec OKC_CONTRACT_PUB.chrv_rec_type;
237 l_oke_chr_rec OKE_CONTRACT_PUB.chr_rec_type;
238
239 l_out_chrv OKC_CONTRACT_PUB.chrv_rec_type;
240 l_out_chr OKE_CONTRACT_PUB.chr_rec_type;
241
242
243
244 BEGIN
245 -- call START_ACTIVITY to create savepoint, check compatibility
246 -- and initialize message list
247 l_return_status := OKE_API.START_ACTIVITY(
248 p_api_name => l_api_name,
249 p_pkg_name => g_pkg_name,
250 p_init_msg_list => p_init_msg_list,
251 l_api_version => l_api_version,
252 p_api_version => p_api_version,
253 p_api_type => g_api_type,
254 x_return_status => x_return_status);
255
256 -- check if activity started successfully
257 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
258 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
259 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
260 raise OKE_API.G_EXCEPTION_ERROR;
261 End If;
262
263
264
265
266
267
268 -- start assigning items into the records
269
270
271 l_oke_chr_rec.k_header_id := p_chr_rec.k_header_id;
272 l_oke_chr_rec.program_id := p_chr_rec.program_id;
273 l_oke_chr_rec.project_id := p_chr_rec.project_id;
274 l_oke_chr_rec.boa_id := p_chr_rec.boa_id;
275 l_oke_chr_rec.k_type_code := p_chr_rec.k_type_code;
276 l_oke_chr_rec.priority_code := p_chr_rec.priority_code;
277 l_oke_chr_rec.prime_k_alias := p_chr_rec.prime_k_alias;
278 l_oke_chr_rec.prime_k_number := p_chr_rec.prime_k_number;
279 l_oke_chr_rec.authorize_date := p_chr_rec.authorize_date;
280 l_oke_chr_rec.authorizing_reason := p_chr_rec.authorizing_reason;
281 l_oke_chr_rec.award_cancel_date := p_chr_rec.award_cancel_date;
282 l_oke_chr_rec.award_date := p_chr_rec.award_date;
283 l_oke_chr_rec.date_definitized := p_chr_rec.date_definitized;
284 l_oke_chr_rec.date_issued := p_chr_rec.date_issued;
285 l_oke_chr_rec.date_negotiated := p_chr_rec.date_negotiated;
286 l_oke_chr_rec.date_received := p_chr_rec.date_received;
287 l_oke_chr_rec.date_sign_by_contractor := p_chr_rec.date_sign_by_contractor;
288 l_oke_chr_rec.date_sign_by_customer := p_chr_rec.date_sign_by_customer;
289 l_oke_chr_rec.faa_approve_date := p_chr_rec.faa_approve_date;
290 l_oke_chr_rec.faa_reject_date := p_chr_rec.faa_reject_date;
291 l_oke_chr_rec.booked_flag := p_chr_rec.booked_flag;
292 l_oke_chr_rec.open_flag := p_chr_rec.open_flag;
293 l_oke_chr_rec.cfe_flag := p_chr_rec.cfe_flag;
294 l_oke_chr_rec.vat_code := p_chr_rec.vat_code;
295 l_oke_chr_rec.country_of_origin_code := p_chr_rec.country_of_origin_code;
296 l_oke_chr_rec.export_flag := p_chr_rec.export_flag;
297 l_oke_chr_rec.human_subject_flag := p_chr_rec.human_subject_flag;
298 l_oke_chr_rec.cqa_flag := p_chr_rec.cqa_flag;
299 l_oke_chr_rec.interim_rpt_req_flag := p_chr_rec.interim_rpt_req_flag;
300 l_oke_chr_rec.no_competition_authorize:= p_chr_rec.no_competition_authorize;
301 l_oke_chr_rec.penalty_clause_flag := p_chr_rec.penalty_clause_flag;
302 l_oke_chr_rec.product_line_code := p_chr_rec.product_line_code;
303 l_oke_chr_rec.reporting_flag := p_chr_rec.reporting_flag;
304 l_oke_chr_rec.sb_plan_req_flag := p_chr_rec.sb_plan_req_flag;
305 l_oke_chr_rec.sb_report_flag := p_chr_rec.sb_report_flag;
306 l_oke_chr_rec.nte_amount := p_chr_rec.nte_amount;
307 l_oke_chr_rec.nte_warning_flag := p_chr_rec.nte_warning_flag;
308 l_oke_chr_rec.bill_without_def_flag := p_chr_rec.bill_without_def_flag;
309 l_oke_chr_rec.cas_flag := p_chr_rec.cas_flag;
310 l_oke_chr_rec.classified_flag := p_chr_rec.classified_flag;
311 l_oke_chr_rec.client_approve_req_flag := p_chr_rec.client_approve_req_flag;
312 l_oke_chr_rec.cost_of_money := p_chr_rec.cost_of_money;
313 l_oke_chr_rec.dcaa_audit_req_flag := p_chr_rec.dcaa_audit_req_flag;
314 l_oke_chr_rec.cost_share_flag := p_chr_rec.cost_share_flag;
315 l_oke_chr_rec.oh_rates_final_flag := p_chr_rec.oh_rates_final_flag;
316 l_oke_chr_rec.prop_delivery_location := p_chr_rec.prop_delivery_location;
317 l_oke_chr_rec.prop_due_date_time := p_chr_rec.prop_due_date_time;
318 l_oke_chr_rec.prop_expire_date := p_chr_rec.prop_expire_date;
319 l_oke_chr_rec.copies_required := p_chr_rec.copies_required;
320 l_oke_chr_rec.sic_code := p_chr_rec.sic_code;
321 l_oke_chr_rec.tech_data_wh_rate := p_chr_rec.tech_data_wh_rate;
322 l_oke_chr_rec.progress_payment_flag := p_chr_rec.progress_payment_flag;
323 l_oke_chr_rec.progress_payment_liq_rate:=p_chr_rec.progress_payment_liq_rate;
324 l_oke_chr_rec.progress_payment_rate := p_chr_rec.progress_payment_rate;
325 l_oke_chr_rec.alternate_liquidation_rate:=p_chr_rec.alternate_liquidation_rate;
326 l_oke_chr_rec.prop_due_time := p_chr_rec.prop_due_time;
327 l_oke_chr_rec.definitized_flag := p_chr_rec.definitized_flag;
328 l_oke_chr_rec.financial_ctrl_verified_flag := p_chr_rec.financial_ctrl_verified_flag;
329 l_oke_chr_rec.cost_of_sale_rate := p_chr_rec.cost_of_sale_rate;
330 l_oke_chr_rec.created_by := p_chr_rec.created_by;
331 l_oke_chr_rec.creation_date := p_chr_rec.creation_date;
332 l_oke_chr_rec.last_updated_by := p_chr_rec.last_updated_by;
333 l_oke_chr_rec.last_update_login := p_chr_rec.last_update_login;
334 l_oke_chr_rec.last_update_date := p_chr_rec.last_update_date;
335 l_oke_chr_rec.line_value_total := p_chr_rec.line_value_total;
336 l_oke_chr_rec.undef_line_value_total := p_chr_rec.undef_line_value_total;
337 l_oke_chr_rec.owning_organization_id := p_chr_rec.owning_organization_id;
338
339
340 l_okc_chrv_rec.id := p_chr_rec.k_header_id;
341 l_okc_chrv_rec.object_version_number := p_chr_rec.object_version_number;
342 l_okc_chrv_rec.sfwt_flag := p_chr_rec.sfwt_flag;
343 l_okc_chrv_rec.chr_id_response := p_chr_rec.chr_id_response;
344 l_okc_chrv_rec.chr_id_award := p_chr_rec.chr_id_award;
345
346 l_okc_chrv_rec.INV_ORGANIZATION_ID := p_chr_rec.INV_ORGANIZATION_ID;
347 l_okc_chrv_rec.sts_code := p_chr_rec.sts_code;
348 l_okc_chrv_rec.qcl_id := p_chr_rec.qcl_id;
349 l_okc_chrv_rec.scs_code := p_chr_rec.scs_code;
350 l_okc_chrv_rec.contract_number := p_chr_rec.contract_number;
351 l_okc_chrv_rec.currency_code := p_chr_rec.currency_code;
352 l_okc_chrv_rec.contract_number_modifier := p_chr_rec.contract_number_modifier;
353 l_okc_chrv_rec.archived_yn := p_chr_rec.archived_yn;
354 l_okc_chrv_rec.deleted_yn := p_chr_rec.deleted_yn;
355 l_okc_chrv_rec.cust_po_number_req_yn := p_chr_rec.cust_po_number_req_yn;
356 l_okc_chrv_rec.pre_pay_req_yn := p_chr_rec.pre_pay_req_yn;
357 l_okc_chrv_rec.cust_po_number := p_chr_rec.cust_po_number;
358 l_okc_chrv_rec.short_description := p_chr_rec.short_description;
359 l_okc_chrv_rec.comments := p_chr_rec.comments;
360 l_okc_chrv_rec.description := p_chr_rec.description;
361 l_okc_chrv_rec.dpas_rating := p_chr_rec.dpas_rating;
362 l_okc_chrv_rec.cognomen := p_chr_rec.cognomen;
363 l_okc_chrv_rec.template_yn := p_chr_rec.template_yn;
364 l_okc_chrv_rec.template_used := p_chr_rec.template_used;
365 l_okc_chrv_rec.date_approved := p_chr_rec.date_approved;
366 l_okc_chrv_rec.datetime_cancelled := p_chr_rec.datetime_cancelled;
367 l_okc_chrv_rec.auto_renew_days := p_chr_rec.auto_renew_days;
368 l_okc_chrv_rec.date_issued := p_chr_rec.date_issued;
369 l_okc_chrv_rec.datetime_responded := p_chr_rec.datetime_responded;
370 l_okc_chrv_rec.non_response_reason := p_chr_rec.non_response_reason;
371 l_okc_chrv_rec.non_response_explain := p_chr_rec.non_response_explain;
372 l_okc_chrv_rec.rfp_type := p_chr_rec.rfp_type;
373 l_okc_chrv_rec.chr_type := p_chr_rec.chr_type;
374 l_okc_chrv_rec.keep_on_mail_list := p_chr_rec. keep_on_mail_list;
375 l_okc_chrv_rec.set_aside_reason := p_chr_rec.set_aside_reason;
376 l_okc_chrv_rec.set_aside_percent := p_chr_rec.set_aside_percent;
377 l_okc_chrv_rec.response_copies_req := p_chr_rec.response_copies_req;
378 l_okc_chrv_rec.date_close_projected := p_chr_rec.date_close_projected;
379 l_okc_chrv_rec.datetime_proposed := p_chr_rec.datetime_proposed;
380 l_okc_chrv_rec.date_signed := p_chr_rec.date_signed;
381 l_okc_chrv_rec.date_terminated := p_chr_rec.date_terminated;
382 l_okc_chrv_rec.date_renewed := p_chr_rec.date_renewed;
383 l_okc_chrv_rec.trn_code := p_chr_rec.trn_code;
384 l_okc_chrv_rec.start_date := p_chr_rec.start_date;
385 l_okc_chrv_rec.end_date := p_chr_rec.end_date;
386 l_okc_chrv_rec.authoring_org_id := p_chr_rec.authoring_org_id;
387 l_okc_chrv_rec.buy_or_sell := p_chr_rec.buy_or_sell;
388 l_okc_chrv_rec.issue_or_receive := p_chr_rec.issue_or_receive;
389 l_okc_chrv_rec.estimated_amount := p_chr_rec.estimated_amount;
390
391 l_okc_chrv_rec.estimated_amount_renewed := p_chr_rec.estimated_amount_renewed;
392 l_okc_chrv_rec.currency_code_renewed := p_chr_rec.currency_code_renewed;
393 l_okc_chrv_rec.upg_orig_system_ref := p_chr_rec.upg_orig_system_ref;
394 l_okc_chrv_rec.upg_orig_system_ref_id := p_chr_rec.upg_orig_system_ref_id;
395 l_okc_chrv_rec.attribute_category := p_chr_rec.attribute_category;
396 l_okc_chrv_rec.attribute1 := p_chr_rec.attribute1;
397 l_okc_chrv_rec.attribute2 := p_chr_rec.attribute2;
398 l_okc_chrv_rec.attribute3 := p_chr_rec.attribute3;
399 l_okc_chrv_rec.attribute4 := p_chr_rec.attribute4;
400 l_okc_chrv_rec.attribute5 := p_chr_rec.attribute5;
401 l_okc_chrv_rec.attribute6 := p_chr_rec.attribute6;
402 l_okc_chrv_rec.attribute7 := p_chr_rec.attribute7;
403 l_okc_chrv_rec.attribute8 := p_chr_rec.attribute8;
404 l_okc_chrv_rec.attribute9 := p_chr_rec.attribute9;
405 l_okc_chrv_rec.attribute10 := p_chr_rec.attribute10;
406 l_okc_chrv_rec.attribute11 := p_chr_rec.attribute11;
407 l_okc_chrv_rec.attribute12 := p_chr_rec.attribute12;
408 l_okc_chrv_rec.attribute13 := p_chr_rec.attribute13;
409 l_okc_chrv_rec.attribute14 := p_chr_rec.attribute14;
410 l_okc_chrv_rec.attribute15 := p_chr_rec.attribute15;
411 l_okc_chrv_rec.created_by := p_chr_rec.created_by;
412 l_okc_chrv_rec.creation_date := p_chr_rec.creation_date;
413 l_okc_chrv_rec.last_updated_by := p_chr_rec.last_updated_by;
414 l_okc_chrv_rec.last_update_date := p_chr_rec.last_update_date;
415 l_okc_chrv_rec.last_update_login := p_chr_rec.last_update_login;
416
417
418
419
420 If nvl(p_ignore_oke_validation,'N') = 'N' then
421 Validate_OKC_header_fields ( l_return_status, p_chr_rec );
422
423 --- If any errors happen abort API
424 IF (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) THEN
425 RAISE OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
426 ELSIF (l_return_status = OKE_API.G_RET_STS_ERROR) THEN
427 RAISE OKE_API.G_EXCEPTION_ERROR;
428 END IF;
429 end if;
430
431 -- assign mandatory values
432 l_okc_chrv_rec.archived_yn := 'N';
433 l_okc_chrv_rec.deleted_yn := 'N';
434 l_okc_chrv_rec.scs_code := 'PROJECT';
435
436
437
438
439 OKE_CONTRACT_PUB.create_contract_header(
440 p_api_version => p_api_version,
441 p_init_msg_list => p_init_msg_list,
442 x_return_status => x_return_status,
443 x_msg_count => x_msg_count,
444 x_msg_data => x_msg_data,
445 p_chr_rec => l_oke_chr_rec,
446 p_chrv_rec => l_okc_chrv_rec,
447 x_chr_rec => l_out_chr,
448 x_chrv_rec => l_out_chrv );
449
450 If (x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
451 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
452 Elsif (x_return_status = OKE_API.G_RET_STS_ERROR) then
453 raise OKE_API.G_EXCEPTION_ERROR;
454 End If;
455
456
457
458 -- Added code to update who columns. neccessary for security to work after import process.
459
460 IF p_chr_rec.created_by <> OKE_API.G_MISS_NUM AND p_chr_rec.created_by IS NOT NULL THEN
461 UPDATE OKE_K_HEADERS SET CREATED_BY = p_chr_rec.created_by
462 WHERE K_HEADER_ID = l_out_chr.k_header_id;
463 END IF;
464 IF p_chr_rec.creation_date <> OKE_API.G_MISS_DATE AND p_chr_rec.creation_date IS NOT NULL THEN
465 UPDATE OKE_K_HEADERS SET CREATION_DATE = p_chr_rec.creation_date
466 WHERE K_HEADER_ID = l_out_chr.k_header_id;
467 END IF;
468 IF p_chr_rec.last_updated_by <> OKE_API.G_MISS_NUM AND p_chr_rec.last_updated_by IS NOT NULL THEN
469 UPDATE OKE_K_HEADERS SET LAST_UPDATED_BY = p_chr_rec.last_updated_by
470 WHERE K_HEADER_ID = l_out_chr.k_header_id;
471 END IF;
472 IF p_chr_rec.last_update_login <> OKE_API.G_MISS_NUM AND p_chr_rec.last_update_login IS NOT NULL THEN
473 UPDATE OKE_K_HEADERS SET LAST_UPDATE_LOGIN = p_chr_rec.last_update_login
474 WHERE K_HEADER_ID = l_out_chr.k_header_id;
475 END IF;
476 IF p_chr_rec.last_update_date <> OKE_API.G_MISS_DATE AND p_chr_rec.last_update_date IS NOT NULL THEN
477 UPDATE OKE_K_HEADERS SET LAST_UPDATE_DATE = p_chr_rec.last_update_date
478 WHERE K_HEADER_ID = l_out_chr.k_header_id;
479 END IF;
480
481 -- Added code to update who columns. neccessary for security to work after import process.
482
483
484
485 -- oke stuff
486
487 x_chr_rec.k_header_id := l_out_chr.k_header_id;
488 x_chr_rec.program_id := l_out_chr.program_id;
489 x_chr_rec.project_id := l_out_chr.project_id;
490 x_chr_rec.boa_id := l_out_chr.boa_id;
491 x_chr_rec.k_type_code := l_out_chr.k_type_code;
492 x_chr_rec.priority_code := l_out_chr.priority_code;
493 x_chr_rec.prime_k_alias := l_out_chr.prime_k_alias;
494 x_chr_rec.prime_k_number := l_out_chr.prime_k_number;
495 x_chr_rec.authorize_date := l_out_chr.authorize_date;
496 x_chr_rec.authorizing_reason := l_out_chr.authorizing_reason;
497 x_chr_rec.award_cancel_date := l_out_chr.award_cancel_date;
498 x_chr_rec.award_date := l_out_chr.award_date;
499 x_chr_rec.date_definitized := l_out_chr.date_definitized;
500 x_chr_rec.date_issued := l_out_chr.date_issued;
501 x_chr_rec.date_negotiated := l_out_chr.date_negotiated;
502 x_chr_rec.date_received := l_out_chr.date_received;
503 x_chr_rec.date_sign_by_contractor := l_out_chr.date_sign_by_contractor;
504 x_chr_rec.date_sign_by_customer := l_out_chr.date_sign_by_customer;
505 x_chr_rec.faa_approve_date := l_out_chr.faa_approve_date;
506 x_chr_rec.faa_reject_date := l_out_chr.faa_reject_date;
507 x_chr_rec.booked_flag := l_out_chr.booked_flag;
508 x_chr_rec.open_flag := l_out_chr.open_flag;
509 x_chr_rec.cfe_flag := l_out_chr.cfe_flag;
510 x_chr_rec.vat_code := l_out_chr.vat_code;
511 x_chr_rec.country_of_origin_code := l_out_chr.country_of_origin_code;
512 x_chr_rec.export_flag := l_out_chr.export_flag;
513 x_chr_rec.human_subject_flag := l_out_chr.human_subject_flag;
514 x_chr_rec.cqa_flag := l_out_chr.cqa_flag;
515 x_chr_rec.interim_rpt_req_flag := l_out_chr.interim_rpt_req_flag;
516 x_chr_rec.no_competition_authorize := l_out_chr.no_competition_authorize;
517 x_chr_rec.penalty_clause_flag := l_out_chr.penalty_clause_flag;
518 x_chr_rec.product_line_code := l_out_chr.product_line_code;
519 x_chr_rec.reporting_flag := l_out_chr.reporting_flag;
520 x_chr_rec.sb_plan_req_flag := l_out_chr.sb_plan_req_flag;
521 x_chr_rec.sb_report_flag := l_out_chr.sb_report_flag;
522 x_chr_rec.nte_amount := l_out_chr.nte_amount;
523 x_chr_rec.nte_warning_flag := l_out_chr.nte_warning_flag;
524 x_chr_rec.bill_without_def_flag := l_out_chr.bill_without_def_flag;
525 x_chr_rec.cas_flag := l_out_chr.cas_flag;
526 x_chr_rec.classified_flag := l_out_chr.classified_flag;
527 x_chr_rec.client_approve_req_flag := l_out_chr.client_approve_req_flag;
528 x_chr_rec.cost_of_money := l_out_chr.cost_of_money;
529 x_chr_rec.dcaa_audit_req_flag := l_out_chr.dcaa_audit_req_flag;
530 x_chr_rec.cost_share_flag := l_out_chr.cost_share_flag;
531 x_chr_rec.oh_rates_final_flag := l_out_chr.oh_rates_final_flag;
532 x_chr_rec.prop_delivery_location := l_out_chr.prop_delivery_location;
533 x_chr_rec.prop_due_date_time := l_out_chr.prop_due_date_time;
534 x_chr_rec.prop_expire_date := l_out_chr.prop_expire_date;
535 x_chr_rec.copies_required := l_out_chr.copies_required;
536 x_chr_rec.sic_code := l_out_chr.sic_code;
537 x_chr_rec.tech_data_wh_rate := l_out_chr.tech_data_wh_rate;
538 x_chr_rec.progress_payment_flag := l_out_chr.progress_payment_flag;
539 x_chr_rec.progress_payment_liq_rate := l_out_chr.progress_payment_liq_rate;
540 x_chr_rec.progress_payment_rate := l_out_chr.progress_payment_rate;
541 x_chr_rec.alternate_liquidation_rate := l_out_chr.alternate_liquidation_rate;
542 x_chr_rec.prop_due_time := l_out_chr.prop_due_time;
543 x_chr_rec.definitized_flag := l_out_chr.definitized_flag;
544 x_chr_rec.financial_ctrl_verified_flag:= l_out_chr.financial_ctrl_verified_flag;
545 x_chr_rec.cost_of_sale_rate := l_out_chr.cost_of_sale_rate;
546 x_chr_rec.created_by := l_out_chr.created_by;
547 x_chr_rec.creation_date := l_out_chr.creation_date;
548 x_chr_rec.last_updated_by := l_out_chr.last_updated_by;
549 x_chr_rec.last_update_login := l_out_chr.last_update_login;
550 x_chr_rec.last_update_date := l_out_chr.last_update_date;
551 x_chr_rec.line_value_total := l_out_chr.line_value_total;
552 x_chr_rec.undef_line_value_total := l_out_chr.undef_line_value_total;
553 x_chr_rec.owning_organization_id := l_out_chr.owning_organization_id;
554
555
556
557 -- okc stuff
558 -- being later thereby overwriting the oke stuff if there is duplicate fields
559
560 x_chr_rec.k_header_id := l_out_chrv.id;
561 x_chr_rec.object_version_number := l_out_chrv.object_version_number;
562 x_chr_rec.sfwt_flag := l_out_chrv.sfwt_flag;
563 x_chr_rec.chr_id_response := l_out_chrv.chr_id_response;
564 x_chr_rec.chr_id_award := l_out_chrv.chr_id_award;
565
566 x_chr_rec.INV_ORGANIZATION_ID := l_out_chrv.INV_ORGANIZATION_ID;
567 x_chr_rec.sts_code := l_out_chrv.sts_code;
568 x_chr_rec.qcl_id := l_out_chrv.qcl_id;
569 x_chr_rec.scs_code := l_out_chrv.scs_code;
570 x_chr_rec.contract_number := l_out_chrv.contract_number;
571 x_chr_rec.currency_code := l_out_chrv.currency_code;
572 x_chr_rec.contract_number_modifier := l_out_chrv.contract_number_modifier;
573 x_chr_rec.archived_yn := l_out_chrv.archived_yn;
574 x_chr_rec.deleted_yn := l_out_chrv.deleted_yn;
575 x_chr_rec.cust_po_number_req_yn := l_out_chrv.cust_po_number_req_yn;
576 x_chr_rec.pre_pay_req_yn := l_out_chrv.pre_pay_req_yn;
577 x_chr_rec.cust_po_number := l_out_chrv.cust_po_number;
578 x_chr_rec.short_description := l_out_chrv.short_description;
579 x_chr_rec.comments := l_out_chrv.comments;
580 x_chr_rec.description := l_out_chrv.description;
581 x_chr_rec.dpas_rating := l_out_chrv.dpas_rating;
582 x_chr_rec.cognomen := l_out_chrv.cognomen;
583 x_chr_rec.template_yn := l_out_chrv.template_yn;
584 x_chr_rec.template_used := l_out_chrv.template_used;
585 x_chr_rec.date_approved := l_out_chrv.date_approved;
586 x_chr_rec.datetime_cancelled := l_out_chrv.datetime_cancelled;
587 x_chr_rec.auto_renew_days := l_out_chrv.auto_renew_days;
588 x_chr_rec.date_issued := l_out_chrv.date_issued;
589 x_chr_rec.datetime_responded := l_out_chrv.datetime_responded;
590 x_chr_rec.non_response_reason := l_out_chrv.non_response_reason;
591 x_chr_rec.non_response_explain := l_out_chrv.non_response_explain;
592 x_chr_rec.rfp_type := l_out_chrv.rfp_type;
593 x_chr_rec.chr_type := l_out_chrv.chr_type;
594 x_chr_rec.keep_on_mail_list := l_out_chrv. keep_on_mail_list;
595 x_chr_rec.set_aside_reason := l_out_chrv.set_aside_reason;
596 x_chr_rec.set_aside_percent := l_out_chrv.set_aside_percent;
597 x_chr_rec.response_copies_req := l_out_chrv.response_copies_req;
598 x_chr_rec.date_close_projected := l_out_chrv.date_close_projected;
599 x_chr_rec.datetime_proposed := l_out_chrv.datetime_proposed;
600 x_chr_rec.date_signed := l_out_chrv.date_signed;
601 x_chr_rec.date_terminated := l_out_chrv.date_terminated;
602 x_chr_rec.date_renewed := l_out_chrv.date_renewed;
603 x_chr_rec.trn_code := l_out_chrv.trn_code;
604 x_chr_rec.start_date := l_out_chrv.start_date;
605 x_chr_rec.end_date := l_out_chrv.end_date;
606 x_chr_rec.authoring_org_id := l_out_chrv.authoring_org_id;
607 x_chr_rec.buy_or_sell := l_out_chrv.buy_or_sell;
608 x_chr_rec.issue_or_receive := l_out_chrv.issue_or_receive;
609 x_chr_rec.estimated_amount := l_out_chrv.estimated_amount;
610
611 x_chr_rec.estimated_amount_renewed := l_out_chrv.estimated_amount_renewed;
612 x_chr_rec.currency_code_renewed := l_out_chrv.currency_code_renewed;
613 x_chr_rec.upg_orig_system_ref := l_out_chrv.upg_orig_system_ref;
614 x_chr_rec.upg_orig_system_ref_id := l_out_chrv.upg_orig_system_ref_id;
615 x_chr_rec.attribute_category := l_out_chrv.attribute_category;
616 x_chr_rec.attribute1 := l_out_chrv.attribute1;
617 x_chr_rec.attribute2 := l_out_chrv.attribute2;
618 x_chr_rec.attribute3 := l_out_chrv.attribute3;
619 x_chr_rec.attribute4 := l_out_chrv.attribute4;
620 x_chr_rec.attribute5 := l_out_chrv.attribute5;
621 x_chr_rec.attribute6 := l_out_chrv.attribute6;
622 x_chr_rec.attribute7 := l_out_chrv.attribute7;
623 x_chr_rec.attribute8 := l_out_chrv.attribute8;
624 x_chr_rec.attribute9 := l_out_chrv.attribute9;
625 x_chr_rec.attribute10 := l_out_chrv.attribute10;
626 x_chr_rec.attribute11 := l_out_chrv.attribute11;
627 x_chr_rec.attribute12 := l_out_chrv.attribute12;
628 x_chr_rec.attribute13 := l_out_chrv.attribute13;
629 x_chr_rec.attribute14 := l_out_chrv.attribute14;
630 x_chr_rec.attribute15 := l_out_chrv.attribute15;
631 x_chr_rec.created_by := l_out_chrv.created_by;
632 x_chr_rec.creation_date := l_out_chrv.creation_date;
633 x_chr_rec.last_updated_by := l_out_chrv.last_updated_by;
634 x_chr_rec.last_update_date := l_out_chrv.last_update_date;
635 x_chr_rec.last_update_login := l_out_chrv.last_update_login;
636
637
638
639 OKE_API.END_ACTIVITY( x_msg_count => x_msg_count,
640 x_msg_data => x_msg_data);
641 EXCEPTION
642 when OKE_API.G_EXCEPTION_ERROR then
643 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
644 p_api_name => l_api_name,
645 p_pkg_name => g_pkg_name,
646 p_exc_name => 'OKE_API.G_RET_STS_ERROR',
647 x_msg_count => x_msg_count,
648 x_msg_data => x_msg_data,
649 p_api_type => g_api_type);
650
651 when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
652 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
653 p_api_name => l_api_name,
654 p_pkg_name => g_pkg_name,
655 p_exc_name => 'OKE_API.G_RET_STS_UNEXP_ERROR',
656 x_msg_count => x_msg_count,
657 x_msg_data => x_msg_data,
658 p_api_type => g_api_type);
659
660 when OTHERS then
661 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
662 p_api_name => l_api_name,
663 p_pkg_name => g_pkg_name,
664 p_exc_name => 'OTHERS',
665 x_msg_count => x_msg_count,
666 x_msg_data => x_msg_data,
667 p_api_type => g_api_type);
668
669 END create_contract_header;
670
671
672
673
674 PROCEDURE create_contract_line(
675
676 p_api_version IN NUMBER,
677 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
678 x_return_status OUT NOCOPY VARCHAR2,
679 x_msg_count OUT NOCOPY NUMBER,
680 x_msg_data OUT NOCOPY VARCHAR2,
681
682 p_cle_rec IN cle_rec_type,
683 x_cle_rec OUT NOCOPY cle_rec_type) IS
684
685 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_CONTRACT_LINE';
686 l_api_version CONSTANT NUMBER := 1.0;
687 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
688
689 l_okc_clev_rec OKC_CONTRACT_PUB.clev_rec_type;
690 l_oke_cle_rec OKE_CONTRACT_PUB.cle_rec_type;
691 l_out_clev OKC_CONTRACT_PUB.clev_rec_type;
692 l_out_cle OKE_CONTRACT_PUB.cle_rec_type;
693
694 l_cimv_rec CIMV_REC_TYPE;
695 l_cimv_out CIMV_REC_TYPE;
696 l_inv_Org NUMBER;
697
698 CURSOR get_inventory_org (p_chr NUMBER) IS
699 SELECT inv_organization_id
700 FROM OKC_K_HEADERS_B
701 WHERE ID = p_chr;
702
703
704 BEGIN
705 -- call START_ACTIVITY to create savepoint, check compatibility
706 -- and initialize message list
707 l_return_status := OKE_API.START_ACTIVITY(
708 p_api_name => l_api_name,
709 p_pkg_name => g_pkg_name,
710 p_init_msg_list => p_init_msg_list,
711 l_api_version => l_api_version,
712 p_api_version => p_api_version,
713 p_api_type => g_api_type,
714 x_return_status => x_return_status);
715
716 -- check if activity started successfully
717 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
718 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
719 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
720 raise OKE_API.G_EXCEPTION_ERROR;
721 End If;
722
723
724
725
726 l_oke_cle_rec.k_line_id := p_cle_rec.k_line_id;
727 l_oke_cle_rec.parent_line_id := p_cle_rec.parent_line_id;
728 l_oke_cle_rec.project_id := p_cle_rec.project_id;
729 l_oke_cle_rec.task_id := p_cle_rec.task_id;
730 l_oke_cle_rec.billing_method_code := p_cle_rec.billing_method_code;
731 l_oke_cle_rec.inventory_item_id := p_cle_rec.inventory_item_id;
732 l_oke_cle_rec.delivery_order_flag := p_cle_rec.delivery_order_flag;
733 l_oke_cle_rec.splited_flag := p_cle_rec.splited_flag;
734 l_oke_cle_rec.priority_code := p_cle_rec.priority_code;
735 l_oke_cle_rec.customer_item_id := p_cle_rec.customer_item_id;
736 l_oke_cle_rec.customer_item_number := p_cle_rec.customer_item_number;
737 l_oke_cle_rec.line_quantity := p_cle_rec.line_quantity;
738 l_oke_cle_rec.delivery_date := p_cle_rec.delivery_date;
739 l_oke_cle_rec.unit_price := p_cle_rec.unit_price;
740 l_oke_cle_rec.uom_code := p_cle_rec.uom_code;
741 l_oke_cle_rec.billable_flag := p_cle_rec.billable_flag;
742 l_oke_cle_rec.shippable_flag := p_cle_rec.shippable_flag;
743 l_oke_cle_rec.subcontracted_flag := p_cle_rec.subcontracted_flag;
744 l_oke_cle_rec.completed_flag := p_cle_rec.completed_flag;
745 l_oke_cle_rec.nsp_flag := p_cle_rec.nsp_flag;
746 l_oke_cle_rec.app_code := p_cle_rec.app_code;
747 l_oke_cle_rec.as_of_date := p_cle_rec.as_of_date;
748 l_oke_cle_rec.authority := p_cle_rec.authority;
749 l_oke_cle_rec.country_of_origin_code := p_cle_rec.country_of_origin_code;
750 l_oke_cle_rec.drop_shipped_flag := p_cle_rec.drop_shipped_flag;
751 l_oke_cle_rec.customer_approval_req_flag := p_cle_rec.customer_approval_req_flag;
752 l_oke_cle_rec.date_material_req := p_cle_rec.date_material_req;
753 l_oke_cle_rec.inspection_req_flag := p_cle_rec.inspection_req_flag;
754 l_oke_cle_rec.interim_rpt_req_flag := p_cle_rec.interim_rpt_req_flag;
755 l_oke_cle_rec.subj_a133_flag := p_cle_rec.subj_a133_flag;
756 l_oke_cle_rec.export_flag := p_cle_rec.export_flag;
757 l_oke_cle_rec.cfe_req_flag := p_cle_rec.cfe_req_flag;
758 l_oke_cle_rec.cop_required_flag := p_cle_rec.cop_required_flag;
759 l_oke_cle_rec.export_license_num := p_cle_rec.export_license_num;
760 l_oke_cle_rec.export_license_res := p_cle_rec.export_license_res;
761 l_oke_cle_rec.copies_required := p_cle_rec.copies_required;
762 l_oke_cle_rec.cdrl_category := p_cle_rec.cdrl_category;
763 l_oke_cle_rec.data_item_name := p_cle_rec.data_item_name;
764 l_oke_cle_rec.data_item_subtitle := p_cle_rec.data_item_subtitle;
765 l_oke_cle_rec.date_of_first_submission:= p_cle_rec.date_of_first_submission;
766 l_oke_cle_rec.frequency := p_cle_rec.frequency;
767 l_oke_cle_rec.requiring_office := p_cle_rec.requiring_office;
768 l_oke_cle_rec.dcaa_audit_req_flag := p_cle_rec.dcaa_audit_req_flag;
769 l_oke_cle_rec.definitized_flag := p_cle_rec.definitized_flag;
770 l_oke_cle_rec.cost_of_money := p_cle_rec.cost_of_money;
771 l_oke_cle_rec.bill_undefinitized_flag := p_cle_rec.bill_undefinitized_flag;
772 l_oke_cle_rec.nsn_number := p_cle_rec.nsn_number;
773 l_oke_cle_rec.nte_warning_flag := p_cle_rec.nte_warning_flag;
774 l_oke_cle_rec.discount_for_payment := p_cle_rec.discount_for_payment;
775 l_oke_cle_rec.financial_ctrl_flag := p_cle_rec.financial_ctrl_flag;
776 l_oke_cle_rec.c_scs_flag := p_cle_rec.c_scs_flag;
777 l_oke_cle_rec.c_ssr_flag := p_cle_rec.c_ssr_flag;
778 l_oke_cle_rec.prepayment_amount := p_cle_rec.prepayment_amount;
779 l_oke_cle_rec.prepayment_percentage := p_cle_rec.prepayment_percentage;
780 l_oke_cle_rec.progress_payment_flag := p_cle_rec.progress_payment_flag;
781 l_oke_cle_rec.progress_payment_liq_rate := p_cle_rec.progress_payment_liq_rate;
782 l_oke_cle_rec.progress_payment_rate := p_cle_rec.progress_payment_rate;
783 l_oke_cle_rec.award_fee := p_cle_rec.award_fee;
784 l_oke_cle_rec.award_fee_pool_amount := p_cle_rec.award_fee_pool_amount;
785 l_oke_cle_rec.base_fee := p_cle_rec.base_fee;
786 l_oke_cle_rec.ceiling_cost := p_cle_rec.ceiling_cost;
787 l_oke_cle_rec.ceiling_price := p_cle_rec.ceiling_price;
788 l_oke_cle_rec.labor_cost_index := p_cle_rec.labor_cost_index;
789 l_oke_cle_rec.material_cost_index := p_cle_rec.material_cost_index;
790 l_oke_cle_rec.customers_percent_in_order := p_cle_rec.customers_percent_in_order;
791 l_oke_cle_rec.cost_overrun_share_ratio := p_cle_rec.cost_overrun_share_ratio;
792 l_oke_cle_rec.cost_underrun_share_ratio := p_cle_rec.cost_underrun_share_ratio;
793 l_oke_cle_rec.date_of_price_redetermin := p_cle_rec.date_of_price_redetermin;
794 l_oke_cle_rec.estimated_total_quantity := p_cle_rec.estimated_total_quantity;
795 l_oke_cle_rec.fee_ajt_formula := p_cle_rec.fee_ajt_formula;
796 l_oke_cle_rec.final_fee := p_cle_rec.final_fee;
797 l_oke_cle_rec.final_pft_ajt_formula := p_cle_rec.final_pft_ajt_formula;
798 l_oke_cle_rec.fixed_fee := p_cle_rec.fixed_fee;
799 l_oke_cle_rec.fixed_quantity := p_cle_rec.fixed_quantity;
800 l_oke_cle_rec.initial_fee := p_cle_rec.initial_fee;
801 l_oke_cle_rec.initial_price := p_cle_rec.initial_price;
802 l_oke_cle_rec.level_of_effort_hours := p_cle_rec.level_of_effort_hours;
803 l_oke_cle_rec.line_liquidation_rate := p_cle_rec.line_liquidation_rate;
804 l_oke_cle_rec.maximum_fee := p_cle_rec.maximum_fee;
805 l_oke_cle_rec.maximum_quantity := p_cle_rec.maximum_quantity;
806 l_oke_cle_rec.minimum_fee := p_cle_rec.minimum_fee;
807 l_oke_cle_rec.minimum_quantity := p_cle_rec.minimum_quantity;
808 l_oke_cle_rec.number_of_options := p_cle_rec.number_of_options;
809 l_oke_cle_rec.revised_price := p_cle_rec.revised_price;
810 l_oke_cle_rec.target_cost := p_cle_rec.target_cost;
811 l_oke_cle_rec.target_date_definitize := p_cle_rec.target_date_definitize;
812 l_oke_cle_rec.target_fee := p_cle_rec.target_fee;
813 l_oke_cle_rec.target_price := p_cle_rec.target_price;
814 l_oke_cle_rec.total_estimated_cost := p_cle_rec.total_estimated_cost;
815 l_oke_cle_rec.proposal_due_date := p_cle_rec.proposal_due_date;
816 l_oke_cle_rec.cost_of_sale_rate := p_cle_rec.cost_of_sale_rate;
817 l_oke_cle_rec.created_by := p_cle_rec.created_by;
818 l_oke_cle_rec.creation_date := p_cle_rec.creation_date;
819 l_oke_cle_rec.last_updated_by := p_cle_rec.last_updated_by;
820 l_oke_cle_rec.last_update_login := p_cle_rec.last_update_login;
821 l_oke_cle_rec.last_update_date := p_cle_rec.last_update_date;
822 l_oke_cle_rec.line_value := p_cle_rec.line_value;
823 l_oke_cle_rec.line_value_total := p_cle_rec.line_value_total;
824 l_oke_cle_rec.end_date := p_cle_rec.end_date;
825
826 l_oke_cle_rec.undef_line_value := p_cle_rec.undef_line_value;
827 l_oke_cle_rec.undef_line_value_total := p_cle_rec.undef_line_value_total;
828 l_oke_cle_rec.undef_unit_price := p_cle_rec.undef_unit_price;
829
830 l_okc_clev_rec.id := p_cle_rec.k_line_id;
831 l_okc_clev_rec.object_version_number := p_cle_rec.object_version_number;
832 l_okc_clev_rec.sfwt_flag := p_cle_rec.sfwt_flag;
833 l_okc_clev_rec.chr_id := p_cle_rec.chr_id;
834 l_okc_clev_rec.cle_id := p_cle_rec.cle_id;
835 l_okc_clev_rec.lse_id := p_cle_rec.lse_id;
836 l_okc_clev_rec.line_number := p_cle_rec.line_number;
837 l_okc_clev_rec.sts_code := p_cle_rec.sts_code;
838 l_okc_clev_rec.display_sequence := p_cle_rec.display_sequence;
839 l_okc_clev_rec.trn_code := p_cle_rec.trn_code ;
840 l_okc_clev_rec.dnz_chr_id := p_cle_rec.dnz_chr_id ;
841 l_okc_clev_rec.comments := p_cle_rec.comments ;
842 l_okc_clev_rec.item_description := p_cle_rec.item_description ;
843 l_okc_clev_rec.oke_boe_description := p_cle_rec.oke_boe_description;
844 l_okc_clev_rec.hidden_ind := p_cle_rec.hidden_ind ;
845 l_okc_clev_rec.price_unit := p_cle_rec.price_unit;
846 l_okc_clev_rec.price_unit_percent := p_cle_rec.price_unit_percent;
847 l_okc_clev_rec.price_negotiated := p_cle_rec.price_negotiated;
848 l_okc_clev_rec.price_negotiated_renewed := p_cle_rec.price_negotiated_renewed;
849 l_okc_clev_rec.price_level_ind := p_cle_rec.price_level_ind;
850 l_okc_clev_rec.invoice_line_level_ind := p_cle_rec.invoice_line_level_ind;
851 l_okc_clev_rec.dpas_rating := p_cle_rec.dpas_rating;
852 l_okc_clev_rec.block23text := p_cle_rec.block23text;
853 l_okc_clev_rec.exception_yn := p_cle_rec.exception_yn;
854 l_okc_clev_rec.template_used := p_cle_rec.template_used;
855 l_okc_clev_rec.date_terminated := p_cle_rec.date_terminated;
856 l_okc_clev_rec.name := p_cle_rec.name;
857 l_okc_clev_rec.start_date := p_cle_rec.start_date;
858
859 l_okc_clev_rec.upg_orig_system_ref := p_cle_rec.upg_orig_system_ref;
860 l_okc_clev_rec.upg_orig_system_ref_id := p_cle_rec.upg_orig_system_ref_id;
861 l_okc_clev_rec.attribute_category := p_cle_rec.attribute_category;
862 l_okc_clev_rec.attribute1 := p_cle_rec.attribute1;
863 l_okc_clev_rec.attribute2 := p_cle_rec.attribute2;
864 l_okc_clev_rec.attribute3 := p_cle_rec.attribute3;
865 l_okc_clev_rec.attribute4 := p_cle_rec.attribute4;
866 l_okc_clev_rec.attribute5 := p_cle_rec.attribute5;
867 l_okc_clev_rec.attribute6 := p_cle_rec.attribute6;
868 l_okc_clev_rec.attribute7 := p_cle_rec.attribute7;
869 l_okc_clev_rec.attribute8 := p_cle_rec.attribute8;
870 l_okc_clev_rec.attribute9 := p_cle_rec.attribute9;
871 l_okc_clev_rec.attribute10 := p_cle_rec.attribute10;
872 l_okc_clev_rec.attribute11 := p_cle_rec.attribute11;
873 l_okc_clev_rec.attribute12 := p_cle_rec.attribute12;
874 l_okc_clev_rec.attribute13 := p_cle_rec.attribute13;
875 l_okc_clev_rec.attribute14 := p_cle_rec.attribute14;
876 l_okc_clev_rec.attribute15 := p_cle_rec.attribute15;
877 l_okc_clev_rec.created_by := p_cle_rec.created_by;
878 l_okc_clev_rec.creation_date := p_cle_rec.creation_date;
879 l_okc_clev_rec.last_updated_by := p_cle_rec.last_updated_by;
880 l_okc_clev_rec.last_update_date := p_cle_rec.last_update_date;
881 l_okc_clev_rec.price_type := p_cle_rec.price_type;
882 l_okc_clev_rec.currency_code := p_cle_rec.currency_code;
883 l_okc_clev_rec.currency_code_renewed := p_cle_rec.currency_code_renewed;
884 l_okc_clev_rec.last_update_login := p_cle_rec.last_update_login;
885
886
887
888 Validate_OKC_line_fields ( l_return_status, p_cle_rec );
889
890 --- If any errors happen abort API
891 IF (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) THEN
892 RAISE OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
893 ELSIF (l_return_status = OKE_API.G_RET_STS_ERROR) THEN
894 RAISE OKE_API.G_EXCEPTION_ERROR;
895 END IF;
896
897
898 OKE_CONTRACT_PUB.create_contract_line(
899 p_api_version => p_api_version,
900 p_init_msg_list => p_init_msg_list,
901 x_return_status => x_return_status,
902 x_msg_count => x_msg_count,
903 x_msg_data => x_msg_data,
904 p_cle_rec => l_oke_cle_rec,
905 p_clev_rec => l_okc_clev_rec,
906 x_cle_rec => l_out_cle,
907 x_clev_rec => l_out_clev );
908
909 If (x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
910 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
911 Elsif (x_return_status = OKE_API.G_RET_STS_ERROR) then
912 raise OKE_API.G_EXCEPTION_ERROR;
913 End If;
914
915
916 x_cle_rec.k_line_id := l_out_cle.k_line_id;
917 x_cle_rec.parent_line_id := l_out_cle.parent_line_id;
918 x_cle_rec.project_id := l_out_cle.project_id;
919 x_cle_rec.task_id := l_out_cle.task_id;
920 x_cle_rec.billing_method_code := l_out_cle.billing_method_code;
921 x_cle_rec.inventory_item_id := l_out_cle.inventory_item_id;
922 x_cle_rec.delivery_order_flag := l_out_cle.delivery_order_flag;
923 x_cle_rec.splited_flag := l_out_cle.splited_flag;
924 x_cle_rec.priority_code := l_out_cle.priority_code;
925 x_cle_rec.customer_item_id := l_out_cle.customer_item_id;
926 x_cle_rec.customer_item_number := l_out_cle.customer_item_number;
927 x_cle_rec.line_quantity := l_out_cle.line_quantity;
928 x_cle_rec.delivery_date := l_out_cle.delivery_date;
929 x_cle_rec.unit_price := l_out_cle.unit_price;
930 x_cle_rec.uom_code := l_out_cle.uom_code;
931 x_cle_rec.billable_flag := l_out_cle.billable_flag;
932 x_cle_rec.shippable_flag := l_out_cle.shippable_flag;
933 x_cle_rec.subcontracted_flag := l_out_cle.subcontracted_flag;
934 x_cle_rec.completed_flag := l_out_cle.completed_flag;
935 x_cle_rec.nsp_flag := l_out_cle.nsp_flag;
936 x_cle_rec.app_code := l_out_cle.app_code;
937 x_cle_rec.as_of_date := l_out_cle.as_of_date;
938 x_cle_rec.authority := l_out_cle.authority;
939 x_cle_rec.country_of_origin_code := l_out_cle.country_of_origin_code;
940 x_cle_rec.drop_shipped_flag := l_out_cle.drop_shipped_flag;
941 x_cle_rec.customer_approval_req_flag := l_out_cle.customer_approval_req_flag;
942 x_cle_rec.date_material_req := l_out_cle.date_material_req;
943 x_cle_rec.inspection_req_flag := l_out_cle.inspection_req_flag;
944 x_cle_rec.interim_rpt_req_flag := l_out_cle.interim_rpt_req_flag;
945 x_cle_rec.subj_a133_flag := l_out_cle.subj_a133_flag;
946 x_cle_rec.export_flag := l_out_cle.export_flag;
947 x_cle_rec.cfe_req_flag := l_out_cle.cfe_req_flag;
948 x_cle_rec.cop_required_flag := l_out_cle.cop_required_flag;
949 x_cle_rec.export_license_num := l_out_cle.export_license_num;
950 x_cle_rec.export_license_res := l_out_cle.export_license_res;
951 x_cle_rec.copies_required := l_out_cle.copies_required;
952 x_cle_rec.cdrl_category := l_out_cle.cdrl_category;
953 x_cle_rec.data_item_name := l_out_cle.data_item_name;
954 x_cle_rec.data_item_subtitle := l_out_cle.data_item_subtitle;
955 x_cle_rec.date_of_first_submission := l_out_cle.date_of_first_submission;
956 x_cle_rec.frequency := l_out_cle.frequency;
957 x_cle_rec.requiring_office := l_out_cle.requiring_office;
958 x_cle_rec.dcaa_audit_req_flag := l_out_cle.dcaa_audit_req_flag;
959 x_cle_rec.definitized_flag := l_out_cle.definitized_flag;
960 x_cle_rec.cost_of_money := l_out_cle.cost_of_money;
961 x_cle_rec.bill_undefinitized_flag := l_out_cle.bill_undefinitized_flag;
962 x_cle_rec.nsn_number := l_out_cle.nsn_number;
963 x_cle_rec.nte_warning_flag := l_out_cle.nte_warning_flag;
964 x_cle_rec.discount_for_payment := l_out_cle.discount_for_payment;
965 x_cle_rec.financial_ctrl_flag := l_out_cle.financial_ctrl_flag;
966 x_cle_rec.c_scs_flag := l_out_cle.c_scs_flag;
967 x_cle_rec.c_ssr_flag := l_out_cle.c_ssr_flag;
968 x_cle_rec.prepayment_amount := l_out_cle.prepayment_amount;
969 x_cle_rec.prepayment_percentage := l_out_cle.prepayment_percentage;
970 x_cle_rec.progress_payment_flag := l_out_cle.progress_payment_flag;
971 x_cle_rec.progress_payment_liq_rate := l_out_cle.progress_payment_liq_rate;
972 x_cle_rec.progress_payment_rate := l_out_cle.progress_payment_rate;
973 x_cle_rec.award_fee := l_out_cle.award_fee;
974 x_cle_rec.award_fee_pool_amount := l_out_cle.award_fee_pool_amount;
975 x_cle_rec.base_fee := l_out_cle.base_fee;
976 x_cle_rec.ceiling_cost := l_out_cle.ceiling_cost;
977 x_cle_rec.ceiling_price := l_out_cle.ceiling_price;
978 x_cle_rec.labor_cost_index := l_out_cle.labor_cost_index;
979 x_cle_rec.material_cost_index := l_out_cle.material_cost_index;
980 x_cle_rec.customers_percent_in_order := l_out_cle.customers_percent_in_order;
981 x_cle_rec.cost_overrun_share_ratio := l_out_cle.cost_overrun_share_ratio;
982 x_cle_rec.cost_underrun_share_ratio := l_out_cle.cost_underrun_share_ratio;
983 x_cle_rec.date_of_price_redetermin := l_out_cle.date_of_price_redetermin;
984 x_cle_rec.estimated_total_quantity := l_out_cle.estimated_total_quantity;
985 x_cle_rec.fee_ajt_formula := l_out_cle.fee_ajt_formula;
986 x_cle_rec.final_fee := l_out_cle.final_fee;
987 x_cle_rec.final_pft_ajt_formula := l_out_cle.final_pft_ajt_formula;
988 x_cle_rec.fixed_fee := l_out_cle.fixed_fee;
989 x_cle_rec.fixed_quantity := l_out_cle.fixed_quantity;
990 x_cle_rec.initial_fee := l_out_cle.initial_fee;
991 x_cle_rec.initial_price := l_out_cle.initial_price;
992 x_cle_rec.level_of_effort_hours := l_out_cle.level_of_effort_hours;
993 x_cle_rec.line_liquidation_rate := l_out_cle.line_liquidation_rate;
994 x_cle_rec.maximum_fee := l_out_cle.maximum_fee;
995 x_cle_rec.maximum_quantity := l_out_cle.maximum_quantity;
996 x_cle_rec.minimum_fee := l_out_cle.minimum_fee;
997 x_cle_rec.minimum_quantity := l_out_cle.minimum_quantity;
998 x_cle_rec.number_of_options := l_out_cle.number_of_options;
999 x_cle_rec.revised_price := l_out_cle.revised_price;
1000 x_cle_rec.target_cost := l_out_cle.target_cost;
1001 x_cle_rec.target_date_definitize := l_out_cle.target_date_definitize;
1002 x_cle_rec.target_fee := l_out_cle.target_fee;
1003 x_cle_rec.target_price := l_out_cle.target_price;
1004 x_cle_rec.total_estimated_cost := l_out_cle.total_estimated_cost;
1005 x_cle_rec.proposal_due_date := l_out_cle.proposal_due_date;
1006 x_cle_rec.cost_of_sale_rate := l_out_cle.cost_of_sale_rate;
1007 x_cle_rec.created_by := l_out_cle.created_by;
1008 x_cle_rec.creation_date := l_out_cle.creation_date;
1009 x_cle_rec.last_updated_by := l_out_cle.last_updated_by;
1010 x_cle_rec.last_update_login := l_out_cle.last_update_login;
1011 x_cle_rec.last_update_date := l_out_cle.last_update_date;
1012 x_cle_rec.line_value := l_out_cle.line_value;
1013 x_cle_rec.line_value_total := l_out_cle.line_value_total;
1014 x_cle_rec.end_date := l_out_cle.end_date;
1015
1016 x_cle_rec.undef_line_value := l_out_cle.undef_line_value;
1017 x_cle_rec.undef_line_value_total := l_out_cle.undef_line_value_total;
1018 x_cle_rec.undef_unit_price := l_out_cle.undef_unit_price;
1019
1020
1021 x_cle_rec.k_line_id := l_out_clev.id;
1022 x_cle_rec.object_version_number := l_out_clev.object_version_number;
1023 x_cle_rec.sfwt_flag := l_out_clev.sfwt_flag;
1024 x_cle_rec.chr_id := l_out_clev.chr_id;
1025 x_cle_rec.cle_id := l_out_clev.cle_id;
1026
1027 x_cle_rec.lse_id := l_out_clev.lse_id;
1028 x_cle_rec.line_number := l_out_clev.line_number;
1029 x_cle_rec.sts_code := l_out_clev.sts_code;
1030 x_cle_rec.display_sequence := l_out_clev.display_sequence;
1031 x_cle_rec.trn_code := l_out_clev.trn_code ;
1032 x_cle_rec.dnz_chr_id := l_out_clev.dnz_chr_id ;
1033 x_cle_rec.comments := l_out_clev.comments ;
1034 x_cle_rec.item_description := l_out_clev.item_description ;
1035 x_cle_rec.oke_boe_description := l_out_clev.oke_boe_description;
1036 x_cle_rec.hidden_ind := l_out_clev.hidden_ind ;
1037 x_cle_rec.price_unit := l_out_clev.price_unit;
1038 x_cle_rec.price_unit_percent := l_out_clev.price_unit_percent;
1039 x_cle_rec.price_negotiated := l_out_clev.price_negotiated;
1040 x_cle_rec.price_negotiated_renewed := l_out_clev.price_negotiated_renewed;
1041 x_cle_rec.price_level_ind := l_out_clev.price_level_ind;
1042 x_cle_rec.invoice_line_level_ind := l_out_clev.invoice_line_level_ind;
1043 x_cle_rec.dpas_rating := l_out_clev.dpas_rating;
1044 x_cle_rec.block23text := l_out_clev.block23text;
1045 x_cle_rec.exception_yn := l_out_clev.exception_yn;
1046 x_cle_rec.template_used := l_out_clev.template_used;
1047 x_cle_rec.date_terminated := l_out_clev.date_terminated;
1048 x_cle_rec.name := l_out_clev.name;
1049 x_cle_rec.start_date := l_out_clev.start_date;
1050
1051 x_cle_rec.upg_orig_system_ref := l_out_clev.upg_orig_system_ref;
1052 x_cle_rec.upg_orig_system_ref_id := l_out_clev.upg_orig_system_ref_id;
1053 x_cle_rec.attribute_category := l_out_clev.attribute_category;
1054 x_cle_rec.attribute1 := l_out_clev.attribute1;
1055 x_cle_rec.attribute2 := l_out_clev.attribute2;
1056 x_cle_rec.attribute3 := l_out_clev.attribute3;
1057 x_cle_rec.attribute4 := l_out_clev.attribute4;
1058 x_cle_rec.attribute5 := l_out_clev.attribute5;
1059 x_cle_rec.attribute6 := l_out_clev.attribute6;
1060 x_cle_rec.attribute7 := l_out_clev.attribute7;
1061 x_cle_rec.attribute8 := l_out_clev.attribute8;
1062 x_cle_rec.attribute9 := l_out_clev.attribute9;
1063 x_cle_rec.attribute10 := l_out_clev.attribute10;
1064 x_cle_rec.attribute11 := l_out_clev.attribute11;
1065 x_cle_rec.attribute12 := l_out_clev.attribute12;
1066 x_cle_rec.attribute13 := l_out_clev.attribute13;
1067 x_cle_rec.attribute14 := l_out_clev.attribute14;
1068 x_cle_rec.attribute15 := l_out_clev.attribute15;
1069 x_cle_rec.created_by := l_out_clev.created_by;
1070 x_cle_rec.creation_date := l_out_clev.creation_date;
1071 x_cle_rec.last_updated_by := l_out_clev.last_updated_by;
1072 x_cle_rec.last_update_date := l_out_clev.last_update_date;
1073 x_cle_rec.price_type := l_out_clev.price_type;
1074 x_cle_rec.currency_code := l_out_clev.currency_code;
1075 x_cle_rec.currency_code_renewed := l_out_clev.currency_code_renewed;
1076 x_cle_rec.last_update_login := l_out_clev.last_update_login;
1077
1078
1079 -- IF successful: create line item if necessary
1080 IF x_return_status = OKE_API.G_RET_STS_SUCCESS
1081 AND x_cle_rec.inventory_item_id IS NOT NULL THEN
1082
1083 OPEN get_inventory_org (x_cle_rec.DNZ_CHR_ID);
1084 FETCH get_inventory_org INTO l_inv_org;
1085 CLOSE get_inventory_org;
1086
1087 l_cimv_rec.DNZ_CHR_ID := x_cle_rec.DNZ_CHR_ID;
1088 l_cimv_rec.CLE_ID := x_cle_rec.K_LINE_ID;
1089 l_cimv_rec.EXCEPTION_YN := 'N';
1090 l_cimv_rec.PRICED_ITEM_YN := 'N';
1091 l_cimv_rec.OBJECT1_ID1 := x_cle_rec.inventory_item_id;
1092 l_cimv_rec.OBJECT1_ID2 := l_inv_org;
1093 l_cimv_rec.JTOT_OBJECT1_CODE := 'OKE_ITEMS';
1094 l_cimv_rec.UOM_CODE := x_cle_rec.UOM_CODE;
1095 l_cimv_rec.NUMBER_OF_ITEMS := x_cle_rec.LINE_QUANTITY;
1096 l_cimv_rec.CREATED_BY := x_cle_rec.CREATED_BY;
1097 l_cimv_rec.CREATION_DATE := x_cle_rec.CREATION_DATE;
1098 l_cimv_rec.LAST_UPDATED_BY := x_cle_rec.LAST_UPDATED_BY;
1099 l_cimv_rec.LAST_UPDATE_DATE := x_cle_rec.LAST_UPDATE_DATE;
1100 l_cimv_rec.LAST_UPDATE_LOGIN := x_cle_rec.LAST_UPDATE_LOGIN;
1101
1102
1103 OKC_CONTEXT.Set_OKC_Org_Context( p_chr_id => x_cle_rec.DNZ_CHR_ID );
1104
1105
1106 Create_Line_Item (
1107 p_api_version => p_api_version,
1108 p_init_msg_list => p_init_msg_list,
1109 x_return_status => x_return_status,
1110 x_msg_count => x_msg_count,
1111 x_msg_data => x_msg_data,
1112 p_cimv_rec => l_cimv_rec,
1113 x_cimv_rec => l_cimv_out );
1114
1115 If (x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
1116 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1117 Elsif (x_return_status = OKE_API.G_RET_STS_ERROR) then
1118 raise OKE_API.G_EXCEPTION_ERROR;
1119 End If;
1120
1121 END IF;
1122
1123
1124 OKE_API.END_ACTIVITY( x_msg_count => x_msg_count,
1125 x_msg_data => x_msg_data);
1126 EXCEPTION
1127 when OKE_API.G_EXCEPTION_ERROR then
1128 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
1129 p_api_name => l_api_name,
1130 p_pkg_name => g_pkg_name,
1131 p_exc_name => 'OKE_API.G_RET_STS_ERROR',
1132 x_msg_count => x_msg_count,
1133 x_msg_data => x_msg_data,
1134 p_api_type => g_api_type);
1135
1136 when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
1137 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
1138 p_api_name => l_api_name,
1139 p_pkg_name => g_pkg_name,
1140 p_exc_name => 'OKE_API.G_RET_STS_UNEXP_ERROR',
1141 x_msg_count => x_msg_count,
1142 x_msg_data => x_msg_data,
1143 p_api_type => g_api_type);
1144
1145 when OTHERS then
1146 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
1147 p_api_name => l_api_name,
1148 p_pkg_name => g_pkg_name,
1149 p_exc_name => 'OTHERS',
1150 x_msg_count => x_msg_count,
1151 x_msg_data => x_msg_data,
1152 p_api_type => g_api_type);
1153
1154 END create_contract_line;
1155
1156 PROCEDURE create_deliverable(
1157
1158 p_api_version IN NUMBER,
1159 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
1160 x_return_status OUT NOCOPY VARCHAR2,
1161 x_msg_count OUT NOCOPY NUMBER,
1162 x_msg_data OUT NOCOPY VARCHAR2,
1163
1164 p_del_rec IN del_rec_type,
1165 x_del_rec OUT NOCOPY del_rec_type) IS
1166
1167 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_DELIVERABLE';
1168 l_api_version CONSTANT NUMBER := 1.0;
1169 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
1170
1171 l_del_rec OKE_CONTRACT_PUB.del_rec_type;
1172
1173 CURSOR get_inv_org IS
1174 SELECT INV_ORGANIZATION_ID
1175 FROM OKC_K_HEADERS_B
1176 WHERE ID = p_del_rec.k_header_id;
1177
1178 CURSOR get_intent IS
1179 SELECT BUY_OR_SELL
1180 FROM OKC_K_HEADERS_B
1181 WHERE ID = p_del_rec.k_header_id;
1182
1183 l_intent VARCHAR2(10);
1184
1185 FUNCTION null_out_defaults(
1186 p_del_rec IN del_rec_type) RETURN del_rec_type IS
1187
1188 l_del_rec del_rec_type := p_del_rec;
1189
1190 BEGIN
1191
1192
1193 IF l_del_rec.DELIVERABLE_ID = OKE_API.G_MISS_NUM THEN
1194 l_del_rec.DELIVERABLE_ID := NULL;
1195 END IF;
1196
1197 IF l_del_rec.DELIVERABLE_NUM = OKE_API.G_MISS_CHAR THEN
1198 l_del_rec.DELIVERABLE_NUM := NULL;
1199 END IF;
1200
1201 IF l_del_rec.PROJECT_ID = OKE_API.G_MISS_NUM THEN
1202 l_del_rec.PROJECT_ID := NULL;
1203 END IF;
1204
1205 IF l_del_rec.TASK_ID = OKE_API.G_MISS_NUM THEN
1206 l_del_rec.TASK_ID := NULL;
1207 END IF;
1208
1209 IF l_del_rec.ITEM_ID = OKE_API.G_MISS_NUM THEN
1210 l_del_rec.ITEM_ID := NULL;
1211 END IF;
1212
1213 IF l_del_rec.K_HEADER_ID = OKE_API.G_MISS_NUM THEN
1214 l_del_rec.K_HEADER_ID := NULL;
1215 END IF;
1216
1217 IF l_del_rec.K_LINE_ID = OKE_API.G_MISS_NUM THEN
1218 l_del_rec.K_LINE_ID := NULL;
1219 END IF;
1220
1221 IF l_del_rec.DELIVERY_DATE = OKE_API.G_MISS_DATE THEN
1222 l_del_rec.DELIVERY_DATE := NULL;
1223 END IF;
1224
1225 IF l_del_rec.STATUS_CODE = OKE_API.G_MISS_CHAR THEN
1226 l_del_rec.STATUS_CODE := NULL;
1227 END IF;
1228
1229 IF l_del_rec.PARENT_DELIVERABLE_ID = OKE_API.G_MISS_NUM THEN
1230 l_del_rec.PARENT_DELIVERABLE_ID := NULL;
1231 END IF;
1232
1233 IF l_del_rec.SHIP_TO_ORG_ID = OKE_API.G_MISS_NUM THEN
1234 l_del_rec.SHIP_TO_ORG_ID := NULL;
1235 END IF;
1236
1237 IF l_del_rec.SHIP_TO_LOCATION_ID = OKE_API.G_MISS_NUM THEN
1238 l_del_rec.SHIP_TO_LOCATION_ID := NULL;
1239 END IF;
1240
1241 IF l_del_rec.SHIP_FROM_ORG_ID = OKE_API.G_MISS_NUM THEN
1242 l_del_rec.SHIP_FROM_ORG_ID := NULL;
1243 END IF;
1244
1245 IF l_del_rec.SHIP_FROM_LOCATION_ID = OKE_API.G_MISS_NUM THEN
1246 l_del_rec.SHIP_FROM_LOCATION_ID := NULL;
1247 END IF;
1248
1249 IF l_del_rec.INVENTORY_ORG_ID = OKE_API.G_MISS_NUM THEN
1250 l_del_rec.INVENTORY_ORG_ID := NULL;
1251 END IF;
1252
1253 IF l_del_rec.DIRECTION = OKE_API.G_MISS_CHAR THEN
1254 l_del_rec.DIRECTION := NULL;
1255 END IF;
1256
1257 IF l_del_rec.DEFAULTED_FLAG = OKE_API.G_MISS_CHAR THEN
1258 l_del_rec.DEFAULTED_FLAG := NULL;
1259 END IF;
1260
1261 IF l_del_rec.IN_PROCESS_FLAG = OKE_API.G_MISS_CHAR THEN
1262 l_del_rec.IN_PROCESS_FLAG := NULL;
1263 END IF;
1264
1265 IF l_del_rec.WF_ITEM_KEY = OKE_API.G_MISS_CHAR THEN
1266 l_del_rec.WF_ITEM_KEY := NULL;
1267 END IF;
1268
1269 IF l_del_rec.SUB_REF_ID = OKE_API.G_MISS_NUM THEN
1270 l_del_rec.SUB_REF_ID := NULL;
1271 END IF;
1272
1273 IF l_del_rec.START_DATE = OKE_API.G_MISS_DATE THEN
1274 l_del_rec.START_DATE := NULL;
1275 END IF;
1276
1277 IF l_del_rec.END_DATE = OKE_API.G_MISS_DATE THEN
1278 l_del_rec.END_DATE := NULL;
1279 END IF;
1280
1281 IF l_del_rec.PRIORITY_CODE = OKE_API.G_MISS_CHAR THEN
1282 l_del_rec.PRIORITY_CODE := NULL;
1283 END IF;
1284
1285 IF l_del_rec.CURRENCY_CODE = OKE_API.G_MISS_CHAR THEN
1286 l_del_rec.CURRENCY_CODE := NULL;
1287 END IF;
1288
1289 IF l_del_rec.UNIT_PRICE = OKE_API.G_MISS_NUM THEN
1290 l_del_rec.UNIT_PRICE := NULL;
1291 END IF;
1292
1293 IF l_del_rec.UOM_CODE = OKE_API.G_MISS_CHAR THEN
1294 l_del_rec.UOM_CODE := NULL;
1295 END IF;
1296
1297 IF l_del_rec.QUANTITY = OKE_API.G_MISS_NUM THEN
1298 l_del_rec.QUANTITY := NULL;
1299 END IF;
1300
1301 IF l_del_rec.COUNTRY_OF_ORIGIN_CODE = OKE_API.G_MISS_CHAR THEN
1302 l_del_rec.COUNTRY_OF_ORIGIN_CODE := NULL;
1303 END IF;
1304
1305 IF l_del_rec.SUBCONTRACTED_FLAG = OKE_API.G_MISS_CHAR THEN
1306 l_del_rec.SUBCONTRACTED_FLAG := NULL;
1307 END IF;
1308
1309 IF l_del_rec.DEPENDENCY_FLAG = OKE_API.G_MISS_CHAR THEN
1310 l_del_rec.DEPENDENCY_FLAG := NULL;
1311 END IF;
1312
1313
1314
1315 IF l_del_rec.BILLABLE_FLAG = OKE_API.G_MISS_CHAR THEN
1316 l_del_rec.BILLABLE_FLAG := NULL;
1317 END IF;
1318
1319 IF l_del_rec.BILLING_EVENT_ID = OKE_API.G_MISS_NUM THEN
1320 l_del_rec.BILLING_EVENT_ID := NULL;
1321 END IF;
1322
1323 IF l_del_rec.DROP_SHIPPED_FLAG = OKE_API.G_MISS_CHAR THEN
1324 l_del_rec.DROP_SHIPPED_FLAG := NULL;
1325 END IF;
1326
1327 IF l_del_rec.COMPLETED_FLAG = OKE_API.G_MISS_CHAR THEN
1328 l_del_rec.COMPLETED_FLAG := NULL;
1329 END IF;
1330
1331 IF l_del_rec.AVAILABLE_FOR_SHIP_FLAG = OKE_API.G_MISS_CHAR THEN
1332 l_del_rec.AVAILABLE_FOR_SHIP_FLAG := NULL;
1333 END IF;
1334
1335 IF l_del_rec.CREATE_DEMAND = OKE_API.G_MISS_CHAR THEN
1336 l_del_rec.CREATE_DEMAND := NULL;
1337 END IF;
1338
1339 IF l_del_rec.READY_TO_BILL = OKE_API.G_MISS_CHAR THEN
1340 l_del_rec.READY_TO_BILL := NULL;
1341 END IF;
1342
1343 IF l_del_rec.NEED_BY_DATE = OKE_API.G_MISS_DATE THEN
1344 l_del_rec.NEED_BY_DATE := NULL;
1345 END IF;
1346
1347 IF l_del_rec.READY_TO_PROCURE = OKE_API.G_MISS_CHAR THEN
1348 l_del_rec.READY_TO_PROCURE := NULL;
1349 END IF;
1350
1351 IF l_del_rec.MPS_TRANSACTION_ID = OKE_API.G_MISS_NUM THEN
1352 l_del_rec.MPS_TRANSACTION_ID := NULL;
1353 END IF;
1354
1355 IF l_del_rec.PO_REF_1 = OKE_API.G_MISS_NUM THEN
1356 l_del_rec.PO_REF_1 := NULL;
1357 END IF;
1358
1359 IF l_del_rec.PO_REF_2 = OKE_API.G_MISS_NUM THEN
1360 l_del_rec.PO_REF_2 := NULL;
1361 END IF;
1362
1363 IF l_del_rec.PO_REF_3 = OKE_API.G_MISS_NUM THEN
1364 l_del_rec.PO_REF_3 := NULL;
1365 END IF;
1366
1367 IF l_del_rec.SHIPPING_REQUEST_ID = OKE_API.G_MISS_NUM THEN
1368 l_del_rec.SHIPPING_REQUEST_ID := NULL;
1369 END IF;
1370
1371 IF l_del_rec.UNIT_NUMBER = OKE_API.G_MISS_CHAR THEN
1372 l_del_rec.UNIT_NUMBER := NULL;
1373 END IF;
1374
1375 IF l_del_rec.NDB_SCHEDULE_DESIGNATOR = OKE_API.G_MISS_CHAR THEN
1376 l_del_rec.NDB_SCHEDULE_DESIGNATOR := NULL;
1377 END IF;
1378
1379 IF l_del_rec.SHIPPABLE_FLAG = OKE_API.G_MISS_CHAR THEN
1380 l_del_rec.SHIPPABLE_FLAG := NULL;
1381 END IF;
1382
1383 IF l_del_rec.CFE_REQ_FLAG = OKE_API.G_MISS_CHAR THEN
1384 l_del_rec.CFE_REQ_FLAG := NULL;
1385 END IF;
1386
1387 IF l_del_rec.INSPECTION_REQ_FLAG = OKE_API.G_MISS_CHAR THEN
1388 l_del_rec.INSPECTION_REQ_FLAG := NULL;
1389 END IF;
1390
1391 IF l_del_rec.INTERIM_RPT_REQ_FLAG = OKE_API.G_MISS_CHAR THEN
1392 l_del_rec.INTERIM_RPT_REQ_FLAG := NULL;
1393 END IF;
1394
1395 IF l_del_rec.LOT_APPLIES_FLAG = OKE_API.G_MISS_CHAR THEN
1396 l_del_rec.LOT_APPLIES_FLAG := NULL;
1397 END IF;
1398
1399 IF l_del_rec.CUSTOMER_APPROVAL_REQ_FLAG = OKE_API.G_MISS_CHAR THEN
1400 l_del_rec.CUSTOMER_APPROVAL_REQ_FLAG := NULL;
1401 END IF;
1402
1403 IF l_del_rec.EXPECTED_SHIPMENT_DATE = OKE_API.G_MISS_DATE THEN
1404 l_del_rec.EXPECTED_SHIPMENT_DATE := NULL;
1405 END IF;
1406
1407 IF l_del_rec.INITIATE_SHIPMENT_DATE = OKE_API.G_MISS_DATE THEN
1408 l_del_rec.INITIATE_SHIPMENT_DATE := NULL;
1409 END IF;
1410
1411 IF l_del_rec.PROMISED_SHIPMENT_DATE = OKE_API.G_MISS_DATE THEN
1412 l_del_rec.PROMISED_SHIPMENT_DATE := NULL;
1413 END IF;
1414
1415 IF l_del_rec.AS_OF_DATE = OKE_API.G_MISS_DATE THEN
1416 l_del_rec.AS_OF_DATE := NULL;
1417 END IF;
1418
1419 IF l_del_rec.DATE_OF_FIRST_SUBMISSION = OKE_API.G_MISS_DATE THEN
1420 l_del_rec.DATE_OF_FIRST_SUBMISSION := NULL;
1421 END IF;
1422
1423 IF l_del_rec.FREQUENCY = OKE_API.G_MISS_CHAR THEN
1424 l_del_rec.FREQUENCY := NULL;
1425 END IF;
1426
1427 IF l_del_rec.ACQ_DOC_NUMBER = OKE_API.G_MISS_CHAR THEN
1428 l_del_rec.ACQ_DOC_NUMBER := NULL;
1429 END IF;
1430
1431 IF l_del_rec.SUBMISSION_FLAG = OKE_API.G_MISS_CHAR THEN
1432 l_del_rec.SUBMISSION_FLAG := NULL;
1433 END IF;
1434
1435 IF l_del_rec.DATA_ITEM_NAME = OKE_API.G_MISS_CHAR THEN
1436 l_del_rec.DATA_ITEM_NAME := NULL;
1437 END IF;
1438
1439 IF l_del_rec.DATA_ITEM_SUBTITLE = OKE_API.G_MISS_CHAR THEN
1440 l_del_rec.DATA_ITEM_SUBTITLE := NULL;
1441 END IF;
1442
1443 IF l_del_rec.TOTAL_NUM_OF_COPIES = OKE_API.G_MISS_NUM THEN
1444 l_del_rec.TOTAL_NUM_OF_COPIES := NULL;
1445 END IF;
1446
1447 IF l_del_rec.CDRL_CATEGORY = OKE_API.G_MISS_CHAR THEN
1448 l_del_rec.CDRL_CATEGORY := NULL;
1449 END IF;
1450
1451 IF l_del_rec.EXPORT_LICENSE_NUM = OKE_API.G_MISS_CHAR THEN
1452 l_del_rec.EXPORT_LICENSE_NUM := NULL;
1453 END IF;
1454
1455 IF l_del_rec.EXPORT_LICENSE_RES = OKE_API.G_MISS_CHAR THEN
1456 l_del_rec.EXPORT_LICENSE_RES := NULL;
1457 END IF;
1458
1459 IF l_del_rec.EXPORT_FLAG = OKE_API.G_MISS_CHAR THEN
1460 l_del_rec.EXPORT_FLAG := NULL;
1461 END IF;
1462
1463 IF l_del_rec.CREATED_BY = OKE_API.G_MISS_NUM THEN
1464 l_del_rec.CREATED_BY := NULL;
1465 END IF;
1466
1467 IF l_del_rec.CREATION_DATE = OKE_API.G_MISS_DATE THEN
1468 l_del_rec.CREATION_DATE := NULL;
1469 END IF;
1470
1471 IF l_del_rec.LAST_UPDATED_BY = OKE_API.G_MISS_NUM THEN
1472 l_del_rec.LAST_UPDATED_BY := NULL;
1473 END IF;
1474
1475 IF l_del_rec.LAST_UPDATE_LOGIN = OKE_API.G_MISS_NUM THEN
1476 l_del_rec.LAST_UPDATE_LOGIN := NULL;
1477 END IF;
1478
1479 IF l_del_rec.LAST_UPDATE_DATE = OKE_API.G_MISS_DATE THEN
1480 l_del_rec.LAST_UPDATE_DATE := NULL;
1481 END IF;
1482
1483 IF l_del_rec.ATTRIBUTE_CATEGORY = OKE_API.G_MISS_CHAR THEN
1484 l_del_rec.ATTRIBUTE_CATEGORY := NULL;
1485 END IF;
1486
1487 IF l_del_rec.ATTRIBUTE1 = OKE_API.G_MISS_CHAR THEN
1488 l_del_rec.ATTRIBUTE1 := NULL;
1489 END IF;
1490
1491 IF l_del_rec.ATTRIBUTE2 = OKE_API.G_MISS_CHAR THEN
1492 l_del_rec.ATTRIBUTE2 := NULL;
1493 END IF;
1494
1495 IF l_del_rec.ATTRIBUTE3 = OKE_API.G_MISS_CHAR THEN
1496 l_del_rec.ATTRIBUTE3 := NULL;
1497 END IF;
1498
1499 IF l_del_rec.ATTRIBUTE4 = OKE_API.G_MISS_CHAR THEN
1500 l_del_rec.ATTRIBUTE4 := NULL;
1501 END IF;
1502
1503 IF l_del_rec.ATTRIBUTE5 = OKE_API.G_MISS_CHAR THEN
1504 l_del_rec.ATTRIBUTE5 := NULL;
1505 END IF;
1506
1507 IF l_del_rec.ATTRIBUTE6 = OKE_API.G_MISS_CHAR THEN
1508 l_del_rec.ATTRIBUTE6 := NULL;
1509 END IF;
1510
1511 IF l_del_rec.ATTRIBUTE7 = OKE_API.G_MISS_CHAR THEN
1512 l_del_rec.ATTRIBUTE7 := NULL;
1513 END IF;
1514
1515 IF l_del_rec.ATTRIBUTE8 = OKE_API.G_MISS_CHAR THEN
1516 l_del_rec.ATTRIBUTE8 := NULL;
1517 END IF;
1518
1519 IF l_del_rec.ATTRIBUTE9 = OKE_API.G_MISS_CHAR THEN
1520 l_del_rec.ATTRIBUTE9 := NULL;
1521 END IF;
1522
1523 IF l_del_rec.ATTRIBUTE10 = OKE_API.G_MISS_CHAR THEN
1524 l_del_rec.ATTRIBUTE10 := NULL;
1525 END IF;
1526
1527 IF l_del_rec.ATTRIBUTE11 = OKE_API.G_MISS_CHAR THEN
1528 l_del_rec.ATTRIBUTE11 := NULL;
1529 END IF;
1530
1531 IF l_del_rec.ATTRIBUTE12 = OKE_API.G_MISS_CHAR THEN
1532 l_del_rec.ATTRIBUTE12 := NULL;
1533 END IF;
1534
1535 IF l_del_rec.ATTRIBUTE13 = OKE_API.G_MISS_CHAR THEN
1536 l_del_rec.ATTRIBUTE13 := NULL;
1537 END IF;
1538
1539 IF l_del_rec.ATTRIBUTE14 = OKE_API.G_MISS_CHAR THEN
1540 l_del_rec.ATTRIBUTE14 := NULL;
1541 END IF;
1542
1543 IF l_del_rec.ATTRIBUTE15 = OKE_API.G_MISS_CHAR THEN
1544 l_del_rec.ATTRIBUTE15 := NULL;
1545 END IF;
1546
1547
1548
1549 IF l_del_rec.comments = OKE_API.G_MISS_CHAR THEN
1550
1551 l_del_rec.comments := NULL;
1552 END IF;
1553
1554 IF l_del_rec.weight = OKE_API.G_MISS_NUM THEN
1555 l_del_rec.weight := NULL;
1556 END IF;
1557
1558 IF l_del_rec.weight_uom_code = OKE_API.G_MISS_CHAR THEN
1559 l_del_rec.weight_uom_code := NULL;
1560 END IF;
1561
1562 IF l_del_rec.volume = OKE_API.G_MISS_NUM THEN
1563 l_del_rec.volume := NULL;
1564 END IF;
1565
1566 IF l_del_rec.volume_uom_code = OKE_API.G_MISS_CHAR THEN
1567 l_del_rec.volume_uom_code := NULL;
1568 END IF;
1569
1570 IF l_del_rec.expenditure_organization_id = OKE_API.G_MISS_NUM THEN
1571 l_del_rec.expenditure_organization_id := NULL;
1572 END IF;
1573
1574 IF l_del_rec.expenditure_type = OKE_API.G_MISS_CHAR THEN
1575 l_del_rec.expenditure_type := NULL;
1576 END IF;
1577
1578 IF l_del_rec.expenditure_item_date = OKE_API.G_MISS_DATE THEN
1579 l_del_rec.expenditure_item_date := NULL;
1580 END IF;
1581
1582 IF l_del_rec.destination_type_code = OKE_API.G_MISS_CHAR THEN
1583 l_del_rec.destination_type_code := NULL;
1584 END IF;
1585
1586 IF l_del_rec.rate_type = OKE_API.G_MISS_CHAR THEN
1587 l_del_rec.rate_type := NULL;
1588 END IF;
1589
1590 IF l_del_rec.rate_date = OKE_API.G_MISS_DATE THEN
1591 l_del_rec.rate_date := NULL;
1592 END IF;
1593
1594 IF l_del_rec.exchange_rate = OKE_API.G_MISS_NUM THEN
1595 l_del_rec.exchange_rate := NULL;
1596 END IF;
1597
1598 IF l_del_rec.description = OKE_API.G_MISS_CHAR THEN
1599 l_del_rec.description := NULL;
1600 END IF;
1601
1602 RETURN(l_del_rec);
1603
1604 END null_out_defaults;
1605
1606 BEGIN
1607 -- call START_ACTIVITY to create savepoint, check compatibility
1608 -- and initialize message list
1609 l_return_status := OKE_API.START_ACTIVITY(
1610 p_api_name => l_api_name,
1611 p_pkg_name => g_pkg_name,
1612 p_init_msg_list => p_init_msg_list,
1613 l_api_version => l_api_version,
1614 p_api_version => p_api_version,
1615 p_api_type => g_api_type,
1616 x_return_status => x_return_status);
1617
1618 -- check if activity started successfully
1619 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
1620 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1621 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
1622 raise OKE_API.G_EXCEPTION_ERROR;
1623 End If;
1624
1625 l_del_rec := null_out_defaults(p_del_rec);
1626
1627 IF p_del_rec.k_header_id IS NOT NULL AND
1628 p_del_rec.k_header_id <> OKE_API.G_MISS_NUM THEN
1629
1630 IF p_del_rec.inventory_org_id IS NULL
1631 OR p_del_rec.inventory_org_id = OKE_API.G_MISS_NUM THEN
1632 OPEN get_inv_org;
1633 FETCH get_inv_org INTO l_del_rec.inventory_org_id;
1634 CLOSE get_inv_org;
1635 END IF;
1636
1637
1638 IF p_del_rec.direction IS NULL
1639 OR p_del_rec.direction = OKE_API.G_MISS_CHAR THEN
1640 OPEN get_intent;
1641 FETCH get_intent INTO l_intent;
1642 CLOSE get_intent;
1643 IF l_intent = 'S' THEN
1644 l_del_rec.direction := 'OUT';
1645 ELSE
1646 l_del_rec.direction := 'IN';
1647 END IF;
1648 END IF;
1649
1650 END IF;
1651
1652
1653 -- Validate deliverable attributes
1654 OKE_CONTRACT_PUB.validate_deliverable(
1655 p_api_version => p_api_version,
1656 p_init_msg_list => p_init_msg_list,
1657 x_return_status => x_return_status,
1658 x_msg_count => x_msg_count,
1659 x_msg_data => x_msg_data,
1660 p_del_rec => l_del_rec);
1661
1662 If (x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
1663 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1664 Elsif (x_return_status = OKE_API.G_RET_STS_ERROR) then
1665 raise OKE_API.G_EXCEPTION_ERROR;
1666 End If;
1667
1668
1669
1670 OKE_CONTRACT_PUB.create_deliverable(
1671 p_api_version => p_api_version,
1672 p_init_msg_list => p_init_msg_list,
1673 x_return_status => x_return_status,
1674 x_msg_count => x_msg_count,
1675 x_msg_data => x_msg_data,
1676 p_del_rec => l_del_rec,
1677 x_del_rec => x_del_rec);
1678
1679 If (x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
1680 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1681 Elsif (x_return_status = OKE_API.G_RET_STS_ERROR) then
1682 raise OKE_API.G_EXCEPTION_ERROR;
1683 End If;
1684
1685
1686 OKE_API.END_ACTIVITY( x_msg_count => x_msg_count,
1687 x_msg_data => x_msg_data);
1688 EXCEPTION
1689 when OKE_API.G_EXCEPTION_ERROR then
1690 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
1691 p_api_name => l_api_name,
1692 p_pkg_name => g_pkg_name,
1693 p_exc_name => 'OKE_API.G_RET_STS_ERROR',
1694 x_msg_count => x_msg_count,
1695 x_msg_data => x_msg_data,
1696 p_api_type => g_api_type);
1697
1698 when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
1699 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
1700 p_api_name => l_api_name,
1701 p_pkg_name => g_pkg_name,
1702 p_exc_name => 'OKE_API.G_RET_STS_UNEXP_ERROR',
1703 x_msg_count => x_msg_count,
1704 x_msg_data => x_msg_data,
1705 p_api_type => g_api_type);
1706
1707 when OTHERS then
1708 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
1709 p_api_name => l_api_name,
1710 p_pkg_name => g_pkg_name,
1711 p_exc_name => 'OTHERS',
1712 x_msg_count => x_msg_count,
1713 x_msg_data => x_msg_data,
1714 p_api_type => g_api_type);
1715
1716 END create_deliverable;
1717
1718
1719 FUNCTION validate_billing_method(p_bill_rec IN bill_rec_type) return VARCHAR2 IS
1720
1721 l_k_header_id VARCHAR2(1) := '?';
1722 l_billing_method_code VARCHAR2(1) := '?';
1723 l_default_flag VARCHAR2(1) := '?';
1724
1725 CURSOR c_k_header_id IS
1726 select 'x'
1727 from oke_k_headers
1728 where k_header_id = p_bill_rec.k_header_id;
1729
1730 CURSOR c_billing_method_code IS
1731 select 'x'
1732 from oke_billing_methods_vl
1733 where billing_method_code = p_bill_rec.billing_method_code;
1734
1735 BEGIN
1736
1737 IF p_bill_rec.default_flag <>'N' AND p_bill_rec.default_flag <> 'Y' THEN
1738 return OKE_API.G_RET_STS_ERROR;
1739 END IF;
1740
1741 OPEN c_k_header_id;
1742 FETCH c_k_header_id INTO l_k_header_id;
1743 CLOSE c_k_header_id;
1744
1745 IF l_k_header_id = '?' THEN
1746 return OKE_API.G_RET_STS_ERROR;
1747 END IF;
1748
1749 OPEN c_billing_method_code;
1750 FETCH c_billing_method_code INTO l_billing_method_code;
1751 CLOSE c_billing_method_code;
1752
1753 IF l_billing_method_code = '?' THEN
1754 return OKE_API.G_RET_STS_ERROR;
1755 END IF;
1756
1757 RETURN OKE_API.G_RET_STS_SUCCESS;
1758
1759 END validate_billing_method;
1760
1761
1762 PROCEDURE define_billing_methods(
1763 p_api_version IN NUMBER,
1764 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
1765 x_return_status OUT NOCOPY VARCHAR2,
1766 x_msg_count OUT NOCOPY NUMBER,
1767 x_msg_data OUT NOCOPY VARCHAR2,
1768
1769 p_bill_tbl IN bill_tbl_type) IS
1770
1771 l_api_name CONSTANT VARCHAR2(30) := 'DEFINE_BILLING_METHODS';
1772 l_api_version CONSTANT NUMBER := 1.0;
1773 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
1774
1775 i NUMBER;
1776 l_flag VARCHAR2(1);
1777
1778 l_header_id NUMBER;
1779
1780 BEGIN
1781 -- call START_ACTIVITY to create savepoint, check compatibility
1782 -- and initialize message list
1783 l_return_status := OKE_API.START_ACTIVITY(
1784 p_api_name => l_api_name,
1785 p_pkg_name => g_pkg_name,
1786 p_init_msg_list => p_init_msg_list,
1787 l_api_version => l_api_version,
1788 p_api_version => p_api_version,
1789 p_api_type => g_api_type,
1790 x_return_status => x_return_status);
1791
1792 -- check if activity started successfully
1793 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
1794 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1795 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
1796 raise OKE_API.G_EXCEPTION_ERROR;
1797 End If;
1798
1799
1800 l_flag := 'N';
1801 IF p_bill_tbl.COUNT > 0 THEN
1802 i:=p_bill_tbl.FIRST;
1803 l_header_id := p_bill_tbl(i).k_header_id;
1804
1805 LOOP
1806
1807 IF l_header_id <> p_bill_tbl(i).k_header_id THEN
1808 raise OKE_API.G_EXCEPTION_ERROR;
1809 END IF;
1810
1811 IF l_flag='Y' AND p_bill_tbl(i).default_flag='Y' THEN
1812 raise OKE_API.G_EXCEPTION_ERROR;
1813 ELSIF l_flag='Y' AND p_bill_tbl(i).default_flag='N' THEN
1814 null;
1815 ELSIF l_flag='N' AND p_bill_tbl(i).default_flag='Y' THEN
1816 l_flag:='Y';
1817 ELSE
1818 null;
1819 END IF;
1820
1821 EXIT WHEN i = p_bill_tbl.LAST;
1822 i:=p_bill_tbl.NEXT(i);
1823 END LOOP;
1824 END IF;
1825
1826
1827 IF p_bill_tbl.COUNT > 0 THEN
1828 i:=p_bill_tbl.FIRST;
1829 LOOP
1830
1831
1832
1833 l_return_status := validate_billing_method(p_bill_tbl(i));
1834
1835
1836 IF l_return_status = 'S' THEN
1837
1838 insert into oke_k_billing_methods
1839 (
1840 k_header_id,
1841 billing_method_code,
1842 creation_date,
1843 created_by,
1844 last_update_date,
1845 last_updated_by,
1846 last_update_login,
1847 default_flag,
1848 attribute_category,
1849 attribute1,
1850 attribute2,
1851 attribute3,
1852 attribute4,
1853 attribute5,
1854 attribute6,
1855 attribute7,
1856 attribute8,
1857 attribute9,
1858 attribute10,
1859 attribute11,
1860 attribute12,
1861 attribute13,
1862 attribute14,
1863 attribute15
1864 )
1865 values
1866 (
1867 p_bill_tbl(i).k_header_id,
1868 p_bill_tbl(i).billing_method_code,
1869 sysdate,
1870 fnd_global.user_id,
1871 sysdate,
1872 fnd_global.user_id,
1873 fnd_global.login_id,
1874 p_bill_tbl(i).default_flag,
1875 p_bill_tbl(i).attribute_category,
1876 p_bill_tbl(i).attribute1,
1877 p_bill_tbl(i).attribute2,
1878 p_bill_tbl(i).attribute3,
1879 p_bill_tbl(i).attribute4,
1880 p_bill_tbl(i).attribute5,
1881 p_bill_tbl(i).attribute6,
1882 p_bill_tbl(i).attribute7,
1883 p_bill_tbl(i).attribute8,
1884 p_bill_tbl(i).attribute9,
1885 p_bill_tbl(i).attribute10,
1886 p_bill_tbl(i).attribute11,
1887 p_bill_tbl(i).attribute12,
1888 p_bill_tbl(i).attribute13,
1889 p_bill_tbl(i).attribute14,
1890 p_bill_tbl(i).attribute15
1891 );
1892 END IF;
1893
1894 EXIT WHEN i = p_bill_tbl.LAST;
1895 i:=p_bill_tbl.NEXT(i);
1896 END LOOP;
1897 END IF;
1898
1899 OKE_API.END_ACTIVITY( x_msg_count => x_msg_count,
1900 x_msg_data => x_msg_data);
1901 EXCEPTION
1902 when OKE_API.G_EXCEPTION_ERROR then
1903 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
1904 p_api_name => l_api_name,
1905 p_pkg_name => g_pkg_name,
1906 p_exc_name => 'OKE_API.G_RET_STS_ERROR',
1907 x_msg_count => x_msg_count,
1908 x_msg_data => x_msg_data,
1909 p_api_type => g_api_type);
1910
1911 when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
1912 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
1913 p_api_name => l_api_name,
1914 p_pkg_name => g_pkg_name,
1915 p_exc_name => 'OKE_API.G_RET_STS_UNEXP_ERROR',
1916 x_msg_count => x_msg_count,
1917 x_msg_data => x_msg_data,
1918 p_api_type => g_api_type);
1919
1920 when OTHERS then
1921 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
1922 p_api_name => l_api_name,
1923 p_pkg_name => g_pkg_name,
1924 p_exc_name => 'OTHERS',
1925 x_msg_count => x_msg_count,
1926 x_msg_data => x_msg_data,
1927 p_api_type => g_api_type);
1928
1929 END define_billing_methods;
1930
1931 PROCEDURE remove_billing_methods(
1932 p_api_version IN NUMBER,
1933 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
1934 x_return_status OUT NOCOPY VARCHAR2,
1935 x_msg_count OUT NOCOPY NUMBER,
1936 x_msg_data OUT NOCOPY VARCHAR2,
1937
1938 p_bill_tbl IN bill_tbl_type) IS
1939
1940 l_api_name CONSTANT VARCHAR2(30) := 'REMOVE_BILLING_METHODS';
1941 l_api_version CONSTANT NUMBER := 1.0;
1942 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
1943
1944 i NUMBER;
1945
1946 l_header_id NUMBER;
1947
1948 CURSOR c_check (p_header_id NUMBER, p_code VARCHAR2) IS
1949 select 'x' from oke_k_lines_v
1950 where billing_method_code = p_code
1951 and header_id = p_header_id;
1952
1953 l_check VARCHAR2(1) := '?';
1954
1955 BEGIN
1956 -- call START_ACTIVITY to create savepoint, check compatibility
1957 -- and initialize message list
1958 l_return_status := OKE_API.START_ACTIVITY(
1959 p_api_name => l_api_name,
1960 p_pkg_name => g_pkg_name,
1961 p_init_msg_list => p_init_msg_list,
1962 l_api_version => l_api_version,
1963 p_api_version => p_api_version,
1964 p_api_type => g_api_type,
1965 x_return_status => x_return_status);
1966
1967 -- check if activity started successfully
1968 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
1969 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1970 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
1971 raise OKE_API.G_EXCEPTION_ERROR;
1972 End If;
1973
1974 IF p_bill_tbl.COUNT > 0 THEN
1975 i:=p_bill_tbl.FIRST;
1976 l_header_id := p_bill_tbl(i).k_header_id;
1977
1978 LOOP
1979
1980 IF l_header_id <> p_bill_tbl(i).k_header_id THEN
1981 raise OKE_API.G_EXCEPTION_ERROR;
1982 END IF;
1983
1984 EXIT WHEN i = p_bill_tbl.LAST;
1985 i:=p_bill_tbl.NEXT(i);
1986 END LOOP;
1987 END IF;
1988
1989
1990 IF p_bill_tbl.COUNT > 0 THEN
1991 i:=p_bill_tbl.FIRST;
1992 LOOP
1993
1994 IF p_bill_tbl(i).k_header_id <> OKE_API.G_MISS_NUM
1995 AND p_bill_tbl(i).k_header_id is not null
1996 AND p_bill_tbl(i).billing_method_code <> OKE_API.G_MISS_CHAR
1997 AND p_bill_tbl(i).billing_method_code is not null THEN
1998
1999 l_check := '?';
2000 OPEN c_check(p_bill_tbl(i).k_header_id,
2001 p_bill_tbl(i).billing_method_code);
2002 FETCH c_check INTO l_check;
2003 CLOSE c_check;
2004
2005 IF l_check <> 'x' THEN
2006 delete from oke_k_billing_methods
2007 where k_header_id = p_bill_tbl(i).k_header_id
2008 and billing_method_code = p_bill_tbl(i).billing_method_code;
2009 END IF;
2010 END IF;
2011 EXIT WHEN i = p_bill_tbl.LAST;
2012 i:=p_bill_tbl.NEXT(i);
2013 END LOOP;
2014 END IF;
2015
2016 OKE_API.END_ACTIVITY( x_msg_count => x_msg_count,
2017 x_msg_data => x_msg_data);
2018 EXCEPTION
2019 when OKE_API.G_EXCEPTION_ERROR then
2020 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
2021 p_api_name => l_api_name,
2022 p_pkg_name => g_pkg_name,
2023 p_exc_name => 'OKE_API.G_RET_STS_ERROR',
2024 x_msg_count => x_msg_count,
2025 x_msg_data => x_msg_data,
2026 p_api_type => g_api_type);
2027
2028 when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
2029 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
2030 p_api_name => l_api_name,
2031 p_pkg_name => g_pkg_name,
2032 p_exc_name => 'OKE_API.G_RET_STS_UNEXP_ERROR',
2033 x_msg_count => x_msg_count,
2034 x_msg_data => x_msg_data,
2035 p_api_type => g_api_type);
2036
2037 when OTHERS then
2038 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
2039 p_api_name => l_api_name,
2040 p_pkg_name => g_pkg_name,
2041 p_exc_name => 'OTHERS',
2042 x_msg_count => x_msg_count,
2043 x_msg_data => x_msg_data,
2044 p_api_type => g_api_type);
2045
2046 END remove_billing_methods;
2047
2048 PROCEDURE create_line_item(
2049 p_api_version IN NUMBER,
2050 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
2051 x_return_status OUT NOCOPY VARCHAR2,
2052 x_msg_count OUT NOCOPY NUMBER,
2053 x_msg_data OUT NOCOPY VARCHAR2,
2054
2055 p_cimv_rec IN cimv_rec_type,
2056 x_cimv_rec OUT NOCOPY cimv_rec_type) IS
2057
2058 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_LINE_ITEM';
2059 l_api_version CONSTANT NUMBER := 1.0;
2060 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
2061
2062 l_cimv_tbl_in okc_contract_item_pub.cimv_tbl_type;
2063
2064 l_cimv_tbl_out okc_contract_item_pub.cimv_tbl_type;
2065
2066 BEGIN
2067 -- call START_ACTIVITY to create savepoint, check compatibility
2068 -- and initialize message list
2069 l_return_status := OKE_API.START_ACTIVITY(
2070 p_api_name => l_api_name,
2071 p_pkg_name => g_pkg_name,
2072 p_init_msg_list => p_init_msg_list,
2073 l_api_version => l_api_version,
2074 p_api_version => p_api_version,
2075 p_api_type => g_api_type,
2076 x_return_status => x_return_status);
2077
2078 -- check if activity started successfully
2079 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
2080 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2081 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
2082 raise OKE_API.G_EXCEPTION_ERROR;
2083 End If;
2084
2085 l_cimv_tbl_in(1).ID := p_cimv_rec.ID;
2086 l_cimv_tbl_in(1).OBJECT_VERSION_NUMBER := p_cimv_rec.OBJECT_VERSION_NUMBER;
2087 l_cimv_tbl_in(1).CHR_ID := p_cimv_rec.CHR_ID;
2088 l_cimv_tbl_in(1).CLE_ID := p_cimv_rec.CLE_ID;
2089 l_cimv_tbl_in(1).CLE_ID_FOR := p_cimv_rec.CLE_ID_FOR;
2090 l_cimv_tbl_in(1).DNZ_CHR_ID := p_cimv_rec.DNZ_CHR_ID;
2091 l_cimv_tbl_in(1).EXCEPTION_YN := p_cimv_rec.EXCEPTION_YN;
2092 l_cimv_tbl_in(1).PRICED_ITEM_YN := p_cimv_rec.PRICED_ITEM_YN;
2093 l_cimv_tbl_in(1).OBJECT1_ID1 := p_cimv_rec.OBJECT1_ID1;
2094 l_cimv_tbl_in(1).OBJECT1_ID2 := p_cimv_rec.OBJECT1_ID2;
2095 l_cimv_tbl_in(1).JTOT_OBJECT1_CODE := p_cimv_rec.JTOT_OBJECT1_CODE;
2096 l_cimv_tbl_in(1).UOM_CODE := p_cimv_rec.UOM_CODE;
2097 l_cimv_tbl_in(1).NUMBER_OF_ITEMS := p_cimv_rec.NUMBER_OF_ITEMS;
2098 l_cimv_tbl_in(1).CREATED_BY := p_cimv_rec.CREATED_BY;
2099 l_cimv_tbl_in(1).CREATION_DATE := p_cimv_rec.CREATION_DATE;
2100 l_cimv_tbl_in(1).LAST_UPDATED_BY := p_cimv_rec.LAST_UPDATED_BY;
2101 l_cimv_tbl_in(1).LAST_UPDATE_DATE := p_cimv_rec.LAST_UPDATE_DATE;
2102 l_cimv_tbl_in(1).LAST_UPDATE_LOGIN := p_cimv_rec.LAST_UPDATE_LOGIN;
2103 l_cimv_tbl_in(1).UPG_ORIG_SYSTEM_REF := p_cimv_rec.UPG_ORIG_SYSTEM_REF;
2104 l_cimv_tbl_in(1).UPG_ORIG_SYSTEM_REF_ID := p_cimv_rec.UPG_ORIG_SYSTEM_REF_ID;
2105
2106 okc_contract_item_pub.create_contract_item
2107 ( p_api_version => l_api_version
2108 , p_init_msg_list => p_init_msg_list
2109 , x_return_status => l_return_status
2110 , x_msg_count => x_msg_count
2111 , x_msg_data => x_msg_data
2112 , p_cimv_tbl => l_cimv_tbl_in
2113 , x_cimv_tbl => l_cimv_tbl_out
2114 );
2115
2116 If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
2117 raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
2118 Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
2119 raise OKE_API.G_EXCEPTION_ERROR;
2120 End If;
2121
2122 x_cimv_rec.ID := l_cimv_tbl_out(1).ID;
2123 x_cimv_rec.OBJECT_VERSION_NUMBER := l_cimv_tbl_out(1).OBJECT_VERSION_NUMBER;
2124 x_cimv_rec.CHR_ID := l_cimv_tbl_out(1).CHR_ID;
2125 x_cimv_rec.CLE_ID := l_cimv_tbl_out(1).CLE_ID;
2126 x_cimv_rec.CLE_ID_FOR := l_cimv_tbl_out(1).CLE_ID_FOR;
2127 x_cimv_rec.DNZ_CHR_ID := l_cimv_tbl_out(1).DNZ_CHR_ID;
2128 x_cimv_rec.EXCEPTION_YN := l_cimv_tbl_out(1).EXCEPTION_YN;
2129 x_cimv_rec.PRICED_ITEM_YN := l_cimv_tbl_out(1).PRICED_ITEM_YN;
2130 x_cimv_rec.OBJECT1_ID1 := l_cimv_tbl_out(1).OBJECT1_ID1;
2131 x_cimv_rec.OBJECT1_ID2 := l_cimv_tbl_out(1).OBJECT1_ID2;
2132 x_cimv_rec.JTOT_OBJECT1_CODE := l_cimv_tbl_out(1).JTOT_OBJECT1_CODE;
2133 x_cimv_rec.UOM_CODE := l_cimv_tbl_out(1).UOM_CODE;
2134 x_cimv_rec.NUMBER_OF_ITEMS := l_cimv_tbl_out(1).NUMBER_OF_ITEMS;
2135 x_cimv_rec.CREATED_BY := l_cimv_tbl_out(1).CREATED_BY;
2136 x_cimv_rec.CREATION_DATE := l_cimv_tbl_out(1).CREATION_DATE;
2137 x_cimv_rec.LAST_UPDATED_BY := l_cimv_tbl_out(1).LAST_UPDATED_BY;
2138 x_cimv_rec.LAST_UPDATE_DATE := l_cimv_tbl_out(1).LAST_UPDATE_DATE;
2139 x_cimv_rec.LAST_UPDATE_LOGIN := l_cimv_tbl_out(1).LAST_UPDATE_LOGIN;
2140 x_cimv_rec.UPG_ORIG_SYSTEM_REF := l_cimv_tbl_out(1).UPG_ORIG_SYSTEM_REF;
2141 x_cimv_rec.UPG_ORIG_SYSTEM_REF_ID := l_cimv_tbl_out(1).UPG_ORIG_SYSTEM_REF_ID;
2142
2143 OKE_API.END_ACTIVITY( x_msg_count => x_msg_count,
2144 x_msg_data => x_msg_data);
2145 EXCEPTION
2146 when OKE_API.G_EXCEPTION_ERROR then
2147 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
2148 p_api_name => l_api_name,
2149 p_pkg_name => g_pkg_name,
2150 p_exc_name => 'OKE_API.G_RET_STS_ERROR',
2151 x_msg_count => x_msg_count,
2152 x_msg_data => x_msg_data,
2153 p_api_type => g_api_type);
2154
2155 when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
2156 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
2157 p_api_name => l_api_name,
2158 p_pkg_name => g_pkg_name,
2159 p_exc_name => 'OKE_API.G_RET_STS_UNEXP_ERROR',
2160 x_msg_count => x_msg_count,
2161 x_msg_data => x_msg_data,
2162 p_api_type => g_api_type);
2163
2164 when OTHERS then
2165 x_return_status := OKE_API.HANDLE_EXCEPTIONS(
2166 p_api_name => l_api_name,
2167 p_pkg_name => g_pkg_name,
2168 p_exc_name => 'OTHERS',
2169 x_msg_count => x_msg_count,
2170 x_msg_data => x_msg_data,
2171 p_api_type => g_api_type);
2172
2173 END create_line_item;
2174
2175 END OKE_IMPORT_CONTRACT_PUB;
2176