DBA Data[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;