[Home] [Help]
PACKAGE BODY: APPS.OKL_CURE_VNDR_RFND_PVT
Source
1 PACKAGE BODY OKL_CURE_VNDR_RFND_PVT AS
2 /* $Header: OKLRRFSB.pls 115.1 2003/04/25 14:28:24 jsanju noship $ */
3
4 PROCEDURE create_cure_refund(
5 p_api_version IN NUMBER,
6 p_init_msg_list IN VARCHAR2,
7 x_return_status OUT NOCOPY VARCHAR2,
8 x_msg_count OUT NOCOPY NUMBER,
9 x_msg_data OUT NOCOPY VARCHAR2,
10 p_cure_rfnd_tbl IN cure_rfnd_tbl_type,
11 x_cure_rfnd_tbl OUT NOCOPY cure_rfnd_tbl_type
12 ) IS
13
14 l_api_name VARCHAR2(30) := 'create_cure_refund';
15 l_api_version CONSTANT NUMBER := 1.0;
16 i NUMBER;
17
18 l_tot_received_amount okl_cure_refunds.received_amount%type := 0;
19 l_tot_offset_amount okl_cure_refunds.offset_amount%type := 0;
20 l_tot_disbursement_amount okl_cure_refunds.disbursement_amount%type := 0;
21
22 lp_chdv_rec OKL_cure_rfnd_hdr_pub.chdv_rec_type;
23 lx_chdv_rec OKL_cure_rfnd_hdr_pub.chdv_rec_type;
24
25 lp_crfv_tbl OKL_cure_refunds_pub.crfv_tbl_type;
26 lx_crfv_tbl OKL_cure_refunds_pub.crfv_tbl_type;
27
28 lp_crsv_tbl OKL_cure_rfnd_stage_pub.crsv_tbl_type;
29 lx_crsv_tbl OKL_cure_rfnd_stage_pub.crsv_tbl_type;
30
31 l_obj_vers_no NUMBER;
32
33 Cursor get_obj_vers_no(l_cure_refund_header_id NUMBER) is
34 select object_version_number
35 from OKL_CURE_REFUND_HEADERS_B
36 where cure_refund_header_id = l_cure_refund_header_id;
37
38 Cursor get_hdr_amounts_csr(l_cure_refund_header_id NUMBER) is
39 select sum(received_amount),sum(offset_amount), sum(disbursement_amount)
40 from OKL_CURE_REFUNDS
41 where cure_refund_header_id = l_cure_refund_header_id;
42
43 BEGIN
44
45 x_return_status := OKC_API.START_ACTIVITY(
46 p_api_name => l_api_name,
47 p_pkg_name => g_pkg_name,
48 p_init_msg_list => p_init_msg_list,
49 l_api_version => l_api_version,
50 p_api_version => p_api_version,
51 p_api_type => g_api_type,
52 x_return_status => x_return_status);
53
54 -- check if activity started successfully
55 If (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
56 raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
57 Elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
58 raise OKC_API.G_EXCEPTION_ERROR;
59 End If;
60
61 If (p_cure_rfnd_tbl.COUNT > 0) Then
62 i := p_cure_rfnd_tbl.FIRST;
63 -- refund header info
64 lp_chdv_rec.cure_refund_header_id := p_cure_rfnd_tbl(i).cure_refund_header_id;
65 -- lp_chdv_rec.object_version_number := p_cure_rfnd_tbl(i).rh_object_version_number;
66
67 LOOP
68
69 -- lines info
70 lp_crfv_tbl(i).cure_refund_id := p_cure_rfnd_tbl(i).cure_refund_line_id;
71 lp_crfv_tbl(i).cure_refund_header_id := p_cure_rfnd_tbl(i).cure_refund_header_id;
72 lp_crfv_tbl(i).cure_refund_stage_id := p_cure_rfnd_tbl(i).cure_refund_stage_id;
73 lp_crfv_tbl(i).object_version_number := p_cure_rfnd_tbl(i).rl_object_version_number;
74 lp_crfv_tbl(i).chr_id := p_cure_rfnd_tbl(i).chr_id;
75 lp_crfv_tbl(i).received_amount := p_cure_rfnd_tbl(i).received_amount;
76 lp_crfv_tbl(i).offset_contract := p_cure_rfnd_tbl(i).offset_contract_id;
77 lp_crfv_tbl(i).offset_amount := p_cure_rfnd_tbl(i).offset_amount;
78
79 lp_crfv_tbl(i).disbursement_amount := p_cure_rfnd_tbl(i).received_amount - nvl(p_cure_rfnd_tbl(i).offset_amount,0);
80
81 If (nvl(p_cure_rfnd_tbl(i).offset_amount,0) > p_cure_rfnd_tbl(i).received_amount) Then
82 x_return_status := OKC_API.g_ret_sts_error;
83 OKC_API.SET_MESSAGE( p_app_name => g_app_name
84 , p_msg_name => 'OKL_CURE_RFND_OFST_CHK'
85 );
86 raise OKC_API.G_EXCEPTION_ERROR;
87 End If;
88
89 -- refund stage info
90 lp_crsv_tbl(i).cure_refund_stage_id := p_cure_rfnd_tbl(i).cure_refund_stage_id;
91 lp_crsv_tbl(i).object_version_number := p_cure_rfnd_tbl(i).rs_object_version_number;
92 lp_crsv_tbl(i).status := 'SELECTED';
93
94 EXIT WHEN (i = p_cure_rfnd_tbl.LAST);
95 i := p_cure_rfnd_tbl.NEXT(i);
96 END LOOP;
97
98 -- refund lines info
99
100 OKL_cure_refunds_pub.insert_cure_refunds(
101 p_api_version => p_api_version,
102 p_init_msg_list => p_init_msg_list,
103 x_return_status => x_return_status,
104 x_msg_count => x_msg_count,
105 x_msg_data => x_msg_data,
106 p_crfv_tbl => lp_crfv_tbl,
107 x_crfv_tbl => lx_crfv_tbl
108 );
109
110 If (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
111 raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
112 Elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
113 raise OKC_API.G_EXCEPTION_ERROR;
114 End If;
115
116 -- refund header info
117
118 l_obj_vers_no := null;
119 open get_obj_vers_no(lp_chdv_rec.cure_refund_header_id);
120 fetch get_obj_vers_no into l_obj_vers_no;
121 close get_obj_vers_no;
122
123 if(l_obj_vers_no is not null) Then
124 lp_chdv_rec.object_version_number := l_obj_vers_no;
125 End If;
126
127 open get_hdr_amounts_csr(lp_chdv_rec.cure_refund_header_id);
128 fetch get_hdr_amounts_csr into l_tot_received_amount, l_tot_offset_amount, l_tot_disbursement_amount;
129 close get_hdr_amounts_csr;
130
131 lp_chdv_rec.received_amount := l_tot_received_amount;
132 lp_chdv_rec.offset_amount := l_tot_offset_amount;
133 lp_chdv_rec.disbursement_amount := l_tot_disbursement_amount;
134
135 OKL_cure_rfnd_hdr_pub.update_cure_rfnd_hdr(
136 p_api_version => p_api_version,
137 p_init_msg_list => p_init_msg_list,
138 x_return_status => x_return_status,
139 x_msg_count => x_msg_count,
140 x_msg_data => x_msg_data,
141 p_chdv_rec => lp_chdv_rec,
142 x_chdv_rec => lx_chdv_rec
143 );
144
145 If (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
146 raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
147 Elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
148 raise OKC_API.G_EXCEPTION_ERROR;
149 End If;
150
151 -- refund stage info
152
153 OKL_cure_rfnd_stage_pub.update_cure_refunds(
154 p_api_version => p_api_version,
155 p_init_msg_list => p_init_msg_list,
156 x_return_status => x_return_status,
157 x_msg_count => x_msg_count,
158 x_msg_data => x_msg_data,
159 p_crsv_tbl => lp_crsv_tbl,
160 x_crsv_tbl => lx_crsv_tbl
161 );
162
163 If (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
164 raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
165 Elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
166 raise OKC_API.G_EXCEPTION_ERROR;
167 End If;
168
169 End If;
170
171
172 OKC_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
173
174 EXCEPTION
175 when OKC_API.G_EXCEPTION_ERROR then
176 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
177 p_api_name => l_api_name,
178 p_pkg_name => g_pkg_name,
179 p_exc_name => 'OKC_API.G_RET_STS_ERROR',
180 x_msg_count => x_msg_count,
181 x_msg_data => x_msg_data,
182 p_api_type => g_api_type);
183
184 when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
185 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
186 p_api_name => l_api_name,
187 p_pkg_name => g_pkg_name,
188 p_exc_name => 'OKC_API.G_RET_STS_UNEXP_ERROR',
189 x_msg_count => x_msg_count,
190 x_msg_data => x_msg_data,
191 p_api_type => g_api_type);
192
193 when OTHERS then
194 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
195 p_api_name => l_api_name,
196 p_pkg_name => g_pkg_name,
197 p_exc_name => 'OTHERS',
198 x_msg_count => x_msg_count,
199 x_msg_data => x_msg_data,
200 p_api_type => g_api_type);
201
202 END;
203
204 PROCEDURE update_cure_refund(
205 p_api_version IN NUMBER,
206 p_init_msg_list IN VARCHAR2,
207 x_return_status OUT NOCOPY VARCHAR2,
208 x_msg_count OUT NOCOPY NUMBER,
209 x_msg_data OUT NOCOPY VARCHAR2,
210 p_cure_rfnd_tbl IN cure_rfnd_tbl_type,
211 x_cure_rfnd_tbl OUT NOCOPY cure_rfnd_tbl_type
212 ) IS
213
214 l_api_name VARCHAR2(30) := 'update_cure_refund';
215 l_api_version CONSTANT NUMBER := 1.0;
216 i NUMBER;
217
218 lp_chdv_rec OKL_cure_rfnd_hdr_pub.chdv_rec_type;
219 lx_chdv_rec OKL_cure_rfnd_hdr_pub.chdv_rec_type;
220
221 lp_crfv_tbl OKL_cure_refunds_pub.crfv_tbl_type;
222 lx_crfv_tbl OKL_cure_refunds_pub.crfv_tbl_type;
223
224 lp_crsv_tbl OKL_cure_rfnd_stage_pub.crsv_tbl_type;
225 lx_crsv_tbl OKL_cure_rfnd_stage_pub.crsv_tbl_type;
226
227 l_obj_vers_no NUMBER;
228
229 l_tot_received_amount okl_cure_refunds.received_amount%type := 0;
230 l_tot_offset_amount okl_cure_refunds.offset_amount%type := 0;
231 l_tot_disbursement_amount okl_cure_refunds.disbursement_amount%type := 0;
232
233 Cursor get_obj_vers_no(l_cure_refund_header_id NUMBER) is
234 select object_version_number
235 from OKL_CURE_REFUND_HEADERS_B
236 where cure_refund_header_id = l_cure_refund_header_id;
237
238 Cursor get_hdr_amounts_csr(l_cure_refund_header_id NUMBER) is
239 select sum(received_amount),sum(offset_amount), sum(disbursement_amount)
240 from OKL_CURE_REFUNDS
241 where cure_refund_header_id = l_cure_refund_header_id;
242
243 BEGIN
244
245 x_return_status := OKC_API.START_ACTIVITY(
246 p_api_name => l_api_name,
247 p_pkg_name => g_pkg_name,
248 p_init_msg_list => p_init_msg_list,
249 l_api_version => l_api_version,
250 p_api_version => p_api_version,
251 p_api_type => g_api_type,
252 x_return_status => x_return_status);
253
254 -- check if activity started successfully
255 If (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
256 raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
257 Elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
258 raise OKC_API.G_EXCEPTION_ERROR;
259 End If;
260
261
262 If (p_cure_rfnd_tbl.COUNT > 0) Then
263 i := p_cure_rfnd_tbl.FIRST;
264 -- refund header info
265 lp_chdv_rec.cure_refund_header_id := p_cure_rfnd_tbl(i).cure_refund_header_id;
266 -- lp_chdv_rec.object_version_number := p_cure_rfnd_tbl(i).rh_object_version_number;
267
268 LOOP
269
270 -- lines info
271 lp_crfv_tbl(i).cure_refund_id := p_cure_rfnd_tbl(i).cure_refund_line_id;
272 lp_crfv_tbl(i).cure_refund_header_id := p_cure_rfnd_tbl(i).cure_refund_header_id;
273 lp_crfv_tbl(i).cure_refund_stage_id := p_cure_rfnd_tbl(i).cure_refund_stage_id;
274 lp_crfv_tbl(i).object_version_number := p_cure_rfnd_tbl(i).rl_object_version_number;
275 lp_crfv_tbl(i).chr_id := p_cure_rfnd_tbl(i).chr_id;
276 lp_crfv_tbl(i).received_amount := p_cure_rfnd_tbl(i).received_amount;
277 lp_crfv_tbl(i).offset_contract := p_cure_rfnd_tbl(i).offset_contract_id;
278 lp_crfv_tbl(i).offset_amount := p_cure_rfnd_tbl(i).offset_amount;
279
280 lp_crfv_tbl(i).disbursement_amount := p_cure_rfnd_tbl(i).received_amount - nvl(p_cure_rfnd_tbl(i).offset_amount,0);
281
282 If (nvl(p_cure_rfnd_tbl(i).offset_amount,0) > p_cure_rfnd_tbl(i).received_amount) Then
283 x_return_status := OKC_API.g_ret_sts_error;
284 OKC_API.SET_MESSAGE( p_app_name => g_app_name
285 , p_msg_name => 'OKL_CURE_RFND_OFST_CHK'
286 );
287 raise OKC_API.G_EXCEPTION_ERROR;
288 End If;
289
290 -- refund stage info
291 lp_crsv_tbl(i).cure_refund_stage_id := p_cure_rfnd_tbl(i).cure_refund_stage_id;
292 lp_crsv_tbl(i).object_version_number := p_cure_rfnd_tbl(i).rs_object_version_number;
293 lp_crsv_tbl(i).status := 'SELECTED';
294
295 EXIT WHEN (i = p_cure_rfnd_tbl.LAST);
296 i := p_cure_rfnd_tbl.NEXT(i);
297 END LOOP;
298
299 -- refund lines info
300
301 OKL_cure_refunds_pub.update_cure_refunds(
302 p_api_version => p_api_version,
303 p_init_msg_list => p_init_msg_list,
304 x_return_status => x_return_status,
305 x_msg_count => x_msg_count,
306 x_msg_data => x_msg_data,
307 p_crfv_tbl => lp_crfv_tbl,
308 x_crfv_tbl => lx_crfv_tbl
309 );
310
311 If (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
312 raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
313 Elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
314 raise OKC_API.G_EXCEPTION_ERROR;
315 End If;
316
317 -- refund header info
318
319 l_obj_vers_no := null;
320 open get_obj_vers_no(lp_chdv_rec.cure_refund_header_id);
321 fetch get_obj_vers_no into l_obj_vers_no;
322 close get_obj_vers_no;
323
324 if(l_obj_vers_no is not null) Then
325 lp_chdv_rec.object_version_number := l_obj_vers_no;
326 End If;
327
328 open get_hdr_amounts_csr(lp_chdv_rec.cure_refund_header_id);
329 fetch get_hdr_amounts_csr into l_tot_received_amount, l_tot_offset_amount, l_tot_disbursement_amount;
330 close get_hdr_amounts_csr;
331
332 lp_chdv_rec.received_amount := l_tot_received_amount;
333 lp_chdv_rec.offset_amount := l_tot_offset_amount;
334 lp_chdv_rec.disbursement_amount := l_tot_disbursement_amount;
335
336 OKL_cure_rfnd_hdr_pub.update_cure_rfnd_hdr(
337 p_api_version => p_api_version,
338 p_init_msg_list => p_init_msg_list,
339 x_return_status => x_return_status,
340 x_msg_count => x_msg_count,
341 x_msg_data => x_msg_data,
342 p_chdv_rec => lp_chdv_rec,
343 x_chdv_rec => lx_chdv_rec
344 );
345
346 If (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
347 raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
348 Elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
349 raise OKC_API.G_EXCEPTION_ERROR;
350 End If;
351
352 -- refund stage info
353
354 OKL_cure_rfnd_stage_pub.update_cure_refunds(
355 p_api_version => p_api_version,
356 p_init_msg_list => p_init_msg_list,
357 x_return_status => x_return_status,
358 x_msg_count => x_msg_count,
359 x_msg_data => x_msg_data,
360 p_crsv_tbl => lp_crsv_tbl,
361 x_crsv_tbl => lx_crsv_tbl
362 );
363
364 If (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
365 raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
366 Elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
367 raise OKC_API.G_EXCEPTION_ERROR;
368 End If;
369
370 End If;
371
372 OKC_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
373
374 EXCEPTION
375 when OKC_API.G_EXCEPTION_ERROR then
376 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
377 p_api_name => l_api_name,
378 p_pkg_name => g_pkg_name,
379 p_exc_name => 'OKC_API.G_RET_STS_ERROR',
380 x_msg_count => x_msg_count,
381 x_msg_data => x_msg_data,
382 p_api_type => g_api_type);
383
384 when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
385 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
386 p_api_name => l_api_name,
387 p_pkg_name => g_pkg_name,
388 p_exc_name => 'OKC_API.G_RET_STS_UNEXP_ERROR',
389 x_msg_count => x_msg_count,
390 x_msg_data => x_msg_data,
391 p_api_type => g_api_type);
392
393 when OTHERS then
394 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
395 p_api_name => l_api_name,
396 p_pkg_name => g_pkg_name,
397 p_exc_name => 'OTHERS',
398 x_msg_count => x_msg_count,
399 x_msg_data => x_msg_data,
400 p_api_type => g_api_type);
401
402 END;
403
404 PROCEDURE delete_cure_refund(
405 p_api_version IN NUMBER,
406 p_init_msg_list IN VARCHAR2 ,
407 x_return_status OUT NOCOPY VARCHAR2,
408 x_msg_count OUT NOCOPY NUMBER,
409 x_msg_data OUT NOCOPY VARCHAR2,
410 p_cure_rfnd_tbl IN cure_rfnd_tbl_type
411 ) IS
412
413 l_api_name VARCHAR2(30) := 'delete_cure_refund';
414 l_api_version CONSTANT NUMBER := 1.0;
415 i NUMBER;
416
417 l_received_amount okl_cure_refunds.received_amount%type := 0;
418 l_offset_amount okl_cure_refunds.offset_amount%type := 0;
419
420 l_tot_received_amount okl_cure_refunds.received_amount%type := 0;
421 l_tot_offset_amount okl_cure_refunds.offset_amount%type := 0;
422
423 lp_chdv_rec OKL_cure_rfnd_hdr_pub.chdv_rec_type;
424 lx_chdv_rec OKL_cure_rfnd_hdr_pub.chdv_rec_type;
425
426 lp_crfv_tbl OKL_cure_refunds_pub.crfv_tbl_type;
427 lx_crfv_tbl OKL_cure_refunds_pub.crfv_tbl_type;
428
429 lp_crsv_tbl OKL_cure_rfnd_stage_pub.crsv_tbl_type;
430 lx_crsv_tbl OKL_cure_rfnd_stage_pub.crsv_tbl_type;
431
432 l_obj_vers_no NUMBER;
433
434 Cursor get_obj_vers_no(l_cure_refund_header_id NUMBER) is
435 select object_version_number
436 from OKL_CURE_REFUND_HEADERS_B
437 where cure_refund_header_id = l_cure_refund_header_id;
438
439 Cursor get_hdr_amounts_csr(l_cure_refund_header_id NUMBER) is
440 select sum(received_amount),sum(offset_amount)
441 from OKL_CURE_REFUNDS
442 where cure_refund_header_id = l_cure_refund_header_id;
443
444 BEGIN
445
446 x_return_status := OKC_API.START_ACTIVITY(
447 p_api_name => l_api_name,
448 p_pkg_name => g_pkg_name,
449 p_init_msg_list => p_init_msg_list,
450 l_api_version => l_api_version,
451 p_api_version => p_api_version,
452 p_api_type => g_api_type,
453 x_return_status => x_return_status);
454
455 -- check if activity started successfully
456 If (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
457 raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
458 Elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
459 raise OKC_API.G_EXCEPTION_ERROR;
460 End If;
461
462 If (p_cure_rfnd_tbl.COUNT > 0) Then
463 i := p_cure_rfnd_tbl.FIRST;
464 -- refund header info
465 lp_chdv_rec.cure_refund_header_id := p_cure_rfnd_tbl(i).cure_refund_header_id;
466 -- lp_chdv_rec.object_version_number := p_cure_rfnd_tbl(i).rh_object_version_number;
467
468 LOOP
469
470 -- lines info
471 lp_crfv_tbl(i).cure_refund_id := p_cure_rfnd_tbl(i).cure_refund_line_id;
472 lp_crfv_tbl(i).cure_refund_header_id := p_cure_rfnd_tbl(i).cure_refund_header_id;
473 lp_crfv_tbl(i).cure_refund_stage_id := p_cure_rfnd_tbl(i).cure_refund_stage_id;
474 lp_crfv_tbl(i).object_version_number := p_cure_rfnd_tbl(i).rl_object_version_number;
475 lp_crfv_tbl(i).chr_id := p_cure_rfnd_tbl(i).chr_id;
476 lp_crfv_tbl(i).received_amount := p_cure_rfnd_tbl(i).received_amount;
477 lp_crfv_tbl(i).offset_contract := p_cure_rfnd_tbl(i).offset_contract_id;
478 lp_crfv_tbl(i).offset_amount := p_cure_rfnd_tbl(i).offset_amount;
479
480 lp_crsv_tbl(i).cure_refund_stage_id := p_cure_rfnd_tbl(i).cure_refund_stage_id;
481 lp_crsv_tbl(i).object_version_number := p_cure_rfnd_tbl(i).rs_object_version_number;
482 lp_crsv_tbl(i).status := 'ENTERED';
483
484 EXIT WHEN (i = p_cure_rfnd_tbl.LAST);
485 i := p_cure_rfnd_tbl.NEXT(i);
486
487 END LOOP;
488
489 -- refund lines info
490
491 OKL_cure_refunds_pub.delete_cure_refunds(
492 p_api_version => p_api_version,
493 p_init_msg_list => p_init_msg_list,
494 x_return_status => x_return_status,
495 x_msg_count => x_msg_count,
496 x_msg_data => x_msg_data,
497 p_crfv_tbl => lp_crfv_tbl
498 );
499
500 If (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
501 raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
502 Elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
503 raise OKC_API.G_EXCEPTION_ERROR;
504 End If;
505
506 -- refund header info
507
508 l_obj_vers_no := null;
509 open get_obj_vers_no(lp_chdv_rec.cure_refund_header_id);
510 fetch get_obj_vers_no into l_obj_vers_no;
511 close get_obj_vers_no;
512
513 if(l_obj_vers_no is not null) Then
514 lp_chdv_rec.object_version_number := l_obj_vers_no;
515 End If;
516
517 open get_hdr_amounts_csr(lp_chdv_rec.cure_refund_header_id);
518 fetch get_hdr_amounts_csr into l_tot_received_amount, l_tot_offset_amount;
519 close get_hdr_amounts_csr;
520
521 lp_chdv_rec.received_amount := l_tot_received_amount;
522 lp_chdv_rec.offset_amount := l_tot_offset_amount;
523
524 OKL_cure_rfnd_hdr_pub.update_cure_rfnd_hdr(
525 p_api_version => p_api_version,
526 p_init_msg_list => p_init_msg_list,
527 x_return_status => x_return_status,
528 x_msg_count => x_msg_count,
529 x_msg_data => x_msg_data,
530 p_chdv_rec => lp_chdv_rec,
531 x_chdv_rec => lx_chdv_rec
532 );
533
534 If (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
535 raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
536 Elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
537 raise OKC_API.G_EXCEPTION_ERROR;
538 End If;
539
540 -- refund stage info
541
542 OKL_cure_rfnd_stage_pub.update_cure_refunds(
543 p_api_version => p_api_version,
544 p_init_msg_list => p_init_msg_list,
545 x_return_status => x_return_status,
546 x_msg_count => x_msg_count,
547 x_msg_data => x_msg_data,
548 p_crsv_tbl => lp_crsv_tbl,
549 x_crsv_tbl => lx_crsv_tbl
550 );
551
552 If (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
553 raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
554 Elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
555 raise OKC_API.G_EXCEPTION_ERROR;
556 End If;
557
558 End If;
559
560
561 OKC_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
562
563 EXCEPTION
564 when OKC_API.G_EXCEPTION_ERROR then
565 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
566 p_api_name => l_api_name,
567 p_pkg_name => g_pkg_name,
568 p_exc_name => 'OKC_API.G_RET_STS_ERROR',
569 x_msg_count => x_msg_count,
570 x_msg_data => x_msg_data,
571 p_api_type => g_api_type);
572
573 when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
574 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
575 p_api_name => l_api_name,
576 p_pkg_name => g_pkg_name,
577 p_exc_name => 'OKC_API.G_RET_STS_UNEXP_ERROR',
578 x_msg_count => x_msg_count,
579 x_msg_data => x_msg_data,
580 p_api_type => g_api_type);
581
582 when OTHERS then
583 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
584 p_api_name => l_api_name,
585 p_pkg_name => g_pkg_name,
586 p_exc_name => 'OTHERS',
587 x_msg_count => x_msg_count,
588 x_msg_data => x_msg_data,
589 p_api_type => g_api_type);
590
591 END;
592
593 END OKL_CURE_VNDR_RFND_PVT;