[Home] [Help]
PACKAGE BODY: APPS.OKL_BPD_CAP_ADV_MON_PVT
Source
1 PACKAGE BODY OKL_BPD_CAP_ADV_MON_PVT AS
2 /* $Header: OKLRAMSB.pls 120.5 2007/08/02 07:08:50 dcshanmu noship $ */
3 -- Start of wraper code generated automatically by Debug code generator
4 L_MODULE VARCHAR2(40) := 'LEASE.RECEIVABLES.SETUP';
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 ---------------------------------------------------------------------------
11 -- PROCEDURE handle_advanced_manual_pay
12 ---------------------------------------------------------------------------
13 ---------------------------------------------------------------------------
14 -- Start of comments
15 --
16 -- Procedure Name : handle_advanced_manual_pay
17 -- Description : procedure for inserting the records in
18 -- table OKL_TRX_CSH_RECEIPT_B and OKL_EXT_CSH_RCPTS_B
19 -- Business Rules :
20 -- Parameters : p_api_version, p_init_msg_list, x_return_status,
21 -- x_msg_count, x_msg_data, p_adv_rcpt_rec, x_adv_rcpt_rec.
22 -- Version : 1.0
23 -- End of comments
24 ---------------------------------------------------------------------------
25
26 PROCEDURE handle_advanced_manual_pay ( p_api_version IN NUMBER,
27 p_init_msg_list IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
28 x_return_status OUT NOCOPY VARCHAR2,
29 x_msg_count OUT NOCOPY NUMBER,
30 x_msg_data OUT NOCOPY VARCHAR2,
31 p_adv_rcpt_rec IN adv_rcpt_rec,
32 x_adv_rcpt_rec OUT NOCOPY adv_rcpt_rec ) IS
33
34 ---------------------------
35 -- DECLARE Local Variables
36 ---------------------------
37 lp_adv_rcpt_rec adv_rcpt_rec := p_adv_rcpt_rec;
38
39 l_customer_id OKL_TRX_CSH_RECEIPT_V.ILE_id%TYPE DEFAULT lp_adv_rcpt_rec.customer_id;
40 l_customer_num AR_CASH_RECEIPTS_ALL.PAY_FROM_CUSTOMER%TYPE DEFAULT lp_adv_rcpt_rec.customer_num;
41
42 l_contract_id OKC_K_HEADERS_V.ID%TYPE DEFAULT lp_adv_rcpt_rec.contract_id;
43 l_last_contract_id OKC_K_HEADERS_V.ID%TYPE DEFAULT 1;
44 l_contract_num OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE DEFAULT lp_adv_rcpt_rec.contract_num;
45 l_contract_number_start_date OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE DEFAULT NULL;
46 l_contract_number_id OKC_K_HEADERS_V.ID%TYPE DEFAULT NULL;
47 --
48 l_currency_conv_type OKL_TRX_CSH_RECEIPT_V.EXCHANGE_RATE_TYPE%TYPE DEFAULT lp_adv_rcpt_rec.currency_conv_type;
49 l_currency_conv_date OKL_TRX_CSH_RECEIPT_V.EXCHANGE_RATE_DATE%TYPE DEFAULT lp_adv_rcpt_rec.currency_conv_date;
50 l_currency_conv_rate OKL_TRX_CSH_RECEIPT_V.EXCHANGE_RATE%TYPE DEFAULT lp_adv_rcpt_rec.currency_conv_rate;
51 --
52 l_conversion_rate GL_DAILY_RATES_V.CONVERSION_RATE%TYPE DEFAULT 0;
53 l_functional_conversion_rate GL_DAILY_RATES_V.CONVERSION_RATE%TYPE DEFAULT 0;
54 l_inverse_conversion_rate GL_DAILY_RATES_V.INVERSE_CONVERSION_RATE%TYPE DEFAULT 0;
55 l_functional_currency OKL_TRX_CSH_RECEIPT_V.CURRENCY_CODE%TYPE DEFAULT NULL;
56 l_invoice_currency_code OKL_TRX_CSH_RECEIPT_V.CURRENCY_CODE%TYPE DEFAULT NULL;
57 l_receipt_currency_code OKL_TRX_CSH_RECEIPT_V.CURRENCY_CODE%TYPE DEFAULT lp_adv_rcpt_rec.currency_code;
58 l_irm_id OKL_TRX_CSH_RECEIPT_V.IRM_ID%TYPE DEFAULT lp_adv_rcpt_rec.irm_id; -- receipt method id
59 l_check_number OKL_TRX_CSH_RECEIPT_V.CHECK_NUMBER%TYPE DEFAULT lp_adv_rcpt_rec.check_number;
60 l_rcpt_amount OKL_TRX_CSH_RECEIPT_V.AMOUNT%TYPE DEFAULT lp_adv_rcpt_rec.rcpt_amount;
61 l_rcpt_type OKL_TRX_CSH_RECEIPT_V.RECEIPT_TYPE%TYPE DEFAULT lp_adv_rcpt_rec.receipt_type;
62 l_rcpt_amount_orig OKL_TRX_CSH_RECEIPT_V.AMOUNT%TYPE DEFAULT lp_adv_rcpt_rec.rcpt_amount;
63 l_converted_receipt_amount OKL_TRX_CSH_RECEIPT_V.AMOUNT%TYPE DEFAULT NULL;
64 l_rcpt_date OKL_TRX_CSH_RECEIPT_V.DATE_EFFECTIVE%TYPE DEFAULT lp_adv_rcpt_rec.receipt_date;
65 l_gl_date OKL_TRX_CSH_RECEIPT_V.GL_DATE%TYPE DEFAULT lp_adv_rcpt_rec.gl_date;
66 l_comments AR_CASH_RECEIPTS_ALL.COMMENTS%TYPE DEFAULT lp_adv_rcpt_rec.comments;
67 l_fully_applied_flag OKL_TRX_CSH_RECEIPT_V.FULLY_APPLIED_FLAG%TYPE DEFAULT lp_adv_rcpt_rec.fully_applied_flag;
68 l_expired_flag OKL_TRX_CSH_RECEIPT_V.EXPIRED_FLAG%TYPE DEFAULT lp_adv_rcpt_rec.expired_flag;
69 l_cash_receipt_id AR_CASH_RECEIPTS_ALL.CASH_RECEIPT_ID%TYPE DEFAULT NULL;
70 l_receivables_invoice_num NUMBER DEFAULT NULL;
71
72 l_over_pay VARCHAR(1) := 'O';
73 l_ordered CONSTANT VARCHAR2(3) := 'ODD';
74 l_prorate CONSTANT VARCHAR2(3) := 'PRO';
75 l_start_date DATE;
76 l_same_cash_app_rule VARCHAR(1) DEFAULT NULL;
77 l_same_date VARCHAR(1) DEFAULT NULL;
78 l_org_id OKL_TRX_CSH_RECEIPT_V.ORG_ID%TYPE DEFAULT MO_GLOBAL.GET_CURRENT_ORG_ID();
79
80 i NUMBER DEFAULT NULL;
81 d NUMBER DEFAULT NULL;
82 t NUMBER DEFAULT NULL;
83 l_first_prorate_rec NUMBER DEFAULT NULL;
84 l_order_count NUMBER DEFAULT NULL;
85
86 l_appl_tolerance NUMBER := 0;
87 l_temp_val NUMBER := 0;
88 l_inv_tot NUMBER := 0;
89 l_cont_tot NUMBER := 0;
90 l_stream_tot NUMBER := 0;
91 l_pro_rate_inv_total NUMBER := 0;
92
93 l_rct_id OKL_TRX_CSH_RECEIPT_B.ID%TYPE;
94 l_rca_id OKL_TXL_RCPT_APPS_V.ID%TYPE;
95 l_xcr_id NUMBER;
96
97 l_dup_rcpt_flag NUMBER DEFAULT NULL;
98 l_cash_applied_flag VARCHAR2(1) DEFAULT NULL;
99 l_cont_applic VARCHAR2(1) DEFAULT 'N';
100 l_cons_bill_applic VARCHAR2(1) DEFAULT 'N';
101
102 l_api_version NUMBER := 1.0;
103 l_init_msg_list VARCHAR2(1) := Okc_Api.g_false;
104 l_return_status VARCHAR2(1);
105 l_msg_count NUMBER;
106 l_msg_data VARCHAR2(2000);
107
108 l_api_name CONSTANT VARCHAR2(30) := 'handle_advanced_manual_pay';
109
110 ------------------------------
111 -- DECLARE Record/Table Types
112 ------------------------------
113
114 -- Internal Trans
115
116 l_rctv_rec Okl_Rct_Pvt.rctv_rec_type;
117 l_rctv_tbl Okl_Rct_Pvt.rctv_tbl_type;
118
119 l_rcav_rec Okl_Rca_Pvt.rcav_rec_type;
120 l_rcav_tbl Okl_Rca_Pvt.rcav_tbl_type;
121
122 x_rctv_rec Okl_Rct_Pvt.rctv_rec_type;
123 x_rctv_tbl Okl_Rct_Pvt.rctv_tbl_type;
124
125 x_rcav_rec Okl_Rca_Pvt.rcav_rec_type;
126 x_rcav_tbl Okl_Rca_Pvt.rcav_tbl_type;
127
128 ----------
129
130 -- External Trans
131
132 l_xcrv_rec Okl_Xcr_Pvt.xcrv_rec_type;
133 l_xcrv_tbl Okl_Xcr_Pvt.xcrv_tbl_type;
134
135 l_xcav_rec Okl_Xca_Pvt.xcav_rec_type;
136 l_xcav_tbl Okl_Xca_Pvt.xcav_tbl_type;
137
138 x_xcrv_rec Okl_Xcr_Pvt.xcrv_rec_type;
139 x_xcrv_tbl Okl_Xcr_Pvt.xcrv_tbl_type;
140
141 x_xcav_rec Okl_Xca_Pvt.xcav_rec_type;
142 x_xcav_tbl Okl_Xca_Pvt.xcav_tbl_type;
143
144 t_xcav_tbl Okl_Xca_Pvt.xcav_tbl_type;
145
146
147 -------------------
148 -- DECLARE Cursors
149 -------------------
150 -- get a contract id if not known
151 CURSOR c_get_contract_id (cp_contract_num IN VARCHAR2) IS
152 SELECT lpt.contract_id
153 FROM OKL_BPD_LEASING_PAYMENT_TRX_V lpt
154 WHERE lpt.contract_number = cp_contract_num
155 AND lpt.status = 'OP'
156 AND lpt.amount_due_remaining > 0
157 ORDER BY lpt.start_date;
158
159 -- get org_id for contract
160 CURSOR c_get_org_id (cp_contract_num IN VARCHAR2) IS
161 SELECT authoring_org_id
162 FROM OKC_K_HEADERS_B
163 WHERE contract_number = cp_contract_num;
164
165 ----------
166
167 -- check for duplicate receipt numbers
168 CURSOR c_dup_rcpt( cp_customer_id IN NUMBER
169 ,cp_check_num IN VARCHAR2
170 ,cp_receipt_date IN DATE
171 ) IS
172 SELECT '1'
173 FROM OKL_TRX_CSH_RECEIPT_V
174 WHERE ile_id = cp_customer_id
175 AND check_number = cp_check_num
176 AND TRUNC(date_effective) = TRUNC(cp_receipt_date);
177
178 ----------
179
180 -- get header and line id's for contract reference
181 CURSOR c_get_int_id_cont ( cp_customer_id IN NUMBER
182 ,cp_check_num IN VARCHAR2
183 ,cp_amount IN NUMBER
184 ,cp_contract_id IN NUMBER) IS
185 SELECT a.id, b.id
186 FROM OKL_TRX_CSH_RECEIPT_V a, OKL_TXL_RCPT_APPS_V b
187 WHERE a.id = b.rct_id_details
188 AND a.ile_id = cp_customer_id
189 AND a.check_number = cp_check_num
190 AND a.amount = cp_amount
191 AND b.khr_id = NVL(cp_contract_id, NULL);
192
193 ----------
194
195 -- get bank details
196 CURSOR c_get_remit_bnk_dtls ( cp_irm_id IN NUMBER ) IS
197 SELECT bank_name, bank_account_num
198 FROM OKL_BPD_RCPT_MTHDS_UV
199 WHERE receipt_method_id = cp_irm_id;
200
201 ----------
202
203 --get currency code
204 CURSOR l_khr_curr_csr(cp_contract_id IN NUMBER) IS
205 SELECT currency_code
206 FROM okl_k_headers_full_v
207 WHERE id = cp_contract_id;
208
209 l_currency_code okl_k_headers_full_v.currency_code%type;
210
211 BEGIN
212
213 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
214 G_PKG_NAME,
215 p_init_msg_list,
216 l_api_version,
217 p_api_version,
218 '_PVT',
219 l_return_status);
220
221 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
222 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
223 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
224 RAISE OKC_API.G_EXCEPTION_ERROR;
225 END IF;
226
227 l_functional_currency := okl_accounting_util.get_func_curr_code;
228
229
230 IF (lp_adv_rcpt_rec.contract_id IS NOT NULL) THEN
231
232 OPEN c_get_org_id(l_contract_num);
233 FETCH c_get_org_id into l_org_id;
234 CLOSE c_get_org_id;
235
236 OPEN l_khr_curr_csr(lp_adv_rcpt_rec.contract_id);
237 FETCH l_khr_curr_csr INTO l_currency_code;
238 CLOSE l_khr_curr_csr;
239
240 IF (l_currency_code <> lp_adv_rcpt_rec.currency_code) THEN
241 OKC_API.set_message( p_app_name => G_APP_NAME,
242 p_msg_name =>'OKL_BPD_RCPT_KHR_CURR_ERROR');
243
244 RAISE G_EXCEPTION_HALT_VALIDATION;
245 END IF;
246 END IF;
247
248 OPEN c_dup_rcpt(l_customer_id, l_check_number, TRUNC(l_rcpt_date));
249 FETCH c_dup_rcpt INTO l_dup_rcpt_flag;
250 CLOSE c_dup_rcpt;
251
252 IF l_dup_rcpt_flag = 1 THEN
253 -- Message Text: Duplicate receipt number for customer
254 x_return_status := OKC_API.G_RET_STS_ERROR;
255 OKC_API.set_message( p_app_name => G_APP_NAME,
256 p_msg_name => 'OKL_BPD_DUP_RECEIPT');
257
258 RAISE G_EXCEPTION_HALT_VALIDATION;
259 END IF;
260
261 -- If invoice currency code is not equal to the receipt currency code and the conversion tye
262 -- is not specified then display the error.
263 IF l_functional_currency <> l_receipt_currency_code AND l_currency_conv_type IN ('NONE') THEN
264
265 -- Message Text: Please enter a currency type.
266 x_return_status := OKC_API.G_RET_STS_ERROR;
267 OKC_API.set_message( p_app_name => G_APP_NAME,
268 p_msg_name => 'OKL_BPD_PLS_ENT_CUR_TYPE');
269
270 RAISE G_EXCEPTION_HALT_VALIDATION;
271
272 END IF;
273
274 IF l_functional_currency = l_receipt_currency_code THEN
275 IF l_currency_conv_type IN ('CORPORATE', 'SPOT', 'USER') OR l_currency_conv_rate <> '0' THEN
276
277 -- Message Text: Currency conversion values are not required when the receipt and invoice currency's are the same.
278 x_return_status := OKC_API.G_RET_STS_ERROR;
279 OKC_API.set_message( p_app_name => G_APP_NAME,
280 p_msg_name => 'OKL_BPD_SAME_CURRENCY');
281
282 RAISE G_EXCEPTION_HALT_VALIDATION;
283
284 END IF;
285
286 END IF;
287
288 -- If invoice currency code is not equal to the receipt currency code and currency conversion type is not 'USER'....
289 IF l_functional_currency <> l_receipt_currency_code AND l_currency_conv_type NOT IN ('USER') THEN
290
291 IF l_currency_conv_date IS NULL OR l_currency_conv_date = '' THEN
292 l_currency_conv_date := l_rcpt_date;
293 END IF;
294
295 IF l_currency_conv_type = 'CORPORATE' THEN
296 l_currency_conv_type := 'Corporate';
297 ELSE
298 l_currency_conv_type := 'Spot';
299 END IF;
300
301 l_functional_conversion_rate := okl_accounting_util.get_curr_con_rate( l_receipt_currency_code
302 ,l_functional_currency
303 ,l_currency_conv_date
304 ,l_currency_conv_type
305 );
306
307 l_inverse_conversion_rate := okl_accounting_util.get_curr_con_rate( l_functional_currency
308 ,l_receipt_currency_code
309 ,l_currency_conv_date
310 ,l_currency_conv_type
311 );
312
313 IF l_functional_conversion_rate IN (0,-1) THEN
314
315 -- Message Text: No exchange rate defined
316 x_return_status := OKC_API.G_RET_STS_ERROR;
317 OKC_API.set_message( p_app_name => G_APP_NAME,
318 p_msg_name => 'OKL_BPD_NO_EXCHANGE_RATE');
319
320 RAISE G_EXCEPTION_HALT_VALIDATION;
321 END IF;
322
323 l_currency_conv_rate := l_functional_conversion_rate;
324
325 ELSIF l_functional_currency <> l_receipt_currency_code AND l_currency_conv_type IN ('USER') THEN
326
327 IF l_currency_conv_rate IS NULL OR l_currency_conv_rate = '0' THEN
328
329 -- Message Text: No exchange rate defined for currency conversion type USER.
330 x_return_status := OKC_API.G_RET_STS_ERROR;
331 OKC_API.set_message( p_app_name => G_APP_NAME,
332 p_msg_name => 'OKL_BPD_USR_RTE_SUPPLIED');
333
334 RAISE G_EXCEPTION_HALT_VALIDATION;
335
336 ELSE
337
338 l_functional_conversion_rate := l_currency_conv_rate;
339 l_inverse_conversion_rate := l_functional_conversion_rate / 1;
340
341 END IF;
342
343 l_currency_conv_type := 'User';
344 l_currency_conv_date := SYSDATE;
345
346 ELSE
347 -- no currency conversion required
348 l_currency_conv_date := NULL;
349 l_currency_conv_type := NULL;
350 l_currency_conv_rate := NULL;
351
352 END IF;
353
354 IF l_rcpt_amount = 0 OR l_rcpt_amount IS NULL THEN
355 -- Message Text: The receipt cannot have a value of zero
356 x_return_status := OKC_API.G_RET_STS_ERROR;
357 OKC_API.set_message( p_app_name => G_APP_NAME,
358 p_msg_name => 'OKL_BPD_ZERO_RECEIPT');
359
360 RAISE G_EXCEPTION_HALT_VALIDATION;
361 END IF;
362
363
364 -- Create record in Internal Transaction Table.
365
366 -- CREATE HEADER REC
367
368 l_rctv_rec.IRM_ID := l_irm_id;
369 l_rctv_rec.ILE_ID := l_customer_id;
370 l_rctv_rec.CHECK_NUMBER := l_check_number;
371 l_rctv_rec.AMOUNT := l_rcpt_amount_orig; -- in receipt amount
372 l_rctv_rec.CURRENCY_CODE := l_receipt_currency_code; -- entered currency
373
374 l_rctv_rec.EXCHANGE_RATE := l_currency_conv_rate;
375 l_rctv_rec.EXCHANGE_RATE_TYPE := l_currency_conv_type;
376 l_rctv_rec.EXCHANGE_RATE_DATE := l_currency_conv_date;
377
378 l_rctv_rec.DATE_EFFECTIVE := l_rcpt_date;
379 l_rctv_rec.GL_DATE := l_gl_date;
380 l_rctv_rec.ORG_ID := l_org_id;
381 l_rctv_rec.RECEIPT_TYPE := l_rcpt_type;
382
383 i := 1;
384
385 IF(l_expired_flag = 'Y') THEN
386 l_rcav_tbl(i).KHR_ID := l_contract_id;
387 l_rcav_tbl(i).ILE_ID := l_customer_id;
388 l_rcav_tbl(i).AMOUNT := l_rcpt_amount_orig;
389 l_rcav_tbl(i).ORG_ID := l_org_id;
390 END IF;
391 -- This procedure will insert the records in internal transaction table OKL_TRX_CSH_RECEIPT_B.
392 Okl_Rct_Pub.create_internal_trans (l_api_version
393 ,l_init_msg_list
394 ,l_return_status
395 ,l_msg_count
396 ,l_msg_data
397 ,l_rctv_rec
398 ,l_rcav_tbl
399 ,x_rctv_rec
400 ,x_rcav_tbl);
401
402 IF (IS_DEBUG_PROCEDURE_ON) THEN
403 BEGIN
404 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRCAPB.pls call Okl_Rct_Pub.create_internal_trans ');
405 END;
406 END IF;
407 -- End of wraper code generated automatically by Debug code generator for Okl_Rct_Pub.create_internal_trans
408
409 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
410 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
411 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
412 RAISE OKL_API.G_EXCEPTION_ERROR;
413 END IF;
414
415 l_rct_id := x_rctv_rec.ID;
416
417 -- Internal Record created.
418
419 -- **************************************************
420 -- Contract level cash application processing BEGINS
421 -- **************************************************
422
423 IF l_contract_num IS NOT NULL THEN -- (1)
424 l_cont_applic := 'Y';
425
426 IF l_contract_id IS NULL THEN
427 OPEN c_get_contract_id(l_contract_num);
428 FETCH c_get_contract_id INTO l_contract_id;
429 CLOSE c_get_contract_id;
430 END IF;
431
432 END IF;
433
434 -- Create record in External Transaction Table.
435
436 -- CREATE HEADER REC
437
438 -- obtain remittance bank details.
439 /*
440 OPEN c_get_remit_bnk_dtls(l_irm_id);
441 FETCH c_get_remit_bnk_dtls
442 INTO l_xcrv_rec.REMITTANCE_BANK_NAME
443 ,l_xcrv_rec.ACCOUNT;
444 CLOSE c_get_remit_bnk_dtls;
445
446 l_xcrv_rec.RCT_ID := l_rct_id;
447 l_xcrv_rec.CHECK_NUMBER := l_check_number;
448 l_xcrv_rec.RECEIPT_METHOD := NULL; -- prefer IRM_ID !
449 l_xcrv_rec.RECEIPT_DATE := l_rcpt_date;
450 l_xcrv_rec.RECEIPT_TYPE := l_rcpt_type;
451 l_xcrv_rec.GL_DATE := l_gl_date;
452 l_xcrv_rec.CURRENCY_CODE := l_receipt_currency_code;
453
454 -- store the functional currency at header lvl
455
456 IF l_receipt_currency_code <> l_functional_currency THEN
457
458 l_xcrv_rec.EXCHANGE_RATE_TYPE := l_currency_conv_type;
459 l_xcrv_rec.EXCHANGE_RATE_DATE := l_currency_conv_date;
460 l_xcrv_rec.ATTRIBUTE1 := l_functional_conversion_rate;
461 -- in functional currency ...
462 END IF;
463
464 IF l_receipt_currency_code <> l_invoice_currency_code THEN
465 l_xcrv_rec.EXCHANGE_RATE := l_conversion_rate;
466 l_xcrv_rec.REMITTANCE_AMOUNT := l_converted_receipt_amount;
467 -- in transaction currency ...
468 ELSE
469 l_xcrv_rec.REMITTANCE_AMOUNT := l_rcpt_amount_orig;
470 -- in receipt currency ...
471 END IF;
472
473 l_xcrv_rec.CUSTOMER_NUMBER := l_customer_num;
474 l_xcrv_rec.COMMENTS := l_comments;
475 l_xcrv_rec.ORG_ID := l_org_id;
476 l_xcrv_rec.fully_applied_flag := l_fully_applied_flag;
477 l_xcrv_rec.expired_flag := l_expired_flag;
478
479 -- Start of wraper code generated automatically by Debug code generator for Okl_Xcr_Pub.create_ext_ar_txns
480 IF (IS_DEBUG_PROCEDURE_ON) THEN
481 BEGIN
482 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRCAPB.pls call Okl_Xcr_Pub.create_ext_ar_txns ');
483 END;
484 END IF;
485
486 -- This procedure will insert the records in external transaction table OKL_EXT_CSH_RCPTS_B.
487 Okl_Xcr_Pub.create_ext_ar_txns( l_api_version
488 ,l_init_msg_list
489 ,l_return_status
490 ,l_msg_count
491 ,l_msg_data
492 ,l_xcrv_rec
493 ,l_xcav_tbl
494 ,x_xcrv_rec
495 ,x_xcav_tbl
496 );
497
498 IF (IS_DEBUG_PROCEDURE_ON) THEN
499 BEGIN
500 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRCAPB.pls call Okl_Xcr_Pub.create_ext_ar_txns ');
501 END;
502 END IF;
503 -- End of wraper code generated automatically by Debug code generator for Okl_Xcr_Pub.create_ext_ar_txns
504
505 x_return_status := l_return_status;
506 x_msg_data := l_msg_data;
507 x_msg_count := l_msg_count;
508
509 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
510 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
511 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
512 RAISE OKL_API.G_EXCEPTION_ERROR;
513 END IF;
514 */
515 -- CREATE RECEIPT IN AR ONCE EVERYTHING IS OKAY AT THIS POINT
516
517 okl_cash_receipt.CASH_RECEIPT (p_api_version => l_api_version
518 ,p_init_msg_list => l_init_msg_list
519 ,x_return_status => l_return_status
520 ,x_msg_count => l_msg_count
521 ,x_msg_data => l_msg_data
522 ,p_over_pay => l_over_pay
523 ,p_conc_proc => NULL
524 ,p_xcrv_rec => l_xcrv_rec
525 ,p_xcav_tbl => l_xcav_tbl
526 ,x_cash_receipt_id => l_cash_receipt_id
527 );
528
529 x_return_status := l_return_status;
530
531 IF x_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
532
533 -- Message Text: Error creating receipt in AR
534 x_return_status := OKC_API.G_RET_STS_ERROR;
535 OKC_API.set_message( p_app_name => G_APP_NAME,
536 p_msg_name => 'OKL_BPD_ERR_CRT_RCT_AR');
537 RAISE G_EXCEPTION_HALT_VALIDATION;
538
539 END IF;
540
541 -- UPDATE EXT HEADER WITH CASH RECEIPT ID
542 /*
543 SELECT ID INTO l_xcr_id
544 FROM okl_ext_csh_rcpts_b
545 WHERE rct_id = l_rct_id;
546
547 l_rctv_rec.id := l_xcr_id;
548 */
549 l_rctv_rec := x_rctv_rec;
550 l_rctv_rec.cash_receipt_id := l_cash_receipt_id;
551 l_rctv_rec.fully_applied_flag := l_fully_applied_flag;
552 l_rctv_rec.expired_flag := l_expired_flag;
553
554 -- l_xcrv_rec.attribute1 := NULL;
555
556 x_adv_rcpt_rec := lp_adv_rcpt_rec;
557 -- x_adv_rcpt_rec.rct_id := l_rct_id;
558 -- x_adv_rcpt_rec.xcr_id := l_xcr_id;
559 x_adv_rcpt_rec.icr_id := l_cash_receipt_id;
560
561 -- Start of wraper code generated automatically by Debug code generator for Okl_Xcr_Pub.update_ext_csh_txns
562 IF (IS_DEBUG_PROCEDURE_ON) THEN
563 BEGIN
564 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'Begin Debug OKLRCAPB.pls call Okl_Rct_Pub.update_internal_trans ');
565 END;
566 END IF;
567
568 -- Updates the record in the external transactiion table OKL_EXT_CSH_RCPTS_B.
569 /* Okl_Xcr_Pub.update_ext_csh_txns( p_api_version
570 ,p_init_msg_list
571 ,x_return_status
572 ,x_msg_count
573 ,x_msg_data
574 ,l_xcrv_rec
575 ,x_xcrv_rec
576 );
577 */
578 Okl_Rct_Pub.update_internal_trans (l_api_version
579 ,l_init_msg_list
580 ,l_return_status
581 ,l_msg_count
582 ,l_msg_data
583 ,l_rctv_rec
584 ,l_rcav_tbl
585 ,x_rctv_rec
586 ,x_rcav_tbl);
587
588 IF (IS_DEBUG_PROCEDURE_ON) THEN
589 BEGIN
590 OKL_DEBUG_PUB.LOG_DEBUG(L_LEVEL_PROCEDURE,L_MODULE,'End Debug OKLRCAPB.pls call Okl_Rct_Pub.update_internal_trans ');
591 END;
592 END IF;
593 -- End of wraper code generated automatically by Debug code generator for Okl_Xcr_Pub.update_ext_csh_txns
594
595 x_return_status := l_return_status;
596 x_msg_data := l_msg_data;
597 x_msg_count := l_msg_count;
598
599 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
600 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
601 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
602 RAISE OKL_API.G_EXCEPTION_ERROR;
603 END IF;
604 okl_api.END_ACTIVITY(x_msg_count, x_msg_data);
605 x_return_status := l_return_status;
606 x_msg_data := l_msg_data;
607 x_msg_count := l_msg_count;
608
609 EXCEPTION
610
611 WHEN G_EXCEPTION_HALT_VALIDATION THEN
612 x_return_status := OKC_API.HANDLE_EXCEPTIONS
613 (
614 l_api_name,
615 G_PKG_NAME,
616 'OKC_API.G_RET_STS_ERROR',
617 x_msg_count,
618 x_msg_data,
619 '_PVT'
620 );
621
622
623 WHEN OKC_API.G_EXCEPTION_ERROR THEN
624 x_return_status := OKC_API.HANDLE_EXCEPTIONS
625 (
626 l_api_name,
627 G_PKG_NAME,
628 'OKC_API.G_EXCEPTION_ERROR',
629 x_msg_count,
630 x_msg_data,
631 '_PVT'
632 );
633
634 WHEN OTHERS THEN
635 x_return_status := OKC_API.HANDLE_EXCEPTIONS
636 (
637 l_api_name,
638 G_PKG_NAME,
639 'OKC_API.G_OTHERS',
640 x_msg_count,
641 x_msg_data,
642 '_PVT'
643 );
644
645 END handle_advanced_manual_pay;
646 END OKL_BPD_CAP_ADV_MON_PVT;