DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_CONTRACT_REBOOK_PUB

Source


1 PACKAGE BODY OKL_CONTRACT_REBOOK_PUB AS
2 /* $Header: OKLPRBKB.pls 115.0 2002/04/11 17:56:11 pkm ship     $*/
3 
4 -- Global Variables
5    G_DEBUG       NUMBER := 1;
6    G_INIT_NUMBER NUMBER := -9999;
7    G_PKG_NAME    CONSTANT VARCHAR2(200) := 'OKL_CONTRACT_REBOOK_PUB';
8    G_APP_NAME    CONSTANT VARCHAR2(3)   :=  OKL_API.G_APP_NAME;
9    G_API_TYPE    CONSTANT VARCHAR2(4)   := '_PUB';
10 
11 --   subtype tcnv_rec_type IS OKL_TRX_CONTRACTS_PVT.tcnv_rec_type;
12    subtype stmv_rec_type IS OKL_STREAMS_PUB.stmv_rec_type;
13    subtype selv_rec_type IS OKL_STREAMS_PUB.selv_rec_type;
14    subtype selv_tbl_type IS OKL_STREAMS_PUB.selv_tbl_type;
15    subtype khrv_rec_type IS OKL_CONTRACT_PUB.khrv_rec_type;
16    subtype chrv_rec_type IS OKL_OKC_MIGRATION_PVT.chrv_rec_type;
17 
18 
19 ------------------------------------------------------------------------------
20 -- PROCEDURE sync_rebook_orig_contract
21 --
22 --  This procedure synchronize Rebook and Original Contract and make Rebook
23 --  contract status 'ABANDONED'
24 --
25 -- Calls:
26 -- Called By:
27 ------------------------------------------------------------------------------
28   PROCEDURE sync_rebook_orig_contract(
29                                       p_api_version        IN  NUMBER,
30                                       p_init_msg_list      IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
31                                       x_return_status      OUT NOCOPY VARCHAR2,
32                                       x_msg_count          OUT NOCOPY NUMBER,
33                                       x_msg_data           OUT NOCOPY VARCHAR2,
34                                       p_rebook_chr_id      IN  OKC_K_HEADERS_V.ID%TYPE
35                                      ) IS
36   l_api_name    VARCHAR2(35)    := 'sync_rebook_orig_contract';
37   l_proc_name   VARCHAR2(35)    := 'SYNC_REBOOK_ORIG_CONTRACT';
38 
39   l_orig_chr_id OKC_K_HEADERS_V.ID%TYPE;
40   l_khrv_rec    khrv_rec_type;
41   l_chrv_rec    chrv_rec_type;
42 
43   x_khrv_rec    khrv_rec_type;
44   x_chrv_rec    chrv_rec_type;
45 
46   BEGIN
47 
48     x_return_status := OKC_API.G_RET_STS_SUCCESS;
49     -- call START_ACTIVITY to create savepoint, check compatibility
50     -- and initialize message list
51     x_return_status := OKC_API.START_ACTIVITY(
52 	                                      p_api_name      => l_api_name,
53 	                                      p_pkg_name      => G_PKG_NAME,
54 	                                      p_init_msg_list => p_init_msg_list,
55 	                                      l_api_version   => p_api_version,
56 	                                      p_api_version   => p_api_version,
57 	                                      p_api_type      => G_API_TYPE,
58 	                                      x_return_status => x_return_status);
59 
60     -- check if activity started successfully
61     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
62        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
63     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) then
64        raise OKC_API.G_EXCEPTION_ERROR;
65     END IF;
66 
67     --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
68 
69     okl_contract_rebook_pvt.sync_rebook_orig_contract(
70                                                       p_api_version        => p_api_version,
71                                                       p_init_msg_list      => p_init_msg_list,
72                                                       x_return_status      => x_return_status,
73                                                       x_msg_count          => x_msg_count,
74                                                       x_msg_data           => x_msg_data,
75                                                       p_rebook_chr_id      => p_rebook_chr_id
76                                                      );
77 
78     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
79        RAISE OKC_API.G_EXCEPTION_ERROR;
80     END IF;
81 
82     --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
83     OKL_API.END_ACTIVITY(x_msg_count   => x_msg_count,
84                            x_msg_data    => x_msg_data);
85 
86   EXCEPTION
87       when OKC_API.G_EXCEPTION_ERROR then
88          x_return_status := OKC_API.HANDLE_EXCEPTIONS(
89 			p_api_name  => l_api_name,
90 			p_pkg_name  => G_PKG_NAME,
91 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
92 			x_msg_count => x_msg_count,
93 			x_msg_data  => x_msg_data,
94 			p_api_type  => G_API_TYPE);
95 
96       when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
97          x_return_status := OKC_API.HANDLE_EXCEPTIONS(
98 			p_api_name  => l_api_name,
99 			p_pkg_name  => G_PKG_NAME,
100 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
101 			x_msg_count => x_msg_count,
102 			x_msg_data  => x_msg_data,
103 			p_api_type  => G_API_TYPE);
104 
105       when OTHERS then
106          x_return_status := OKC_API.HANDLE_EXCEPTIONS(
107 			p_api_name  => l_api_name,
108 			p_pkg_name  => G_PKG_NAME,
109 			p_exc_name  => 'OTHERS',
110 			x_msg_count => x_msg_count,
111 			x_msg_data  => x_msg_data,
112 			p_api_type  => G_API_TYPE);
113 
114   END sync_rebook_orig_contract;
115 
116 ------------------------------------------------------------------------------
117 -- PROCEDURE create_txn_contract
118 --
119 --  This procedure creates Rebook Contract and Create a Transaction for that
120 --
121 -- Calls:
122 -- Called By:
123 ------------------------------------------------------------------------------
124   PROCEDURE create_txn_contract(
125                                 p_api_version        IN  NUMBER,
126                                 p_init_msg_list      IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
127                                 x_return_status      OUT NOCOPY VARCHAR2,
128                                 x_msg_count          OUT NOCOPY NUMBER,
129                                 x_msg_data           OUT NOCOPY VARCHAR2,
130                                 p_from_chr_id        IN  OKC_K_HEADERS_V.ID%TYPE,
131                                 p_rebook_reason_code IN  VARCHAR2,
132                                 p_rebook_description IN  VARCHAR2,
133                                 p_trx_date           IN  DATE,
134                                 x_tcnv_rec           OUT NOCOPY tcnv_rec_type,
135                                 x_rebook_chr_id      OUT NOCOPY OKC_K_HEADERS_V.ID%TYPE
136                                ) IS
137 
138   l_api_name    VARCHAR2(35)    := 'create_txn_contract';
139   l_proc_name   VARCHAR2(35)    := 'CREATE_TXN_CONTRACT';
140   l_api_version CONSTANT NUMBER := 1;
141 
142   BEGIN -- main process begins here
143 
144       x_return_status := OKC_API.G_RET_STS_SUCCESS;
145       -- call START_ACTIVITY to create savepoint, check compatibility
146       -- and initialize message list
147       x_return_status := OKC_API.START_ACTIVITY(
148 			p_api_name      => l_api_name,
149 			p_pkg_name      => G_PKG_NAME,
150 			p_init_msg_list => p_init_msg_list,
151 			l_api_version   => l_api_version,
152 			p_api_version   => p_api_version,
153 			p_api_type      => G_API_TYPE,
154 			x_return_status => x_return_status);
155 
156       -- check if activity started successfully
157       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
158          raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
159       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) then
160          raise OKC_API.G_EXCEPTION_ERROR;
161       END IF;
162 
163       okl_contract_rebook_pvt.create_txn_contract(
164                                                   p_api_version        => p_api_version,
165                                                   p_init_msg_list      => p_init_msg_list,
166                                                   x_return_status      => x_return_status,
167                                                   x_msg_count          => x_msg_count,
168                                                   x_msg_data           => x_msg_data,
169                                                   p_from_chr_id        => p_from_chr_id,
170                                                   p_rebook_reason_code => p_rebook_reason_code,
171                                                   p_rebook_description => p_rebook_description,
172                                                   p_trx_date           => p_trx_date,
173                                                   x_tcnv_rec           => x_tcnv_rec,
174                                                   x_rebook_chr_id      => x_rebook_chr_id
175                                                  );
176 
177       IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
178          RAISE OKC_API.G_EXCEPTION_ERROR;
179       END IF;
180 
181       OKL_API.END_ACTIVITY(x_msg_count   => x_msg_count,
182                            x_msg_data    => x_msg_data);
183 
184   EXCEPTION
185       when OKC_API.G_EXCEPTION_ERROR then
186          x_return_status := OKC_API.HANDLE_EXCEPTIONS(
187 			p_api_name  => l_api_name,
188 			p_pkg_name  => G_PKG_NAME,
189 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
190 			x_msg_count => x_msg_count,
191 			x_msg_data  => x_msg_data,
192 			p_api_type  => G_API_TYPE);
193 
194       when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
195          x_return_status := OKC_API.HANDLE_EXCEPTIONS(
196 			p_api_name  => l_api_name,
197 			p_pkg_name  => G_PKG_NAME,
198 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
199 			x_msg_count => x_msg_count,
200 			x_msg_data  => x_msg_data,
201 			p_api_type  => G_API_TYPE);
202 
203       when OTHERS then
204          x_return_status := OKC_API.HANDLE_EXCEPTIONS(
205 			p_api_name  => l_api_name,
206 			p_pkg_name  => G_PKG_NAME,
207 			p_exc_name  => 'OTHERS',
208 			x_msg_count => x_msg_count,
209 			x_msg_data  => x_msg_data,
210 			p_api_type  => G_API_TYPE);
211 
212   END create_txn_contract;
213 
214 ------------------------------------------------------------------------------
215 -- PROCEDURE sync_rebook_stream
216 --
217 --  This procedure Synchronizes between Rebooked Contract Stream and Orginal Stream
218 --
219 -- Calls:
220 -- Called By:
221 ------------------------------------------------------------------------------
222 
223   PROCEDURE sync_rebook_stream(
224                                p_api_version        IN  NUMBER,
225                                p_init_msg_list      IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
226                                x_return_status      OUT NOCOPY VARCHAR2,
227                                x_msg_count          OUT NOCOPY NUMBER,
228                                x_msg_data           OUT NOCOPY VARCHAR2,
229                                p_chr_id             IN  OKC_K_HEADERS_V.ID%TYPE,
230                                p_stream_status      IN  OKL_STREAMS.SAY_CODE%TYPE
231                               ) IS
232 
233   l_api_name    VARCHAR2(35)    := 'sync_rebook_stream';
234   l_proc_name   VARCHAR2(35)    := 'SYNC_REBOOK_STREAM';
235 
236   l_orig_chr_id NUMBER;
237 
238   BEGIN
239 
240       x_return_status := OKC_API.G_RET_STS_SUCCESS;
241       -- call START_ACTIVITY to create savepoint, check compatibility
242       -- and initialize message list
243       x_return_status := OKC_API.START_ACTIVITY(
244 			p_api_name      => l_api_name,
245 			p_pkg_name      => G_PKG_NAME,
246 			p_init_msg_list => p_init_msg_list,
247 			l_api_version   => p_api_version,
248 			p_api_version   => p_api_version,
249 			p_api_type      => G_API_TYPE,
250 			x_return_status => x_return_status);
251 
252       -- check if activity started successfully
253       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
254          raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
255       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) then
256          raise OKC_API.G_EXCEPTION_ERROR;
257       END IF;
258 --**********************************************************
259 
260       okl_contract_rebook_pvt.sync_rebook_stream(
261                                                  p_api_version        => p_api_version,
262                                                  p_init_msg_list      => p_init_msg_list,
263                                                  x_return_status      => x_return_status,
264                                                  x_msg_count          => x_msg_count,
265                                                  x_msg_data           => x_msg_data,
266                                                  p_chr_id             => p_chr_id,
267                                                  p_stream_status      => 'CURR'
268                                                 );
269 
270       IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
271          raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
272       END IF;
273 
274 --**********************************************************
275       OKL_API.END_ACTIVITY(x_msg_count   => x_msg_count,
276                            x_msg_data    => x_msg_data);
277 
278   EXCEPTION
279       when OKC_API.G_EXCEPTION_ERROR then
280          x_return_status := OKC_API.HANDLE_EXCEPTIONS(
281 			p_api_name  => l_api_name,
282 			p_pkg_name  => G_PKG_NAME,
283 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
284 			x_msg_count => x_msg_count,
285 			x_msg_data  => x_msg_data,
286 			p_api_type  => G_API_TYPE);
287 
288       when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
289          x_return_status := OKC_API.HANDLE_EXCEPTIONS(
290 			p_api_name  => l_api_name,
291 			p_pkg_name  => G_PKG_NAME,
292 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
293 			x_msg_count => x_msg_count,
294 			x_msg_data  => x_msg_data,
295 			p_api_type  => G_API_TYPE);
296 
297       when OTHERS then
298          x_return_status := OKC_API.HANDLE_EXCEPTIONS(
299 			p_api_name  => l_api_name,
300 			p_pkg_name  => G_PKG_NAME,
301 			p_exc_name  => 'OTHERS',
302 			x_msg_count => x_msg_count,
303 			x_msg_data  => x_msg_data,
304 			p_api_type  => G_API_TYPE);
305 
306   END sync_rebook_stream;
307 
308 ------------------------------------------------------------------------------
309 -- PROCEDURE create_rebook_contract
310 --
311 --  This procedure creates a Rebook Contract from Original Contract provieded as parameter
312 --  p_from_chr_id and set the status of new contract as 'ENTERED'.
313 --  This process does not touch/chnage the original contract
314 --
315 -- Calls:
316 -- Called By:
317 ------------------------------------------------------------------------------
318 
319   PROCEDURE create_rebook_contract(
320                                    p_api_version        IN  NUMBER,
321                                    p_init_msg_list      IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
322                                    x_return_status      OUT NOCOPY VARCHAR2,
323                                    x_msg_count          OUT NOCOPY NUMBER,
324                                    x_msg_data           OUT NOCOPY VARCHAR2,
325                                    p_from_chr_id        IN  OKC_K_HEADERS_V.ID%TYPE,
326                                    x_rebook_chr_id      OUT NOCOPY OKC_K_HEADERS_V.ID%TYPE
327                                   ) IS
328 
329   l_api_name             VARCHAR2(35)    := 'create_rebook_contract';
330   l_proc_name            VARCHAR2(35)    := 'CREATE_REBOOK_CONTRACT';
331 
332   l_orig_chr_id NUMBER;
333 
334   BEGIN
335 
336       x_return_status := OKC_API.G_RET_STS_SUCCESS;
337       -- call START_ACTIVITY to create savepoint, check compatibility
338       -- and initialize message list
339       x_return_status := OKC_API.START_ACTIVITY(
340 			p_api_name      => l_api_name,
341 			p_pkg_name      => G_PKG_NAME,
342 			p_init_msg_list => p_init_msg_list,
343 			l_api_version   => p_api_version,
344 			p_api_version   => p_api_version,
345 			p_api_type      => G_API_TYPE,
346 			x_return_status => x_return_status);
347 
348       -- check if activity started successfully
349       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
350          raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
351       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) then
352          raise OKC_API.G_EXCEPTION_ERROR;
353       END IF;
354 --**********************************************************
355 
356       okl_contract_rebook_pvt.create_rebook_contract(
357                                                      p_api_version        => p_api_version,
358                                                      p_init_msg_list      => p_init_msg_list,
359                                                      x_return_status      => x_return_status,
360                                                      x_msg_count          => x_msg_count,
361                                                      x_msg_data           => x_msg_data,
362                                                      p_from_chr_id        => p_from_chr_id,
363                                                      x_rebook_chr_id      => x_rebook_chr_id
364                                                     );
365 
366       IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
367          RAISE OKC_API.G_EXCEPTION_ERROR;
368       END IF;
369 
370 --**********************************************************
371       OKL_API.END_ACTIVITY(x_msg_count   => x_msg_count,
372                            x_msg_data    => x_msg_data);
373 
374   EXCEPTION
375       when OKC_API.G_EXCEPTION_ERROR then
376          x_return_status := OKC_API.HANDLE_EXCEPTIONS(
377 			p_api_name  => l_api_name,
378 			p_pkg_name  => G_PKG_NAME,
379 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
380 			x_msg_count => x_msg_count,
381 			x_msg_data  => x_msg_data,
382 			p_api_type  => G_API_TYPE);
383 
384       when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
385          x_return_status := OKC_API.HANDLE_EXCEPTIONS(
386 			p_api_name  => l_api_name,
387 			p_pkg_name  => G_PKG_NAME,
388 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
389 			x_msg_count => x_msg_count,
390 			x_msg_data  => x_msg_data,
391 			p_api_type  => G_API_TYPE);
392 
393       when OTHERS then
394          x_return_status := OKC_API.HANDLE_EXCEPTIONS(
395 			p_api_name  => l_api_name,
396 			p_pkg_name  => G_PKG_NAME,
397 			p_exc_name  => 'OTHERS',
398 			x_msg_count => x_msg_count,
399 			x_msg_data  => x_msg_data,
400 			p_api_type  => G_API_TYPE);
401 
402   END create_rebook_contract;
403 
404 END OKL_CONTRACT_REBOOK_PUB;