[Home] [Help]
PACKAGE BODY: APPS.OKL_CREATE_ADJST_PVT
Source
1 PACKAGE BODY okl_create_adjst_pvt AS
2 /* $Header: OKLROCAB.pls 120.10.12010000.2 2008/09/25 17:54:51 apaul ship $ */
3 -- Start of wraper code generated automatically by Debug code generator
4 L_MODULE VARCHAR2(40) := 'LEASE.RECEIVABLES.ADJUSTMENTS';
5 L_DEBUG_ENABLED CONSTANT VARCHAR2(10) := OKL_DEBUG_PUB.CHECK_LOG_ENABLED;
6 L_LEVEL_PROCEDURE NUMBER;
7 IS_DEBUG_PROCEDURE_ON BOOLEAN;
8 -- End of wraper code generated automatically by Debug code generator
9 ---------------------------------------------------------------------------
10 -- PROCEDURE create_adjustments
11 ---------------------------------------------------------------------------
12 /*===========================================================================+
13 | PROCEDURE |
14 | create_adjustments |
15 | |
16 | DESCRIPTION |
17 | This is the main routine to create an adjustment in AR |
18 | |
19 | SCOPE - PRIVATE |
20 | |
21 | NOTES |
22 | |
23 | MODIFICATION HISTORY |
24 | Bruno Vaghela 16-AUG-02 Created |
25 | 18-Jul-2006 dkagrawa Bug 5378114 MOAC changes |
26 +===========================================================================*/
27
28 PROCEDURE create_adjustments ( p_api_version IN NUMBER
29 ,p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE
30 ,x_return_status OUT NOCOPY VARCHAR2
31 ,x_msg_count OUT NOCOPY NUMBER
32 ,x_msg_data OUT NOCOPY VARCHAR2
33 )IS
34
35 ------------------------------
36 -- DECLARE Local variables
37 ------------------------------
38
39 l_api_version NUMBER DEFAULT 1.0;
40 l_init_msg_list VARCHAR2(1) ;
41 l_return_status VARCHAR2(1);
42 l_msg_count NUMBER;
43 l_msg_data VARCHAR2(2000);
44
45 l_type CONSTANT AR_ADJUSTMENTS.TYPE%TYPE := 'INVOICE';
46 l_created_from CONSTANT AR_ADJUSTMENTS.CREATED_FROM%TYPE := 'ADJ-API';
47
48 l_adjsts_lns_id OKL_TXL_ADJSTS_LNS_B.ID%TYPE;
49 l_new_adj_id OKL_TXL_ADJSTS_LNS_B.RECEIVABLES_ADJUSTMENT_ID%TYPE;
50
51 l_payment_schedule_id AR_ADJUSTMENTS.PAYMENT_SCHEDULE_ID%TYPE;
52 l_contract_number OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE DEFAULT NULL;
53 l_amount AR_ADJUSTMENTS.AMOUNT%TYPE;
54
55 l_receivables_trx_id AR_ADJUSTMENTS.RECEIVABLES_TRX_ID%TYPE;
56 l_receivables_trx_name AR_RECEIVABLES_TRX_ALL.NAME%TYPE;
57
58 l_code_combination_id AR_ADJUSTMENTS.CODE_COMBINATION_ID%TYPE;
59 l_apply_date AR_ADJUSTMENTS.APPLY_DATE%TYPE;
60 l_gl_date AR_ADJUSTMENTS.GL_DATE%TYPE;
61 l_adjustment_reason_code AR_ADJUSTMENTS.REASON_CODE%TYPE;
62 l_comments AR_ADJUSTMENTS.COMMENTS%TYPE;
63
64 l_set_of_books_id AR_ADJUSTMENTS.SET_OF_BOOKS_ID%TYPE DEFAULT NULL;
65
66 x_new_adj_id AR_ADJUSTMENTS.ADJUSTMENT_ID%TYPE;
67 x_new_adj_number AR_ADJUSTMENTS.ADJUSTMENT_NUMBER%TYPE;
68
69 l_org_id NUMBER DEFAULT MO_GLOBAL.GET_CURRENT_ORG_ID();
70
71 ------------------------------
72 -- DECLARE Record/Table Types
73 ------------------------------
74
75 l_adj_rec ar_adjustments%rowtype;
76 l_ajlv_rec ajlv_rec_type;
77 x_ajlv_rec ajlv_rec_type;
78
79 ------------------------------
80 -- DECLARE Exceptions
81 ------------------------------
82
83
84 ------------------------------
85 -- DECLARE Cursors
86 ------------------------------
87
88 CURSOR c_get_adjustments IS
89 SELECT a.APPLY_DATE
90 ,a.GL_DATE
91 ,a.ADJUSTMENT_REASON_CODE
92 ,a.COMMENTS
93 ,b.ID
94 ,b.PSL_ID
95 ,b.AMOUNT
96 ,b.CODE_COMBINATION_ID
97 FROM okl_trx_ar_adjsts_v a, okl_txl_adjsts_lns_v b
98 WHERE a.id = b.adj_id
99 AND b.receivables_adjustment_id IS NULL;
100
101
102 ------------------------------
103
104 CURSOR c_get_receivables_trx_id (cp_set_of_books_id IN NUMBER) IS
105 SELECT RECEIVABLES_TRX_ID, NAME
106 FROM ar_receivables_trx_all
107 WHERE set_of_books_id = cp_set_of_books_id
108 AND name = 'OKL Adjustment';
109
110
111 ------------------------------
112
113 CURSOR c_get_cont_num(cp_psl_id IN NUMBER) IS
114 /*SELECT DISTINCT(contract_number)
115 FROM okl_bpd_leasing_payment_trx_v
116 WHERE payment_schedule_id = cp_psl_id; */ -- Bug 6358836
117 select distinct ractrl.interface_line_attribute6
118 from ra_customer_trx_lines_all ractrl,
119 ar_payment_schedules_all aps
120 where aps.customer_trx_id = ractrl.customer_trx_id
121 and ractrl.line_type = 'LINE'
122 and aps.payment_schedule_id = cp_psl_id;
123
124 ------------------------------
125
126 BEGIN
127
128 l_set_of_books_id := Okl_Accounting_Util.GET_SET_OF_BOOKS_ID;
129
130 OPEN c_get_receivables_trx_id(l_set_of_books_id);
131 FETCH c_get_receivables_trx_id INTO l_receivables_trx_id, l_receivables_trx_name;
132 CLOSE c_get_receivables_trx_id;
133
134 IF l_receivables_trx_id IS NULL THEN
135
136 -- Message Text: Invalid receivables transaction
137 x_return_status := OKC_API.G_RET_STS_ERROR;
138 OKC_API.set_message( p_app_name => G_APP_NAME
139 ,p_msg_name =>'OKL_BPD_RECV_ACTVTY_NOT_SET'
140 );
141
142 --RAISE G_EXCEPTION_HALT_VALIDATION; --bug 6727171
143 RAISE OKL_API.G_EXCEPTION_ERROR; -- bug 6727171
144 END IF;
145
146 OPEN c_get_adjustments;
147 LOOP
148 FETCH c_get_adjustments INTO l_apply_date
149 ,l_gl_date
150 ,l_adjustment_reason_code
151 ,l_comments
152 ,l_adjsts_lns_id
153 ,l_payment_schedule_id
154 ,l_amount
155 ,l_code_combination_id;
156
157
158 EXIT WHEN c_get_adjustments%NOTFOUND;
159
160 LOOP
161
162 IF l_gl_date IS NULL THEN
163 l_gl_date := SYSDATE;
164 END IF;
165
166 IF l_apply_date IS NULL OR l_adjustment_reason_code IS NULL OR
167 l_payment_schedule_id IS NULL OR l_amount IS NULL THEN
168
169 -- Missing mandatory fields for cash application process
170 OKC_API.set_message( p_app_name => G_APP_NAME
171 ,p_msg_name => 'OKL_BPD_ADJUST_MAN'
172 ,p_token1 => 'APPLY_DATE'
173 ,p_token1_value => l_apply_date
174 ,p_token2 => 'ADJUSTMENT_REASON_CODE'
175 ,p_token2_value => l_adjustment_reason_code
176 ,p_token3 => 'PAYMENT_SCHEDULE_ID'
177 ,p_token3_value => l_payment_schedule_id
178 ,p_token4 => 'AMOUNT'
179 ,p_token4_value => l_amount
180 ,p_token5 => 'RECEIVABLES_TRX_ID'
181 ,p_token5_value => l_receivables_trx_id
182 );
183
184 EXIT; -- move to next record.
185
186 END IF;
187
188 l_adj_rec.type := l_type;
189 l_adj_rec.created_from := l_created_from;
190 l_adj_rec.apply_date := l_apply_date;
191 l_adj_rec.gl_date := l_gl_date;
192 l_adj_rec.reason_code := l_adjustment_reason_code;
193 l_adj_rec.comments := l_comments;
194 l_adj_rec.payment_schedule_id := l_payment_schedule_id;
195 l_adj_rec.amount := (l_amount * -1);
196 l_adj_rec.code_combination_id := l_code_combination_id;
197 l_adj_rec.receivables_trx_id := l_receivables_trx_id;
198
199 -- Start of wraper code generated automatically by Debug code generator for AR_ADJUST_PUB.CREATE_ADJUSTMENT
200 IF(L_DEBUG_ENABLED='Y') THEN
201 L_LEVEL_PROCEDURE :=FND_LOG.LEVEL_PROCEDURE;
202 IS_DEBUG_PROCEDURE_ON := OKL_DEBUG_PUB.Check_Log_On(L_MODULE, L_LEVEL_PROCEDURE);
203 END IF;
204 IF(IS_DEBUG_PROCEDURE_ON) THEN
205 BEGIN
206 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLROCAB.pls call AR_ADJUST_PUB.CREATE_ADJUSTMENT ');
207 END;
208 END IF;
209 AR_ADJUST_PUB.CREATE_ADJUSTMENT ( p_api_name => 'AR_ADJUST_PUB'
210 ,p_api_version => 1.0
211 ,p_msg_count => l_msg_count
212 ,p_msg_data => l_msg_data
213 ,p_return_status => l_return_status
214 ,p_adj_rec => l_adj_rec
215 ,p_new_adjust_number => x_new_adj_number
216 ,p_new_adjust_id => x_new_adj_id
217 );
218 IF(IS_DEBUG_PROCEDURE_ON) THEN
219 BEGIN
220 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLROCAB.pls call AR_ADJUST_PUB.CREATE_ADJUSTMENT ');
221 END;
222 END IF;
223 -- End of wraper code generated automatically by Debug code generator for AR_ADJUST_PUB.CREATE_ADJUSTMENT
224
225 OPEN c_get_cont_num(l_payment_schedule_id);
226 FETCH c_get_cont_num INTO l_contract_number;
227 CLOSE c_get_cont_num;
228
229 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) OR
230 (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
231
232 OKC_API.set_message( p_app_name => G_APP_NAME
233 ,p_msg_name => 'OKL_BPD_NO_ADJUST_CREATED'
234 ,p_token1 => 'CONTRACT_NUMBER'
235 ,p_token1_value => l_contract_number
236 ,p_token2 => 'AMOUNT'
237 ,p_token2_value => l_amount
238
239 );
240
241 EXIT;
242
243 ELSE
244
245 OKC_API.set_message( p_app_name => G_APP_NAME
246 ,p_msg_name => 'OKL_BPD_ADJUST_CREATED'
247 ,p_token1 => 'CONTRACT_NUMBER'
248 ,p_token1_value => l_contract_number
249 ,p_token2 => 'AMOUNT'
250 ,p_token2_value => l_amount
251 );
252
253 END IF;
254
255 l_new_adj_id := x_new_adj_id;
256
257 l_ajlv_rec.id := l_adjsts_lns_id;
258 l_ajlv_rec.receivables_adjustment_id := l_new_adj_id;
259
260 -- Start of wraper code generated automatically by Debug code generator for OKL_TXL_ADJSTS_LNS_PUB.UPDATE_TXL_ADJSTS_LNS
261 IF(IS_DEBUG_PROCEDURE_ON) THEN
262 BEGIN
263 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLROCAB.pls call OKL_TXL_ADJSTS_LNS_PUB.UPDATE_TXL_ADJSTS_LNS ');
264 END;
265 END IF;
266 OKL_TXL_ADJSTS_LNS_PUB.UPDATE_TXL_ADJSTS_LNS(l_api_version
267 ,l_init_msg_list
268 ,l_return_status
269 ,l_msg_count
270 ,l_msg_data
271 ,l_ajlv_rec
272 ,x_ajlv_rec
273 );
274 IF(IS_DEBUG_PROCEDURE_ON) THEN
275 BEGIN
276 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLROCAB.pls call OKL_TXL_ADJSTS_LNS_PUB.UPDATE_TXL_ADJSTS_LNS ');
277 END;
278 END IF;
279 -- End of wraper code generated automatically by Debug code generator for OKL_TXL_ADJSTS_LNS_PUB.UPDATE_TXL_ADJSTS_LNS
280
281 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
282 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
283 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
284 RAISE OKL_API.G_EXCEPTION_ERROR;
285 END IF;
286
287 EXIT;
288
289 END LOOP;
290
291 END LOOP;
292 CLOSE c_get_adjustments;
293
294 x_return_status := l_return_status;
295
296 EXCEPTION
297
298 WHEN OTHERS THEN
299 x_return_status := Okl_Api.G_RET_STS_UNEXP_ERROR;
300 x_msg_count := l_msg_count ;
301 x_msg_data := l_msg_data ;
302
303 END create_adjustments;
304
305 /*===========================================================================+
306 | PROCEDURE |
307 | iex_create_adjustments |
308 | |
309 | DESCRIPTION |
310 | This is the main routine to create an adjustment in AR |
311 | specifically for IEX guys. |
312 | |
313 | ARGUMENTS : IN: |
314 | p_api_name |
315 | p_api_version |
316 | p_init_msg_list |
317 | p_commit_flag |
318 | p_psl_id |
319 | p_chk_approval_limits |
320 | : OUT: |
321 | x_new_adj_id |
322 | x_return_status |
323 | x_msg_count |
324 | x_msg_data |
325 | |
326 | SCOPE - PRIVATE |
327 | |
328 | NOTES |
329 | |
330 | MODIFICATION HISTORY |
331 | Bruno Vaghela 09-OCT-02 Created |
332 | varao 19-SEP-05 Addressed bug 4505226 |
333 | varao 11-NOV-05 Addressed bug 4728481 |
334 | varao 17-NOV-05 Addressed bug 4622198 |
335 +===========================================================================*/
336
337
338 PROCEDURE iex_create_adjustments ( p_api_version IN NUMBER
339 ,p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE
340 ,p_commit_flag IN VARCHAR2 DEFAULT OKL_API.G_TRUE
341 ,p_psl_id IN NUMBER
342 ,p_chk_approval_limits IN VARCHAR2 DEFAULT OKL_API.G_TRUE
343 ,x_new_adj_id OUT NOCOPY NUMBER
344 ,x_return_status OUT NOCOPY VARCHAR2
345 ,x_msg_count OUT NOCOPY NUMBER
346 ,x_msg_data OUT NOCOPY VARCHAR2
347 )IS
348
349 ------------------------------
350 -- DECLARE Local variables
351 ------------------------------
352
353 l_api_version NUMBER DEFAULT 1.0;
354 l_init_msg_list VARCHAR2(1) ;
355 l_return_status VARCHAR2(1);
356 l_msg_count NUMBER;
357 l_msg_data VARCHAR2(2000);
358
359 l_type CONSTANT AR_ADJUSTMENTS.TYPE%TYPE := 'INVOICE';
360 l_created_from CONSTANT AR_ADJUSTMENTS.CREATED_FROM%TYPE := 'ADJ-API';
361
362 l_adjsts_lns_id OKL_TXL_ADJSTS_LNS_B.ID%TYPE;
363 l_new_adj_id OKL_TXL_ADJSTS_LNS_B.RECEIVABLES_ADJUSTMENT_ID%TYPE;
364
365 l_payment_schedule_id AR_ADJUSTMENTS.PAYMENT_SCHEDULE_ID%TYPE;
366 l_contract_number OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE DEFAULT NULL;
367 l_amount AR_ADJUSTMENTS.AMOUNT%TYPE;
368
369 l_receivables_trx_id AR_ADJUSTMENTS.RECEIVABLES_TRX_ID%TYPE;
370 l_receivables_trx_name AR_RECEIVABLES_TRX_ALL.NAME%TYPE;
371
372 l_code_combination_id AR_ADJUSTMENTS.CODE_COMBINATION_ID%TYPE;
373 l_apply_date AR_ADJUSTMENTS.APPLY_DATE%TYPE;
374 l_gl_date AR_ADJUSTMENTS.GL_DATE%TYPE;
375 l_adjustment_reason_code AR_ADJUSTMENTS.REASON_CODE%TYPE;
376 l_comments AR_ADJUSTMENTS.COMMENTS%TYPE;
377
378 l_chk_approval_limits VARCHAR2(3);
379 l_commit_flag VARCHAR2(3);
380
381 l_set_of_books_id AR_ADJUSTMENTS.SET_OF_BOOKS_ID%TYPE DEFAULT NULL;
382
383 x_new_adj_number AR_ADJUSTMENTS.ADJUSTMENT_NUMBER%TYPE;
384
385 l_org_id NUMBER DEFAULT MO_GLOBAL.GET_CURRENT_ORG_ID();
386 -- 19-Sep-05 varao bug 4505226 Start
387 l_pdt_id NUMBER := 0;
388 l_try_id NUMBER := NULL;
389
390 l_acc_gen_primary_key_tbl OKL_ACCOUNT_DIST_PUB.acc_gen_primary_key;
391
392 l_msg_index_out NUMBER;
393 -- 19-Sep-05 varao bug 4505226 End
394
395 ------------------------------
396 -- DECLARE Record/Table Types
397 ------------------------------
398
399 l_adj_rec ar_adjustments%rowtype;
400 l_adjv_rec adjv_rec_type;
401 x_adjv_rec adjv_rec_type;
402 l_ajlv_rec ajlv_rec_type;
403 x_ajlv_rec ajlv_rec_type;
404 l_ajlv_new_rec ajlv_rec_type;
405
406 ------------------------------
407 -- DECLARE Exceptions
408 ------------------------------
409
410
411 ------------------------------
412 -- DECLARE Cursors
413 ------------------------------
414
415 CURSOR c_get_adjustments (cp_psl_id IN NUMBER) IS
416 SELECT a.APPLY_DATE
417 ,a.GL_DATE
418 ,a.ADJUSTMENT_REASON_CODE
419 ,a.COMMENTS
420 ,b.ID
421 ,b.PSL_ID
422 ,b.AMOUNT
423 ,b.CODE_COMBINATION_ID
424 FROM okl_trx_ar_adjsts_v a, okl_txl_adjsts_lns_v b
425 WHERE a.id = b.adj_id
426 AND b.receivables_adjustment_id IS NULL
427 AND b.psl_id = cp_psl_id;
428
429
430 ------------------------------
431
432 CURSOR c_get_receivables_trx_id (cp_set_of_books_id IN NUMBER) IS
433 SELECT RECEIVABLES_TRX_ID, NAME
434 FROM ar_receivables_trx_all
435 WHERE set_of_books_id = cp_set_of_books_id
436 AND name = 'OKL Adjustment';
437
438
439 ------------------------------
440
441 -- 19-Sep-05 varao bug 4505226 Start
442
443 /* Commented since this cursor is not used now
444 CURSOR c_get_cont_num(cp_psl_id IN NUMBER) IS
445 SELECT DISTINCT(contract_number)
446 FROM okl_bpd_leasing_payment_trx_v
447 WHERE payment_schedule_id = cp_psl_id;
448 */
449 ------------------------------
450
451 -- Cursor to get the details for a payment schedule id
452 /* Bug 6727171 Start
453 CURSOR c_pmnt_schedule_dtls(cp_psl_id IN NUMBER) IS
454 SELECT OBLP.amount_due_remaining AMOUNT_DUE_REMAINING,
455 OBLP.stream_type_id STREAM_TYPE_ID,
456 OBLP.contract_line_id CONTRACT_LINE_ID,
457 OBLP.stream_name STREAM_NAME,
458 OBLP.contract_id CONTRACT_ID,
459 OBLP.contract_number CONTRACT_NUMBER,
460 OBLP.receivables_invoice_number AR_INVOICE_NUMBER,
461 OBLP.currency_code CURRENCY_CODE,
462 OTIL.id TIL_ID,
463 -999 TLD_ID
464 FROM OKL_BPD_LEASING_PAYMENT_TRX_V OBLP,
465 OKL_TXL_AR_INV_LNS_B OTIL
466 WHERE OBLP.payment_schedule_id = cp_psl_id
467 AND OBLP.receivables_invoice_id = OTIL.receivables_invoice_id
468 AND oblp.stream_type_id = otil.sty_id --added by dkagrawa for performance
469 AND OBLP.amount_due_remaining > 0
470 UNION
471 SELECT OBLP.amount_due_remaining AMOUNT_DUE_REMAINING,
472 OBLP.stream_type_id STREAM_TYPE_ID,
473 OBLP.contract_line_id CONTRACT_LINE_ID,
474 OBLP.stream_name STREAM_NAME,
475 OBLP.contract_id CONTRACT_ID,
476 OBLP.contract_number CONTRACT_NUMBER,
477 OBLP.receivables_invoice_number AR_INVOICE_NUMBER,
478 OBLP.currency_code CURRENCY_CODE,
479 OTAI.til_id_details TIL_ID,
480 OTAI.id TLD_ID
481 FROM OKL_BPD_LEASING_PAYMENT_TRX_V OBLP,
482 OKL_TXD_AR_LN_DTLS_B OTAI
483 WHERE OBLP.payment_schedule_id = cp_psl_id
484 AND OBLP.receivables_invoice_id = OTAI.receivables_invoice_id
485 AND oblp.stream_type_id = otai.sty_id --added by dkagrawa for performance
486 AND OBLP.amount_due_remaining > 0;
487
488 Bug 6727171 End */
489
490 --Bug 6727171 Start
491
492 CURSOR c_pmnt_schedule_dtls(cp_psl_id IN NUMBER) IS
493 SELECT RACTRL.AMOUNT_DUE_REMAINING AMOUNT_DUE_REMAINING,
494 RACTRL.STY_ID STREAM_TYPE_ID,
495 RACTRL.KLE_ID CONTRACT_LINE_ID,
496 RACTRL.KHR_ID CONTRACT_ID,
497 RACTRL.CONTRACT_NUMBER CONTRACT_NUMBER,
498 RACTRL.CUSTOMER_TRX_ID AR_INVOICE_NUMBER,
499 RACTRL.STREAM_TYPE STREAM_NAME,
500 OKL_AM_UTIL_PVT.get_chr_currency(RACTRL.KHR_ID) CURRENCY_CODE,
501 RACTRL.til_id_details TIL_ID,
502 RACTRL.TLD_ID TLD_ID
503 FROM OKL_BPD_TLD_AR_LINES_V RACTRL,
504 AR_PAYMENT_SCHEDULES_ALL APS
505 WHERE APS.PAYMENT_SCHEDULE_ID = cp_psl_id
506 AND RACTRL.CUSTOMER_TRX_ID = APS.CUSTOMER_TRX_ID
507 AND RACTRL.amount_due_remaining > 0;
508
509 --Bug 6727171 End
510
511 c_pmnt_schedule_dtls_rec c_pmnt_schedule_dtls%ROWTYPE;
512
513 ------------------------------
514
515 -- Cursor to get the product of the contract
516 CURSOR c_prod_id(cp_khr_id IN NUMBER) IS
517 SELECT KHR.pdt_id
518 FROM OKL_K_HEADERS_V KHR
519 WHERE KHR.id = cp_khr_id;
520
521 ------------------------------
522
523 -- Cursor to get the distribution for the transaction id and
524 -- transaction table
525 -- Make sure we get the debit distribution and also it is 100percent
526 CURSOR c_code_combination_id(cp_source_id IN NUMBER,
527 cp_source_table IN VARCHAR2) IS
528 SELECT DST.code_combination_id
529 FROM OKL_TRNS_ACC_DSTRS DST
530 WHERE DST.source_id = cp_source_id
531 AND DST.source_table = cp_source_table
532 AND DST.cr_dr_flag = 'D'
533 AND DST.percentage = 100;
534
535 ------------------------------
536
537 -- Get transaction id for 'Adjustments' trx type
538 CURSOR c_try_id (cp_try_name IN VARCHAR2) IS
539 SELECT id
540 FROM okl_trx_types_tl t
541 WHERE UPPER (t.name)= UPPER (cp_try_name);
542
543 ------------------------------
544 -- 19-Sep-05 varao bug 4505226 End
545
546 -- Code added by varao for bug #4728481 - START
547 CURSOR get_psl_context IS
548 SELECT org_id
549 FROM ar_payment_schedules_all
550 WHERE payment_schedule_id = p_psl_id;
551 -- Code added by varao for bug #4728481 - END
552
553 --Bug 6316320 dpsingh start
554 l_tmpl_identify_tbl Okl_Account_Dist_Pvt.tmpl_identify_tbl_type;
555 l_dist_info_tbl Okl_Account_Dist_Pvt.dist_info_tbl_type;
556 l_ctxt_tbl Okl_Account_Dist_Pvt.CTXT_TBL_TYPE;
557 l_acc_gen_tbl Okl_Account_Dist_Pvt.ACC_GEN_TBL_TYPE;
558 l_template_out_tbl Okl_Account_Dist_Pvt.avlv_out_tbl_type;
559 l_amount_out_tbl Okl_Account_Dist_Pvt.amount_out_tbl_type;
560 l_account_derivation OKL_SYS_ACCT_OPTS.ACCOUNT_DERIVATION%TYPE;
561
562 CURSOR get_account_derivation_meth IS
563 SELECT ACCOUNT_DERIVATION
564 FROM OKL_SYS_ACCT_OPTS;
565 --Bug 6316320 dpsingh end
566
567 -- Bug 7138249 start
568 l_functional_currency_code VARCHAR2(15);
569 l_currency_code VARCHAR2(200);
570 l_contract_currency_code VARCHAR2(15);
571 l_currency_conversion_type VARCHAR2(30);
572 l_currency_conversion_rate NUMBER;
573 l_currency_conversion_date DATE;
574 l_converted_amount NUMBER;
575 l_trans_meaning VARCHAR2(200);
576 -- Bug 7138249 end
577
578 BEGIN
579
580 -- Code added by varao for bug #4728481 - START
581 OPEN get_psl_context;
582 FETCH get_psl_context INTO l_org_id;
583 CLOSE get_psl_context;
584 -- Code added by varao for bug #4728481 - END
585
586 l_set_of_books_id := Okl_Accounting_Util.GET_SET_OF_BOOKS_ID;
587
588 l_commit_flag := p_commit_flag;
589 l_payment_schedule_id := p_psl_id;
590 l_chk_approval_limits := p_chk_approval_limits;
591
592 OPEN c_get_receivables_trx_id(l_set_of_books_id);
593 FETCH c_get_receivables_trx_id INTO l_receivables_trx_id, l_receivables_trx_name;
594 CLOSE c_get_receivables_trx_id;
595
596 IF l_receivables_trx_id IS NULL THEN
597 -- Message Text: Invalid receivables transaction
598 x_return_status := OKC_API.G_RET_STS_ERROR;
599 OKC_API.set_message( p_app_name => G_APP_NAME
600 ,p_msg_name =>'OKL_BPD_RECV_ACTVTY_NOT_SET'
601 );
602
603 --RAISE G_EXCEPTION_HALT_VALIDATION; -- bug 6727171
604 RAISE OKL_API.G_EXCEPTION_ERROR; -- bug 6727171
605 END IF;
606
607 -- 19-Sep-05 varao bug 4505226 Start
608 -- Get the payment schedule details
609 OPEN c_pmnt_schedule_dtls(p_psl_id);
610 FETCH c_pmnt_schedule_dtls INTO c_pmnt_schedule_dtls_rec;
611 CLOSE c_pmnt_schedule_dtls;
612
613 IF c_pmnt_schedule_dtls_rec.amount_due_remaining IS NOT NULL THEN
614
615 -- Create adjusment header record in okl_trx_ar_adjsts_b
616 l_adjv_rec.adjustment_reason_code:= 'WRITE OFF';
617 l_adjv_rec.apply_date := SYSDATE;
618 l_adjv_rec.gl_date := SYSDATE;
619 l_adjv_rec.trx_status_code := 'WORKING';
620 --Bug 6316320 dpsingh start
621 -- Get the transaction id for 'Adjustments' trx type
622 OPEN c_try_id('Adjustments');
623 FETCH c_try_id INTO l_try_id;
624 CLOSE c_try_id;
625
626 IF l_try_id IS NULL THEN
627 OKL_API.set_message(p_app_name => G_APP_NAME,
628 p_msg_name => 'OKL_AM_NO_TRX_TYPE_FOUND',
629 p_token1 => 'TRY_NAME',
630 p_token1_value => 'Adjustments');
631 RAISE OKL_API.G_EXCEPTION_ERROR;
632 END IF;
633 l_adjv_rec.try_id :=l_try_id;
634 --Bug 6316320 dpsingh end
635 okl_trx_ar_adjsts_pub.insert_trx_ar_adjsts(
636 p_api_version => l_api_version
637 ,p_init_msg_list => l_init_msg_list
638 ,x_return_status => l_return_status
639 ,x_msg_count => l_msg_count
640 ,x_msg_data => l_msg_data
641 ,p_adjv_rec => l_adjv_rec
642 ,x_adjv_rec => x_adjv_rec);
643
644 IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
645 OKL_API.set_message( p_app_name => G_APP_NAME,
646 p_msg_name => 'OKL_AM_ERR_ADJST_BAL');
647 END IF;
648
649 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
650 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
651 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
652 RAISE OKL_API.G_EXCEPTION_ERROR;
653 END IF;
654
655 -- Create adjusment line record in okl_txl_adjsts_lns_b
656 l_ajlv_rec.adj_id := x_adjv_rec.id;
657 l_ajlv_rec.psl_id := p_psl_id;
658 l_ajlv_rec.amount := c_pmnt_schedule_dtls_rec.amount_due_remaining;
659 l_ajlv_rec.til_id := c_pmnt_schedule_dtls_rec.til_id;
660
661 IF c_pmnt_schedule_dtls_rec.tld_id <> -999
662 AND c_pmnt_schedule_dtls_rec.tld_id IS NOT NULL
663 AND c_pmnt_schedule_dtls_rec.tld_id <> OKL_API.G_MISS_NUM THEN
664 l_ajlv_rec.tld_id := c_pmnt_schedule_dtls_rec.tld_id;
665 END IF;
666
667 -- Bug 7138249 start
668 -- Get the functional currency from AM_Util
669 l_functional_currency_code := OKL_AM_UTIL_PVT.get_functional_currency;
670
671 -- Get the contract currency code
672 l_currency_code := OKL_AM_UTIL_PVT.get_chr_currency(
673 c_pmnt_schedule_dtls_rec.contract_id);
674
675 l_trans_meaning := OKL_AM_UTIL_PVT.get_lookup_meaning(
676 p_lookup_type => 'OKL_ACCOUNTING_EVENT_TYPE',
677 p_lookup_code=> 'ADJUSTMENTS',
678 p_validate_yn => 'Y');
679 IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
680 OKL_API.set_message(
681 p_app_name => G_APP_NAME,
682 p_msg_name => 'OKL_AM_NO_TRX_TYPE_FOUND',
683 p_token1 => 'TRY_NAME',
684 p_token1_value => l_trans_meaning);
685
686 IF( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
687 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT,
688 'OKL_AM_BAL_WRITEOFF_PVT.write_off_balances.',
689 'balance_writeoff_trn_error = '||l_return_status );
690 END IF;
691
692 END IF;
693
694 OKL_ACCOUNTING_UTIL.convert_to_functional_currency(
695 p_khr_id => c_pmnt_schedule_dtls_rec.contract_id,
696 p_to_currency => l_functional_currency_code,
697 p_transaction_date => SYSDATE,
698 p_amount => c_pmnt_schedule_dtls_rec.amount_due_remaining,
699 x_return_status => l_return_status,
700 x_contract_currency => l_contract_currency_code,
701 x_currency_conversion_type => l_currency_conversion_type,
702 x_currency_conversion_rate => l_currency_conversion_rate,
703 x_currency_conversion_date => l_currency_conversion_date,
704 x_converted_amount => l_converted_amount);
705 IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
706 OKL_API.set_message(
707 p_app_name => G_APP_NAME,
708 p_msg_name => 'OKL_AM_ERR_ACC_ENT',
709 p_token1 => 'TRX_TYPE',
710 p_token1_value => l_trans_meaning);
711
712 IF( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
713 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT,
714 'OKL_CREATE_ADJST_PVT.write_off_balances.',
715 'currency_conv_error = '||l_return_status );
716 END IF;
717
718 RAISE OKL_API.G_EXCEPTION_ERROR;
719
720 END IF;
721
722 -- Bug 7138249 end
723
724 --Bug 6316320 dpsingh start
725 l_ajlv_rec.khr_id := c_pmnt_schedule_dtls_rec.contract_id;
726 l_ajlv_rec.sty_id := c_pmnt_schedule_dtls_rec.stream_type_id;
727 l_ajlv_rec.kle_id := c_pmnt_schedule_dtls_rec.contract_line_id ;
728 --Bug 6316320 dpsingh end
729 okl_txl_adjsts_lns_pub.insert_txl_adjsts_lns(
730 p_api_version => l_api_version
731 ,p_init_msg_list => l_init_msg_list
732 ,x_return_status => l_return_status
733 ,x_msg_count => l_msg_count
734 ,x_msg_data => l_msg_data
735 ,p_ajlv_rec => l_ajlv_rec
736 ,x_ajlv_rec => x_ajlv_rec);
737
738 IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
739 OKL_API.set_message( p_app_name => G_APP_NAME,
740 p_msg_name => 'OKL_AM_ERR_ADJST_BAL');
741 END IF;
742
743 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
744 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
745 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
746 RAISE OKL_API.G_EXCEPTION_ERROR;
747 END IF;
748
749 -- Get the product id
750 OPEN c_prod_id(c_pmnt_schedule_dtls_rec.contract_id);
751 FETCH c_prod_id INTO l_pdt_id;
752 CLOSE c_prod_id;
753
754 l_contract_number := c_pmnt_schedule_dtls_rec.contract_number;
755
756 IF l_pdt_id IS NULL OR l_pdt_id = 0 THEN
757 OKL_API.set_message(p_app_name => G_APP_NAME,
758 p_msg_name => 'OKL_AM_PRODUCT_ID_ERROR',
759 p_token1 => 'CONTRACT_NUMBER',
760 p_token1_value => l_contract_number);
761 RAISE OKL_API.G_EXCEPTION_ERROR;
762 END IF;
763
764 -- Do accounting entries to get code_combination_id
765 -- Set the tmpl_identify_rec in parameter
766 l_tmpl_identify_tbl(1).product_id := l_pdt_id;
767 l_tmpl_identify_tbl(1).transaction_type_id := l_try_id;
768 l_tmpl_identify_tbl(1).memo_yn := G_NO;
769 l_tmpl_identify_tbl(1).prior_year_yn := G_NO;
770 l_tmpl_identify_tbl(1).stream_type_id := c_pmnt_schedule_dtls_rec.stream_type_id;
771
772 -- Set the dist_info_rec in parameter
773 l_dist_info_tbl(1).source_id := x_ajlv_rec.id;
774 l_dist_info_tbl(1).source_table := 'OKL_TXL_ADJSTS_LNS_B';
775 l_dist_info_tbl(1).accounting_date := SYSDATE;
776 l_dist_info_tbl(1).gl_reversal_flag := G_NO;
777 l_dist_info_tbl(1).post_to_gl := G_NO;
778 l_dist_info_tbl(1).contract_id := c_pmnt_schedule_dtls_rec.contract_id;
779 l_dist_info_tbl(1).amount := c_pmnt_schedule_dtls_rec.amount_due_remaining;
780 l_dist_info_tbl(1).currency_code := c_pmnt_schedule_dtls_rec.currency_code;
781 -- Bug 7138249 start
782 IF l_functional_currency_code <> l_contract_currency_code THEN
783 l_dist_info_tbl(1).currency_conversion_type := l_currency_conversion_type;
784 l_dist_info_tbl(1).currency_conversion_rate := l_currency_conversion_rate;
785 l_dist_info_tbl(1).currency_conversion_date := l_currency_conversion_date;
786 END IF;
787 -- Bug 7138249 end
788
789
790 OKL_ACC_CALL_PVT.okl_populate_acc_gen (
791 p_contract_id => c_pmnt_schedule_dtls_rec.contract_id,
792 p_contract_line_id => NULL,
793 x_acc_gen_tbl => l_acc_gen_primary_key_tbl,
794 x_return_status => l_return_status);
795
796 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
797 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
798 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
799 RAISE OKL_API.G_EXCEPTION_ERROR;
800 END IF;
801
802 l_acc_gen_tbl(1).acc_gen_key_tbl := l_acc_gen_primary_key_tbl;
803 l_acc_gen_tbl(1).source_id := x_ajlv_rec.id;
804
805 -- 19-Sep-05 varao bug 4622198 Start
806 Okl_Securitization_Pvt.check_khr_ia_associated(
807 p_api_version => l_api_version
808 ,p_init_msg_list => l_init_msg_list
809 ,x_return_status => l_return_status
810 ,x_msg_count => l_msg_count
811 ,x_msg_data => l_msg_data
812 ,p_khr_id => c_pmnt_schedule_dtls_rec.contract_id
813 ,p_scs_code => NULL
814 ,p_trx_date => sysdate
815 ,x_fact_synd_code => l_tmpl_identify_tbl(1).FACTORING_SYND_FLAG
816 ,x_inv_acct_code => l_tmpl_identify_tbl(1).INVESTOR_CODE);
817
818 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
819 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
820 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
821 RAISE OKL_API.G_EXCEPTION_ERROR;
822 END IF;
823 -- 19-Sep-05 varao bug 4622198 End
824
825 -- Call accounting engine
826 -- This will calculate the adjstmnts and generate accounting entries
827 Okl_Account_Dist_Pvt.CREATE_ACCOUNTING_DIST(
828 p_api_version => l_api_version,
829 p_init_msg_list => l_init_msg_list,
830 x_return_status => l_return_status,
831 x_msg_count => l_msg_count,
832 x_msg_data => l_msg_data,
833 p_tmpl_identify_tbl => l_tmpl_identify_tbl,
834 p_dist_info_tbl => l_dist_info_tbl,
835 p_ctxt_val_tbl => l_ctxt_tbl,
836 p_acc_gen_primary_key_tbl => l_acc_gen_tbl,
837 x_template_tbl => l_template_out_tbl,
838 x_amount_tbl => l_amount_out_tbl,
839 p_trx_header_id => x_adjv_rec.id,
840 p_trx_header_table =>'OKL_TRX_AR_ADJSTS_B');
841
842 IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
843 OKL_API.set_message( p_app_name => G_APP_NAME,
844 p_msg_name => 'OKL_AM_ERR_ACC_ENT_MSG',
845 p_token1 => 'TRX_TYPE',
846 p_token1_value => 'Adjustments',
847 p_token2 => 'STREAM_TYPE',
848 p_token2_value => c_pmnt_schedule_dtls_rec.stream_name);
849 END IF;
850
851 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
852 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
853 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
854 RAISE OKL_API.G_EXCEPTION_ERROR;
855 END IF;
856
857 OPEN get_account_derivation_meth;
858 FETCH get_account_derivation_meth INTO l_account_derivation;
859 CLOSE get_account_derivation_meth;
860
861 IF l_account_derivation = 'ATS' THEN
862 -- Get the code_combination_id for the transaction
863 OPEN c_code_combination_id(x_ajlv_rec.id, 'OKL_TXL_ADJSTS_LNS_B');
864 FETCH c_code_combination_id INTO l_code_combination_id;
865 CLOSE c_code_combination_id;
866
867 IF l_code_combination_id = -1 OR l_code_combination_id IS NULL THEN
868 OKL_API.set_message( p_app_name => G_APP_NAME,
869 p_msg_name => 'OKL_AM_CODE_CMB_ERROR',
870 p_token1 => 'CONTRACT_NUMBER',
871 p_token1_value => l_contract_number);
872 RAISE OKL_API.G_EXCEPTION_ERROR;
873 END IF;
874
875 -- Update adjusment line record in okl_txl_adjsts_lns_b with CCID
876 l_ajlv_rec := l_ajlv_new_rec; -- Empty the rec
877
878 -- Set the rec with CCID got from accounting distibutions
879 l_ajlv_rec.id := x_ajlv_rec.id;
880 l_ajlv_rec.code_combination_id := l_code_combination_id;
881
882 x_ajlv_rec := l_ajlv_new_rec; -- Empty the rec
883
884 OKL_TXL_ADJSTS_LNS_PUB.update_txl_adjsts_lns(
885 p_api_version => l_api_version,
886 p_init_msg_list => l_init_msg_list,
887 x_return_status => l_return_status,
888 x_msg_count => l_msg_count,
889 x_msg_data => l_msg_data,
890 p_ajlv_rec => l_ajlv_rec,
891 x_ajlv_rec => x_ajlv_rec);
892
893 IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
894 OKL_API.set_message( p_app_name => G_APP_NAME,
895 p_msg_name => 'OKL_AM_ERR_ADJST_BAL');
896 END IF;
897
898 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
899 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
900 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
901 RAISE OKL_API.G_EXCEPTION_ERROR;
902 END IF;
903 END IF;
904 -- 19-Sep-05 varao bug 4505226 End
905
906 OPEN c_get_adjustments(l_payment_schedule_id);
907 LOOP
908 FETCH c_get_adjustments INTO l_apply_date
909 ,l_gl_date
910 ,l_adjustment_reason_code
911 ,l_comments
912 ,l_adjsts_lns_id
913 ,l_payment_schedule_id
914 ,l_amount
915 ,l_code_combination_id;
916
917 EXIT WHEN c_get_adjustments%NOTFOUND;
918
919 LOOP
920
921 IF l_gl_date IS NULL THEN
922 l_gl_date := SYSDATE;
923 END IF;
924
925 IF l_apply_date IS NULL OR l_adjustment_reason_code IS NULL OR
926 l_payment_schedule_id IS NULL OR l_amount IS NULL THEN
927
928 -- Missing mandatory fields for cash application process
929 OKC_API.set_message( p_app_name => G_APP_NAME
930 ,p_msg_name => 'OKL_BPD_ADJUST_MAN'
931 ,p_token1 => 'APPLY_DATE'
932 ,p_token1_value => l_apply_date
933 ,p_token2 => 'ADJUSTMENT_REASON_CODE'
934 ,p_token2_value => l_adjustment_reason_code
935 ,p_token3 => 'PAYMENT_SCHEDULE_ID'
936 ,p_token3_value => l_payment_schedule_id
937 ,p_token4 => 'AMOUNT'
938 ,p_token4_value => l_amount
939 ,p_token5 => 'RECEIVABLES_TRX_ID'
940 ,p_token5_value => l_receivables_trx_id
941 );
942
943 EXIT; -- move to next record.
944
945 END IF;
946
947 l_adj_rec.type := l_type;
948 l_adj_rec.created_from := l_created_from;
949 l_adj_rec.apply_date := l_apply_date;
950 l_adj_rec.gl_date := l_gl_date;
951 l_adj_rec.reason_code := l_adjustment_reason_code;
952 l_adj_rec.comments := l_comments;
953 l_adj_rec.payment_schedule_id := l_payment_schedule_id;
954 l_adj_rec.amount := (l_amount * -1);
955 IF l_account_derivation = 'ATS' THEN
956 l_adj_rec.code_combination_id := l_code_combination_id;
957 END IF;
958 l_adj_rec.receivables_trx_id := l_receivables_trx_id;
959
960 -- Start of wraper code generated automatically by Debug code generator for AR_ADJUST_PUB.CREATE_ADJUSTMENT
961 IF(L_DEBUG_ENABLED='Y') THEN
962 L_LEVEL_PROCEDURE :=FND_LOG.LEVEL_PROCEDURE;
963 IS_DEBUG_PROCEDURE_ON := OKL_DEBUG_PUB.Check_Log_On(L_MODULE, L_LEVEL_PROCEDURE);
964 END IF;
965 IF(IS_DEBUG_PROCEDURE_ON) THEN
966 BEGIN
967 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLROCAB.pls call AR_ADJUST_PUB.CREATE_ADJUSTMENT ');
968 END;
969 END IF;
970
971 AR_ADJUST_PUB.CREATE_ADJUSTMENT ( p_api_name => 'AR_ADJUST_PUB'
972 ,p_api_version => 1.0
973 ,p_msg_count => l_msg_count
974 ,p_msg_data => l_msg_data
975 ,p_return_status => l_return_status
976 ,p_adj_rec => l_adj_rec
977 ,p_commit_flag => l_commit_flag
978 ,p_chk_approval_limits => l_chk_approval_limits
979 ,p_new_adjust_number => x_new_adj_number
980 ,p_new_adjust_id => x_new_adj_id
981 );
982
983 IF(IS_DEBUG_PROCEDURE_ON) THEN
984 BEGIN
985 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLROCAB.pls call AR_ADJUST_PUB.CREATE_ADJUSTMENT ');
986 END;
987 END IF;
988 -- End of wraper code generated automatically by Debug code generator for AR_ADJUST_PUB.CREATE_ADJUSTMENT
989
990 /* Commented for bug 4505226, 19-Sep-05 varao
991 OPEN c_get_cont_num(l_payment_schedule_id);
992 FETCH c_get_cont_num INTO l_contract_number;
993 CLOSE c_get_cont_num;
994 */
995
996 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) OR
997 (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
998
999 OKC_API.set_message( p_app_name => G_APP_NAME
1000 ,p_msg_name => 'OKL_BPD_NO_ADJUST_CREATED'
1001 ,p_token1 => 'CONTRACT_NUMBER'
1002 ,p_token1_value => l_contract_number
1003 ,p_token2 => 'AMOUNT'
1004 ,p_token2_value => l_amount
1005 );
1006
1007 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1008 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1009 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1010 RAISE OKL_API.G_EXCEPTION_ERROR;
1011 END IF;
1012
1013 EXIT;
1014
1015 ELSE
1016
1017 OKC_API.set_message( p_app_name => G_APP_NAME
1018 ,p_msg_name => 'OKL_BPD_ADJUST_CREATED'
1019 ,p_token1 => 'CONTRACT_NUMBER'
1020 ,p_token1_value => l_contract_number
1021 ,p_token2 => 'AMOUNT'
1022 ,p_token2_value => l_amount
1023 );
1024
1025 END IF;
1026
1027 l_new_adj_id := x_new_adj_id;
1028
1029 l_ajlv_rec := l_ajlv_new_rec;
1030 x_ajlv_rec := l_ajlv_new_rec;
1031
1032 l_ajlv_rec.id := l_adjsts_lns_id;
1033 l_ajlv_rec.receivables_adjustment_id := l_new_adj_id;
1034
1035 -- Start of wraper code generated automatically by Debug code generator for OKL_TXL_ADJSTS_LNS_PUB.UPDATE_TXL_ADJSTS_LNS
1036 IF(IS_DEBUG_PROCEDURE_ON) THEN
1037 BEGIN
1038 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLROCAB.pls call OKL_TXL_ADJSTS_LNS_PUB.UPDATE_TXL_ADJSTS_LNS ');
1039 END;
1040 END IF;
1041 OKL_TXL_ADJSTS_LNS_PUB.UPDATE_TXL_ADJSTS_LNS(l_api_version
1042 ,l_init_msg_list
1043 ,l_return_status
1044 ,l_msg_count
1045 ,l_msg_data
1046 ,l_ajlv_rec
1047 ,x_ajlv_rec
1048 );
1049 IF(IS_DEBUG_PROCEDURE_ON) THEN
1050 BEGIN
1051 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLROCAB.pls call OKL_TXL_ADJSTS_LNS_PUB.UPDATE_TXL_ADJSTS_LNS ');
1052 END;
1053 END IF;
1054 -- End of wraper code generated automatically by Debug code generator for OKL_TXL_ADJSTS_LNS_PUB.UPDATE_TXL_ADJSTS_LNS
1055
1056 IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
1057 OKL_API.set_message( p_app_name => G_APP_NAME,
1058 p_msg_name => 'OKL_AM_ERR_ADJST_BAL');
1059 END IF;
1060
1061 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1062 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1063 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1064 RAISE OKL_API.G_EXCEPTION_ERROR;
1065 END IF;
1066
1067 EXIT;
1068
1069 END LOOP;
1070
1071 END LOOP;
1072 CLOSE c_get_adjustments;
1073
1074 x_return_status := l_return_status;
1075
1076 ELSE
1077
1078 Okl_api.set_message( p_app_name => g_app_name
1079 , p_msg_name => 'OKL_NO_RECORD' ) ;
1080 RAISE OKL_API.G_EXCEPTION_ERROR;
1081
1082 END IF;
1083
1084 EXCEPTION
1085
1086 --Added snizam
1087 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1088 x_return_status := Okl_Api.G_RET_STS_ERROR;
1089 x_msg_count := l_msg_count ;
1090 x_msg_data := l_msg_data ;
1091
1092 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1093 x_return_status := Okl_Api.G_RET_STS_UNEXP_ERROR;
1094 x_msg_count := l_msg_count ;
1095 x_msg_data := l_msg_data ;
1096 --End snizam
1097
1098 WHEN OTHERS THEN
1099 x_return_status := Okl_Api.G_RET_STS_UNEXP_ERROR;
1100 x_msg_count := l_msg_count ;
1101 x_msg_data := l_msg_data ;
1102
1103 END iex_create_adjustments;
1104
1105 END OKL_CREATE_ADJST_PVT;