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