DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_SUBSIDY_PVT

Source


1 PACKAGE BODY OKL_SUBSIDY_PVT  AS
2 /* $Header: OKLCSUBB.pls 120.3 2005/09/23 12:13:22 varangan noship $ */
3 
4 /*
5  * sjalasut: jan 24, 04 added constants used in raising business event. BEGIN
6  */
7 G_WF_EVT_SUBSIDY_ADDED CONSTANT VARCHAR2(70):= 'oracle.apps.okl.subsidy_pool.subsidy_associated';
8 
9 G_WF_ITM_SUBSIDY_ID  CONSTANT VARCHAR2(30)       := 'SUBSIDY_ID';
10 G_WF_ITM_SUB_POOL_ID  CONSTANT VARCHAR2(30)       := 'SUBSIDY_POOL_ID';
11 /*
12  * sjalasut: jan 24, 04 added constants used in raising business event. END
13  */
14 
15 -------------------------------------------------------------------------------
16 -- PROCEDURE raise_business_event
17 -------------------------------------------------------------------------------
18 -- Start of comments
19 --
20 -- Procedure Name  : raise_business_event
21 -- Description     : This procedure is a wrapper that raises a business event
22 --                 : when ever a subsidy record is created/updated with an associated
23 --                   subsidy pool
24 -- Business Rules  : the event is raised whenever a subsidy is first associated with
25 --                   a pool, and if a subsidy record is modified to change the
26 --                   pool value.
27 -- Parameters      :
28 -- Version         : 1.0
29 -- History         : 25-JAN-2004 SJALASUT created
30 -- End of comments
31 
32 PROCEDURE raise_business_event(p_api_version IN NUMBER,
33                                p_init_msg_list IN VARCHAR2,
34                                x_return_status OUT NOCOPY VARCHAR2,
35                                x_msg_count OUT NOCOPY NUMBER,
36                                x_msg_data OUT NOCOPY VARCHAR2,
37                                p_event_name IN VARCHAR2,
38                                p_event_param_list IN WF_PARAMETER_LIST_T
39                                ) IS
40   l_event_param_list WF_PARAMETER_LIST_T := p_event_param_list;
41 BEGIN
42   x_return_status := OKL_API.G_RET_STS_SUCCESS;
43 
44   OKL_WF_PVT.raise_event(p_api_version    => p_api_version,
45                          p_init_msg_list  => p_init_msg_list,
46                          x_return_status  => x_return_status,
47                          x_msg_count      => x_msg_count,
48                          x_msg_data       => x_msg_data,
49                          p_event_name     => p_event_name,
50                          p_parameters     => l_event_param_list);
51 EXCEPTION
52   WHEN OTHERS THEN
53   x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
54   RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
55 END raise_business_event;
56 
57 PROCEDURE create_subsidy(
58     p_api_version                  IN  NUMBER,
59     p_init_msg_list                IN  VARCHAR2,
60     x_return_status                OUT NOCOPY VARCHAR2,
61     x_msg_count                    OUT NOCOPY NUMBER,
62     x_msg_data                     OUT NOCOPY VARCHAR2,
63     p_subv_rec                     IN  subv_rec_type,
64     x_subv_rec                     OUT NOCOPY subv_rec_type) IS
65 
66     l_api_name		    CONSTANT VARCHAR2(30) := 'CREATE_SUBSIDY';
67     l_api_version		CONSTANT NUMBER	      := 1.0;
68     l_return_status	    VARCHAR2(1)		      := OKL_API.G_RET_STS_SUCCESS;
69 
70     l_subv_rec          subv_rec_type;
71 
72     l_parameter_list WF_PARAMETER_LIST_T;
73 Begin
74     -- call START_ACTIVITY to create savepoint, check compatibility
75     -- and initialize message list
76 
77     l_return_status := OKL_API.START_ACTIVITY(
78       p_api_name      => l_api_name,
79       p_pkg_name      => g_pkg_name,
80       p_init_msg_list => p_init_msg_list,
81       l_api_version   => l_api_version,
82       p_api_version   => p_api_version,
83       p_api_type      => g_api_type,
84       x_return_status => x_return_status);
85 
86     -- check if activity started successfully
87     If (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
88        raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
89     Elsif (l_return_status = OKL_API.G_RET_STS_ERROR) then
90        raise OKL_API.G_EXCEPTION_ERROR;
91     End If;
92 
93     l_subv_rec := p_subv_rec;
94 
95     okl_sub_pvt.insert_row(
96       p_api_version	    => p_api_version,
97       p_init_msg_list	=> p_init_msg_list,
98       x_return_status 	=> x_return_status,
99       x_msg_count     	=> x_msg_count,
100       x_msg_data      	=> x_msg_data,
101       p_subv_rec		    => l_subv_rec,
102       x_subv_rec		    => x_subv_rec);
103 
104     -- check return status
105     If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
106 	     raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
107     Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
108 	     raise OKL_API.G_EXCEPTION_ERROR;
109     End If;
110 
111     /*
112      * sjalasut: jan 24, 05 added code to raise business events. BEGIN
113      */
114     IF(l_subv_rec.subsidy_pool_id IS NOT NULL AND l_subv_rec.subsidy_pool_id <> OKL_API.G_MISS_NUM)THEN
115       -- this is the case of associating the subsidy to the pool while creating the subsidy record.
116       -- need to raise the business event in this case. since the event is create, no explicit
117       -- validations are required here. if the control reaches here, then all validations are passed
118 
119       -- add subsidy pool id and subsidy pool to the parameter list
120       wf_event.AddParameterToList(G_WF_ITM_SUBSIDY_ID, x_subv_rec.id, l_parameter_list);
121       wf_event.AddParameterToList(G_WF_ITM_SUB_POOL_ID, l_subv_rec.subsidy_pool_id, l_parameter_list);
122       raise_business_event(p_api_version     => p_api_version,
123                            p_init_msg_list   => p_init_msg_list,
124                            x_return_status   => x_return_status,
125                            x_msg_count       => x_msg_count,
126                            x_msg_data        => x_msg_data,
127                            p_event_name      => G_WF_EVT_SUBSIDY_ADDED,
128                            p_event_param_list => l_parameter_list
129                           );
130 
131     END IF;
132     /*
133      * sjalasut: jan 24, 05 added code to raise business events. END
134      */
135 
136     OKL_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
137 				 x_msg_data		=> x_msg_data);
138   EXCEPTION
139     when OKL_API.G_EXCEPTION_ERROR then
140       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
141 			p_api_name  => l_api_name,
142 			p_pkg_name  => g_pkg_name,
143 			p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
144 			x_msg_count => x_msg_count,
145 			x_msg_data  => x_msg_data,
146 			p_api_type  => g_api_type);
147 
148     when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
149       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
150 			p_api_name  => l_api_name,
151 			p_pkg_name  => g_pkg_name,
152 			p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
153 			x_msg_count => x_msg_count,
154 			x_msg_data  => x_msg_data,
155 			p_api_type  => g_api_type);
156 
157     when OTHERS then
158       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
159 			p_api_name  => l_api_name,
160 			p_pkg_name  => g_pkg_name,
161 			p_exc_name  => 'OTHERS',
162 			x_msg_count => x_msg_count,
163 			x_msg_data  => x_msg_data,
164 			p_api_type  => g_api_type);
165 END create_subsidy;
166 
167 
168 
169 PROCEDURE create_subsidy(
170     p_api_version                  IN  NUMBER,
171     p_init_msg_list                IN  VARCHAR2,
172     x_return_status                OUT NOCOPY VARCHAR2,
173     x_msg_count                    OUT NOCOPY NUMBER,
174     x_msg_data                     OUT NOCOPY VARCHAR2,
175     p_subv_tbl                     IN  subv_tbl_type,
176     x_subv_tbl                     OUT NOCOPY subv_tbl_type) IS
177 
178     l_api_name		    CONSTANT VARCHAR2(30) := 'CREATE_SUBSIDY';
179     l_api_version		CONSTANT NUMBER	      := 1.0;
180     l_return_status	    VARCHAR2(1)		      := OKL_API.G_RET_STS_SUCCESS;
181 
182     l_subv_tbl          subv_tbl_type;
183 Begin
184     -- call START_ACTIVITY to create savepoint, check compatibility
185     -- and initialize message list
186 
187     l_return_status := OKL_API.START_ACTIVITY(
188 			p_api_name      => l_api_name,
189 			p_pkg_name      => g_pkg_name,
190 			p_init_msg_list => p_init_msg_list,
191 			l_api_version   => l_api_version,
192 			p_api_version   => p_api_version,
193 			p_api_type      => g_api_type,
194 			x_return_status => x_return_status);
195 
196     -- check if activity started successfully
197     If (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
198        raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
199     Elsif (l_return_status = OKL_API.G_RET_STS_ERROR) then
200        raise OKL_API.G_EXCEPTION_ERROR;
201     End If;
202 
203     l_subv_tbl := p_subv_tbl;
204 
205     okl_sub_pvt.insert_row(
206 	 p_api_version	    => p_api_version,
207 	 p_init_msg_list	=> p_init_msg_list,
208 	 x_return_status 	=> x_return_status,
209 	 x_msg_count     	=> x_msg_count,
210 	 x_msg_data      	=> x_msg_data,
211 	 p_subv_tbl		    => l_subv_tbl,
212 	 x_subv_tbl		    => x_subv_tbl);
213 
214     -- check return status
215     If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
216 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
217     Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
218 	  raise OKL_API.G_EXCEPTION_ERROR;
219     End If;
220 
221     OKL_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
222 				 x_msg_data		=> x_msg_data);
223   EXCEPTION
224     when OKL_API.G_EXCEPTION_ERROR then
225       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
226 			p_api_name  => l_api_name,
227 			p_pkg_name  => g_pkg_name,
228 			p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
229 			x_msg_count => x_msg_count,
230 			x_msg_data  => x_msg_data,
231 			p_api_type  => g_api_type);
232 
233     when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
234       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
235 			p_api_name  => l_api_name,
236 			p_pkg_name  => g_pkg_name,
237 			p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
238 			x_msg_count => x_msg_count,
239 			x_msg_data  => x_msg_data,
240 			p_api_type  => g_api_type);
241 
242     when OTHERS then
243       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
244 			p_api_name  => l_api_name,
245 			p_pkg_name  => g_pkg_name,
246 			p_exc_name  => 'OTHERS',
247 			x_msg_count => x_msg_count,
248 			x_msg_data  => x_msg_data,
249 			p_api_type  => g_api_type);
250 END create_subsidy;
251 
252 
253 PROCEDURE update_subsidy(
254     p_api_version                  IN  NUMBER,
255     p_init_msg_list                IN  VARCHAR2,
256     x_return_status                OUT NOCOPY VARCHAR2,
257     x_msg_count                    OUT NOCOPY NUMBER,
258     x_msg_data                     OUT NOCOPY VARCHAR2,
259     p_subv_rec                     IN  subv_rec_type,
260     x_subv_rec                     OUT NOCOPY subv_rec_type) IS
261 
262     l_api_name		    CONSTANT VARCHAR2(30) := 'UPDATE_SUBSIDY';
263     l_api_version		CONSTANT NUMBER	      := 1.0;
264     l_return_status	    VARCHAR2(1)		      := OKL_API.G_RET_STS_SUCCESS;
265 
266     l_subv_rec          subv_rec_type;
267 
268  /*
269   *  sjalasut 24, jan 05: added cursor to get the subsidy pool id value
270   *  for subsidy pools enhancement
271   */
272 
273   CURSOR c_get_pool_id_csr IS
274    SELECT subsidy_pool_id
275      FROM okl_subsidies_b
276     WHERE id = p_subv_rec.id;
277   lv_subsidy_pool_id okl_subsidies_b.subsidy_pool_id%TYPE;
278   l_parameter_list WF_PARAMETER_LIST_T;
279 BEGIN
280   -- call START_ACTIVITY to create savepoint, check compatibility
281   -- and initialize message list
282 
283   l_return_status := OKL_API.START_ACTIVITY(
284     p_api_name      => l_api_name,
285     p_pkg_name      => g_pkg_name,
286     p_init_msg_list => p_init_msg_list,
287     l_api_version   => l_api_version,
288     p_api_version   => p_api_version,
289     p_api_type      => g_api_type,
290     x_return_status => x_return_status);
291 
292   -- check if activity started successfully
293   IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
294     raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
295   ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
296     raise OKL_API.G_EXCEPTION_ERROR;
297   END IF;
298 
299   OPEN c_get_pool_id_csr;
300   FETCH c_get_pool_id_csr INTO lv_subsidy_pool_id;
301   CLOSE c_get_pool_id_csr;
302 
303   l_subv_rec := p_subv_rec;
304 
305   okl_sub_pvt.update_row(
306     p_api_version	    => p_api_version,
307     p_init_msg_list	=> p_init_msg_list,
308     x_return_status 	=> x_return_status,
309     x_msg_count     	=> x_msg_count,
310     x_msg_data      	=> x_msg_data,
311     p_subv_rec		    => l_subv_rec,
312     x_subv_rec		    => x_subv_rec);
313 
314     -- check return status
315   IF x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
316     RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
317   ELSIF x_return_status = OKL_API.G_RET_STS_ERROR THEN
318     RAISE OKL_API.G_EXCEPTION_ERROR;
319   END IF;
320 
321  /*
322   * sjalasut: jan 24, 05 added code to raise business events. BEGIN
323   */
324   -- case when there was no subsidy pool associated earlier on this subsidy and also case when the subsidy pool has been
325   -- changed on the subsidy update page, for the case of dissociating the subsidy pool from the subsidy, no event is raised
326   IF((lv_subsidy_pool_id IS NULL AND l_subv_rec.subsidy_pool_id <> OKL_API.G_MISS_NUM AND l_subv_rec.subsidy_pool_id IS NOT NULL) OR
327      (lv_subsidy_pool_id IS NOT NULL AND l_subv_rec.subsidy_pool_id IS NOT NULL AND l_subv_rec.subsidy_pool_id <> OKL_API.G_MISS_NUM AND
328       lv_subsidy_pool_id <> l_subv_rec.subsidy_pool_id))THEN
329     -- add subsidy pool id and subsidy pool to the parameter list
330     wf_event.AddParameterToList(G_WF_ITM_SUBSIDY_ID, l_subv_rec.id, l_parameter_list);
331     wf_event.AddParameterToList(G_WF_ITM_SUB_POOL_ID, l_subv_rec.subsidy_pool_id, l_parameter_list);
332     raise_business_event(p_api_version     => p_api_version,
333                          p_init_msg_list   => p_init_msg_list,
334                          x_return_status   => x_return_status,
335                          x_msg_count       => x_msg_count,
336                          x_msg_data        => x_msg_data,
337                          p_event_name      => G_WF_EVT_SUBSIDY_ADDED,
338                          p_event_param_list => l_parameter_list
339                         );
340   END IF;
341  /*
342   * sjalasut: jan 24, 05 added code to raise business events. END
343   */
344 
345 
346   OKL_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
347 				 x_msg_data		=> x_msg_data);
348 EXCEPTION
349     when OKL_API.G_EXCEPTION_ERROR then
350       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
351 			p_api_name  => l_api_name,
352 			p_pkg_name  => g_pkg_name,
353 			p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
354 			x_msg_count => x_msg_count,
355 			x_msg_data  => x_msg_data,
356 			p_api_type  => g_api_type);
357 
358     when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
359       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
360 			p_api_name  => l_api_name,
361 			p_pkg_name  => g_pkg_name,
362 			p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
363 			x_msg_count => x_msg_count,
364 			x_msg_data  => x_msg_data,
365 			p_api_type  => g_api_type);
366 
367     when OTHERS then
368       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
369 			p_api_name  => l_api_name,
370 			p_pkg_name  => g_pkg_name,
371 			p_exc_name  => 'OTHERS',
372 			x_msg_count => x_msg_count,
373 			x_msg_data  => x_msg_data,
374 			p_api_type  => g_api_type);
375 END update_subsidy;
376 
377 PROCEDURE update_subsidy(
378     p_api_version                  IN  NUMBER,
379     p_init_msg_list                IN  VARCHAR2,
380     x_return_status                OUT NOCOPY VARCHAR2,
381     x_msg_count                    OUT NOCOPY NUMBER,
382     x_msg_data                     OUT NOCOPY VARCHAR2,
383     p_subv_tbl                     IN  subv_tbl_type,
384     x_subv_tbl                     OUT NOCOPY subv_tbl_type) IS
385 
386     l_api_name		    CONSTANT VARCHAR2(30) := 'UPDATE_SUBSIDY';
387     l_api_version		CONSTANT NUMBER	      := 1.0;
388     l_return_status	    VARCHAR2(1)		      := OKL_API.G_RET_STS_SUCCESS;
389 
390     l_subv_tbl          subv_tbl_type;
391 Begin
392     -- call START_ACTIVITY to create savepoint, check compatibility
393     -- and initialize message list
394 
395     l_return_status := OKL_API.START_ACTIVITY(
396 			p_api_name      => l_api_name,
397 			p_pkg_name      => g_pkg_name,
398 			p_init_msg_list => p_init_msg_list,
399 			l_api_version   => l_api_version,
400 			p_api_version   => p_api_version,
401 			p_api_type      => g_api_type,
402 			x_return_status => x_return_status);
403 
404     -- check if activity started successfully
405     If (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
406        raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
407     Elsif (l_return_status = OKL_API.G_RET_STS_ERROR) then
408        raise OKL_API.G_EXCEPTION_ERROR;
409     End If;
410 
411     l_subv_tbl := p_subv_tbl;
412 
413     okl_sub_pvt.update_row(
414 	 p_api_version	    => p_api_version,
415 	 p_init_msg_list	=> p_init_msg_list,
416 	 x_return_status 	=> x_return_status,
417 	 x_msg_count     	=> x_msg_count,
418 	 x_msg_data      	=> x_msg_data,
419 	 p_subv_tbl		    => l_subv_tbl,
420 	 x_subv_tbl		    => x_subv_tbl);
421 
422     -- check return status
423     If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
424 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
425     Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
426 	  raise OKL_API.G_EXCEPTION_ERROR;
427     End If;
428 
429     OKL_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
430 				 x_msg_data		=> x_msg_data);
431   EXCEPTION
432     when OKL_API.G_EXCEPTION_ERROR then
433       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
434 			p_api_name  => l_api_name,
435 			p_pkg_name  => g_pkg_name,
436 			p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
437 			x_msg_count => x_msg_count,
438 			x_msg_data  => x_msg_data,
439 			p_api_type  => g_api_type);
440 
441     when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
442       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
443 			p_api_name  => l_api_name,
444 			p_pkg_name  => g_pkg_name,
445 			p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
446 			x_msg_count => x_msg_count,
447 			x_msg_data  => x_msg_data,
448 			p_api_type  => g_api_type);
449 
450     when OTHERS then
451       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
452 			p_api_name  => l_api_name,
453 			p_pkg_name  => g_pkg_name,
454 			p_exc_name  => 'OTHERS',
455 			x_msg_count => x_msg_count,
456 			x_msg_data  => x_msg_data,
457 			p_api_type  => g_api_type);
458 END update_subsidy;
459 
460 
461 PROCEDURE delete_subsidy(
462     p_api_version                  IN  NUMBER,
463     p_init_msg_list                IN  VARCHAR2,
464     x_return_status                OUT NOCOPY VARCHAR2,
465     x_msg_count                    OUT NOCOPY NUMBER,
466     x_msg_data                     OUT NOCOPY VARCHAR2,
467     p_subv_rec                     IN  subv_rec_type) IS
468 
469     l_api_name		    CONSTANT VARCHAR2(30) := 'DELETE_SUBSIDY';
470     l_api_version		CONSTANT NUMBER	      := 1.0;
471     l_return_status	    VARCHAR2(1)		      := OKL_API.G_RET_STS_SUCCESS;
472 
473     l_subv_rec          subv_rec_type;
474 Begin
475     -- call START_ACTIVITY to create savepoint, check compatibility
476     -- and initialize message list
477 
478     l_return_status := OKL_API.START_ACTIVITY(
479 			p_api_name      => l_api_name,
480 			p_pkg_name      => g_pkg_name,
481 			p_init_msg_list => p_init_msg_list,
482 			l_api_version   => l_api_version,
483 			p_api_version   => p_api_version,
484 			p_api_type      => g_api_type,
485 			x_return_status => x_return_status);
486 
487     -- check if activity started successfully
488     If (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
489        raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
490     Elsif (l_return_status = OKL_API.G_RET_STS_ERROR) then
491        raise OKL_API.G_EXCEPTION_ERROR;
492     End If;
493 
494     l_subv_rec := p_subv_rec;
495 
496     okl_sub_pvt.delete_row(
497 	 p_api_version	    => p_api_version,
498 	 p_init_msg_list	=> p_init_msg_list,
499 	 x_return_status 	=> x_return_status,
500 	 x_msg_count     	=> x_msg_count,
501 	 x_msg_data      	=> x_msg_data,
502 	 p_subv_rec		    => l_subv_rec);
503 
507     Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
504     -- check return status
505     If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
506 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
508 	  raise OKL_API.G_EXCEPTION_ERROR;
509     End If;
510 
511     OKL_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
512 				 x_msg_data		=> x_msg_data);
513   EXCEPTION
514     when OKL_API.G_EXCEPTION_ERROR then
515       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
516 			p_api_name  => l_api_name,
517 			p_pkg_name  => g_pkg_name,
518 			p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
519 			x_msg_count => x_msg_count,
520 			x_msg_data  => x_msg_data,
521 			p_api_type  => g_api_type);
522 
523     when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
524       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
525 			p_api_name  => l_api_name,
526 			p_pkg_name  => g_pkg_name,
527 			p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
528 			x_msg_count => x_msg_count,
529 			x_msg_data  => x_msg_data,
530 			p_api_type  => g_api_type);
531 
532     when OTHERS then
533       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
534 			p_api_name  => l_api_name,
535 			p_pkg_name  => g_pkg_name,
536 			p_exc_name  => 'OTHERS',
537 			x_msg_count => x_msg_count,
538 			x_msg_data  => x_msg_data,
539 			p_api_type  => g_api_type);
540 END delete_subsidy;
541 
542 
543 PROCEDURE delete_subsidy(
544     p_api_version                  IN  NUMBER,
545     p_init_msg_list                IN  VARCHAR2,
546     x_return_status                OUT NOCOPY VARCHAR2,
547     x_msg_count                    OUT NOCOPY NUMBER,
548     x_msg_data                     OUT NOCOPY VARCHAR2,
549     p_subv_tbl                     IN  subv_tbl_type) Is
550 
551     l_api_name		    CONSTANT VARCHAR2(30) := 'DELETE_SUBSIDY';
552     l_api_version		CONSTANT NUMBER	      := 1.0;
553     l_return_status	    VARCHAR2(1)		      := OKL_API.G_RET_STS_SUCCESS;
554 
555     l_subv_tbl          subv_tbl_type;
556 Begin
557     -- call START_ACTIVITY to create savepoint, check compatibility
558     -- and initialize message list
559 
560     l_return_status := OKL_API.START_ACTIVITY(
561 			p_api_name      => l_api_name,
562 			p_pkg_name      => g_pkg_name,
563 			p_init_msg_list => p_init_msg_list,
564 			l_api_version   => l_api_version,
565 			p_api_version   => p_api_version,
566 			p_api_type      => g_api_type,
567 			x_return_status => x_return_status);
568 
569     -- check if activity started successfully
570     If (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
571        raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
572     Elsif (l_return_status = OKL_API.G_RET_STS_ERROR) then
573        raise OKL_API.G_EXCEPTION_ERROR;
574     End If;
575 
576     l_subv_tbl := p_subv_tbl;
577 
578     okl_sub_pvt.delete_row(
579 	 p_api_version	    => p_api_version,
580 	 p_init_msg_list	=> p_init_msg_list,
581 	 x_return_status 	=> x_return_status,
582 	 x_msg_count     	=> x_msg_count,
583 	 x_msg_data      	=> x_msg_data,
584 	 p_subv_tbl		    => l_subv_tbl);
585 
586     -- check return status
587     If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
588 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
589     Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
590 	  raise OKL_API.G_EXCEPTION_ERROR;
591     End If;
592 
593     OKL_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
594 				 x_msg_data		=> x_msg_data);
595   EXCEPTION
596     when OKL_API.G_EXCEPTION_ERROR then
597       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
598 			p_api_name  => l_api_name,
599 			p_pkg_name  => g_pkg_name,
600 			p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
601 			x_msg_count => x_msg_count,
602 			x_msg_data  => x_msg_data,
603 			p_api_type  => g_api_type);
604 
605     when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
606       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
607 			p_api_name  => l_api_name,
608 			p_pkg_name  => g_pkg_name,
609 			p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
610 			x_msg_count => x_msg_count,
611 			x_msg_data  => x_msg_data,
612 			p_api_type  => g_api_type);
613 
614     when OTHERS then
615       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
616 			p_api_name  => l_api_name,
617 			p_pkg_name  => g_pkg_name,
618 			p_exc_name  => 'OTHERS',
619 			x_msg_count => x_msg_count,
620 			x_msg_data  => x_msg_data,
621 			p_api_type  => g_api_type);
622 END delete_subsidy;
623 
624 PROCEDURE lock_subsidy(
625     p_api_version                  IN  NUMBER,
626     p_init_msg_list                IN  VARCHAR2,
627     x_return_status                OUT NOCOPY VARCHAR2,
628     x_msg_count                    OUT NOCOPY NUMBER,
629     x_msg_data                     OUT NOCOPY VARCHAR2,
630     p_subv_rec                     IN  subv_rec_type) IS
631 
632     l_api_name		    CONSTANT VARCHAR2(30) := 'LOCK_SUBSIDY';
633     l_api_version		CONSTANT NUMBER	      := 1.0;
634     l_return_status	    VARCHAR2(1)		      := OKL_API.G_RET_STS_SUCCESS;
635 
636     l_subv_rec          subv_rec_type;
637 Begin
638     -- call START_ACTIVITY to create savepoint, check compatibility
639     -- and initialize message list
640 
644 			p_init_msg_list => p_init_msg_list,
641     l_return_status := OKL_API.START_ACTIVITY(
642 			p_api_name      => l_api_name,
643 			p_pkg_name      => g_pkg_name,
645 			l_api_version   => l_api_version,
646 			p_api_version   => p_api_version,
647 			p_api_type      => g_api_type,
648 			x_return_status => x_return_status);
649 
650     -- check if activity started successfully
651     If (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
652        raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
653     Elsif (l_return_status = OKL_API.G_RET_STS_ERROR) then
654        raise OKL_API.G_EXCEPTION_ERROR;
655     End If;
656 
657     l_subv_rec := p_subv_rec;
658 
659     okl_sub_pvt.lock_row(
660 	 p_api_version	    => p_api_version,
661 	 p_init_msg_list	=> p_init_msg_list,
662 	 x_return_status 	=> x_return_status,
663 	 x_msg_count     	=> x_msg_count,
664 	 x_msg_data      	=> x_msg_data,
665 	 p_subv_rec		    => l_subv_rec);
666 
667     -- check return status
668     If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
669 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
670     Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
671 	  raise OKL_API.G_EXCEPTION_ERROR;
672     End If;
673 
674     OKL_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
675 				 x_msg_data		=> x_msg_data);
676   EXCEPTION
677     when OKL_API.G_EXCEPTION_ERROR then
678       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
679 			p_api_name  => l_api_name,
680 			p_pkg_name  => g_pkg_name,
681 			p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
682 			x_msg_count => x_msg_count,
683 			x_msg_data  => x_msg_data,
684 			p_api_type  => g_api_type);
685 
686     when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
687       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
688 			p_api_name  => l_api_name,
689 			p_pkg_name  => g_pkg_name,
690 			p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
691 			x_msg_count => x_msg_count,
692 			x_msg_data  => x_msg_data,
693 			p_api_type  => g_api_type);
694 
695     when OTHERS then
696       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
697 			p_api_name  => l_api_name,
698 			p_pkg_name  => g_pkg_name,
699 			p_exc_name  => 'OTHERS',
700 			x_msg_count => x_msg_count,
701 			x_msg_data  => x_msg_data,
702 			p_api_type  => g_api_type);
703 END lock_subsidy;
704 
705 PROCEDURE lock_subsidy(
706     p_api_version                  IN  NUMBER,
707     p_init_msg_list                IN  VARCHAR2,
708     x_return_status                OUT NOCOPY VARCHAR2,
709     x_msg_count                    OUT NOCOPY NUMBER,
710     x_msg_data                     OUT NOCOPY VARCHAR2,
711     p_subv_tbl                     IN  subv_tbl_type) IS
712 
713     l_api_name		    CONSTANT VARCHAR2(30) := 'LOCK_SUBSIDY';
714     l_api_version		CONSTANT NUMBER	      := 1.0;
715     l_return_status	    VARCHAR2(1)		      := OKL_API.G_RET_STS_SUCCESS;
716 
717     l_subv_tbl          subv_tbl_type;
718 Begin
719     -- call START_ACTIVITY to create savepoint, check compatibility
720     -- and initialize message list
721 
722     l_return_status := OKL_API.START_ACTIVITY(
723 			p_api_name      => l_api_name,
724 			p_pkg_name      => g_pkg_name,
725 			p_init_msg_list => p_init_msg_list,
726 			l_api_version   => l_api_version,
727 			p_api_version   => p_api_version,
728 			p_api_type      => g_api_type,
729 			x_return_status => x_return_status);
730 
731     -- check if activity started successfully
732     If (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
733        raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
734     Elsif (l_return_status = OKL_API.G_RET_STS_ERROR) then
735        raise OKL_API.G_EXCEPTION_ERROR;
736     End If;
737 
738     l_subv_tbl := p_subv_tbl;
739 
740     okl_sub_pvt.lock_row(
741 	 p_api_version	    => p_api_version,
742 	 p_init_msg_list	=> p_init_msg_list,
743 	 x_return_status 	=> x_return_status,
744 	 x_msg_count     	=> x_msg_count,
745 	 x_msg_data      	=> x_msg_data,
746 	 p_subv_tbl		    => l_subv_tbl);
747 
748     -- check return status
749     If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
750 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
751     Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
752 	  raise OKL_API.G_EXCEPTION_ERROR;
753     End If;
754 
755     OKL_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
756 				 x_msg_data		=> x_msg_data);
757   EXCEPTION
758     when OKL_API.G_EXCEPTION_ERROR then
759       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
760 			p_api_name  => l_api_name,
761 			p_pkg_name  => g_pkg_name,
762 			p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
763 			x_msg_count => x_msg_count,
764 			x_msg_data  => x_msg_data,
765 			p_api_type  => g_api_type);
766 
767     when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
768       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
769 			p_api_name  => l_api_name,
770 			p_pkg_name  => g_pkg_name,
771 			p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
772 			x_msg_count => x_msg_count,
773 			x_msg_data  => x_msg_data,
774 			p_api_type  => g_api_type);
775 
776     when OTHERS then
777       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
778 			p_api_name  => l_api_name,
782 			x_msg_data  => x_msg_data,
779 			p_pkg_name  => g_pkg_name,
780 			p_exc_name  => 'OTHERS',
781 			x_msg_count => x_msg_count,
783 			p_api_type  => g_api_type);
784 END lock_subsidy;
785 
786 
787 
788 PROCEDURE validate_subsidy(
789     p_api_version                  IN  NUMBER,
790     p_init_msg_list                IN  VARCHAR2,
791     x_return_status                OUT NOCOPY VARCHAR2,
792     x_msg_count                    OUT NOCOPY NUMBER,
793     x_msg_data                     OUT NOCOPY VARCHAR2,
794     p_subv_rec                     IN  subv_rec_type) IS
795 
796 
797     l_api_name		    CONSTANT VARCHAR2(30) := 'VALIDATE_SUBSIDY';
798     l_api_version		CONSTANT NUMBER	      := 1.0;
799     l_return_status	    VARCHAR2(1)		      := OKL_API.G_RET_STS_SUCCESS;
800 
801     l_subv_rec          subv_rec_type;
802 Begin
803     -- call START_ACTIVITY to create savepoint, check compatibility
804     -- and initialize message list
805 
806     l_return_status := OKL_API.START_ACTIVITY(
807 			p_api_name      => l_api_name,
808 			p_pkg_name      => g_pkg_name,
809 			p_init_msg_list => p_init_msg_list,
810 			l_api_version   => l_api_version,
811 			p_api_version   => p_api_version,
812 			p_api_type      => g_api_type,
813 			x_return_status => x_return_status);
814 
815     -- check if activity started successfully
816     If (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
817        raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
818     Elsif (l_return_status = OKL_API.G_RET_STS_ERROR) then
819        raise OKL_API.G_EXCEPTION_ERROR;
820     End If;
821 
822     l_subv_rec := p_subv_rec;
823 
824     okl_sub_pvt.validate_row(
825 	 p_api_version	    => p_api_version,
826 	 p_init_msg_list	=> p_init_msg_list,
827 	 x_return_status 	=> x_return_status,
828 	 x_msg_count     	=> x_msg_count,
829 	 x_msg_data      	=> x_msg_data,
830 	 p_subv_rec		    => l_subv_rec);
831 
832     -- check return status
833     If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
834 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
835     Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
836 	  raise OKL_API.G_EXCEPTION_ERROR;
837     End If;
838 
839     OKL_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
840 				 x_msg_data		=> x_msg_data);
841   EXCEPTION
842     when OKL_API.G_EXCEPTION_ERROR then
843       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
844 			p_api_name  => l_api_name,
845 			p_pkg_name  => g_pkg_name,
846 			p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
847 			x_msg_count => x_msg_count,
848 			x_msg_data  => x_msg_data,
849 			p_api_type  => g_api_type);
850 
851     when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
852       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
853 			p_api_name  => l_api_name,
854 			p_pkg_name  => g_pkg_name,
855 			p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
856 			x_msg_count => x_msg_count,
857 			x_msg_data  => x_msg_data,
858 			p_api_type  => g_api_type);
859 
860     when OTHERS then
861       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
862 			p_api_name  => l_api_name,
863 			p_pkg_name  => g_pkg_name,
864 			p_exc_name  => 'OTHERS',
865 			x_msg_count => x_msg_count,
866 			x_msg_data  => x_msg_data,
867 			p_api_type  => g_api_type);
868 END validate_subsidy;
869 
870 PROCEDURE validate_subsidy(
871     p_api_version                  IN  NUMBER,
872     p_init_msg_list                IN  VARCHAR2,
873     x_return_status                OUT NOCOPY VARCHAR2,
874     x_msg_count                    OUT NOCOPY NUMBER,
875     x_msg_data                     OUT NOCOPY VARCHAR2,
876     p_subv_tbl                     IN  subv_tbl_type) IS
877 
878     l_api_name		    CONSTANT VARCHAR2(30) := 'VALIDATE_SUBSIDY';
879     l_api_version		CONSTANT NUMBER	      := 1.0;
880     l_return_status	    VARCHAR2(1)		      := OKL_API.G_RET_STS_SUCCESS;
881 
882     l_subv_tbl          subv_tbl_type;
883 Begin
884     -- call START_ACTIVITY to create savepoint, check compatibility
885     -- and initialize message list
886 
887     l_return_status := OKL_API.START_ACTIVITY(
888 			p_api_name      => l_api_name,
889 			p_pkg_name      => g_pkg_name,
890 			p_init_msg_list => p_init_msg_list,
891 			l_api_version   => l_api_version,
892 			p_api_version   => p_api_version,
893 			p_api_type      => g_api_type,
894 			x_return_status => x_return_status);
895 
896     -- check if activity started successfully
897     If (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
898        raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
899     Elsif (l_return_status = OKL_API.G_RET_STS_ERROR) then
900        raise OKL_API.G_EXCEPTION_ERROR;
901     End If;
902 
903     l_subv_tbl := p_subv_tbl;
904 
905     okl_sub_pvt.validate_row(
906 	 p_api_version	    => p_api_version,
907 	 p_init_msg_list	=> p_init_msg_list,
908 	 x_return_status 	=> x_return_status,
909 	 x_msg_count     	=> x_msg_count,
910 	 x_msg_data      	=> x_msg_data,
911 	 p_subv_tbl		    => l_subv_tbl);
912 
913     -- check return status
914     If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
915 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
919 
916     Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
917 	  raise OKL_API.G_EXCEPTION_ERROR;
918     End If;
920     OKL_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
921 				 x_msg_data		=> x_msg_data);
922   EXCEPTION
923     when OKL_API.G_EXCEPTION_ERROR then
924       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
925 			p_api_name  => l_api_name,
926 			p_pkg_name  => g_pkg_name,
927 			p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
928 			x_msg_count => x_msg_count,
929 			x_msg_data  => x_msg_data,
930 			p_api_type  => g_api_type);
931 
932     when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
933       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
934 			p_api_name  => l_api_name,
935 			p_pkg_name  => g_pkg_name,
936 			p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
937 			x_msg_count => x_msg_count,
938 			x_msg_data  => x_msg_data,
939 			p_api_type  => g_api_type);
940 
941     when OTHERS then
942       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
943 			p_api_name  => l_api_name,
944 			p_pkg_name  => g_pkg_name,
945 			p_exc_name  => 'OTHERS',
946 			x_msg_count => x_msg_count,
947 			x_msg_data  => x_msg_data,
948 			p_api_type  => g_api_type);
949 END validate_subsidy;
950 
951 
952 PROCEDURE create_subsidy_criteria(
953     p_api_version                  IN  NUMBER,
954     p_init_msg_list                IN  VARCHAR2,
955     x_return_status                OUT NOCOPY VARCHAR2,
956     x_msg_count                    OUT NOCOPY NUMBER,
957     x_msg_data                     OUT NOCOPY VARCHAR2,
958     p_sucv_rec                     IN  sucv_rec_type,
959     x_sucv_rec                     OUT NOCOPY sucv_rec_type) IS
960 
961     l_api_name		    CONSTANT VARCHAR2(30) := 'CREATE_SUBSIDY_CRITERIA';
962     l_api_version		CONSTANT NUMBER	      := 1.0;
963     l_return_status	    VARCHAR2(1)		      := OKL_API.G_RET_STS_SUCCESS;
964 
965     l_sucv_rec          sucv_rec_type;
966 Begin
967     -- call START_ACTIVITY to create savepoint, check compatibility
968     -- and initialize message list
969 
970     l_return_status := OKL_API.START_ACTIVITY(
971 			p_api_name      => l_api_name,
972 			p_pkg_name      => g_pkg_name,
973 			p_init_msg_list => p_init_msg_list,
974 			l_api_version   => l_api_version,
975 			p_api_version   => p_api_version,
976 			p_api_type      => g_api_type,
977 			x_return_status => x_return_status);
978 
979     -- check if activity started successfully
980     If (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
981        raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
982     Elsif (l_return_status = OKL_API.G_RET_STS_ERROR) then
983        raise OKL_API.G_EXCEPTION_ERROR;
984     End If;
985 
986     l_sucv_rec := p_sucv_rec;
987 
988     okl_suc_pvt.insert_row(
989 	 p_api_version	    => p_api_version,
990 	 p_init_msg_list	=> p_init_msg_list,
991 	 x_return_status 	=> x_return_status,
992 	 x_msg_count     	=> x_msg_count,
993 	 x_msg_data      	=> x_msg_data,
994 	 p_sucv_rec		    => l_sucv_rec,
995 	 x_sucv_rec		    => x_sucv_rec);
996 
997     -- check return status
998     If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
999 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1000     Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
1001 	  raise OKL_API.G_EXCEPTION_ERROR;
1002     End If;
1003 
1004     OKL_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
1005 				 x_msg_data		=> x_msg_data);
1006   EXCEPTION
1007     when OKL_API.G_EXCEPTION_ERROR then
1008       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1009 			p_api_name  => l_api_name,
1010 			p_pkg_name  => g_pkg_name,
1011 			p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
1012 			x_msg_count => x_msg_count,
1013 			x_msg_data  => x_msg_data,
1014 			p_api_type  => g_api_type);
1015 
1016     when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
1017       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1018 			p_api_name  => l_api_name,
1019 			p_pkg_name  => g_pkg_name,
1020 			p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1021 			x_msg_count => x_msg_count,
1022 			x_msg_data  => x_msg_data,
1023 			p_api_type  => g_api_type);
1024 
1025     when OTHERS then
1026       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1027 			p_api_name  => l_api_name,
1028 			p_pkg_name  => g_pkg_name,
1029 			p_exc_name  => 'OTHERS',
1030 			x_msg_count => x_msg_count,
1031 			x_msg_data  => x_msg_data,
1032 			p_api_type  => g_api_type);
1033 END create_subsidy_criteria;
1034 
1035 
1036 
1037 PROCEDURE create_subsidy_criteria(
1038     p_api_version                  IN  NUMBER,
1039     p_init_msg_list                IN  VARCHAR2,
1040     x_return_status                OUT NOCOPY VARCHAR2,
1041     x_msg_count                    OUT NOCOPY NUMBER,
1042     x_msg_data                     OUT NOCOPY VARCHAR2,
1043     p_sucv_tbl                     IN  sucv_tbl_type,
1044     x_sucv_tbl                     OUT NOCOPY sucv_tbl_type) IS
1045 
1046     l_api_name		    CONSTANT VARCHAR2(30) := 'CREATE_SUBSIDY_CRITERIA';
1047     l_api_version		CONSTANT NUMBER	      := 1.0;
1048     l_return_status	    VARCHAR2(1)		      := OKL_API.G_RET_STS_SUCCESS;
1049 
1050     l_sucv_tbl          sucv_tbl_type;
1051 Begin
1055     l_return_status := OKL_API.START_ACTIVITY(
1052     -- call START_ACTIVITY to create savepoint, check compatibility
1053     -- and initialize message list
1054 
1056 			p_api_name      => l_api_name,
1057 			p_pkg_name      => g_pkg_name,
1058 			p_init_msg_list => p_init_msg_list,
1059 			l_api_version   => l_api_version,
1060 			p_api_version   => p_api_version,
1061 			p_api_type      => g_api_type,
1062 			x_return_status => x_return_status);
1063 
1064     -- check if activity started successfully
1065     If (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
1066        raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1067     Elsif (l_return_status = OKL_API.G_RET_STS_ERROR) then
1068        raise OKL_API.G_EXCEPTION_ERROR;
1069     End If;
1070 
1071     l_sucv_tbl := p_sucv_tbl;
1072 
1073     okl_suc_pvt.insert_row(
1074 	 p_api_version	    => p_api_version,
1075 	 p_init_msg_list	=> p_init_msg_list,
1076 	 x_return_status 	=> x_return_status,
1077 	 x_msg_count     	=> x_msg_count,
1078 	 x_msg_data      	=> x_msg_data,
1079 	 p_sucv_tbl		    => l_sucv_tbl,
1080 	 x_sucv_tbl		    => x_sucv_tbl);
1081 
1082     -- check return status
1083     If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
1084 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1085     Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
1086 	  raise OKL_API.G_EXCEPTION_ERROR;
1087     End If;
1088 
1089     OKL_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
1090 				 x_msg_data		=> x_msg_data);
1091   EXCEPTION
1092     when OKL_API.G_EXCEPTION_ERROR then
1093       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1094 			p_api_name  => l_api_name,
1095 			p_pkg_name  => g_pkg_name,
1096 			p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
1097 			x_msg_count => x_msg_count,
1098 			x_msg_data  => x_msg_data,
1099 			p_api_type  => g_api_type);
1100 
1101     when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
1102       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1103 			p_api_name  => l_api_name,
1104 			p_pkg_name  => g_pkg_name,
1105 			p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1106 			x_msg_count => x_msg_count,
1107 			x_msg_data  => x_msg_data,
1108 			p_api_type  => g_api_type);
1109 
1110     when OTHERS then
1111       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1112 			p_api_name  => l_api_name,
1113 			p_pkg_name  => g_pkg_name,
1114 			p_exc_name  => 'OTHERS',
1115 			x_msg_count => x_msg_count,
1116 			x_msg_data  => x_msg_data,
1117 			p_api_type  => g_api_type);
1118 END create_subsidy_criteria;
1119 
1120 
1121 PROCEDURE update_subsidy_criteria(
1122     p_api_version                  IN  NUMBER,
1123     p_init_msg_list                IN  VARCHAR2,
1124     x_return_status                OUT NOCOPY VARCHAR2,
1125     x_msg_count                    OUT NOCOPY NUMBER,
1126     x_msg_data                     OUT NOCOPY VARCHAR2,
1127     p_sucv_rec                     IN  sucv_rec_type,
1128     x_sucv_rec                     OUT NOCOPY sucv_rec_type) IS
1129 
1130     l_api_name		    CONSTANT VARCHAR2(30) := 'UPDATE_SUBSIDY_CRITERIA';
1131     l_api_version		CONSTANT NUMBER	      := 1.0;
1132     l_return_status	    VARCHAR2(1)		      := OKL_API.G_RET_STS_SUCCESS;
1133 
1134     l_sucv_rec          sucv_rec_type;
1135 Begin
1136     -- call START_ACTIVITY to create savepoint, check compatibility
1137     -- and initialize message list
1138 
1139     l_return_status := OKL_API.START_ACTIVITY(
1140 			p_api_name      => l_api_name,
1141 			p_pkg_name      => g_pkg_name,
1142 			p_init_msg_list => p_init_msg_list,
1143 			l_api_version   => l_api_version,
1144 			p_api_version   => p_api_version,
1145 			p_api_type      => g_api_type,
1146 			x_return_status => x_return_status);
1147 
1148     -- check if activity started successfully
1149     If (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
1150        raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1151     Elsif (l_return_status = OKL_API.G_RET_STS_ERROR) then
1152        raise OKL_API.G_EXCEPTION_ERROR;
1153     End If;
1154 
1155     l_sucv_rec := p_sucv_rec;
1156 
1157     okl_suc_pvt.update_row(
1158 	 p_api_version	    => p_api_version,
1159 	 p_init_msg_list	=> p_init_msg_list,
1160 	 x_return_status 	=> x_return_status,
1161 	 x_msg_count     	=> x_msg_count,
1162 	 x_msg_data      	=> x_msg_data,
1163 	 p_sucv_rec		    => l_sucv_rec,
1164 	 x_sucv_rec		    => x_sucv_rec);
1165 
1166     -- check return status
1167     If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
1168 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1169     Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
1170 	  raise OKL_API.G_EXCEPTION_ERROR;
1171     End If;
1172 
1173     OKL_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
1174 				 x_msg_data		=> x_msg_data);
1175   EXCEPTION
1176     when OKL_API.G_EXCEPTION_ERROR then
1177       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1178 			p_api_name  => l_api_name,
1179 			p_pkg_name  => g_pkg_name,
1180 			p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
1181 			x_msg_count => x_msg_count,
1182 			x_msg_data  => x_msg_data,
1183 			p_api_type  => g_api_type);
1184 
1185     when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
1186       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1187 			p_api_name  => l_api_name,
1188 			p_pkg_name  => g_pkg_name,
1189 			p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1190 			x_msg_count => x_msg_count,
1191 			x_msg_data  => x_msg_data,
1192 			p_api_type  => g_api_type);
1193 
1194     when OTHERS then
1195       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1196 			p_api_name  => l_api_name,
1197 			p_pkg_name  => g_pkg_name,
1198 			p_exc_name  => 'OTHERS',
1199 			x_msg_count => x_msg_count,
1200 			x_msg_data  => x_msg_data,
1201 			p_api_type  => g_api_type);
1202 END update_subsidy_criteria;
1203 
1204 PROCEDURE update_subsidy_criteria(
1205     p_api_version                  IN  NUMBER,
1206     p_init_msg_list                IN  VARCHAR2,
1207     x_return_status                OUT NOCOPY VARCHAR2,
1208     x_msg_count                    OUT NOCOPY NUMBER,
1209     x_msg_data                     OUT NOCOPY VARCHAR2,
1210     p_sucv_tbl                     IN  sucv_tbl_type,
1211     x_sucv_tbl                     OUT NOCOPY sucv_tbl_type) IS
1212 
1213     l_api_name		    CONSTANT VARCHAR2(30) := 'UPDATE_SUBSIDY_CRITERIA';
1214     l_api_version		CONSTANT NUMBER	      := 1.0;
1215     l_return_status	    VARCHAR2(1)		      := OKL_API.G_RET_STS_SUCCESS;
1216 
1217     l_sucv_tbl          sucv_tbl_type;
1218 Begin
1219     -- call START_ACTIVITY to create savepoint, check compatibility
1220     -- and initialize message list
1221 
1222     l_return_status := OKL_API.START_ACTIVITY(
1223 			p_api_name      => l_api_name,
1224 			p_pkg_name      => g_pkg_name,
1225 			p_init_msg_list => p_init_msg_list,
1226 			l_api_version   => l_api_version,
1227 			p_api_version   => p_api_version,
1228 			p_api_type      => g_api_type,
1229 			x_return_status => x_return_status);
1230 
1231     -- check if activity started successfully
1232     If (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
1233        raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1234     Elsif (l_return_status = OKL_API.G_RET_STS_ERROR) then
1235        raise OKL_API.G_EXCEPTION_ERROR;
1236     End If;
1237 
1238     l_sucv_tbl := p_sucv_tbl;
1239 
1240     okl_suc_pvt.update_row(
1241 	 p_api_version	    => p_api_version,
1242 	 p_init_msg_list	=> p_init_msg_list,
1243 	 x_return_status 	=> x_return_status,
1244 	 x_msg_count     	=> x_msg_count,
1245 	 x_msg_data      	=> x_msg_data,
1246 	 p_sucv_tbl		    => l_sucv_tbl,
1247 	 x_sucv_tbl		    => x_sucv_tbl);
1248 
1249     -- check return status
1250     If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
1251 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1252     Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
1253 	  raise OKL_API.G_EXCEPTION_ERROR;
1254     End If;
1255 
1256     OKL_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
1257 				 x_msg_data		=> x_msg_data);
1258   EXCEPTION
1259     when OKL_API.G_EXCEPTION_ERROR then
1260       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1261 			p_api_name  => l_api_name,
1262 			p_pkg_name  => g_pkg_name,
1263 			p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
1264 			x_msg_count => x_msg_count,
1265 			x_msg_data  => x_msg_data,
1266 			p_api_type  => g_api_type);
1267 
1268     when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
1269       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1270 			p_api_name  => l_api_name,
1271 			p_pkg_name  => g_pkg_name,
1272 			p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1273 			x_msg_count => x_msg_count,
1274 			x_msg_data  => x_msg_data,
1275 			p_api_type  => g_api_type);
1276 
1277     when OTHERS then
1278       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1279 			p_api_name  => l_api_name,
1280 			p_pkg_name  => g_pkg_name,
1281 			p_exc_name  => 'OTHERS',
1282 			x_msg_count => x_msg_count,
1283 			x_msg_data  => x_msg_data,
1284 			p_api_type  => g_api_type);
1285 END update_subsidy_criteria;
1286 
1287 
1288 PROCEDURE delete_subsidy_criteria(
1289     p_api_version                  IN  NUMBER,
1290     p_init_msg_list                IN  VARCHAR2,
1291     x_return_status                OUT NOCOPY VARCHAR2,
1292     x_msg_count                    OUT NOCOPY NUMBER,
1293     x_msg_data                     OUT NOCOPY VARCHAR2,
1294     p_sucv_rec                     IN  sucv_rec_type) IS
1295 
1296     l_api_name		    CONSTANT VARCHAR2(30) := 'DELETE_SUBSIDY_CRITERIA';
1297     l_api_version		CONSTANT NUMBER	      := 1.0;
1298     l_return_status	    VARCHAR2(1)		      := OKL_API.G_RET_STS_SUCCESS;
1299 
1300     l_sucv_rec          sucv_rec_type;
1301 Begin
1302     -- call START_ACTIVITY to create savepoint, check compatibility
1303     -- and initialize message list
1304 
1305     l_return_status := OKL_API.START_ACTIVITY(
1306 			p_api_name      => l_api_name,
1307 			p_pkg_name      => g_pkg_name,
1308 			p_init_msg_list => p_init_msg_list,
1309 			l_api_version   => l_api_version,
1310 			p_api_version   => p_api_version,
1311 			p_api_type      => g_api_type,
1312 			x_return_status => x_return_status);
1313 
1314     -- check if activity started successfully
1315     If (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
1316        raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1317     Elsif (l_return_status = OKL_API.G_RET_STS_ERROR) then
1318        raise OKL_API.G_EXCEPTION_ERROR;
1319     End If;
1320 
1321     l_sucv_rec := p_sucv_rec;
1322 
1323     okl_suc_pvt.delete_row(
1324 	 p_api_version	    => p_api_version,
1325 	 p_init_msg_list	=> p_init_msg_list,
1326 	 x_return_status 	=> x_return_status,
1327 	 x_msg_count     	=> x_msg_count,
1328 	 x_msg_data      	=> x_msg_data,
1329 	 p_sucv_rec		    => l_sucv_rec);
1330 
1331     -- check return status
1332     If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
1333 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1334     Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
1335 	  raise OKL_API.G_EXCEPTION_ERROR;
1336     End If;
1337 
1338     OKL_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
1339 				 x_msg_data		=> x_msg_data);
1340   EXCEPTION
1341     when OKL_API.G_EXCEPTION_ERROR then
1342       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1343 			p_api_name  => l_api_name,
1344 			p_pkg_name  => g_pkg_name,
1345 			p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
1346 			x_msg_count => x_msg_count,
1347 			x_msg_data  => x_msg_data,
1348 			p_api_type  => g_api_type);
1349 
1350     when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
1351       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1352 			p_api_name  => l_api_name,
1353 			p_pkg_name  => g_pkg_name,
1354 			p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1355 			x_msg_count => x_msg_count,
1356 			x_msg_data  => x_msg_data,
1357 			p_api_type  => g_api_type);
1358 
1359     when OTHERS then
1360       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1361 			p_api_name  => l_api_name,
1362 			p_pkg_name  => g_pkg_name,
1363 			p_exc_name  => 'OTHERS',
1364 			x_msg_count => x_msg_count,
1365 			x_msg_data  => x_msg_data,
1366 			p_api_type  => g_api_type);
1367 END delete_subsidy_criteria;
1368 
1369 
1370 PROCEDURE delete_subsidy_criteria(
1371     p_api_version                  IN  NUMBER,
1372     p_init_msg_list                IN  VARCHAR2,
1373     x_return_status                OUT NOCOPY VARCHAR2,
1374     x_msg_count                    OUT NOCOPY NUMBER,
1375     x_msg_data                     OUT NOCOPY VARCHAR2,
1376     p_sucv_tbl                     IN  sucv_tbl_type) Is
1377 
1378     l_api_name		    CONSTANT VARCHAR2(30) := 'DELETE_SUBSIDY_CRITERIA';
1379     l_api_version		CONSTANT NUMBER	      := 1.0;
1380     l_return_status	    VARCHAR2(1)		      := OKL_API.G_RET_STS_SUCCESS;
1381 
1382     l_sucv_tbl          sucv_tbl_type;
1383 Begin
1384     -- call START_ACTIVITY to create savepoint, check compatibility
1385     -- and initialize message list
1386 
1387     l_return_status := OKL_API.START_ACTIVITY(
1388 			p_api_name      => l_api_name,
1389 			p_pkg_name      => g_pkg_name,
1390 			p_init_msg_list => p_init_msg_list,
1391 			l_api_version   => l_api_version,
1392 			p_api_version   => p_api_version,
1393 			p_api_type      => g_api_type,
1394 			x_return_status => x_return_status);
1395 
1396     -- check if activity started successfully
1397     If (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
1398        raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1399     Elsif (l_return_status = OKL_API.G_RET_STS_ERROR) then
1400        raise OKL_API.G_EXCEPTION_ERROR;
1401     End If;
1402 
1403     l_sucv_tbl := p_sucv_tbl;
1404 
1405     okl_suc_pvt.delete_row(
1406 	 p_api_version	    => p_api_version,
1407 	 p_init_msg_list	=> p_init_msg_list,
1408 	 x_return_status 	=> x_return_status,
1409 	 x_msg_count     	=> x_msg_count,
1410 	 x_msg_data      	=> x_msg_data,
1411 	 p_sucv_tbl		    => l_sucv_tbl);
1412 
1413     -- check return status
1414     If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
1415 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1416     Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
1417 	  raise OKL_API.G_EXCEPTION_ERROR;
1418     End If;
1419 
1420     OKL_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
1421 				 x_msg_data		=> x_msg_data);
1422   EXCEPTION
1423     when OKL_API.G_EXCEPTION_ERROR then
1424       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1425 			p_api_name  => l_api_name,
1426 			p_pkg_name  => g_pkg_name,
1427 			p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
1428 			x_msg_count => x_msg_count,
1429 			x_msg_data  => x_msg_data,
1430 			p_api_type  => g_api_type);
1431 
1432     when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
1433       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1434 			p_api_name  => l_api_name,
1435 			p_pkg_name  => g_pkg_name,
1436 			p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1437 			x_msg_count => x_msg_count,
1438 			x_msg_data  => x_msg_data,
1439 			p_api_type  => g_api_type);
1440 
1441     when OTHERS then
1442       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1443 			p_api_name  => l_api_name,
1444 			p_pkg_name  => g_pkg_name,
1445 			p_exc_name  => 'OTHERS',
1446 			x_msg_count => x_msg_count,
1447 			x_msg_data  => x_msg_data,
1451 PROCEDURE lock_subsidy_criteria(
1448 			p_api_type  => g_api_type);
1449 END delete_subsidy_criteria;
1450 
1452     p_api_version                  IN  NUMBER,
1453     p_init_msg_list                IN  VARCHAR2,
1454     x_return_status                OUT NOCOPY VARCHAR2,
1455     x_msg_count                    OUT NOCOPY NUMBER,
1456     x_msg_data                     OUT NOCOPY VARCHAR2,
1457     p_sucv_rec                     IN  sucv_rec_type) IS
1458 
1459     l_api_name		    CONSTANT VARCHAR2(30) := 'LOCK_SUBSIDY_CRITERIA';
1460     l_api_version		CONSTANT NUMBER	      := 1.0;
1461     l_return_status	    VARCHAR2(1)		      := OKL_API.G_RET_STS_SUCCESS;
1462 
1463     l_sucv_rec          sucv_rec_type;
1464 Begin
1465     -- call START_ACTIVITY to create savepoint, check compatibility
1466     -- and initialize message list
1467 
1468     l_return_status := OKL_API.START_ACTIVITY(
1469 			p_api_name      => l_api_name,
1470 			p_pkg_name      => g_pkg_name,
1471 			p_init_msg_list => p_init_msg_list,
1472 			l_api_version   => l_api_version,
1473 			p_api_version   => p_api_version,
1474 			p_api_type      => g_api_type,
1475 			x_return_status => x_return_status);
1476 
1477     -- check if activity started successfully
1478     If (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
1479        raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1480     Elsif (l_return_status = OKL_API.G_RET_STS_ERROR) then
1481        raise OKL_API.G_EXCEPTION_ERROR;
1482     End If;
1483 
1484     l_sucv_rec := p_sucv_rec;
1485 
1486     okl_suc_pvt.lock_row(
1487 	 p_api_version	    => p_api_version,
1488 	 p_init_msg_list	=> p_init_msg_list,
1489 	 x_return_status 	=> x_return_status,
1490 	 x_msg_count     	=> x_msg_count,
1491 	 x_msg_data      	=> x_msg_data,
1492 	 p_sucv_rec		    => l_sucv_rec);
1493 
1494     -- check return status
1495     If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
1496 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1497     Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
1498 	  raise OKL_API.G_EXCEPTION_ERROR;
1499     End If;
1500 
1501     OKL_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
1502 				 x_msg_data		=> x_msg_data);
1503   EXCEPTION
1504     when OKL_API.G_EXCEPTION_ERROR then
1505       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1506 			p_api_name  => l_api_name,
1507 			p_pkg_name  => g_pkg_name,
1508 			p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
1509 			x_msg_count => x_msg_count,
1510 			x_msg_data  => x_msg_data,
1511 			p_api_type  => g_api_type);
1512 
1513     when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
1514       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1515 			p_api_name  => l_api_name,
1516 			p_pkg_name  => g_pkg_name,
1517 			p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1518 			x_msg_count => x_msg_count,
1519 			x_msg_data  => x_msg_data,
1520 			p_api_type  => g_api_type);
1521 
1522     when OTHERS then
1523       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1524 			p_api_name  => l_api_name,
1525 			p_pkg_name  => g_pkg_name,
1526 			p_exc_name  => 'OTHERS',
1527 			x_msg_count => x_msg_count,
1528 			x_msg_data  => x_msg_data,
1529 			p_api_type  => g_api_type);
1530 END lock_subsidy_criteria;
1531 
1532 PROCEDURE lock_subsidy_criteria(
1533     p_api_version                  IN  NUMBER,
1534     p_init_msg_list                IN  VARCHAR2,
1535     x_return_status                OUT NOCOPY VARCHAR2,
1536     x_msg_count                    OUT NOCOPY NUMBER,
1537     x_msg_data                     OUT NOCOPY VARCHAR2,
1538     p_sucv_tbl                     IN  sucv_tbl_type) IS
1539 
1540     l_api_name		    CONSTANT VARCHAR2(30) := 'LOCK_SUBSIDY_CRITERIA';
1541     l_api_version		CONSTANT NUMBER	      := 1.0;
1542     l_return_status	    VARCHAR2(1)		      := OKL_API.G_RET_STS_SUCCESS;
1543 
1544     l_sucv_tbl          sucv_tbl_type;
1545 Begin
1546     -- call START_ACTIVITY to create savepoint, check compatibility
1547     -- and initialize message list
1548 
1549     l_return_status := OKL_API.START_ACTIVITY(
1550 			p_api_name      => l_api_name,
1551 			p_pkg_name      => g_pkg_name,
1552 			p_init_msg_list => p_init_msg_list,
1553 			l_api_version   => l_api_version,
1554 			p_api_version   => p_api_version,
1555 			p_api_type      => g_api_type,
1556 			x_return_status => x_return_status);
1557 
1558     -- check if activity started successfully
1559     If (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
1560        raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1561     Elsif (l_return_status = OKL_API.G_RET_STS_ERROR) then
1562        raise OKL_API.G_EXCEPTION_ERROR;
1563     End If;
1564 
1565     l_sucv_tbl := p_sucv_tbl;
1566 
1567     okl_suc_pvt.lock_row(
1568 	 p_api_version	    => p_api_version,
1569 	 p_init_msg_list	=> p_init_msg_list,
1570 	 x_return_status 	=> x_return_status,
1571 	 x_msg_count     	=> x_msg_count,
1572 	 x_msg_data      	=> x_msg_data,
1573 	 p_sucv_tbl		    => l_sucv_tbl);
1574 
1575     -- check return status
1576     If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
1577 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1578     Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
1579 	  raise OKL_API.G_EXCEPTION_ERROR;
1580     End If;
1581 
1582     OKL_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
1583 				 x_msg_data		=> x_msg_data);
1584   EXCEPTION
1585     when OKL_API.G_EXCEPTION_ERROR then
1586       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1587 			p_api_name  => l_api_name,
1588 			p_pkg_name  => g_pkg_name,
1589 			p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
1590 			x_msg_count => x_msg_count,
1594     when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
1591 			x_msg_data  => x_msg_data,
1592 			p_api_type  => g_api_type);
1593 
1595       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1596 			p_api_name  => l_api_name,
1597 			p_pkg_name  => g_pkg_name,
1598 			p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1599 			x_msg_count => x_msg_count,
1600 			x_msg_data  => x_msg_data,
1601 			p_api_type  => g_api_type);
1602 
1603     when OTHERS then
1604       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1605 			p_api_name  => l_api_name,
1606 			p_pkg_name  => g_pkg_name,
1607 			p_exc_name  => 'OTHERS',
1608 			x_msg_count => x_msg_count,
1609 			x_msg_data  => x_msg_data,
1610 			p_api_type  => g_api_type);
1611 END lock_subsidy_criteria;
1612 
1613 
1614 
1615 PROCEDURE validate_subsidy_criteria(
1616     p_api_version                  IN  NUMBER,
1617     p_init_msg_list                IN  VARCHAR2,
1618     x_return_status                OUT NOCOPY VARCHAR2,
1619     x_msg_count                    OUT NOCOPY NUMBER,
1620     x_msg_data                     OUT NOCOPY VARCHAR2,
1621     p_sucv_rec                     IN  sucv_rec_type) IS
1622 
1623 
1624     l_api_name		    CONSTANT VARCHAR2(30) := 'VALIDATE_SUBSIDY_CRITERIA';
1625     l_api_version		CONSTANT NUMBER	      := 1.0;
1626     l_return_status	    VARCHAR2(1)		      := OKL_API.G_RET_STS_SUCCESS;
1627 
1628     l_sucv_rec          sucv_rec_type;
1629 Begin
1630     -- call START_ACTIVITY to create savepoint, check compatibility
1631     -- and initialize message list
1632 
1633     l_return_status := OKL_API.START_ACTIVITY(
1634 			p_api_name      => l_api_name,
1635 			p_pkg_name      => g_pkg_name,
1636 			p_init_msg_list => p_init_msg_list,
1637 			l_api_version   => l_api_version,
1638 			p_api_version   => p_api_version,
1639 			p_api_type      => g_api_type,
1640 			x_return_status => x_return_status);
1641 
1642     -- check if activity started successfully
1643     If (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
1644        raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1645     Elsif (l_return_status = OKL_API.G_RET_STS_ERROR) then
1646        raise OKL_API.G_EXCEPTION_ERROR;
1647     End If;
1648 
1649     l_sucv_rec := p_sucv_rec;
1650 
1651     okl_suc_pvt.validate_row(
1652 	 p_api_version	    => p_api_version,
1653 	 p_init_msg_list	=> p_init_msg_list,
1654 	 x_return_status 	=> x_return_status,
1655 	 x_msg_count     	=> x_msg_count,
1656 	 x_msg_data      	=> x_msg_data,
1657 	 p_sucv_rec		    => l_sucv_rec);
1658 
1659     -- check return status
1660     If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
1661 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1662     Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
1663 	  raise OKL_API.G_EXCEPTION_ERROR;
1664     End If;
1665 
1666     OKL_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
1667 				 x_msg_data		=> x_msg_data);
1668   EXCEPTION
1669     when OKL_API.G_EXCEPTION_ERROR then
1670       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1671 			p_api_name  => l_api_name,
1672 			p_pkg_name  => g_pkg_name,
1673 			p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
1674 			x_msg_count => x_msg_count,
1675 			x_msg_data  => x_msg_data,
1676 			p_api_type  => g_api_type);
1677 
1678     when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
1679       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1680 			p_api_name  => l_api_name,
1681 			p_pkg_name  => g_pkg_name,
1682 			p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1683 			x_msg_count => x_msg_count,
1684 			x_msg_data  => x_msg_data,
1685 			p_api_type  => g_api_type);
1686 
1687     when OTHERS then
1688       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1689 			p_api_name  => l_api_name,
1690 			p_pkg_name  => g_pkg_name,
1691 			p_exc_name  => 'OTHERS',
1692 			x_msg_count => x_msg_count,
1693 			x_msg_data  => x_msg_data,
1694 			p_api_type  => g_api_type);
1695 END validate_subsidy_criteria;
1696 
1697 PROCEDURE validate_subsidy_criteria(
1698     p_api_version                  IN  NUMBER,
1699     p_init_msg_list                IN  VARCHAR2,
1700     x_return_status                OUT NOCOPY VARCHAR2,
1701     x_msg_count                    OUT NOCOPY NUMBER,
1702     x_msg_data                     OUT NOCOPY VARCHAR2,
1703     p_sucv_tbl                     IN  sucv_tbl_type) IS
1704 
1705     l_api_name		    CONSTANT VARCHAR2(30) := 'VALIDATE_SUBSIDY_CRITERIA';
1706     l_api_version		CONSTANT NUMBER	      := 1.0;
1707     l_return_status	    VARCHAR2(1)		      := OKL_API.G_RET_STS_SUCCESS;
1708 
1709     l_sucv_tbl          sucv_tbl_type;
1710 Begin
1711     -- call START_ACTIVITY to create savepoint, check compatibility
1712     -- and initialize message list
1713 
1714     l_return_status := OKL_API.START_ACTIVITY(
1715 			p_api_name      => l_api_name,
1716 			p_pkg_name      => g_pkg_name,
1717 			p_init_msg_list => p_init_msg_list,
1718 			l_api_version   => l_api_version,
1719 			p_api_version   => p_api_version,
1720 			p_api_type      => g_api_type,
1721 			x_return_status => x_return_status);
1722 
1723     -- check if activity started successfully
1724     If (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
1725        raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1726     Elsif (l_return_status = OKL_API.G_RET_STS_ERROR) then
1727        raise OKL_API.G_EXCEPTION_ERROR;
1728     End If;
1729 
1730     l_sucv_tbl := p_sucv_tbl;
1731 
1732     okl_suc_pvt.validate_row(
1733 	 p_api_version	    => p_api_version,
1734 	 p_init_msg_list	=> p_init_msg_list,
1735 	 x_return_status 	=> x_return_status,
1736 	 x_msg_count     	=> x_msg_count,
1737 	 x_msg_data      	=> x_msg_data,
1738 	 p_sucv_tbl		    => l_sucv_tbl);
1739 
1740     -- check return status
1741     If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
1742 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1743     Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
1744 	  raise OKL_API.G_EXCEPTION_ERROR;
1745     End If;
1746 
1747     OKL_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
1748 				 x_msg_data		=> x_msg_data);
1749   EXCEPTION
1750     when OKL_API.G_EXCEPTION_ERROR then
1751       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1752 			p_api_name  => l_api_name,
1753 			p_pkg_name  => g_pkg_name,
1754 			p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
1755 			x_msg_count => x_msg_count,
1756 			x_msg_data  => x_msg_data,
1757 			p_api_type  => g_api_type);
1758 
1759     when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
1760       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1761 			p_api_name  => l_api_name,
1762 			p_pkg_name  => g_pkg_name,
1763 			p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1764 			x_msg_count => x_msg_count,
1765 			x_msg_data  => x_msg_data,
1766 			p_api_type  => g_api_type);
1767 
1768     when OTHERS then
1769       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1770 			p_api_name  => l_api_name,
1771 			p_pkg_name  => g_pkg_name,
1772 			p_exc_name  => 'OTHERS',
1773 			x_msg_count => x_msg_count,
1774 			x_msg_data  => x_msg_data,
1775 			p_api_type  => g_api_type);
1776 END validate_subsidy_criteria;
1777 
1778 PROCEDURE add_language IS
1779 Begin
1780     OKL_SUB_PVT.add_language;
1781 End add_language;
1782 
1783 END OKL_SUBSIDY_PVT;