DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_AM_RECYCLE_TRMNT_PVT

Source


1 PACKAGE BODY OKL_AM_RECYCLE_TRMNT_PVT AS
2 /* $Header: OKLRRTXB.pls 120.4 2007/12/14 14:02:18 nikshah noship $ */
3 
4 -- GLOBAL VARIABLES
5   G_LEVEL_PROCEDURE            CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
6   G_LEVEL_EXCEPTION            CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
7   G_LEVEL_STATEMENT            CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
8   G_MODULE_NAME                CONSTANT VARCHAR2(500) := 'okl.am.plsql.okl_am_loan_trmnt_pvt.';
9 
10   -- Start of comments
11   --
12   -- Procedure Name	: validate_recycle
13   -- Description	  : Validates the recycle transaction
14   -- Business Rules	:
15   -- Parameters		  :
16   -- Version		    : 1.0
17   --
18   -- End of comments
19   PROCEDURE validate_recycle(
20     p_api_version                  	IN  NUMBER,
21     p_init_msg_list                	IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
22     x_return_status                	OUT NOCOPY VARCHAR2,
23     x_msg_count                    	OUT NOCOPY NUMBER,
24     x_msg_data                     	OUT NOCOPY VARCHAR2,
25     p_recy_rec					         	  IN  recy_rec_type) IS
26 
27     -- Cursor to get the DB values for the recycled transaction
28     CURSOR get_recycle_vals_csr (p_rcy_id IN NUMBER) IS
29       SELECT  id,
30               khr_id,
31               tmt_status_code,--akrangan changed for sla tmt_status_code cr
32               tmt_recycle_yn,
33               date_transaction_occurred
34       FROM    OKL_TRX_CONTRACTS
35       WHERE   id = p_rcy_id;
36 
37     -- Cursor to get the DB values for the recycled transaction
38     CURSOR get_recycle_k_vals_csr (p_khr_id IN NUMBER) IS
39       SELECT  id,
40               contract_number,
41               sts_code
42       FROM    OKL_K_HEADERS_FULL_V
43       WHERE   id = p_khr_id;
44 
45     get_recycle_vals_rec     get_recycle_vals_csr%ROWTYPE;
46     get_recycle_k_vals_rec   get_recycle_k_vals_csr%ROWTYPE;
47     l_return_status          VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
48     l_recycle_exception      EXCEPTION;
49     lp_recy_rec              recy_rec_type := p_recy_rec;
50     l_meaning                VARCHAR2(2000);
51     l_term_meaning           VARCHAR2(2000);
52     l_exp_meaning            VARCHAR2(2000);
53     l_module_name VARCHAR2(500) := G_MODULE_NAME || 'validate_recycle';
54     is_debug_exception_on boolean := OKL_DEBUG_PUB.Check_Log_On (l_module_name, G_LEVEL_EXCEPTION);
55     is_debug_procedure_on boolean := OKL_DEBUG_PUB.Check_Log_On (l_module_name, G_LEVEL_PROCEDURE);
56     is_debug_statement_on boolean := OKL_DEBUG_PUB.Check_Log_On (l_module_name, G_LEVEL_STATEMENT);
57 
58   BEGIN
59     IF (is_debug_procedure_on) THEN
60       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_PROCEDURE,l_module_name  ,'Begin(+)');
61     END IF;
62     IF (is_debug_statement_on) THEN
63       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_recy_rec.p_contract_id: ' || p_recy_rec.p_contract_id);
64       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_recy_rec.p_contract_number: ' || p_recy_rec.p_contract_number);
65       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_recy_rec.p_contract_status: ' || p_recy_rec.p_contract_status);
66       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_recy_rec.p_transaction_id: ' || p_recy_rec.p_transaction_id);
67       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_recy_rec.p_transaction_status: ' || p_recy_rec.p_transaction_status);
68       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_recy_rec.p_tmt_recycle_yn: ' || p_recy_rec.p_tmt_recycle_yn);
69       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_recy_rec.p_transaction_date: ' || p_recy_rec.p_transaction_date);
70     END IF;
71 
72     OPEN  get_recycle_vals_csr(lp_recy_rec.p_transaction_id);
73     FETCH get_recycle_vals_csr INTO get_recycle_vals_rec;
74     CLOSE get_recycle_vals_csr;
75 
76     -- Check if valid transaction id
77     IF get_recycle_vals_rec.id IS NULL
78     OR get_recycle_vals_rec.id = OKL_API.G_MISS_NUM THEN
79 
80       OKL_API.SET_MESSAGE(
81                           p_app_name     => 'OKC',
82                           p_msg_name     => G_INVALID_VALUE,
83                           p_token1       => G_COL_NAME_TOKEN,
84                           p_token1_value => 'p_transaction_id');
85 
86       RAISE l_recycle_exception;
87     END IF;
88 
89     OPEN  get_recycle_k_vals_csr(get_recycle_vals_rec.khr_id);
90     FETCH get_recycle_k_vals_csr INTO get_recycle_k_vals_rec;
91     CLOSE get_recycle_k_vals_csr;
92 
93     -- Check if contract id valid
94     IF get_recycle_k_vals_rec.id IS NULL
95     OR get_recycle_k_vals_rec.id = OKL_API.G_MISS_NUM THEN
96 
97       OKL_API.SET_MESSAGE(
98                            p_app_name     => 'OKC',
99                            p_msg_name     => G_INVALID_VALUE,
100                            p_token1       => G_COL_NAME_TOKEN,
101                            p_token1_value => 'p_contract_id');
102 
103       RAISE l_recycle_exception;
104     END IF;
105 
106 
107     -- Check if transaction already processed
108     IF get_recycle_vals_rec.tmt_status_code = 'PROCESSED' THEN --akrangan changed for sla tmt_status_code cr
109 
110       l_meaning := OKL_AM_UTIL_PVT.get_lookup_meaning(
111                           p_lookup_type  => 'OKL_TRANSACTION_STATUS',
112                           p_lookup_code  => 'PROCESSED',
113                           p_validate_yn  => 'Y');
114 
115       -- Cannot recycle transaction for contract CONTRACT_NUMBER which is already STATUS.
116       OKL_API.SET_MESSAGE(
117                           p_app_name      => OKL_API.G_APP_NAME,
118                           p_msg_name      => 'OKL_AM_K_RECYCLE_STS_ERR',
119                           p_token1        => 'CONTRACT_NUMBER',
120                           p_token1_value  => get_recycle_k_vals_rec.contract_number,
121                           p_token2        => 'STATUS',
122                           p_token2_value  => l_meaning);
123 
124       RAISE l_recycle_exception;
125     END IF;
126 
127     -- Check if transaction already set for recycle
128     IF get_recycle_vals_rec.tmt_recycle_yn = 'Y' THEN
129 
130       -- Cannot recycle transaction for contract CONTRACT_NUMBER which is already set for recycle.
131       OKL_API.SET_MESSAGE(
132                           p_app_name      => OKL_API.G_APP_NAME,
133                           p_msg_name      => 'OKL_AM_K_RECYCLE_RCY_ERR',
134                           p_token1        => 'CONTRACT_NUMBER',
135                           p_token1_value  => get_recycle_k_vals_rec.contract_number);
136 
137       RAISE l_recycle_exception;
138     END IF;
139 
140     -- Check if contract status already terminated or expired
141     IF get_recycle_k_vals_rec.sts_code IN ( 'TERMINATED', 'EXPIRED') THEN
142 
143       l_term_meaning := OKL_AM_UTIL_PVT.get_lookup_meaning(
144                           p_lookup_type  => 'OKC_STATUS_TYPE',
145                           p_lookup_code  => 'TERMINATED',
146                           p_validate_yn  => 'Y');
147 
148       l_exp_meaning := OKL_AM_UTIL_PVT.get_lookup_meaning(
149                           p_lookup_type  => 'OKC_STATUS_TYPE',
150                           p_lookup_code  => 'EXPIRED',
151                           p_validate_yn  => 'Y');
152 
153       -- Cannot recycle transaction for TERM_STATUS or EXP_STATUS contract CONTRACT_NUMBER.
154       OKL_API.SET_MESSAGE(
155                           p_app_name      => OKL_API.G_APP_NAME,
156                           p_msg_name      => 'OKL_AM_K_RECYCLE_TMT_ERR',
157                           p_token1        => 'CONTRACT_NUMBER',
158                           p_token1_value  => get_recycle_k_vals_rec.contract_number,
159                           p_token2        => 'TERM_STATUS',
160                           p_token2_value  => l_term_meaning,
161                           p_token3        => 'EXP_STATUS',
162                           p_token3_value  => l_exp_meaning);
163 
164       RAISE l_recycle_exception;
165     END IF;
166 
167     x_return_status  := l_return_status;
168     IF (is_debug_procedure_on) THEN
169       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_PROCEDURE,l_module_name  ,'End(-)');
170     END IF;
171 
172 
173   EXCEPTION
174 
175     WHEN l_recycle_exception THEN
176       IF (is_debug_exception_on) THEN
177         OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_EXCEPTION,l_module_name, 'EXCEPTION :'||'l_recycle_exception');
178       END IF;
179       IF get_recycle_vals_csr%ISOPEN THEN
180         CLOSE get_recycle_vals_csr;
181       END IF;
182       IF get_recycle_k_vals_csr%ISOPEN THEN
183         CLOSE get_recycle_k_vals_csr;
184       END IF;
185       x_return_status := OKL_API.G_RET_STS_ERROR;
186 
187     WHEN OTHERS THEN
188       IF (is_debug_exception_on) THEN
189         OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_EXCEPTION,l_module_name, 'EXCEPTION :'||'OTHERS, SQLCODE: '
190  			                || sqlcode || ' , SQLERRM : ' || sqlerrm);
191       END IF;
192       IF get_recycle_vals_csr%ISOPEN THEN
193         CLOSE get_recycle_vals_csr;
194       END IF;
195       IF get_recycle_k_vals_csr%ISOPEN THEN
196         CLOSE get_recycle_k_vals_csr;
197       END IF;
198       -- Set the oracle error message
199       OKL_API.set_message(p_app_name      => g_app_name,
200                           p_msg_name      => g_unexpected_error,
201                           p_token1        => g_sqlcode_token,
202                           p_token1_value  => SQLCODE,
203                           p_token2        => g_sqlerrm_token,
204                           p_token2_value  => SQLERRM);
205       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
206 
207   END validate_recycle;
208 
209   -- Start of comments
210   --
211   -- Procedure Name	: recycle_termination
212   -- Description	: Sets the transaction to recyle
213   -- Business Rules	:
214   -- Parameters	    :
215   -- Version	    : 1.0
216   -- History        : RMUNJULU 3018641 Added code to get_set_tmg_run
217   --
218   -- End of comments
219   PROCEDURE recycle_termination(
220     p_api_version                  	IN  NUMBER,
221     p_init_msg_list                	IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
222     x_return_status                	OUT NOCOPY VARCHAR2,
223     x_msg_count                    	OUT NOCOPY NUMBER,
224     x_msg_data                     	OUT NOCOPY VARCHAR2,
225     p_recy_rec					    IN  recy_rec_type,
226     x_recy_rec				        OUT NOCOPY recy_rec_type) IS
227 
228     -- Cursor to get the contract details for the transaction being recycled
229     CURSOR contract_details_csr ( p_tcn_id IN NUMBER) IS
230       SELECT K.contract_number
231       FROM   OKL_TRX_CONTRACTS   T,
232              OKL_K_HEADERS_FULL_V  K
233       WHERE  T.id     = p_tcn_id
234       AND    T.khr_id = K.id;
235 
236     lp_tcnv_rec          OKL_TRX_CONTRACTS_PUB.tcnv_rec_type;
237     lx_tcnv_rec          OKL_TRX_CONTRACTS_PUB.tcnv_rec_type;
238     l_return_status      VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
239     l_api_name           CONSTANT VARCHAR2(30) := 'recycle_termination';
240     l_api_version        CONSTANT NUMBER := 1;
241     l_contract_number    VARCHAR2(200);
242 
243     l_module_name VARCHAR2(500) := G_MODULE_NAME || 'recycle_termination';
244     is_debug_exception_on boolean := OKL_DEBUG_PUB.Check_Log_On (l_module_name, G_LEVEL_EXCEPTION);
245     is_debug_procedure_on boolean := OKL_DEBUG_PUB.Check_Log_On (l_module_name, G_LEVEL_PROCEDURE);
246     is_debug_statement_on boolean := OKL_DEBUG_PUB.Check_Log_On (l_module_name, G_LEVEL_STATEMENT);
247 
248 
249   BEGIN
250     IF (is_debug_procedure_on) THEN
251       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_PROCEDURE,l_module_name  ,'Begin(+)');
252     END IF;
253     IF (is_debug_statement_on) THEN
254       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_recy_rec.p_contract_id: ' || p_recy_rec.p_contract_id);
255       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_recy_rec.p_contract_number: ' || p_recy_rec.p_contract_number);
256       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_recy_rec.p_contract_status: ' || p_recy_rec.p_contract_status);
257       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_recy_rec.p_transaction_id: ' || p_recy_rec.p_transaction_id);
258       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_recy_rec.p_transaction_status: ' || p_recy_rec.p_transaction_status);
259       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_recy_rec.p_tmt_recycle_yn: ' || p_recy_rec.p_tmt_recycle_yn);
260       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_recy_rec.p_transaction_date: ' || p_recy_rec.p_transaction_date);
261     END IF;
262 
263     -- Set the transaction
264     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
265                                               G_PKG_NAME,
266                                               p_init_msg_list,
267                                               l_api_version,
268                                               p_api_version,
269                                               '_PVT',
270                                               x_return_status);
271 
272     -- Rollback if error setting activity for api
273     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
274       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
275     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
276       RAISE OKL_API.G_EXCEPTION_ERROR;
277     END IF;
278 
279     -- Validate the recycle transaction
280     validate_recycle (
281           p_api_version                  => p_api_version,
282           p_init_msg_list                => OKL_API.G_FALSE,
283           x_return_status                => l_return_status,
284           x_msg_count                    => x_msg_count,
285           x_msg_data                     => x_msg_data,
286           p_recy_rec                     => p_recy_rec);
287     IF (is_debug_statement_on) THEN
288       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called validate_recycle , return status: ' || l_return_status);
289     END IF;
290 
291     -- Rollback if error in validation
292     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
293       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
294     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
295       RAISE OKL_API.G_EXCEPTION_ERROR;
296     END IF;
297 
298     -- set tcnv_rec
299     lp_tcnv_rec.id               :=     p_recy_rec.p_transaction_id;
300     lp_tcnv_rec.tmt_recycle_yn   :=     'Y';
301 
302     IF (is_debug_statement_on) THEN
303       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_TRX_CONTRACTS_PUB.update_trx_contracts');
304     END IF;
305     -- call update of transaction
306     OKL_TRX_CONTRACTS_PUB.update_trx_contracts(
307               p_api_version                  => p_api_version,
308               p_init_msg_list                => OKL_API.G_FALSE,
309               x_return_status                => l_return_status,
310               x_msg_count                    => x_msg_count,
311               x_msg_data                     => x_msg_data,
312               p_tcnv_rec                     => lp_tcnv_rec,
313               x_tcnv_rec                     => lx_tcnv_rec);
314     IF (is_debug_statement_on) THEN
315       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_TRX_CONTRACTS_PUB.update_trx_contracts , return status: ' || l_return_status);
316     END IF;
317 
318     -- raise exception if error
319     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
320       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
321     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
322       RAISE OKL_API.G_EXCEPTION_ERROR;
323     END IF;
324 
325     -- get the contract details
326     OPEN  contract_details_csr(lx_tcnv_rec.id);
327     FETCH contract_details_csr INTO l_contract_number;
328     CLOSE contract_details_csr;
329 
330     -- Set the message
331     -- Message: Contract CONTRACT_NUMBER is scheduled to recycle.
332     OKL_API.set_message(
333                p_app_name                     => OKL_API.G_APP_NAME,
334                p_msg_name                     => 'OKL_AM_K_SET_TO_RECYCLE',
335                p_token1                       => 'CONTRACT_NUMBER',
336                p_token1_value                 => l_contract_number);
337 
338     IF (is_debug_statement_on) THEN
339       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_UTIL_PVT.process_messages');
340     END IF;
341     -- Save message from stack into transaction message table
342     OKL_AM_UTIL_PVT.process_messages(
343     	        p_trx_source_table  => 'OKL_TRX_CONTRACTS',
344     	        p_trx_id		    => lx_tcnv_rec.id,
345     	        x_return_status     => l_return_status);
346     IF (is_debug_statement_on) THEN
347       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_UTIL_PVT.process_messages , return status: ' || l_return_status);
348       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_LOAN_TRMNT_PVT.get_set_tmg_run');
349     END IF;
350 
351     -- RMUNJULU 3018641 Added code to get and set TMG_RUN
352     OKL_AM_LEASE_LOAN_TRMNT_PVT.get_set_tmg_run(
353                p_trx_id         => lx_tcnv_rec.id,
354                x_return_status  => l_return_status);
355     IF (is_debug_statement_on) THEN
356       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_LEASE_LOAN_TRMNT_PVT.get_set_tmg_run , return status: ' || l_return_status);
357     END IF;
358 
359     -- raise exception if error
360     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
361       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
362     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
363       RAISE OKL_API.G_EXCEPTION_ERROR;
364     END IF;
365 
366     -- set return variables
367     x_return_status := l_return_status;
368 
369     -- end the transaction
370     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
371     IF (is_debug_procedure_on) THEN
372       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_PROCEDURE,l_module_name  ,'End(-)');
373     END IF;
374 
375   EXCEPTION
376     WHEN OKL_API.G_EXCEPTION_ERROR THEN
377       IF (is_debug_exception_on) THEN
378         OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_EXCEPTION,l_module_name, 'EXCEPTION :'||'G_EXCEPTION_ERROR');
379       END IF;
380       IF contract_details_csr%ISOPEN THEN
381         CLOSE contract_details_csr;
382       END IF;
383 
384       x_return_status := OKL_API.HANDLE_EXCEPTIONS
385       (
386         l_api_name,
387         G_PKG_NAME,
388         'OKL_API.G_RET_STS_ERROR',
389         x_msg_count,
390         x_msg_data,
391         '_PVT'
392       );
393     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
394       IF (is_debug_exception_on) THEN
395         OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_EXCEPTION,l_module_name, 'EXCEPTION :'||'G_EXCEPTION_UNEXPECTED_ERROR');
396       END IF;
397       IF contract_details_csr%ISOPEN THEN
398         CLOSE contract_details_csr;
399       END IF;
400 
401       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
402       (
403         l_api_name,
404         G_PKG_NAME,
405         'OKL_API.G_RET_STS_UNEXP_ERROR',
406         x_msg_count,
407         x_msg_data,
408         '_PVT'
409       );
410     WHEN OTHERS THEN
411       IF (is_debug_exception_on) THEN
412         OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_EXCEPTION,l_module_name, 'EXCEPTION :'||'OTHERS, SQLCODE: '
413  			                || sqlcode || ' , SQLERRM : ' || sqlerrm);
414       END IF;
415       IF contract_details_csr%ISOPEN THEN
416         CLOSE contract_details_csr;
417       END IF;
418 
419       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
420       (
421         l_api_name,
422         G_PKG_NAME,
423         'OTHERS',
424         x_msg_count,
425         x_msg_data,
426         '_PVT'
427       );
428 
429   END recycle_termination;
430 
431 
432   -- Start of comments
433   --
434   -- Procedure Name	: recycle_termination
435   -- Description	  : Sets the transactions to recyle
436   -- Business Rules	:
437   -- Parameters		  :
438   -- Version		    : 1.0
439   --
440   -- End of comments
441   PROCEDURE recycle_termination(
442     p_api_version                  	IN  NUMBER,
443     p_init_msg_list                	IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
444     x_return_status                	OUT NOCOPY VARCHAR2,
445     x_msg_count                    	OUT NOCOPY NUMBER,
446     x_msg_data                     	OUT NOCOPY VARCHAR2,
447     p_recy_tbl					   	        IN  recy_tbl_type,
448     x_recy_tbl					   	        OUT NOCOPY recy_tbl_type) IS
449 
450     l_return_status             VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
451     i                           NUMBER := 0;
452     l_api_name                  CONSTANT VARCHAR2(30) := 'recycle_termination';
453     l_api_version               CONSTANT NUMBER := 1;
454     l_module_name VARCHAR2(500) := G_MODULE_NAME || 'recycle_termination';
455     is_debug_exception_on boolean := OKL_DEBUG_PUB.Check_Log_On (l_module_name, G_LEVEL_EXCEPTION);
456     is_debug_procedure_on boolean := OKL_DEBUG_PUB.Check_Log_On (l_module_name, G_LEVEL_PROCEDURE);
457     is_debug_statement_on boolean := OKL_DEBUG_PUB.Check_Log_On (l_module_name, G_LEVEL_STATEMENT);
458 
459   BEGIN
460     IF (is_debug_procedure_on) THEN
461       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_PROCEDURE,l_module_name  ,'Begin(+)');
462     END IF;
463     IF (is_debug_statement_on) THEN
464       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_recy_tbl.COUNT: ' || p_recy_tbl.COUNT);
465     END IF;
466 
467 
468     -- Set the transaction
469     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
470                                               G_PKG_NAME,
471                                               p_init_msg_list,
472                                               l_api_version,
473                                               p_api_version,
474                                               '_PVT',
475                                               x_return_status);
476 
477     -- Rollback if error setting activity for api
478     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
479       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
480     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
481       RAISE OKL_API.G_EXCEPTION_ERROR;
482     END IF;
483 
484 
485     IF (p_recy_tbl.COUNT > 0) THEN
486       i := p_recy_tbl.FIRST;
487       LOOP
488         IF (is_debug_statement_on) THEN
489           OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling recycle_termination');
490         END IF;
491         recycle_termination (
492           p_api_version                  => p_api_version,
493           p_init_msg_list                => p_init_msg_list,
494           x_return_status                => l_return_status,
495           x_msg_count                    => x_msg_count,
496           x_msg_data                     => x_msg_data,
497           p_recy_rec                     => p_recy_tbl(i),
498           x_recy_rec                     => x_recy_tbl(i));
499          IF (is_debug_statement_on) THEN
500            OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called recycle_termination , return status: ' || l_return_status);
501          END IF;
502 
503         -- raise exception if error
504         IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
505           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
506         ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
507           RAISE OKL_API.G_EXCEPTION_ERROR;
508         END IF;
509 
510         EXIT WHEN (i = p_recy_tbl.LAST);
511         i := p_recy_tbl.NEXT(i);
512       END LOOP;
513     END IF;
514 
515     -- set return variables
516     x_return_status := l_return_status;
517 
518 
519     -- end the transaction
520     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
521     IF (is_debug_procedure_on) THEN
522       OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_PROCEDURE,l_module_name  ,'End(-)');
523     END IF;
524 
525   EXCEPTION
526     WHEN OKL_API.G_EXCEPTION_ERROR THEN
527       IF (is_debug_exception_on) THEN
528         OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_EXCEPTION,l_module_name, 'EXCEPTION :'||'G_EXCEPTION_ERROR');
529       END IF;
530       x_return_status := OKL_API.HANDLE_EXCEPTIONS
531       (
532         l_api_name,
533         G_PKG_NAME,
534         'OKL_API.G_RET_STS_ERROR',
535         x_msg_count,
536         x_msg_data,
537         '_PVT'
538       );
539     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
540       IF (is_debug_exception_on) THEN
541         OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_EXCEPTION,l_module_name, 'EXCEPTION :'||'G_EXCEPTION_UNEXPECTED_ERROR');
542       END IF;
543       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
544       (
545         l_api_name,
546         G_PKG_NAME,
547         'OKL_API.G_RET_STS_UNEXP_ERROR',
548         x_msg_count,
549         x_msg_data,
550         '_PVT'
551       );
552     WHEN OTHERS THEN
553       IF (is_debug_exception_on) THEN
554         OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_EXCEPTION,l_module_name, 'EXCEPTION :'||'OTHERS, SQLCODE: '
555  			                || sqlcode || ' , SQLERRM : ' || sqlerrm);
556       END IF;
557       x_return_status :=OKL_API.HANDLE_EXCEPTIONS
558       (
559         l_api_name,
560         G_PKG_NAME,
561         'OTHERS',
562         x_msg_count,
563         x_msg_data,
564         '_PVT'
565       );
566 
567   END recycle_termination;
568 
569 
570 END OKL_AM_RECYCLE_TRMNT_PVT;