[Home] [Help]
PACKAGE BODY: APPS.OKL_AM_LOAN_TRMNT_PVT
Source
1 PACKAGE BODY OKL_AM_LOAN_TRMNT_PVT AS
2 /* $Header: OKLRLOTB.pls 120.6 2007/12/14 13:59:21 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 -- Start of comments
10 --
11 -- Procedure Name : validate_loan
12 -- Description : Validates the loan (Contract) -- Add additional validations
13 -- if needed, most of the validations covered in validate_contract
14 -- of OKL_AM_LEASE_LOAN_TRMNT_PVT api
15 -- Business Rules :
16 -- Parameters :
17 -- Version : 1.0
18 --
19 -- End of comments
20 PROCEDURE validate_loan(
21 p_api_version IN NUMBER,
22 p_init_msg_list IN VARCHAR2,
23 x_return_status OUT NOCOPY VARCHAR2,
24 x_msg_count OUT NOCOPY NUMBER,
25 x_msg_data OUT NOCOPY VARCHAR2,
26 p_term_rec IN term_rec_type) AS
27 BEGIN
28 x_return_status := OKL_API.G_RET_STS_SUCCESS;
29 END validate_loan;
30
31 -- Start of comments
32 --
33 -- Procedure Name : loan_termination
34 -- Desciption : Main API which does the termination of Lease
35 -- Always rollback the whole process if processing transaction
36 -- fails this is done or else we lose information as to
37 -- the success/failure of different APIs
38 -- if the process is rolled back, then it will be picked
39 -- again by the batch_process
40 -- Business Rules :
41 -- Parameters :
42 -- Version : 1.0
43 -- History : RMUNJULU 02-JAN-03 2724951 Always do dispose for loans
44 -- : RMUNJULU 04-APR-03 2889694 Changed OR to AND in check for trn exists
45 -- or else was giving error and rolling back the whole trn
46 -- : RMUNJULU 27-JUN-03 3023206 Removed Process_Close_Streams
47 -- from this procedure as it is now called from
48 -- update_k_hdr_and_lines
49 -- : RMUNJULU 3018641 Added code to get and set TMG_RUN on OKL_TRX_MSGS
50 -- : rmunjulu EDAT Added code to get quote eff dates and set them as global
51 -- : PAGARG 4190887 Pass klev_tbl to process_Accounting_entries
52 -- to do accounting at line level and populate kle_id in
53 -- OKL_TXL_CNTRCT_LNS
54 -- : rmunjulu LOANS_ENHANCEMENTS
55 -- End of comments
56 PROCEDURE loan_termination(
57 p_api_version IN NUMBER,
58 p_init_msg_list IN VARCHAR2,
59 x_return_status OUT NOCOPY VARCHAR2,
60 x_msg_count OUT NOCOPY NUMBER,
61 x_msg_data OUT NOCOPY VARCHAR2,
62 p_term_rec IN term_rec_type,
63 p_tcnv_rec IN tcnv_rec_type) IS
64 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
65 l_overall_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
66 lp_tcnv_rec tcnv_rec_type;
67 lx_stmv_tbl stmv_tbl_type;
68 lx_adjv_rec adjv_rec_type;
69 lx_ajlv_tbl ajlv_tbl_type;
70 lp_klev_tbl klev_tbl_type;
71 lx_klev_tbl klev_tbl_type;
72 lx_chrv_rec chrv_rec_type;
73 lx_clev_tbl clev_tbl_type;
74 lx_id NUMBER;
75 i NUMBER := 1;
76 l_tran_started VARCHAR2(1) := OKL_API.G_FALSE;
77 l_evergreen_status VARCHAR2(1) := OKL_API.G_FALSE;
78 l_api_name VARCHAR2(30) := 'loan_termination';
79 l_sys_date DATE;
80 l_trn_already_set VARCHAR2(1) := 'N';
81 lx_contract_status VARCHAR2(200);
82 l_validate VARCHAR2(1) := OKC_API.G_RET_STS_ERROR;
83 l_api_version CONSTANT NUMBER := 1;
84 l_status VARCHAR2(200);
85
86 l_term_rec term_rec_type := p_term_rec;
87 l_module_name VARCHAR2(500) := G_MODULE_NAME || 'loan_termination';
88 is_debug_exception_on boolean := OKL_DEBUG_PUB.Check_Log_On (l_module_name, G_LEVEL_EXCEPTION);
89 is_debug_procedure_on boolean := OKL_DEBUG_PUB.Check_Log_On (l_module_name, G_LEVEL_PROCEDURE);
90 is_debug_statement_on boolean := OKL_DEBUG_PUB.Check_Log_On (l_module_name, G_LEVEL_STATEMENT);
91
92 BEGIN
93 IF (is_debug_procedure_on) THEN
94 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_PROCEDURE,l_module_name ,'Begin(+)');
95 END IF;
96 IF (is_debug_statement_on) THEN
97 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_term_rec.p_contract_id: ' || p_term_rec.p_contract_id);
98 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_term_rec.p_contract_number: ' || p_term_rec.p_contract_number);
99 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_term_rec.p_contract_modifier: ' || p_term_rec.p_contract_modifier);
100 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_term_rec.p_orig_end_date: ' || p_term_rec.p_orig_end_date);
101 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_term_rec.p_contract_version: ' || p_term_rec.p_contract_version);
102 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_term_rec.p_termination_date: ' || p_term_rec.p_termination_date);
103 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_term_rec.p_termination_reason: ' || p_term_rec.p_termination_reason);
104 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_term_rec.p_quote_id: ' || p_term_rec.p_quote_id);
105 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_term_rec.p_quote_type: ' || p_term_rec.p_quote_type);
106 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_term_rec.p_quote_reason: ' || p_term_rec.p_quote_reason);
107 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_term_rec.p_early_termination_yn: ' || p_term_rec.p_early_termination_yn);
108 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_term_rec.p_control_flag: ' || p_term_rec.p_control_flag);
109 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_term_rec.p_recycle_flag: ' || p_term_rec.p_recycle_flag);
110 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.id: ' || p_tcnv_rec.id);
111 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.rbr_code: ' || p_tcnv_rec.rbr_code);
112 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.rpy_code: ' || p_tcnv_rec.rpy_code);
113 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.rvn_code: ' || p_tcnv_rec.rvn_code);
114 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.trn_code: ' || p_tcnv_rec.trn_code);
115 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.khr_id_new: ' || p_tcnv_rec.khr_id_new);
116 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.pvn_id: ' || p_tcnv_rec.pvn_id);
117 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.pdt_id: ' || p_tcnv_rec.pdt_id);
118 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.qte_id: ' || p_tcnv_rec.qte_id);
119 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.aes_id: ' || p_tcnv_rec.aes_id);
120 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.code_combination_id: ' || p_tcnv_rec.code_combination_id);
121 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.date_accrual: ' || p_tcnv_rec.date_accrual);
122 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.accrual_status_yn: ' || p_tcnv_rec.accrual_status_yn);
123 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.update_status_yn: ' || p_tcnv_rec.update_status_yn);
124 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.amount: ' || p_tcnv_rec.amount);
125 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.currency_code: ' || p_tcnv_rec.currency_code);
126 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.tcn_type: ' || p_tcnv_rec.tcn_type);
127 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.rjn_code: ' || p_tcnv_rec.rjn_code);
128 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.complete_transfer_yn: ' || p_tcnv_rec.complete_transfer_yn);
129 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.org_id: ' || p_tcnv_rec.org_id);
130 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.khr_id: ' || p_tcnv_rec.khr_id);
131 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.khr_id_old: ' || p_tcnv_rec.khr_id_old);
132 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.try_id: ' || p_tcnv_rec.try_id);
133 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.tsu_code: ' || p_tcnv_rec.tsu_code);
134 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.set_of_books_id: ' || p_tcnv_rec.set_of_books_id);
135 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.trx_number: ' || p_tcnv_rec.trx_number);
136 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.tmt_evergreen_yn: ' || p_tcnv_rec.tmt_evergreen_yn);
137 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.tmt_close_balances_yn: ' || p_tcnv_rec.tmt_close_balances_yn);
138 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.tmt_accounting_entries_yn: ' || p_tcnv_rec.tmt_accounting_entries_yn);
139 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.tmt_cancel_insurance_yn: ' || p_tcnv_rec.tmt_cancel_insurance_yn);
140 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.tmt_asset_disposition_yn: ' || p_tcnv_rec.tmt_asset_disposition_yn);
141 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.tmt_amortization_yn: ' || p_tcnv_rec.tmt_amortization_yn);
142 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.tmt_asset_return_yn: ' || p_tcnv_rec.tmt_asset_return_yn);
143 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.tmt_contract_updated_yn: ' || p_tcnv_rec.tmt_contract_updated_yn);
144 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.tmt_recycle_yn: ' || p_tcnv_rec.tmt_recycle_yn);
145 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.tmt_validated_yn: ' || p_tcnv_rec.tmt_validated_yn);
146 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.tmt_streams_updated_yn: ' || p_tcnv_rec.tmt_streams_updated_yn);
147 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.tmt_split_asset_yn: ' || p_tcnv_rec.tmt_split_asset_yn);
148 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.chr_id: ' || p_tcnv_rec.chr_id);
149 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.source_trx_id: ' || p_tcnv_rec.source_trx_id);
150 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.source_trx_type: ' || p_tcnv_rec.source_trx_type);
151 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.legal_entity_id: ' || p_tcnv_rec.legal_entity_id);
152 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.accounting_reversal_yn: ' || p_tcnv_rec.accounting_reversal_yn);
153 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.product_name: ' || p_tcnv_rec.product_name);
154 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.book_classification_code: ' || p_tcnv_rec.book_classification_code);
155 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.tax_owner_code: ' || p_tcnv_rec.tax_owner_code);
156 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.tmt_status_code: ' || p_tcnv_rec.tmt_status_code);
157 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'In param, p_tcnv_rec.representation_code: ' || p_tcnv_rec.representation_code);
158 END IF;
159
160 -- Set the transaction
161 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
162 G_PKG_NAME,
163 p_init_msg_list,
164 l_api_version,
165 p_api_version,
166 '_PVT',
167 x_return_status);
168
169 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
170 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
171 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
172 RAISE OKL_API.G_EXCEPTION_ERROR;
173 END IF;
174
175 -- Set the x return status
176 x_return_status := OKL_API.G_RET_STS_SUCCESS;
177
178 IF (is_debug_statement_on) THEN
179 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_TRMNT_PVT.set_overall_status');
180 END IF;
181 -- store the highest degree of error
182 OKL_AM_LEASE_TRMNT_PVT.set_overall_status(
183 p_return_status => l_return_status,
184 px_overall_status => l_overall_status);
185 IF (is_debug_statement_on) THEN
186 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_LEASE_TRMNT_PVT.set_overall_status , l_overall_status : ' || l_overall_status);
187 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_TRMNT_PVT.set_database_values');
188 END IF;
189 -- If the termination request is from quote, populate the rest of the quote attributes
190 OKL_AM_LEASE_TRMNT_PVT.set_database_values(
191 px_term_rec => l_term_rec);
192 IF (is_debug_statement_on) THEN
193 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_LEASE_TRMNT_PVT.set_database_values');
194 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_TRMNT_PVT.set_info_messages');
195 END IF;
196 -- Set the info messages intially
197 OKL_AM_LEASE_TRMNT_PVT.set_info_messages(
198 p_term_rec => l_term_rec);
199 IF (is_debug_statement_on) THEN
200 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_LEASE_TRMNT_PVT.set_info_messages');
201 END IF;
202
203 -- check if transaction already exists
204 -- RMUNJULU 04-APR-03 2889694 Changed OR to AND
205 IF (p_tcnv_rec.id IS NOT NULL AND p_tcnv_rec.id <> OKL_API.G_MISS_NUM) THEN
206 l_trn_already_set := 'Y';
207 END IF;
208
209 --get sysdate
210 SELECT SYSDATE INTO l_sys_date FROM DUAL;
211
212 IF l_trn_already_set = 'N' THEN
213
214 IF (is_debug_statement_on) THEN
215 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_TRMNT_PVT.initialize_transaction');
216 END IF;
217 -- initialize the transaction rec
218 OKL_AM_LEASE_TRMNT_PVT.initialize_transaction (
219 px_tcnv_rec => lp_tcnv_rec,
220 p_term_rec => l_term_rec,
221 p_sys_date => l_sys_date,
222 p_control_flag => 'CREATE',
223 x_return_status => l_return_status,
224 -- akrangan bug 5354501 fix start
225 x_msg_count => x_msg_count,
226 x_msg_data => x_msg_data);
227 IF (is_debug_statement_on) THEN
228 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_LEASE_TRMNT_PVT.initialize_transaction , return status: ' || l_return_status);
229 END IF;
230 --akrangan bug 5354501 fix end
231 -- rollback if intialize transaction failed
232 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
233 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
234 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
235 RAISE OKL_API.G_EXCEPTION_ERROR;
236 END IF;
237
238 IF (is_debug_statement_on) THEN
239 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_TRMNT_PVT.process_transaction');
240 END IF;
241 -- insert the transaction record
242 OKL_AM_LEASE_TRMNT_PVT.process_transaction(
243 p_api_version => p_api_version,
244 p_init_msg_list => OKL_API.G_FALSE,
245 x_return_status => l_return_status,
246 x_msg_count => x_msg_count,
247 x_msg_data => x_msg_data,
248 p_id => 0,
249 p_term_rec => l_term_rec,
250 p_tcnv_rec => lp_tcnv_rec,
251 x_id => lx_id,
252 p_trn_mode => 'INSERT');
253 IF (is_debug_statement_on) THEN
254 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_LEASE_TRMNT_PVT.process_transaction , return status: ' || l_return_status);
255 END IF;
256
257 -- rollback if processing transaction failed
258 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
259 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
260 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
261 RAISE OKL_API.G_EXCEPTION_ERROR;
262 END IF;
263
264 -- set the trn rec id
265 lp_tcnv_rec.id := lx_id;
266
267 ELSE -- transaction already set
268
269 lp_tcnv_rec := p_tcnv_rec;
270
271 IF (is_debug_statement_on) THEN
272 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_TRMNT_PVT.initialize_transaction');
273 END IF;
274 -- initialize the transaction rec
275 OKL_AM_LEASE_TRMNT_PVT.initialize_transaction (
276 px_tcnv_rec => lp_tcnv_rec,
277 p_term_rec => l_term_rec,
278 p_sys_date => l_sys_date,
279 p_control_flag => 'UPDATE',
280 x_return_status => l_return_status,
281 -- akrangan bug 5354501 fix start
282 x_msg_count => x_msg_count,
283 x_msg_data => x_msg_data);
284 --akrangan bug 5354501 fix end
285 IF (is_debug_statement_on) THEN
286 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_LEASE_TRMNT_PVT.initialize_transaction , return status: ' || l_return_status);
287 END IF;
288
289 -- rollback if intialize transaction failed
290 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
291 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
292 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
293 RAISE OKL_API.G_EXCEPTION_ERROR;
294 END IF;
295
296 END IF;
297
298 -- rmunjulu +++++++++ Effective Dated Termination -- start ++++++++++++++++
299
300 IF (is_debug_statement_on) THEN
301 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_LOAN_TRMNT_PVT.get_set_quote_dates');
302 END IF;
303 -- rmunjulu EDAT Get the quote effectivity date and quote acceptance date
304 -- and store as global variables, will be used later on in other procedures
305 OKL_AM_LEASE_LOAN_TRMNT_PVT.get_set_quote_dates(
306 p_qte_id => l_term_rec.p_quote_id,
307 x_return_status => l_return_status);
308 IF (is_debug_statement_on) THEN
309 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_LEASE_LOAN_TRMNT_PVT.get_set_quote_dates , return status: ' || l_return_status);
310 END IF;
311
312 -- Rollback if error setting activity for api
313 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
314 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
315 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
316 RAISE OKL_API.G_EXCEPTION_ERROR;
317 END IF;
318
319 -- rmunjulu +++++++++ Effective Dated Termination -- end ++++++++++++++++
320
321 IF (is_debug_statement_on) THEN
322 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_TRMNT_PVT.validate_lease');
323 END IF;
324 -- check if loan valid
325 -- rmunjulu LOANS_ENHANCEMENTS
326 OKL_AM_LEASE_TRMNT_PVT.validate_lease(
327 p_api_version => p_api_version,
328 p_init_msg_list => OKL_API.G_FALSE,
329 x_return_status => l_return_status,
330 x_msg_count => x_msg_count,
331 x_msg_data => x_msg_data,
332 p_sys_date => l_sys_date,
333 p_term_rec => l_term_rec);
334 IF (is_debug_statement_on) THEN
335 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_LEASE_TRMNT_PVT.validate_lease , return status: ' || l_return_status);
336 END IF;
337
338 -- Store the validation return status
339 l_validate := l_return_status;
340
341 IF (is_debug_statement_on) THEN
342 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_TRMNT_PVT.set_overall_status');
343 END IF;
344 -- store the highest degree of error
345 OKL_AM_LEASE_TRMNT_PVT.set_overall_status(
346 p_return_status => l_return_status,
347 px_overall_status => l_overall_status);
348 IF (is_debug_statement_on) THEN
349 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_LEASE_TRMNT_PVT.set_overall_status , l_overall_status : ' || l_overall_status);
350 END IF;
351
352 IF (l_term_rec.p_control_flag = 'BATCH_PROCESS') THEN
353
354 IF (is_debug_statement_on) THEN
355 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_LOAN_TRMNT_PUB.validate_contract');
356 END IF;
357 -- Since batch process is not checked initially in LLT check here
358 OKL_AM_LEASE_LOAN_TRMNT_PUB.validate_contract(
359 p_api_version => p_api_version,
360 p_init_msg_list => OKL_API.G_FALSE,
361 x_return_status => l_return_status,
362 x_msg_count => x_msg_count,
363 x_msg_data => x_msg_data,
364 p_contract_id => l_term_rec.p_contract_id,
365 p_control_flag => l_term_rec.p_control_flag,
366 x_contract_status => lx_contract_status);
367 IF (is_debug_statement_on) THEN
368 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_LEASE_LOAN_TRMNT_PUB.validate_contract , return status: ' || l_return_status);
369 END IF;
370
371 -- Store the highest validation return status
372 -- To capture the return status of validate lease called above
373 IF (l_validate = OKL_API.G_RET_STS_SUCCESS) THEN
374 l_validate := l_return_status;
375 END IF;
376
377 IF (is_debug_statement_on) THEN
378 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_TRMNT_PVT.set_overall_status');
379 END IF;
380 -- store the highest degree of error
381 OKL_AM_LEASE_TRMNT_PVT.set_overall_status(
382 p_return_status => l_validate, -- RMUNJULU 3018641 changed from l_return_status
383 px_overall_status => l_overall_status);
384 IF (is_debug_statement_on) THEN
385 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_LEASE_TRMNT_PVT.set_overall_status , overall status: ' || l_overall_status);
386 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_TRMNT_PVT.set_transaction_rec');
387 END IF;
388 -- set the transaction record
389 OKL_AM_LEASE_TRMNT_PVT.set_transaction_rec(
390 p_return_status => l_validate, -- RMUNJULU 3018641 changed from l_return_status
391 p_overall_status => l_overall_status,
392 p_tmt_flag => 'TMT_VALIDATED_YN',
393 p_tsu_code => 'ENTERED',
394 px_tcnv_rec => lp_tcnv_rec);
395 IF (is_debug_statement_on) THEN
396 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_LEASE_TRMNT_PVT.set_transaction_rec');
397 END IF;
398
399 -- if validation failed then insert transaction
400 -- and abort else continue next process
401 IF (l_validate <> OKL_API.G_RET_STS_SUCCESS) THEN
402 -- Validation of contract failed.
403 OKL_API.set_message( p_app_name => G_APP_NAME,
404 p_msg_name => 'OKL_AM_VAL_OF_K_FAILED');
405
406 IF (is_debug_statement_on) THEN
407 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_TRMNT_PVT.set_transaction_rec');
408 END IF;
409 -- set the transaction record
410 OKL_AM_LEASE_TRMNT_PVT.set_transaction_rec(
411 p_return_status => l_validate, -- RMUNJULU 3018641 changed from l_return_statu
412 p_overall_status => l_overall_status,
413 p_tmt_flag => 'TMT_VALIDATED_YN',
414 p_tsu_code => 'ERROR',
415 px_tcnv_rec => lp_tcnv_rec);
416 IF (is_debug_statement_on) THEN
417 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_LEASE_TRMNT_PVT.set_transaction_rec');
418 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_TRMNT_PVT.process_transaction');
419 END IF;
420 -- update the transaction record
421 OKL_AM_LEASE_TRMNT_PVT.process_transaction(
422 p_api_version => p_api_version,
423 p_init_msg_list => OKL_API.G_FALSE,
424 x_return_status => l_return_status,
425 x_msg_count => x_msg_count,
426 x_msg_data => x_msg_data,
427 p_id => 0,
428 p_term_rec => l_term_rec,
429 p_tcnv_rec => lp_tcnv_rec,
430 x_id => lx_id,
431 p_trn_mode => 'UPDATE');
432 IF (is_debug_statement_on) THEN
433 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_LEASE_TRMNT_PVT.process_transaction , return status: ' || l_return_status);
434 END IF;
435
436 -- rollback if processing transaction failed
437 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
438 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
439 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
440 RAISE OKL_API.G_EXCEPTION_ERROR;
441 END IF;
442
443 IF (is_debug_statement_on) THEN
444 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_UTIL_PVT.process_messages');
445 END IF;
446 -- Save messages from stack into transaction message table
447 OKL_AM_UTIL_PVT.process_messages(
448 p_trx_source_table => 'OKL_TRX_CONTRACTS',
449 p_trx_id => lp_tcnv_rec.id,
450 x_return_status => l_return_status);
451 IF (is_debug_statement_on) THEN
452 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_UTIL_PVT.process_messages , return status: ' || l_return_status);
453 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_LOAN_TRMNT_PVT.get_set_tmg_run');
454 END IF;
455 -- RMUNJULU 3018641 Added code to get and set TMG_RUN
456 OKL_AM_LEASE_LOAN_TRMNT_PVT.get_set_tmg_run(
457 p_trx_id => lp_tcnv_rec.id,
458 x_return_status => l_return_status);
459 IF (is_debug_statement_on) THEN
460 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);
461 END IF;
462
463 -- rollback if api failed
464 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
465 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
466 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
467 RAISE OKL_API.G_EXCEPTION_ERROR;
468 END IF;
469
470 -- abort since validation failed
471 RAISE G_EXCEPTION_HALT_VALIDATION;
472 END IF;
473 ELSE --( not from batch process) then
474
475 /* -- RMUNJULU 3018641 Changed code to do validate step and store messages in trn
476 -- even when request from quote
477
478 -- rollback if validation failed
479 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
480 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
481 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
482 RAISE OKL_API.G_EXCEPTION_ERROR;
483 END IF;
484
485 -- set the transaction record
486 OKL_AM_LEASE_TRMNT_PVT.set_transaction_rec(
487 p_return_status => l_return_status,
488 p_overall_status => l_overall_status,
489 p_tmt_flag => 'TMT_VALIDATED_YN',
490 p_tsu_code => 'ENTERED',
491 px_tcnv_rec => lp_tcnv_rec);
492 */
493
494 -- RMUNJULU 3018641 Changed code to do validate step and store messages in trn
495
496 -- if validation failed then insert transaction
497 -- and abort else continue next process
498 IF (l_validate <> OKL_API.G_RET_STS_SUCCESS) THEN
499
500 -- Validation of contract failed.
501 OKL_API.set_message( p_app_name => G_APP_NAME,
502 p_msg_name => 'OKL_AM_VAL_OF_K_FAILED');
503
504 IF (is_debug_statement_on) THEN
505 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_TRMNT_PVT.set_transaction_rec');
506 END IF;
507 -- set the transaction record
508 OKL_AM_LEASE_TRMNT_PVT.set_transaction_rec(
509 p_return_status => l_validate, -- RMUNJULU 3018641 changed from l_return_status
510 p_overall_status => l_overall_status,
511 p_tmt_flag => 'TMT_VALIDATED_YN',
512 p_tsu_code => 'ERROR',
513 px_tcnv_rec => lp_tcnv_rec);
514 IF (is_debug_statement_on) THEN
515 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_LEASE_TRMNT_PVT.set_transaction_rec');
516 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_TRMNT_PVT.process_transaction');
517 END IF;
518 -- update the transaction record
519 OKL_AM_LEASE_TRMNT_PVT.process_transaction(
520 p_api_version => p_api_version,
521 p_init_msg_list => OKL_API.G_FALSE,
522 x_return_status => l_return_status,
523 x_msg_count => x_msg_count,
524 x_msg_data => x_msg_data,
525 p_id => 0,
526 p_term_rec => l_term_rec,
527 p_tcnv_rec => lp_tcnv_rec,
528 x_id => lx_id,
529 p_trn_mode => 'UPDATE');
530 IF (is_debug_statement_on) THEN
531 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_LEASE_TRMNT_PVT.process_transaction , return status: ' || l_return_status);
532 END IF;
533
534 -- rollback if processing transaction failed
535 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
536 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
537 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
538 RAISE OKL_API.G_EXCEPTION_ERROR;
539 END IF;
540
541 IF (is_debug_statement_on) THEN
542 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_UTIL_PVT.process_messages');
543 END IF;
544 -- Save messages from stack into transaction message table
545 OKL_AM_UTIL_PVT.process_messages(
546 p_trx_source_table => 'OKL_TRX_CONTRACTS',
547 p_trx_id => lp_tcnv_rec.id,
548 x_return_status => l_return_status);
549 IF (is_debug_statement_on) THEN
550 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_UTIL_PVT.process_messages , return status: ' || l_return_status);
551 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_LOAN_TRMNT_PVT.get_set_tmg_run');
552 END IF;
553 -- RMUNJULU 3018641 Added code to get and set TMG_RUN
554 OKL_AM_LEASE_LOAN_TRMNT_PVT.get_set_tmg_run(
555 p_trx_id => lp_tcnv_rec.id,
556 x_return_status => l_return_status);
557 IF (is_debug_statement_on) THEN
558 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);
559 END IF;
560
561 -- rollback if api failed
562 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
563 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
564 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
565 RAISE OKL_API.G_EXCEPTION_ERROR;
566 END IF;
567
568 -- abort since validation failed
569 RAISE G_EXCEPTION_HALT_VALIDATION;
570 END IF;
571
572 END IF;
573
574 IF (is_debug_statement_on) THEN
575 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_TRMNT_PVT.get_contract_lines');
576 END IF;
577 -- get the lines
578 OKL_AM_LEASE_TRMNT_PVT.get_contract_lines(
579 p_api_version => p_api_version,
580 p_init_msg_list => OKL_API.G_FALSE,
581 x_return_status => l_return_status,
582 x_msg_count => x_msg_count,
583 x_msg_data => x_msg_data,
584 p_term_rec => l_term_rec,
585 x_klev_tbl => lx_klev_tbl);
586 IF (is_debug_statement_on) THEN
587 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_LEASE_TRMNT_PVT.get_contract_lines , return status: ' || l_return_status);
588 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_TRMNT_PVT.process_cancel_insurance');
589 END IF;
590 -- process to check and cancel insurance
591 OKL_AM_LEASE_TRMNT_PVT.process_cancel_insurance(
592 p_api_version => p_api_version,
593 p_init_msg_list => OKL_API.G_FALSE,
594 x_return_status => l_return_status,
595 x_msg_count => x_msg_count,
596 x_msg_data => x_msg_data,
597 p_term_rec => l_term_rec,
598 px_overall_status => l_overall_status,
599 px_tcnv_rec => lp_tcnv_rec,
600 p_sys_date => l_sys_date,
601 p_trn_already_set => l_trn_already_set);
602 IF (is_debug_statement_on) THEN
603 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_LEASE_TRMNT_PVT.process_cancel_insurance , return status: ' || l_return_status);
604 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_TRMNT_PVT.process_close_balances');
605 END IF;
606 -- set the balances rec, close small balances, set transaction
607 OKL_AM_LEASE_TRMNT_PVT.process_close_balances(
608 p_api_version => p_api_version,
609 p_init_msg_list => OKL_API.G_FALSE,
610 x_return_status => l_return_status,
611 x_msg_count => x_msg_count,
612 x_msg_data => x_msg_data,
613 p_term_rec => l_term_rec,
614 px_overall_status => l_overall_status,
615 px_tcnv_rec => lp_tcnv_rec,
616 x_adjv_rec => lx_adjv_rec,
617 x_ajlv_tbl => lx_ajlv_tbl,
618 p_sys_date => l_sys_date,
619 p_trn_already_set => l_trn_already_set);
620 IF (is_debug_statement_on) THEN
621 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_LEASE_TRMNT_PVT.process_close_balances , return status: ' || l_return_status);
622 END IF;
623
624
625 -- RMUNJULU BUG # 3023206 Moved Close Streams into update_k_hdr_and_lines
626 -- as accounting uses some CURR streams and so they should not be closed
627 -- before accounting is done
628
629 /*
630 -- process close streams
631 OKL_AM_LEASE_TRMNT_PVT.process_close_streams(
632 p_api_version => p_api_version,
633 p_init_msg_list => OKL_API.G_FALSE,
634 x_return_status => l_return_status,
635 x_msg_count => x_msg_count,
636 x_msg_data => x_msg_data,
637 p_term_rec => l_term_rec,
638 px_overall_status => l_overall_status,
639 px_tcnv_rec => lp_tcnv_rec,
640 x_stmv_tbl => lx_stmv_tbl,
641 p_sys_date => l_sys_date,
642 p_trn_already_set => l_trn_already_set);
643 */
644
645 IF (is_debug_statement_on) THEN
646 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_TRMNT_PVT.process_accounting_entries');
647 END IF;
648 -- do accounting entries
649 OKL_AM_LEASE_TRMNT_PVT.process_accounting_entries(
650 p_api_version => p_api_version,
651 p_init_msg_list => OKL_API.G_FALSE,
652 x_return_status => l_return_status,
653 x_msg_count => x_msg_count,
654 x_msg_data => x_msg_data,
655 p_term_rec => l_term_rec,
656 px_overall_status => l_overall_status,
657 px_tcnv_rec => lp_tcnv_rec,
658 p_sys_date => l_sys_date,
659 p_klev_tbl => lx_klev_tbl, -- PAGARG 4190887 Added
660 p_trn_already_set => l_trn_already_set);
661 IF (is_debug_statement_on) THEN
662 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_LEASE_TRMNT_PVT.process_accounting_entries , return status: ' || l_return_status);
663 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_TRMNT_PVT.process_asset_dispose');
664 END IF;
665 -- RMUNJULU 02-JAN-03 2724951 always do dispose for loans
666 -- do asset dispose
667 OKL_AM_LEASE_TRMNT_PVT.process_asset_dispose(
668 p_api_version => p_api_version,
669 p_init_msg_list => OKL_API.G_FALSE,
670 x_return_status => l_return_status,
671 x_msg_count => x_msg_count,
672 x_msg_data => x_msg_data,
673 p_term_rec => l_term_rec,
674 px_overall_status => l_overall_status,
675 px_tcnv_rec => lp_tcnv_rec,
676 p_klev_tbl => lx_klev_tbl,
677 p_trn_already_set => l_trn_already_set);
678 IF (is_debug_statement_on) THEN
679 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_LEASE_TRMNT_PVT.process_asset_dispose , return status: ' || l_return_status);
680 END IF;
681
682 /*
683 -- Check if termination with purchase
684 IF (l_term_rec.p_quote_type IN('TER_PURCHASE', 'TER_RECOURSE', 'TER_ROLL_PURCHASE')) THEN
685
686 -- do asset dispose
687 OKL_AM_LEASE_TRMNT_PVT.process_asset_dispose(
688 p_api_version => p_api_version,
689 p_init_msg_list => OKL_API.G_FALSE,
690 x_return_status => l_return_status,
691 x_msg_count => x_msg_count,
692 x_msg_data => x_msg_data,
693 p_term_rec => l_term_rec,
694 px_overall_status => l_overall_status,
695 px_tcnv_rec => lp_tcnv_rec,
696 p_klev_tbl => lx_klev_tbl,
697 p_trn_already_set => l_trn_already_set);
698
699 -- Amortization of assets not needed since termination with purchase
700 OKL_API.set_message( p_app_name => G_APP_NAME,
701 p_msg_name => 'OKL_AM_AMORTIZE_NOT_NEED');
702
703 -- Return of assets not needed since termination with purchase
704 OKL_API.set_message( p_app_name => G_APP_NAME,
705 p_msg_name => 'OKL_AM_RETURN_NOT_NEED');
706
707 ELSE -- termination without purchase
708
709 -- do amortization and asset return
710 OKL_AM_LEASE_TRMNT_PVT.process_amortize_and_return(
711 p_api_version => p_api_version,
712 p_init_msg_list => OKL_API.G_FALSE,
713 x_return_status => l_return_status,
714 x_msg_count => x_msg_count,
715 x_msg_data => x_msg_data,
716 p_term_rec => l_term_rec,
717 px_overall_status => l_overall_status,
718 px_tcnv_rec => lp_tcnv_rec,
719 p_sys_date => l_sys_date,
720 p_klev_tbl => lx_klev_tbl,
721 p_trn_already_set => l_trn_already_set);
722
723 -- Disposition of assets not needed since termination without purchase
724 OKL_API.set_message( p_app_name => G_APP_NAME,
725 p_msg_name => 'OKL_AM_DISPOSE_NOT_NEED');
726
727 END IF;
728 */
729
730 -- update the contract only if the overall_status is success
731 IF (l_overall_status = OKL_API.G_RET_STS_SUCCESS) THEN
732
733 -- Set the p_status (which sets the sts_code) for the contract
734 IF l_term_rec.p_control_flag = 'BATCH_PROCESS'
735 AND ( l_term_rec.p_quote_id IS NULL
736 OR l_term_rec.p_quote_id = OKL_API.G_MISS_NUM) THEN
737 l_status := 'EXPIRED';
738 ELSE
739 l_status := 'TERMINATED';
740 END IF;
741
742 IF (is_debug_statement_on) THEN
743 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_TRMNT_PVT.update_k_hdr_and_lines');
744 END IF;
745 -- set_and_update_contract
746 OKL_AM_LEASE_TRMNT_PVT.update_k_hdr_and_lines(
747 p_api_version => p_api_version,
748 p_init_msg_list => OKL_API.G_FALSE,
749 x_return_status => l_return_status,
750 x_msg_count => x_msg_count,
751 x_msg_data => x_msg_data,
752 p_status => l_status,
753 p_term_rec => l_term_rec,
754 p_klev_tbl => lx_klev_tbl,
755 p_trn_reason_code => lp_tcnv_rec.trn_code,
756 px_overall_status => l_overall_status,
757 px_tcnv_rec => lp_tcnv_rec,
758 x_chrv_rec => lx_chrv_rec,
759 x_clev_tbl => lx_clev_tbl,
760 p_sys_date => l_sys_date);
761 IF (is_debug_statement_on) THEN
762 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_LEASE_TRMNT_PVT.update_k_hdr_and_lines , return status: ' || l_return_status);
763 END IF;
764
765 IF l_return_status = OKL_API.G_RET_STS_SUCCESS THEN
766
767 IF (is_debug_statement_on) THEN
768 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_TRMNT_PVT.set_transaction_rec');
769 END IF;
770 -- set the transaction record
771 OKL_AM_LEASE_TRMNT_PVT.set_transaction_rec(
772 p_return_status => l_return_status,
773 p_overall_status => l_overall_status,
774 p_tmt_flag => 'TMT_CONTRACT_UPDATED_YN',
775 p_tsu_code => 'PROCESSED',
776 px_tcnv_rec => lp_tcnv_rec);
777 IF (is_debug_statement_on) THEN
778 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_LEASE_TRMNT_PVT.set_transaction_rec');
779 END IF;
780
781 ELSE -- Update of K hdr and lines failed
782
783 -- Contract table update failed.
784 OKL_API.set_message( p_app_name => G_APP_NAME,
785 p_msg_name => 'OKL_AM_ERR_K_UPD');
786
787 IF (is_debug_statement_on) THEN
788 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_TRMNT_PVT.set_transaction_rec');
789 END IF;
790 -- set the transaction record
791 OKL_AM_LEASE_TRMNT_PVT.set_transaction_rec(
792 p_return_status => l_return_status,
793 p_overall_status => l_overall_status,
794 p_tmt_flag => 'TMT_CONTRACT_UPDATED_YN',
795 p_tsu_code => 'ERROR',
796 px_tcnv_rec => lp_tcnv_rec);
797 IF (is_debug_statement_on) THEN
798 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_LEASE_TRMNT_PVT.set_transaction_rec');
799 END IF;
800 END IF;
801 END IF;
802
803 IF (is_debug_statement_on) THEN
804 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_TRMNT_PVT.process_transaction');
805 END IF;
806 -- update the transaction record
807 OKL_AM_LEASE_TRMNT_PVT.process_transaction(
808 p_api_version => p_api_version,
809 p_init_msg_list => OKL_API.G_FALSE,
810 x_return_status => l_return_status,
811 x_msg_count => x_msg_count,
812 x_msg_data => x_msg_data,
813 p_id => 0,
814 p_term_rec => l_term_rec,
815 p_tcnv_rec => lp_tcnv_rec,
816 x_id => lx_id,
817 p_trn_mode => 'UPDATE');
818 IF (is_debug_statement_on) THEN
819 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_LEASE_TRMNT_PVT.process_transaction , return status: ' || l_return_status);
820 END IF;
821
822 -- rollback if processing transaction failed
823 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
824 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
825 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
826 RAISE OKL_API.G_EXCEPTION_ERROR;
827 END IF;
828
829 IF (is_debug_statement_on) THEN
830 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_UTIL_PVT.process_messages');
831 END IF;
832 -- Save messages from stack into transaction message table
833 OKL_AM_UTIL_PVT.process_messages(
834 p_trx_source_table => 'OKL_TRX_CONTRACTS',
835 p_trx_id => lp_tcnv_rec.id,
836 x_return_status => l_return_status);
837 IF (is_debug_statement_on) THEN
838 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'called OKL_AM_UTIL_PVT.process_messages , return status: ' || l_return_status);
839 END IF;
840
841 IF (is_debug_statement_on) THEN
842 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_STATEMENT,l_module_name,'calling OKL_AM_LEASE_LOAN_TRMNT_PVT.get_set_tmg_run');
843 END IF;
844 -- RMUNJULU 3018641 Added code to get and set TMG_RUN
845 OKL_AM_LEASE_LOAN_TRMNT_PVT.get_set_tmg_run(
846 p_trx_id => lp_tcnv_rec.id,
847 x_return_status => l_return_status);
848 IF (is_debug_statement_on) THEN
849 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);
850 END IF;
851
852 -- rollback if api failed
853 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
854 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
855 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
856 RAISE OKL_API.G_EXCEPTION_ERROR;
857 END IF;
858
859 -- Set the return status
860 x_return_status := OKL_API.G_RET_STS_SUCCESS;
861
862 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
863 IF (is_debug_procedure_on) THEN
864 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_PROCEDURE,l_module_name ,'End(-)');
865 END IF;
866
867 EXCEPTION
868 WHEN G_EXCEPTION_HALT_VALIDATION THEN
869 IF (is_debug_exception_on) THEN
870 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_EXCEPTION,l_module_name, 'EXCEPTION :'||'G_EXCEPTION_HALT_VALIDATION');
871 END IF;
872 x_return_status := OKL_API.G_RET_STS_SUCCESS;
873 WHEN OKL_API.G_EXCEPTION_ERROR THEN
874 IF (is_debug_exception_on) THEN
875 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_EXCEPTION,l_module_name, 'EXCEPTION :'||'G_EXCEPTION_ERROR');
876 END IF;
877 x_return_status := OKL_API.HANDLE_EXCEPTIONS
878 (
879 l_api_name,
880 G_PKG_NAME,
881 'OKL_API.G_RET_STS_ERROR',
882 x_msg_count,
883 x_msg_data,
884 '_PVT'
885 );
886 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
887 IF (is_debug_exception_on) THEN
888 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_EXCEPTION,l_module_name, 'EXCEPTION :'||'G_EXCEPTION_UNEXPECTED_ERROR');
889 END IF;
890 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
891 (
892 l_api_name,
893 G_PKG_NAME,
894 'OKL_API.G_RET_STS_UNEXP_ERROR',
895 x_msg_count,
896 x_msg_data,
897 '_PVT'
898 );
899 WHEN OTHERS THEN
900 IF (is_debug_exception_on) THEN
901 OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_EXCEPTION,l_module_name, 'EXCEPTION :'||'OTHERS, SQLCODE: '
902 || sqlcode || ' , SQLERRM : ' || sqlerrm);
903 END IF;
904 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
905 (
906 l_api_name,
907 G_PKG_NAME,
908 'OTHERS',
909 x_msg_count,
910 x_msg_data,
911 '_PVT'
912 );
913 END loan_termination;
914
915 END OKL_AM_LOAN_TRMNT_PVT;