[Home] [Help]
PACKAGE BODY: APPS.OKL_SERVICE_LINE_PROCESS_PVT
Source
1 PACKAGE BODY OKL_SERVICE_LINE_PROCESS_PVT AS
2 /* $Header: OKLRSLPB.pls 120.3 2006/07/28 10:00:56 akrangan noship $ */
3
4 -------------------------------------------------------------------------------
5 -- PROCEDURE create_service_line
6 -------------------------------------------------------------------------------
7 PROCEDURE create_service_line(p_api_version IN NUMBER,
8 p_init_msg_list IN VARCHAR2 DEFAULT G_FALSE,
9 x_return_status OUT NOCOPY VARCHAR2,
10 x_msg_count OUT NOCOPY NUMBER,
11 x_msg_data OUT NOCOPY VARCHAR2,
12 p_clev_rec IN clev_rec_type,
13 p_klev_rec IN klev_rec_type,
14 p_cimv_rec IN cimv_rec_type,
15 p_cplv_rec IN cplv_rec_type,
16 x_clev_rec OUT NOCOPY clev_rec_type,
17 x_klev_rec OUT NOCOPY klev_rec_type,
18 x_cimv_rec OUT NOCOPY cimv_rec_type,
19 x_cplv_rec OUT NOCOPY cplv_rec_type) IS
20
21 l_prog_name CONSTANT VARCHAR2(61) := G_PKG_NAME||'.'||'create_service_line';
22
23 l_api_name CONSTANT VARCHAR2(30) := 'create_service_line';
24 lx_return_status VARCHAR2(1);
25
26 CURSOR c_hdr (p_chr_id NUMBER) IS
27 SELECT sts_code,
28 currency_code
29 FROM okc_k_headers_b
30 WHERE id = p_chr_id;
31
32 l_hdr c_hdr%ROWTYPE;
33
34 l_clev_rec clev_rec_type;
35 l_klev_rec klev_rec_type;
36 l_cimv_rec cimv_rec_type;
37 l_cplv_rec cplv_rec_type;
38
39 l_chr_id NUMBER;
40
41 BEGIN
42
43 lx_return_status := okl_api.start_activity(p_api_name => l_api_name,
44 p_pkg_name => G_PKG_NAME,
45 p_init_msg_list => p_init_msg_list,
46 l_api_version => G_API_VERSION,
47 p_api_version => p_api_version,
48 p_api_type => '_PVT',
49 x_return_status => lx_return_status);
50
51 IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
52 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
53 ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
54 RAISE OKL_API.G_EXCEPTION_ERROR;
55 END IF;
56
57
58 l_clev_rec := p_clev_rec;
59 l_klev_rec := p_klev_rec;
60 l_cimv_rec := p_cimv_rec;
61 l_cplv_rec := p_cplv_rec;
62
63 l_chr_id := l_clev_rec.dnz_chr_id;
64
65 OPEN c_hdr (p_chr_id => l_chr_id);
66 FETCH c_hdr INTO l_hdr;
67 CLOSE c_hdr;
68
69 l_clev_rec.chr_id := l_chr_id;
70 l_clev_rec.sts_code := l_hdr.sts_code;
71 l_clev_rec.currency_code := l_hdr.currency_code;
72 l_clev_rec.line_number := '1';
73 l_clev_rec.exception_yn := 'N';
74 l_clev_rec.display_sequence := 1;
75
76 SELECT id
77 INTO l_clev_rec.lse_id
78 FROM okc_line_styles_b
79 WHERE lty_code = 'SOLD_SERVICE';
80
81 l_cimv_rec.exception_yn := 'N';
82 l_cimv_rec.uom_code := 'EA';
83 l_cimv_rec.number_of_items := 1;
84 l_cimv_rec.jtot_object1_code := 'OKX_SERVICE';
85 l_cimv_rec.object1_id2 := OKL_SYSTEM_PARAMS_ALL_PUB.get_system_param_value(OKL_SYSTEM_PARAMS_ALL_PUB.G_ITEM_INV_ORG_ID);
86 l_cimv_rec.dnz_chr_id := l_chr_id;
87
88 l_cimv_rec.cle_id := NULL;
89
90 l_cplv_rec.dnz_chr_id := l_chr_id;
91 l_cplv_rec.object1_id2 := '#';
92 l_cplv_rec.jtot_object1_code := 'OKX_VENDOR';
93 l_cplv_rec.rle_code := 'OKL_VENDOR';
94
95 -- Following API call does the following:
96
97 -- 1. create a SOLD_SERVICE top line record
98 -- 2. create OKC_K_ITEMS record for the top line pointing to MTL_SYSTEM_ITEMS
99 -- 3. create OKL_VENDOR party role for the top line
100
101 okl_contract_top_line_pub.create_contract_top_line(p_api_version => G_API_VERSION,
102 p_init_msg_list => G_FALSE,
103 p_clev_rec => l_clev_rec,
104 p_klev_rec => l_klev_rec,
105 p_cimv_rec => l_cimv_rec,
106 p_cplv_rec => l_cplv_rec,
107 x_clev_rec => x_clev_rec,
108 x_klev_rec => x_klev_rec,
109 x_cimv_rec => x_cimv_rec,
110 x_cplv_rec => x_cplv_rec,
111 x_return_status => lx_return_status,
112 x_msg_count => x_msg_count,
113 x_msg_data => x_msg_data);
114
115 IF lx_return_status = G_RET_STS_UNEXP_ERROR THEN
116 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
117 ELSIF lx_return_status = G_RET_STS_ERROR THEN
118 RAISE OKL_API.G_EXCEPTION_ERROR;
119 END IF;
120
121 okl_api.end_activity(x_msg_count => x_msg_count,
122 x_msg_data => x_msg_data);
123
124 x_return_status := lx_return_status;
125
126
127 EXCEPTION
128
129 WHEN OKL_API.G_EXCEPTION_ERROR THEN
130
131 x_return_status := G_RET_STS_ERROR;
132
133 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
134
135 x_return_status := G_RET_STS_UNEXP_ERROR;
136
137 WHEN OTHERS THEN
138
139 OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
140 p_msg_name => G_DB_ERROR,
141 p_token1 => G_PROG_NAME_TOKEN,
142 p_token1_value => l_prog_name,
143 p_token2 => G_SQLCODE_TOKEN,
144 p_token2_value => sqlcode,
145 p_token3 => G_SQLERRM_TOKEN,
146 p_token3_value => sqlerrm);
147
148 x_return_status := G_RET_STS_UNEXP_ERROR;
149
150 END create_service_line;
151
152
153 -------------------------------------------------------------------------------
154 -- PROCEDURE create_service_asset
155 -------------------------------------------------------------------------------
156 PROCEDURE create_service_asset(p_api_version IN NUMBER,
157 p_init_msg_list IN VARCHAR2 DEFAULT G_FALSE,
158 x_return_status OUT NOCOPY VARCHAR2,
159 x_msg_count OUT NOCOPY NUMBER,
160 x_msg_data OUT NOCOPY VARCHAR2,
161 p_clev_rec IN clev_rec_type,
162 p_klev_rec IN klev_rec_type,
163 p_cimv_rec IN cimv_rec_type,
164 p_cplv_rec IN cplv_rec_type,
165 p_sub_clev_rec IN clev_rec_type,
166 p_sub_klev_rec IN klev_rec_type,
167 p_sub_cimv_rec IN cimv_rec_type,
168 x_clev_rec OUT NOCOPY clev_rec_type,
169 x_klev_rec OUT NOCOPY klev_rec_type,
170 x_cimv_rec OUT NOCOPY cimv_rec_type,
171 x_cplv_rec OUT NOCOPY cplv_rec_type,
172 x_sub_clev_rec OUT NOCOPY clev_rec_type,
173 x_sub_klev_rec OUT NOCOPY klev_rec_type,
174 x_sub_cimv_rec OUT NOCOPY cimv_rec_type) IS
175
176 l_prog_name CONSTANT VARCHAR2(61) := G_PKG_NAME||'.'||'create_service_asset';
177
178 l_api_name CONSTANT VARCHAR2(30) := 'create_service_asset';
179 lx_return_status VARCHAR2(1);
180
181 l_sub_clev_rec clev_rec_type;
182 l_sub_klev_rec klev_rec_type;
183 l_sub_cimv_rec cimv_rec_type;
184
185 BEGIN
186
187 lx_return_status := okl_api.start_activity(p_api_name => l_api_name,
188 p_pkg_name => G_PKG_NAME,
189 p_init_msg_list => p_init_msg_list,
190 l_api_version => G_API_VERSION,
191 p_api_version => p_api_version,
192 p_api_type => '_PVT',
193 x_return_status => lx_return_status);
194
195 IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
196 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
197 ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
198 RAISE OKL_API.G_EXCEPTION_ERROR;
199 END IF;
200
201 create_service_line(p_api_version => G_API_VERSION,
202 p_init_msg_list => G_FALSE,
203 p_clev_rec => p_clev_rec,
204 p_klev_rec => p_klev_rec,
205 p_cimv_rec => p_cimv_rec,
206 p_cplv_rec => p_cplv_rec,
207 x_clev_rec => x_clev_rec,
208 x_klev_rec => x_klev_rec,
209 x_cimv_rec => x_cimv_rec,
210 x_cplv_rec => x_cplv_rec,
211 x_return_status => lx_return_status,
212 x_msg_count => x_msg_count,
213 x_msg_data => x_msg_data);
214
215 IF lx_return_status = G_RET_STS_UNEXP_ERROR THEN
216 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
217 ELSIF lx_return_status = G_RET_STS_ERROR THEN
218 RAISE OKL_API.G_EXCEPTION_ERROR;
219 END IF;
220
221 l_sub_clev_rec := p_sub_clev_rec;
222 l_sub_klev_rec := p_sub_klev_rec;
223 l_sub_cimv_rec := p_sub_cimv_rec;
224
225 l_sub_clev_rec.line_number := 1;
226 l_sub_clev_rec.exception_yn := 'N';
227 l_sub_clev_rec.display_sequence := 1;
228
229 l_sub_clev_rec.cle_id := x_clev_rec.id;
230 l_sub_clev_rec.dnz_chr_id := x_clev_rec.dnz_chr_id;
231 l_sub_clev_rec.sts_code := x_clev_rec.sts_code;
232 l_sub_clev_rec.currency_code := x_clev_rec.currency_code;
233 l_sub_clev_rec.start_date := x_clev_rec.start_date;
234 l_sub_clev_rec.end_date := x_clev_rec.end_date;
235
236 SELECT id
237 INTO l_sub_clev_rec.lse_id
238 FROM okc_line_styles_b
239 WHERE lty_code = 'LINK_SERV_ASSET';
240
241 l_sub_klev_rec.amount := x_klev_rec.amount;
242 l_sub_klev_rec.capital_amount := x_klev_rec.amount; -- LLA API requirement
243
244 l_sub_cimv_rec.exception_yn := 'N';
245 l_sub_cimv_rec.uom_code := 'EA';
246 l_sub_cimv_rec.number_of_items := 1;
247 l_sub_cimv_rec.jtot_object1_code := 'OKX_COVASST';
248 l_sub_cimv_rec.object1_id2 := '#';
249 l_sub_cimv_rec.dnz_chr_id := x_clev_rec.dnz_chr_id;
250
251 okl_contract_line_item_pub.create_contract_line_item(p_api_version => G_API_VERSION,
252 p_init_msg_list => G_FALSE,
253 p_clev_rec => l_sub_clev_rec,
254 p_klev_rec => l_sub_klev_rec,
255 p_cimv_rec => l_sub_cimv_rec,
256 x_clev_rec => x_sub_clev_rec,
257 x_klev_rec => x_sub_klev_rec,
258 x_cimv_rec => x_sub_cimv_rec,
259 x_return_status => lx_return_status,
260 x_msg_count => x_msg_count,
261 x_msg_data => x_msg_data);
262
263 IF lx_return_status = G_RET_STS_UNEXP_ERROR THEN
264 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
265 ELSIF lx_return_status = G_RET_STS_ERROR THEN
266 RAISE OKL_API.G_EXCEPTION_ERROR;
267 END IF;
268
269 okl_api.end_activity(x_msg_count => x_msg_count,
270 x_msg_data => x_msg_data);
271
272 x_return_status := lx_return_status;
273
274
275 EXCEPTION
276
277 WHEN OKL_API.G_EXCEPTION_ERROR THEN
278
279 x_return_status := G_RET_STS_ERROR;
280
281 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
282
283 x_return_status := G_RET_STS_UNEXP_ERROR;
284
285 WHEN OTHERS THEN
286
287 OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
288 p_msg_name => G_DB_ERROR,
289 p_token1 => G_PROG_NAME_TOKEN,
290 p_token1_value => l_prog_name,
291 p_token2 => G_SQLCODE_TOKEN,
292 p_token2_value => sqlcode,
293 p_token3 => G_SQLERRM_TOKEN,
294 p_token3_value => sqlerrm);
295
296 x_return_status := G_RET_STS_UNEXP_ERROR;
297
298 END create_service_asset;
299
300
301 -------------------------------------------------------------------------------
302 -- PROCEDURE update_service_line
303 -------------------------------------------------------------------------------
304 PROCEDURE update_service_line(p_api_version IN NUMBER,
305 p_init_msg_list IN VARCHAR2 DEFAULT G_FALSE,
306 x_return_status OUT NOCOPY VARCHAR2,
307 x_msg_count OUT NOCOPY NUMBER,
308 x_msg_data OUT NOCOPY VARCHAR2,
309 p_clev_rec IN clev_rec_type,
310 p_klev_rec IN klev_rec_type,
311 p_cimv_rec IN cimv_rec_type,
312 p_cplv_rec IN cplv_rec_type,
313 x_clev_rec OUT NOCOPY clev_rec_type,
314 x_klev_rec OUT NOCOPY klev_rec_type,
315 x_cimv_rec OUT NOCOPY cimv_rec_type,
316 x_cplv_rec OUT NOCOPY cplv_rec_type) IS
317
318 l_prog_name CONSTANT VARCHAR2(61) := G_PKG_NAME||'.'||'update_service_line';
319
320 l_api_name CONSTANT VARCHAR2(30) := 'update_service_line';
321 lx_return_status VARCHAR2(1);
322
323 BEGIN
324
325 lx_return_status := okl_api.start_activity(p_api_name => l_api_name,
326 p_pkg_name => G_PKG_NAME,
327 p_init_msg_list => p_init_msg_list,
328 l_api_version => G_API_VERSION,
329 p_api_version => p_api_version,
330 p_api_type => '_PVT',
331 x_return_status => lx_return_status);
332
333 IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
334 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
335 ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
336 RAISE OKL_API.G_EXCEPTION_ERROR;
337 END IF;
338
339 okl_contract_top_line_pub.update_contract_top_line(p_api_version => G_API_VERSION,
340 p_init_msg_list => G_FALSE,
341 p_clev_rec => p_clev_rec,
342 p_klev_rec => p_klev_rec,
343 p_cimv_rec => p_cimv_rec,
344 p_cplv_rec => p_cplv_rec,
345 x_clev_rec => x_clev_rec,
346 x_klev_rec => x_klev_rec,
347 x_cimv_rec => x_cimv_rec,
348 x_cplv_rec => x_cplv_rec,
349 x_return_status => lx_return_status,
350 x_msg_count => x_msg_count,
351 x_msg_data => x_msg_data);
352
353 IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
354 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
355 ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
356 RAISE OKL_API.G_EXCEPTION_ERROR;
357 END IF;
358
359 okl_api.end_activity(x_msg_count => x_msg_count,
360 x_msg_data => x_msg_data);
361
362 x_return_status := lx_return_status;
363
364
365 EXCEPTION
366
367 WHEN OKL_API.G_EXCEPTION_ERROR THEN
368
369 x_return_status := G_RET_STS_ERROR;
370
371 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
372
373 x_return_status := G_RET_STS_UNEXP_ERROR;
374
375 WHEN OTHERS THEN
376
377 OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
378 p_msg_name => G_DB_ERROR,
379 p_token1 => G_PROG_NAME_TOKEN,
380 p_token1_value => l_prog_name,
381 p_token2 => G_SQLCODE_TOKEN,
382 p_token2_value => sqlcode,
383 p_token3 => G_SQLERRM_TOKEN,
384 p_token3_value => sqlerrm);
385
386 x_return_status := G_RET_STS_UNEXP_ERROR;
387
388
389 END update_service_line;
390
391
392 -------------------------------------------------------------------------------
393 -- PROCEDURE delete_service_line
394 -------------------------------------------------------------------------------
395 PROCEDURE delete_service_line(p_api_version IN NUMBER,
396 p_init_msg_list IN VARCHAR2 DEFAULT G_FALSE,
397 x_return_status OUT NOCOPY VARCHAR2,
398 x_msg_count OUT NOCOPY NUMBER,
399 x_msg_data OUT NOCOPY VARCHAR2,
400 p_clev_rec IN clev_rec_type,
401 p_klev_rec IN klev_rec_type,
402 p_cimv_rec IN cimv_rec_type,
403 p_cplv_rec IN cplv_rec_type) IS
404
405 l_prog_name CONSTANT VARCHAR2(61) := G_PKG_NAME||'.'||'delete_service_line';
406
407 l_api_name CONSTANT VARCHAR2(30) := 'delete_service_line';
408 lx_return_status VARCHAR2(1);
409
410 BEGIN
411
412 lx_return_status := okl_api.start_activity(p_api_name => l_api_name,
413 p_pkg_name => G_PKG_NAME,
414 p_init_msg_list => p_init_msg_list,
415 l_api_version => G_API_VERSION,
416 p_api_version => p_api_version,
417 p_api_type => '_PVT',
418 x_return_status => lx_return_status);
419
420 IF lx_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
421 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
422 ELSIF lx_return_status = OKL_API.G_RET_STS_ERROR THEN
423 RAISE OKL_API.G_EXCEPTION_ERROR;
424 END IF;
425
426 okl_contract_top_line_pub.delete_contract_top_line(p_api_version => G_API_VERSION,
427 p_init_msg_list => G_FALSE,
428 p_clev_rec => p_clev_rec,
429 p_klev_rec => p_klev_rec,
430 p_cimv_rec => p_cimv_rec,
431 p_cplv_rec => p_cplv_rec,
432 x_return_status => lx_return_status,
433 x_msg_count => x_msg_count,
434 x_msg_data => x_msg_data);
435
436 IF lx_return_status = G_RET_STS_UNEXP_ERROR THEN
437 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
438 ELSIF lx_return_status = G_RET_STS_ERROR THEN
439 RAISE OKL_API.G_EXCEPTION_ERROR;
440 END IF;
441
442 okl_api.end_activity(x_msg_count => x_msg_count,
443 x_msg_data => x_msg_data);
444
445 x_return_status := lx_return_status;
446
447 EXCEPTION
448
449 WHEN OKL_API.G_EXCEPTION_ERROR THEN
450
451 x_return_status := G_RET_STS_ERROR;
452
453 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
454
455 x_return_status := G_RET_STS_UNEXP_ERROR;
456
457 WHEN OTHERS THEN
458
459 OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
460 p_msg_name => G_DB_ERROR,
461 p_token1 => G_PROG_NAME_TOKEN,
462 p_token1_value => l_prog_name,
463 p_token2 => G_SQLCODE_TOKEN,
464 p_token2_value => sqlcode,
465 p_token3 => G_SQLERRM_TOKEN,
466 p_token3_value => sqlerrm);
467
468 x_return_status := G_RET_STS_UNEXP_ERROR;
469
470
471 END delete_service_line;
472
473 END OKL_SERVICE_LINE_PROCESS_PVT;