DBA Data[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