[Home] [Help]
PACKAGE BODY: APPS.OKL_INSURANCE_POLICIES_PVT
Source
1 PACKAGE BODY OKL_INSURANCE_POLICIES_PVT AS
2 /* $Header: OKLRIPXB.pls 120.47.12010000.3 2008/10/29 02:45:02 rpillay ship $ */
3
4
5 -- Start of wraper code generated automatically by Debug code generator
6 L_MODULE VARCHAR2(40) := 'LEASE.INSURANCE';
7 L_DEBUG_ENABLED CONSTANT VARCHAR2(10) := OKL_DEBUG_PUB.CHECK_LOG_ENABLED;
8 L_LEVEL_PROCEDURE NUMBER;
9 IS_DEBUG_PROCEDURE_ON BOOLEAN;
10 -- End of wraper code generated automatically by Debug code generator
11 --------------------------------------------------------
12 -- Procedures and Functions
13 ---------------------------------------------------------------------------
14
15
16 ---------------------------------------------------------------------------
17 -- Start of comments
18 --
19 -- Function Name : ON_ACCOUNT_CREDIT_MEMO
20 -- Description :It creates on account credit memo in the BPD's internal
21 -- Transaction Tables.
22 -- Business Rules :
23 -- Parameters :
24 -- Version : 1.0
25 -- End of Comments
26 ---------------------------------------------------------------------------
27
28 -- gboomina Bug 4622198 - Added to get codes for Investor Special Accounting treatment - Start
29
30 PROCEDURE get_special_acct_codes(
31 p_khr_id IN NUMBER,
32 p_trx_date IN DATE,
33 x_fact_sync_code OUT NOCOPY VARCHAR2,
34 x_inv_acct_code OUT NOCOPY VARCHAR2
35 )
36 IS
37
38 l_init_msg_list VARCHAR2(1) := Okc_Api.g_false;
39 l_return_status VARCHAR2(1);
40 l_msg_count NUMBER;
41 l_msg_data VARCHAR2(2000);
42 l_scs_code VARCHAR2(2000);
43
44 -- cursor to get scs_code
45 CURSOR scs_code_csr IS
46 SELECT scs_code
47 FROM OKL_K_HEADERS_FULL_V
48 WHERE id = p_khr_id;
49
50 BEGIN
51 -- get scs_code
52 FOR x IN scs_code_csr
53 LOOP
54 l_scs_code := x.scs_code;
55 END LOOP;
56
57 IF l_scs_code IS NULL THEN
58 OKL_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'SCS_CODE');
59 RAISE OKL_API.G_EXCEPTION_ERROR;
60 END IF;
61
62 OKL_SECURITIZATION_PVT.check_khr_ia_associated(
63 p_api_version => 1.0
64 ,p_init_msg_list => l_init_msg_list
65 ,x_return_status => l_return_status
66 ,x_msg_count => l_msg_count
67 ,x_msg_data => l_msg_data
68 ,p_khr_id => p_khr_id
69 ,p_scs_code => l_scs_code
70 ,p_trx_date => p_trx_date
71 ,x_fact_synd_code => x_fact_sync_code
72 ,x_inv_acct_code => x_inv_acct_code
73 );
74
75 -- store the highest degree of error
76 IF (l_return_status <> Okl_Api.G_RET_STS_SUCCESS) THEN
77 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
78 -- need to leave
79 Okl_Api.set_message(p_app_name => g_app_name,
80 p_msg_name => 'OKL_ACC_SEC_PVT_ERROR');
81 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
82 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
83 Okl_Api.set_message(p_app_name => g_app_name,
84 p_msg_name => 'OKL_ACC_SEC_PVT_ERROR');
85 RAISE OKL_API.G_EXCEPTION_ERROR;
86 END IF;
87 END IF;
88
89 END get_special_acct_codes;
90
91 -- gboomina Bug 4622198 - Added to get codes for Investor Special Accounting treatment - End
92
93
94 --Added for bug 3976894
95
96 PROCEDURE on_account_credit_memo
97 (
98 p_api_version IN NUMBER,
99 p_init_msg_list IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
100 p_try_id IN NUMBER,
101 p_khr_id IN NUMBER,
102 p_kle_id IN NUMBER,
103 p_ipy_id IN NUMBER,
104 p_credit_date IN DATE,
105 p_credit_amount IN NUMBER,
106 p_credit_sty_id IN NUMBER,
107 x_return_status OUT NOCOPY VARCHAR2,
108 x_msg_count OUT NOCOPY NUMBER,
109 x_msg_data OUT NOCOPY VARCHAR2,
110 x_tai_id OUT NOCOPY NUMBER
111
112 )IS
113
114
115 l_api_name CONSTANT VARCHAR2(30) := 'on_account_credit_memo';
116
117 l_api_version CONSTANT NUMBER := 1;
118 l_return_status VARCHAR2(1):= OKC_API.G_RET_STS_SUCCESS ;
119
120
121 /*
122 l_bpd_acc_rec OKL_INSURANCE_POLICIES_PVT.bpd_acc_rec_type ;
123 l_taiv_rec OKL_INSURANCE_POLICIES_PVT.taiv_rec_type ;
124 lx_taiv_rec OKL_INSURANCE_POLICIES_PVT.taiv_rec_type ;
125 l_tilv_rec OKL_INSURANCE_POLICIES_PVT.tilv_rec_type ;
126 lx_tilv_rec OKL_INSURANCE_POLICIES_PVT.tilv_rec_type;
127 */
128
129 -- Bug 5897792 Start
130 lp_taiv_rec okl_tai_pvt.taiv_rec_type;
131 lp_tilv_rec okl_til_pvt.tilv_rec_type;
132 lp_tilv_tbl okl_til_pvt.tilv_tbl_type;
133 lp_tldv_tbl okl_tld_pvt.tldv_tbl_type;
134 lx_taiv_rec okl_tai_pvt.taiv_rec_type;
135 lx_tilv_tbl okl_til_pvt.tilv_tbl_type;
136 lx_tldv_tbl okl_tld_pvt.tldv_tbl_type;
137 -- Bug 5897792 End
138
139
140 BEGIN
141
142 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
143 G_PKG_NAME,
144 p_init_msg_list,
145 l_api_version,
146 p_api_version,
147 '_PROCESS',
148 x_return_status);
149
150
151
152
153 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
154 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
155 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
156 RAISE OKC_API.G_EXCEPTION_ERROR;
157 END IF;
158
159
160 -- Bug 5897792 Start
161 /*
162 ---- Create Header Record
163
164 l_taiv_rec.khr_id := p_khr_id;
165 l_taiv_rec.try_id := p_try_id;
166 l_taiv_rec.ipy_id := p_ipy_id ;
167 l_taiv_rec.date_invoiced := NVL(p_credit_date,trunc(sysdate));
168 l_taiv_rec.date_entered := trunc(sysdate) ;
169 l_taiv_rec.amount := p_credit_amount;
170 l_taiv_rec.trx_status_code := 'SUBMITTED';
171 l_taiv_rec.legal_entity_id := OKL_LEGAL_ENTITY_UTIL.get_khr_le_id(p_khr_id => p_khr_id);
172
173
174 -- Start of Debug code generator for okl_acc_call_pub.create_acc_trans
175 IF(L_DEBUG_ENABLED='Y') THEN
176 L_LEVEL_PROCEDURE :=FND_LOG.LEVEL_PROCEDURE;
177 IS_DEBUG_PROCEDURE_ON := OKL_DEBUG_PUB.Check_Log_On(L_MODULE, L_LEVEL_PROCEDURE);
178 END IF;
179
180 IF(IS_DEBUG_PROCEDURE_ON) THEN
181 BEGIN
182 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call okl_trx_ar_invoices_pub.insert_trx_ar_invoices ');
183 END;
184 END IF;
185
186 okl_trx_ar_invoices_pub.insert_trx_ar_invoices(p_api_version,
187 p_init_msg_list,
188 l_return_status,
189 x_msg_count,
190 x_msg_data,
191 l_taiv_rec,
192 lx_taiv_rec);
193 IF(IS_DEBUG_PROCEDURE_ON) THEN
194 BEGIN
195 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call okl_trx_ar_invoices_pub.insert_trx_ar_invoices ');
196 END;
197 END IF;
198
199 IF l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
200 x_return_status := l_return_status;
201 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
202 ELSIF l_return_status = OKL_API.G_RET_STS_ERROR THEN
203 x_return_status := l_return_status;
204 RAISE OKL_API.G_EXCEPTION_ERROR;
205 END IF;
206
207
208
209
210 x_tai_id := lx_taiv_rec.id;
211 ----------------------------------------------------
212 --- Create Line Record
213 -------------------------------------------------------
214
215 l_tilv_rec.amount := p_credit_amount;
216 l_tilv_rec.kle_id := p_kle_id;
217 l_tilv_rec.line_number := 1;
218 l_tilv_rec.tai_id := x_tai_id;
219 l_tilv_rec.description := 'OKL Credit Memo';
220 l_tilv_rec.inv_receiv_line_code := 'LINE';
221 l_tilv_rec.sty_id := p_credit_sty_id;
222
223
224 -- Start of Debug code generator for okl_acc_call_pub.create_acc_trans
225 IF(L_DEBUG_ENABLED='Y') THEN
226 L_LEVEL_PROCEDURE :=FND_LOG.LEVEL_PROCEDURE;
227 IS_DEBUG_PROCEDURE_ON := OKL_DEBUG_PUB.Check_Log_On(L_MODULE, L_LEVEL_PROCEDURE);
228 END IF;
229
230 IF(IS_DEBUG_PROCEDURE_ON) THEN
231 BEGIN
232 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call okl_txl_ar_inv_lns_pub.insert_txl_ar_inv_lns ');
233 END;
234 END IF;
235
236
237
238 okl_txl_ar_inv_lns_pub.insert_txl_ar_inv_lns(p_api_version,
239 p_init_msg_list,
240 l_return_status,
241 x_msg_count,
242 x_msg_data,
243 l_tilv_rec,
244 lx_tilv_rec);
245
246 IF(IS_DEBUG_PROCEDURE_ON) THEN
247 BEGIN
248 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call okl_txl_ar_inv_lns_pub.insert_txl_ar_inv_lns ');
249 END;
250 END IF;
251
252 IF l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
253 x_return_status := l_return_status;
254 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
255 ELSIF l_return_status = OKL_API.G_RET_STS_ERROR THEN
256 x_return_status := l_return_status;
257 RAISE OKL_API.G_EXCEPTION_ERROR;
258 END IF;
259
260
261
262
263 ----------------------------------------------------
264 --- Create Accounting entries
265 ----------------------------------------------------
266
267
268 l_bpd_acc_rec.id := lx_tilv_rec.id;
269 l_bpd_acc_rec.source_table := 'OKL_TXL_AR_INV_LNS_B';
270
271
272 -- Start of Debug code generator for okl_acc_call_pub.create_acc_trans
273 IF(L_DEBUG_ENABLED='Y') THEN
274 L_LEVEL_PROCEDURE :=FND_LOG.LEVEL_PROCEDURE;
275 IS_DEBUG_PROCEDURE_ON := OKL_DEBUG_PUB.Check_Log_On(L_MODULE, L_LEVEL_PROCEDURE);
276 END IF;
277
278 IF(IS_DEBUG_PROCEDURE_ON) THEN
279 BEGIN
280 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call okl_acc_call_pub.create_acc_trans ');
281 END;
282 END IF;
283
284 OKL_ACC_CALL_PUB.CREATE_ACC_TRANS(
285 p_api_version => p_api_version
286 ,p_init_msg_list => p_init_msg_list
287 ,x_return_status => l_return_status
288 ,x_msg_count => x_msg_count
289 ,x_msg_data => x_msg_data
290 ,p_bpd_acc_rec => l_bpd_acc_rec);
291
292 IF(IS_DEBUG_PROCEDURE_ON) THEN
293 BEGIN
294 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call okl_acc_call_pub.create_acc_trans ');
295 END;
296 END IF;
297 -- End of Debug for okl_acc_call_pub.create_acc_trans
298 IF l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
299 x_return_status := l_return_status;
300 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
301 ELSIF l_return_status = OKL_API.G_RET_STS_ERROR THEN
302 x_return_status := l_return_status;
303 RAISE OKL_API.G_EXCEPTION_ERROR;
304 END IF;
305
306 */ -- 5897792 End
307
308 -- 5897792 Start Replace by central billing txn API call
309 ---- Create Header Record
310
311 lp_taiv_rec.khr_id := p_khr_id;
312 lp_taiv_rec.try_id := p_try_id;
313 lp_taiv_rec.ipy_id := p_ipy_id ;
314 lp_taiv_rec.date_invoiced := NVL(p_credit_date,trunc(sysdate));
315 lp_taiv_rec.date_entered := trunc(sysdate) ;
316 lp_taiv_rec.amount := p_credit_amount;
317 lp_taiv_rec.trx_status_code := 'SUBMITTED';
318 lp_taiv_rec.legal_entity_id := OKL_LEGAL_ENTITY_UTIL.get_khr_le_id(p_khr_id => p_khr_id);
319 lp_taiv_rec.okl_source_billing_trx := 'INSURANCE';
320
321 --- Create Line Record
322
323 lp_tilv_rec.amount := p_credit_amount;
324 lp_tilv_rec.kle_id := p_kle_id;
325 lp_tilv_rec.line_number := 1;
326 lp_tilv_rec.tai_id := x_tai_id;
327 lp_tilv_rec.description := 'OKL Credit Memo';
328 lp_tilv_rec.inv_receiv_line_code := 'LINE';
329 lp_tilv_rec.sty_id := p_credit_sty_id;
330
331 lp_tilv_tbl(1) := lp_tilv_rec;
332
333 okl_internal_billing_pvt.create_billing_trx(
334 p_api_version =>l_api_version,
335 p_init_msg_list =>p_init_msg_list,
336 x_return_status => x_return_status,
337 x_msg_count => x_msg_count,
338 x_msg_data => x_msg_data,
339 p_taiv_rec => lp_taiv_rec,
340 p_tilv_tbl => lp_tilv_tbl,
341 p_tldv_tbl => lp_tldv_tbl,
342 x_taiv_rec => lx_taiv_rec,
343 x_tilv_tbl => lx_tilv_tbl,
344 x_tldv_tbl => lx_tldv_tbl);
345
346 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
347 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
348 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
349 RAISE OKL_API.G_EXCEPTION_ERROR;
350 END IF;
351
352 -- 5897792 Start End
353
354 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
355
356 EXCEPTION
357 WHEN OKC_API.G_EXCEPTION_ERROR THEN
358 x_return_status := OKC_API.HANDLE_EXCEPTIONS
359 (
360 l_api_name,
361 G_PKG_NAME,
362 'OKC_API.G_RET_STS_ERROR',
363 x_msg_count,
364 x_msg_data,
365 '_PROCESS'
366 );
367 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
368 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
369 (
370 l_api_name,
371 G_PKG_NAME,
372 'OKC_API.G_RET_STS_UNEXP_ERROR',
373 x_msg_count,
374 x_msg_data,
375 '_PROCESS'
376 );
377 WHEN OTHERS THEN
378 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
379 (
380 l_api_name,
381 G_PKG_NAME,
382 'OTHERS',
383 x_msg_count,
384 x_msg_data,
385 '_PROCESS'
386 );
387
388 END ON_ACCOUNT_CREDIT_MEMO;
389
390
391
392 ---------------------------------------------------------------------------
393 -- Start of comments
394 --
395 -- Function Name : get_contract_status
396 -- Description :It get Contract status based on contract id.
397 -- Business Rules :
398 -- Parameters :
399 -- Version : 1.0
400 -- End of Comments
401 ---------------------------------------------------------------------------
402 FUNCTION get_contract_status (
403 p_khr_id IN NUMBER,
404 x_contract_status OUT NOCOPY VARCHAR2
405 ) RETURN VARCHAR2 IS
406 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
407 CURSOR okc_k_status_csr(p_khr_id IN NUMBER) IS
408 SELECT STE_CODE
409 FROM OKC_K_HEADERS_V KHR , OKC_STATUSES_B OST
410 WHERE KHR.ID = p_khr_id
411 AND KHR.STS_CODE = OST.CODE ;
412
413 BEGIN
414 OPEN okc_k_status_csr(p_khr_id);
415 FETCH okc_k_status_csr INTO x_contract_status ;
416 IF(okc_k_status_csr%NOTFOUND) THEN
417 -- store SQL error message on message stack for caller
418 OKL_API.set_message(G_APP_NAME,
419 G_INVALID_CONTRACT
420 );
421 CLOSE okc_k_status_csr ;
422 l_return_status := OKC_API.G_RET_STS_ERROR;
423 -- Change it to
424 RETURN(l_return_status);
425 END IF;
426 CLOSE okc_k_status_csr ;
427 RETURN(l_return_status);
428 EXCEPTION
429 WHEN OTHERS THEN
430 -- store SQL error message on message stack for caller
431 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
432 -- notify caller of an UNEXPECTED error
433 l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
434 -- verify that cursor was closed
435 IF okc_k_status_csr%ISOPEN THEN
436 CLOSE okc_k_status_csr;
437 END IF;
438 RETURN(l_return_status);
439 END get_contract_status;
440
441 -----------------------------------------------------
442
443 PROCEDURE insert_ap_request(
444 p_api_version IN NUMBER,
445 p_init_msg_list IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
446 x_return_status OUT NOCOPY VARCHAR2,
447 x_msg_count OUT NOCOPY NUMBER,
448 x_msg_data OUT NOCOPY VARCHAR2,
449 p_tap_id IN NUMBER,
450 p_credit_amount IN NUMBER,
451 p_credit_sty_id IN NUMBER,
452 p_khr_id IN NUMBER ,
453 p_kle_id IN NUMBER,
454 p_invoice_date IN DATE,
455 p_trx_id IN NUMBER,
456 p_vendor_site_id IN NUMBER ,
457 x_request_id OUT NOCOPY NUMBER
458 ) IS
459
460 l_tplv_rec okl_tpl_pvt.tplv_rec_type ;
461 l_tapv_rec okl_tap_pvt.tapv_rec_type ;
462
463 x_tplv_rec okl_tpl_pvt.tplv_rec_type ;
464 x_tapv_rec okl_tap_pvt.tapv_rec_type ;
465
466 /* 22-JAN-2007 ANSETHUR BUILD: R12 B DISBURSEMENT Start Changes */
467 l_tplv_tbl okl_tpl_pvt.tplv_tbl_type ;
468 x_tplv_tbl okl_tpl_pvt.tplv_tbl_type ;
469 /* 22-JAN-2007 ANSETHUR BUILD: R12 B DISBURSEMENT End Changes */
470
471 CURSOR c_trx_type (cp_name VARCHAR2, cp_language VARCHAR2) IS
472 SELECT id
473 FROM okl_trx_types_tl
474 WHERE name = cp_name
475 AND language = cp_language;
476
477 CURSOR c_tap_info (P_TAP_ID NUMBER) IS
478 SELECT
479 CURRENCY_CODE,
480 SET_OF_BOOKS_ID
481 FROM OKL_TRX_AP_INVOICES_B
482 WHERE ID = P_TAP_ID ;
483
484 CURSOR C_CURRENCY (P_khr_ID NUMBER) IS
485 SELECT CURRENCY_CODE --Bug:3825159
486 FROM OKC_K_HEADERS_B
487 WHERE ID = P_khr_ID ;
488
489
490 l_ctxt_val_tbl Okl_Account_Dist_Pub.CTXT_VAL_TBL_TYPE;
491 l_acc_gen_primary_key_tbl Okl_Account_Dist_Pub.acc_gen_primary_key;
492 l_template_tbl Okl_Account_Dist_Pub.AVLV_TBL_TYPE;
493 l_amount_tbl Okl_Account_Dist_Pub.AMOUNT_TBL_TYPE;
494
495
496 CURSOR c_app_info IS
497 SELECT APPLICATION_ID
498 FROM FND_APPLICATION
499 WHERE APPLICATION_SHORT_NAME = 'OKL' ;
500
501 ------
502
503 l_api_name CONSTANT VARCHAR2(30) := 'insert_ap_request';
504
505 l_api_version CONSTANT NUMBER := 1;
506 l_return_status VARCHAR2(1):= OKC_API.G_RET_STS_SUCCESS ;
507 l_trx_type_ID okl_trx_types_v.id%TYPE;
508
509 p_name VARCHAR2(30) := 'BILLING' ;
510 -- Need to change code for hard coded value
511 p_language VARCHAR2(2) := 'US' ;
512 l_sql NUMBER ;
513 l_app_id NUMBER;
514
515 l_document_category VARCHAR2(100):= 'OKL Lease Pay Invoices';
516 lx_dbseqnm VARCHAR2(2000):= '';
517 lx_dbseqid NUMBER(38):= NULL;
518
519 BEGIN
520
521 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
522 G_PKG_NAME,
523 p_init_msg_list,
524 l_api_version,
525 p_api_version,
526 '_PROCESS',
527 x_return_status);
528 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
529 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
530 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
531 RAISE OKC_API.G_EXCEPTION_ERROR;
532 END IF;
533
534
535
536 -- GET Application Info
537 OPEN c_app_info ;
538 FETCH c_app_info INTO l_app_id;
539 CLOSE c_app_info;
540
541 --Removed as part of fixing 3745151
542 /*
543 IF(c_app_info%NOTFOUND) THEN
544 -- Change Message
545 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_TRANSACTION',
546 G_COL_NAME_TOKEN,'Billing');
547 x_return_status := OKC_API.G_RET_STS_ERROR ;
548 CLOSE c_app_info ;
549 RAISE OKC_API.G_EXCEPTION_ERROR;
550 END if ;
551 */
552 --Removed as part of fixing 3745151
553
554
555
556 l_tapv_rec.IPVS_ID := p_vendor_site_id ;
557
558
559
560 -- Header Information
561 l_tapv_rec.sfwt_flag := 'N' ;
562 l_tapv_rec.TRX_STATUS_CODE := 'ENTERED' ;
563 IF ( p_tap_id <> NULL OR p_tap_id <> OKC_API.G_MISS_NUM ) THEN
564 OPEN c_tap_info (p_tap_id);
565 FETCH c_tap_info INTO l_tapv_rec.CURRENCY_CODE,l_tapv_rec.SET_OF_BOOKS_ID;
566 IF(c_tap_info%NOTFOUND) THEN
567 Okc_Api.set_message(G_APP_NAME, 'OKL_INVALID_INVOICE');
568 x_return_status := OKC_API.G_RET_STS_ERROR ;
569 CLOSE c_tap_info ;
570 RAISE OKC_API.G_EXCEPTION_ERROR;
571 END if ;
572 CLOSE c_tap_info;
573 l_tapv_rec.TAP_ID_REVERSES := p_tap_id ;
574 l_tapv_rec.INVOICE_TYPE := 'CREDIT';
575 ELSE
576
577 OPEN C_CURRENCY (p_khr_id);
578 FETCH C_CURRENCY INTO l_tapv_rec.CURRENCY_CODE;--,l_tapv_rec.SET_OF_BOOKS_ID;
579 IF(C_CURRENCY%NOTFOUND) THEN
580 Okc_Api.set_message(G_APP_NAME, 'OKL_INVALID_CONTRACT');
581 x_return_status := OKC_API.G_RET_STS_ERROR ;
582 CLOSE C_CURRENCY ;
583 RAISE OKC_API.G_EXCEPTION_ERROR;
584 END if ;
585 CLOSE C_CURRENCY;
586
587 l_tapv_rec.TAP_ID_REVERSES := OKC_API.G_MISS_NUM ;
588 l_tapv_rec.INVOICE_TYPE := 'STANDARD';
589 -- GET SET OF BOOK
590 l_tapv_rec.SET_OF_BOOKS_ID := OKL_ACCOUNTING_UTIL.get_set_of_books_id; --smoduga fix for bug 4238141
591
592 END IF;
593
594 l_tapv_rec.TRY_ID := p_trx_id ;
595 /* 22-JAN-2007 ANSETHUR BUILD: R12 B DISBURSEMENT Start changes */
596 l_tapv_rec.KHR_ID := null ; -- p_khr_id ;
597 /* 22-JAN-2007 ANSETHUR BUILD: R12 B DISBURSEMENT End changes */
598 l_tapv_rec.AMOUNT := p_credit_amount;
599
600 BEGIN
601 l_tapv_rec.Invoice_Number := fnd_seqnum.get_next_sequence
602 (appid => l_app_id,
603 cat_code => l_document_category,
604 sobid => l_tapv_rec.SET_OF_BOOKS_ID,
605 met_code => 'A',
606 trx_date => SYSDATE,
607 dbseqnm => lx_dbseqnm,
608 dbseqid => lx_dbseqid);
609
610 EXCEPTION
611 WHEN OTHERS THEN
612 OKL_API.Set_Message(p_app_name => OKL_API.G_APP_NAME,
613 p_msg_name => 'OKL_UNEXPECTED_ERROR',
614 p_token1 => 'OKL_SQLCODE',
615 p_token1_value => SQLCODE,
616 p_token2 => 'OKL_SQLERRM',
617 p_token2_value => SQLERRM);
618 END;
619
620 --l_tapv_rec.INVOICE_NUMBER := 'OKLINV' || TO_CHAR(l_sql);
621 l_tapv_rec.WORKFLOW_YN := 'N';
622 l_tapv_rec.CONSOLIDATE_YN := 'N';
623 l_tapv_rec.WAIT_VENDOR_INVOICE_YN := 'N';
624 l_tapv_rec.DATE_INVOICED := p_invoice_date;
625 l_tapv_rec.DATE_GL := p_invoice_date;
626 l_tapv_rec.DATE_ENTERED := SYSDATE;
627 l_tapv_rec.object_version_number := 1;
628 SELECT DECODE(FND_GLOBAL.CONC_REQUEST_ID,-1,NULL,FND_GLOBAL.CONC_REQUEST_ID),
629 DECODE(FND_GLOBAL.PROG_APPL_ID,-1,NULL,FND_GLOBAL.PROG_APPL_ID),
630 DECODE(FND_GLOBAL.CONC_PROGRAM_ID,-1,NULL,FND_GLOBAL.CONC_PROGRAM_ID),
631 DECODE(FND_GLOBAL.CONC_REQUEST_ID,-1,NULL,SYSDATE),
632 mo_global.get_current_org_id() INTO l_tapv_rec.REQUEST_ID,
633 l_tapv_rec.PROGRAM_APPLICATION_ID,
634 l_tapv_rec.PROGRAM_ID,
635 l_tapv_rec.PROGRAM_UPDATE_DATE,
636 l_tapv_rec.ORG_ID FROM dual;
637 l_tapv_rec.legal_entity_id := OKL_LEGAL_ENTITY_UTIL.get_khr_le_id(p_khr_id => p_khr_id);
638
639
640
641 --------------
642
643 l_tplv_rec.SFWT_FLAG := 'N';
644 l_tplv_rec.KLE_ID := p_kle_id;
645 -- l_tplv_rec.INV_DISTR_LINE_CODE := 'A' ; -- Need to find out from rina
646 l_tplv_rec.INV_DISTR_LINE_CODE := 'ITEM' ; --| 03-Oct-2007 cklee Fixed Bug 6469797 |
647 l_tplv_rec.STY_ID := p_credit_sty_id;
648 l_tplv_rec.TAP_ID := x_tapv_rec.id ;
649 l_tplv_rec.AMOUNT := p_credit_amount;
650 l_tplv_rec.LINE_NUMBER := 1;
651 l_tplv_rec.object_version_number := 1;
652 /* 22-JAN-2007 ANSETHUR BUILD: R12 B DISBURSEMENT Start Changes */
653 l_tplv_rec.KHR_ID := p_khr_id ;
654 /* 22-JAN-2007 ANSETHUR BUILD: R12 B DISBURSEMENT End Changes */
655
656
657 SELECT DECODE(FND_GLOBAL.CONC_REQUEST_ID,-1,NULL,FND_GLOBAL.CONC_REQUEST_ID),
658 DECODE(FND_GLOBAL.PROG_APPL_ID,-1,NULL,FND_GLOBAL.PROG_APPL_ID),
659 DECODE(FND_GLOBAL.CONC_PROGRAM_ID,-1,NULL,FND_GLOBAL.CONC_PROGRAM_ID),
660 DECODE(FND_GLOBAL.CONC_REQUEST_ID,-1,NULL,SYSDATE),
661 mo_global.get_current_org_id() INTO l_tplv_rec.REQUEST_ID,
662 l_tplv_rec.PROGRAM_APPLICATION_ID,
663 l_tplv_rec.PROGRAM_ID,
664 l_tplv_rec.PROGRAM_UPDATE_DATE,
665 l_tplv_rec.ORG_ID FROM dual;
666
667
668
669 ------------------------------------------------------------------------------------
670 /* 22-JAN-2007 ANSETHUR BUILD: R12 B DISBURSEMENT Start changes */
671
672 IF(IS_DEBUG_PROCEDURE_ON) THEN
673 BEGIN
674 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call OKL_CREATE_DISB_TRANS_PVT.create_disb_trx ');
675 END;
676 END IF;
677
678 l_tplv_tbl(0) := l_tplv_rec;
679
680 OKL_CREATE_DISB_TRANS_PVT.create_disb_trx(p_api_version
681 ,p_init_msg_list => p_init_msg_list
682 ,x_return_status => l_return_status
683 ,x_msg_count => x_msg_count
684 ,x_msg_data => x_msg_data
685 ,p_tapv_rec =>l_tapv_rec
686 ,p_tplv_tbl =>l_tplv_tbl
687 ,x_tapv_rec =>x_tapv_rec
688 ,x_tplv_tbl =>x_tplv_tbl
689 );
690 IF(IS_DEBUG_PROCEDURE_ON) THEN
691 BEGIN
692 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call OKL_CREATE_DISB_TRANS_PVT.create_disb_trx ');
693 END;
694 END IF;
695
696 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
697 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
698 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
699 RAISE OKC_API.G_EXCEPTION_ERROR;
700 END IF;
701
702 x_request_id := x_tapv_rec.id ;
703
704 /* 22-JAN-2007 ANSETHUR BUILD: R12 B DISBURSEMENT End changes */
705
706 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
707
708 EXCEPTION
709 WHEN OKC_API.G_EXCEPTION_ERROR THEN
710 x_return_status := OKC_API.HANDLE_EXCEPTIONS
711 (
712 l_api_name,
713 G_PKG_NAME,
714 'OKC_API.G_RET_STS_ERROR',
715 x_msg_count,
716 x_msg_data,
717 '_PROCESS'
718 );
719 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
720 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
721 (
722 l_api_name,
723 G_PKG_NAME,
724 'OKC_API.G_RET_STS_UNEXP_ERROR',
725 x_msg_count,
726 x_msg_data,
727 '_PROCESS'
728 );
729 WHEN OTHERS THEN
730 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
731 (
732 l_api_name,
733 G_PKG_NAME,
734 'OTHERS',
735 x_msg_count,
736 x_msg_data,
737 '_PROCESS'
738 );
739 END insert_ap_request;
740
741
742
743
744 PROCEDURE insert_ap_request(
745 p_api_version IN NUMBER,
746 p_init_msg_list IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
747 x_return_status OUT NOCOPY VARCHAR2,
748 x_msg_count OUT NOCOPY NUMBER,
749 x_msg_data OUT NOCOPY VARCHAR2,
750 p_tap_id IN NUMBER,
751 p_credit_amount IN NUMBER,
752 p_credit_sty_id IN NUMBER,
753 p_khr_id IN NUMBER ,
754 p_kle_id IN NUMBER,
755 p_invoice_date IN DATE,
756 p_trx_id IN NUMBER
757
758 )
759
760 IS
761 l_tplv_rec okl_tpl_pvt.tplv_rec_type ;
762 l_tapv_rec okl_tap_pvt.tapv_rec_type ;
763
764 x_tplv_rec okl_tpl_pvt.tplv_rec_type ;
765 x_tapv_rec okl_tap_pvt.tapv_rec_type ;
766
767 /* 22-JAN-2007 ANSETHUR BUILD: R12 B DISBURSEMENT Start Changes */
768 l_tplv_tbl okl_tpl_pvt.tplv_tbl_type ;
769 x_tplv_tbl okl_tpl_pvt.tplv_tbl_type ;
770 /* 22-JAN-2007 ANSETHUR BUILD: R12 B DISBURSEMENT End Changes */
771
772 -- skgautam Added as part of fix of bug 4146178
773 l_vendor_id NUMBER;
774 l_vendor VARCHAR2(100);
775 l_org NUMBER;
776
777 CURSOR c_vendor_info (p_kle_id NUMBER ) IS --bug 4146178
778 SELECT PV.VENDOR_ID VENDOR_ID,PV.VENDOR_NAME VENDOR_NAME,CHR.AUTHORING_ORG_ID ORG_ID
779 FROM OKL_INS_POLICIES_B IPYB ,
780 OKC_K_HEADERS_B CHR,
781 PO_VENDORS PV
782 WHERE IPYB.KLE_ID = p_kle_id
783 AND CHR.ID = IPYB.KHR_ID
784 AND IPYB.ISU_ID = PV.VENDOR_ID;
785
786 -- skgautam Added as part of fix of bug 4146178
787 CURSOR c_vendor_site_info (p_vendor_id NUMBER,p_org_id NUMBER ) IS
788 SELECT IPOV.ID1 ID1
789 FROM OKX_VENDOR_SITES_V IPOV
790 WHERE IPOV.VENDOR_ID = p_vendor_id
791 AND IPOV.ORG_ID = p_org_id
792 AND IPOV.PAY_SITE_FLAG = 'Y';
793
794 CURSOR c_trx_type (cp_name VARCHAR2, cp_language VARCHAR2) IS
795 SELECT id
796 FROM okl_trx_types_tl
797 WHERE name = cp_name
798 AND language = cp_language;
799
800 CURSOR c_tap_info (P_TAP_ID NUMBER) IS
801 SELECT
802 CURRENCY_CODE,
803 SET_OF_BOOKS_ID
804 FROM OKL_TRX_AP_INVOICES_B
805 WHERE ID = P_TAP_ID ;
806
807 CURSOR C_CURRENCY (P_khr_ID NUMBER) IS
808 SELECT CURRENCY_CODE
809 FROM OKC_K_HEADERS_B -- Changed to table
810 WHERE ID = P_khr_ID ;
811
812
813 l_ctxt_val_tbl Okl_Account_Dist_Pub.CTXT_VAL_TBL_TYPE;
814 l_acc_gen_primary_key_tbl Okl_Account_Dist_Pub.acc_gen_primary_key;
815 l_template_tbl Okl_Account_Dist_Pub.AVLV_TBL_TYPE;
816 l_amount_tbl Okl_Account_Dist_Pub.AMOUNT_TBL_TYPE;
817
818
819 CURSOR c_app_info IS
820 SELECT APPLICATION_ID
821 FROM FND_APPLICATION
822 WHERE APPLICATION_SHORT_NAME = 'OKL' ;
823
824
825 l_api_name CONSTANT VARCHAR2(30) := 'insert_ap_request';
826 l_api_version CONSTANT NUMBER := 1;
827 l_return_status VARCHAR2(1):= OKC_API.G_RET_STS_SUCCESS ;
828 l_trx_type_ID okl_trx_types_v.id%TYPE;
829
830 p_name VARCHAR2(30) := 'BILLING' ;
831 -- Need to change code for hard coded value
832 p_language VARCHAR2(2) := 'US' ;
833 l_sql NUMBER ;
834 l_app_id NUMBER;
835
836 l_document_category VARCHAR2(100):= 'OKL Lease Pay Invoices';
837 lx_dbseqnm VARCHAR2(2000):= '';
838 lx_dbseqid NUMBER(38):= NULL;
839
840 BEGIN
841
842 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
843 G_PKG_NAME,
844 p_init_msg_list,
845 l_api_version,
846 p_api_version,
847 '_PROCESS',
848 x_return_status);
849
850 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
851 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
852 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
853 RAISE OKC_API.G_EXCEPTION_ERROR;
854 END IF;
855
856
857
858 -- GET Application Info
859 OPEN c_app_info ;
860 FETCH c_app_info INTO l_app_id;
861 CLOSE c_app_info;
862
863 --Removed as part of fixing 3745151
864
865 -- Get Vendor
866 OPEN c_vendor_info (p_kle_id); -- Bug 4146178
867 FETCH c_vendor_info INTO l_vendor_id,l_vendor,l_org;
868 CLOSE c_vendor_info;
869
870 -- Get Vendor Site
871 OPEN c_vendor_site_info(l_vendor_id,l_org); -- Bug 4146178
872 FETCH c_vendor_site_info INTO l_tapv_rec.IPVS_ID;
873 IF(c_vendor_site_info%NOTFOUND) THEN
874 -- Change Message
875 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_VENDOR_SITE','VENDOR',l_vendor,'ORG',l_org); -- Bug 4146178
876 x_return_status := OKC_API.G_RET_STS_ERROR ;
877 CLOSE c_vendor_site_info ;
878 RAISE OKC_API.G_EXCEPTION_ERROR;
879 END if ;
880
881 CLOSE c_vendor_site_info;
882
883
884 -- Header Information
885 l_tapv_rec.sfwt_flag := 'N' ;
886 l_tapv_rec.TRX_STATUS_CODE := 'ENTERED' ;
887 IF ( p_tap_id <> NULL AND p_tap_id <> OKC_API.G_MISS_NUM ) THEN
888 OPEN c_tap_info (p_tap_id);
889 FETCH c_tap_info INTO l_tapv_rec.CURRENCY_CODE,l_tapv_rec.SET_OF_BOOKS_ID;
890 IF(c_tap_info%NOTFOUND) THEN
891 Okc_Api.set_message(G_APP_NAME, 'OKL_INVALID_INVOICE');
892 x_return_status := OKC_API.G_RET_STS_ERROR ;
893 CLOSE c_tap_info ;
894 RAISE OKC_API.G_EXCEPTION_ERROR;
895 END if ;
896 CLOSE c_tap_info;
897 l_tapv_rec.TAP_ID_REVERSES := p_tap_id ;
898 l_tapv_rec.INVOICE_TYPE := 'CREDIT';
899 ELSE
900
901 OPEN C_CURRENCY (p_khr_id);
902 FETCH C_CURRENCY INTO l_tapv_rec.CURRENCY_CODE;--,l_tapv_rec.SET_OF_BOOKS_ID;
903 IF(C_CURRENCY%NOTFOUND) THEN
904 Okc_Api.set_message(G_APP_NAME, 'OKL_INVALID_CONTRACT');
905 x_return_status := OKC_API.G_RET_STS_ERROR ;
906 CLOSE C_CURRENCY ;
907 RAISE OKC_API.G_EXCEPTION_ERROR;
908 END if ;
909 CLOSE C_CURRENCY;
910 l_tapv_rec.TAP_ID_REVERSES := OKC_API.G_MISS_NUM ;
911 l_tapv_rec.INVOICE_TYPE := 'STANDARD';
912 -- GET SET OF BOOK
913 l_tapv_rec.SET_OF_BOOKS_ID := OKL_ACCOUNTING_UTIL.get_set_of_books_id; --smoduga fix for bug 4238141
914 END IF;
915
916
917 l_tapv_rec.TRY_ID := p_trx_id ;
918 /* 22-JAN-2007 ANSETHUR BUILD: R12 B DISBURSEMENT Start changes */
919 l_tapv_rec.KHR_ID := null ; -- p_khr_id ;
920 /* 22-JAN-2007 ANSETHUR BUILD: R12 B DISBURSEMENT End changes */
921
922 -- l_tapv_rec.CPLV_ID := 1001 ; -- GET PARTY ROLE
923 l_tapv_rec.AMOUNT := p_credit_amount;
924
925
926 BEGIN
927
928
929 l_tapv_rec.Invoice_Number := fnd_seqnum.get_next_sequence
930 (appid => l_app_id,
931 cat_code => l_document_category,
932 sobid => l_tapv_rec.SET_OF_BOOKS_ID,
933 met_code => 'A',
934 trx_date => SYSDATE,
935 dbseqnm => lx_dbseqnm,
936 dbseqid => lx_dbseqid);
937
938 EXCEPTION
939 WHEN OTHERS THEN
940 OKL_API.Set_Message(p_app_name => OKL_API.G_APP_NAME,
941 p_msg_name => 'OKL_UNEXPECTED_ERROR',
942 p_token1 => 'OKL_SQLCODE',
943 p_token1_value => SQLCODE,
944 p_token2 => 'OKL_SQLERRM',
945 p_token2_value => SQLERRM);
946 END;
947
948 --l_tapv_rec.INVOICE_NUMBER := 'OKLINV' || TO_CHAR(l_sql);
949 l_tapv_rec.WORKFLOW_YN := 'N';
950 l_tapv_rec.CONSOLIDATE_YN := 'N';
951 l_tapv_rec.WAIT_VENDOR_INVOICE_YN := 'N';
952 l_tapv_rec.DATE_INVOICED := p_invoice_date;
953 l_tapv_rec.DATE_GL := p_invoice_date;
954 l_tapv_rec.DATE_ENTERED := SYSDATE;
955 l_tapv_rec.object_version_number := 1;
956 SELECT DECODE(FND_GLOBAL.CONC_REQUEST_ID,-1,NULL,FND_GLOBAL.CONC_REQUEST_ID),
957 DECODE(FND_GLOBAL.PROG_APPL_ID,-1,NULL,FND_GLOBAL.PROG_APPL_ID),
958 DECODE(FND_GLOBAL.CONC_PROGRAM_ID,-1,NULL,FND_GLOBAL.CONC_PROGRAM_ID),
959 DECODE(FND_GLOBAL.CONC_REQUEST_ID,-1,NULL,SYSDATE),
960 mo_global.get_current_org_id() INTO l_tapv_rec.REQUEST_ID,
961 l_tapv_rec.PROGRAM_APPLICATION_ID,
962 l_tapv_rec.PROGRAM_ID,
963 l_tapv_rec.PROGRAM_UPDATE_DATE,
964 l_tapv_rec.ORG_ID FROM dual;
965 l_tapv_rec.legal_entity_id := OKL_LEGAL_ENTITY_UTIL.get_khr_le_id(p_khr_id => p_khr_id);
966
967 --------------
968
969 l_tplv_rec.SFWT_FLAG := 'N';
970 l_tplv_rec.KLE_ID := p_kle_id;
971 -- l_tplv_rec.INV_DISTR_LINE_CODE := 'A' ; -- Need to find out from rina
972 l_tplv_rec.INV_DISTR_LINE_CODE := 'ITEM' ; --| 03-Oct-2007 cklee Fixed Bug 6469797 |
973 l_tplv_rec.STY_ID := p_credit_sty_id;
974 l_tplv_rec.TAP_ID := x_tapv_rec.id ;
975 l_tplv_rec.AMOUNT := p_credit_amount;
976 l_tplv_rec.LINE_NUMBER := 1;
977 l_tplv_rec.object_version_number := 1;
978 /* 22-JAN-2007 ANSETHUR BUILD: R12 B DISBURSEMENT Start change*/
979 l_tplv_rec.KHR_ID := p_khr_id ;
980 /* 22-JAN-2007 ANSETHUR BUILD: R12 B DISBURSEMENT End changes*/
981
982 SELECT DECODE(FND_GLOBAL.CONC_REQUEST_ID,-1,NULL,FND_GLOBAL.CONC_REQUEST_ID),
983 DECODE(FND_GLOBAL.PROG_APPL_ID,-1,NULL,FND_GLOBAL.PROG_APPL_ID),
984 DECODE(FND_GLOBAL.CONC_PROGRAM_ID,-1,NULL,FND_GLOBAL.CONC_PROGRAM_ID),
985 DECODE(FND_GLOBAL.CONC_REQUEST_ID,-1,NULL,SYSDATE),
986 mo_global.get_current_org_id() INTO l_tplv_rec.REQUEST_ID,
987 l_tplv_rec.PROGRAM_APPLICATION_ID,
988 l_tplv_rec.PROGRAM_ID,
989 l_tplv_rec.PROGRAM_UPDATE_DATE,
990 l_tplv_rec.ORG_ID FROM dual;
991
992
993 ------------------------------------------------------------------------------------
994 /* 22-JAN-2007 ANSETHUR BUILD: R12 B DISBURSEMENT Start changes */
995 IF(IS_DEBUG_PROCEDURE_ON) THEN
996 BEGIN
997 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call OKL_CREATE_DISB_TRANS_PVT.create_disb_trx ');
998 END;
999 END IF;
1000
1001 l_tplv_tbl(0) := l_tplv_rec;
1002
1003 OKL_CREATE_DISB_TRANS_PVT.create_disb_trx(p_api_version
1004 ,p_init_msg_list => p_init_msg_list
1005 ,x_return_status => l_return_status
1006 ,x_msg_count => x_msg_count
1007 ,x_msg_data => x_msg_data
1008 ,p_tapv_rec =>l_tapv_rec
1009 ,p_tplv_tbl =>l_tplv_tbl
1010 ,x_tapv_rec =>x_tapv_rec
1011 ,x_tplv_tbl =>x_tplv_tbl
1012 );
1013 IF(IS_DEBUG_PROCEDURE_ON) THEN
1014 BEGIN
1015 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call OKL_CREATE_DISB_TRANS_PVT.create_disb_trx ');
1016 END;
1017 END IF;
1018
1019 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1020 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1021 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1022 RAISE OKC_API.G_EXCEPTION_ERROR;
1023 END IF;
1024 /* 22-JAN-2007 ANSETHUR BUILD: R12 B DISBURSEMENT End changes */
1025
1026
1027 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1028
1029 EXCEPTION
1030 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1031 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1032 (
1033 l_api_name,
1034 G_PKG_NAME,
1035 'OKC_API.G_RET_STS_ERROR',
1036 x_msg_count,
1037 x_msg_data,
1038 '_PROCESS'
1039 );
1040 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1041 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1042 (
1043 l_api_name,
1044 G_PKG_NAME,
1045 'OKC_API.G_RET_STS_UNEXP_ERROR',
1046 x_msg_count,
1047 x_msg_data,
1048 '_PROCESS'
1049 );
1050 WHEN OTHERS THEN
1051 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1052 (
1053 l_api_name,
1054 G_PKG_NAME,
1055 'OTHERS',
1056 x_msg_count,
1057 x_msg_data,
1058 '_PROCESS'
1059 );
1060 END insert_ap_request;
1061
1062
1063
1064 PROCEDURE pay_comp_refund(
1065 p_api_version IN NUMBER,
1066 p_init_msg_list IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1067 x_return_status OUT NOCOPY VARCHAR2,
1068 x_msg_count OUT NOCOPY NUMBER,
1069 x_msg_data OUT NOCOPY VARCHAR2,
1070 p_ipyv_rec IN ipyv_rec_type,
1071 x_ipyv_rec OUT NOCOPY ipyv_rec_type
1072 )IS
1073 l_ret_status varchar2(1) ;
1074 l_value NUMBER ;
1075 l_contract_id NUMBER;
1076 l_contract_line NUMBER;
1077 l_api_name CONSTANT VARCHAR2(30) := 'pay_comp_refund';
1078 l_api_version CONSTANT NUMBER := 1;
1079 l_return_status VARCHAR2(1):= OKC_API.G_RET_STS_SUCCESS ;
1080 l_amount NUMBER;
1081 l_strm_type_id NUMBER ;
1082 l_lsm_id NUMBER;
1083 l_tai_id NUMBER;
1084
1085
1086
1087 CURSOR okl_trx_types(cp_name VARCHAR2,cp_language VARCHAR2) IS
1088 SELECT id
1089 FROM okl_trx_types_tl
1090 WHERE name = cp_name
1091 AND language = cp_language;
1092
1093
1094 p_name VARCHAR2(150) :='Credit Memo';
1095 p_lang VARCHAR2(2) := 'US' ;
1096 l_trx_type NUMBER ;
1097 l_sty_id NUMBER ;
1098
1099
1100 CURSOR C_OKL_STRM_TYPE_CRE_V IS
1101 select ID
1102 from OKL_STRM_TYPE_TL
1103 where NAME = 'INSURANCE REFUND'
1104 AND LANGUAGE = 'US';
1105
1106
1107
1108 CURSOR C_OKL_CNSLD_AR_STRMB IS
1109 SELECT SUM(STRE.AMOUNT)
1110 FROM OKL_STRM_ELEMENTS STRE, OKL_STREAMS STR
1111 WHERE STR.KHR_ID = P_IPYV_REC.KHR_ID
1112 AND STR.KLE_ID = P_IPYV_REC.KLE_ID
1113 AND STR.ID = STRE.STM_ID
1114 AND STRE.DATE_BILLED IS NOT NULL;
1115
1116 BEGIN
1117 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1118 G_PKG_NAME,
1119 p_init_msg_list,
1120 l_api_version,
1121 p_api_version,
1122 '_PROCESS',
1123 x_return_status);
1124 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1125 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1126 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1127 RAISE OKC_API.G_EXCEPTION_ERROR;
1128 END IF;
1129
1130
1131
1132 --1. Stream id
1133
1134 BEGIN
1135
1136
1137
1138 OKL_STREAMS_UTIL.get_primary_stream_type(p_ipyv_rec.khr_id,
1139 'INSURANCE_RECEIVABLE',
1140 l_return_status,
1141 l_strm_type_id);
1142
1143 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1144 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1145 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1146 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE',G_PURPOSE_TOKEN,'INSURANCE_RECEIVABLE'); --bug 4024785
1147 x_return_status := OKC_API.G_RET_STS_ERROR ;
1148 RAISE OKC_API.G_EXCEPTION_ERROR;
1149 END IF;
1150
1151 END;
1152
1153 ---2 GET Transaction Type
1154 BEGIN
1155
1156 OPEN okl_trx_types (p_name, p_lang);
1157 FETCH okl_trx_types INTO l_trx_type;
1158 IF(okl_trx_types%NOTFOUND) THEN
1159 Okc_Api.set_message(G_APP_NAME, G_NO_TRX,
1160 G_COL_NAME_TOKEN,'Transaction Type',G_COL_VALUE_TOKEN,p_name);
1161 x_return_status := OKC_API.G_RET_STS_ERROR ;
1162 CLOSE okl_trx_types ;
1163 RAISE OKC_API.G_EXCEPTION_ERROR;
1164 END if ;
1165 CLOSE okl_trx_types;
1166
1167
1168
1169 BEGIN
1170
1171 /*OPEN C_OKL_STRM_TYPE_CRE_V;
1172 FETCH C_OKL_STRM_TYPE_CRE_V INTO l_strm_type_id;
1173 IF(C_OKL_STRM_TYPE_CRE_V%NOTFOUND) THEN
1174 Okc_Api.set_message(G_APP_NAME, G_NO_STREAM,
1175 G_COL_NAME_TOKEN,'Stream Type',G_COL_VALUE_TOKEN,'INSURANCE REFUND');
1176 x_return_status := OKC_API.G_RET_STS_ERROR ;
1177 CLOSE C_OKL_STRM_TYPE_CRE_V ;
1178 RAISE OKC_API.G_EXCEPTION_ERROR;
1179 END if ;
1180 CLOSE C_OKL_STRM_TYPE_CRE_V;*/
1181
1182
1183 OKL_STREAMS_UTIL.get_primary_stream_type(p_ipyv_rec.khr_id,
1184 'INSURANCE_REFUND',
1185 l_return_status,
1186 l_strm_type_id);
1187
1188 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1189 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1190 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1191 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE', G_PURPOSE_TOKEN,'INSURANCE_REFUND');
1192 x_return_status := OKC_API.G_RET_STS_ERROR ;
1193 RAISE OKC_API.G_EXCEPTION_ERROR;
1194 END IF;
1195
1196 END;
1197
1198 --3. get Amount Received
1199 OPEN C_OKL_CNSLD_AR_STRMB;
1200 FETCH C_OKL_CNSLD_AR_STRMB INTO l_amount;
1201 IF(l_amount IS NOT NULL AND l_amount <> OKC_API.G_MISS_NUM ) THEN
1202 l_amount := - l_amount;
1203 -- Call API to create Credit Memo
1204 -- Start of wraper code generated automatically by Debug code generator for okl_credit_memo_pub.insert_request
1205 IF(L_DEBUG_ENABLED='Y') THEN
1206 L_LEVEL_PROCEDURE :=FND_LOG.LEVEL_PROCEDURE;
1207 IS_DEBUG_PROCEDURE_ON := OKL_DEBUG_PUB.Check_Log_On(L_MODULE, L_LEVEL_PROCEDURE);
1208 END IF;
1209 IF(IS_DEBUG_PROCEDURE_ON) THEN
1210 BEGIN
1211 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call on_account_credit_memo');
1212 END;
1213 END IF;
1214 on_account_credit_memo
1215 (
1216 p_api_version => l_api_version,
1217 p_init_msg_list => OKL_API.G_FALSE,
1218 p_try_id => l_trx_type,
1219 p_khr_id => p_ipyv_rec.khr_id,
1220 p_kle_id =>p_ipyv_rec.kle_id ,
1221 p_ipy_id =>p_ipyv_rec.ID ,
1222 p_credit_date => p_ipyv_rec.CANCELLATION_DATE ,
1223 p_credit_amount => l_amount,
1224 p_credit_sty_id => l_strm_type_id,
1225 x_return_status => L_return_status,
1226 x_msg_count =>x_msg_count,
1227 x_msg_data => x_msg_data,
1228 x_tai_id => l_tai_id ) ;
1229
1230 IF(IS_DEBUG_PROCEDURE_ON) THEN
1231
1232 BEGIN
1233 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call on_account_credit_memo ');
1234 END;
1235 END IF;
1236 -- End of wraper code generated automatically by Debug code generator for okl_credit_memo_pub.insert_request
1237
1238 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1239 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1240 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1241 RAISE OKC_API.G_EXCEPTION_ERROR;
1242 END IF;
1243 END if ;
1244
1245 CLOSE C_OKL_CNSLD_AR_STRMB ;
1246 END;
1247
1248
1249 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1250
1251 EXCEPTION
1252 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1253 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1254 (
1255 l_api_name,
1256 G_PKG_NAME,
1257 'OKC_API.G_RET_STS_ERROR',
1258 x_msg_count,
1259 x_msg_data,
1260 '_PROCESS'
1261 );
1262 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1263 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1264 (
1265 l_api_name,
1266 G_PKG_NAME,
1267 'OKC_API.G_RET_STS_UNEXP_ERROR',
1268 x_msg_count,
1269 x_msg_data,
1270 '_PROCESS'
1271 );
1272 WHEN OTHERS THEN
1273 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1274 (
1275 l_api_name,
1276 G_PKG_NAME,
1277 'OTHERS',
1278 x_msg_count,
1279 x_msg_data,
1280 '_PROCESS'
1281 );
1282 END pay_comp_refund;
1283
1284
1285
1286
1287 PROCEDURE delete_policy(
1288 p_api_version IN NUMBER,
1289 p_init_msg_list IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1290 x_return_status OUT NOCOPY VARCHAR2,
1291 x_msg_count OUT NOCOPY NUMBER,
1292 x_msg_data OUT NOCOPY VARCHAR2,
1293 p_ipyv_rec IN ipyv_rec_type,
1294 x_ipyv_rec OUT NOCOPY ipyv_rec_type
1295 )
1296 IS
1297 l_api_name CONSTANT VARCHAR2(30) := 'delete_policy';
1298 l_api_version CONSTANT NUMBER := 1;
1299 l_return_status VARCHAR2(1) ;
1300 ls_check_tpi VARCHAR2(3);
1301 l_id NUMBER ;
1302 l_ipyv_rec ipyv_rec_type;
1303
1304 CURSOR c_ins_info( p_ipy_id NUMBER) IS
1305 SELECT IPYB.KHR_ID, IPYB.KLE_ID ,IPYB.OBJECT_VERSION_NUMBER, ISS_CODE, IPY_TYPE ,FACTOR_CODE
1306 FROM OKL_INS_POLICIES_B IPYB
1307 WHERE IPYB.ID = p_ipy_id;
1308 l_khr_status VARCHAR2(30) ;
1309 l_clev_rec okl_okc_migration_pvt.clev_rec_type;
1310 lx_clev_rec okl_okc_migration_pvt.clev_rec_type;
1311 l_klev_rec Okl_Kle_Pvt.klev_rec_type ;
1312 lx_klev_rec Okl_Kle_Pvt.klev_rec_type ;
1313
1314 BEGIN
1315
1316 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1317 G_PKG_NAME,
1318 p_init_msg_list,
1319 l_api_version,
1320 p_api_version,
1321 '_PROCESS',
1322 x_return_status);
1323 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1324 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1325 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1326 RAISE OKC_API.G_EXCEPTION_ERROR;
1327 END IF;
1328 l_ipyv_rec := p_ipyv_rec ;
1329
1330 OPEN c_ins_info(l_ipyv_rec.ID);
1331 FETCH c_ins_info INTO l_ipyv_rec.KHR_ID , l_ipyv_rec.KLE_ID ,l_ipyv_rec.OBJECT_VERSION_NUMBER, l_ipyv_rec.ISS_CODE, l_ipyv_rec.IPY_TYPE ,l_ipyv_rec.FACTOR_CODE ;
1332 IF(c_ins_info%NOTFOUND) THEN
1333 Okc_Api.set_message(G_APP_NAME, G_INVALID_POLICY );
1334 x_return_status := OKC_API.G_RET_STS_ERROR ;
1335 CLOSE c_ins_info ;
1336 RAISE OKC_API.G_EXCEPTION_ERROR;
1337 END if ;
1338 CLOSE c_ins_info ;
1339
1340 -- Check for Third Party also
1341 IF(l_ipyv_rec.IPY_TYPE = 'THIRD_PARTY_POLICY') THEN
1342 OKC_API.set_message(G_APP_NAME, 'OKL_NO_DELETED' ); -- For Third party Error
1343 RAISE OKC_API.G_EXCEPTION_ERROR;
1344 END IF;
1345
1346 IF(l_ipyv_rec.ISS_CODE = 'ACTIVE') THEN
1347 OKC_API.set_message(G_APP_NAME, 'OKL_ACTIVE_POLICY' );
1348 RAISE OKC_API.G_EXCEPTION_ERROR;
1349 ELSE
1350 -- PAY Customer Refund
1351 pay_comp_refund(
1352 p_api_version => l_api_version,
1353 p_init_msg_list => OKC_API.G_FALSE,
1354 x_return_status => l_return_status,
1355 x_msg_count => x_msg_count,
1356 x_msg_data => x_msg_data,
1357 p_ipyv_rec => l_ipyv_rec ,
1358 x_ipyv_rec => x_ipyv_rec );
1359
1360
1361 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1362 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1363 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1364 RAISE OKC_API.G_EXCEPTION_ERROR;
1365 END IF;
1366 -- l_ipyv_rec := x_ipyv_rec ;
1367
1368
1369 ---Inactivate all stream / accounting entries
1370 Inactivate_open_items(
1371 p_api_version => l_api_version,
1372 p_init_msg_list => OKC_API.G_FALSE,
1373 x_return_status => l_return_status,
1374 x_msg_count => x_msg_count,
1375 x_msg_data => x_msg_data,
1376 p_contract_id => l_ipyv_rec.khr_id ,
1377 p_contract_line => l_ipyv_rec.kle_id,
1378 p_policy_status => l_ipyv_rec.iss_code );
1379
1380 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1381 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1382 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1383 RAISE OKC_API.G_EXCEPTION_ERROR;
1384 END IF;
1385
1386 -- GET contract status
1387 l_return_status := get_contract_status(l_ipyv_rec.khr_id, l_khr_status);
1388 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1389 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1390 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1391 RAISE OKC_API.G_EXCEPTION_ERROR;
1392 END IF;
1393
1394 IF (l_khr_status = 'ACTIVE' ) THEN
1395 -- if active, end date contract line and update status
1396
1397 l_clev_rec.ID := l_ipyv_rec.kle_id ;
1398 l_clev_rec.sts_code := 'TERMINATED';
1399 l_klev_rec.ID := l_ipyv_rec.kle_id ;
1400 l_clev_rec.END_DATE := l_ipyv_rec.CANCELLATION_DATE;
1401
1402
1403 Okl_Contract_Pub.update_contract_line
1404 (
1405 p_api_version => l_api_version ,
1406 p_init_msg_list => OKC_API.G_FALSE,
1407 x_return_status => l_return_status ,
1408 x_msg_count => x_msg_count,
1409 x_msg_data => x_msg_data ,
1410 p_clev_rec => l_clev_rec ,
1411 p_klev_rec => l_klev_rec,
1412 p_edit_mode =>'N' ,
1413 x_clev_rec => lx_clev_rec,
1414 x_klev_rec => lx_klev_rec
1415 );
1416
1417 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1418 -- Status temp
1419 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1420 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1421
1422 -- Status temp
1423 RAISE OKC_API.G_EXCEPTION_ERROR;
1424 END IF;
1425
1426 ELSE
1427
1428
1429 l_clev_rec.ID := l_ipyv_rec.kle_id ;
1430 l_clev_rec.sts_code := 'TERMINATED';
1431 l_klev_rec.ID := l_ipyv_rec.kle_id ;
1432 l_clev_rec.END_DATE := l_ipyv_rec.CANCELLATION_DATE;
1433
1434
1435 Okl_Contract_Pub.update_contract_line
1436 (
1437 p_api_version => l_api_version ,
1438 p_init_msg_list => OKC_API.G_FALSE,
1439 x_return_status => l_return_status ,
1440 x_msg_count => x_msg_count,
1441 x_msg_data => x_msg_data ,
1442 p_clev_rec => l_clev_rec ,
1443 p_klev_rec => l_klev_rec,
1444 p_edit_mode =>'N' ,
1445 x_clev_rec => lx_clev_rec,
1446 x_klev_rec => lx_klev_rec
1447 );
1448
1449 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1450 -- Status temp
1451 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1452 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1453
1454 -- Status temp
1455 RAISE OKC_API.G_EXCEPTION_ERROR;
1456 END IF;
1457
1458
1459 /*
1460 -- else call delete contract line
1461 --Delete Line
1462 OKL_CONTRACT_PUB.delete_contract_line(
1463 p_api_version => l_api_version,
1464 p_init_msg_list => OKC_API.G_FALSE,
1465 x_return_status => x_return_status,
1466 x_msg_count => x_msg_count,
1467 x_msg_data => x_msg_data,
1468 p_line_id => l_ipyv_rec.kle_id );
1469
1470 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1471 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1472 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1473 RAISE OKC_API.G_EXCEPTION_ERROR;
1474 END IF;
1475 */
1476
1477
1478
1479 END IF;
1480 l_ipyv_rec.iss_code := 'DELETED';
1481 --Update Policy
1482
1483 -- Start of wraper code generated automatically by Debug code generator for Okl_Ins_Policies_Pub.update_ins_policies
1484 IF(L_DEBUG_ENABLED='Y') THEN
1485 L_LEVEL_PROCEDURE :=FND_LOG.LEVEL_PROCEDURE;
1486 IS_DEBUG_PROCEDURE_ON := OKL_DEBUG_PUB.Check_Log_On(L_MODULE, L_LEVEL_PROCEDURE);
1487 END IF;
1488 IF(IS_DEBUG_PROCEDURE_ON) THEN
1489 BEGIN
1490 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call Okl_Ins_Policies_Pub.update_ins_policies ');
1491 END;
1492 END IF;
1493 Okl_Ins_Policies_Pub.update_ins_policies(
1494 p_api_version => p_api_version,
1495 p_init_msg_list => OKC_API.G_FALSE,
1496 x_return_status => l_return_status,
1497 x_msg_count => x_msg_count,
1498 x_msg_data => x_msg_data,
1499 p_ipyv_rec => l_ipyv_rec,
1500 x_ipyv_rec => x_ipyv_rec
1501 );
1502 IF(IS_DEBUG_PROCEDURE_ON) THEN
1503 BEGIN
1504 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call Okl_Ins_Policies_Pub.update_ins_policies ');
1505 END;
1506 END IF;
1507 -- End of wraper code generated automatically by Debug code generator for Okl_Ins_Policies_Pub.update_ins_policies
1508
1509 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1510 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1511 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1512 RAISE OKC_API.G_EXCEPTION_ERROR;
1513 END IF;
1514
1515 -- send Notification to customer
1516 -- To be implemented
1517
1518
1519 END IF;
1520
1521 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1522 EXCEPTION
1523 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1524 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1525 (
1526 l_api_name,
1527 G_PKG_NAME,
1528 'OKC_API.G_RET_STS_ERROR',
1529 x_msg_count,
1530 x_msg_data,
1531 '_PROCESS'
1532 );
1533 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1534 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1535 (
1536 l_api_name,
1537 G_PKG_NAME,
1538 'OKC_API.G_RET_STS_UNEXP_ERROR',
1539 x_msg_count,
1540 x_msg_data,
1541 '_PROCESS'
1542 );
1543 WHEN OTHERS THEN
1544 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1545 (
1546 l_api_name,
1547 G_PKG_NAME,
1548 'OTHERS',
1549 x_msg_count,
1550 x_msg_data,
1551 '_PROCESS'
1552 );
1553 END delete_policy;
1554
1555
1556
1557 PROCEDURE calc_vendor_clawback(
1558 p_api_version IN NUMBER,
1559 p_init_msg_list IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1560 x_return_status OUT NOCOPY VARCHAR2,
1561 x_msg_count OUT NOCOPY NUMBER,
1562 x_msg_data OUT NOCOPY VARCHAR2,
1563 p_ipyv_rec IN ipyv_rec_type,
1564 x_ipyv_rec OUT NOCOPY ipyv_rec_type,
1565 x_vendor_adjustment OUT NOCOPY NUMBER
1566 ) IS
1567 l_api_name CONSTANT VARCHAR2(30) := 'calc_vendor_clawback';
1568 l_api_version CONSTANT NUMBER := 1;
1569 l_return_status VARCHAR2(1) ;
1570 l_attribute_label ak_attributes_tl.attribute_label_long%TYPE := NULL; -- 3927315
1571
1572 CURSOR c_okl_ins_asset IS
1573 select SUM(lessor_premium) -- Smoduga fix fro bug 4238141
1574 from OKL_INS_ASSETS OINB
1575 where OINB.IPY_ID = p_ipyv_rec.ID
1576 GROUP BY OINB.IPY_ID;
1577
1578
1579 CURSOR C_OKL_STRM_TYPE_V (p_stream_type VARCHAR2)IS
1580 select ID
1581 from OKL_STRM_TYPE_V
1582 where code = p_stream_type;
1583
1584
1585 CURSOR c_total_paid(l_stm_type_id NUMBER) IS
1586 SELECT SUM(STRE.AMOUNT)
1587 FROM okl_strm_elements STRE, OKL_STREAMS STR
1588 WHERE STR.ID = STRE.STM_ID
1589 AND STR.STY_ID = l_stm_type_id
1590 AND STRE.DATE_BILLED IS NOT NULL
1591 AND STR.KHR_ID = p_ipyv_rec.KHR_ID
1592 AND STR.KLE_ID = p_ipyv_rec.KLE_ID;
1593
1594
1595 l_tapv_rec Okl_tap_pvt.tapv_rec_type;
1596 lx_tapv_rec Okl_tap_pvt.tapv_rec_type;
1597 l_tplv_rec okl_tpl_pvt.tplv_rec_type;
1598 lx_tplv_rec okl_tpl_pvt.tplv_rec_type;
1599
1600 li_months NUMBER ;
1601 l_total_lessor_premium NUMBER;
1602 ln_premium NUMBER;
1603 l_strm_type_id NUMBER;
1604 l_total_paid NUMBER;
1605 ln_refund NUMBER ;
1606 l_amount NUMBER ;
1607 l_to_refund NUMBER;
1608 l_tra_id NUMBER;
1609
1610
1611 CURSOR c_trx_type (cp_name VARCHAR2, cp_language VARCHAR2) IS
1612 SELECT id
1613 FROM okl_trx_types_tl
1614 WHERE name = cp_name
1615 AND language = cp_language;
1616
1617 l_trx_type_ID NUMBER ;
1618
1619
1620
1621 CURSOR c_ins_opt_premium (p_covered_amount IN NUMBER) IS
1622 SELECT ((INSURER_RATE * p_covered_amount )/100 )
1623 FROM OKL_INS_POLICIES_B IPYB , OKL_INS_RATES INR
1624 WHERE IPYB.ipt_id = inr.ipt_id AND
1625 kle_id = p_ipyv_rec.KLE_ID and
1626 khr_id = p_ipyv_rec.KHR_ID
1627 AND IPYB.date_from between inr.date_FROM and DECODE(NVL(inr.date_TO,NULL),NULL,SYSDATE, inr.date_TO)
1628 and IPYB.territory_code = inr.ic_id
1629 AND IPYB.FACTOR_VALUE BETWEEN inr.FACTOR_RANGE_START AND inr.FACTOR_RANGE_END ;
1630
1631
1632 l_functional_currency okl_k_headers_full_v.currency_code%TYPE := okl_accounting_util.get_func_curr_code;
1633
1634 x_contract_currency okl_k_headers_full_v.currency_code%TYPE;
1635 x_currency_conversion_type okl_k_headers_full_v.currency_conversion_type%TYPE;
1636 x_currency_conversion_rate okl_k_headers_full_v.currency_conversion_rate%TYPE;
1637 x_currency_conversion_date okl_k_headers_full_v.currency_conversion_date%TYPE;
1638 x_functional_covered_amt NUMBER ;
1639 p_contract_currency fnd_currencies_vl.currency_code%TYPE ;
1640
1641
1642 l_func_total_lessor_premium NUMBER;
1643
1644 CURSOR c_con_start IS
1645 SELECT start_date
1646 FROM okc_k_headers_b
1647 WHERE id = p_ipyv_rec.KHR_ID ;
1648 l_start_date DATE;
1649
1650
1651
1652 BEGIN
1653
1654 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1655 G_PKG_NAME,
1656 p_init_msg_list,
1657 l_api_version,
1658 p_api_version,
1659 '_PROCESS',
1660 x_return_status);
1661 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1662 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1663 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1664 RAISE OKC_API.G_EXCEPTION_ERROR;
1665 END IF;
1666
1667
1668 OPEN c_con_start;
1669 FETCH c_con_start INTO l_start_date;
1670 IF(c_con_start%NOTFOUND) THEN
1671 Okc_Api.set_message(G_APP_NAME, 'OKL_INVALID_VALUE', G_COL_NAME_TOKEN,'Contract Start Date');
1672 x_return_status := OKC_API.G_RET_STS_ERROR ;
1673 CLOSE c_con_start ;
1674 RAISE OKC_API.G_EXCEPTION_ERROR;
1675 END if ;
1676 CLOSE c_con_start ;
1677
1678 --- How much he should have been paid
1679 -- +++ EFF DATED TERMINATION CHANGES ++++++-----------
1680 -- If cancellation Reason is not cancelled by customer and policy type is Lease ----
1681 IF p_ipyv_rec.crx_code <> 'CANCELED_BY_CUSTOMER'
1682 AND p_ipyv_rec.ipy_type = 'LEASE_POLICY' THEN -- [1]
1683 -- cancellation because of PreDated Termination
1684 -- If termination eff date is lesser than start date of Ins pOlicy then
1685 -- Calculate months between start date of insurance policy and Sysdate to get
1686 -- Months paid
1687 IF p_ipyv_rec.cancellation_date < p_ipyv_rec.date_from THEN -- [3]
1688 IF p_ipyv_rec.date_from < SYSDATE THEN
1689 li_months := MONTHS_BETWEEN(SYSDATE,p_ipyv_rec.date_from);
1690 ELSIF p_ipyv_rec.date_from > SYSDATE THEN
1691 li_months := 0;
1692 END IF;
1693 END IF; -- [3]
1694 ELSE
1695 li_months := MONTHS_BETWEEN( p_ipyv_rec.cancellation_date,p_ipyv_rec.date_from);
1696 END IF; -- [1]
1697 -- +++ EFF DATED TERMINATION CHANGES ++++++-----------
1698 --li_months := MONTHS_BETWEEN( p_ipyv_rec.cancellation_date,p_ipyv_rec.date_from);
1699
1700 IF (p_ipyv_rec.ipy_type = 'LEASE_POLICY') THEN
1701 -- Select premium from insured_asset table
1702 OPEN c_okl_ins_asset;
1703 FETCH c_okl_ins_asset INTO l_total_lessor_premium;
1704 IF(c_okl_ins_asset%NOTFOUND) THEN
1705 Okc_Api.set_message(G_APP_NAME, 'OKL_INVALID_POLICY', G_COL_NAME_TOKEN,p_ipyv_rec.ID);
1706 x_return_status := OKC_API.G_RET_STS_ERROR ;
1707 CLOSE c_okl_ins_asset ;
1708 RAISE OKC_API.G_EXCEPTION_ERROR;
1709 END if ;
1710 CLOSE c_okl_ins_asset ;
1711 ELSE
1712
1713 -- Covered amount from contract to functional
1714
1715 OKL_ACCOUNTING_UTIL.convert_to_functional_currency
1716 (
1717 p_ipyv_rec.khr_id,
1718 l_functional_currency ,
1719 l_start_date,
1720 p_ipyv_rec.COVERED_AMOUNT,
1721 x_contract_currency ,
1722 x_currency_conversion_type ,
1723 x_currency_conversion_rate ,
1724 x_currency_conversion_date,
1725 x_functional_covered_amt ) ;
1726
1727 x_functional_covered_amt :=
1728 okl_accounting_util.cross_currency_round_amount(p_amount =>
1729 x_functional_covered_amt,
1730 p_currency_code => l_functional_currency);
1731
1732 OPEN c_ins_opt_premium (x_functional_covered_amt);
1733 FETCH c_ins_opt_premium INTO l_func_total_lessor_premium;
1734 IF(c_ins_opt_premium%NOTFOUND) THEN
1735 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_OPTINSPRODUCT_RATE');--Fix for 3745151
1736 x_return_status := OKC_API.G_RET_STS_ERROR ;
1737 CLOSE c_okl_ins_asset ;
1738 RAISE OKC_API.G_EXCEPTION_ERROR;
1739 END if ;
1740
1741 --- total lessor premium from functional to contract currency
1742 OKL_ACCOUNTING_UTIL.convert_to_contract_currency
1743 (
1744 p_ipyv_rec.khr_id,
1745 l_functional_currency,
1746 p_ipyv_rec.date_from,
1747 l_func_total_lessor_premium,
1748 x_contract_currency ,
1749 x_currency_conversion_type ,
1750 x_currency_conversion_rate ,
1751 x_currency_conversion_date,
1752 l_total_lessor_premium ) ;
1753
1754 l_total_lessor_premium :=
1755 okl_accounting_util.cross_currency_round_amount(p_amount =>
1756 l_total_lessor_premium,
1757 p_currency_code => x_contract_currency);
1758
1759 END IF ;
1760
1761
1762 -- Money should have been paid (System profile)
1763 ln_premium := li_months * l_total_lessor_premium ;
1764 -- How much have we paid him
1765
1766 /*OPEN C_OKL_STRM_TYPE_V('INSURANCE PAYABLE');
1767 FETCH C_OKL_STRM_TYPE_V INTO l_strm_type_id;
1768 IF(C_OKL_STRM_TYPE_V%NOTFOUND) THEN
1769 Okc_Api.set_message(G_APP_NAME, G_NO_STREAM,
1770 G_COL_NAME_TOKEN,'Stream Type',G_COL_VALUE_TOKEN,'INSURANCE PAYABLE');
1771 x_return_status := OKC_API.G_RET_STS_ERROR ;
1772 CLOSE C_OKL_STRM_TYPE_V ;
1773 RAISE OKC_API.G_EXCEPTION_ERROR;
1774 END if ;
1775 CLOSE C_OKL_STRM_TYPE_V;*/
1776 -- cursor fetch replaced with the call to get the stream type id
1777 OKL_STREAMS_UTIL.get_primary_stream_type(p_ipyv_rec.khr_id,
1778 'INSURANCE_PAYABLE',
1779 l_return_status,
1780 l_strm_type_id);
1781 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1782 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
1783 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1784 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1785 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE', G_PURPOSE_TOKEN,'INSURANCE_PAYABLE'); --bug 4024785
1786 RAISE OKC_API.G_EXCEPTION_ERROR;
1787 END IF;
1788
1789
1790
1791 OPEN c_total_paid(l_strm_type_id);
1792 FETCH c_total_paid INTO l_total_paid;
1793 IF(c_total_paid%NOTFOUND) THEN
1794 l_total_paid := 0 ;
1795 END if ;
1796 CLOSE c_total_paid;
1797
1798
1799 IF (ln_premium < l_total_paid) THEN
1800
1801 -- cursor fetch replaced with the call to get the stream type id
1802 -- changed for use defined streams bug 3924300
1803 OKL_STREAMS_UTIL.get_primary_stream_type(p_ipyv_rec.khr_id,
1804 'INSURANCE_ADJUSTMENT',
1805 l_return_status,
1806 l_strm_type_id);
1807
1808 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1809 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
1810 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1811 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1812 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE',G_PURPOSE_TOKEN, 'INSURANCE_ADJUSTMENT'); --bug 4024785
1813 RAISE OKC_API.G_EXCEPTION_ERROR;
1814 END IF;
1815
1816
1817
1818 ln_refund := l_total_paid - ln_premium ;
1819
1820 -- GET MONEY BACK FROM VENDOR
1821
1822 l_to_refund := -ln_refund ;
1823
1824 -- GET TRANSACTION TYPE
1825 OPEN c_trx_type ('Debit Memo', 'US');
1826 FETCH c_trx_type INTO l_trx_type_ID;
1827 IF(c_trx_type%NOTFOUND) THEN
1828 Okc_Api.set_message(G_APP_NAME, 'OKL_AM_NO_TRX_TYPE_FOUND',
1829 'TRY_NAME','Debit Memo'); --Changed message code for bug 3745151
1830 x_return_status := OKC_API.G_RET_STS_ERROR ;
1831 CLOSE c_trx_type ;
1832 RAISE OKC_API.G_EXCEPTION_ERROR;
1833 END if ;
1834 CLOSE c_trx_type;
1835 -- Call API to create Debit Memo
1836 insert_ap_request(p_api_version => l_api_version,
1837 p_init_msg_list => OKL_API.G_FALSE,
1838 x_return_status => l_return_status,
1839 x_msg_count =>x_msg_count,
1840 x_msg_data => x_msg_data,
1841 p_tap_id => l_tra_id,
1842 p_credit_amount => l_to_refund,
1843 p_credit_sty_id => l_strm_type_id,
1844 p_khr_id => p_ipyv_rec.khr_id,
1845 p_kle_id => p_ipyv_rec.kle_id,
1846 p_invoice_date => SYSDATE,
1847 p_trx_id => l_trx_type_ID );
1848
1849 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1850 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1851 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1852 RAISE OKC_API.G_EXCEPTION_ERROR;
1853 END IF;
1854
1855 ELSIF (ln_premium > l_total_paid) THEN
1856 l_tra_id := OKC_API.G_MISS_NUM ;
1857 l_to_refund := ln_premium - l_total_paid ;
1858
1859 -- cursor fetch replaced with the call to get the stream type id
1860 -- changed for user defined sreams, bug 3924300
1861 OKL_STREAMS_UTIL.get_primary_stream_type(p_ipyv_rec.khr_id,
1862 'INSURANCE_PAYABLE',
1863 l_return_status,
1864 l_strm_type_id);
1865
1866 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1867 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
1868 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1869 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1870 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE', G_PURPOSE_TOKEN,'INSURANCE_PAYABLE'); --bug 4024785
1871 RAISE OKC_API.G_EXCEPTION_ERROR;
1872 END IF;
1873
1874
1875
1876 -- GET TRANSACTION TYPE
1877 OPEN c_trx_type ('Disbursement', 'US');
1878 FETCH c_trx_type INTO l_trx_type_ID;
1879 IF(c_trx_type%NOTFOUND) THEN
1880 l_attribute_label := OKL_ACCOUNTING_UTIL.get_message_token('OKL_LA_SEC_INVESTOR','OKL_LA_SEC_BILL'); --3927315
1881 Okc_Api.set_message(G_APP_NAME, 'OKL_AM_NO_TRX_TYPE_FOUND',
1882 'TRY_NAME',l_attribute_label); -- 3745151
1883 l_attribute_label := null;
1884 x_return_status := OKC_API.G_RET_STS_ERROR ;
1885 CLOSE c_trx_type ;
1886 RAISE OKC_API.G_EXCEPTION_ERROR;
1887 END if ;
1888 CLOSE c_trx_type ;
1889
1890 insert_ap_request(p_api_version => l_api_version,
1891 p_init_msg_list => OKL_API.G_FALSE,
1892 x_return_status => l_return_status,
1893 x_msg_count =>x_msg_count,
1894 x_msg_data => x_msg_data,
1895 p_tap_id => l_tra_id,
1896 p_credit_amount => l_to_refund,
1897 p_credit_sty_id => l_strm_type_id,
1898 p_khr_id => p_ipyv_rec.khr_id,
1899 p_kle_id => p_ipyv_rec.kle_id,
1900 p_invoice_date => SYSDATE,
1901 p_trx_id => l_trx_type_ID );
1902
1903 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1904 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1905 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1906 RAISE OKC_API.G_EXCEPTION_ERROR;
1907 END IF;
1908 END IF ;
1909 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1910
1911 EXCEPTION
1912 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1913 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1914 (
1915 l_api_name,
1916 G_PKG_NAME,
1917 'OKC_API.G_RET_STS_ERROR',
1918 x_msg_count,
1919 x_msg_data,
1920 '_PROCESS'
1921 );
1922 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1923 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1924 (
1925 l_api_name,
1926 G_PKG_NAME,
1927 'OKC_API.G_RET_STS_UNEXP_ERROR',
1928 x_msg_count,
1929 x_msg_data,
1930 '_PROCESS'
1931 );
1932 WHEN OTHERS THEN
1933 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1934 (
1935 l_api_name,
1936 G_PKG_NAME,
1937 'OTHERS',
1938 x_msg_count,
1939 x_msg_data,
1940 '_PROCESS'
1941 );
1942 END calc_vendor_clawback ;
1943
1944 PROCEDURE Inactivate_open_items(
1945
1946 p_api_version IN NUMBER,
1947 p_init_msg_list IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1948 x_return_status OUT NOCOPY VARCHAR2,
1949 x_msg_count OUT NOCOPY NUMBER,
1950 x_msg_data OUT NOCOPY VARCHAR2,
1951 p_contract_id IN NUMBER,
1952 p_contract_line IN NUMBER,
1953 p_policy_status IN VARCHAR2
1954 )
1955 IS
1956 l_api_name CONSTANT VARCHAR2(30) := 'Inactivate_open_items';
1957 l_api_version CONSTANT NUMBER := 1;
1958 l_return_status VARCHAR2(1) ;
1959
1960 l_recv_strm_id NUMBER ;
1961 l_payb_strm_id NUMBER ;
1962 l_paybacc_strm_id NUMBER ;
1963 l_recvacc_strm_id NUMBER ;
1964 ls_strm_type VARCHAR2(30);
1965 ls_strm_purpose varchar2(100);
1966
1967
1968 l_stream_element_id NUMBER ;
1969 l_stream NUMBER ;
1970
1971 --- For Recievables
1972 CURSOR c_okl_strem_rec(l_recv_strm_id NUMBER) IS
1973 SELECT STM.ID
1974 FROM OKL_STREAMS STM
1975 WHERE STM.STY_ID = l_recv_strm_id
1976 AND STM.KLE_ID = p_contract_line
1977 AND STM.KHR_ID = p_contract_id;
1978
1979
1980
1981 ---- For accrual
1982 CURSOR c_okl_strem_rec_acc (l_recv_strm_id NUMBER) IS
1983 SELECT STM.ID
1984 FROM OKL_STREAMS STM
1985 WHERE STM.STY_ID = l_recv_strm_id
1986 AND STM.KLE_ID = p_contract_line
1987 AND STM.KHR_ID = p_contract_id
1988 AND STM.PURPOSE_CODE IS NULL;
1989
1990
1991 ---- For Reporting accrual
1992 CURSOR c_okl_strem_rec_repacc (l_recv_strm_id NUMBER) IS
1993 SELECT STM.ID
1994 FROM OKL_STREAMS STM
1995 WHERE STM.STY_ID = l_recv_strm_id
1996 AND STM.KLE_ID = p_contract_line
1997 AND STM.KHR_ID = p_contract_id
1998 AND STM.PURPOSE_CODE ='REPORT';
1999
2000
2001 CURSOR c_okl_strem_type_rec(ls_strm_type VARCHAR2) IS
2002 select ID
2003 from OKL_STRM_TYPE_TL
2004 where NAME = ls_strm_type
2005 AND LANGUAGE = 'US';
2006
2007 p_stmv_rec Okl_Streams_Pub.stmv_rec_type;
2008 x_stmv_rec Okl_Streams_Pub.stmv_rec_type;
2009
2010 BEGIN
2011 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2012 G_PKG_NAME,
2013 p_init_msg_list,
2014 l_api_version,
2015 p_api_version,
2016 '_PROCESS',
2017 x_return_status);
2018 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2019 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2020 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2021 RAISE OKC_API.G_EXCEPTION_ERROR;
2022 END IF;
2023
2024 -- Setup data
2025 p_stmv_rec.ACTIVE_YN := 'N' ;
2026 p_stmv_rec.SAY_CODE := 'HIST';
2027 p_stmv_rec.DATE_HISTORY := SYSDATE ;
2028
2029 -- Receivable
2030 ls_strm_type := 'INSURANCE RECEIVABLE' ;
2031 ls_strm_purpose := 'INSURANCE_RECEIVABLE';
2032
2033
2034 -- cursor fetch replaced with the call to get the stream type id
2035 -- changed for user defined streams, bug 3924300
2036
2037 OKL_STREAMS_UTIL.get_primary_stream_type(p_contract_id,
2038 ls_strm_purpose,
2039 l_return_status,
2040 l_recv_strm_id);
2041
2042 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2043 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
2044 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2045 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2046 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE', G_COL_NAME_TOKEN,ls_strm_purpose);
2047 RAISE OKC_API.G_EXCEPTION_ERROR;
2048 END IF;
2049
2050
2051 ---
2052 OPEN c_okl_strem_rec(l_recv_strm_id);
2053 FETCH c_okl_strem_rec INTO p_stmv_rec.id;
2054 IF(p_stmv_rec.id IS NOT NULL AND p_stmv_rec.id <> OKC_API.G_MISS_NUM) THEN
2055
2056 -- Start of wraper code generated automatically by Debug code generator for OKL_STREAMS_PUB.update_streams
2057 IF(L_DEBUG_ENABLED='Y') THEN
2058 L_LEVEL_PROCEDURE :=FND_LOG.LEVEL_PROCEDURE;
2059 IS_DEBUG_PROCEDURE_ON := OKL_DEBUG_PUB.Check_Log_On(L_MODULE, L_LEVEL_PROCEDURE);
2060 END IF;
2061 IF(IS_DEBUG_PROCEDURE_ON) THEN
2062 BEGIN
2063 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call OKL_STREAMS_PUB.update_streams ');
2064 END;
2065 END IF;
2066 OKL_STREAMS_PUB.update_streams(
2067 p_api_version
2068 ,p_init_msg_list
2069 ,x_return_status
2070 ,x_msg_count
2071 ,x_msg_data
2072 ,p_stmv_rec
2073 ,x_stmv_rec
2074 );
2075 IF(IS_DEBUG_PROCEDURE_ON) THEN
2076 BEGIN
2077 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call OKL_STREAMS_PUB.update_streams ');
2078 END;
2079 END IF;
2080 -- End of wraper code generated automatically by Debug code generator for OKL_STREAMS_PUB.update_streams
2081
2082 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2083 CLOSE c_okl_strem_rec ;
2084 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2085 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2086 CLOSE c_okl_strem_rec ;
2087 RAISE OKC_API.G_EXCEPTION_ERROR;
2088 END IF;
2089 END IF;
2090 CLOSE c_okl_strem_rec ;
2091
2092 -- Receivable Accounting
2093 p_stmv_rec := Okl_StM_PVT.g_miss_stmv_rec;
2094
2095 ls_strm_type := 'INSURANCE INCOME' ;
2096 ls_strm_purpose := 'INSURANCE_INCOME_ACCRUAL';
2097
2098 p_stmv_rec.ACTIVE_YN := 'N' ;
2099 p_stmv_rec.SAY_CODE := 'HIST';
2100 p_stmv_rec.DATE_HISTORY := SYSDATE ;
2101
2102
2103
2104 -- cursor fetch replaced with the call to get the stream type id
2105 -- changed for user defined streams, bug 3924300
2106 OKL_STREAMS_UTIL.get_primary_stream_type(p_contract_id,
2107 ls_strm_purpose,
2108 l_return_status,
2109 l_recv_strm_id);
2110
2111 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2112 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
2113 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2114 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2115 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE',G_PURPOSE_TOKEN,ls_strm_purpose); --bug 4024785
2116 RAISE OKC_API.G_EXCEPTION_ERROR;
2117 END IF;
2118
2119
2120
2121 --- For Accrual
2122 OPEN c_okl_strem_rec_acc(l_recv_strm_id);
2123 FETCH c_okl_strem_rec_acc INTO p_stmv_rec.id;
2124 IF(p_stmv_rec.id IS NOT NULL AND p_stmv_rec.id <> OKC_API.G_MISS_NUM) THEN
2125 -- Start of wraper code generated automatically by Debug code generator for OKL_STREAMS_PUB.update_streams
2126 IF(IS_DEBUG_PROCEDURE_ON) THEN
2127 BEGIN
2128 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call OKL_STREAMS_PUB.update_streams ');
2129 END;
2130 END IF;
2131 OKL_STREAMS_PUB.update_streams(
2132 p_api_version
2133 ,p_init_msg_list
2134 ,x_return_status
2135 ,x_msg_count
2136 ,x_msg_data
2137 ,p_stmv_rec
2138 ,x_stmv_rec
2139 );
2140 IF(IS_DEBUG_PROCEDURE_ON) THEN
2141 BEGIN
2142 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call OKL_STREAMS_PUB.update_streams ');
2143 END;
2144 END IF;
2145 -- End of wraper code generated automatically by Debug code generator for OKL_STREAMS_PUB.update_streams
2146
2147 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2148 CLOSE c_okl_strem_rec_acc ;
2149 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2150 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2151 CLOSE c_okl_strem_rec_acc ;
2152 RAISE OKC_API.G_EXCEPTION_ERROR;
2153 END IF;
2154 END IF;
2155 CLOSE c_okl_strem_rec_acc ;
2156
2157
2158 --- For Reporing Accrual
2159 OPEN c_okl_strem_rec_repacc(l_recv_strm_id);
2160 FETCH c_okl_strem_rec_repacc INTO p_stmv_rec.id;
2161 IF(p_stmv_rec.id IS NOT NULL AND p_stmv_rec.id <> OKC_API.G_MISS_NUM) THEN
2162 -- Start of wraper code generated automatically by Debug code generator for OKL_STREAMS_PUB.update_streams
2163 IF(IS_DEBUG_PROCEDURE_ON) THEN
2164 BEGIN
2165 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call OKL_STREAMS_PUB.update_streams ');
2166 END;
2167 END IF;
2168 OKL_STREAMS_PUB.update_streams(
2169 p_api_version
2170 ,p_init_msg_list
2171 ,x_return_status
2172 ,x_msg_count
2173 ,x_msg_data
2174 ,p_stmv_rec
2175 ,x_stmv_rec
2176 );
2177 IF(IS_DEBUG_PROCEDURE_ON) THEN
2178 BEGIN
2179 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call OKL_STREAMS_PUB.update_streams ');
2180 END;
2181 END IF;
2182 -- End of wraper code generated automatically by Debug code generator for OKL_STREAMS_PUB.update_streams
2183
2184 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2185 CLOSE c_okl_strem_rec_repacc ;
2186 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2187 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2188 CLOSE c_okl_strem_rec_repacc ;
2189 RAISE OKC_API.G_EXCEPTION_ERROR;
2190 END IF;
2191 END IF;
2192 CLOSE c_okl_strem_rec_repacc ;
2193
2194
2195 IF (p_policy_status = 'ACTIVE') THEN
2196 -- payable
2197 p_stmv_rec := Okl_StM_PVT.g_miss_stmv_rec;
2198 p_stmv_rec.ACTIVE_YN := 'N' ;
2199 p_stmv_rec.SAY_CODE := 'HIST';
2200 p_stmv_rec.DATE_HISTORY := SYSDATE ;
2201
2202 ls_strm_type := 'INSURANCE PAYABLE' ;
2203 ls_strm_purpose := 'INSURANCE_PAYABLE';
2204
2205 -- cursor fetch replaced with the call to get the stream type id,
2206 -- changed for user defined streams, Bug 3924300
2207
2208 OKL_STREAMS_UTIL.get_primary_stream_type(p_contract_id,
2209 ls_strm_purpose,
2210 l_return_status,
2211 l_recv_strm_id);
2212
2213 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2214 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
2215 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2216 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2217 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE', G_PURPOSE_TOKEN,ls_strm_purpose); --bug 4024785
2218 RAISE OKC_API.G_EXCEPTION_ERROR;
2219 END IF;
2220
2221
2222 OPEN c_okl_strem_rec(l_recv_strm_id);
2223 FETCH c_okl_strem_rec INTO p_stmv_rec.id;
2224 IF(p_stmv_rec.id IS NOT NULL AND p_stmv_rec.id <> OKC_API.G_MISS_NUM) THEN
2225 -- Start of wraper code generated automatically by Debug code generator for OKL_STREAMS_PUB.update_streams
2226 IF(IS_DEBUG_PROCEDURE_ON) THEN
2227 BEGIN
2228 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call OKL_STREAMS_PUB.update_streams ');
2229 END;
2230 END IF;
2231 OKL_STREAMS_PUB.update_streams(
2232 p_api_version
2233 ,p_init_msg_list
2234 ,x_return_status
2235 ,x_msg_count
2236 ,x_msg_data
2237 ,p_stmv_rec
2238 ,x_stmv_rec
2239 );
2240 IF(IS_DEBUG_PROCEDURE_ON) THEN
2241 BEGIN
2242 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call OKL_STREAMS_PUB.update_streams ');
2243 END;
2244 END IF;
2245 -- End of wraper code generated automatically by Debug code generator for OKL_STREAMS_PUB.update_streams
2246
2247 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2248 CLOSE c_okl_strem_rec ;
2249 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2250 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2251 CLOSE c_okl_strem_rec ;
2252 RAISE OKC_API.G_EXCEPTION_ERROR;
2253 END IF;
2254 END IF;
2255 CLOSE c_okl_strem_rec ;
2256
2257
2258 -- Payable Accounting
2259 p_stmv_rec := Okl_StM_PVT.g_miss_stmv_rec;
2260 p_stmv_rec.ACTIVE_YN := 'N' ;
2261 p_stmv_rec.SAY_CODE := 'HIST';
2262 p_stmv_rec.DATE_HISTORY := SYSDATE ;
2263
2264
2265 ls_strm_type := 'INSURANCE EXPENSE' ;
2266 ls_strm_purpose := 'INSURANCE_EXPENSE_ACCRUAL';
2267
2268
2269 -- cursor fetch replaced with the call to get the stream type id,
2270 -- changed for user defined streams, bug 3924300
2271
2272 OKL_STREAMS_UTIL.get_primary_stream_type(p_contract_id,
2273 ls_strm_purpose,
2274 l_return_status,
2275 l_recv_strm_id);
2276
2277 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2278 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
2279 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2280 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2281 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE',G_PURPOSE_TOKEN ,ls_strm_purpose); --bug 4024785
2282 RAISE OKC_API.G_EXCEPTION_ERROR;
2283 END IF;
2284
2285
2286
2287 --- For Accrual
2288 OPEN c_okl_strem_rec_acc(l_recv_strm_id);
2289 FETCH c_okl_strem_rec_acc INTO p_stmv_rec.id;
2290 IF(p_stmv_rec.id IS NOT NULL AND p_stmv_rec.id <> OKC_API.G_MISS_NUM) THEN
2291 -- Start of wraper code generated automatically by Debug code generator for OKL_STREAMS_PUB.update_streams
2292 IF(IS_DEBUG_PROCEDURE_ON) THEN
2293 BEGIN
2294 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call OKL_STREAMS_PUB.update_streams ');
2295 END;
2296 END IF;
2297 OKL_STREAMS_PUB.update_streams(
2298 p_api_version
2299 ,p_init_msg_list
2300 ,x_return_status
2301 ,x_msg_count
2302 ,x_msg_data
2303 ,p_stmv_rec
2304 ,x_stmv_rec
2305 );
2306 IF(IS_DEBUG_PROCEDURE_ON) THEN
2307 BEGIN
2308 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call OKL_STREAMS_PUB.update_streams ');
2309 END;
2310 END IF;
2311 -- End of wraper code generated automatically by Debug code generator for OKL_STREAMS_PUB.update_streams
2312
2313 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2314 CLOSE c_okl_strem_rec_acc ;
2315 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2316 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2317 CLOSE c_okl_strem_rec_acc ;
2318 RAISE OKC_API.G_EXCEPTION_ERROR;
2319 END IF;
2320 END IF;
2321 CLOSE c_okl_strem_rec_acc ;
2322
2323
2324
2325 --- For Reporting Accrual
2326 OPEN c_okl_strem_rec_repacc(l_recv_strm_id);
2327 FETCH c_okl_strem_rec_repacc INTO p_stmv_rec.id;
2328 IF(p_stmv_rec.id IS NOT NULL AND p_stmv_rec.id <> OKC_API.G_MISS_NUM) THEN
2329 -- Start of wraper code generated automatically by Debug code generator for OKL_STREAMS_PUB.update_streams
2330 IF(IS_DEBUG_PROCEDURE_ON) THEN
2331 BEGIN
2332 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call OKL_STREAMS_PUB.update_streams ');
2333 END;
2334 END IF;
2335 OKL_STREAMS_PUB.update_streams(
2336 p_api_version
2337 ,p_init_msg_list
2338 ,x_return_status
2339 ,x_msg_count
2340 ,x_msg_data
2341 ,p_stmv_rec
2342 ,x_stmv_rec
2343 );
2344 IF(IS_DEBUG_PROCEDURE_ON) THEN
2345 BEGIN
2346 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call OKL_STREAMS_PUB.update_streams ');
2347 END;
2348 END IF;
2349 -- End of wraper code generated automatically by Debug code generator for OKL_STREAMS_PUB.update_streams
2350
2351 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2352 CLOSE c_okl_strem_rec_repacc ;
2353 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2354 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2355 CLOSE c_okl_strem_rec_repacc ;
2356 RAISE OKC_API.G_EXCEPTION_ERROR;
2357 END IF;
2358 END IF;
2359 CLOSE c_okl_strem_rec_repacc ;
2360
2361 END IF;
2362
2363 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2364
2365 EXCEPTION
2366 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2367 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2368 (
2369 l_api_name,
2370 G_PKG_NAME,
2371 'OKC_API.G_RET_STS_ERROR',
2372 x_msg_count,
2373 x_msg_data,
2374 '_PROCESS'
2375 );
2376 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2377 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2378 (
2379 l_api_name,
2380 G_PKG_NAME,
2381 'OKC_API.G_RET_STS_UNEXP_ERROR',
2382 x_msg_count,
2383 x_msg_data,
2384 '_PROCESS'
2385 );
2386 WHEN OTHERS THEN
2387 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2388 (
2389 l_api_name,
2390 G_PKG_NAME,
2391 'OTHERS',
2392 x_msg_count,
2393 x_msg_data,
2394 '_PROCESS'
2395 );
2396 END Inactivate_open_items ;
2397
2398
2399 PROCEDURE cancel_policies(
2400 p_api_version IN NUMBER,
2401 p_init_msg_list IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
2402 x_return_status OUT NOCOPY VARCHAR2,
2403 x_msg_count OUT NOCOPY NUMBER,
2404 x_msg_data OUT NOCOPY VARCHAR2,
2405 p_contract_id IN NUMBER,
2406 p_cancellation_date IN DATE
2407 ,p_crx_code IN VARCHAR2 DEFAULT NULL --++++++++ Effective Dated Term Qte changes +++++++++
2408 )
2409 IS
2410
2411 l_api_name CONSTANT VARCHAR2(30) := 'cancel_policies';
2412 l_api_version CONSTANT NUMBER := 1;
2413 l_return_status VARCHAR2(1) ;
2414 l_ipyv_rec ipyv_rec_type;
2415 lx_ipyv_rec ipyv_rec_type;
2416 l_cancellation_date DATE ;
2417
2418 -- 3976894 Modified cursor to fetch Pending policies and also
2419 -- 3976894 get the ISS_CODE in the select clause.
2420 CURSOR c_okl_ins_policies(p_contract_id NUMBER) IS
2421 SELECT ID, IPY_TYPE, ISS_CODE
2422 FROM OKL_INS_POLICIES_B
2423 WHERE KHR_ID = p_contract_id
2424 and ISS_CODE in ('ACTIVE','PENDING');
2425
2426 BEGIN
2427 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2428 G_PKG_NAME,
2429 p_init_msg_list,
2430 l_api_version,
2431 p_api_version,
2432 '_PROCESS',
2433 x_return_status);
2434 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2435 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2436 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2437 RAISE OKC_API.G_EXCEPTION_ERROR;
2438 END IF;
2439
2440 -- Check for contract_id (NULL)
2441 IF ((p_contract_id IS NULL ) OR (p_contract_id = OKC_API.G_MISS_NUM )) THEN
2442 x_return_status := OKC_API.G_RET_STS_ERROR;
2443 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Contract ID');
2444 RAISE OKC_API.G_EXCEPTION_ERROR;
2445
2446 END IF;
2447
2448
2449
2450 -- Check for Date put SYSDATE if NULL
2451 l_cancellation_date := p_cancellation_date ;
2452 IF ((l_cancellation_date IS NULL ) OR (l_cancellation_date = OKC_API.G_MISS_DATE )) THEN
2453
2454 l_cancellation_date := SYSDATE;
2455
2456 END IF;
2457
2458
2459
2460
2461 OPEN c_okl_ins_policies(p_contract_id);
2462
2463
2464 --------------
2465 LOOP
2466
2467 -- 3976894 Modified to fetch ISS_CODE
2468 FETCH c_okl_ins_policies INTO l_ipyv_rec.ID, l_ipyv_rec.IPY_TYPE, l_ipyv_rec.ISS_CODE;
2469 EXIT WHEN c_okl_ins_policies%NOTFOUND;
2470 IF (l_ipyv_rec.IPY_TYPE IS NULL) OR (l_ipyv_rec.IPY_TYPE = OKC_API.G_MISS_CHAR) THEN
2471 NULL;
2472
2473 ELSIF( l_ipyv_rec.IPY_TYPE <> 'THIRD_PARTY_POLICY' )THEN
2474 --l_ipyv_rec.crx_code := 'CONTRACT_CANCELED' ;
2475 ---+++ Effective dated Termination Changes Start+++++------
2476 IF (p_crx_code IS NOT NULL) OR (p_crx_code <> OKC_API.G_MISS_CHAR ) THEN
2477 l_ipyv_rec.crx_code := p_crx_code;--'CONTRACT_CANCELED' ;
2478 END IF;
2479 ---+++ Effective dated Termination Changes End +++++------
2480 l_ipyv_rec.cancellation_date := p_cancellation_date;
2481
2482 -- bug 3976894 : Added check for policy status and cancel in
2483 -- case of Active else set the policy status to deleted
2484 -- by calling delete policy.
2485 IF (l_ipyv_rec.ISS_CODE = 'ACTIVE') THEN
2486 cancel_policy(
2487 p_api_version => l_api_version,
2488 p_init_msg_list => OKC_API.G_FALSE,
2489 x_return_status => x_return_status,
2490 x_msg_count => x_msg_count,
2491 x_msg_data => x_msg_data,
2492 p_ipyv_rec => l_ipyv_rec,
2493 x_ipyv_rec => lx_ipyv_rec);
2494 ELSIF(l_ipyv_rec.ISS_CODE = 'PENDING') THEN
2495 delete_policy(
2496 p_api_version => l_api_version,
2497 p_init_msg_list => OKC_API.G_FALSE,
2498 x_return_status => l_return_status,
2499 x_msg_count => x_msg_count,
2500 x_msg_data => x_msg_data,
2501 p_ipyv_rec => l_ipyv_rec,
2502 x_ipyv_rec => lx_ipyv_rec);
2503 END IF;
2504 END IF;
2505 END LOOP ;
2506 CLOSE c_okl_ins_policies ;
2507 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2508
2509 EXCEPTION
2510 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2511 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2512 (
2513 l_api_name,
2514 G_PKG_NAME,
2515 'OKC_API.G_RET_STS_ERROR',
2516 x_msg_count,
2517 x_msg_data,
2518 '_PROCESS'
2519 );
2520 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2521 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2522 (
2523 l_api_name,
2524 G_PKG_NAME,
2525 'OKC_API.G_RET_STS_UNEXP_ERROR',
2526 x_msg_count,
2527 x_msg_data,
2528 '_PROCESS'
2529 );
2530 WHEN OTHERS THEN
2531 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2532 (
2533 l_api_name,
2534 G_PKG_NAME,
2535 'OTHERS',
2536 x_msg_count,
2537 x_msg_data,
2538 '_PROCESS'
2539 );
2540 END cancel_policies;
2541
2542 -------------------------------------------------------------------------------------
2543 --Validate Cancel_policy
2544 --------------------------------------------------------------------------------
2545 --Added as part of bug 4056603
2546 FUNCTION Validate_Cancel_Policy
2547 (p_chr_id IN NUMBER) RETURN VARCHAR2 IS
2548 l_api_name CONSTANT VARCHAR2(30) := 'Validate_Cancel_Policy';
2549 l_api_version CONSTANT NUMBER := 1.0;
2550 x_cancel_flag VARCHAR2(1) := 'N';
2551 --ger Max version
2552 CURSOR c_get_chr_version(cp_chr_id NUMBER) IS
2553 SELECT MAX(major_version)
2554 FROM OKC_K_HEADERS_BH
2555 WHERE id = cp_chr_id;
2556 --- Check for addition of the fixed asset line
2557 -- gboomina Bug 5015042 - Start
2558 -- Changing where condition to handle more than one asset
2559 -- gboomina Bug 5054871 - Start
2560 -- Changing Cursor definition to check asset category of
2561 -- asset with Insurance Product.
2562 CURSOR c_asset_addition(cp_chr_id NUMBER) IS
2563 SELECT 'X'
2564 FROM OKL_K_ASSETS_UV NEW_ASST
2565 WHERE
2566 NEW_ASST.KLE_ID not in
2567 (SELECT INA.KLE_ID
2568 FROM
2569 OKL_INS_ASSETS INA,
2570 OKL_INS_POLICIES_B IPY
2571 WHERE
2572 IPY.KHR_ID = cp_chr_id
2573 AND IPY.ID = INA.IPY_ID
2574 AND IPY.ISS_CODE IN ( 'PENDING', 'ACTIVE')
2575 )
2576 AND NEW_ASST.CONTRACT_ID = cp_chr_id
2577 AND ROWNUM = 1;
2578 -- gboomina Bug 5054871 - End
2579 -- gboomina Bug 5015042 - End
2580 --- Check for termination of the fixed asset line
2581 CURSOR c_asset_termination(cp_chr_id NUMBER) IS
2582 SELECT 'X'
2583 FROM OKL_INS_ASSETS INA,
2584 OKC_K_LINES_B FINAC_CLE,
2585 OKC_LINE_STYLES_B FINAC_LS ,
2586 OKL_INS_POLICIES_B IPY
2587 WHERE FINAC_CLE.ID = INA.KLE_ID
2588 AND FINAC_LS.LTY_CODE = 'FREE_FORM1'
2589 AND FINAC_CLE.LSE_ID = FINAC_LS.ID
2590 AND FINAC_CLE.STS_CODE <> 'BOOKED'
2591 AND IPY.KHR_ID = FINAC_CLE.chr_id
2592 AND IPY.ID = INA.IPY_ID
2593 AND FINAC_CLE.chr_id = cp_chr_id
2594 AND IPY.ISS_CODE IN ( 'PENDING', 'ACTIVE')
2595 AND ROWNUM = 1;
2596 -- Quantity change
2597 CURSOR c_quantity_changed(cp_chr_id NUMBER,cp_major_version NUMBER) IS
2598 SELECT 'X'
2599 FROM
2600 OKC_K_LINES_B C_CLE,
2601 OKC_K_ITEMS C_CIT,
2602 OKC_K_ITEMS_H H_CIT,
2603 OKC_LINE_STYLES_B C_LSE,
2604 OKL_INS_POLICIES_B IPY,
2605 OKL_INS_ASSETS INA
2606 WHERE c_cle.dnz_chr_id = cp_chr_id
2607 AND c_cle.id = c_cit.cle_id
2608 AND c_cle.lse_id = c_lse.id
2609 AND c_cit.id = h_cit.id
2610 AND c_lse.lty_code = 'FIXED_ASSET'
2611 AND c_cit.jtot_object1_code = 'OKX_ASSET'
2612 AND h_cit.MAJOR_VERSION = cp_major_version
2613 AND c_cit.number_of_items <> h_cit.number_of_items
2614 AND INA.KLE_ID = c_cle.CLE_ID
2615 AND IPY.KHR_ID = c_cle.dnz_chr_id
2616 AND IPY.ID = INA.IPY_ID
2617 AND IPY.ISS_CODE IN ( 'PENDING', 'ACTIVE')
2618 AND ROWNUM = 1;
2619 -- Unit Cost Changed
2620 CURSOR c_get_unit_price(cp_chr_id NUMBER, cp_version NUMBER) IS
2621 SELECT 'X'
2622 FROM OKC_K_LINES_B C_CLE,
2623 OKC_K_LINES_BH H_CLE,
2624 OKC_LINE_STYLES_B C_LSE,
2625 OKL_K_LINES c_kle,
2626 OKL_K_LINES_H h_kle ,
2627 OKL_INS_POLICIES_B IPY,
2628 OKL_INS_ASSETS INA
2629 WHERE c_cle.dnz_chr_id = cp_chr_id
2630 AND c_cle.id = h_cle.id
2631 AND c_cle.lse_id = c_lse.id
2632 AND c_cle.id = c_kle.id
2633 AND h_kle.id = c_kle.id
2634 AND h_cle.major_version = cp_version
2635 AND c_lse.lty_code = 'FIXED_ASSET'
2636 AND c_cle.price_unit <> h_cle.price_unit
2637 AND INA.KLE_ID = c_cle.CLE_ID
2638 AND IPY.KHR_ID = c_cle.dnz_chr_id
2639 AND IPY.ID = INA.IPY_ID
2640 AND IPY.ISS_CODE IN ( 'PENDING', 'ACTIVE')
2641 AND ROWNUM = 1;
2642 --- Location Change
2643 -- get start date and term
2644 CURSOR c_get_chr_start_end_date(cp_version NUMBER,cp_chr_id NUMBER) IS
2645 SELECT c_chr.START_DATE c_start_date,h_chr.START_DATE h_start_date,
2646 round (months_between(c_chr.end_date,c_chr.START_DATE)) c_term,
2647 round (months_between(h_chr.end_date,h_chr.START_DATE)) h_term
2648 FROM OKC_K_HEADERS_B C_CHR,
2649 OKC_K_HEADERS_BH H_CHR
2650 WHERE c_chr.id = h_chr.id
2651 AND h_chr.major_version = cp_version
2652 AND c_chr.id = cp_chr_id
2653 AND ROWNUM = 1;
2654 l_version NUMBER;
2655 l_line_version NUMBER;
2656 l_c_start_date DATE;
2657 l_h_start_date DATE;
2658 l_c_term NUMBER;
2659 l_h_term NUMBER;
2660 l_flag VARCHAR2(1) := 'N';
2661 BEGIN
2662 OPEN c_get_chr_version(p_chr_id);
2663 FETCH c_get_chr_version INTO l_version;
2664 CLOSE c_get_chr_version;
2665 -- for Addition check
2666 OPEN c_asset_addition(p_chr_id);
2667 FETCH c_asset_addition INTO l_flag;
2668 IF (l_flag = 'X' ) THEN
2669 CLOSE c_asset_addition;
2670 x_cancel_flag := 'Y' ;
2671 RETURN (x_cancel_flag);
2672 END IF ;
2673 CLOSE c_asset_addition;
2674 -- for asset termination
2675 OPEN c_asset_termination(p_chr_id);
2676 FETCH c_asset_termination INTO l_flag;
2677 IF (l_flag = 'X' ) THEN
2678 CLOSE c_asset_termination;
2679 x_cancel_flag := 'Y' ;
2680 RETURN (x_cancel_flag);
2681 END IF ;
2682 CLOSE c_asset_termination;
2683 -- gboomina Bug 5188230 - Start
2684 -- Passing correct values to c_quantity_changed cursor
2685 OPEN c_quantity_changed( p_chr_id, l_version);
2686 -- gboomina Bug 5188230 - End
2687 FETCH c_quantity_changed INTO l_flag;
2688 IF (l_flag = 'X' ) THEN
2689 CLOSE c_quantity_changed;
2690 x_cancel_flag := 'Y' ;
2691 RETURN (x_cancel_flag);
2692 END IF ;
2693 CLOSE c_quantity_changed;
2694 OPEN c_get_unit_price(p_chr_id, l_version);
2695 FETCH c_get_unit_price INTO l_flag;
2696 IF (l_flag = 'X' ) THEN
2697 CLOSE c_get_unit_price;
2698 x_cancel_flag := 'Y' ;
2699 RETURN (x_cancel_flag);
2700 END IF ;
2701 CLOSE c_get_unit_price;
2702 OPEN c_get_chr_start_end_date(l_version,p_chr_id);
2703 FETCH c_get_chr_start_end_date INTO l_c_start_date,l_h_start_date,l_c_term,l_h_term;
2704 CLOSE c_get_chr_start_end_date;
2705 IF (l_c_start_date <> l_h_start_date) OR (l_c_term <> l_h_term) THEN
2706 x_cancel_flag := 'Y';
2707 RETURN(x_cancel_flag);
2708 ELSE
2709 x_cancel_flag := 'N';
2710 RETURN(x_cancel_flag);
2711 END IF;
2712 EXCEPTION
2713 WHEN OTHERS THEN
2714 x_cancel_flag := 'N';
2715 RETURN(x_cancel_flag);
2716 END Validate_Cancel_Policy;
2717
2718
2719 ----------------------------------------------
2720 --- Function get_insurance_info
2721 ----------------------------------------------
2722 --++ Added as part of fix for bug 4056603 ++--
2723 FUNCTION get_insurance_info(p_ipy_id IN NUMBER,
2724 x_return_status OUT NOCOPY VARCHAR2 ) RETURN ipyv_rec_type IS
2725 --Skgautam:4542203 : added IPYB.iss_code
2726 CURSOR c_ins_info( c_ipy_id NUMBER) IS
2727 SELECT IPYB.KHR_ID, IPYB.KLE_ID ,IPYB.OBJECT_VERSION_NUMBER, IPYB.date_from,
2728 IPYB.ipy_type,IPYB.factor_code,IPYB.IPF_CODE,IPYB.date_to,IPYB.premium,IPYB.COVERED_AMOUNT,IPYB.ISS_CODE
2729 FROM OKL_INS_POLICIES_B IPYB
2730 WHERE IPYB.ID = c_ipy_id;
2731
2732 lx_ipyv_rec ipyv_rec_type;
2733
2734 BEGIN
2735 lx_ipyv_rec.id := p_ipy_id;
2736 --Skgautam:4542203 : fetched IPYB.iss_code
2737 OPEN c_ins_info(p_ipy_id);
2738 FETCH c_ins_info INTO lx_ipyv_rec.KHR_ID , lx_ipyv_rec.KLE_ID
2739 ,lx_ipyv_rec.OBJECT_VERSION_NUMBER, lx_ipyv_rec.date_from, lx_ipyv_rec.ipy_type,
2740 lx_ipyv_rec.FACTOR_CODE,lx_ipyv_rec.IPF_CODE,lx_ipyv_rec.date_to,lx_ipyv_rec.premium,
2741 lx_ipyv_rec.covered_amount,lx_ipyv_rec.iss_code;
2742 IF(c_ins_info%NOTFOUND) THEN
2743 Okc_Api.set_message(G_APP_NAME, G_INVALID_POLICY );
2744 x_return_status := OKC_API.G_RET_STS_ERROR ;
2745 CLOSE c_ins_info ;
2746 RAISE OKC_API.G_EXCEPTION_ERROR;
2747 END IF ;
2748 CLOSE c_ins_info ;
2749 RETURN lx_ipyv_rec;
2750 EXCEPTION
2751 WHEN OTHERS THEN
2752 -- store SQL error message on message stack for caller
2753 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
2754 -- notify caller of an UNEXPECTED error
2755 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2756 RETURN NULL;
2757 END get_insurance_info;
2758 ----------------------------------------------------------
2759 -- Calculate customer Refund
2760 -----------------------------------------------------------
2761 FUNCTION get_cust_refund(p_ipyv_rec IN ipyv_rec_type,
2762 x_return_status OUT NOCOPY VARCHAR2) RETURN NUMBER IS
2763 l_stm_type_rcvbl_id OKL_STRM_TYPE_TL.ID%TYPE := 0;
2764 l_no_of_rec NUMBER := 0;
2765 l_monthly_premium NUMBER;
2766 l_freq_factor NUMBER;
2767 l_vld_cncl_dt VARCHAR2(1) := '?';
2768 l_total_manual_invoice_months NUMBER;
2769 l_total_num_months_paid NUMBER;
2770 lx_refund_amount NUMBER;
2771 l_unconsumed_months NUMBER;
2772 l_total_consumed_months NUMBER;
2773 l_ipyv_rec ipyv_rec_type;
2774 -- gboomina Bug 4885759 - Added - Start
2775 l_no_days_in_last_month NUMBER;
2776 l_return_status VARCHAR2(1);
2777 -- gboomina Bug 4885759 - End
2778
2779 --Get total amount paid by the customer
2780 CURSOR c_total_amount_paid (c_sty_id NUMBER,c_contract_id NUMBER,c_contract_line_id NUMBER)IS
2781 SELECT COUNT(*)
2782 FROM okl_strm_elements STRE, OKL_STREAMS STR
2783 WHERE STR.ID = STRE.STM_ID
2784 AND STR.STY_ID = c_sty_id
2785 AND STRE.DATE_BILLED IS NOT NULL
2786 AND STR.KHR_ID = c_contract_id
2787 AND STR.KLE_ID = c_contract_line_id;
2788 CURSOR C_OKL_STRM_TYPE_V(ls_stm_code VARCHAR2) IS
2789 SELECT ID
2790 FROM OKL_STRM_TYPE_TL
2791 WHERE NAME = ls_stm_code
2792 AND LANGUAGE = 'US';
2793 BEGIN
2794 l_ipyv_rec := p_ipyv_rec;
2795 OPEN C_OKL_STRM_TYPE_V('INSURANCE RECEIVABLE');
2796 FETCH C_OKL_STRM_TYPE_V INTO l_stm_type_rcvbl_id;
2797 IF(C_OKL_STRM_TYPE_V%NOTFOUND) THEN
2798 Okc_Api.set_message(G_APP_NAME, G_NO_STREAM,
2799 G_COL_NAME_TOKEN,'Stream Type',G_COL_VALUE_TOKEN,'INSURANCE RECEIVABLE');
2800 x_return_status := OKC_API.G_RET_STS_ERROR ;
2801 CLOSE C_OKL_STRM_TYPE_V ;
2802 RAISE OKC_API.G_EXCEPTION_ERROR;
2803 END IF ;
2804 CLOSE C_OKL_STRM_TYPE_V;
2805 -- get total amount received from customer
2806 OPEN c_total_amount_paid(l_stm_type_rcvbl_id,l_ipyv_rec.KHR_ID,l_ipyv_rec.KLE_ID) ;
2807 FETCH c_total_amount_paid INTO l_no_of_rec;
2808 IF(c_total_amount_paid%NOTFOUND) THEN
2809 l_no_of_rec := 0;
2810 END IF ;
2811 CLOSE c_total_amount_paid;
2812 -- get freq factor for the payment frequency
2813 IF(l_ipyv_rec.IPF_CODE = 'MONTHLY') THEN
2814 l_freq_factor := 1;
2815 ELSIF(l_ipyv_rec.IPF_CODE = 'BI_MONTHLY') THEN
2816 l_freq_factor := 1/2;
2817 ELSIF(l_ipyv_rec.IPF_CODE = 'HALF_YEARLY') THEN
2818 l_freq_factor := 6;
2819 ELSIF(l_ipyv_rec.IPF_CODE = 'QUARTERLY') THEN
2820 l_freq_factor := 3;
2821 ELSIF(l_ipyv_rec.IPF_CODE = 'YEARLY') THEN
2822 l_freq_factor := 12;
2823 ELSIF(l_ipyv_rec.IPF_CODE = 'LUMP_SUM') THEN
2824 l_freq_factor := ROUND(MONTHS_BETWEEN( l_ipyv_rec.date_to,l_ipyv_rec.date_from));
2825 END IF;
2826 -- get monthly premium
2827 l_monthly_premium := l_ipyv_rec.premium/l_freq_factor ;
2828 ----------------------------------------
2829 -- Caclulation of Refund Months
2830 -----------------------------------------
2831 -- get the number of months paid
2832 l_total_num_months_paid := l_freq_factor * l_no_of_rec;
2833 IF(( l_total_num_months_paid IS NULL) OR (l_total_num_months_paid = OKC_API.G_MISS_NUM )) THEN --[1]
2834 l_total_num_months_paid := 0 ;
2835 END IF ;
2836 -- check to see if the cancellation date is between the start and end date of the policy
2837 --SELECT 'X' INTO l_vld_cncl_dt FROM DUAL
2838 --WHERE l_ipyv_rec.cancellation_date BETWEEN l_ipyv_rec.date_from AND l_ipyv_rec.date_to;
2839 --Check rebook date between start and end date of policy
2840 --IF l_vld_cncl_dt = 'X' THEN --[1.2]
2841 -- gboomina Bug 4994786 Changed - start
2842 -- Instead of implicit cusor, used IF condition check
2843 IF l_ipyv_rec.cancellation_date >= l_ipyv_rec.date_from AND l_ipyv_rec.cancellation_date <= l_ipyv_rec.date_to THEN
2844 -- gboomina Bug 4994786 - end
2845 -- gboomina Bug 4885759 - Start
2846 -- Changed refund_amount calculation to get accurate amount.
2847 l_total_consumed_months := FLOOR(MONTHS_BETWEEN( l_ipyv_rec.cancellation_date,l_ipyv_rec.date_from));
2848
2849 l_no_days_in_last_month := OKL_STREAM_GENERATOR_PVT.get_day_count(ADD_MONTHS(l_ipyv_rec.date_from,l_total_consumed_months),
2850 p_end_date => l_ipyv_rec.cancellation_date,
2851 p_arrears => 'Y',
2852 x_return_status => l_return_status);
2853 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2854 RAISE OKC_API.G_EXCEPTION_ERROR;
2855 END IF;
2856 -- Refund Amount
2857 lx_refund_amount := (l_total_num_months_paid - l_total_consumed_months)* l_monthly_premium - l_no_days_in_last_month * l_monthly_premium/30 ;
2858 -- gboomina Bug 4885759 - End
2859 ELSE -- If rebook is before start date of the policy
2860 -- Issue complete refund
2861 lx_refund_amount := l_total_num_months_paid * l_monthly_premium;
2862 END IF;-- [1.2]
2863 RETURN(lx_refund_amount);
2864
2865 EXCEPTION
2866 WHEN OTHERS THEN
2867 -- store SQL error message on message stack for caller
2868 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
2869 -- notify caller of an UNEXPECTED error
2870 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2871 RETURN 0;
2872 END get_cust_refund;
2873 -----------------------------------------
2874 -- Proceduren get_vendor_refund
2875 --------------------------------------------
2876 PROCEDURE get_vendor_refund(
2877 p_api_version IN NUMBER,
2878 p_init_msg_list IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
2879 x_return_status OUT NOCOPY VARCHAR2,
2880 x_msg_count OUT NOCOPY NUMBER,
2881 x_msg_data OUT NOCOPY VARCHAR2,
2882 p_ipyv_rec IN ipyv_rec_type,
2883 pn_refund OUT NOCOPY NUMBER
2884 ) IS
2885 l_api_name CONSTANT VARCHAR2(30) := 'get_vendor_refund';
2886 l_api_version CONSTANT NUMBER := 1;
2887 l_return_status VARCHAR2(1) ;
2888 l_start_date DATE;
2889 li_months NUMBER;
2890 l_vld_cncl_dt VARCHAR2(1) := '?';
2891 l_func_total_lessor_premium NUMBER;
2892 l_total_lessor_premium NUMBER;
2893 l_lessor_premium NUMBER;
2894 ln_premium NUMBER;
2895 l_total_paid NUMBER;
2896 ln_refund NUMBER;
2897 l_amount NUMBER;
2898 l_to_refund NUMBER;
2899 l_tra_id NUMBER;
2900 l_pay_strm_type_id NUMBER;
2901 l_Adj_strm_type_id NUMBER;
2902 l_trx_type_id NUMBER;
2903 l_ipyv_rec ipyv_rec_type;
2904 l_attribute_label ak_attributes_tl.attribute_label_long%TYPE := NULL; --3927315
2905
2906 CURSOR c_con_start(c_khr_id NUMBER)IS
2907 SELECT START_DATE
2908 FROM okc_k_headers_b
2909 WHERE id = c_khr_id ;
2910 -- get lease premium
2911 CURSOR c_okl_ins_asset IS
2912 SELECT SUM(lessor_premium)
2913 FROM OKL_INS_ASSETS OINB
2914 WHERE OINB.IPY_ID = p_ipyv_rec.ID
2915 GROUP BY OINB.IPY_ID;
2916 -- calculate total amount paid to vendor
2917 CURSOR c_total_paid(p_stm_type_id NUMBER) IS
2918 SELECT SUM(STRE.AMOUNT)
2919 FROM okl_strm_elements STRE, OKL_STREAMS STR
2920 WHERE STR.ID = STRE.STM_ID
2921 AND STR.STY_ID = p_stm_type_id
2922 AND STRE.DATE_BILLED IS NOT NULL
2923 AND STR.KHR_ID = p_ipyv_rec.KHR_ID
2924 AND STR.KLE_ID = p_ipyv_rec.KLE_ID;
2925
2926 CURSOR c_trx_type (cp_name VARCHAR2, cp_language VARCHAR2) IS
2927 SELECT id
2928 FROM okl_trx_types_tl
2929 WHERE name = cp_name
2930 AND language = cp_language;
2931 CURSOR c_ins_opt_premium (p_covered_amount IN NUMBER) IS
2932 SELECT ((INSURER_RATE * p_covered_amount )/100 )
2933 FROM OKL_INS_POLICIES_B IPYB , OKL_INS_RATES INR
2934 WHERE IPYB.ipt_id = inr.ipt_id AND
2935 kle_id = p_ipyv_rec.KLE_ID and
2936 khr_id = p_ipyv_rec.KHR_ID
2937 AND IPYB.date_from between inr.date_FROM and DECODE(NVL(inr.date_TO,NULL),NULL,SYSDATE, inr.date_TO)
2938 and IPYB.territory_code = inr.ic_id
2939 AND IPYB.FACTOR_VALUE BETWEEN inr.FACTOR_RANGE_START AND inr.FACTOR_RANGE_END ;
2940
2941 l_functional_currency okl_k_headers_full_v.currency_code%TYPE := okl_accounting_util.get_func_curr_code;
2942 x_contract_currency okl_k_headers_full_v.currency_code%TYPE;
2943 x_currency_conversion_type okl_k_headers_full_v.currency_conversion_type%TYPE;
2944 x_currency_conversion_rate okl_k_headers_full_v.currency_conversion_rate%TYPE;
2945 x_currency_conversion_date okl_k_headers_full_v.currency_conversion_date%TYPE;
2946 x_functional_covered_amt NUMBER ;
2947 p_contract_currency fnd_currencies_vl.currency_code%TYPE ;
2948
2949 BEGIN
2950
2951 l_ipyv_rec := p_ipyv_rec;
2952 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2953 G_PKG_NAME,
2954 p_init_msg_list,
2955 l_api_version,
2956 p_api_version,
2957 '_PROCESS',
2958 x_return_status);
2959 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2960 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2961 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2962 RAISE OKC_API.G_EXCEPTION_ERROR;
2963 END IF;
2964
2965 OPEN c_con_start(l_ipyv_rec.khr_id);
2966 FETCH c_con_start INTO l_start_date;
2967 IF(c_con_start%NOTFOUND) THEN
2968 Okc_Api.set_message(G_APP_NAME, 'OKL_INVALID_VALUE', G_COL_NAME_TOKEN,'Contract Start Date');
2969 x_return_status := OKC_API.G_RET_STS_ERROR ;
2970 CLOSE c_con_start ;
2971 RAISE OKC_API.G_EXCEPTION_ERROR;
2972 END IF ;
2973 CLOSE c_con_start ;
2974 --- How much he should have been paid
2975 IF (p_ipyv_rec.ipy_type = 'LEASE_POLICY') THEN
2976 -- Select premium from insured_asset table
2977 OPEN c_okl_ins_asset;
2978 FETCH c_okl_ins_asset INTO l_lessor_premium;
2979 IF(c_okl_ins_asset%NOTFOUND) THEN
2980 Okc_Api.set_message(G_APP_NAME, 'OKL_INVALID_POLICY', G_COL_NAME_TOKEN,p_ipyv_rec.ID);
2981 x_return_status := OKC_API.G_RET_STS_ERROR ;
2982 CLOSE c_okl_ins_asset ;
2983 RAISE OKC_API.G_EXCEPTION_ERROR;
2984 END if ;
2985 CLOSE c_okl_ins_asset ;
2986
2987 ELSE
2988 -- Covered amount from contract to functional
2989 OKL_ACCOUNTING_UTIL.convert_to_functional_currency
2990 (
2991 p_ipyv_rec.khr_id,
2992 l_functional_currency ,
2993 l_start_date,
2994 p_ipyv_rec.COVERED_AMOUNT,
2995 x_contract_currency ,
2996 x_currency_conversion_type ,
2997 x_currency_conversion_rate ,
2998 x_currency_conversion_date,
2999 x_functional_covered_amt ) ;
3000 x_functional_covered_amt :=
3001 okl_accounting_util.cross_currency_round_amount(p_amount =>
3002 x_functional_covered_amt,
3003 p_currency_code => l_functional_currency);
3004 OPEN c_ins_opt_premium (x_functional_covered_amt);
3005 FETCH c_ins_opt_premium INTO l_func_total_lessor_premium;
3006 IF(c_ins_opt_premium%NOTFOUND) THEN
3007 Okc_Api.set_message(G_APP_NAME, 'OKL_INVALID_POLICY', G_COL_NAME_TOKEN,p_ipyv_rec.ID);
3008 x_return_status := OKC_API.G_RET_STS_ERROR ;
3009 CLOSE c_ins_opt_premium ;
3010 RAISE OKC_API.G_EXCEPTION_ERROR;
3011 END if ;
3012 --- total lessor premium from functional to contract currency
3013 OKL_ACCOUNTING_UTIL.convert_to_contract_currency
3014 (
3015 p_ipyv_rec.khr_id,
3016 l_functional_currency,
3017 p_ipyv_rec.date_from,
3018 l_func_total_lessor_premium,
3019 x_contract_currency ,
3020 x_currency_conversion_type ,
3021 x_currency_conversion_rate ,
3022 x_currency_conversion_date,
3023 l_total_lessor_premium ) ;
3024 l_total_lessor_premium :=
3025 okl_accounting_util.cross_currency_round_amount(p_amount =>
3026 l_total_lessor_premium,
3027 p_currency_code => x_contract_currency);
3028 END IF ;
3029 IF(p_ipyv_rec.ipf_code = 'MONTHLY') THEN
3030 l_total_lessor_premium := l_lessor_premium ;
3031 ELSIF(p_ipyv_rec.ipf_code = 'BI_MONTHLY') THEN
3032 l_total_lessor_premium := l_lessor_premium * 2;
3033 ELSIF(p_ipyv_rec.ipf_code = 'HALF_YEARLY') THEN
3034 l_total_lessor_premium := l_lessor_premium / 6; --- ETC.
3035 ELSIF(p_ipyv_rec.ipf_code = 'QUARTERLY') THEN
3036 l_total_lessor_premium := l_lessor_premium / 3;
3037 ELSIF(p_ipyv_rec.ipf_code = 'YEARLY') THEN
3038 l_total_lessor_premium := l_lessor_premium / 12;
3039 END IF;
3040
3041 -- Check if the cancellation date is in between start and end date
3042 --SELECT 'X' INTO l_vld_cncl_dt FROM DUAL
3043 --WHERE l_ipyv_rec.cancellation_date BETWEEN l_ipyv_rec.date_from AND l_ipyv_rec.date_to;
3044 --IF l_vld_cncl_dt = 'X' THEN --[3]
3045 -- gboomina Bug 4994786 Changed - start
3046 -- Instead of implicit cusor, used IF condition check
3047 IF l_ipyv_rec.cancellation_date >= l_ipyv_rec.date_from AND l_ipyv_rec.cancellation_date <= l_ipyv_rec.date_to THEN
3048 -- gboomina Bug 4994786 - end
3049 li_months := MONTHS_BETWEEN( l_ipyv_rec.cancellation_date,l_ipyv_rec.date_from);
3050 ELSIF (l_ipyv_rec.cancellation_date <= l_ipyv_rec.date_from ) THEN
3051 li_months := 0;
3052 END IF;-- [3]
3053
3054 -- Money should have been paid (System profile)
3055 ln_premium := li_months * l_total_lessor_premium ;
3056
3057 -- How much have we paid him
3058 -- cursor fetch replaced with the call to get the stream type id
3059 OKL_STREAMS_UTIL.get_primary_stream_type(p_ipyv_rec.khr_id,
3060 'INSURANCE_PAYABLE',
3061 l_return_status,
3062 l_pay_strm_type_id);
3063 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3064 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
3065 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3066 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3067 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE', G_PURPOSE_TOKEN,'INSURANCE_PAYABLE');
3068 RAISE OKC_API.G_EXCEPTION_ERROR;
3069 END IF;
3070 OPEN c_total_paid(l_pay_strm_type_id);
3071 FETCH c_total_paid INTO l_total_paid;
3072 IF(c_total_paid%NOTFOUND) THEN
3073 l_total_paid := 0 ;
3074 END IF ;
3075 CLOSE c_total_paid;
3076 IF ((l_total_paid IS NULL ) OR (l_total_paid = OKC_API.G_MISS_NUM )) THEN
3077 l_total_paid := 0;
3078 END IF ;
3079 ln_refund := l_total_paid - ln_premium ;
3080 pn_refund:= ln_refund;
3081 IF (ln_premium < l_total_paid) THEN -- clawback
3082 OKL_STREAMS_UTIL.get_primary_stream_type(p_ipyv_rec.khr_id,
3083 'INSURANCE_ADJUSTMENT',
3084 l_return_status,
3085 l_Adj_strm_type_id);
3086 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3087 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
3088 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3089 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3090 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE',G_PURPOSE_TOKEN, 'INSURANCE_ADJUSTMENT'); --bug 4024785
3091 RAISE OKC_API.G_EXCEPTION_ERROR;
3092 END IF;
3093
3094 -- GET MONEY BACK FROM VENDOR
3095 l_to_refund := -ln_refund ;
3096
3097 -- GET TRANSACTION TYPE
3098 OPEN c_trx_type ('Debit Memo', 'US');
3099 FETCH c_trx_type INTO l_trx_type_id;
3100 IF(c_trx_type%NOTFOUND) THEN
3101 Okc_Api.set_message(G_APP_NAME, 'OKL_AM_NO_TRX_TYPE_FOUND',
3102 'TRY_NAME','Debit Memo');-- 3745151
3103 x_return_status := OKC_API.G_RET_STS_ERROR ;
3104 CLOSE c_trx_type ;
3105 RAISE OKC_API.G_EXCEPTION_ERROR;
3106 END if ;
3107 CLOSE c_trx_type;
3108
3109 -- Call API to create Debit Memo
3110 insert_ap_request(p_api_version => l_api_version,
3111 p_init_msg_list => OKL_API.G_FALSE,
3112 x_return_status => l_return_status,
3113 x_msg_count =>x_msg_count,
3114 x_msg_data => x_msg_data,
3115 p_tap_id => l_tra_id,
3116 p_credit_amount => l_to_refund,
3117 p_credit_sty_id => l_Adj_strm_type_id,
3118 p_khr_id => p_ipyv_rec.khr_id,
3119 p_kle_id => p_ipyv_rec.kle_id,
3120 p_invoice_date => SYSDATE,
3121 p_trx_id => l_trx_type_ID );
3122 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3123 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3124 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3125 RAISE OKC_API.G_EXCEPTION_ERROR;
3126 END IF;
3127
3128 ELSIF (ln_premium > l_total_paid) THEN
3129 l_tra_id := OKC_API.G_MISS_NUM ;
3130 l_to_refund := ln_premium - l_total_paid ;
3131 OKL_STREAMS_UTIL.get_primary_stream_type(p_ipyv_rec.khr_id,
3132 'INSURANCE_PAYABLE',
3133 l_return_status,
3134 l_PAY_strm_type_id);
3135 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3136 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
3137 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3138 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3139 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE', G_PURPOSE_TOKEN,'INSURANCE_PAYABLE'); --bug 4024785
3140 RAISE OKC_API.G_EXCEPTION_ERROR;
3141 END IF;
3142 -- GET TRANSACTION TYPE
3143 OPEN c_trx_type('Disbursement', 'US');
3144 FETCH c_trx_type INTO l_trx_type_ID;
3145 IF(c_trx_type%NOTFOUND) THEN
3146 l_attribute_label := OKL_ACCOUNTING_UTIL.get_message_token('OKL_LA_SEC_INVESTOR','OKL_LA_SEC_BILL'); --3927315
3147 Okc_Api.set_message(G_APP_NAME, 'OKL_AM_NO_TRX_TYPE_FOUND',
3148 'TRY_NAME',l_attribute_label); --3745151
3149 l_attribute_label := null;
3150 x_return_status := OKC_API.G_RET_STS_ERROR ;
3151 CLOSE c_trx_type ;
3152 RAISE OKC_API.G_EXCEPTION_ERROR;
3153 END IF ;
3154 CLOSE c_trx_type ;
3155 IF(L_DEBUG_ENABLED='Y') THEN
3156 L_LEVEL_PROCEDURE :=FND_LOG.LEVEL_PROCEDURE;
3157 IS_DEBUG_PROCEDURE_ON := OKL_DEBUG_PUB.Check_Log_On(L_MODULE, L_LEVEL_PROCEDURE);
3158 END IF;
3159 IF(IS_DEBUG_PROCEDURE_ON) THEN
3160 BEGIN
3161 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug call insert_ap_request');
3162 END;
3163 END IF;
3164 insert_ap_request(p_api_version => l_api_version,
3165 p_init_msg_list => OKL_API.G_FALSE,
3166 x_return_status => l_return_status,
3167 x_msg_count =>x_msg_count,
3168 x_msg_data => x_msg_data,
3169 p_tap_id => l_tra_id,
3170 p_credit_amount => l_to_refund,
3171 p_credit_sty_id => l_pay_strm_type_id,
3172 p_khr_id => p_ipyv_rec.khr_id,
3173 p_kle_id => p_ipyv_rec.kle_id,
3174 p_invoice_date => SYSDATE,
3175 p_trx_id => l_trx_type_id );
3176 IF(IS_DEBUG_PROCEDURE_ON) THEN
3177 BEGIN
3178 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug call insert_ap_request');
3179 END;
3180 END IF;
3181 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3182 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3183 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3184 RAISE OKC_API.G_EXCEPTION_ERROR;
3185 END IF;
3186 END IF ;
3187
3188 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3189
3190 EXCEPTION
3191 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3192 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3193 (
3194 l_api_name,
3195 G_PKG_NAME,
3196 'OKC_API.G_RET_STS_ERROR',
3197 x_msg_count,
3198 x_msg_data,
3199 '_PROCESS'
3200 );
3201 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3202 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3203 (
3204 l_api_name,
3205 G_PKG_NAME,
3206 'OKC_API.G_RET_STS_UNEXP_ERROR',
3207 x_msg_count,
3208 x_msg_data,
3209 '_PROCESS'
3210 );
3211 WHEN OTHERS THEN
3212 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3213 (
3214 l_api_name,
3215 G_PKG_NAME,
3216 'OTHERS',
3217 x_msg_count,
3218 x_msg_data,
3219 '_PROCESS'
3220 );
3221 END get_vendor_refund;
3222 -----------------------------------------------
3223 -- Procedure rebook_inc_adjustment
3224 ---------------------------------------------------
3225 PROCEDURE rebook_inc_adjustment(
3226 p_api_version IN NUMBER,
3227 p_init_msg_list IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
3228 x_return_status OUT NOCOPY VARCHAR2,
3229 x_msg_count OUT NOCOPY NUMBER,
3230 x_msg_data OUT NOCOPY VARCHAR2,
3231 p_ipyv_rec IN ipyv_rec_type,
3232 p_refund_amount IN NUMBER,
3233 p_src_trx_id IN NUMBER) IS
3234 l_api_name CONSTANT VARCHAR2(30) := 'rebook_inc_adjustment';
3235 l_return_status VARCHAR2(1);
3236 l_api_version NUMBER:= 1.0;
3237 l_tra_id NUMBER;
3238 l_total_billed NUMBER;
3239 l_total_bill_accrued NUMBER;
3240 l_strm_type_id NUMBER;
3241 l_strm_type_id_rep NUMBER; -- MGAAP 7263041
3242 l_adjustment_amount NUMBER;
3243 l_refund_amount NUMBER;
3244 l_ins_try_id NUMBER;
3245 l_ipyv_rec ipyv_rec_type;
3246 CURSOR c_total_billed(l_khr_id NUMBER, l_kle_id NUMBER,l_stream_type_id NUMBER) IS
3247 SELECT SUM(amount)
3248 --FROM OKL_STREAMS STM,
3249 FROM OKL_STREAMS_REP_V STM, -- MGAAP 7263041
3250 OKL_STRM_ELEMENTS STEM
3251 where STM.STY_ID = l_stream_type_id
3252 AND STM.KLE_ID = l_kle_id
3253 AND STM.KHR_ID = l_khr_id
3254 AND STM.ID = STEM.STM_ID
3255 AND STEM.DATE_BILLED IS NOT NULL ;
3256 -- cursor changed to take the stream type id as the parameter, for user defined streams, bug 3924300
3257 CURSOR c_total_bill_accrued(l_khr_id NUMBER, l_kle_id NUMBER, l_stream_type_id NUMBER) IS
3258 SELECT SUM(amount)
3259 --FROM OKL_STREAMS STM , OKL_STRM_ELEMENTS STEM
3260 FROM OKL_STREAMS_REP_V STM , OKL_STRM_ELEMENTS STEM --MGAAP 7263041
3261 WHERE STM.STY_ID = l_stream_type_id
3262 AND STM.KLE_ID = l_kle_id
3263 AND STM.KHR_ID = l_khr_id
3264 AND STM.ID = STEM.STM_ID
3265 AND STEM.ACCRUED_YN = 'Y'
3266 --AND STM.PURPOSE_CODE IS NULL;
3267 AND (STM.PURPOSE_CODE IS NULL OR STM.PURPOSE_CODE='REPORT');
3268 CURSOR okl_trx_types (cp_name VARCHAR2, cp_language VARCHAR2) IS
3269 SELECT id
3270 FROM okl_trx_types_tl
3271 WHERE name = cp_name
3272 AND language = cp_language;
3273
3274 /* Start Bug#5955320
3275
3276 l_tcnv_rec_in OKL_TRX_CONTRACTS_PUB.tcnv_rec_type ;
3277 x_tcnv_rec_in OKL_TRX_CONTRACTS_PUB.tcnv_rec_type ;
3278 l_tclv_tbl OKL_TRX_CONTRACTS_PUB.tclv_tbl_type ;
3279 x_tclv_tbl OKL_TRX_CONTRACTS_PUB.tclv_tbl_type ;
3280
3281 l_ctxt_val_tbl Okl_Account_Dist_Pub.CTXT_VAL_TBL_TYPE;
3282 l_acc_gen_primary_key_tbl Okl_Account_Dist_Pub.acc_gen_primary_key;
3283 l_template_tbl Okl_Account_Dist_Pub.AVLV_TBL_TYPE;
3284 l_amount_tbl Okl_Account_Dist_Pub.AMOUNT_TBL_TYPE;
3285
3286 End Bug#5955320
3287 */
3288 -- Start Bug#5955320
3289
3290 l_gl_date DATE;
3291 l_trx_number VARCHAR2(30) := NULL; -- MGAAP
3292 l_accrual_rec OKL_GENERATE_ACCRUALS_PVT.adjust_accrual_rec_type;
3293 l_stream_tbl OKL_GENERATE_ACCRUALS_PVT.stream_tbl_type;
3294 l_ins_acc_adj VARCHAR2(240);
3295
3296 -- End Bug#5955320
3297
3298 l_inc_sty_id NUMBER ;
3299
3300 -- MGAAP start 7263041
3301
3302 l_inc_sty_id_rep NUMBER ; -- MGAAP 7263041
3303 CURSOR check_csr(p_khr_id NUMBER) IS
3304 SELECT A.MULTI_GAAP_YN, B.REPORTING_PDT_ID
3305 FROM OKL_K_HEADERS A,
3306 OKL_PRODUCTS B
3307 WHERE A.ID = p_khr_id
3308 AND A.PDT_ID = B.ID;
3309
3310 l_multi_gaap_yn OKL_K_HEADERS.MULTI_GAAP_YN%TYPE;
3311 l_reporting_pdt_id OKL_PRODUCTS.REPORTING_PDT_ID%TYPE;
3312
3313 l_total_bill_accrued_rep NUMBER;
3314 l_adjustment_amount_rep NUMBER;
3315 l_sob_id NUMBER;
3316
3317 -- MGAAP end 7263041
3318
3319 CURSOR l_contract_currency_csr IS
3320 SELECT currency_code
3321 ,currency_conversion_type
3322 -- ,currency_conversion_rate
3323 ,currency_conversion_date
3324 FROM okl_k_headers_full_v
3325 WHERE id = p_ipyv_rec.khr_id ;
3326
3327 l_currency_conversion_type okl_k_headers_full_v.currency_conversion_type%TYPE;
3328 l_currency_conversion_date okl_k_headers_full_v.currency_conversion_date%TYPE;
3329
3330 CURSOR l_acc_dtls_csr(p_khr_id IN NUMBER) IS
3331 SELECT khr.pdt_id pdt_id
3332 FROM okl_k_headers_v khr
3333 WHERE khr.ID = p_khr_id;
3334
3335 l_dist_info_rec Okl_Account_Dist_Pub.dist_info_REC_TYPE;
3336 l_acct_call_rec l_acc_dtls_csr%ROWTYPE;
3337 l_tmpl_identify_rec Okl_Account_Dist_Pub.TMPL_IDENTIFY_REC_TYPE;
3338
3339 -- gboomina Bug 4622198 - Added for Investor Special Accounting Codes - Start
3340 l_fact_sync_code VARCHAR2(2000);
3341 l_inv_acct_code VARCHAR2(2000);
3342 -- gboomina Bug 4622198 - Added for Investor Special Accounting Codes - End
3343
3344 l_ptid NUMBER ;
3345 l_curr_code GL_LEDGERS_PUBLIC_V.CURRENCY_CODE%TYPE;
3346 ----- Account Generator sources
3347 Cursor salesP_csr( chrId NUMBER) IS
3348 select ct.object1_id1 id
3349 from okc_contacts ct,
3350 okc_contact_sources csrc,
3351 okc_k_party_roles_b pty,
3352 okc_k_headers_b chr
3353 where ct.cpl_id = pty.id
3354 and ct.cro_code = csrc.cro_code
3355 and ct.jtot_object1_code = csrc.jtot_object_code
3356 and ct.dnz_chr_id = chr.id
3357 and pty.rle_code = csrc.rle_code
3358 and csrc.cro_code = 'SALESPERSON'
3359 and csrc.rle_code = 'LESSOR'
3360 and csrc.buy_or_sell = chr.buy_or_sell
3361 and pty.dnz_chr_id = chr.id
3362 and pty.chr_id = chr.id
3363 and chr.id = chrId;
3364
3365 l_salesP_rec salesP_csr%ROWTYPE;
3366
3367 Cursor fnd_pro_csr IS
3368 select mo_global.get_current_org_id() l_fnd_profile
3369 from dual;
3370 fnd_pro_rec fnd_pro_csr%ROWTYPE;
3371 counter NUMBER;
3372
3373
3374 BEGIN
3375
3376 l_ipyv_rec := p_ipyv_rec;
3377 l_refund_amount := p_refund_amount;
3378
3379 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3380 G_PKG_NAME,
3381 p_init_msg_list,
3382 l_api_version,
3383 p_api_version,
3384 '_PROCESS',
3385 l_return_status);
3386 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3387 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3388 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3389 RAISE OKC_API.G_EXCEPTION_ERROR;
3390 END IF;
3391 OKL_STREAMS_UTIL.get_primary_stream_type(l_ipyv_rec.khr_id,
3392 'INSURANCE_RECEIVABLE',
3393 l_return_status,
3394 l_strm_type_id);
3395 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3396 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
3397 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3398 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3399 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE',G_PURPOSE_TOKEN,'INSURANCE_RECEIVABLE'); --bug 4024785
3400 RAISE OKC_API.G_EXCEPTION_ERROR;
3401 END IF;
3402 OPEN c_total_billed(l_ipyv_rec.KHR_ID , l_ipyv_rec.KLE_ID,l_strm_type_id);
3403 FETCH c_total_billed INTO l_total_billed;
3404 CLOSE c_total_billed ;
3405 -- Removed for fixing 3745151 as no exception
3406 -- needs to be thrown as we are setting total billed
3407 -- to zero if cursor fetch fails.
3408 /*
3409 IF(c_total_billed%NOTFOUND) THEN
3410 Okc_Api.set_message(G_APP_NAME, G_INVALID_CONTRACT,
3411 G_COL_NAME_TOKEN,'Contract ID',G_COL_VALUE_TOKEN,l_ipyv_rec.KHR_ID);
3412 x_return_status := OKC_API.G_RET_STS_ERROR ;
3413 CLOSE c_total_billed ;
3414 RAISE OKC_API.G_EXCEPTION_ERROR;
3415 END if ;
3416 */
3417
3418 IF ((l_total_billed IS NULL ) OR (l_total_billed = OKC_API.G_MISS_NUM )) THEN
3419 l_total_billed := 0;
3420 END IF ;
3421
3422 -- MGAAP start 7263041
3423 OPEN check_csr(l_ipyv_rec.khr_id);
3424 FETCH check_csr INTO
3425 l_multi_gaap_yn, l_reporting_pdt_id;
3426 CLOSE check_csr;
3427 -- MGAAP end 7263041
3428
3429 OKL_STREAMS_UTIL.get_primary_stream_type(l_ipyv_rec.khr_id,
3430 'INSURANCE_INCOME_ACCRUAL',
3431 l_return_status,
3432 l_strm_type_id);
3433 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3434 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
3435 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3436 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3437 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE', G_PURPOSE_TOKEN,'INSURANCE_INCOME_ACCRUAL'); --bug 4024785
3438 RAISE OKC_API.G_EXCEPTION_ERROR;
3439 END IF;
3440 OPEN c_total_bill_accrued(l_ipyv_rec.KHR_ID , l_ipyv_rec.KLE_ID,l_strm_type_id);
3441 FETCH c_total_bill_accrued INTO l_total_bill_accrued;
3442 CLOSE c_total_bill_accrued ;
3443 -- Removed for fixing 3745151 as no exception
3444 -- needs to be thrown as we are setting total billed
3445 -- to zero if cursor fetch fails.
3446 /*
3447 IF(c_total_bill_accrued%NOTFOUND) THEN
3448 Okc_Api.set_message(G_APP_NAME, G_INVALID_CONTRACT,
3449 G_COL_NAME_TOKEN,'Contract ID',G_COL_VALUE_TOKEN,l_ipyv_rec.KHR_ID);
3450 x_return_status := OKC_API.G_RET_STS_ERROR ;
3451 CLOSE c_total_bill_accrued ;
3452 RAISE OKC_API.G_EXCEPTION_ERROR;
3453 END if ;
3454 */
3455 IF ((l_total_bill_accrued IS NULL ) OR (l_total_bill_accrued = OKC_API.G_MISS_NUM )) THEN
3456 l_total_bill_accrued := 0;
3457 END IF ;
3458
3459 IF ((l_refund_amount IS NULL ) OR (l_refund_amount = OKC_API.G_MISS_NUM )) THEN
3460 l_refund_amount := 0;
3461 END IF ;
3462 l_adjustment_amount := l_total_billed - l_total_bill_accrued - l_refund_amount ;
3463
3464 -- MGAAP start 7263041
3465
3466 IF (l_multi_gaap_yn = 'Y') THEN
3467 OKL_STREAMS_SEC_PVT.SET_REPO_STREAMS;
3468 OKL_STREAMS_UTIL.get_primary_stream_type_rep(l_ipyv_rec.khr_id,
3469 'INSURANCE_INCOME_ACCRUAL',
3470 l_return_status,
3471 l_strm_type_id_rep);
3472 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3473 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
3474 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3475 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3476 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE', G_PURPOSE_TOKEN,'INSURANCE_INCOME_ACCRUAL'); --bug 4024785
3477 RAISE OKC_API.G_EXCEPTION_ERROR;
3478 END IF;
3479 OPEN c_total_bill_accrued(l_ipyv_rec.KHR_ID , l_ipyv_rec.KLE_ID,l_strm_type_id_rep);
3480 FETCH c_total_bill_accrued INTO l_total_bill_accrued_rep;
3481 CLOSE c_total_bill_accrued ;
3482
3483 OKL_STREAMS_SEC_PVT.RESET_REPO_STREAMS;
3484 IF ((l_total_bill_accrued_rep IS NULL ) OR (l_total_bill_accrued_rep = OKC_API.G_MISS_NUM )) THEN
3485 l_total_bill_accrued_rep := 0;
3486 END IF ;
3487
3488 IF ((l_refund_amount IS NULL ) OR (l_refund_amount = OKC_API.G_MISS_NUM )) THEN
3489 l_refund_amount := 0;
3490 END IF ;
3491 l_adjustment_amount_rep := l_total_billed - l_total_bill_accrued_rep - l_refund_amount ;
3492
3493 END IF;
3494 -- MGAAP end 7263041
3495
3496 /* Start Bug#5955320
3497
3498 --gboomina Bug 4885759 - Start - Changing the transaction type from Insurance to Accrual
3499 OPEN okl_trx_types ('Accrual', 'US');
3500 FETCH okl_trx_types INTO l_ins_try_id;
3501 IF(okl_trx_types%NOTFOUND) THEN
3502 Okc_Api.set_message(G_APP_NAME, G_NO_TRX,
3503 G_COL_NAME_TOKEN,'Transaction Type',G_COL_VALUE_TOKEN,'Accrual');
3504 x_return_status := OKC_API.G_RET_STS_ERROR ;
3505 CLOSE okl_trx_types ;
3506 RAISE OKC_API.G_EXCEPTION_ERROR;
3507 END IF ;
3508 CLOSE okl_trx_types;
3509 --gboomina Bug 4885759 - End
3510 -- GET Product
3511 OPEN l_acc_dtls_csr(l_ipyv_rec.KHR_ID );
3512 FETCH l_acc_dtls_csr INTO l_ptid;
3513 IF(l_acc_dtls_csr%NOTFOUND) THEN
3514 Okc_Api.set_message(G_APP_NAME, G_NO_STREAM,
3515 G_COL_NAME_TOKEN,'Stream Type',G_COL_VALUE_TOKEN,'INSREFUND');
3516 x_return_status := OKC_API.G_RET_STS_ERROR ;
3517 CLOSE l_acc_dtls_csr ;
3518 RAISE OKC_API.G_EXCEPTION_ERROR;
3519 END if ;
3520 CLOSE l_acc_dtls_csr;
3521 BEGIN
3522 OPEN l_contract_currency_csr;
3523 FETCH l_contract_currency_csr INTO l_curr_code,l_currency_conversion_type,
3524 l_currency_conversion_date ;
3525 CLOSE l_contract_currency_csr;
3526 EXCEPTION
3527 WHEN NO_DATA_FOUND THEN
3528 OKC_API.set_message(G_APP_NAME, G_NO_K_TERM,G_COL_VALUE_TOKEN,p_ipyv_rec.khr_id );
3529 x_return_status := OKC_API.G_RET_STS_ERROR;
3530 IF l_contract_currency_csr%ISOPEN THEN
3531 CLOSE l_contract_currency_csr;
3532 END IF;
3533 RAISE OKC_API.G_EXCEPTION_ERROR;
3534 WHEN OTHERS THEN
3535 IF l_contract_currency_csr%ISOPEN THEN
3536 CLOSE l_contract_currency_csr;
3537 END IF;
3538 -- store SQL error message on message stack for caller
3539 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,
3540 SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
3541 x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR ;
3542 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR ;
3543 END;
3544 --- l_curr_code := OKL_ACCOUNTING_UTIL.GET_FUNC_CURR_CODE;
3545
3546 IF (l_adjustment_amount <> 0 ) THEN
3547
3548 -- header data
3549 l_tcnv_rec_in.khr_id := l_ipyv_rec.KHR_ID ;
3550 l_tcnv_rec_in.try_id := l_ins_try_id;
3551 l_tcnv_rec_in.tsu_code := 'ENTERED';
3552 l_tcnv_rec_in.tcn_type := 'AAJ';
3553 l_tcnv_rec_in.date_transaction_occurred := l_ipyv_rec.CANCELLATION_DATE;
3554 l_tcnv_rec_in.amount := l_adjustment_amount;
3555 l_tcnv_rec_in.currency_code := l_curr_code ;
3556 l_tcnv_rec_in.currency_conversion_type := l_currency_conversion_type ;
3557 l_tcnv_rec_in.currency_conversion_date := l_currency_conversion_date ;
3558 l_tcnv_rec_in.legal_entity_id := OKL_LEGAL_ENTITY_UTIL.get_khr_le_id(p_khr_id => l_ipyv_rec.KHR_ID);
3559
3560 -- Line Data
3561 l_tclv_tbl(1).line_number := 1;
3562 l_tclv_tbl(1).khr_id := l_ipyv_rec.KHR_ID;
3563 l_tclv_tbl(1).tcl_type := 'AAJ' ;
3564 l_tclv_tbl(1).AMOUNT := l_adjustment_amount;
3565 l_tclv_tbl(1).currency_code := l_curr_code ;
3566 l_tclv_tbl(1).ORG_ID := l_ipyv_rec.org_id ;
3567 l_tclv_tbl(1).STY_ID := l_strm_type_id;
3568
3569
3570 -- Start of wraper code generated automatically by Debug code generator for OKL_TRX_CONTRACTS_PUB.create_trx_contracts
3571 IF(L_DEBUG_ENABLED='Y') THEN
3572 L_LEVEL_PROCEDURE :=FND_LOG.LEVEL_PROCEDURE;
3573 IS_DEBUG_PROCEDURE_ON := OKL_DEBUG_PUB.Check_Log_On(L_MODULE, L_LEVEL_PROCEDURE);
3574 END IF;
3575 IF(IS_DEBUG_PROCEDURE_ON) THEN
3576 BEGIN
3577 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call OKL_TRX_CONTRACTS_PUB.create_trx_contracts ');
3578 END;
3579 END IF;
3580 OKL_TRX_CONTRACTS_PUB.create_trx_contracts(
3581 p_api_version => l_api_version,
3582 p_init_msg_list => OKC_API.G_FALSE,
3583 x_return_status => x_return_status,
3584 x_msg_count => x_msg_count,
3585 x_msg_data => x_msg_data,
3586 p_tcnv_rec =>l_tcnv_rec_in ,
3587 p_tclv_tbl => l_tclv_tbl,
3588 x_tcnv_rec => x_tcnv_rec_in,
3589 x_tclv_tbl => x_tclv_tbl );
3590 IF(IS_DEBUG_PROCEDURE_ON) THEN
3591 BEGIN
3592 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call OKL_TRX_CONTRACTS_PUB.create_trx_contracts ');
3593 END;
3594 END IF;
3595 -- End of wraper code generated automatically by Debug code generator for OKL_TRX_CONTRACTS_PUB.create_trx_contracts
3596
3597
3598 ---------------------------------------------------------------------------------------
3599 counter := 1;
3600 OPEN fnd_pro_csr;
3601 FETCH fnd_pro_csr INTO fnd_pro_rec;
3602 IF ( fnd_pro_csr%FOUND ) Then
3603 l_acc_gen_primary_key_tbl(counter).source_table := 'FINANCIALS_SYSTEM_PARAMETERS';
3604 l_acc_gen_primary_key_tbl(counter).primary_key_column := fnd_pro_rec.l_fnd_profile;
3605 counter := counter + 1 ;
3606 End IF;
3607 CLOSE fnd_pro_csr;
3608 OPEN salesP_csr(l_ipyv_rec.KHR_ID);
3609 FETCH salesP_csr INTO l_salesP_rec;
3610 IF ( salesP_csr%FOUND ) Then
3611 l_acc_gen_primary_key_tbl(counter).source_table := 'JTF_RS_SALESREPS_MO_V';
3612 l_acc_gen_primary_key_tbl(counter).primary_key_column := l_salesP_rec.id;
3613 counter := counter + 1 ;
3614 END IF ;
3615 CLOSE salesP_csr;
3616 ------------------------------------------------------------------------------------
3617
3618 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3619 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3620 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3621 RAISE OKC_API.G_EXCEPTION_ERROR;
3622 END IF;
3623
3624 End Bug#5955320 */
3625
3626
3627 /* Start Bug#5955320
3628 -- gboomina Bug 4622198 - Added for Investor Special Accounting Codes - Start
3629 get_special_acct_codes(p_khr_id => l_ipyv_rec.KHR_ID,
3630 p_trx_date => SYSDATE,
3631 x_fact_sync_code => l_fact_sync_code,
3632 x_inv_acct_code => l_inv_acct_code );
3633 -- gboomina Bug 4622198 - Added for Investor Special Accounting Codes - End
3634
3635 -- Populate Records for Accounting Call.
3636 l_tmpl_identify_rec.PRODUCT_ID := l_ptid;
3637 l_tmpl_identify_rec.TRANSACTION_TYPE_ID := l_ins_try_id;
3638 l_tmpl_identify_rec.STREAM_TYPE_ID := l_inc_sty_id;
3639 l_tmpl_identify_rec.ADVANCE_ARREARS := NULL;
3640 -- gboomina Bug 4622198 - Modified for Investor Special Accounting - Start
3641 l_tmpl_identify_rec.FACTORING_SYND_FLAG := l_fact_sync_code;
3642 l_tmpl_identify_rec.INVESTOR_CODE := l_inv_acct_code;
3643 -- gboomina Bug 4622198 - Modified for Investor Special Accounting - End
3644 l_tmpl_identify_rec.SYNDICATION_CODE := NULL;
3645 l_tmpl_identify_rec.FACTORING_CODE := NULL;
3646 l_tmpl_identify_rec.MEMO_YN := 'N';
3647 l_tmpl_identify_rec.PRIOR_YEAR_YN := 'N';
3648 l_dist_info_rec.SOURCE_ID := x_tclv_tbl(1).ID;
3649 l_dist_info_rec.SOURCE_TABLE := 'OKL_TXL_CNTRCT_LNS';
3650 l_dist_info_rec.ACCOUNTING_DATE := SYSDATE;
3651 l_dist_info_rec.GL_REVERSAL_FLAG := 'N';
3652 --gboomina Bug 4885759 - Start
3653 -- Making Tracactions 'Actual' instead of 'Draft' by setting post_to_gl as 'Y'
3654 l_dist_info_rec.POST_TO_GL := 'Y';
3655 --gboomina Bug 4885759 - End
3656 l_dist_info_rec.AMOUNT := l_adjustment_amount;
3657 l_dist_info_rec.CURRENCY_CODE := l_curr_code;
3658 --- Not sure
3659 l_dist_info_rec.CURRENCY_CONVERSION_TYPE := l_currency_conversion_type;
3660 l_dist_info_rec.CURRENCY_CONVERSION_DATE := l_currency_conversion_date;
3661 l_dist_info_rec.CONTRACT_ID := l_ipyv_rec.KHR_ID ;
3662 l_dist_info_rec.CONTRACT_LINE_ID := l_ipyv_rec.KLE_ID;
3663 IF (l_adjustment_amount > 0 )THEN
3664 -- Start of wraper code generated automatically by Debug code generator for Okl_Account_Dist_Pub.CREATE_ACCOUNTING_DIST
3665 IF(IS_DEBUG_PROCEDURE_ON) THEN
3666 BEGIN
3667 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call Okl_Account_Dist_Pub.CREATE_ACCOUNTING_DIST ');
3668 END;
3669 END IF;
3670
3671 Okl_Account_Dist_Pub.CREATE_ACCOUNTING_DIST(
3672 p_api_version => p_api_version
3673 ,p_init_msg_list => p_init_msg_list
3674 ,x_return_status => x_return_status
3675 ,x_msg_count => x_msg_count
3676 ,x_msg_data => x_msg_data
3677 ,p_tmpl_identify_rec => l_tmpl_identify_rec
3678 ,p_dist_info_rec => l_dist_info_rec
3679 ,p_ctxt_val_tbl => l_ctxt_val_tbl
3680 ,p_acc_gen_primary_key_tbl => l_acc_gen_primary_key_tbl
3681 ,x_template_tbl => l_template_tbl
3682 ,x_amount_tbl => l_amount_tbl);
3683
3684 IF(IS_DEBUG_PROCEDURE_ON) THEN
3685 BEGIN
3686 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call Okl_Account_Dist_Pub.CREATE_ACCOUNTING_DIST ');
3687 END;
3688 END IF;
3689 -- End of wraper code generated automatically by Debug code generator for Okl_Account_Dist_Pub.CREATE_ACCOUNTING_DIST
3690 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3691 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3692 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3693 RAISE OKC_API.G_EXCEPTION_ERROR;
3694 END IF;
3695 END IF ;
3696 END IF;
3697
3698 End Bug#5955320 */
3699
3700 --Start Bug#5955320
3701 IF (l_adjustment_amount <> 0 ) THEN
3702
3703 OKL_STREAMS_UTIL.get_primary_stream_type(l_ipyv_rec.khr_id,
3704 'INSURANCE_INCOME_ACCRUAL',
3705 l_return_status,
3706 l_inc_sty_id);
3707 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3708 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
3709 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3710 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3711 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE', G_PURPOSE_TOKEN,'INSURANCE_INCOME_ACCRUAL'); --bug 4024785
3712 RAISE OKC_API.G_EXCEPTION_ERROR;
3713 END IF;
3714
3715 l_gl_date := OKL_ACCOUNTING_UTIL.get_valid_gl_date(p_gl_date => l_ipyv_rec.CANCELLATION_DATE);
3716 l_ins_acc_adj := fnd_message.get_string('OKL','OKL_INS_INC_ACC_ADJ');
3717 if(l_ins_acc_adj IS NULL) then
3718 l_ins_acc_adj := 'Insurance income accrual adjustment';
3719 end if;
3720
3721 -- Populate Records for adjust_accrual_rec_type.
3722 l_accrual_rec.contract_id := l_ipyv_rec.KHR_ID;
3723 l_accrual_rec.accrual_date := l_gl_date;
3724 l_accrual_rec.description := l_ins_acc_adj; --'Insurance income accrual adjustment';
3725 l_accrual_rec.source_trx_id := p_src_trx_id; -- source transaction id, either rebook or termination trx
3726 l_accrual_rec.source_trx_type := 'TCN';
3727
3728 -- Populate Records for stream_rec_type.
3729 l_stream_tbl(0).stream_type_id := l_inc_sty_id;
3730 l_stream_tbl(0).stream_type_name := NULL;
3731 l_stream_tbl(0).stream_id := NULL;
3732 l_stream_tbl(0).stream_element_id := NULL;
3733 l_stream_tbl(0).stream_amount := l_adjustment_amount;
3734 l_stream_tbl(0).kle_id := l_ipyv_rec.KLE_ID;
3735
3736 -- Start of wraper code generated automatically by Debug code generator for Okl_Account_Dist_Pub.CREATE_ACCOUNTING_DIST
3737 IF(IS_DEBUG_PROCEDURE_ON) THEN
3738 BEGIN
3739 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call OKL_GENERATE_ACCRUALS_PVT.ADJUST_ACCRUALS ');
3740 END;
3741 END IF;
3742 OKL_GENERATE_ACCRUALS_PVT.ADJUST_ACCRUALS(
3743 p_api_version => p_api_version
3744 ,p_init_msg_list => p_init_msg_list
3745 ,x_return_status => x_return_status
3746 ,x_msg_count => x_msg_count
3747 ,x_msg_data => x_msg_data
3748 ,x_trx_number => l_trx_number
3749 ,p_accrual_rec => l_accrual_rec
3750 ,p_stream_tbl => l_stream_tbl);
3751
3752 IF(IS_DEBUG_PROCEDURE_ON) THEN
3753 BEGIN
3754 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call OKL_GENERATE_ACCRUALS_PVT.ADJUST_ACCRUALS ');
3755 END;
3756 END IF;
3757 -- End of wraper code generated automatically by Debug code generator for Okl_Account_Dist_Pub.CREATE_ACCOUNTING_DIST
3758 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3759 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3760 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3761 RAISE OKC_API.G_EXCEPTION_ERROR;
3762 END IF;
3763
3764 END IF;
3765 --End Bug#5955320
3766
3767 -- MGAAP start 7263041
3768 IF (l_multi_gaap_yn = 'Y') THEN
3769 IF (l_adjustment_amount_rep <> 0) THEN
3770 OKL_STREAMS_SEC_PVT.SET_REPO_STREAMS;
3771 OKL_STREAMS_UTIL.get_primary_stream_type_rep(l_ipyv_rec.khr_id,
3772 'INSURANCE_INCOME_ACCRUAL',
3773 l_return_status,
3774 l_inc_sty_id_rep);
3775 IF (l_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
3776 l_sob_id := Okl_Accounting_Util.GET_SET_OF_BOOKS_ID(
3777 p_representation_type => 'SECONDARY');
3778 l_gl_date := OKL_ACCOUNTING_UTIL.get_valid_gl_date(p_gl_date => l_ipyv_rec.CANCELLATION_DATE, p_ledger_id => l_sob_id); --MGAAP 7263041
3779 l_ins_acc_adj := fnd_message.get_string('OKL','OKL_INS_INC_ACC_ADJ');
3780 if(l_ins_acc_adj IS NULL) then
3781 l_ins_acc_adj := 'Insurance income accrual adjustment';
3782 end if;
3783
3784 -- Populate Records for adjust_accrual_rec_type.
3785 l_accrual_rec.contract_id := l_ipyv_rec.KHR_ID;
3786 l_accrual_rec.accrual_date := l_gl_date;
3787 l_accrual_rec.description := l_ins_acc_adj; --'Insurance income accrual adjustment';
3788 l_accrual_rec.source_trx_id := p_src_trx_id; -- source transaction id, either rebook or termination trx
3789 l_accrual_rec.source_trx_type := 'TCN';
3790
3791 -- Populate Records for stream_rec_type.
3792 l_stream_tbl(0).stream_type_id := l_inc_sty_id_rep;
3793 l_stream_tbl(0).stream_type_name := NULL;
3794 l_stream_tbl(0).stream_id := NULL;
3795 l_stream_tbl(0).stream_element_id := NULL;
3796 l_stream_tbl(0).stream_amount := l_adjustment_amount_rep;
3797 l_stream_tbl(0).kle_id := l_ipyv_rec.KLE_ID;
3798
3799 -- Start of wraper code generated automatically by Debug code generator for Okl_Account_Dist_Pub.CREATE_ACCOUNTING_DIST
3800 IF(IS_DEBUG_PROCEDURE_ON) THEN
3801 BEGIN
3802 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call OKL_GENERATE_ACCRUALS_PVT.ADJUST_ACCRUALS ');
3803 END;
3804 END IF;
3805
3806 l_accrual_rec.trx_number := l_trx_number;
3807 OKL_GENERATE_ACCRUALS_PVT.ADJUST_ACCRUALS(
3808 p_api_version => p_api_version
3809 ,p_init_msg_list => p_init_msg_list
3810 ,x_return_status => x_return_status
3811 ,x_msg_count => x_msg_count
3812 ,x_msg_data => x_msg_data
3813 ,x_trx_number => l_trx_number
3814 ,p_accrual_rec => l_accrual_rec
3815 ,p_stream_tbl => l_stream_tbl,
3816 p_representation_type => 'SECONDARY');
3817
3818 OKL_STREAMS_SEC_PVT.RESET_REPO_STREAMS;
3819 IF(IS_DEBUG_PROCEDURE_ON) THEN
3820 BEGIN
3821 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call OKL_GENERATE_ACCRUALS_PVT.ADJUST_ACCRUALS ');
3822 END;
3823 END IF;
3824
3825
3826 IF (x_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
3827 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
3828 ELSIF (x_return_status = Okl_Api.G_RET_STS_ERROR) THEN
3829 RAISE Okl_Api.G_EXCEPTION_ERROR;
3830 END IF;
3831
3832 END IF;
3833 END IF;
3834 END IF;
3835 -- MGAAP end 7263041
3836
3837 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3838 EXCEPTION
3839 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3840 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3841 (
3842 l_api_name,
3843 G_PKG_NAME,
3844 'OKC_API.G_RET_STS_ERROR',
3845 x_msg_count,
3846 x_msg_data,
3847 '_PROCESS'
3848 );
3849 WHEN OTHERS THEN
3850 OKL_API.Set_Message(p_app_name => OKL_API.G_APP_NAME,
3851 p_msg_name => 'OKL_UNEXPECTED_ERROR',
3852 p_token1 => 'OKL_SQLCODE',
3853 p_token1_value => SQLCODE,
3854 p_token2 => 'OKL_SQLERRM',
3855 p_token2_value => SQLERRM);
3856 END rebook_inc_adjustment;
3857 --------------------------------------------
3858 -- Procedure rebook_exp_adjustment
3859 ---------------------------------------
3860 PROCEDURE rebook_exp_adjustment(
3861 p_api_version IN NUMBER,
3862 p_init_msg_list IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
3863 x_return_status OUT NOCOPY VARCHAR2,
3864 x_msg_count OUT NOCOPY NUMBER,
3865 x_msg_data OUT NOCOPY VARCHAR2,
3866 p_ipyv_rec IN ipyv_rec_type,
3867 lp_vendor_refund_amount IN NUMBER,
3868 p_src_trx_id IN NUMBER) IS
3869
3870 l_api_name CONSTANT VARCHAR2(30) := 'rebook_exp_adjustment';
3871 l_api_version CONSTANT NUMBER := 1;
3872 l_return_status VARCHAR2(1) ;
3873 l_total_paid NUMBER;
3874 l_total_pay_accrued NUMBER;
3875 l_vendor_refund_amount NUMBER;
3876 l_strm_type_id NUMBER;
3877 l_adjustment_amount NUMBER;
3878 l_ins_try_id NUMBER;
3879 l_ipyv_rec ipyv_rec_type;
3880 CURSOR c_total_paid(l_khr_id NUMBER, l_kle_id NUMBER,l_stream_type_id NUMBER) IS
3881 SELECT SUM(amount)
3882 --FROM OKL_STREAMS STM , OKL_STRM_ELEMENTS STEM
3883 FROM OKL_STREAMS_REP_V STM , OKL_STRM_ELEMENTS STEM -- MGAAP
3884 WHERE STM.STY_ID = l_stream_type_id
3885 AND STM.KLE_ID = l_kle_id
3886 AND STM.KHR_ID = l_khr_id
3887 AND STM.ID = STEM.STM_ID
3888 AND STEM.DATE_BILLED IS NOT NULL;
3889 CURSOR c_total_payment_accrued(l_khr_id NUMBER, l_kle_id NUMBER, l_stream_type_id NUMBER) IS
3890 SELECT SUM(amount)
3891 --FROM OKL_STREAMS STM , OKL_STRM_ELEMENTS STEM
3892 FROM OKL_STREAMS_REP_V STM , OKL_STRM_ELEMENTS STEM -- MGAAP
3893 WHERE STM.STY_ID = l_stream_type_id
3894 AND STM.KLE_ID = l_kle_id
3895 AND STM.KHR_ID = l_khr_id
3896 AND STM.ID = STEM.STM_ID
3897 AND STEM.ACCRUED_YN = 'Y'
3898 AND STM.PURPOSE_CODE IS NULL;
3899 CURSOR okl_trx_types (cp_name VARCHAR2, cp_language VARCHAR2) IS
3900 SELECT id
3901 FROM okl_trx_types_tl
3902 WHERE name = cp_name
3903 AND language = cp_language;
3904
3905 /* Start Bug#5955320
3906
3907 l_tcnv_rec_in OKL_TRX_CONTRACTS_PUB.tcnv_rec_type ;
3908 x_tcnv_rec_in OKL_TRX_CONTRACTS_PUB.tcnv_rec_type ;
3909 l_tclv_tbl OKL_TRX_CONTRACTS_PUB.tclv_tbl_type ;
3910 x_tclv_tbl OKL_TRX_CONTRACTS_PUB.tclv_tbl_type ;
3911
3912 l_ctxt_val_tbl Okl_Account_Dist_Pub.CTXT_VAL_TBL_TYPE;
3913 l_acc_gen_primary_key_tbl Okl_Account_Dist_Pub.acc_gen_primary_key;
3914 l_template_tbl Okl_Account_Dist_Pub.AVLV_TBL_TYPE;
3915 l_amount_tbl Okl_Account_Dist_Pub.AMOUNT_TBL_TYPE;
3916
3917 End Bug#5955320
3918 */
3919
3920 l_inc_sty_id NUMBER ;
3921 -- Start Bug#5955320
3922
3923 l_gl_date DATE;
3924 l_trx_number VARCHAR2(30) := NULL;
3925 l_accrual_rec OKL_GENERATE_ACCRUALS_PVT.adjust_accrual_rec_type;
3926 l_stream_tbl OKL_GENERATE_ACCRUALS_PVT.stream_tbl_type;
3927 l_ins_acc_adj VARCHAR2(240);
3928
3929 -- End Bug#5955320
3930
3931 CURSOR l_contract_currency_csr IS
3932 SELECT currency_code
3933 ,currency_conversion_type
3934 -- ,currency_conversion_rate
3935 ,currency_conversion_date
3936 FROM okl_k_headers_full_v
3937 WHERE id = p_ipyv_rec.khr_id ;
3938
3939 CURSOR l_acc_dtls_csr(p_khr_id IN NUMBER) IS
3940 SELECT khr.pdt_id pdt_id,
3941 khr.multi_gaap_yn mylti_gaap_yn, -- MGAAP
3942 pdt.reporting_pdt_id reporting_pdt_id
3943 FROM okl_k_headers_v khr,
3944 okl_products pdt
3945 WHERE khr.ID = p_khr_id
3946 AND khr.PDT_ID = pdt.ID;
3947
3948 --smoduga..Bug 4493213 fix..08-aug-2005..start
3949 ----- Account Generator sources
3950 Cursor salesP_csr( chrId NUMBER) IS
3951 select ct.object1_id1 id
3952 from okc_contacts ct,
3953 okc_contact_sources csrc,
3954 okc_k_party_roles_b pty,
3955 okc_k_headers_b chr
3956 where ct.cpl_id = pty.id
3957 and ct.cro_code = csrc.cro_code
3958 and ct.jtot_object1_code = csrc.jtot_object_code
3959 and ct.dnz_chr_id = chr.id
3960 and pty.rle_code = csrc.rle_code
3961 and csrc.cro_code = 'SALESPERSON'
3962 and csrc.rle_code = 'LESSOR'
3963 and csrc.buy_or_sell = chr.buy_or_sell
3964 and pty.dnz_chr_id = chr.id
3965 and pty.chr_id = chr.id
3966 and chr.id = chrId;
3967
3968 l_salesP_rec salesP_csr%ROWTYPE;
3969
3970 Cursor fnd_pro_csr IS
3971 select mo_global.get_current_org_id() l_fnd_profile
3972 from dual;
3973 fnd_pro_rec fnd_pro_csr%ROWTYPE;
3974 counter NUMBER;
3975 --smoduga..Bug 4493213 fix..08-aug-2005..end
3976
3977
3978 l_ptid NUMBER;
3979 l_currency_conversion_type okl_k_headers_full_v.currency_conversion_type%TYPE;
3980 l_currency_conversion_date okl_k_headers_full_v.currency_conversion_date%TYPE;
3981 l_curr_code GL_LEDGERS_PUBLIC_V.CURRENCY_CODE%TYPE;
3982
3983 l_dist_info_rec Okl_Account_Dist_Pub.dist_info_REC_TYPE;
3984 --l_acct_call_rec l_acc_dtls_csr%ROWTYPE;
3985 l_tmpl_identify_rec Okl_Account_Dist_Pub.TMPL_IDENTIFY_REC_TYPE;
3986 -- gboomina Bug 4622198 - Added for Investor Special Accounting Codes - Start
3987 l_fact_sync_code VARCHAR2(2000);
3988 l_inv_acct_code VARCHAR2(2000);
3989 -- gboomina Bug 4622198 - Added for Investor Special Accounting Codes - End
3990
3991 -- MGAAP start 7263041
3992
3993 l_strm_type_id_rep NUMBER;
3994 l_adjustment_amount_rep NUMBER;
3995 l_multi_gaap_yn okl_k_headers.multi_gaap_yn%TYPE;
3996 l_reporting_pdt_id okl_products.reporting_pdt_id%TYPE;
3997 l_sob_id NUMBER;
3998 l_total_pay_accrued_rep NUMBER;
3999 l_inc_sty_id_rep NUMBER ;
4000
4001 -- MGAAP end 7263041
4002
4003 BEGIN
4004 l_ipyv_rec := p_ipyv_rec ;
4005 l_vendor_refund_amount := lp_vendor_refund_amount;
4006
4007 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
4008 G_PKG_NAME,
4009 p_init_msg_list,
4010 l_api_version,
4011 p_api_version,
4012 '_PROCESS',
4013 l_return_status);
4014 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4015 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4016 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4017 RAISE OKC_API.G_EXCEPTION_ERROR;
4018 END IF;
4019
4020 -- MGAAP start 7263041
4021 -- Moved from bottom
4022 OPEN l_acc_dtls_csr(l_ipyv_rec.KHR_ID );
4023 FETCH l_acc_dtls_csr INTO l_ptid,
4024 l_multi_gaap_yn, -- MGAAP
4025 l_reporting_pdt_id; -- MGAAP
4026 IF(l_acc_dtls_csr%NOTFOUND) THEN
4027 Okc_Api.set_message(G_APP_NAME, G_NO_STREAM,
4028 G_COL_NAME_TOKEN,'Stream Type',G_COL_VALUE_TOKEN,'INSREFUND');
4029 x_return_status := OKC_API.G_RET_STS_ERROR ;
4030 CLOSE l_acc_dtls_csr ;
4031 RAISE OKC_API.G_EXCEPTION_ERROR;
4032 END if ;
4033 CLOSE l_acc_dtls_csr;
4034 -- MGAAP end 7263041
4035
4036 -- Expense Adjustment
4037 -- Sum of Disbursed Payable(1) - Sum of payable debit(sign)(2) - Sum of accrued insurance (3)
4038 OKL_STREAMS_UTIL.get_primary_stream_type(l_ipyv_rec.khr_id,
4039 'INSURANCE_PAYABLE',
4040 l_return_status,
4041 l_strm_type_id);
4042 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4043 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
4044 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4045 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4046 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE', G_PURPOSE_TOKEN,'INSURANCE_PAYABLE'); --bug 4024785
4047 RAISE OKC_API.G_EXCEPTION_ERROR;
4048 END IF;
4049 OPEN c_total_paid(l_ipyv_rec.KHR_ID , l_ipyv_rec.KLE_ID,l_strm_type_id);
4050 FETCH c_total_paid INTO l_total_paid;
4051 CLOSE c_total_paid ;
4052 --
4053 -- Removed for fixing 3745151 as no exception
4054 -- needs to be thrown as we are setting total paid
4055 -- to zero if cursor fetch fails.
4056 /*
4057 IF(c_total_paid%NOTFOUND) THEN
4058 Okc_Api.set_message(G_APP_NAME, G_INVALID_CONTRACT,
4059 G_COL_NAME_TOKEN,'Contract ID',G_COL_VALUE_TOKEN,l_ipyv_rec.KHR_ID);
4060 x_return_status := OKC_API.G_RET_STS_ERROR ;
4061 CLOSE c_total_paid ;
4062 RAISE OKC_API.G_EXCEPTION_ERROR;
4063 END if ;
4064 */
4065
4066 IF ((l_total_paid IS NULL ) OR (l_total_paid = OKC_API.G_MISS_NUM )) THEN
4067 l_total_paid := 0;
4068 END IF ;
4069 OKL_STREAMS_UTIL.get_primary_stream_type(l_ipyv_rec.khr_id,
4070 'INSURANCE_EXPENSE_ACCRUAL',
4071 l_return_status,
4072 l_strm_type_id);
4073 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4074 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
4075 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4076 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4077 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE', G_PURPOSE_TOKEN,'INSURANCE_EXPENSE_ACCRUAL'); --bug 4024785
4078 RAISE OKC_API.G_EXCEPTION_ERROR;
4079 END IF;
4080 OPEN c_total_payment_accrued(l_ipyv_rec.KHR_ID , l_ipyv_rec.KLE_ID,l_strm_type_id);
4081 FETCH c_total_payment_accrued INTO l_total_pay_accrued;
4082 CLOSE c_total_payment_accrued ;
4083 --
4084 -- Removed for fixing 3745151 as no exception
4085 -- needs to be thrown as we are setting total paid
4086 -- to zero if cursor fetch fails.
4087 /*
4088 IF(c_total_payment_accrued%NOTFOUND) THEN
4089 Okc_Api.set_message(G_APP_NAME, G_INVALID_CONTRACT,
4090 G_COL_NAME_TOKEN,'Contract ID',G_COL_VALUE_TOKEN,l_ipyv_rec.KHR_ID);
4091 x_return_status := OKC_API.G_RET_STS_ERROR ;
4092 CLOSE c_total_payment_accrued ;
4093 RAISE OKC_API.G_EXCEPTION_ERROR;
4094 END if ;
4095 */
4096
4097 IF ((l_total_pay_accrued IS NULL ) OR (l_total_pay_accrued = OKC_API.G_MISS_NUM )) THEN
4098 l_total_pay_accrued := 0;
4099 END IF ;
4100
4101 IF ((l_vendor_refund_amount IS NULL ) OR (l_vendor_refund_amount = OKC_API.G_MISS_NUM )) THEN
4102 l_vendor_refund_amount := 0;
4103 END IF ;
4104 l_adjustment_amount := l_total_paid - l_total_pay_accrued - l_vendor_refund_amount;
4105
4106 -- MGAAP start 7263041
4107 IF (l_multi_gaap_yn = 'Y') THEN
4108 OKL_STREAMS_UTIL.get_primary_stream_type(l_ipyv_rec.khr_id,
4109 'INSURANCE_EXPENSE_ACCRUAL',
4110 l_return_status,
4111 l_strm_type_id_rep);
4112 IF (l_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
4113 OKL_STREAMS_SEC_PVT.SET_REPO_STREAMS;
4114 OPEN c_total_payment_accrued(l_ipyv_rec.KHR_ID , l_ipyv_rec.KLE_ID,l_strm_type_id_rep);
4115 FETCH c_total_payment_accrued INTO l_total_pay_accrued_rep;
4116 CLOSE c_total_payment_accrued ;
4117
4118 IF ((l_total_pay_accrued_rep IS NULL ) OR (l_total_pay_accrued_rep = OKC_API.G_MISS_NUM )) THEN
4119 l_total_pay_accrued_rep := 0;
4120 END IF ;
4121
4122 IF ((l_vendor_refund_amount IS NULL ) OR (l_vendor_refund_amount = OKC_API.G_MISS_NUM )) THEN
4123 l_vendor_refund_amount := 0;
4124 END IF ;
4125 l_adjustment_amount_rep := l_total_paid - l_total_pay_accrued_rep - l_vendor_refund_amount;
4126 END IF;
4127 END IF;
4128 OKL_STREAMS_SEC_PVT.RESET_REPO_STREAMS;
4129 -- MGAAP start 7263041
4130
4131 /* Start Bug#5955320
4132 --gboomina Bug 4885759 - Start - Changing the transaction type from Insurance to Accrual
4133 OPEN okl_trx_types ('Accrual', 'US');
4134 FETCH okl_trx_types INTO l_ins_try_id;
4135 IF(okl_trx_types%NOTFOUND) THEN
4136 Okc_Api.set_message(G_APP_NAME, G_NO_TRX,
4137 G_COL_NAME_TOKEN,'Transaction Type',G_COL_VALUE_TOKEN,'Accrual');
4138 x_return_status := OKC_API.G_RET_STS_ERROR ;
4139 CLOSE okl_trx_types ;
4140 RAISE OKC_API.G_EXCEPTION_ERROR;
4141 END IF ;
4142 CLOSE okl_trx_types;
4143 --gboomina Bug 4885759 - End
4144 OPEN l_acc_dtls_csr(l_ipyv_rec.KHR_ID );
4145 FETCH l_acc_dtls_csr INTO l_ptid;
4146 IF(l_acc_dtls_csr%NOTFOUND) THEN
4147 Okc_Api.set_message(G_APP_NAME, G_NO_STREAM,
4148 G_COL_NAME_TOKEN,'Stream Type',G_COL_VALUE_TOKEN,'INSREFUND');
4149 x_return_status := OKC_API.G_RET_STS_ERROR ;
4150 CLOSE l_acc_dtls_csr ;
4151 RAISE OKC_API.G_EXCEPTION_ERROR;
4152 END if ;
4153 CLOSE l_acc_dtls_csr;
4154 BEGIN
4155 OPEN l_contract_currency_csr;
4156 FETCH l_contract_currency_csr INTO l_curr_code,l_currency_conversion_type,
4157 l_currency_conversion_date ;
4158 CLOSE l_contract_currency_csr;
4159 EXCEPTION
4160 WHEN NO_DATA_FOUND THEN
4161 OKC_API.set_message(G_APP_NAME, G_NO_K_TERM,G_COL_VALUE_TOKEN,p_ipyv_rec.khr_id );
4162 x_return_status := OKC_API.G_RET_STS_ERROR;
4163 IF l_contract_currency_csr%ISOPEN THEN
4164 CLOSE l_contract_currency_csr;
4165 END IF;
4166 RAISE OKC_API.G_EXCEPTION_ERROR;
4167 WHEN OTHERS THEN
4168 IF l_contract_currency_csr%ISOPEN THEN
4169 CLOSE l_contract_currency_csr;
4170 END IF;
4171 -- store SQL error message on message stack for caller
4172 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,
4173 SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
4174 x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR ;
4175 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR ;
4176 END;
4177 IF (l_adjustment_amount <> 0 ) THEN
4178 l_tcnv_rec_in.khr_id := l_ipyv_rec.KHR_ID ;
4179 l_tcnv_rec_in.try_id := l_ins_try_id;
4180 l_tcnv_rec_in.tsu_code := 'ENTERED';
4181 l_tcnv_rec_in.tcn_type := 'AAJ';
4182 l_tcnv_rec_in.date_transaction_occurred := l_ipyv_rec.CANCELLATION_DATE;
4183 l_tcnv_rec_in.amount := l_adjustment_amount;
4184 l_tcnv_rec_in.currency_code := l_curr_code ;
4185 l_tcnv_rec_in.currency_conversion_type := l_currency_conversion_type ;
4186 l_tcnv_rec_in.currency_conversion_date := l_currency_conversion_date ;
4187 l_tcnv_rec_in.legal_entity_id := OKL_LEGAL_ENTITY_UTIL.get_khr_le_id(p_khr_id => l_ipyv_rec.KHR_ID);
4188 -- Line Data
4189 l_tclv_tbl(1).line_number := 1;
4190 l_tclv_tbl(1).khr_id := l_ipyv_rec.KHR_ID;
4191 l_tclv_tbl(1).tcl_type := 'AAJ' ;
4192 l_tclv_tbl(1).AMOUNT := l_adjustment_amount;
4193 l_tclv_tbl(1).currency_code := l_curr_code ;
4194 l_tclv_tbl(1).ORG_ID := l_ipyv_rec.org_id ;
4195 l_tclv_tbl(1).STY_ID := l_strm_type_id;
4196
4197 -- Start of wraper code generated automatically by Debug code generator for OKL_TRX_CONTRACTS_PUB.create_trx_contracts
4198 IF(IS_DEBUG_PROCEDURE_ON) THEN
4199 BEGIN
4200 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call OKL_TRX_CONTRACTS_PUB.create_trx_contracts ');
4201 END;
4202 END IF;
4203 OKL_TRX_CONTRACTS_PUB.create_trx_contracts(
4204 p_api_version => l_api_version,
4205 p_init_msg_list => OKC_API.G_FALSE,
4206 x_return_status => x_return_status,
4207 x_msg_count => x_msg_count,
4208 x_msg_data => x_msg_data,
4209 p_tcnv_rec =>l_tcnv_rec_in ,
4210 p_tclv_tbl => l_tclv_tbl,
4211 x_tcnv_rec => x_tcnv_rec_in,
4212 x_tclv_tbl => x_tclv_tbl
4213 );
4214 IF(IS_DEBUG_PROCEDURE_ON) THEN
4215 BEGIN
4216 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call OKL_TRX_CONTRACTS_PUB.create_trx_contracts ');
4217 END;
4218 END IF;
4219 -- End of wraper code generated automatically by Debug code generator for OKL_TRX_CONTRACTS_PUB.create_trx_contracts
4220 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4221 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4222 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4223 RAISE OKC_API.G_EXCEPTION_ERROR;
4224 END IF;
4225
4226 --smoduga..Bug 4493213 fix..01-aug-2005..start
4227 counter := 1;
4228 OPEN fnd_pro_csr;
4229 FETCH fnd_pro_csr INTO fnd_pro_rec;
4230 IF ( fnd_pro_csr%FOUND ) Then
4231 l_acc_gen_primary_key_tbl(counter).source_table := 'FINANCIALS_SYSTEM_PARAMETERS';
4232 l_acc_gen_primary_key_tbl(counter).primary_key_column := fnd_pro_rec.l_fnd_profile;
4233 counter := counter + 1 ;
4234 End IF;
4235 CLOSE fnd_pro_csr;
4236 OPEN salesP_csr(l_ipyv_rec.KHR_ID);
4237 FETCH salesP_csr INTO l_salesP_rec;
4238 IF ( salesP_csr%FOUND ) Then
4239 l_acc_gen_primary_key_tbl(counter).source_table := 'JTF_RS_SALESREPS_MO_V';
4240 l_acc_gen_primary_key_tbl(counter).primary_key_column := l_salesP_rec.id;
4241 counter := counter + 1 ;
4242 END IF ;
4243 CLOSE salesP_csr;
4244 --smoduga..Bug 4493213 fix..01-aug-2005..end
4245
4246 OKL_STREAMS_UTIL.get_primary_stream_type(l_ipyv_rec.khr_id,
4247 'INSURANCE_EXPENSE_ACCRUAL',
4248 l_return_status,
4249 l_strm_type_id);
4250 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4251 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
4252 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4253 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4254 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE', G_PURPOSE_TOKEN,'INSURANCE_EXPENSE_ACCRUAL'); --bug 4024785
4255 RAISE OKC_API.G_EXCEPTION_ERROR;
4256 END IF;
4257
4258 -- gboomina Bug 4622198 - Added for Investor Special Accounting Codes - Start
4259 get_special_acct_codes(p_khr_id => l_ipyv_rec.KHR_ID,
4260 p_trx_date => SYSDATE,
4261 x_fact_sync_code => l_fact_sync_code,
4262 x_inv_acct_code => l_inv_acct_code );
4263 -- gboomina Bug 4622198 - Added for Investor Special Accounting Codes - End
4264
4265 -- Populate Records for Accounting Call.
4266 l_tmpl_identify_rec.PRODUCT_ID := l_ptid;
4267 l_tmpl_identify_rec.TRANSACTION_TYPE_ID := l_ins_try_id;
4268 l_tmpl_identify_rec.STREAM_TYPE_ID := l_inc_sty_id;
4269 l_tmpl_identify_rec.ADVANCE_ARREARS := NULL;
4270 -- gboomina Bug 4622198 - Modified for Investor Special Accounting - Start
4271 l_tmpl_identify_rec.FACTORING_SYND_FLAG := l_fact_sync_code;
4272 l_tmpl_identify_rec.INVESTOR_CODE := l_inv_acct_code;
4273 -- gboomina Bug 4622198 - Modified for Investor Special Accounting - End
4274 l_tmpl_identify_rec.SYNDICATION_CODE := NULL;
4275 l_tmpl_identify_rec.FACTORING_CODE := NULL;
4276 l_tmpl_identify_rec.MEMO_YN := 'N';
4277 l_tmpl_identify_rec.PRIOR_YEAR_YN := 'N';
4278 l_dist_info_rec.SOURCE_ID := x_tclv_tbl(1).ID;
4279 l_dist_info_rec.SOURCE_TABLE := 'OKL_TXL_CNTRCT_LNS';
4280 l_dist_info_rec.ACCOUNTING_DATE := SYSDATE;
4281 l_dist_info_rec.GL_REVERSAL_FLAG := 'N';
4282 --gboomina Bug 4885759 - Start
4283 -- Making Tracactions 'Actual' instead of 'Draft' by setting post_to_gl as 'Y'
4284 l_dist_info_rec.POST_TO_GL := 'Y';
4285 --gboomina Bug 4885759 - End
4286 l_dist_info_rec.AMOUNT := l_adjustment_amount;
4287 l_dist_info_rec.CURRENCY_CODE := l_curr_code;
4288 l_dist_info_rec.CURRENCY_CONVERSION_TYPE := l_currency_conversion_type;
4289 l_dist_info_rec.CURRENCY_CONVERSION_DATE := l_currency_conversion_date;
4290 l_dist_info_rec.CONTRACT_ID := l_ipyv_rec.KHR_ID ;
4291 l_dist_info_rec.CONTRACT_LINE_ID := l_ipyv_rec.KLE_ID;
4292 IF ( l_adjustment_amount > 0) THEN
4293
4294 -- Start of wraper code generated automatically by Debug code generator for Okl_Account_Dist_Pub.CREATE_ACCOUNTING_DIST
4295 IF(IS_DEBUG_PROCEDURE_ON) THEN
4296 BEGIN
4297 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call Okl_Account_Dist_Pub.CREATE_ACCOUNTING_DIST ');
4298 END;
4299 END IF;
4300 Okl_Account_Dist_Pub.CREATE_ACCOUNTING_DIST(
4301 p_api_version => p_api_version
4302 ,p_init_msg_list => p_init_msg_list
4303 ,x_return_status => x_return_status
4304 ,x_msg_count => x_msg_count
4305 ,x_msg_data => x_msg_data
4306 ,p_tmpl_identify_rec => l_tmpl_identify_rec
4307 ,p_dist_info_rec => l_dist_info_rec
4308 ,p_ctxt_val_tbl => l_ctxt_val_tbl
4309 ,p_acc_gen_primary_key_tbl => l_acc_gen_primary_key_tbl
4310 ,x_template_tbl => l_template_tbl
4311 ,x_amount_tbl => l_amount_tbl);
4312 IF(IS_DEBUG_PROCEDURE_ON) THEN
4313 BEGIN
4314 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call Okl_Account_Dist_Pub.CREATE_ACCOUNTING_DIST ');
4315 END;
4316 END IF;
4317 -- End of wraper code generated automatically by Debug code generator for Okl_Account_Dist_Pub.CREATE_ACCOUNTING_DIST
4318 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4319 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4320 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4321 RAISE OKC_API.G_EXCEPTION_ERROR;
4322 END IF;
4323
4324 END IF ;
4325 END IF;
4326
4327 End Bug#5955320 */
4328
4329 --Start Bug#5955320
4330 IF (l_adjustment_amount <> 0 ) THEN
4331
4332 OKL_STREAMS_UTIL.get_primary_stream_type(l_ipyv_rec.khr_id,
4333 'INSURANCE_EXPENSE_ACCRUAL',
4334 l_return_status,
4335 l_inc_sty_id);
4336 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4337 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
4338 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4339 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4340 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE', G_PURPOSE_TOKEN,'INSURANCE_INCOME_ACCRUAL'); --bug 4024785
4341 RAISE OKC_API.G_EXCEPTION_ERROR;
4342 END IF;
4343
4344 l_gl_date := OKL_ACCOUNTING_UTIL.get_valid_gl_date(p_gl_date => l_ipyv_rec.CANCELLATION_DATE);
4345 l_ins_acc_adj := fnd_message.get_string('OKL','OKL_INS_EXP_ACC_ADJ');
4346 if(l_ins_acc_adj IS NULL) then
4347 l_ins_acc_adj := 'Insurance expense accrual adjustment';
4348 end if;
4349
4350 -- Populate Records for adjust_accrual_rec_type.
4351 l_accrual_rec.contract_id := l_ipyv_rec.KHR_ID;
4352 l_accrual_rec.accrual_date := l_gl_date;
4353 l_accrual_rec.description := l_ins_acc_adj;
4354 l_accrual_rec.source_trx_id := p_src_trx_id; -- source transaction id, either rebook or termination trx
4355 l_accrual_rec.source_trx_type := 'TCN';
4356
4357 -- Populate Records for stream_rec_type.
4358 l_stream_tbl(0).stream_type_id := l_inc_sty_id;
4359 l_stream_tbl(0).stream_type_name := NULL;
4360 l_stream_tbl(0).stream_id := NULL;
4361 l_stream_tbl(0).stream_element_id := NULL;
4362 l_stream_tbl(0).stream_amount := l_adjustment_amount;
4363 l_stream_tbl(0).kle_id := l_ipyv_rec.KLE_ID;
4364
4365 -- Start of wraper code generated automatically by Debug code generator for OKL_GENERATE_ACCRUALS_PVT.ADJUST_ACCRUALS
4366 IF(IS_DEBUG_PROCEDURE_ON) THEN
4367 BEGIN
4368 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call OKL_GENERATE_ACCRUALS_PVT.ADJUST_ACCRUALS ');
4369 END;
4370 END IF;
4371
4372 OKL_GENERATE_ACCRUALS_PVT.ADJUST_ACCRUALS(
4373 p_api_version => p_api_version
4374 ,p_init_msg_list => p_init_msg_list
4375 ,x_return_status => x_return_status
4376 ,x_msg_count => x_msg_count
4377 ,x_msg_data => x_msg_data
4378 ,x_trx_number => l_trx_number
4379 ,p_accrual_rec => l_accrual_rec
4380 ,p_stream_tbl => l_stream_tbl);
4381
4382 IF(IS_DEBUG_PROCEDURE_ON) THEN
4383 BEGIN
4384 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call Okl_Account_Dist_Pub.CREATE_ACCOUNTING_DIST ');
4385 END;
4386 END IF;
4387 -- End of wraper code generated automatically by Debug code generator for Okl_Account_Dist_Pub.CREATE_ACCOUNTING_DIST
4388 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4389 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4390 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4391 RAISE OKC_API.G_EXCEPTION_ERROR;
4392 END IF;
4393
4394 END IF;
4395 --End Bug#5955320
4396
4397 -- MGAAP start 7263041
4398
4399 IF (l_multi_gaap_yn = 'Y') THEN
4400 IF (l_adjustment_amount_rep <> 0 ) THEN
4401
4402 OKL_STREAMS_UTIL.get_primary_stream_type_rep(l_ipyv_rec.khr_id,
4403 'INSURANCE_EXPENSE_ACCRUAL',
4404 l_return_status,
4405 l_inc_sty_id_rep);
4406 IF (l_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
4407
4408 l_sob_id := Okl_Accounting_Util.GET_SET_OF_BOOKS_ID(
4409 p_representation_type => 'SECONDARY');
4410 l_gl_date := OKL_ACCOUNTING_UTIL.get_valid_gl_date(p_gl_date => l_ipyv_rec.CANCELLATION_DATE, p_ledger_id => l_sob_id);
4411 l_ins_acc_adj := fnd_message.get_string('OKL','OKL_INS_EXP_ACC_ADJ');
4412 if(l_ins_acc_adj IS NULL) then
4413 l_ins_acc_adj := 'Insurance expense accrual adjustment';
4414 end if;
4415
4416 -- Populate Records for adjust_accrual_rec_type.
4417 l_accrual_rec.contract_id := l_ipyv_rec.KHR_ID;
4418 l_accrual_rec.accrual_date := l_gl_date;
4419 l_accrual_rec.description := l_ins_acc_adj;
4420 l_accrual_rec.source_trx_id := p_src_trx_id; -- source transaction id, either rebook or termination trx
4421 l_accrual_rec.source_trx_type := 'TCN';
4422
4423 -- Populate Records for stream_rec_type.
4424 l_stream_tbl(0).stream_type_id := l_inc_sty_id_rep;
4425 l_stream_tbl(0).stream_type_name := NULL;
4426 l_stream_tbl(0).stream_id := NULL;
4427 l_stream_tbl(0).stream_element_id := NULL;
4428 l_stream_tbl(0).stream_amount := l_adjustment_amount_rep;
4429 l_stream_tbl(0).kle_id := l_ipyv_rec.KLE_ID;
4430
4431 -- Start of wraper code generated automatically by Debug code generator for OKL_GENERATE_ACCRUALS_PVT.ADJUST_ACCRUALS
4432 IF(IS_DEBUG_PROCEDURE_ON) THEN
4433 BEGIN
4434 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call OKL_GENERATE_ACCRUALS_PVT.ADJUST_ACCRUALS ');
4435 END;
4436 END IF;
4437
4438 l_accrual_rec.trx_number := l_trx_number;
4439 OKL_GENERATE_ACCRUALS_PVT.ADJUST_ACCRUALS(
4440 p_api_version => p_api_version
4441 ,p_init_msg_list => p_init_msg_list
4442 ,x_return_status => x_return_status
4443 ,x_msg_count => x_msg_count
4444 ,x_msg_data => x_msg_data
4445 ,x_trx_number => l_trx_number
4446 ,p_accrual_rec => l_accrual_rec
4447 ,p_stream_tbl => l_stream_tbl
4448 ,p_representation_type => 'SECONDARY');
4449
4450 IF(IS_DEBUG_PROCEDURE_ON) THEN
4451 BEGIN
4452 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call OKL_GENERATE_ACCRUALS_PVT.ADJUST_ACCRUALS ');
4453 END;
4454 END IF;
4455 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4456 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4457 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4458 RAISE OKC_API.G_EXCEPTION_ERROR;
4459 END IF;
4460
4461 END IF;
4462
4463 END IF;
4464
4465 END IF;
4466
4467 -- MGAAP end 7263041
4468
4469
4470 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
4471 EXCEPTION
4472 WHEN OKC_API.G_EXCEPTION_ERROR THEN
4473 x_return_status := OKC_API.HANDLE_EXCEPTIONS
4474 (
4475 l_api_name,
4476 G_PKG_NAME,
4477 'OKC_API.G_RET_STS_ERROR',
4478 x_msg_count,
4479 x_msg_data,
4480 '_PROCESS'
4481 );
4482 WHEN OTHERS THEN
4483 OKL_API.Set_Message(p_app_name => OKL_API.G_APP_NAME,
4484 p_msg_name => 'OKL_UNEXPECTED_ERROR',
4485 p_token1 => 'OKL_SQLCODE',
4486 p_token1_value => SQLCODE,
4487 p_token2 => 'OKL_SQLERRM',
4488 p_token2_value => SQLERRM);
4489 END rebook_exp_adjustment;
4490
4491 ------------------------------------
4492 -- Procedure Rebook_manual_invoice
4493 ----------------------------------
4494 PROCEDURE Rebook_manual_invoice(
4495 p_api_version IN NUMBER
4496 ,p_init_msg_list IN VARCHAR2
4497 ,x_return_status OUT NOCOPY VARCHAR2
4498 ,x_msg_count OUT NOCOPY NUMBER
4499 ,x_msg_data OUT NOCOPY VARCHAR2
4500 ,p_khr_id IN NUMBER
4501 ,p_kle_id IN NUMBER
4502 ,p_strm_typ_id IN NUMBER
4503 ,p_inv_amount IN NUMBER) IS
4504 --------------------------
4505 -- DECLARE Local Variables
4506 ---------------------------
4507 l_api_name CONSTANT VARCHAR2(30) := 'Rebook_Manual_Invoice';
4508 l_api_version NUMBER := 1.0;
4509 l_init_msg_list VARCHAR2(1) := Okc_Api.g_false;
4510 l_return_status VARCHAR2(1);
4511 l_msg_count NUMBER;
4512 l_msg_data VARCHAR2(2000);
4513 l_try_id NUMBER;
4514 ----------------------------
4515 -- DECLARE Records/Tables
4516 ----------------------------
4517 l_taiv_rec taiv_rec_type;
4518 lx_taiv_rec taiv_rec_type;
4519 l_tilv_rec tilv_rec_type;
4520 lx_tilv_rec tilv_rec_type;
4521 p_bpd_acc_rec Okl_Acc_Call_Pub.bpd_acc_rec_type;
4522 --Get Transaction type Id
4523 CURSOR l_try_id_cur IS
4524 SELECT ID
4525 FROM okl_trx_types_tl
4526 WHERE NAME = 'Billing' AND LANGUAGE = 'US';
4527 BEGIN
4528 x_return_status := OKL_API.G_RET_STS_SUCCESS;
4529 l_return_status := OKL_API.START_ACTIVITY(
4530 p_api_name => l_api_name,
4531 p_pkg_name => g_pkg_name,
4532 p_init_msg_list => p_init_msg_list,
4533 l_api_version => l_api_version,
4534 p_api_version => p_api_version,
4535 p_api_type => '_PROCESS',
4536 x_return_status => l_return_status);
4537 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4538 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4539 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4540 RAISE OKC_API.G_EXCEPTION_ERROR;
4541 END IF;
4542 -- Header level
4543 OPEN l_try_id_cur;
4544 FETCH l_try_id_cur INTO l_try_id;
4545 IF(l_try_id_cur %NOTFOUND) THEN
4546 Okc_Api.set_message(G_APP_NAME, G_NO_TRX,
4547 G_COL_NAME_TOKEN,'Transaction Type',G_COL_VALUE_TOKEN,'Billing');
4548 x_return_status := OKC_API.G_RET_STS_ERROR ;
4549 CLOSE l_try_id_cur ;
4550 RAISE OKC_API.G_EXCEPTION_ERROR;
4551 END IF ;
4552 l_taiv_rec.trx_status_code := 'SUBMITTED';
4553 l_taiv_rec.sfwt_flag := 'Y';
4554 l_taiv_rec.khr_id := p_khr_id;
4555 l_taiv_rec.try_id := l_try_id;
4556 l_taiv_rec.amount := p_inv_amount;
4557 l_taiv_rec.date_invoiced := sysdate;
4558 l_taiv_rec.date_entered := sysdate;
4559 l_taiv_rec.legal_entity_id := OKL_LEGAL_ENTITY_UTIL.get_khr_le_id(p_khr_id => p_khr_id);
4560 -- Start of Debug code generator for Okl_Trx_Ar_Invoices_Pub.insert_trx_ar_invoices
4561 IF(L_DEBUG_ENABLED='Y') THEN
4562 L_LEVEL_PROCEDURE :=FND_LOG.LEVEL_PROCEDURE;
4563 IS_DEBUG_PROCEDURE_ON := OKL_DEBUG_PUB.Check_Log_On(L_MODULE, L_LEVEL_PROCEDURE);
4564 END IF;
4565 IF(IS_DEBUG_PROCEDURE_ON) THEN
4566 BEGIN
4567 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug call Okl_Trx_Ar_Invoices_Pub.insert_trx_ar_invoices');
4568 END;
4569 END IF;
4570 -- Header level insertion
4571 Okl_Trx_Ar_Invoices_Pub.insert_trx_ar_invoices(
4572 l_api_version
4573 ,l_init_msg_list
4574 ,l_return_status
4575 ,l_msg_count
4576 ,l_msg_data
4577 ,l_taiv_rec
4578 ,lx_taiv_rec);
4579 IF(IS_DEBUG_PROCEDURE_ON) THEN
4580 BEGIN
4581 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug call Okl_Trx_Ar_Invoices_Pub.insert_trx_ar_invoices');
4582 END;
4583 END IF;
4584 -- End of wraper code generated automatically by Debug code generator for Okl_Trx_Ar_Invoices_Pub.insert_trx_ar_invoices
4585 IF ( l_return_status = Fnd_Api.G_RET_STS_ERROR ) THEN
4586 RAISE Fnd_Api.G_EXC_ERROR;
4587 ELSIF (l_return_status = Fnd_Api.G_RET_STS_UNEXP_ERROR ) THEN
4588 RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
4589 END IF;
4590 --Line Level
4591 l_tilv_rec.description := 'Insurance manual invoice';
4592 l_tilv_rec.sfwt_flag := 'Y';
4593 l_tilv_rec.amount := p_inv_amount;
4594 l_tilv_rec.tai_id := lx_taiv_rec.id;
4595 l_tilv_rec.INV_RECEIV_LINE_CODE := 'LINE';
4596 l_tilv_rec.LINE_NUMBER := 1;
4597 l_tilv_rec.KLE_ID := p_kle_id;
4598 l_tilv_rec.sty_id := p_strm_typ_id;
4599 -- Start of Debug code generator for okl_txl_ar_inv_lns_pub.insert_txl_ar_inv_lns
4600 IF(L_DEBUG_ENABLED='Y') THEN
4601 L_LEVEL_PROCEDURE :=FND_LOG.LEVEL_PROCEDURE;
4602 IS_DEBUG_PROCEDURE_ON := OKL_DEBUG_PUB.Check_Log_On(L_MODULE, L_LEVEL_PROCEDURE);
4603 END IF;
4604 IF(IS_DEBUG_PROCEDURE_ON) THEN
4605 BEGIN
4606 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug call okl_txl_ar_inv_lns_pub.insert_txl_ar_inv_lns');
4607 END;
4608 END IF;
4609 --line level insertion
4610 okl_txl_ar_inv_lns_pub.insert_txl_ar_inv_lns(
4611 l_api_version
4612 ,l_init_msg_list
4613 ,l_return_status
4614 ,l_msg_count
4615 ,l_msg_data
4616 ,l_tilv_rec
4617 ,lx_tilv_rec);
4618 IF(IS_DEBUG_PROCEDURE_ON) THEN
4619 BEGIN
4620 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug call okl_txl_ar_inv_lns_pub.insert_txl_ar_inv_lns');
4621 END;
4622 END IF;
4623 -- End of wraper code generated automatically by Debug code generator for Okl_txl_ar_inv_lns_pub.insert_txl_ar_inv_lns
4624 IF ( l_return_status = Fnd_Api.G_RET_STS_ERROR ) THEN
4625 RAISE Fnd_Api.G_EXC_ERROR;
4626 ELSIF (l_return_status = Fnd_Api.G_RET_STS_UNEXP_ERROR ) THEN
4627 RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
4628 END IF;
4629 p_bpd_acc_rec.id := lx_tilv_rec.id;
4630 p_bpd_acc_rec.source_table := 'OKL_TXL_AR_INV_LNS_B';
4631 ----------------------------------------------------
4632 -- Create Accounting Distributions
4633 ----------------------------------------------------
4634 -- Start of Debug code generator for Okl_Acc_Call_Pub.CREATE_ACC_TRANS
4635 IF(L_DEBUG_ENABLED='Y') THEN
4636 L_LEVEL_PROCEDURE :=FND_LOG.LEVEL_PROCEDURE;
4637 IS_DEBUG_PROCEDURE_ON := OKL_DEBUG_PUB.Check_Log_On(L_MODULE, L_LEVEL_PROCEDURE);
4638 END IF;
4639 IF(IS_DEBUG_PROCEDURE_ON) THEN
4640 BEGIN
4641 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug call Okl_Acc_Call_Pub.CREATE_ACC_TRANS');
4642 END;
4643 END IF;
4644 Okl_Acc_Call_Pub.CREATE_ACC_TRANS(
4645 p_api_version
4646 ,p_init_msg_list
4647 ,l_return_status
4648 ,l_msg_count
4649 ,l_msg_data
4650 ,p_bpd_acc_rec);
4651 IF(IS_DEBUG_PROCEDURE_ON) THEN
4652 BEGIN
4653 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug call Okl_Acc_Call_Pub.CREATE_ACC_TRANS');
4654 END;
4655 END IF;
4656 -- End of wraper code generated automatically by Debug code generator for Okl_Acc_Call_Pub.CREATE_ACC_TRANS
4657 IF (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
4658 RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
4659 ELSIF (l_return_status = Okl_Api.G_RET_STS_ERROR) THEN
4660 RAISE Okl_Api.G_EXCEPTION_ERROR;
4661 END IF;
4662 x_return_status := l_return_status;
4663 OKL_API.END_ACTIVITY (x_msg_count, x_msg_data);
4664 EXCEPTION
4665 WHEN OKC_API.G_EXCEPTION_ERROR THEN
4666 x_return_status := OKC_API.HANDLE_EXCEPTIONS
4667 (
4668 l_api_name,
4669 G_PKG_NAME,
4670 'OKC_API.G_RET_STS_ERROR',
4671 x_msg_count,
4672 x_msg_data,
4673 '_PROCESS'
4674 );
4675 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4676 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4677 (
4678 l_api_name,
4679 G_PKG_NAME,
4680 'OKC_API.G_RET_STS_UNEXP_ERROR',
4681 x_msg_count,
4682 x_msg_data,
4683 '_PROCESS'
4684 );
4685 WHEN OTHERS THEN
4686 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4687 (
4688 l_api_name,
4689 G_PKG_NAME,
4690 'OTHERS',
4691 x_msg_count,
4692 x_msg_data,
4693 '_PROCESS'
4694 );
4695 END Rebook_manual_invoice;
4696
4697
4698 ------------------------------------
4699 --Procedure Cancel Rebbok Policy
4700 ------------------------------------
4701
4702 PROCEDURE cancel_rebook_policy(
4703 p_api_version IN NUMBER,
4704 p_init_msg_list IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
4705 x_return_status OUT NOCOPY VARCHAR2,
4706 x_msg_count OUT NOCOPY NUMBER,
4707 x_msg_data OUT NOCOPY VARCHAR2,
4708 p_src_trx_id IN NUMBER,
4709 p_ipyv_rec IN ipyv_rec_type,
4710 x_ipyv_rec OUT NOCOPY ipyv_rec_type
4711 )
4712 IS
4713 -- Local Variables Declaration
4714 l_cr_memo VARCHAR2(150):='Credit Memo';
4715 l_lang VARCHAR2(2) := 'US' ;
4716 l_strm_type_id NUMBER ;
4717 l_trx_type NUMBER ;
4718 l_pro_refund_amount NUMBER := 0;
4719 l_return_status VARCHAR2(1):= OKC_API.G_RET_STS_SUCCESS ;
4720 l_api_name CONSTANT VARCHAR2(30) := 'cancel_rebook_policy';
4721 l_api_version CONSTANT NUMBER := 1;
4722 ls_check_tpi VARCHAR2(3);
4723 l_strm_refund_id NUMBER ;
4724 l_strm_rcvbl_id NUMBER;
4725 l_cust_refund_amount NUMBER;
4726 l_id NUMBER;
4727 l_tai_id NUMBER;
4728 l_vendor_refund_amount NUMBER;
4729 l_khr_status VARCHAR2(30) ;
4730 l_clev_rec okl_okc_migration_pvt.clev_rec_type;
4731 lx_clev_rec okl_okc_migration_pvt.clev_rec_type;
4732 l_klev_rec Okl_Kle_Pvt.klev_rec_type ;
4733 lx_klev_rec Okl_Kle_Pvt.klev_rec_type ;
4734 --
4735 -- Records /Tables Declaration
4736 l_ipyv_rec ipyv_rec_type;
4737
4738 -- get transaction type ID
4739 CURSOR okl_trx_types(cp_name VARCHAR2,cp_language VARCHAR2) IS
4740 SELECT id
4741 FROM okl_trx_types_tl
4742 WHERE NAME = cp_name
4743 AND LANGUAGE = cp_language;
4744
4745 -----------------------------------------
4746 -- Begin for cancel_rebook_policy
4747 -----------------------------------------
4748 BEGIN
4749 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
4750 G_PKG_NAME,
4751 p_init_msg_list,
4752 l_api_version,
4753 p_api_version,
4754 '_PROCESS',
4755 x_return_status);
4756 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4757 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4758 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4759 RAISE OKC_API.G_EXCEPTION_ERROR;
4760 END IF;
4761 --Check for Insurance Policy ID
4762 IF ((p_ipyv_rec.ID IS NULL ) OR (p_ipyv_rec.ID = OKC_API.G_MISS_NUM )) THEN --[1]
4763 x_return_status := OKC_API.G_RET_STS_ERROR;
4764 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Policy ID');
4765 RAISE OKC_API.G_EXCEPTION_ERROR;
4766 ELSE
4767 -------------------------------------------------
4768 -- Get Insurance contract and line information
4769 --------------------------------------------------
4770 l_ipyv_rec := get_insurance_info(p_ipyv_rec.ID,l_return_status);
4771 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4772 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4773 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4774 RAISE OKC_API.G_EXCEPTION_ERROR;
4775 END IF;
4776 l_ipyv_rec.cancellation_date := p_ipyv_rec.cancellation_date;
4777 END IF; --[1]
4778 -----------------------------------------------
4779 -- Customer Refund
4780 -----------------------------------------------
4781 l_cust_refund_amount := get_cust_refund(l_ipyv_rec,l_return_status);
4782 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4783 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4784 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4785 RAISE OKC_API.G_EXCEPTION_ERROR;
4786 END IF;
4787 -----------------------------------------------
4788 -- Start Credit Memo Creation
4789 -----------------------------------------------
4790 OPEN okl_trx_types (l_cr_memo, l_lang);
4791 FETCH okl_trx_types INTO l_trx_type;
4792 IF(okl_trx_types%NOTFOUND) THEN
4793 Okc_Api.set_message(G_APP_NAME, G_NO_TRX,
4794 G_COL_NAME_TOKEN,'Transaction Type',G_COL_VALUE_TOKEN,l_cr_memo);
4795 x_return_status := OKC_API.G_RET_STS_ERROR ;
4796 CLOSE okl_trx_types ;
4797 RAISE OKC_API.G_EXCEPTION_ERROR;
4798 END IF ;
4799 CLOSE okl_trx_types;
4800
4801 --Added by kthiruva on 17-Oct-2005
4802 --Bug 4667686 - Start of Changes
4803 OKL_STREAMS_UTIL.get_primary_stream_type(l_ipyv_rec.khr_id,
4804 'INSURANCE_RECEIVABLE',
4805 l_return_status,
4806 l_strm_rcvbl_id);
4807 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4808 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
4809 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4810 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4811 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE',G_PURPOSE_TOKEN,'INSURANCE_RECEIVABLE'); --bug 4024785
4812 RAISE OKC_API.G_EXCEPTION_ERROR;
4813 END IF;
4814 --Bug 4667686 - End of Changes
4815
4816
4817 IF l_cust_refund_amount > 0 THEN -- [a]
4818 --negate refund amount
4819 l_pro_refund_amount := -(l_cust_refund_amount);
4820 OKL_STREAMS_UTIL.get_primary_stream_type(l_ipyv_rec.khr_id,
4821 'INSURANCE_REFUND',
4822 l_return_status,
4823 l_strm_refund_id);
4824 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4825 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
4826 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4827 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4828 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE', G_PURPOSE_TOKEN,'INSURANCE_REFUND'); --bug 4024785
4829 RAISE OKC_API.G_EXCEPTION_ERROR;
4830 END IF;
4831 -- Call API to create Credit Memo
4832 -- Start of Debug code generator for on_account_credit_memo
4833 IF(L_DEBUG_ENABLED='Y') THEN
4834 L_LEVEL_PROCEDURE :=FND_LOG.LEVEL_PROCEDURE;
4835 IS_DEBUG_PROCEDURE_ON := OKL_DEBUG_PUB.Check_Log_On(L_MODULE, L_LEVEL_PROCEDURE);
4836 END IF;
4837 IF(IS_DEBUG_PROCEDURE_ON) THEN
4838 BEGIN
4839 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call okl_credit_memo_pub.insert_request ');
4840 END;
4841 END IF;
4842 --- Creating credit memo
4843 on_account_credit_memo
4844 (
4845 p_api_version => l_api_version,
4846 p_init_msg_list => OKL_API.G_FALSE,
4847 p_try_id => l_trx_type,
4848 p_khr_id => l_ipyv_rec.khr_id,
4849 p_kle_id => l_ipyv_rec.kle_id,
4850 p_ipy_id => l_ipyv_rec.id,
4851 p_credit_date => TRUNC(SYSDATE),
4852 p_credit_amount => l_pro_refund_amount,
4853 p_credit_sty_id => l_strm_refund_id,
4854 x_return_status => l_return_status,
4855 x_msg_count =>x_msg_count,
4856 x_msg_data => x_msg_data,
4857 x_tai_id => l_tai_id
4858 );
4859 IF(IS_DEBUG_PROCEDURE_ON) THEN
4860 BEGIN
4861 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call on_account_credit_memo ');
4862 END;
4863 END IF;
4864 -- End of wraper code generated automatically by Debug code generator for okl_credit_memo_pub.insert_request
4865 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4866 x_return_status := l_return_status ;
4867 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4868 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4869 x_return_status := l_return_status ;
4870 RAISE OKC_API.G_EXCEPTION_ERROR;
4871 END IF;
4872 ELSIF(l_cust_refund_amount < 0 )THEN
4873 l_pro_refund_amount := -l_cust_refund_amount; --for making positive invoice amount
4874 -- Start of Debug code generator for Rebook_manual_invoice
4875 IF(L_DEBUG_ENABLED='Y') THEN
4876 L_LEVEL_PROCEDURE :=FND_LOG.LEVEL_PROCEDURE;
4877 IS_DEBUG_PROCEDURE_ON := OKL_DEBUG_PUB.Check_Log_On(L_MODULE, L_LEVEL_PROCEDURE);
4878 END IF;
4879 IF(IS_DEBUG_PROCEDURE_ON) THEN
4880 BEGIN
4881 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug call Rebook_manual_invoice');
4882 END;
4883 END IF;
4884 Rebook_manual_invoice( p_api_version
4885 ,p_init_msg_list
4886 ,x_return_status
4887 ,x_msg_count
4888 ,x_msg_data
4889 ,l_ipyv_rec.khr_id
4890 ,l_ipyv_rec.kle_id
4891 ,l_strm_rcvbl_id
4892 ,l_pro_refund_amount );
4893 IF(IS_DEBUG_PROCEDURE_ON) THEN
4894 BEGIN
4895 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug call Rebook_manual_invoice');
4896 END;
4897 END IF;
4898 l_return_status := x_return_status;
4899 -- End of wraper code generated automatically by Debug code generator for Rebook_manual_invoice
4900 IF ( l_return_status = Fnd_Api.G_RET_STS_ERROR ) THEN
4901 RAISE Fnd_Api.G_EXC_ERROR;
4902 ELSIF (l_return_status = Fnd_Api.G_RET_STS_UNEXP_ERROR ) THEN
4903 RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
4904 END IF;
4905 END IF ;
4906 ------------------------------------------
4907 --- PAY or clawback from vendor
4908 ------------------------------------------
4909 get_vendor_refund( p_api_version => l_api_version,
4910 p_init_msg_list => OKC_API.G_FALSE,
4911 x_return_status => l_return_status,
4912 x_msg_count => x_msg_count,
4913 x_msg_data => x_msg_data,
4914 p_ipyv_rec => l_ipyv_rec,
4915 pn_refund => l_vendor_refund_amount);
4916 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4917 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4918 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4919 RAISE OKC_API.G_EXCEPTION_ERROR;
4920 END IF;
4921
4922
4923 ---Inactivate all stream / accounting entries
4924 Inactivate_open_items(
4925 p_api_version => l_api_version,
4926 p_init_msg_list => OKC_API.G_FALSE,
4927 x_return_status => l_return_status,
4928 x_msg_count => x_msg_count,
4929 x_msg_data => x_msg_data,
4930 p_contract_id => l_ipyv_rec.khr_id ,
4931 p_contract_line => l_ipyv_rec.kle_id,
4932 p_policy_status => l_ipyv_rec.iss_code );
4933 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4934 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4935 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4936 RAISE OKC_API.G_EXCEPTION_ERROR;
4937 END IF;
4938 -- GET contract status
4939 l_return_status := get_contract_status(l_ipyv_rec.khr_id, l_khr_status);
4940 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4941 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4942 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4943 RAISE OKC_API.G_EXCEPTION_ERROR;
4944 END IF;
4945 IF (l_khr_status = 'ACTIVE' ) THEN
4946 -- if active, end date contract line and update status
4947 l_clev_rec.ID := l_ipyv_rec.kle_id ;
4948 l_clev_rec.sts_code := 'TERMINATED';
4949 l_klev_rec.ID := l_ipyv_rec.kle_id ;
4950 l_clev_rec.DATE_TERMINATED := l_ipyv_rec.CANCELLATION_DATE;
4951 Okl_Contract_Pub.update_contract_line
4952 (
4953 p_api_version => l_api_version ,
4954 p_init_msg_list => OKC_API.G_FALSE,
4955 x_return_status => l_return_status ,
4956 x_msg_count => x_msg_count,
4957 x_msg_data => x_msg_data ,
4958 p_clev_rec => l_clev_rec ,
4959 p_klev_rec => l_klev_rec,
4960 p_edit_mode =>'N' ,
4961 x_clev_rec => lx_clev_rec,
4962 x_klev_rec => lx_klev_rec
4963 );
4964 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4965 -- Status temp
4966 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4967 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4968 -- Status temp
4969 RAISE OKC_API.G_EXCEPTION_ERROR;
4970 END IF;
4971 ELSE
4972
4973 l_clev_rec.ID := l_ipyv_rec.kle_id ;
4974 l_clev_rec.sts_code := 'TERMINATED';
4975 l_klev_rec.ID := l_ipyv_rec.kle_id ;
4976 l_clev_rec.DATE_TERMINATED := l_ipyv_rec.CANCELLATION_DATE;
4977
4978 Okl_Contract_Pub.update_contract_line
4979 (
4980 p_api_version => l_api_version ,
4981 p_init_msg_list => OKC_API.G_FALSE,
4982 x_return_status => l_return_status ,
4983 x_msg_count => x_msg_count,
4984 x_msg_data => x_msg_data ,
4985 p_clev_rec => l_clev_rec ,
4986 p_edit_mode =>'N' ,
4987 p_klev_rec => l_klev_rec,
4988 x_clev_rec => lx_clev_rec,
4989 x_klev_rec => lx_klev_rec );
4990 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4991 -- Status temp
4992 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4993 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4994 -- Status temp
4995 RAISE OKC_API.G_EXCEPTION_ERROR;
4996 END IF;
4997 END IF;
4998 ------------------------------------------
4999 --- Income Adjustment
5000 ------------------------------------------
5001 rebook_inc_adjustment(p_api_version => l_api_version,
5002 p_init_msg_list =>Okc_Api.G_FALSE,
5003 x_return_status => l_return_status,
5004 x_msg_count =>x_msg_count,
5005 x_msg_data =>x_msg_data,
5006 p_ipyv_rec =>l_ipyv_rec,
5007 p_refund_amount =>l_cust_refund_amount,
5008 p_src_trx_id => p_src_trx_id
5009 );
5010
5011 IF ( l_return_status = Fnd_Api.G_RET_STS_ERROR ) THEN
5012 RAISE Fnd_Api.G_EXC_ERROR;
5013 ELSIF (l_return_status = Fnd_Api.G_RET_STS_UNEXP_ERROR ) THEN
5014 RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
5015 END IF;
5016 ------------------------------------------
5017 --- Expense Adjustment
5018 ------------------------------------------
5019 rebook_exp_adjustment(p_api_version => l_api_version,
5020 p_init_msg_list =>Okc_Api.G_FALSE,
5021 x_return_status => l_return_status,
5022 x_msg_count =>x_msg_count,
5023 x_msg_data =>x_msg_data,
5024 p_ipyv_rec =>l_ipyv_rec,
5025 lp_vendor_refund_amount =>l_vendor_refund_amount,
5026 p_src_trx_id => p_src_trx_id
5027 );
5028 IF ( l_return_status = Fnd_Api.G_RET_STS_ERROR ) THEN
5029 RAISE Fnd_Api.G_EXC_ERROR;
5030 ELSIF (l_return_status = Fnd_Api.G_RET_STS_UNEXP_ERROR ) THEN
5031 RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
5032 END IF;
5033 l_ipyv_rec.iss_code := 'CANCELED';
5034 -- Create entry for adjustment
5035 --Update Policy
5036 -- Start of wraper code generated automatically by Debug code generator for Okl_Ins_Policies_Pub.update_ins_policies
5037 IF(IS_DEBUG_PROCEDURE_ON) THEN
5038 BEGIN
5039 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call Okl_Ins_Policies_Pub.update_ins_policies ');
5040 END;
5041 END IF;
5042 Okl_Ins_Policies_Pub.update_ins_policies(
5043 p_api_version => p_api_version,
5044 p_init_msg_list => OKC_API.G_FALSE,
5045 x_return_status => l_return_status,
5046 x_msg_count => x_msg_count,
5047 x_msg_data => x_msg_data,
5048 p_ipyv_rec => l_ipyv_rec,
5049 x_ipyv_rec => x_ipyv_rec
5050 );
5051 IF(IS_DEBUG_PROCEDURE_ON) THEN
5052 BEGIN
5053 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call Okl_Ins_Policies_Pub.update_ins_policies ');
5054 END;
5055 END IF;
5056 -- End of wraper code generated automatically by Debug code generator for Okl_Ins_Policies_Pub.update_ins_policies
5057 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5058 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5059 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5060 RAISE OKC_API.G_EXCEPTION_ERROR;
5061 END IF;
5062 x_return_status := l_return_status;
5063 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
5064 EXCEPTION
5065 WHEN OKC_API.G_EXCEPTION_ERROR THEN
5066 x_return_status := OKC_API.HANDLE_EXCEPTIONS
5067 (
5068 l_api_name,
5069 G_PKG_NAME,
5070 'OKC_API.G_RET_STS_ERROR',
5071 x_msg_count,
5072 x_msg_data,
5073 '_PROCESS'
5074 );
5075 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5076 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
5077 (
5078 l_api_name,
5079 G_PKG_NAME,
5080 'OKC_API.G_RET_STS_UNEXP_ERROR',
5081 x_msg_count,
5082 x_msg_data,
5083 '_PROCESS'
5084 );
5085 WHEN OTHERS THEN
5086 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
5087 (
5088 l_api_name,
5089 G_PKG_NAME,
5090 'OTHERS',
5091 x_msg_count,
5092 x_msg_data,
5093 '_PROCESS'
5094 );
5095 END cancel_rebook_policy;
5096 --++ Added as part of fix for bug 4056603 ++--
5097
5098 ------------------------------------------------------------
5099 --Bug#5955320
5100 PROCEDURE cancel_create_policies(
5101 p_api_version IN NUMBER,
5102 p_init_msg_list IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
5103 x_return_status OUT NOCOPY VARCHAR2,
5104 x_msg_count OUT NOCOPY NUMBER,
5105 x_msg_data OUT NOCOPY VARCHAR2,
5106 p_khr_id IN NUMBER,
5107 p_cancellation_date IN DATE,
5108 p_crx_code IN VARCHAR2 DEFAULT NULL, --++++++++ Effective Dated Term Qte changes +++++++++
5109 p_transaction_id IN NUMBER,
5110 x_ignore_flag OUT NOCOPY VARCHAR2 --3945995
5111 ) IS
5112 l_api_name CONSTANT VARCHAR2(30) := 'cancel_create';
5113 l_api_version CONSTANT NUMBER := 1;
5114 l_return_status VARCHAR2(1) ;
5115 l_ipyv_rec ipyv_rec_type;
5116 l_delipyv_rec ipyv_rec_type;
5117 lx_ipyv_rec ipyv_rec_type;
5118 lx_ipyv_newrec ipyv_rec_type;
5119 l_cancellation_date DATE ;
5120 l_msg_count NUMBER ;
5121 l_msg_data VARCHAR2(2000);
5122 l_contract_status VARCHAR2(30);
5123 x_message VARCHAR2(100) ;
5124 x_iasset_tbl Okl_Ins_Quote_Pvt.iasset_tbl_type ;
5125 l_inq_id NUMBER;
5126 l_ipy_id NUMBER;
5127 l_iss_code VARCHAR2(30);
5128 l_new_k_start_date DATE;
5129 l_new_k_end_date DATE;
5130 l_maj_ver_num NUMBER;
5131 l_k_end_date DATE;
5132 l_k_start_date DATE;
5133 -- bug 4056603
5134 l_vld_cncl_dt VARCHAR2(1) := '?';
5135 l_cancel_pol_flag VARCHAR2(1) := 'N';
5136 CURSOR c_okl_ins_policies(p_contract_id NUMBER) IS
5137 SELECT ID, IPY_TYPE, ISS_CODE
5138 FROM OKL_INS_POLICIES_B
5139 WHERE KHR_ID = p_contract_id
5140 and ISS_CODE IN ('ACTIVE','ACCEPTED','PENDING')
5141 and IPY_TYPE = 'LEASE_POLICY'
5142 AND DATE_TO > p_cancellation_date; -- bug 4056603
5143 CURSOR c_okl_ins_quote(p_contract_id NUMBER,p_quote_id NUMBER) IS
5144 SELECT ipy_id
5145 FROM OKL_INS_POLICIES_B
5146 WHERE KHR_ID = p_contract_id
5147 AND ID = p_quote_id;
5148 CURSOR okc_k_status_csr(p_khr_id IN NUMBER) IS
5149 SELECT OST.STE_CODE
5150 FROM OKC_K_HEADERS_V KHR , OKC_STATUSES_B OST
5151 WHERE KHR.ID = p_khr_id
5152 AND KHR.STS_CODE = OST.CODE ;
5153 -- Get start date and end date for rebook contract ---
5154 CURSOR okc_new_k_effdate_csr(p_khr_id IN NUMBER) IS
5155 select chr.start_date ,chr.end_date
5156 from OKC_K_HEADERS_B chr ,
5157 OKL_TRX_CONTRACTS TRX
5158 where chr.ORIG_SYSTEM_ID1 = p_khr_id
5159 and chr.ORIG_SYSTEM_SOURCE_CODE = 'OKL_REBOOK'
5160 and chr.orig_system_id1 = trx.khr_id
5161 and chr.id = trx.khr_id_new
5162 and chr.sts_code <> 'ABANDONED'
5163 and trx.tsu_code <> 'PROCESSED'
5164 and trx.representation_type = 'PRIMARY'; -- MGAAP 7263041
5165 --Get Major_version of the original contract in case of rebook---
5166 CURSOR okc_maj_ver_csr(p_khr_id IN NUMBER) IS
5167 select max(major_version) from okc_k_headers_bh where ID =p_khr_id ;
5168 -- Get Orginal contract dates from contract history before doing rebook
5169 CURSOR okc_old_k_effdate_csr(p_khr_id IN NUMBER,l_maj_ver_num IN NUMBER) IS
5170 select start_date ,end_date
5171 From okc_k_headers_bh
5172 where ID = p_khr_id
5173 And major_version = l_maj_ver_num;
5174 PROCEDURE migrate (
5175 p_from IN ipyv_rec_type,
5176 p_to IN OUT NOCOPY ipyv_rec_type
5177 ) IS
5178 BEGIN
5179 p_to.ipy_type := p_from.ipy_type;
5180 p_to.payment_frequency := p_from.payment_frequency;
5181 p_to.ipf_code := p_from.ipf_code;
5182 p_to.ipe_code := p_from.ipe_code;
5183 p_to.date_to := p_from.date_to;
5184 p_to.date_from := p_from.date_from;
5185 p_to.on_file_yn := p_from.on_file_yn;
5186 p_to.private_label_yn := p_from.private_label_yn;
5187 p_to.agent_yn := p_from.agent_yn;
5188 p_to.lessor_insured_yn := p_from.lessor_insured_yn;
5189 p_to.lessor_payee_yn := p_from.lessor_payee_yn;
5190 p_to.khr_id := p_from.khr_id;
5191 p_to.int_id := p_from.int_id;
5192 p_to.isu_id := p_from.isu_id;
5193 p_to.insurance_factor := p_from.insurance_factor;
5194 p_to.factor_code := p_from.factor_code;
5195 p_to.factor_value := p_from.factor_value;
5196 p_to.agency_number := p_from.agency_number;
5197 p_to.agency_site_id := p_from.agency_site_id;
5198 p_to.sales_rep_id := p_from.sales_rep_id;
5199 p_to.agent_site_id := p_from.agent_site_id;
5200 p_to.adjusted_by_id := p_from.adjusted_by_id;
5201 p_to.territory_code := p_from.territory_code;
5202 END migrate;
5203 --Mark
5204 ---------------------------------------------------------------------------
5205 -- FUNCTION get_rec for: OKL_INS_POLICIES_V
5206 ---------------------------------------------------------------------------
5207 FUNCTION get_rec (
5208 px_ipyv_rec IN OUT NOCOPY ipyv_rec_type,
5209 x_no_data_found OUT NOCOPY BOOLEAN
5210 ) RETURN ipyv_rec_type IS
5211 CURSOR okl_ipyv_pk_csr (p_id IN NUMBER) IS
5212 SELECT
5213 ID,
5214 ADJUSTMENT,
5215 CALCULATED_PREMIUM,
5216 OBJECT_VERSION_NUMBER,
5217 AGENCY_NUMBER,
5218 SFWT_FLAG,
5219 IPF_CODE,
5220 INT_ID,
5221 KHR_ID,
5222 ISU_ID,
5223 IPT_ID,
5224 IPY_ID,
5225 IPE_CODE,
5226 CRX_CODE,
5227 AGENCY_SITE_ID,
5228 ISS_CODE,
5229 KLE_ID,
5230 AGENT_SITE_ID,
5231 IPY_TYPE,
5232 POLICY_NUMBER,
5233 QUOTE_YN,
5234 ENDORSEMENT,
5235 INSURANCE_FACTOR,
5236 FACTOR_CODE,
5237 COVERED_AMOUNT,
5238 ADJUSTED_BY_ID,
5239 FACTOR_VALUE,
5240 DATE_QUOTED,
5241 SALES_REP_ID,
5242 DATE_PROOF_REQUIRED,
5243 DATE_QUOTE_EXPIRY,
5244 DEDUCTIBLE,
5245 PAYMENT_FREQUENCY,
5246 DATE_PROOF_PROVIDED,
5247 DATE_FROM,
5248 NAME_OF_INSURED,
5249 DATE_TO,
5250 DESCRIPTION,
5251 ON_FILE_YN,
5252 PREMIUM,
5253 COMMENTS,
5254 ACTIVATION_DATE,
5255 PRIVATE_LABEL_YN,
5256 LESSOR_INSURED_YN,
5257 LESSOR_PAYEE_YN,
5258 CANCELLATION_DATE,
5259 CANCELLATION_COMMENT,
5260 AGENT_YN,
5261 ATTRIBUTE_CATEGORY,
5262 ATTRIBUTE1,
5263 ATTRIBUTE2,
5264 ATTRIBUTE3,
5265 ATTRIBUTE4,
5266 ATTRIBUTE5,
5267 ATTRIBUTE6,
5268 ATTRIBUTE7,
5269 ATTRIBUTE8,
5270 ATTRIBUTE9,
5271 ATTRIBUTE10,
5272 ATTRIBUTE11,
5273 ATTRIBUTE12,
5274 ATTRIBUTE13,
5275 ATTRIBUTE14,
5276 ATTRIBUTE15,
5277 ORG_ID,
5278 REQUEST_ID,
5279 PROGRAM_APPLICATION_ID,
5280 PROGRAM_ID,
5281 PROGRAM_UPDATE_DATE,
5282 CREATED_BY,
5283 CREATION_DATE,
5284 LAST_UPDATED_BY,
5285 LAST_UPDATE_DATE,
5286 LAST_UPDATE_LOGIN,
5287 TERRITORY_CODE
5288 FROM Okl_Ins_Policies_V
5289 WHERE okl_ins_policies_v.id = p_id;
5290 l_okl_ipyv_pk okl_ipyv_pk_csr%ROWTYPE;
5291 l_ipyv_rec ipyv_rec_type;
5292 BEGIN
5293 x_no_data_found := TRUE;
5294 -- Get current database values
5295 OPEN okl_ipyv_pk_csr (px_ipyv_rec.id);
5296 FETCH okl_ipyv_pk_csr INTO
5297 l_ipyv_rec.ID,
5298 l_ipyv_rec.ADJUSTMENT,
5299 l_ipyv_rec.CALCULATED_PREMIUM,
5300 l_ipyv_rec.OBJECT_VERSION_NUMBER,
5301 l_ipyv_rec.AGENCY_NUMBER,
5302 l_ipyv_rec.SFWT_FLAG,
5303 l_ipyv_rec.IPF_CODE,
5304 l_ipyv_rec.INT_ID,
5305 l_ipyv_rec.KHR_ID,
5306 l_ipyv_rec.ISU_ID,
5307 l_ipyv_rec.IPT_ID,
5308 l_ipyv_rec.IPY_ID,
5309 l_ipyv_rec.IPE_CODE,
5310 l_ipyv_rec.CRX_CODE,
5311 l_ipyv_rec.AGENCY_SITE_ID,
5312 l_ipyv_rec.ISS_CODE,
5313 l_ipyv_rec.KLE_ID,
5314 l_ipyv_rec.AGENT_SITE_ID,
5315 l_ipyv_rec.IPY_TYPE,
5316 l_ipyv_rec.POLICY_NUMBER,
5317 l_ipyv_rec.QUOTE_YN,
5318 l_ipyv_rec.ENDORSEMENT,
5319 l_ipyv_rec.INSURANCE_FACTOR,
5320 l_ipyv_rec.FACTOR_CODE,
5321 l_ipyv_rec.COVERED_AMOUNT,
5322 l_ipyv_rec.ADJUSTED_BY_ID,
5323 l_ipyv_rec.FACTOR_VALUE,
5324 l_ipyv_rec.DATE_QUOTED,
5325 l_ipyv_rec.SALES_REP_ID,
5326 l_ipyv_rec.DATE_PROOF_REQUIRED,
5327 l_ipyv_rec.DATE_QUOTE_EXPIRY,
5328 l_ipyv_rec.DEDUCTIBLE,
5329 l_ipyv_rec.PAYMENT_FREQUENCY,
5330 l_ipyv_rec.DATE_PROOF_PROVIDED,
5331 l_ipyv_rec.DATE_FROM,
5332 l_ipyv_rec.NAME_OF_INSURED,
5333 l_ipyv_rec.DATE_TO,
5334 l_ipyv_rec.DESCRIPTION,
5335 l_ipyv_rec.ON_FILE_YN,
5336 l_ipyv_rec.PREMIUM,
5337 l_ipyv_rec.COMMENTS,
5338 l_ipyv_rec.ACTIVATION_DATE,
5339 l_ipyv_rec.PRIVATE_LABEL_YN,
5340 l_ipyv_rec.LESSOR_INSURED_YN,
5341 l_ipyv_rec.LESSOR_PAYEE_YN,
5342 l_ipyv_rec.CANCELLATION_DATE,
5343 l_ipyv_rec.CANCELLATION_COMMENT,
5344 l_ipyv_rec.AGENT_YN,
5345 l_ipyv_rec.ATTRIBUTE_CATEGORY,
5346 l_ipyv_rec.ATTRIBUTE1,
5347 l_ipyv_rec.ATTRIBUTE2,
5348 l_ipyv_rec.ATTRIBUTE3,
5349 l_ipyv_rec.ATTRIBUTE4,
5350 l_ipyv_rec.ATTRIBUTE5,
5351 l_ipyv_rec.ATTRIBUTE6,
5352 l_ipyv_rec.ATTRIBUTE7,
5353 l_ipyv_rec.ATTRIBUTE8,
5354 l_ipyv_rec.ATTRIBUTE9,
5355 l_ipyv_rec.ATTRIBUTE10,
5356 l_ipyv_rec.ATTRIBUTE11,
5357 l_ipyv_rec.ATTRIBUTE12,
5358 l_ipyv_rec.ATTRIBUTE13,
5359 l_ipyv_rec.ATTRIBUTE14,
5360 l_ipyv_rec.ATTRIBUTE15,
5361 l_ipyv_rec.ORG_ID,
5362 l_ipyv_rec.REQUEST_ID,
5363 l_ipyv_rec.PROGRAM_APPLICATION_ID,
5364 l_ipyv_rec.PROGRAM_ID,
5365 l_ipyv_rec.PROGRAM_UPDATE_DATE,
5366 l_ipyv_rec.CREATED_BY,
5367 l_ipyv_rec.CREATION_DATE,
5368 l_ipyv_rec.LAST_UPDATED_BY,
5369 l_ipyv_rec.LAST_UPDATE_DATE,
5370 l_ipyv_rec.LAST_UPDATE_LOGIN,
5371 l_ipyv_rec.TERRITORY_CODE;
5372 x_no_data_found := okl_ipyv_pk_csr%NOTFOUND;
5373 CLOSE okl_ipyv_pk_csr;
5374 px_ipyv_rec := l_ipyv_rec;
5375 RETURN(px_ipyv_rec);
5376 END get_rec;
5377 FUNCTION get_rec (
5378 px_ipyv_rec IN OUT NOCOPY ipyv_rec_type
5379 ) RETURN ipyv_rec_type IS
5380 l_row_notfound BOOLEAN := TRUE;
5381 BEGIN
5382 RETURN(get_rec(px_ipyv_rec, l_row_notfound));
5383 END get_rec;
5384 -- END MARK
5385 BEGIN
5386 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
5387 G_PKG_NAME,
5388 p_init_msg_list,
5389 l_api_version,
5390 p_api_version,
5391 '_PROCESS',
5392 x_return_status);
5393 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5394 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5395 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5396 RAISE OKC_API.G_EXCEPTION_ERROR;
5397 END IF;
5398 SAVEPOINT cancel_create;
5399 x_ignore_flag := OKC_API.G_FALSE; --3945995
5400 -- Check for contract_id (NULL)
5401 IF ((p_khr_id IS NULL ) OR (p_khr_id = OKC_API.G_MISS_NUM )) THEN
5402 x_return_status := OKC_API.G_RET_STS_ERROR;
5403 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'ContractID');
5404 ROLLBACK TO cancel_create;
5405 RAISE OKC_API.G_EXCEPTION_ERROR;
5406 END IF;
5407 -- Check for Date put SYSDATE if NULL
5408 IF ((p_cancellation_date IS NULL ) OR (p_cancellation_date = OKC_API.G_MISS_DATE )) THEN
5409 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Cancellation Date');
5410 ROLLBACK TO cancel_create;
5411 RAISE OKC_API.G_EXCEPTION_ERROR;
5412 END IF;
5413 l_cancellation_date := p_cancellation_date ;
5414 OPEN c_okl_ins_policies(p_khr_id);
5415 FETCH c_okl_ins_policies INTO l_ipyv_rec.ID, l_ipyv_rec.IPY_TYPE,
5416 l_ipyv_rec.ISS_CODE ;
5417
5418 CLOSE c_okl_ins_policies;
5419 IF (l_ipyv_rec.IPY_TYPE IS NULL) OR (l_ipyv_rec.IPY_TYPE = OKC_API.G_MISS_CHAR) THEN
5420 NULL;
5421 ELSIF( l_ipyv_rec.IPY_TYPE <> 'THIRD_PARTY_POLICY' AND
5422 l_ipyv_rec.IPY_TYPE <> 'OPTIONAL_POLICY')THEN
5423 IF (p_crx_code IS NOT NULL) OR (p_crx_code <> OKC_API.G_MISS_CHAR ) THEN
5424 l_ipyv_rec.crx_code := p_crx_code;--'ASSET_TERMINATION' ;
5425 END IF;
5426 l_ipyv_rec.cancellation_date := p_cancellation_date;
5427 l_iss_code := l_ipyv_rec.ISS_CODE ;
5428 --++ Added as part of fix for bug 4056603 ++--
5429 l_cancel_pol_flag := validate_cancel_policy(p_khr_id);
5430
5431 IF l_cancel_pol_flag = 'Y' THEN
5432 IF l_ipyv_rec.ISS_CODE = 'ACTIVE' THEN
5433 -- Call function validate_cancel_plicy
5434 --++ Added as part of fix for bug 4056603 ++--
5435 cancel_rebook_policy(
5436 p_api_version => l_api_version,
5437 p_init_msg_list => OKC_API.G_FALSE,
5438 x_return_status => l_return_status,
5439 x_msg_count => x_msg_count,
5440 x_msg_data => x_msg_data,
5441 p_src_trx_id => p_transaction_id,
5442 p_ipyv_rec => l_ipyv_rec,
5443 x_ipyv_rec => lx_ipyv_rec);
5444 ELSE
5445 l_delipyv_rec := get_rec(l_ipyv_rec);
5446 l_delipyv_rec.cancellation_date := l_cancellation_date;
5447 delete_policy(
5448 p_api_version => l_api_version,
5449 p_init_msg_list => OKC_API.G_FALSE,
5450 x_return_status => l_return_status,
5451 x_msg_count => x_msg_count,
5452 x_msg_data => x_msg_data,
5453 p_ipyv_rec => l_delipyv_rec,
5454 x_ipyv_rec => lx_ipyv_rec);
5455 END IF;
5456 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5457 ROLLBACK TO cancel_create;
5458 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5459 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5460 ROLLBACK TO cancel_create;
5461 RAISE OKC_API.G_EXCEPTION_ERROR;
5462 END IF;
5463 IF (l_return_status = OKC_API.G_RET_STS_SUCCESS) THEN --[1]
5464 SAVEPOINT save_quote; -- 3945995
5465 --** CANCELLED OLD POLICIES SUCCESSFULLY **--
5466 --** STARTING QUOTE PROCESS FOR NEW POLICIES **--
5467 --****
5468 -- Copy needed information from cancelled policy record to
5469 -- New Policy to be created.
5470 --****
5471 migrate(lx_ipyv_rec, lx_ipyv_newrec);
5472 --** Process Policy covering full contract during rebooking **--
5473 -- Dates of the Rebooked contract ----
5474 OPEN okc_new_k_effdate_csr(p_khr_id);
5475 FETCH okc_new_k_effdate_csr INTO l_new_k_start_date, l_new_k_end_date;
5476 -- If contract has been rebooked --
5477 IF okc_new_k_effdate_csr%FOUND THEN ---[1]
5478 --get maximum version number for contract
5479 OPEN okc_maj_ver_csr(p_khr_id);
5480 FETCH okc_maj_ver_csr INTO l_maj_ver_num;
5481 CLOSE okc_maj_ver_csr;
5482 --check to see rebook has been requested
5483 IF l_maj_ver_num > 1 THEN --[2]
5484 l_maj_ver_num := l_maj_ver_num -1;
5485 --get Original contract dates before doing rebook --
5486 OPEN okc_old_k_effdate_csr(p_khr_id,l_maj_ver_num);
5487 FETCH okc_old_k_effdate_csr INTO l_k_start_date, l_k_end_date;
5488 CLOSE okc_old_k_effdate_csr;
5489 --Check to see if policy covers full term of contract
5490 --gboomina Bug 4889211 Start - Changed - Check only To dates
5491 IF trunc(l_k_end_date)=trunc(lx_ipyv_rec.date_to) THEN -- [3]
5492 -- lx_ipyv_newrec.date_from := trunc(l_new_k_start_date); - gboomina commented Bug 4889211
5493 lx_ipyv_newrec.date_to := trunc(l_new_k_end_date);
5494 --gboomina Bug 4889211 End
5495 END IF; --[3]
5496 END IF; --[2]
5497 ELSE
5498 lx_ipyv_newrec.date_from := p_cancellation_date;
5499 END IF; --[1]
5500 CLOSE okc_new_k_effdate_csr;
5501 --** END Process Policy covering full contract during rebooking **--
5502 --+++++ EFF DATED TERM START +++++++++------
5503 --check for future and prior date's of termination
5504 -- if quote termination is before start of insurance policy.
5505 IF p_cancellation_date < lx_ipyv_rec.date_from THEN
5506 lx_ipyv_newrec.date_from := lx_ipyv_rec.date_from;
5507 END IF;
5508 --+++++ EFF DATED TERM END+++++++++------
5509 --** SAVE quote **--
5510 -- check to see if the cancellation date is between the start and end date of the policy -- Bug 4056603
5511 --SELECT 'X' INTO l_vld_cncl_dt FROM DUAL
5512 --WHERE p_cancellation_date BETWEEN lx_ipyv_rec.date_from AND lx_ipyv_rec.date_to;
5513 --IF l_vld_cncl_dt = 'X' then
5514 -- gboomina Bug 4994786 Changed - start
5515 -- Instead of implicit cusor, used IF condition check
5516 IF p_cancellation_date >= lx_ipyv_rec.date_from AND p_cancellation_date <= lx_ipyv_rec.date_to THEN
5517 -- gboomina Bug 4994786 - end
5518 lx_ipyv_newrec.date_from := p_cancellation_date;
5519 END IF;
5520 lx_ipyv_newrec.date_quoted := SYSDATE - 10;
5521 lx_ipyv_newrec.date_quote_expiry := SYSDATE + 20;
5522
5523 --Bug# 7497783
5524 IF p_transaction_id IS NOT NULL THEN
5525 IF lx_ipyv_newrec.date_quote_expiry > lx_ipyv_newrec.date_to THEN
5526 lx_ipyv_newrec.date_quote_expiry := lx_ipyv_newrec.date_to;
5527 END IF;
5528 END IF;
5529 --Bug# 7497783
5530 lx_ipyv_newrec.object_version_number := 1;
5531 lx_ipyv_newrec.adjustment := 0;
5532 -- Start of wraper code generated automatically by Debug code generator for okl_ins_quote_pub.save_quote
5533 IF(L_DEBUG_ENABLED='Y') THEN
5534 L_LEVEL_PROCEDURE :=FND_LOG.LEVEL_PROCEDURE;
5535 IS_DEBUG_PROCEDURE_ON := OKL_DEBUG_PUB.Check_Log_On(L_MODULE, L_LEVEL_PROCEDURE);
5536 END IF;
5537 IF(IS_DEBUG_PROCEDURE_ON) THEN
5538 BEGIN
5539 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call okl_ins_quote_pub.save_quote ');
5540 END;
5541 END IF;
5542 okl_ins_quote_pub.save_quote(
5543 p_api_version => l_api_version,
5544 p_init_msg_list => Okc_Api.G_TRUE ,
5545 x_return_status => l_return_status,
5546 x_msg_count => l_msg_count,
5547 x_msg_data => l_msg_data,
5548 px_ipyv_rec => lx_ipyv_newrec,
5549 x_message => x_message );
5550 IF(IS_DEBUG_PROCEDURE_ON) THEN
5551 BEGIN
5552 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call okl_ins_quote_pub.save_quote ');
5553 END;
5554 END IF;
5555 -- End of wraper code generated automatically by Debug code generator for okl_ins_quote_pub.save_quote
5556 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5557 ROLLBACK TO save_quote;
5558 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5559 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5560 ROLLBACK TO save_quote;
5561 RAISE OKC_API.G_EXCEPTION_ERROR;
5562 END IF;
5563 l_inq_id := lx_ipyv_newrec.id;
5564 IF (l_return_status = OKC_API.G_RET_STS_SUCCESS) THEN --[2]
5565 SAVEPOINT accept_quote; -- 3945995
5566 --** ACCEPT quote **--
5567 lx_ipyv_newrec.adjustment := 0;
5568 -- Start of wraper code generated automatically by Debug code generator for okl_ins_quote_pub.accept_quote
5569 IF(IS_DEBUG_PROCEDURE_ON) THEN
5570 BEGIN
5571 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call okl_ins_quote_pub.accept_quote ');
5572 END;
5573 END IF;
5574 okl_ins_quote_pub.accept_quote(
5575 p_api_version => l_api_version,
5576 p_init_msg_list => Okc_Api.G_TRUE ,
5577 x_return_status => l_return_status,
5578 x_msg_count => l_msg_count,
5579 x_msg_data => l_msg_data,
5580 p_quote_id => lx_ipyv_newrec.ID
5581 );
5582 IF(IS_DEBUG_PROCEDURE_ON) THEN
5583 BEGIN
5584 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call okl_ins_quote_pub.accept_quote ');
5585 END;
5586 END IF;
5587 -- End of wraper code generated automatically by Debug code generator for okl_ins_quote_pub.accept_quote
5588 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5589 ROLLBACK TO accept_quote; -- 3945995
5590 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5591 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5592 ROLLBACK TO accept_quote; -- 3945995
5593 RAISE OKC_API.G_EXCEPTION_ERROR;
5594 END IF;
5595 IF (l_return_status = OKC_API.G_RET_STS_SUCCESS) THEN --[3]
5596 SAVEPOINT policy_activate; -- 3945995
5597 --** CHECK for contract status **--
5598 OPEN okc_k_status_csr(p_khr_id);
5599 FETCH okc_k_status_csr INTO l_contract_status ;
5600 IF(okc_k_status_csr%NOTFOUND) THEN
5601 -- store SQL error message on message stack for caller
5602 OKL_API.set_message(G_APP_NAME,
5603 G_INVALID_CONTRACT
5604 );
5605 IF okc_k_status_csr%ISOPEN THEN
5606 CLOSE okc_k_status_csr;
5607 END IF;
5608 x_ignore_flag := okc_api.G_TRUE; -- 3945995
5609 x_return_status := OKC_API.G_RET_STS_ERROR;
5610 ROLLBACK TO policy_activate; -- 3945995
5611 RAISE OKC_API.G_EXCEPTION_ERROR;
5612 END IF;
5613 CLOSE okc_k_status_csr;
5614 --** Get Policy ID for the Quote Created above **--
5615 OPEN c_okl_ins_quote(p_khr_id,l_inq_id);
5616 FETCH c_okl_ins_quote INTO l_ipy_id ;
5617 CLOSE c_okl_ins_quote;
5618 -- 3745151 Removing error as it is not needed
5619 /*
5620 IF(c_okl_ins_quote%NOTFOUND) THEN
5621 -- store SQL error message on message stack for caller
5622 OKL_API.set_message(G_APP_NAME,G_INVALID_CONTRACT
5623 );
5624 IF c_okl_ins_quote%ISOPEN THEN
5625 CLOSE c_okl_ins_quote;
5626 END IF;
5627 x_return_status := OKC_API.G_RET_STS_ERROR;
5628 ROLLBACK TO policy_activate; -- 3945995
5629 RAISE OKC_API.G_EXCEPTION_ERROR;
5630 END IF;
5631 */
5632 IF (L_iss_code = 'ACTIVE' ) THEN --[5]
5633 IF (l_contract_status = 'ACTIVE') THEN --[4]
5634 -- Start of wraper code generated automatically by Debug code generator for okl_ins_quote_pub.activate_ins_policy
5635 IF(IS_DEBUG_PROCEDURE_ON) THEN
5636 BEGIN
5637 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call okl_ins_quote_pub.activate_ins_policy ');
5638 END;
5639 END IF;
5640 okl_ins_quote_pub.activate_ins_policy(
5641 p_api_version => l_api_version ,
5642 p_init_msg_list => Okc_Api.G_TRUE,
5643 x_return_status => l_return_status,
5644 x_msg_count => l_msg_count,
5645 x_msg_data => l_msg_data,
5646 p_ins_policy_id => l_ipy_id );
5647 IF(IS_DEBUG_PROCEDURE_ON) THEN
5648 BEGIN
5649 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call okl_ins_quote_pub.activate_ins_policy ');
5650 END;
5651 END IF;
5652 -- End of wraper code generated automatically by Debug code generator for okl_ins_quote_pub.activate_ins_policy
5653 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5654 ROLLBACK TO policy_activate; -- 3945995
5655 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5656 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5657 x_ignore_flag := okc_api.G_TRUE; -- 3945995
5658 ROLLBACK TO policy_activate; -- 3945995
5659 RAISE OKC_API.G_EXCEPTION_ERROR;
5660 END IF;
5661 END IF ; --[5]
5662 END IF;--[4]
5663 END IF; --[3]
5664 END IF; --[2]
5665 END IF; --[1]
5666 END IF; -- validate cancel policy
5667 END IF;
5668 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
5669 EXCEPTION
5670 WHEN OKC_API.G_EXCEPTION_ERROR THEN
5671 -- 3945995 begin
5672 IF (x_ignore_flag = Okc_Api.G_TRUE)THEN
5673 x_return_status := l_return_status;
5674 OKC_API.END_ACTIVITY(x_msg_count,x_msg_data);
5675 ELSE -- 3945995 END
5676 x_return_status := OKC_API.HANDLE_EXCEPTIONS
5677 (
5678 l_api_name,
5679 G_PKG_NAME,
5680 'OKC_API.G_RET_STS_ERROR',
5681 x_msg_count,
5682 x_msg_data,
5683 '_PROCESS'
5684 );
5685 END IF; -- 3945995
5686 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5687 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
5688 (
5689 l_api_name,
5690 G_PKG_NAME,
5691 'OKC_API.G_RET_STS_UNEXP_ERROR',
5692 x_msg_count,
5693 x_msg_data,
5694 '_PROCESS'
5695 );
5696 END cancel_create_policies;
5697
5698 --+++++++++++++ Effective Dated Term Qte changes -- start +++++++++
5699 -------------------------------------------------------------------------
5700 -- PROCEDURE CHECK_CLAIMS
5701 -- Called to check if any unsubmitted claims exist for a contract being
5702 -- terminated
5703 -- smoduga created 06-Sep-04
5704 -------------------------------------------------------------------------
5705 PROCEDURE check_claims(
5706 p_api_version IN NUMBER,
5707 p_init_msg_list IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
5708 x_return_status OUT NOCOPY VARCHAR2,
5709 x_msg_count OUT NOCOPY NUMBER,
5710 x_msg_data OUT NOCOPY VARCHAR2,
5711 x_clm_exist OUT NOCOPY VARCHAR2,
5712 p_khr_id IN NUMBER,
5713 p_trx_date IN DATE
5714 ) IS
5715 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5716 l_claim_id NUMBER;
5717 l_claim_date DATE;
5718 l_contract_number VARCHAR2(120);
5719 l_api_name CONSTANT VARCHAR2(30) := 'check_claims';
5720 l_api_version CONSTANT NUMBER := 1;
5721
5722 -- Fetch count of unsubmitted Insurance claims for the insurance policies
5723 -- attached to assets of the contract.
5724 cursor chk_claims (c_khr_id NUMBER ,c_qte_eff_date DATE )is
5725 Select CLMB.ID,CLMB.claim_date
5726 From okl_ins_claims_B CLMB,
5727 OKL_INS_POLICIES_V IPYV
5728 WHERE CLMB.ipy_id = IPYV.id
5729 AND trunc(CLMB.claim_date) >= trunc(c_qte_eff_date)
5730 AND CLMB.CSU_CODE <> 'SUBMITTED'
5731 AND IPYV.ISS_CODE ='ACTIVE'
5732 AND IPYV.IPY_TYPE ='LEASE_POLICY'
5733 AND IPYV.khr_id = c_khr_id;
5734
5735 -- Get contract number
5736 cursor get_chr_number(c_khr_id NUMBER) is
5737 select contract_number
5738 From okc_k_headers_b
5739 where id = c_khr_id;
5740
5741 chk_claims_rec chk_claims%ROWTYPE;
5742
5743 BEGIN
5744 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
5745 G_PKG_NAME,
5746 p_init_msg_list,
5747 l_api_version,
5748 p_api_version,
5749 '_PROCESS',
5750 x_return_status);
5751 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5752 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5753 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5754 RAISE OKC_API.G_EXCEPTION_ERROR;
5755 END IF;
5756 -- Check if ther are any claims open for this contract
5757 -- at the time of raising the termination quote
5758 OPEN chk_claims (p_khr_id,p_trx_date);
5759 FETCH chk_claims INTO l_claim_id,l_claim_date;
5760 IF chk_claims%FOUND THEN
5761 x_clm_exist := 'Y';
5762 END IF;
5763 CLOSE chk_claims;
5764
5765 IF ( x_clm_exist = 'Y' ) Then
5766
5767 l_return_status := OKC_API.G_RET_STS_ERROR;
5768
5769 OPEN get_chr_number(p_khr_id);
5770 FETCH get_chr_number into l_contract_number;
5771 close get_chr_number;
5772
5773 FOR chk_claims_rec IN chk_claims(p_khr_id,p_trx_date) LOOP
5774 OKL_API.set_message(G_APP_NAME, 'OKL_INS_CLAIMS_EXIST',
5775 'CONTRACT_NUM',l_contract_number,
5776 'CLAIM_DATE',l_claim_date);
5777
5778 END LOOP;
5779
5780 RAISE OKC_API.G_EXCEPTION_ERROR;
5781 ELSE
5782 x_clm_exist := 'N' ;
5783 END IF;
5784
5785 x_return_status := l_return_status;
5786
5787 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
5788
5789 EXCEPTION
5790 WHEN OKC_API.G_EXCEPTION_ERROR THEN
5791
5792 IF chk_claims%ISOPEN THEN
5793 CLOSE chk_claims;
5794 END IF;
5795
5796 IF get_chr_number%ISOPEN THEN
5797 CLOSE get_chr_number;
5798 END IF;
5799
5800 x_return_status := OKC_API.HANDLE_EXCEPTIONS
5801 (
5802 l_api_name,
5803 G_PKG_NAME,
5804 'OKC_API.G_RET_STS_ERROR',
5805 x_msg_count,
5806 x_msg_data,
5807 '_PROCESS'
5808 );
5809
5810 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5811
5812 IF chk_claims%ISOPEN THEN
5813 CLOSE chk_claims;
5814 END IF;
5815
5816 IF get_chr_number%ISOPEN THEN
5817 CLOSE get_chr_number;
5818 END IF;
5819
5820 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
5821 (
5822 l_api_name,
5823 G_PKG_NAME,
5824 'OKC_API.G_RET_STS_UNEXP_ERROR',
5825 x_msg_count,
5826 x_msg_data,
5827 '_PROCESS'
5828 );
5829
5830 WHEN OTHERS THEN
5831
5832 IF chk_claims%ISOPEN THEN
5833 CLOSE chk_claims;
5834 END IF;
5835
5836 IF get_chr_number%ISOPEN THEN
5837 CLOSE get_chr_number;
5838 END IF;
5839
5840 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
5841 (
5842 l_api_name,
5843 G_PKG_NAME,
5844 'OTHERS',
5845 x_msg_count,
5846 x_msg_data,
5847 '_PROCESS'
5848 );
5849
5850 END check_claims;
5851 --+++++++++++++ Effective Dated Term Qte changes -- end +++++++++
5852
5853
5854
5855 PROCEDURE cancel_policy(
5856 p_api_version IN NUMBER,
5857 p_init_msg_list IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
5858 x_return_status OUT NOCOPY VARCHAR2,
5859 x_msg_count OUT NOCOPY NUMBER,
5860 x_msg_data OUT NOCOPY VARCHAR2,
5861 p_ipyv_rec IN ipyv_rec_type,
5862 x_ipyv_rec OUT NOCOPY ipyv_rec_type
5863 )
5864 IS
5865 l_api_name CONSTANT VARCHAR2(30) := 'cancel_policy';
5866 l_api_version CONSTANT NUMBER := 1;
5867 l_return_status VARCHAR2(1) ;
5868 ls_check_tpi VARCHAR2(3);
5869 l_id NUMBER ;
5870 l_ipyv_rec ipyv_rec_type;
5871 l_clev_rec okl_okc_migration_pvt.clev_rec_type;
5872 lx_clev_rec okl_okc_migration_pvt.clev_rec_type;
5873 l_klev_rec Okl_Kle_Pvt.klev_rec_type ;
5874 lx_klev_rec Okl_Kle_Pvt.klev_rec_type ;
5875 l_cust_refund NUMBER ;
5876 l_vendor_adjustment NUMBER;
5877 l_khr_status VARCHAR2(30) ;
5878 l_adjustment_amount NUMBER ;
5879 l_strm_type_id NUMBER;
5880 l_ins_try_id NUMBER ;
5881 l_total_billed NUMBER ;
5882 l_total_paid NUMBER ;
5883 l_total_bill_accrued NUMBER ;
5884 l_total_pay_accrued NUMBER ;
5885 l_inc_sty_id NUMBER ;
5886 /* Bug#5955320
5887 -- l_tcnv_rec_in OKL_TRX_CONTRACTS_PUB.tcnv_rec_type ;
5888 -- x_tcnv_rec_in OKL_TRX_CONTRACTS_PUB.tcnv_rec_type ;
5889 -- l_tclv_tbl OKL_TRX_CONTRACTS_PUB.tclv_tbl_type ;
5890 -- x_tclv_tbl OKL_TRX_CONTRACTS_PUB.tclv_tbl_type ;
5891 -- l_ctxt_val_tbl Okl_Account_Dist_Pub.CTXT_VAL_TBL_TYPE;
5892 -- l_acc_gen_primary_key_tbl Okl_Account_Dist_Pub.acc_gen_primary_key;
5893 -- l_template_tbl Okl_Account_Dist_Pub.AVLV_TBL_TYPE;
5894 -- l_amount_tbl Okl_Account_Dist_Pub.AMOUNT_TBL_TYPE;
5895 */
5896 l_currency_conversion_type okl_k_headers_full_v.currency_conversion_type%TYPE;
5897 l_currency_conversion_date okl_k_headers_full_v.currency_conversion_date%TYPE;
5898 l_dist_info_rec Okl_Account_Dist_Pub.dist_info_REC_TYPE;
5899 l_tmpl_identify_rec Okl_Account_Dist_Pub.TMPL_IDENTIFY_REC_TYPE;
5900
5901 -- gboomina Bug 4622198 - Added for Investor Special Accounting Codes - Start
5902 l_fact_sync_code VARCHAR2(2000);
5903 l_inv_acct_code VARCHAR2(2000);
5904 -- gboomina Bug 4622198 - Added for Investor Special Accounting Codes - End
5905
5906 l_ptid NUMBER ;
5907 l_curr_code GL_LEDGERS_PUBLIC_V.CURRENCY_CODE%TYPE;
5908 counter NUMBER;
5909 -- smoduga added for 3845998
5910 l_rcvbl_strm_type_id NUMBER;
5911 l_last_billed_date DATE;
5912 l_check_refund_months NUMBER;
5913 -- smoduga added for 3845998
5914
5915 -- schodava added Covered_amount to the cursor for Bug 4701170
5916 CURSOR c_ins_info( p_ipy_id NUMBER) IS
5917 SELECT IPYB.KHR_ID, IPYB.KLE_ID ,IPYB.OBJECT_VERSION_NUMBER, IPYB.date_from, IPYB.ipy_type,IPYB.factor_code,
5918 IPYB.COVERED_AMOUNT
5919 FROM OKL_INS_POLICIES_B IPYB
5920 WHERE IPYB.ID = p_ipy_id;
5921
5922
5923
5924 CURSOR c_okl_third_party(l_khr_id NUMBER, l_cancellation_date DATE) IS
5925 SELECT ID
5926 FROM OKL_INS_POLICIES_B IPYB
5927 WHERE IPYB.IPY_TYPE = 'THIRD_PARTY_POLICY'
5928 AND l_cancellation_date BETWEEN IPYB.date_from and IPYB.date_to;
5929
5930 -- cursor changed to take the stream type id as the parameter, for user defined streams, bug 3924300
5931 CURSOR c_total_billed(l_khr_id NUMBER, l_kle_id NUMBER,l_stream_type_id NUMBER) IS
5932 SELECT SUM(amount)
5933 FROM OKL_STREAMS STM,
5934 OKL_STRM_ELEMENTS STEM
5935 where STM.STY_ID = l_stream_type_id
5936 AND STM.KLE_ID = l_kle_id
5937 AND STM.KHR_ID = l_khr_id
5938 AND STM.ID = STEM.STM_ID
5939 AND STEM.DATE_BILLED IS NOT NULL ;
5940
5941 -- cursor changed to take the stream type id as the parameter, for user defined streams, bug 3924300
5942 CURSOR c_total_paid(l_khr_id NUMBER, l_kle_id NUMBER,l_stream_type_id NUMBER) IS
5943 SELECT SUM(amount)
5944 FROM OKL_STREAMS STM , OKL_STRM_ELEMENTS STEM
5945 WHERE STM.STY_ID = l_stream_type_id
5946 AND STM.KLE_ID = l_kle_id
5947 AND STM.KHR_ID = l_khr_id
5948 AND STM.ID = STEM.STM_ID
5949 AND STEM.DATE_BILLED IS NOT NULL;
5950
5951 -- cursor changed to take the stream type id as the parameter, for user defined streams, bug 3924300
5952 CURSOR c_total_bill_accrued(l_khr_id NUMBER, l_kle_id NUMBER, l_stream_type_id NUMBER) IS
5953 SELECT SUM(amount)
5954 FROM OKL_STREAMS STM , OKL_STRM_ELEMENTS STEM
5955 WHERE STM.STY_ID = l_stream_type_id
5956 AND STM.KLE_ID = l_kle_id
5957 AND STM.KHR_ID = l_khr_id
5958 AND STM.ID = STEM.STM_ID
5959 AND STEM.ACCRUED_YN = 'Y'
5960 AND STM.PURPOSE_CODE IS NULL;
5961
5962 -- cursor changed to take the stream type id as the parameter, for user defined streams, bug 3924300
5963
5964 CURSOR c_total_payment_accrued(l_khr_id NUMBER, l_kle_id NUMBER, l_stream_type_id NUMBER) IS
5965 SELECT SUM(amount)
5966 FROM OKL_STREAMS STM , OKL_STRM_ELEMENTS STEM
5967 WHERE STM.STY_ID = l_stream_type_id
5968 AND STM.KLE_ID = l_kle_id
5969 AND STM.KHR_ID = l_khr_id
5970 AND STM.ID = STEM.STM_ID
5971 AND STEM.ACCRUED_YN = 'Y'
5972 AND STM.PURPOSE_CODE IS NULL;
5973
5974
5975
5976 CURSOR okl_trx_types (cp_name VARCHAR2, cp_language VARCHAR2) IS
5977 SELECT id
5978 FROM okl_trx_types_tl
5979 WHERE name = cp_name
5980 AND language = cp_language;
5981
5982
5983
5984 CURSOR C_OKL_STRM_TYPE_V(ls_stm_code VARCHAR2) IS
5985 select ID
5986 from OKL_STRM_TYPE_TL
5987 where NAME = ls_stm_code
5988 AND LANGUAGE = 'US';
5989
5990
5991
5992 CURSOR l_contract_currency_csr IS
5993 SELECT currency_code
5994 ,currency_conversion_type
5995 ,currency_conversion_date
5996 FROM okl_k_headers_full_v
5997 WHERE id = p_ipyv_rec.khr_id ;
5998
5999
6000
6001 CURSOR l_acc_dtls_csr(p_khr_id IN NUMBER) IS
6002 SELECT khr.pdt_id pdt_id
6003 FROM okl_k_headers_v khr
6004 WHERE khr.ID = p_khr_id;
6005
6006 l_acct_call_rec l_acc_dtls_csr%ROWTYPE;
6007
6008
6009 ----- Account Generator sources
6010
6011 Cursor salesP_csr( chrId NUMBER) IS
6012 select ct.object1_id1 id
6013 from okc_contacts ct,
6014 okc_contact_sources csrc,
6015 okc_k_party_roles_b pty,
6016 okc_k_headers_b chr
6017 where ct.cpl_id = pty.id
6018 and ct.cro_code = csrc.cro_code
6019 and ct.jtot_object1_code = csrc.jtot_object_code
6020 and ct.dnz_chr_id = chr.id
6021 and pty.rle_code = csrc.rle_code
6022 and csrc.cro_code = 'SALESPERSON'
6023 and csrc.rle_code = 'LESSOR'
6024 and csrc.buy_or_sell = chr.buy_or_sell
6025 and pty.dnz_chr_id = chr.id
6026 and pty.chr_id = chr.id
6027 and chr.id = chrId;
6028
6029
6030 l_salesP_rec salesP_csr%ROWTYPE;
6031
6032 Cursor fnd_pro_csr IS
6033 select mo_global.get_current_org_id() l_fnd_profile
6034 from dual;
6035 fnd_pro_rec fnd_pro_csr%ROWTYPE;
6036
6037 -- smoduga added for 3845998
6038 -- Cursor to get the maximum billed date for insurance recievables
6039 Cursor rcvbl_max_billed_date (c_sty_id NUMBER, c_khr_id NUMBER, c_kle_id NUMBER) IS
6040 SELECT max (stre.date_billed)
6041 FROM okl_strm_elements STRE,
6042 OKL_STREAMS STR
6043 WHERE STR.ID = STRE.STM_ID
6044 AND STR.STY_ID = c_sty_id
6045 AND STRE.DATE_BILLED IS NOT NULL
6046 AND STR.KHR_ID = c_khr_id
6047 AND STR.KLE_ID = c_kle_id;
6048
6049
6050
6051 BEGIN
6052 l_ipyv_rec := p_ipyv_rec ;
6053 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
6054 G_PKG_NAME,
6055 p_init_msg_list,
6056 l_api_version,
6057 p_api_version,
6058 '_PROCESS',
6059 x_return_status);
6060 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6061 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6062 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
6063 RAISE OKC_API.G_EXCEPTION_ERROR;
6064 END IF;
6065
6066 IF ((l_ipyv_rec.ID IS NULL ) OR (l_ipyv_rec.ID = OKC_API.G_MISS_NUM )) THEN
6067 x_return_status := OKC_API.G_RET_STS_ERROR;
6068 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Policy ID');
6069 RAISE OKC_API.G_EXCEPTION_ERROR;
6070 ELSE
6071 -- Check for TPI
6072 -- Added covered amount for bug 4701170
6073 OPEN c_ins_info(p_ipyv_rec.ID);
6074 FETCH c_ins_info INTO l_ipyv_rec.KHR_ID , l_ipyv_rec.KLE_ID
6075 ,l_ipyv_rec.OBJECT_VERSION_NUMBER, l_ipyv_rec.date_from, l_ipyv_rec.ipy_type,
6076 l_ipyv_rec.FACTOR_CODE, l_ipyv_rec.covered_amount;
6077 IF(c_ins_info%NOTFOUND) THEN
6078 Okc_Api.set_message(G_APP_NAME, G_INVALID_POLICY );
6079 x_return_status := OKC_API.G_RET_STS_ERROR ;
6080 CLOSE c_ins_info ;
6081 RAISE OKC_API.G_EXCEPTION_ERROR;
6082 END if ;
6083 CLOSE c_ins_info ;
6084 END IF;
6085
6086
6087 IF (l_ipyv_rec.CRX_CODE = 'CANCELED_BY_CUSTOMER') THEN
6088 -- GET system profile to check for third party information
6089 ls_check_tpi := fnd_profile.value('OKLINCANCHECKTPI');
6090 IF ((ls_check_tpi IS NULL ) OR (ls_check_tpi = OKC_API.G_MISS_CHAR )) THEN
6091 x_return_status := OKC_API.G_RET_STS_ERROR;
6092 OKC_API.set_message(G_APP_NAME, G_NO_SYSTEM_PROFILE,G_SYS_PROFILE_NAME,'OKL: Cancel policy with proof of third party insurance' );
6093 RAISE OKC_API.G_EXCEPTION_ERROR;
6094 ELSIF (ls_check_tpi = 'YES' )THEN
6095 -- Check for TPI
6096 OPEN c_okl_third_party(p_ipyv_rec.KHR_ID , p_ipyv_rec.cancellation_date);
6097 FETCH c_okl_third_party INTO l_id;
6098 IF(c_okl_third_party%NOTFOUND) THEN
6099 Okc_Api.set_message(G_APP_NAME, G_NO_THIRD_PARTY,
6100 G_COL_NAME_TOKEN,'Contract ID',G_COL_VALUE_TOKEN,p_ipyv_rec.KHR_ID);
6101 x_return_status := OKC_API.G_RET_STS_ERROR ;
6102 CLOSE c_okl_third_party ;
6103 RAISE OKC_API.G_EXCEPTION_ERROR;
6104 END if ;
6105 CLOSE c_okl_third_party ;
6106 END IF;
6107 END IF;
6108
6109
6110
6111 -- PAY Customer Refund
6112
6113 -- Start Fix for 3845998
6114 -- Checking for profile OKL:Maximum number of months allowed after payment for refund
6115
6116 -- procedure call added for insurance user defined streams, bug 3924300
6117 OKL_STREAMS_UTIL.get_primary_stream_type(l_ipyv_rec.khr_id,
6118 'INSURANCE_RECEIVABLE',
6119 l_return_status,
6120 l_strm_type_id);
6121
6122 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6123 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
6124 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6125 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
6126 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE',G_PURPOSE_TOKEN,'INSURANCE_RECEIVABLE'); --bug 4024785
6127 RAISE OKC_API.G_EXCEPTION_ERROR;
6128 END IF;
6129
6130 --smoduga: Bug 4387062 Start:
6131 -- addded following assignment as l_rcvbl_strm_type_id contains no value resulting in billing cursor to fetch no records
6132 l_rcvbl_strm_type_id:=l_strm_type_id;
6133 --smoduga: Bug 4387062 End:
6134
6135 OPEN rcvbl_max_billed_date(l_rcvbl_strm_type_id, l_ipyv_rec.khr_id, l_ipyv_rec.kle_id );
6136 FETCH rcvbl_max_billed_date INTO l_last_billed_date;
6137 CLOSE rcvbl_max_billed_date;
6138
6139 l_check_refund_months:= fnd_profile.value('OKLINMAXNOOFMONTHSREFUND');
6140
6141 IF MONTHS_BETWEEN (l_ipyv_rec.cancellation_date,l_last_billed_date) < l_check_refund_months THEN --[A]
6142 pay_cust_refund(
6143 p_api_version => l_api_version,
6144 p_init_msg_list => OKC_API.G_FALSE,
6145 x_return_status => l_return_status,
6146 x_msg_count => x_msg_count,
6147 x_msg_data => x_msg_data,
6148 p_contract_id => l_ipyv_rec.khr_id ,
6149 p_contract_line => l_ipyv_rec.kle_id ,
6150 p_cancellation_date => l_ipyv_rec.cancellation_date, ---++ Eff Dated Termination
6151 x_refund_amount => l_cust_refund);
6152
6153 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6154 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6155 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
6156 RAISE OKC_API.G_EXCEPTION_ERROR;
6157 END IF;
6158
6159 END IF; -- [A] End fix for 3845998
6160
6161 --- PAY or clawback from vendor
6162
6163 calc_vendor_clawback(
6164 p_api_version => l_api_version,
6165 p_init_msg_list => OKC_API.G_FALSE,
6166 x_return_status => l_return_status,
6167 x_msg_count => x_msg_count,
6168 x_msg_data => x_msg_data,
6169 p_ipyv_rec => l_ipyv_rec ,
6170 x_ipyv_rec => x_ipyv_rec ,
6171 x_vendor_adjustment => l_vendor_adjustment);
6172
6173 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6174 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6175 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
6176 RAISE OKC_API.G_EXCEPTION_ERROR;
6177 END IF;
6178
6179
6180
6181 ---Inactivate all stream / accounting entries
6182 Inactivate_open_items(
6183 p_api_version => l_api_version,
6184 p_init_msg_list => OKC_API.G_FALSE,
6185 x_return_status => l_return_status,
6186 x_msg_count => x_msg_count,
6187 x_msg_data => x_msg_data,
6188 p_contract_id => l_ipyv_rec.khr_id ,
6189 p_contract_line => l_ipyv_rec.kle_id,
6190 p_policy_status => l_ipyv_rec.iss_code );
6191
6192 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6193 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6194 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
6195 RAISE OKC_API.G_EXCEPTION_ERROR;
6196 END IF;
6197 -- GET contract status
6198 l_return_status := get_contract_status(l_ipyv_rec.khr_id, l_khr_status);
6199 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6200 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6201 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
6202 RAISE OKC_API.G_EXCEPTION_ERROR;
6203 END IF;
6204
6205 IF (l_khr_status = 'ACTIVE' ) THEN
6206 -- if active, end date contract line and update status
6207
6208 l_clev_rec.ID := l_ipyv_rec.kle_id ;
6209 l_clev_rec.sts_code := 'TERMINATED';
6210 l_klev_rec.ID := l_ipyv_rec.kle_id ;
6211 l_clev_rec.DATE_TERMINATED := l_ipyv_rec.CANCELLATION_DATE;
6212
6213
6214 Okl_Contract_Pub.update_contract_line
6215 (
6216 p_api_version => l_api_version ,
6217 p_init_msg_list => OKC_API.G_FALSE,
6218 x_return_status => l_return_status ,
6219 x_msg_count => x_msg_count,
6220 x_msg_data => x_msg_data ,
6221 p_clev_rec => l_clev_rec ,
6222 p_klev_rec => l_klev_rec,
6223 p_edit_mode =>'N' ,
6224 x_clev_rec => lx_clev_rec,
6225 x_klev_rec => lx_klev_rec
6226 );
6227
6228 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6229 -- Status temp
6230 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6231 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
6232
6233 -- Status temp
6234 RAISE OKC_API.G_EXCEPTION_ERROR;
6235 END IF;
6236
6237 -- contract status is not active
6238 ELSE
6239
6240 l_clev_rec.ID := l_ipyv_rec.kle_id ;
6241 l_clev_rec.sts_code := 'TERMINATED';
6242 l_klev_rec.ID := l_ipyv_rec.kle_id ;
6243 l_clev_rec.DATE_TERMINATED := l_ipyv_rec.CANCELLATION_DATE;
6244
6245
6246 Okl_Contract_Pub.update_contract_line
6247 (
6248 p_api_version => l_api_version ,
6249 p_init_msg_list => OKC_API.G_FALSE,
6250 x_return_status => l_return_status ,
6251 x_msg_count => x_msg_count,
6252 x_msg_data => x_msg_data ,
6253 p_clev_rec => l_clev_rec ,
6254 p_edit_mode =>'N' ,
6255 p_klev_rec => l_klev_rec,
6256 x_clev_rec => lx_clev_rec,
6257 x_klev_rec => lx_klev_rec );
6258
6259 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6260 -- Status temp
6261 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6262 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
6263 -- Status temp
6264 RAISE OKC_API.G_EXCEPTION_ERROR;
6265 END IF;
6266
6267 END IF;
6268
6269
6270 -- Income Adjustment
6271 -- Sum of Billed Premium(1) - Sum of refund amount(2) - Sum of accrued income(3)
6272 -- stream type id added to the cursor parameters, user defined streams, bug 3924300
6273 OPEN c_total_billed(l_ipyv_rec.KHR_ID , l_ipyv_rec.KLE_ID,l_rcvbl_strm_type_id);
6274 FETCH c_total_billed INTO l_total_billed;
6275
6276 IF(c_total_billed%NOTFOUND) THEN
6277 Okc_Api.set_message(G_APP_NAME, G_INVALID_CONTRACT,
6278 G_COL_NAME_TOKEN,'Contract ID',G_COL_VALUE_TOKEN,l_ipyv_rec.KHR_ID);
6279 x_return_status := OKC_API.G_RET_STS_ERROR ;
6280 CLOSE c_total_billed ;
6281 RAISE OKC_API.G_EXCEPTION_ERROR;
6282 END if ;
6283 CLOSE c_total_billed ;
6284
6285
6286
6287 -- procedure call added to get the stream type id, user defined streams
6288 -- bug 3924300
6289
6290 OKL_STREAMS_UTIL.get_primary_stream_type(l_ipyv_rec.khr_id,
6291 'INSURANCE_INCOME_ACCRUAL',
6292 l_return_status,
6293 l_strm_type_id);
6294
6295 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6296 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
6297 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6298 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
6299 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE', G_PURPOSE_TOKEN,'INSURANCE_INCOME_ACCRUAL'); --bug 4024785
6300 RAISE OKC_API.G_EXCEPTION_ERROR;
6301 END IF;
6302
6303
6304 -- stream type id added as additional parameter to the cursor,
6305 -- for user defined streams changes, bug 3924300
6306 OPEN c_total_bill_accrued(l_ipyv_rec.KHR_ID , l_ipyv_rec.KLE_ID,l_strm_type_id);
6307 FETCH c_total_bill_accrued INTO l_total_bill_accrued;
6308 IF(c_total_bill_accrued%NOTFOUND) THEN
6309 Okc_Api.set_message(G_APP_NAME, G_INVALID_CONTRACT,
6310 G_COL_NAME_TOKEN,'Contract ID',G_COL_VALUE_TOKEN,l_ipyv_rec.KHR_ID);
6311 x_return_status := OKC_API.G_RET_STS_ERROR ;
6312 CLOSE c_total_bill_accrued ;
6313 RAISE OKC_API.G_EXCEPTION_ERROR;
6314 END if ;
6315 CLOSE c_total_bill_accrued ;
6316 l_adjustment_amount := l_total_billed - l_total_bill_accrued - l_cust_refund ;
6317
6318
6319 OPEN okl_trx_types ('Insurance', 'US');
6320 FETCH okl_trx_types INTO l_ins_try_id;
6321 IF(okl_trx_types%NOTFOUND) THEN
6322 Okc_Api.set_message(G_APP_NAME, G_NO_TRX,
6323 G_COL_NAME_TOKEN,'Transaction Type',G_COL_VALUE_TOKEN,'Insurance');
6324 x_return_status := OKC_API.G_RET_STS_ERROR ;
6325 CLOSE okl_trx_types ;
6326 RAISE OKC_API.G_EXCEPTION_ERROR;
6327 END if ;
6328 CLOSE okl_trx_types;
6329
6330 -- GET Product
6331 OPEN l_acc_dtls_csr(l_ipyv_rec.KHR_ID );
6332 FETCH l_acc_dtls_csr INTO l_ptid;
6333 IF(l_acc_dtls_csr%NOTFOUND) THEN
6334 Okc_Api.set_message(G_APP_NAME, G_NO_STREAM,
6335 G_COL_NAME_TOKEN,'Stream Type',G_COL_VALUE_TOKEN,'INSREFUND');
6336 x_return_status := OKC_API.G_RET_STS_ERROR ;
6337 CLOSE l_acc_dtls_csr ;
6338 RAISE OKC_API.G_EXCEPTION_ERROR;
6339 END if ;
6340 CLOSE l_acc_dtls_csr;
6341
6342
6343
6344 BEGIN
6345 OPEN l_contract_currency_csr;
6346 FETCH l_contract_currency_csr INTO l_curr_code,l_currency_conversion_type,
6347 l_currency_conversion_date ;
6348 CLOSE l_contract_currency_csr;
6349 EXCEPTION
6350 WHEN NO_DATA_FOUND THEN
6351 OKC_API.set_message(G_APP_NAME, G_NO_K_TERM,G_COL_VALUE_TOKEN,p_ipyv_rec.khr_id );
6352 x_return_status := OKC_API.G_RET_STS_ERROR;
6353 IF l_contract_currency_csr%ISOPEN THEN
6354 CLOSE l_contract_currency_csr;
6355 END IF;
6356 RAISE OKC_API.G_EXCEPTION_ERROR;
6357 WHEN OTHERS THEN
6358 IF l_contract_currency_csr%ISOPEN THEN
6359 CLOSE l_contract_currency_csr;
6360 END IF;
6361 -- store SQL error message on message stack for caller
6362 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,
6363 SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
6364 x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR ;
6365 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR ;
6366 END;
6367
6368
6369 --- l_curr_code := OKL_ACCOUNTING_UTIL.GET_FUNC_CURR_CODE;
6370
6371 /* Bug#5955320
6372 IF (l_adjustment_amount <> 0 ) THEN
6373
6374 -- header data
6375 l_tcnv_rec_in.khr_id := l_ipyv_rec.KHR_ID ;
6376 l_tcnv_rec_in.try_id := l_ins_try_id;
6377 l_tcnv_rec_in.tsu_code := 'ENTERED';
6378 l_tcnv_rec_in.tcn_type := 'AAJ';
6379 l_tcnv_rec_in.date_transaction_occurred := l_ipyv_rec.CANCELLATION_DATE;
6380 l_tcnv_rec_in.amount := l_adjustment_amount;
6381 l_tcnv_rec_in.currency_code := l_curr_code ;
6382 l_tcnv_rec_in.currency_conversion_type := l_currency_conversion_type ;
6383 l_tcnv_rec_in.currency_conversion_date := l_currency_conversion_date ;
6384 -- Line Data
6385 l_tclv_tbl(1).line_number := 1;
6386 l_tclv_tbl(1).khr_id := l_ipyv_rec.KHR_ID;
6387 l_tclv_tbl(1).tcl_type := 'AAJ' ;
6388 l_tclv_tbl(1).AMOUNT := l_adjustment_amount;
6389 l_tclv_tbl(1).currency_code := l_curr_code ;
6390 l_tclv_tbl(1).ORG_ID := l_ipyv_rec.org_id ;
6391
6392
6393
6394
6395 -- Start of wraper code generated automatically by Debug code generator for OKL_TRX_CONTRACTS_PUB.create_trx_contracts
6396 IF(L_DEBUG_ENABLED='Y') THEN
6397 L_LEVEL_PROCEDURE :=FND_LOG.LEVEL_PROCEDURE;
6398 IS_DEBUG_PROCEDURE_ON := OKL_DEBUG_PUB.Check_Log_On(L_MODULE, L_LEVEL_PROCEDURE);
6399 END IF;
6400 IF(IS_DEBUG_PROCEDURE_ON) THEN
6401 BEGIN
6402 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call OKL_TRX_CONTRACTS_PUB.create_trx_contracts ');
6403 END;
6404 END IF;
6405 OKL_TRX_CONTRACTS_PUB.create_trx_contracts(
6406 p_api_version => l_api_version,
6407 p_init_msg_list => OKC_API.G_FALSE,
6408 x_return_status => x_return_status,
6409 x_msg_count => x_msg_count,
6410 x_msg_data => x_msg_data,
6411 p_tcnv_rec =>l_tcnv_rec_in ,
6412 p_tclv_tbl => l_tclv_tbl,
6413 x_tcnv_rec => x_tcnv_rec_in,
6414 x_tclv_tbl => x_tclv_tbl
6415 );
6416 IF(IS_DEBUG_PROCEDURE_ON) THEN
6417 BEGIN
6418 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call OKL_TRX_CONTRACTS_PUB.create_trx_contracts ');
6419 END;
6420 END IF;
6421 -- End of wraper code generated automatically by Debug code generator for OKL_TRX_CONTRACTS_PUB.create_trx_contracts
6422
6423
6424 ---------------------------------------------------------------------------------------
6425 counter := 1;
6426
6427 OPEN fnd_pro_csr;
6428 FETCH fnd_pro_csr INTO fnd_pro_rec;
6429 IF ( fnd_pro_csr%FOUND ) Then
6430 l_acc_gen_primary_key_tbl(counter).source_table := 'FINANCIALS_SYSTEM_PARAMETERS';
6431 l_acc_gen_primary_key_tbl(counter).primary_key_column := fnd_pro_rec.l_fnd_profile;
6432 counter := counter + 1 ;
6433 End IF;
6434 CLOSE fnd_pro_csr;
6435
6436
6437
6438 OPEN salesP_csr(l_ipyv_rec.KHR_ID);
6439 FETCH salesP_csr INTO l_salesP_rec;
6440 IF ( salesP_csr%FOUND ) Then
6441 l_acc_gen_primary_key_tbl(counter).source_table := 'JTF_RS_SALESREPS_MO_V';
6442 l_acc_gen_primary_key_tbl(counter).primary_key_column := l_salesP_rec.id;
6443 counter := counter + 1 ;
6444 END IF ;
6445 CLOSE salesP_csr;
6446
6447 ------------------------------------------------------------------------------------
6448
6449 */
6450 /* Bug#5955320
6451
6452
6453 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6454 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6455 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6456 RAISE OKC_API.G_EXCEPTION_ERROR;
6457 END IF;
6458 */
6459 /*OPEN C_OKL_STRM_TYPE_V('INSURANCE INCOME');
6460 FETCH C_OKL_STRM_TYPE_V INTO l_inc_sty_id;
6461 IF(C_OKL_STRM_TYPE_V%NOTFOUND) THEN
6462 Okc_Api.set_message(G_APP_NAME, G_NO_STREAM,
6463 G_COL_NAME_TOKEN,'Stream Type',G_COL_VALUE_TOKEN,'INSURANCE INCOME');
6464 x_return_status := OKC_API.G_RET_STS_ERROR ;
6465 CLOSE C_OKL_STRM_TYPE_V ;
6466 RAISE OKC_API.G_EXCEPTION_ERROR;
6467 END if ;
6468 CLOSE C_OKL_STRM_TYPE_V;*/
6469
6470 /* Bug#5955320
6471 -- cursor fetch replaced with the call to get the stream type id
6472 -- changes done for user defined streams, bug 3924300
6473 OKL_STREAMS_UTIL.get_primary_stream_type(l_ipyv_rec.khr_id,
6474 'INSURANCE_INCOME_ACCRUAL',
6475 l_return_status,
6476 l_inc_sty_id);
6477
6478 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6479 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
6480 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6481 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
6482 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE', G_PURPOSE_TOKEN,'INSURANCE_INCOME_ACCRUAL'); --bug 4024785
6483 RAISE OKC_API.G_EXCEPTION_ERROR;
6484 END IF;
6485
6486 -- gboomina Bug 4622198 - Added for Investor Special Accounting Codes - Start
6487 get_special_acct_codes(p_khr_id => l_ipyv_rec.KHR_ID,
6488 p_trx_date => SYSDATE,
6489 x_fact_sync_code => l_fact_sync_code,
6490 x_inv_acct_code => l_inv_acct_code );
6491 -- gboomina Bug 4622198 - Added for Investor Special Accounting Codes - End
6492
6493 -- Populate Records for Accounting Call.
6494 l_tmpl_identify_rec.PRODUCT_ID := l_ptid;
6495 l_tmpl_identify_rec.TRANSACTION_TYPE_ID := l_ins_try_id;
6496 l_tmpl_identify_rec.STREAM_TYPE_ID := l_inc_sty_id;
6497 l_tmpl_identify_rec.ADVANCE_ARREARS := NULL;
6498 -- gboomina Bug 4622198 - Modified for Investor Special Accounting - Start
6499 l_tmpl_identify_rec.FACTORING_SYND_FLAG := l_fact_sync_code;
6500 l_tmpl_identify_rec.INVESTOR_CODE := l_inv_acct_code;
6501 -- gboomina Bug 4622198 - Modified for Investor Special Accounting - End
6502 l_tmpl_identify_rec.SYNDICATION_CODE := NULL;
6503 l_tmpl_identify_rec.FACTORING_CODE := NULL;
6504 l_tmpl_identify_rec.MEMO_YN := 'N';
6505 l_tmpl_identify_rec.PRIOR_YEAR_YN := 'N';
6506
6507 l_dist_info_rec.SOURCE_ID := x_tclv_tbl(1).ID;
6508 l_dist_info_rec.SOURCE_TABLE := 'OKL_TXL_CNTRCT_LNS';
6509 l_dist_info_rec.ACCOUNTING_DATE := SYSDATE;
6510 l_dist_info_rec.GL_REVERSAL_FLAG := 'N';
6511 l_dist_info_rec.POST_TO_GL := 'N';
6512 l_dist_info_rec.AMOUNT := l_adjustment_amount;
6513 l_dist_info_rec.CURRENCY_CODE := l_curr_code;
6514 --- Not sure
6515 l_dist_info_rec.CURRENCY_CONVERSION_TYPE := l_currency_conversion_type;
6516 l_dist_info_rec.CURRENCY_CONVERSION_DATE := l_currency_conversion_date;
6517 l_dist_info_rec.CONTRACT_ID := l_ipyv_rec.KHR_ID ;
6518 l_dist_info_rec.CONTRACT_LINE_ID := l_ipyv_rec.KLE_ID;
6519
6520
6521
6522 IF (l_adjustment_amount > 0 )THEN
6523
6524
6525
6526
6527
6528
6529 -- Start of wraper code generated automatically by Debug code generator for Okl_Account_Dist_Pub.CREATE_ACCOUNTING_DIST
6530 IF(IS_DEBUG_PROCEDURE_ON) THEN
6531 BEGIN
6532 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call Okl_Account_Dist_Pub.CREATE_ACCOUNTING_DIST ');
6533 END;
6534 END IF;
6535
6536
6537
6538
6539 Okl_Account_Dist_Pub.CREATE_ACCOUNTING_DIST(
6540 p_api_version => p_api_version
6541 ,p_init_msg_list => p_init_msg_list
6542 ,x_return_status => x_return_status
6543 ,x_msg_count => x_msg_count
6544 ,x_msg_data => x_msg_data
6545 ,p_tmpl_identify_rec => l_tmpl_identify_rec
6546 ,p_dist_info_rec => l_dist_info_rec
6547 ,p_ctxt_val_tbl => l_ctxt_val_tbl
6548 ,p_acc_gen_primary_key_tbl => l_acc_gen_primary_key_tbl
6549 ,x_template_tbl => l_template_tbl
6550 ,x_amount_tbl => l_amount_tbl);
6551 IF(IS_DEBUG_PROCEDURE_ON) THEN
6552 BEGIN
6553 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call Okl_Account_Dist_Pub.CREATE_ACCOUNTING_DIST ');
6554 END;
6555 END IF;
6556 -- End of wraper code generated automatically by Debug code generator for Okl_Account_Dist_Pub.CREATE_ACCOUNTING_DIST
6557
6558
6559
6560 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6561 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6562 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6563 RAISE OKC_API.G_EXCEPTION_ERROR;
6564 END IF;
6565 END IF ;
6566
6567 END IF;
6568 */
6569
6570 -- Create accouting for income
6571 --
6572
6573 -- Expense Adjustment
6574 -- Sum of Disbursed Payable(1) - Sum of payable debit(sign)(2) - Sum of accrued insurance (3)
6575
6576 -- call added to get the stream type id, changes done for user defined streams
6577 -- bug 3924300
6578 OKL_STREAMS_UTIL.get_primary_stream_type(l_ipyv_rec.khr_id,
6579 'INSURANCE_PAYABLE',
6580 l_return_status,
6581 l_strm_type_id);
6582
6583 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6584 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
6585 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6586 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
6587 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE', G_PURPOSE_TOKEN,'INSURANCE_PAYABLE'); --bug 4024785
6588 RAISE OKC_API.G_EXCEPTION_ERROR;
6589 END IF;
6590 -- cursor opened with additional parameter stream type id,
6591 -- changes done for user defined streams, bug 3924300
6592
6593 OPEN c_total_paid(l_ipyv_rec.KHR_ID , l_ipyv_rec.KLE_ID,l_strm_type_id);
6594 FETCH c_total_paid INTO l_total_paid;
6595 IF(c_total_paid%NOTFOUND) THEN
6596 Okc_Api.set_message(G_APP_NAME, G_INVALID_CONTRACT,
6597 G_COL_NAME_TOKEN,'Contract ID',G_COL_VALUE_TOKEN,l_ipyv_rec.KHR_ID);
6598 x_return_status := OKC_API.G_RET_STS_ERROR ;
6599 CLOSE c_total_paid ;
6600 RAISE OKC_API.G_EXCEPTION_ERROR;
6601 END if ;
6602 CLOSE c_total_paid ;
6603
6604 /* Bug#5955320
6605 -- call added to get the stream type id, changes done for user defined streams
6606 -- bug 3924300
6607 OKL_STREAMS_UTIL.get_primary_stream_type(l_ipyv_rec.khr_id,
6608 'INSURANCE_EXPENSE_ACCRUAL',
6609 l_return_status,
6610 l_strm_type_id);
6611
6612 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6613 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
6614 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6615 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
6616 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE', G_PURPOSE_TOKEN,'INSURANCE_EXPENSE_ACCRUAL'); --bug 4024785
6617 RAISE OKC_API.G_EXCEPTION_ERROR;
6618 END IF;
6619
6620
6621 -- additional parameter stream type id added to the cursor call
6622 -- changes done for user defined streams, bug 3924300
6623
6624 OPEN c_total_payment_accrued(l_ipyv_rec.KHR_ID , l_ipyv_rec.KLE_ID,l_strm_type_id);
6625 FETCH c_total_payment_accrued INTO l_total_pay_accrued;
6626 IF(c_total_payment_accrued%NOTFOUND) THEN
6627 Okc_Api.set_message(G_APP_NAME, G_INVALID_CONTRACT,
6628 G_COL_NAME_TOKEN,'Contract ID',G_COL_VALUE_TOKEN,l_ipyv_rec.KHR_ID);
6629 x_return_status := OKC_API.G_RET_STS_ERROR ;
6630 CLOSE c_total_payment_accrued ;
6631 RAISE OKC_API.G_EXCEPTION_ERROR;
6632 END if ;
6633 CLOSE c_total_payment_accrued ;
6634
6635 l_adjustment_amount := l_total_paid- l_vendor_adjustment- l_total_pay_accrued;
6636
6637 IF (l_adjustment_amount <> 0 ) THEN
6638
6639 l_tcnv_rec_in.khr_id := l_ipyv_rec.KHR_ID ;
6640 l_tcnv_rec_in.try_id := l_ins_try_id;
6641 l_tcnv_rec_in.tsu_code := 'ENTERED';
6642 l_tcnv_rec_in.tcn_type := 'AAJ';
6643 l_tcnv_rec_in.date_transaction_occurred := l_ipyv_rec.CANCELLATION_DATE;
6644 l_tcnv_rec_in.amount := l_adjustment_amount;
6645 l_tcnv_rec_in.currency_code := l_curr_code ;
6646 l_tcnv_rec_in.currency_conversion_type := l_currency_conversion_type ;
6647 l_tcnv_rec_in.currency_conversion_date := l_currency_conversion_date ;
6648
6649 -- Line Data
6650 l_tclv_tbl(1).line_number := 1;
6651 l_tclv_tbl(1).khr_id := l_ipyv_rec.KHR_ID;
6652 l_tclv_tbl(1).tcl_type := 'AAJ' ;
6653 l_tclv_tbl(1).AMOUNT := l_adjustment_amount;
6654 l_tclv_tbl(1).currency_code := l_curr_code ;
6655 l_tclv_tbl(1).ORG_ID := l_ipyv_rec.org_id ;
6656
6657
6658
6659 -- Start of wraper code generated automatically by Debug code generator for OKL_TRX_CONTRACTS_PUB.create_trx_contracts
6660 IF(IS_DEBUG_PROCEDURE_ON) THEN
6661 BEGIN
6662 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call OKL_TRX_CONTRACTS_PUB.create_trx_contracts ');
6663 END;
6664 END IF;
6665 OKL_TRX_CONTRACTS_PUB.create_trx_contracts(
6666 p_api_version => l_api_version,
6667 p_init_msg_list => OKC_API.G_FALSE,
6668 x_return_status => x_return_status,
6669 x_msg_count => x_msg_count,
6670 x_msg_data => x_msg_data,
6671 p_tcnv_rec =>l_tcnv_rec_in ,
6672 p_tclv_tbl => l_tclv_tbl,
6673 x_tcnv_rec => x_tcnv_rec_in,
6674 x_tclv_tbl => x_tclv_tbl
6675 );
6676 IF(IS_DEBUG_PROCEDURE_ON) THEN
6677 BEGIN
6678 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call OKL_TRX_CONTRACTS_PUB.create_trx_contracts ');
6679 END;
6680 END IF;
6681 -- End of wraper code generated automatically by Debug code generator for OKL_TRX_CONTRACTS_PUB.create_trx_contracts
6682
6683
6684 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6685 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6686 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6687 RAISE OKC_API.G_EXCEPTION_ERROR;
6688 END IF;
6689 */
6690 /* OPEN C_OKL_STRM_TYPE_V('INSURANCE EXPENSE');
6691 FETCH C_OKL_STRM_TYPE_V INTO l_inc_sty_id;
6692 IF(C_OKL_STRM_TYPE_V%NOTFOUND) THEN
6693 Okc_Api.set_message(G_APP_NAME, G_NO_STREAM,
6694 G_COL_NAME_TOKEN,'Stream Type',G_COL_VALUE_TOKEN,'INSURANCE EXPENSE');
6695 x_return_status := OKC_API.G_RET_STS_ERROR ;
6696 CLOSE C_OKL_STRM_TYPE_V ;
6697 RAISE OKC_API.G_EXCEPTION_ERROR;
6698 END if ;
6699 CLOSE C_OKL_STRM_TYPE_V;*/
6700
6701 /* Bug#5955320
6702 -- cursor fetch to get the stream type id replaced with the call,
6703 -- changed for insurance user defined streams, bug 3924300
6704
6705 OKL_STREAMS_UTIL.get_primary_stream_type(l_ipyv_rec.khr_id,
6706 'INSURANCE_EXPENSE_ACCRUAL',
6707 l_return_status,
6708 l_inc_sty_id);
6709
6710 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6711 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
6712 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6713 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
6714 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE', G_PURPOSE_TOKEN,'INSURANCE_EXPENSE_ACCRUAL'); --bug 4024785
6715
6716 RAISE OKC_API.G_EXCEPTION_ERROR;
6717 END IF;
6718
6719
6720 -- Populate Records for Accounting Call.
6721 l_tmpl_identify_rec.PRODUCT_ID := l_ptid;
6722 l_tmpl_identify_rec.TRANSACTION_TYPE_ID := l_ins_try_id;
6723 l_tmpl_identify_rec.STREAM_TYPE_ID := l_inc_sty_id;
6724 l_tmpl_identify_rec.ADVANCE_ARREARS := NULL;
6725 l_tmpl_identify_rec.FACTORING_SYND_FLAG := NULL;
6726 l_tmpl_identify_rec.SYNDICATION_CODE := NULL;
6727 l_tmpl_identify_rec.FACTORING_CODE := NULL;
6728 l_tmpl_identify_rec.MEMO_YN := 'N';
6729 l_tmpl_identify_rec.PRIOR_YEAR_YN := 'N';
6730
6731
6732
6733 l_dist_info_rec.SOURCE_ID := x_tclv_tbl(1).ID;
6734 l_dist_info_rec.SOURCE_TABLE := 'OKL_TXL_CNTRCT_LNS';
6735 l_dist_info_rec.ACCOUNTING_DATE := SYSDATE;
6736 l_dist_info_rec.GL_REVERSAL_FLAG := 'N';
6737 l_dist_info_rec.POST_TO_GL := 'N';
6738 l_dist_info_rec.AMOUNT := l_adjustment_amount;
6739 l_dist_info_rec.CURRENCY_CODE := l_curr_code;
6740 l_dist_info_rec.CURRENCY_CONVERSION_TYPE := l_currency_conversion_type;
6741 l_dist_info_rec.CURRENCY_CONVERSION_DATE := l_currency_conversion_date;
6742 l_dist_info_rec.CONTRACT_ID := l_ipyv_rec.KHR_ID ;
6743 l_dist_info_rec.CONTRACT_LINE_ID := l_ipyv_rec.KLE_ID;
6744
6745
6746
6747 IF ( l_adjustment_amount > 0) THEN
6748
6749
6750 -- Start of wraper code generated automatically by Debug code generator for Okl_Account_Dist_Pub.CREATE_ACCOUNTING_DIST
6751 IF(IS_DEBUG_PROCEDURE_ON) THEN
6752 BEGIN
6753 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call Okl_Account_Dist_Pub.CREATE_ACCOUNTING_DIST ');
6754 END;
6755 END IF;
6756 Okl_Account_Dist_Pub.CREATE_ACCOUNTING_DIST(
6757 p_api_version => p_api_version
6758 ,p_init_msg_list => p_init_msg_list
6759 ,x_return_status => x_return_status
6760 ,x_msg_count => x_msg_count
6761 ,x_msg_data => x_msg_data
6762 ,p_tmpl_identify_rec => l_tmpl_identify_rec
6763 ,p_dist_info_rec => l_dist_info_rec
6764 ,p_ctxt_val_tbl => l_ctxt_val_tbl
6765 ,p_acc_gen_primary_key_tbl => l_acc_gen_primary_key_tbl
6766 ,x_template_tbl => l_template_tbl
6767 ,x_amount_tbl => l_amount_tbl);
6768 IF(IS_DEBUG_PROCEDURE_ON) THEN
6769 BEGIN
6770 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call Okl_Account_Dist_Pub.CREATE_ACCOUNTING_DIST ');
6771 END;
6772 END IF;
6773 -- End of wraper code generated automatically by Debug code generator for Okl_Account_Dist_Pub.CREATE_ACCOUNTING_DIST
6774
6775
6776
6777 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6778 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6779 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6780 RAISE OKC_API.G_EXCEPTION_ERROR;
6781 END IF;
6782
6783 END IF ;
6784
6785
6786 END IF;
6787
6788 */
6789 l_ipyv_rec.iss_code := 'CANCELED';
6790
6791 -- Create entry for adjustment
6792 --Update Policy
6793
6794 -- Start of wraper code generated automatically by Debug code generator for Okl_Ins_Policies_Pub.update_ins_policies
6795 IF(IS_DEBUG_PROCEDURE_ON) THEN
6796 BEGIN
6797 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call Okl_Ins_Policies_Pub.update_ins_policies ');
6798 END;
6799 END IF;
6800 Okl_Ins_Policies_Pub.update_ins_policies(
6801 p_api_version => p_api_version,
6802 p_init_msg_list => OKC_API.G_FALSE,
6803 x_return_status => l_return_status,
6804 x_msg_count => x_msg_count,
6805 x_msg_data => x_msg_data,
6806 p_ipyv_rec => l_ipyv_rec,
6807 x_ipyv_rec => x_ipyv_rec
6808 );
6809
6810 IF(IS_DEBUG_PROCEDURE_ON) THEN
6811 BEGIN
6812 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call Okl_Ins_Policies_Pub.update_ins_policies ');
6813 END;
6814 END IF;
6815 -- End of wraper code generated automatically by Debug code generator for Okl_Ins_Policies_Pub.update_ins_policies
6816
6817 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6818 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6819 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
6820 RAISE OKC_API.G_EXCEPTION_ERROR;
6821 END IF;
6822
6823 -- Notify Vendor
6824 -- To be implemented
6825
6826 -- send Notification to customer
6827 -- To be implemented
6828
6829 -- END IF ;
6830 -- END IF;
6831 -- gboomina start - Bug 4728636
6832 OKL_BILLING_CONTROLLER_PVT.track_next_bill_date ( p_ipyv_rec.khr_id );
6833 -- gboomina end - Bug 4728636
6834 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
6835 EXCEPTION
6836 WHEN OKC_API.G_EXCEPTION_ERROR THEN
6837 x_return_status := OKC_API.HANDLE_EXCEPTIONS
6838 (
6839 l_api_name,
6840 G_PKG_NAME,
6841 'OKC_API.G_RET_STS_ERROR',
6842 x_msg_count,
6843 x_msg_data,
6844 '_PROCESS'
6845 );
6846 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6847 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
6848 (
6849 l_api_name,
6850 G_PKG_NAME,
6851 'OKC_API.G_RET_STS_UNEXP_ERROR',
6852 x_msg_count,
6853 x_msg_data,
6854 '_PROCESS'
6855 );
6856 WHEN OTHERS THEN
6857 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
6858 (
6859 l_api_name,
6860 G_PKG_NAME,
6861 'OTHERS',
6862 x_msg_count,
6863 x_msg_data,
6864 '_PROCESS'
6865 );
6866 END cancel_policy;
6867
6868
6869 PROCEDURE get_refund(
6870 p_api_version IN NUMBER,
6871 p_init_msg_list IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
6872 x_return_status OUT NOCOPY VARCHAR2,
6873 x_msg_count OUT NOCOPY NUMBER,
6874 x_msg_data OUT NOCOPY VARCHAR2,
6875 p_policy_id IN NUMBER,
6876 p_cancellation_date IN DATE DEFAULT NULL, --++ Effective Dated Termination ++--
6877 p_crx_code IN VARCHAR2 DEFAULT NULL,
6878 x_refund_amount OUT NOCOPY NUMBER
6879 )IS
6880 l_value NUMBER ;
6881 l_contract_id NUMBER;
6882 l_contract_line NUMBER;
6883 l_api_name CONSTANT VARCHAR2(30) := 'get_refund';
6884 l_api_version CONSTANT NUMBER := 1;
6885 l_return_status VARCHAR2(1) ;
6886 l_params okl_execute_formula_pub.ctxt_val_tbl_type; ---+++ Effective Dated Termination ++++----
6887
6888 CURSOR okl_ipy_rec(p_policy_id NUMBER) IS
6889 SELECT KHR_ID , KLE_ID
6890 FROM OKL_INS_POLICIES_B
6891 WHERE ID = p_policy_id;
6892
6893 BEGIN
6894
6895 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
6896 G_PKG_NAME,
6897 p_init_msg_list,
6898 l_api_version,
6899 p_api_version,
6900 '_PROCESS',
6901 x_return_status);
6902 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6903 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6904 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
6905 RAISE OKC_API.G_EXCEPTION_ERROR;
6906 END IF;
6907
6908 OPEN okl_ipy_rec(p_policy_id);
6909 FETCH okl_ipy_rec INTO l_contract_id, l_contract_line;
6910 IF(okl_ipy_rec%NOTFOUND) THEN
6911 Okc_Api.set_message(G_APP_NAME, G_INVALID_POLICY,
6912 G_COL_NAME_TOKEN,'Policy ID',G_COL_VALUE_TOKEN,p_policy_id);
6913 x_return_status := OKC_API.G_RET_STS_ERROR ;
6914 CLOSE okl_ipy_rec ;
6915 RAISE OKC_API.G_EXCEPTION_ERROR;
6916 END if ;
6917 CLOSE okl_ipy_rec ;
6918 -- Start of wraper code generated automatically by Debug code generator for OKL_EXECUTE_FORMULA_PUB.EXECUTE
6919 IF(L_DEBUG_ENABLED='Y') THEN
6920 L_LEVEL_PROCEDURE :=FND_LOG.LEVEL_PROCEDURE;
6921 IS_DEBUG_PROCEDURE_ON := OKL_DEBUG_PUB.Check_Log_On(L_MODULE, L_LEVEL_PROCEDURE);
6922 END IF;
6923 IF(IS_DEBUG_PROCEDURE_ON) THEN
6924 BEGIN
6925 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call OKL_EXECUTE_FORMULA_PUB.EXECUTE ');
6926 END;
6927 END IF;
6928 --++ Effective Dated Termination ++----
6929 l_params(1).name := G_FORMULA_PARAM_1;
6930 l_params (1).value := to_char(p_cancellation_date);
6931 l_params(2).name := G_FORMULA_PARAM_2;
6932 l_params(2).value := to_char(p_crx_code);
6933 --++ Effective Dated Termination ++----
6934
6935 OKL_EXECUTE_FORMULA_PUB.EXECUTE(p_api_version => l_api_version,
6936 p_init_msg_list => OKC_API.G_FALSE,
6937 x_return_status => x_return_status,
6938 x_msg_count => x_msg_count,
6939 x_msg_data => x_msg_data,
6940 p_formula_name => G_FORMULA_REFUND_CALC,
6941 p_contract_id => l_contract_id,
6942 p_line_id => l_contract_line,
6943 p_additional_parameters => l_params, ---+++ Eff Dated Term changes ++----
6944 x_value => x_refund_amount );
6945 IF(IS_DEBUG_PROCEDURE_ON) THEN
6946 BEGIN
6947 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call OKL_EXECUTE_FORMULA_PUB.EXECUTE ');
6948 END;
6949 END IF;
6950 -- End of wraper code generated automatically by Debug code generator for OKL_EXECUTE_FORMULA_PUB.EXECUTE
6951 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6952 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6953 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6954 RAISE OKC_API.G_EXCEPTION_ERROR;
6955 END IF;
6956
6957
6958 EXCEPTION
6959 WHEN OKC_API.G_EXCEPTION_ERROR THEN
6960 x_return_status := OKC_API.HANDLE_EXCEPTIONS
6961 (
6962 l_api_name,
6963 G_PKG_NAME,
6964 'OKC_API.G_RET_STS_ERROR',
6965 x_msg_count,
6966 x_msg_data,
6967 '_PROCESS'
6968 );
6969 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6970 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
6971 (
6972 l_api_name,
6973 G_PKG_NAME,
6974 'OKC_API.G_RET_STS_UNEXP_ERROR',
6975 x_msg_count,
6976 x_msg_data,
6977 '_PROCESS'
6978 );
6979 WHEN OTHERS THEN
6980 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
6981 (
6982 l_api_name,
6983 G_PKG_NAME,
6984 'OTHERS',
6985 x_msg_count,
6986 x_msg_data,
6987 '_PROCESS'
6988 );
6989 END get_refund;
6990
6991 PROCEDURE pay_cust_refund(
6992 p_api_version IN NUMBER,
6993 p_init_msg_list IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
6994 x_return_status OUT NOCOPY VARCHAR2,
6995 x_msg_count OUT NOCOPY NUMBER,
6996 x_msg_data OUT NOCOPY VARCHAR2,
6997 p_contract_id IN NUMBER,
6998 p_contract_line IN NUMBER,
6999 p_cancellation_date IN DATE DEFAULT NULL, --++Eff Dated Termination ++--
7000 p_crx_code IN VARCHAR2,
7001 x_refund_amount OUT NOCOPY NUMBER
7002 )IS
7003 l_ret_status varchar2(1) ;
7004 l_value NUMBER ;
7005 l_contract_id NUMBER;
7006 l_contract_line NUMBER;
7007 l_api_name CONSTANT VARCHAR2(30) := 'pay_cust_refund';
7008 l_api_version CONSTANT NUMBER := 1;
7009 l_return_status VARCHAR2(1):= OKC_API.G_RET_STS_SUCCESS ;
7010 l_policy_id NUMBER ;
7011 l_refund_amount NUMBER;
7012 l_strm_type_id NUMBER ;
7013 l_amount NUMBER;
7014
7015
7016
7017 CURSOR okl_trx_types(cp_name VARCHAR2,cp_language VARCHAR2) IS
7018 SELECT id
7019 FROM okl_trx_types_tl
7020 WHERE name = cp_name
7021 AND language = cp_language;
7022
7023
7024 CURSOR okl_ins_policy_id(p_contract_line NUMBER) IS
7025 SELECT id
7026 FROM OKL_INS_POLICIES_B
7027 WHERE KLE_ID = p_contract_line;
7028 p_name VARCHAR2(150) :='Credit Memo'; --bug 3923601
7029 p_lang VARCHAR2(2) := 'US' ;
7030 l_trx_type NUMBER ;
7031 l_sty_id NUMBER ;
7032 l_strm_refund_id NUMBER;
7033 l_tai_id NUMBER ;
7034
7035 CURSOR C_OKL_STRM_TYPE_V(ls_stm_code VARCHAR2) IS
7036 select ID
7037 from OKL_STRM_TYPE_TL
7038 where NAME = ls_stm_code
7039 AND LANGUAGE = 'US';
7040
7041
7042 BEGIN
7043 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
7044 G_PKG_NAME,
7045 p_init_msg_list,
7046 l_api_version,
7047 p_api_version,
7048 '_PROCESS',
7049 x_return_status);
7050 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7051 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7052 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
7053 RAISE OKC_API.G_EXCEPTION_ERROR;
7054 END IF;
7055
7056
7057 -- GET REFUND
7058
7059 --1. get Policy id
7060 OPEN okl_ins_policy_id(p_contract_line);
7061 FETCH okl_ins_policy_id INTO l_policy_id;
7062 IF(okl_ins_policy_id%NOTFOUND) THEN
7063 Okc_Api.set_message(G_APP_NAME, G_INVALID_POLICY,
7064 G_COL_NAME_TOKEN,'Contract Line ID',G_COL_VALUE_TOKEN,p_contract_line);
7065 x_return_status := OKC_API.G_RET_STS_ERROR ;
7066 CLOSE okl_ins_policy_id ;
7067 RAISE OKC_API.G_EXCEPTION_ERROR;
7068 END if ;
7069 CLOSE okl_ins_policy_id ;
7070 --2.
7071
7072 get_refund(
7073 p_api_version => l_api_version,
7074 p_init_msg_list =>Okc_Api.G_FALSE,
7075 x_return_status => l_return_status,
7076 x_msg_count =>x_msg_count,
7077 x_msg_data =>x_msg_data,
7078 p_policy_id => l_policy_id,
7079 p_cancellation_date => p_cancellation_Date,
7080 p_crx_code => p_crx_code,
7081 x_refund_amount => l_refund_amount );
7082
7083 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7084 x_return_status := l_return_status ; --bug 3923601
7085 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7086 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
7087 x_return_status := l_return_status ; --bug 3923601
7088 RAISE OKC_API.G_EXCEPTION_ERROR;
7089 END IF;
7090 x_refund_amount := l_refund_amount ;
7091
7092
7093 --- GET Transaction Type
7094 BEGIN
7095
7096 OPEN okl_trx_types (p_name, p_lang);
7097 FETCH okl_trx_types INTO l_trx_type;
7098 IF(okl_trx_types%NOTFOUND) THEN
7099 Okc_Api.set_message(G_APP_NAME, G_NO_TRX,
7100 G_COL_NAME_TOKEN,'Transaction Type',G_COL_VALUE_TOKEN,p_name);
7101 x_return_status := OKC_API.G_RET_STS_ERROR ;
7102 CLOSE okl_trx_types ;
7103 RAISE OKC_API.G_EXCEPTION_ERROR;
7104 END if ;
7105 CLOSE okl_trx_types;
7106 END;
7107
7108 IF(l_refund_amount > 0 ) THEN
7109
7110 -- GET STream ID
7111 l_refund_amount := -(x_refund_amount) ; --bug 3923601
7112 BEGIN
7113
7114 /*OPEN C_OKL_STRM_TYPE_V('INSURANCE RECEIVABLE');
7115 FETCH C_OKL_STRM_TYPE_V INTO l_strm_type_id;
7116 IF(C_OKL_STRM_TYPE_V%NOTFOUND) THEN
7117 Okc_Api.set_message(G_APP_NAME, G_NO_STREAM,
7118 G_COL_NAME_TOKEN,'Stream Type',G_COL_VALUE_TOKEN,'INSURANCE RECEIVABLE');
7119 x_return_status := OKC_API.G_RET_STS_ERROR ;
7120 CLOSE C_OKL_STRM_TYPE_V ;
7121 RAISE OKC_API.G_EXCEPTION_ERROR;
7122 END if ;
7123 CLOSE C_OKL_STRM_TYPE_V;*/
7124 -- cursor fetch replaced with the procedure call to get the stream type id,
7125 -- changes done for user defined streams, bug 3924300
7126
7127 OKL_STREAMS_UTIL.get_primary_stream_type(p_contract_id,
7128 'INSURANCE_RECEIVABLE',
7129 l_return_status,
7130 l_strm_type_id);
7131
7132 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7133 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
7134 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7135 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
7136 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE',G_PURPOSE_TOKEN,'INSURANCE_RECEIVABLE'); --bug 4024785
7137 RAISE OKC_API.G_EXCEPTION_ERROR;
7138 END IF;
7139
7140
7141
7142 END;
7143 BEGIN
7144
7145 /*OPEN C_OKL_STRM_TYPE_V('INSURANCE REFUND');
7146 FETCH C_OKL_STRM_TYPE_V INTO l_strm_refund_id;
7147 IF(C_OKL_STRM_TYPE_V%NOTFOUND) THEN
7148 Okc_Api.set_message(G_APP_NAME, G_NO_STREAM,
7149 G_COL_NAME_TOKEN,'Stream Type',G_COL_VALUE_TOKEN,'INSURANCE REFUND');
7150 x_return_status := OKC_API.G_RET_STS_ERROR ;
7151 CLOSE C_OKL_STRM_TYPE_V ;
7152 RAISE OKC_API.G_EXCEPTION_ERROR;
7153 END if ;
7154 CLOSE C_OKL_STRM_TYPE_V;*/
7155
7156 -- call added to get the stream type id,
7157 -- changes done for user defined streams, bug 3924300
7158
7159 OKL_STREAMS_UTIL.get_primary_stream_type(p_contract_id,
7160 'INSURANCE_REFUND',
7161 l_return_status,
7162 l_strm_refund_id);
7163
7164 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7165 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
7166 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7167 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
7168 Okc_Api.set_message(G_APP_NAME, 'OKL_NO_STREAM_TYPE', G_PURPOSE_TOKEN,'INSURANCE_REFUND'); --bug 4024785
7169 RAISE OKC_API.G_EXCEPTION_ERROR;
7170 END IF;
7171
7172
7173 END;
7174
7175 -- Call API to create Credit Memo
7176 -- Start of wraper code generated automatically by Debug code generator for on_account_credit_memo
7177 IF(L_DEBUG_ENABLED='Y') THEN
7178 L_LEVEL_PROCEDURE :=FND_LOG.LEVEL_PROCEDURE;
7179 IS_DEBUG_PROCEDURE_ON := OKL_DEBUG_PUB.Check_Log_On(L_MODULE, L_LEVEL_PROCEDURE);
7180 END IF;
7181 IF(IS_DEBUG_PROCEDURE_ON) THEN
7182 BEGIN
7183 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRIPXB.pls call on_account_credit_memo ');
7184 END;
7185 END IF;
7186
7187 --bug 3923601
7188 on_account_credit_memo
7189 (
7190 p_api_version => l_api_version,
7191 p_init_msg_list => OKL_API.G_FALSE,
7192 p_try_id => l_trx_type,
7193 p_khr_id => p_contract_id,
7194 p_kle_id => p_contract_line,
7195 p_ipy_id => l_policy_id,
7196 p_credit_date => TRUNC(SYSDATE),
7197 p_credit_amount => l_refund_amount,
7198 p_credit_sty_id => l_strm_refund_id,
7199 x_return_status => l_return_status,
7200 x_msg_count =>x_msg_count,
7201 x_msg_data => x_msg_data,
7202 x_tai_id => l_tai_id
7203
7204 );
7205
7206
7207 IF(IS_DEBUG_PROCEDURE_ON) THEN
7208 BEGIN
7209 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRIPXB.pls call on_account_credit_memo ');
7210 END;
7211 END IF;
7212 -- End of wraper code generated automatically by Debug code generator for on_account_credit_memo.
7213
7214 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7215 x_return_status := l_return_status ; --bug 3923601
7216 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7217 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
7218 x_return_status := l_return_status ; --bug 3923601
7219 RAISE OKC_API.G_EXCEPTION_ERROR;
7220 END IF;
7221
7222
7223 NULL;
7224
7225
7226
7227
7228 END IF ;
7229
7230 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
7231
7232 EXCEPTION
7233 WHEN OKC_API.G_EXCEPTION_ERROR THEN
7234 x_return_status := OKC_API.HANDLE_EXCEPTIONS
7235 (
7236 l_api_name,
7237 G_PKG_NAME,
7238 'OKC_API.G_RET_STS_ERROR',
7239 x_msg_count,
7240 x_msg_data,
7241 '_PROCESS'
7242 );
7243 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
7244 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
7245 (
7246 l_api_name,
7247 G_PKG_NAME,
7248 'OKC_API.G_RET_STS_UNEXP_ERROR',
7249 x_msg_count,
7250 x_msg_data,
7251 '_PROCESS'
7252 );
7253 WHEN OTHERS THEN
7254 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
7255 (
7256 l_api_name,
7257 G_PKG_NAME,
7258 'OTHERS',
7259 x_msg_count,
7260 x_msg_data,
7261 '_PROCESS'
7262 );
7263 END pay_cust_refund;
7264
7265
7266
7267
7268 PROCEDURE OKL_INSURANCE_PARTY_MERGE (
7269 p_entity_name IN VARCHAR2,
7270 p_from_id IN NUMBER,
7271 x_to_id OUT NOCOPY NUMBER,
7272 p_from_fk_id IN NUMBER,
7273 p_to_fk_id IN NUMBER,
7274 p_parent_entity_name IN VARCHAR2,
7275 p_batch_id IN NUMBER,
7276 p_batch_party_id IN NUMBER,
7277 x_return_status OUT NOCOPY VARCHAR2)
7278 IS
7279 --
7280 l_merge_reason_code VARCHAR2(30);
7281 l_api_name VARCHAR2(30) := 'OKL_INSURANCE_PARTY_MERGE';
7282 l_count NUMBER(10) := 0;
7283 --
7284 BEGIN
7285 --
7286 fnd_file.put_line(fnd_file.log, 'OKL_INSURANCE_POLICIES_PVT.OKL_INSURANCE_PARTY_MERGE');
7287 --
7288 arp_message.set_line('OKL_INSURANCE_POLICIES_PVT.OKL_INSURANCE_PARTY_MERGE()+');
7289
7290 x_return_status := FND_API.G_RET_STS_SUCCESS;
7291
7292
7293 --
7294 select merge_reason_code
7295 into l_merge_reason_code
7296 from hz_merge_batch
7297 where batch_id = p_batch_id;
7298
7299 if l_merge_reason_code = 'DUPLICATE' then
7300 -- if reason code is duplicate then allow the party merge to happen without
7301 -- any validations.
7302 null;
7303 else
7304 -- if there are any validations to be done, include it in this section
7305 null;
7306 end if;
7307
7308 -- If the parent has not changed (ie. Parent getting transferred) then nothing
7309 -- needs to be done. Set Merged To Id is same as Merged From Id and return
7310
7311 if p_from_fk_id = p_to_fk_id then
7312 x_to_id := p_from_id;
7313 return;
7314 end if;
7315
7316 -- If the parent has changed(ie. Parent is getting merged) then transfer the
7317 -- dependent record to the new parent. Before transferring check if a similar
7318 -- dependent record exists on the new parent. If a duplicate exists then do
7319 -- not transfer and return the id of the duplicate record as the Merged To Id
7320
7321 if p_from_fk_id <> p_to_fk_id then
7322 begin
7323 arp_message.set_name('AR','AR_UPDATING_TABLE');
7324 arp_message.set_token('TABLE_NAME','OKL_INS_POLICIES',FALSE);
7325 --
7326 --
7327
7328 UPDATE OKL_INS_POLICIES_B IPYB
7329 SET IPYB.ISU_ID = p_to_fk_id
7330 ,IPYB.object_version_number = IPYB.object_version_number + 1
7331 ,IPYB.last_update_date = SYSDATE
7332 ,IPYB.last_updated_by = arp_standard.profile.user_id
7333 ,IPYB.last_update_login = arp_standard.profile.last_update_login
7334 WHERE IPYB.ISU_ID = p_from_fk_id ;
7335 x_to_id := p_from_id;
7336 l_count := sql%rowcount;
7337 arp_message.set_name('AR','AR_ROWS_UPDATED');
7338 arp_message.set_token('NUM_ROWS',to_char(l_count));
7339 --
7340 exception
7341 when others then
7342 arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
7343 --
7344 fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
7345 'OKL_INS_POLICIES for = '|| p_from_id));
7346 --
7347 fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
7348 x_return_status := FND_API.G_RET_STS_ERROR;
7349 end;
7350 end if;
7351 END OKL_INSURANCE_PARTY_MERGE ;
7352
7353
7354 -----------------------------------------------------------------------------------
7355 PROCEDURE OKL_INSURANCE_PARTY_SITE_MERGE (
7356 p_entity_name IN VARCHAR2,
7357 p_from_id IN NUMBER,
7358 x_to_id OUT NOCOPY NUMBER,
7359 p_from_fk_id IN NUMBER,
7360 p_to_fk_id IN NUMBER,
7361 p_parent_entity_name IN VARCHAR2,
7362 p_batch_id IN NUMBER,
7363 p_batch_party_id IN NUMBER,
7364 x_return_status OUT NOCOPY VARCHAR2)
7365 IS
7366 --
7367 l_merge_reason_code VARCHAR2(30);
7368 l_api_name VARCHAR2(30) := 'OKL_INSURANCE_PARTY_SITE_MERGE';
7369 l_count NUMBER(10) := 0;
7370 --
7371 BEGIN
7372 --
7373 fnd_file.put_line(fnd_file.log, 'OKL_INSURANCE_POLICIES_PVT.OKL_INSURANCE_PARTY_SITE_MERGE');
7374 --
7375 arp_message.set_line('OKL_INSURANCE_POLICIES_PVT.OKL_INSURANCE_PARTY_SITE_MERGE()+');
7376
7377 x_return_status := FND_API.G_RET_STS_SUCCESS;
7378
7379
7380 --
7381 select merge_reason_code
7382 into l_merge_reason_code
7383 from hz_merge_batch
7384 where batch_id = p_batch_id;
7385
7386 if l_merge_reason_code = 'DUPLICATE' then
7387 -- if reason code is duplicate then allow the party merge to happen without
7388 -- any validations.
7389 null;
7390 else
7391 -- if there are any validations to be done, include it in this section
7392 null;
7393 end if;
7394
7395 -- If the parent has not changed (ie. Parent getting transferred) then nothing
7396 -- needs to be done. Set Merged To Id is same as Merged From Id and return
7397
7398 if p_from_fk_id = p_to_fk_id then
7399 x_to_id := p_from_id;
7400 return;
7401 end if;
7402
7403 -- If the parent has changed(ie. Parent is getting merged) then transfer the
7404 -- dependent record to the new parent. Before transferring check if a similar
7405 -- dependent record exists on the new parent. If a duplicate exists then do
7406 -- not transfer and return the id of the duplicate record as the Merged To Id
7407
7408 if p_from_fk_id <> p_to_fk_id then
7409 begin
7410 arp_message.set_name('AR','AR_UPDATING_TABLE');
7411 arp_message.set_token('TABLE_NAME','OKL_INS_POLICIES',FALSE);
7412 --
7413 --
7414
7415 UPDATE OKL_INS_POLICIES_B IPYB
7416 SET IPYB.AGENCY_SITE_ID = p_to_fk_id
7417 ,IPYB.object_version_number = IPYB.object_version_number + 1
7418 ,IPYB.last_update_date = SYSDATE
7419 ,IPYB.last_updated_by = arp_standard.profile.user_id
7420 ,IPYB.last_update_login = arp_standard.profile.last_update_login
7421 WHERE IPYB.AGENCY_SITE_ID = p_from_fk_id ;
7422
7423 l_count := sql%rowcount;
7424 arp_message.set_name('AR','AR_ROWS_UPDATED');
7425 arp_message.set_token('NUM_ROWS',to_char(l_count));
7426 --
7427 exception
7428 when others then
7429 arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
7430 --
7431 fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
7432 'OKL_INS_POLICIES for = '|| p_from_id));
7433 --
7434 fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
7435 x_return_status := FND_API.G_RET_STS_ERROR;
7436 end;
7437 end if;
7438 END OKL_INSURANCE_PARTY_SITE_MERGE ;
7439
7440 ----------------------------------------------------------------------------------
7441 PROCEDURE OKL_INSURANCE_AGENT_MERGE (
7442 p_entity_name IN VARCHAR2,
7443 p_from_id IN NUMBER,
7444 x_to_id OUT NOCOPY NUMBER,
7445 p_from_fk_id IN NUMBER,
7446 p_to_fk_id IN NUMBER,
7447 p_parent_entity_name IN VARCHAR2,
7448 p_batch_id IN NUMBER,
7449 p_batch_party_id IN NUMBER,
7450 x_return_status OUT NOCOPY VARCHAR2)
7451 IS
7452 --
7453 l_merge_reason_code VARCHAR2(30);
7454 l_api_name VARCHAR2(30) := 'OKL_INSURANCE_AGENT_MERGE';
7455 l_count NUMBER(10) := 0;
7456 --
7457 BEGIN
7458 --
7459 fnd_file.put_line(fnd_file.log, 'OKL_INSURANCE_POLICIES_PVT.OKL_INSURANCE_AGENT_MERGE');
7460 --
7461 arp_message.set_line('OKL_INSURANCE_POLICIES_PVT.OKL_INSURANCE_AGENT_MERGE()+');
7462
7463 x_return_status := FND_API.G_RET_STS_SUCCESS;
7464
7465
7466 --
7467 select merge_reason_code
7468 into l_merge_reason_code
7469 from hz_merge_batch
7470 where batch_id = p_batch_id;
7471
7472 if l_merge_reason_code = 'DUPLICATE' then
7473 -- if reason code is duplicate then allow the party merge to happen without
7474 -- any validations.
7475 null;
7476 else
7477 -- if there are any validations to be done, include it in this section
7478 null;
7479 end if;
7480
7481 -- If the parent has not changed (ie. Parent getting transferred) then nothing
7482 -- needs to be done. Set Merged To Id is same as Merged From Id and return
7483
7484 if p_from_fk_id = p_to_fk_id then
7485 x_to_id := p_from_id;
7486 return;
7487 end if;
7488
7489 -- If the parent has changed(ie. Parent is getting merged) then transfer the
7490 -- dependent record to the new parent. Before transferring check if a similar
7491 -- dependent record exists on the new parent. If a duplicate exists then do
7492 -- not transfer and return the id of the duplicate record as the Merged To Id
7493
7494 if p_from_fk_id <> p_to_fk_id then
7495 begin
7496 arp_message.set_name('AR','AR_UPDATING_TABLE');
7497 arp_message.set_token('TABLE_NAME','OKL_INS_POLICIES',FALSE);
7498 --
7499 --
7500
7501 UPDATE OKL_INS_POLICIES_B IPYB
7502 SET IPYB.INT_ID = p_to_fk_id
7503 ,IPYB.object_version_number = IPYB.object_version_number + 1
7504 ,IPYB.last_update_date = SYSDATE
7505 ,IPYB.last_updated_by = arp_standard.profile.user_id
7506 ,IPYB.last_update_login = arp_standard.profile.last_update_login
7507 WHERE IPYB.INT_ID = p_from_fk_id ;
7508
7509 l_count := sql%rowcount;
7510 arp_message.set_name('AR','AR_ROWS_UPDATED');
7511 arp_message.set_token('NUM_ROWS',to_char(l_count));
7512 --
7513 exception
7514 when others then
7515 arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
7516 --
7517 fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
7518 'OKL_INS_POLICIES for = '|| p_from_id));
7519 --
7520 fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
7521 x_return_status := FND_API.G_RET_STS_ERROR;
7522 end;
7523 end if;
7524 END OKL_INSURANCE_AGENT_MERGE ;
7525 -----------------------------------------------------------------------------
7526 PROCEDURE OKL_INSURANCE_AGENT_SITE_MERGE (
7527 p_entity_name IN VARCHAR2,
7528 p_from_id IN NUMBER,
7529 x_to_id OUT NOCOPY NUMBER,
7530 p_from_fk_id IN NUMBER,
7531 p_to_fk_id IN NUMBER,
7532 p_parent_entity_name IN VARCHAR2,
7533 p_batch_id IN NUMBER,
7534 p_batch_party_id IN NUMBER,
7535 x_return_status OUT NOCOPY VARCHAR2)
7536 IS
7537 --
7538 l_merge_reason_code VARCHAR2(30);
7539 l_api_name VARCHAR2(30) := 'OKL_INSURANCE_AGENT_SITE_MERGE';
7540 l_count NUMBER(10) := 0;
7541 --
7542 BEGIN
7543 --
7544 fnd_file.put_line(fnd_file.log, 'OKL_INSURANCE_POLICIES_PVT.OKL_INSURANCE_AGENT_SITE_MERGE');
7545 --
7546 arp_message.set_line('OKL_INSURANCE_POLICIES_PVT.OKL_INSURANCE_AGENT_SITE_MERGE()+');
7547
7548 x_return_status := FND_API.G_RET_STS_SUCCESS;
7549
7550
7551 --
7552 select merge_reason_code
7553 into l_merge_reason_code
7554 from hz_merge_batch
7555 where batch_id = p_batch_id;
7556
7557 if l_merge_reason_code = 'DUPLICATE' then
7558 -- if reason code is duplicate then allow the party merge to happen without
7559 -- any validations.
7560 null;
7561 else
7562 -- if there are any validations to be done, include it in this section
7563 null;
7564 end if;
7565
7566 -- If the parent has not changed (ie. Parent getting transferred) then nothing
7567 -- needs to be done. Set Merged To Id is same as Merged From Id and return
7568
7569 if p_from_fk_id = p_to_fk_id then
7570 x_to_id := p_from_id;
7571 return;
7572 end if;
7573
7574 -- If the parent has changed(ie. Parent is getting merged) then transfer the
7575 -- dependent record to the new parent. Before transferring check if a similar
7576 -- dependent record exists on the new parent. If a duplicate exists then do
7577 -- not transfer and return the id of the duplicate record as the Merged To Id
7578
7579 if p_from_fk_id <> p_to_fk_id then
7580 begin
7581 arp_message.set_name('AR','AR_UPDATING_TABLE');
7582 arp_message.set_token('TABLE_NAME','OKL_INS_POLICIES',FALSE);
7583 --
7584 --
7585
7586 UPDATE OKL_INS_POLICIES_B IPYB
7587 SET IPYB.AGENT_SITE_ID = p_to_fk_id
7588 ,IPYB.object_version_number = IPYB.object_version_number + 1
7589 ,IPYB.last_update_date = SYSDATE
7590 ,IPYB.last_updated_by = arp_standard.profile.user_id
7591 ,IPYB.last_update_login = arp_standard.profile.last_update_login
7592 WHERE IPYB.AGENT_SITE_ID = p_from_fk_id ;
7593
7594 l_count := sql%rowcount;
7595 arp_message.set_name('AR','AR_ROWS_UPDATED');
7596 arp_message.set_token('NUM_ROWS',to_char(l_count));
7597 --
7598 exception
7599 when others then
7600 arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
7601 --
7602 fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
7603 'OKL_INS_POLICIES for = '|| p_from_id));
7604 --
7605 fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
7606 x_return_status := FND_API.G_RET_STS_ERROR;
7607 end;
7608 end if;
7609 END OKL_INSURANCE_AGENT_SITE_MERGE ;
7610
7611 END OKL_INSURANCE_POLICIES_PVT;