DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_LA_PROPERTY_TAX_PVT

Source


1 PACKAGE BODY OKL_LA_PROPERTY_TAX_PVT AS
2  /* $Header: OKLRPTXB.pls 120.3 2005/06/06 17:30:33 rseela noship $ */
3 
4   -- Start of comments
5   --
6   -- Procedure Name  : create_est_prop_tax_rules
7   -- Description     : Creates Estimated Property Tax rules basing on the setup
8   --                   value.
9   -- Business Rules  :
10   -- Parameters      :
11   -- Version         : 1.0
12   -- End of comments
13   PROCEDURE create_est_prop_tax_rules(
14             p_api_version    	     IN  NUMBER,
15             p_init_msg_list          IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
16             x_return_status          OUT NOCOPY VARCHAR2,
17             x_msg_count              OUT NOCOPY NUMBER,
18             x_msg_data               OUT NOCOPY VARCHAR2,
19             p_chr_id                 IN  NUMBER,
20             p_cle_id                 IN  NUMBER)
21 
22   IS
23     l_rgpv_rec          rgpv_rec_type;
24     l_rulv_rec          rulv_rec_type;
25     lx_rgpv_rec         rgpv_rec_type;
26     lx_rulv_rec         rulv_rec_type;
27 
28     l_chr_id  okc_k_headers_b.id%TYPE;
29     l_cle_id  okc_k_lines_v.id%TYPE;
30     l_rgp_id  NUMBER;
31     lv_enable_asset_default okl_property_tax_setups.enable_asset_default%TYPE;
32     lv_property_tax_applicable okl_property_tax_setups.property_tax_applicable%TYPE;
33     lv_bill_property_tax okl_property_tax_setups.bill_property_tax%TYPE;
34 	-- Start 4042157 fmiao 12/03/04 added update_from_contract --
35     lv_update_from_contract okl_property_tax_setups.update_from_contract%TYPE;
36 	-- End 4042157 fmiao 12/03/04 added update_from_contract --
37 
38     l_api_name		CONSTANT VARCHAR2(30) := 'CREATE_EST_PROP_TAX_RULES';
39 
40 	-- Start 4042157 fmiao 12/03/04 added update_from_contract --
41     CURSOR get_est_prop_tax_info(p_chr_id  okc_k_headers_b.id%TYPE) IS
42     SELECT enable_asset_default, property_tax_applicable,
43 		   bill_property_tax,update_from_contract
44     FROM okl_property_tax_setups
45     WHERE org_id = (SELECT authoring_org_id
46                     FROM okc_k_headers_b
47                     WHERE id = p_chr_id);
48 	-- End 4042157 fmiao 12/03/04 added update_from_contract --
49   BEGIN
50 
51       x_return_status := OKL_API.G_RET_STS_SUCCESS;
52 
53       l_chr_id := p_chr_id;
54       l_cle_id := p_cle_id;
55  -- 4374085
56 /*
57       IF okl_context.get_okc_org_id  IS NULL THEN
58         okl_context.set_okc_org_context(p_chr_id => l_chr_id);
59       END IF;
60 */
61 
62       -- call START_ACTIVITY to create savepoint, check compatibility
63       -- and initialize message list
64       x_return_status := OKL_API.START_ACTIVITY (
65                                l_api_name
66                                ,p_init_msg_list
67                                ,g_api_type
68                                ,x_return_status);
69 
70       -- check if activity started successfully
71       IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
72         RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
73       ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
74         RAISE OKL_API.G_EXCEPTION_ERROR;
75       END IF;
76 
77       OPEN get_est_prop_tax_info(l_chr_id);
78       FETCH get_est_prop_tax_info into lv_enable_asset_default,
79                                        lv_property_tax_applicable,
80                                        lv_bill_property_tax,
81 									   lv_update_from_contract;
82       IF (get_est_prop_tax_info%NOTFOUND) THEN
83         RETURN;
84       END IF;
85       CLOSE get_est_prop_tax_info;
86 
87       IF(lv_enable_asset_default = 'YES') THEN
88 
89         -- Create the rule group for Estimated Property Tax
90         l_rgpv_rec.rgd_code      :=  'LAASTX';
91         l_rgpv_rec.chr_id        :=   null;
92         l_rgpv_rec.dnz_chr_id    :=  l_chr_id;
93         l_rgpv_rec.cle_id        :=  l_cle_id;
94         l_rgpv_rec.rgp_type      :=  'KRG';
95 
96         OKL_RULE_PUB.create_rule_group(
97               p_api_version       =>  p_api_version,
98               p_init_msg_list     =>  p_init_msg_list,
99               x_return_status     =>  x_return_status,
100               x_msg_count         =>  x_msg_count,
101               x_msg_data          =>  x_msg_data,
102               p_rgpv_rec          =>  l_rgpv_rec,
103               x_rgpv_rec          =>  lx_rgpv_rec);
104 
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         l_rgp_id := lx_rgpv_rec.id;
112 
113         -- Create the Estimated Property Tax rule
114         l_rulv_rec.sfwt_flag         := 'N';
115         l_rulv_rec.dnz_chr_id        := l_chr_id;
116         l_rulv_rec.rgp_id            := l_rgp_id;
117         l_rulv_rec.std_template_yn   := 'N';
118         l_rulv_rec.warn_yn       := 'N';
119         l_rulv_rec.template_yn   := 'N';
120         l_rulv_rec.rule_information_category := 'LAPRTX';
121 
122         IF (lv_property_tax_applicable = 'YES') THEN
123           l_rulv_rec.rule_information1 := 'Y';
124         ELSE
125           l_rulv_rec.rule_information1 := 'N';
126         END IF;
127         l_rulv_rec.rule_information2 := 'N'; -- Lessee to Report
128         l_rulv_rec.rule_information3 := lv_bill_property_tax;
129 
130         OKL_RULE_PUB.create_rule(
131               p_api_version         => p_api_version,
132               p_init_msg_list       => p_init_msg_list,
133               x_return_status       => x_return_status,
134               x_msg_count           => x_msg_count,
135               x_msg_data            => x_msg_data,
136               p_rulv_rec            => l_rulv_rec,
137               x_rulv_rec            => lx_rulv_rec);
138         IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
139           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
140         ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
141           RAISE OKL_API.G_EXCEPTION_ERROR;
142         END IF;
143 
144 		-- Start 4042157 fmiao 12/03/04 added update_from_contract --
145 		l_rulv_rec.rule_information_category := 'LAASTK';
146 
147         IF (lv_update_from_contract = 'YES') THEN
148           l_rulv_rec.rule_information1 := 'Y';
149         ELSE
150           l_rulv_rec.rule_information1 := 'N';
151         END IF;
152 
153         OKL_RULE_PUB.create_rule(
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_rulv_rec            => l_rulv_rec,
160               x_rulv_rec            => lx_rulv_rec);
161         IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
162           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
163         ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
164           RAISE OKL_API.G_EXCEPTION_ERROR;
165         END IF;
166 		-- Start 4042157 fmiao 12/03/04 added update_from_contract --
167       END IF;
168 
169       OKL_API.END_ACTIVITY (x_msg_count  => x_msg_count,
170                             x_msg_data   => x_msg_data);
171   EXCEPTION
172     WHEN OKL_API.G_EXCEPTION_ERROR THEN
173       IF get_est_prop_tax_info%ISOPEN THEN
174         CLOSE get_est_prop_tax_info;
175       END IF;
176       x_return_status := OKL_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 OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
185       IF get_est_prop_tax_info%ISOPEN THEN
186         CLOSE get_est_prop_tax_info;
187       END IF;
188       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
189 			p_api_name  => l_api_name,
190 			p_pkg_name  => g_pkg_name,
191 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
192 			x_msg_count => x_msg_count,
193 			x_msg_data  => x_msg_data,
194 			p_api_type  => g_api_type);
195 
196     WHEN OTHERS THEN
197       IF get_est_prop_tax_info%ISOPEN THEN
198         CLOSE get_est_prop_tax_info;
199       END IF;
200       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
201 			p_api_name  => l_api_name,
202 			p_pkg_name  => g_pkg_name,
203 			p_exc_name  => 'OTHERS',
204 			x_msg_count => x_msg_count,
205 			x_msg_data  => x_msg_data,
206 			p_api_type  => g_api_type);
207   END create_est_prop_tax_rules;
208 
209    -- Start of comments
210   --
211   -- Procedure Name  : create_est_prop_tax_rules
212   -- Description     : Bug 4086808 added the default value for bill tax
213   --                   for user to modify
214   -- Business Rules  :
215   -- Parameters      :
216   -- Version         : 1.0
217   -- End of comments
218   PROCEDURE create_est_prop_tax_rules(
219             p_api_version    	     IN  NUMBER,
220             p_init_msg_list          IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
221             x_return_status          OUT NOCOPY VARCHAR2,
222             x_msg_count              OUT NOCOPY NUMBER,
223             x_msg_data               OUT NOCOPY VARCHAR2,
224             p_chr_id                 IN  NUMBER)
225 
226   IS
227     l_rgpv_rec          rgpv_rec_type;
228     l_rulv_rec          rulv_rec_type;
229     lx_rgpv_rec         rgpv_rec_type;
230     lx_rulv_rec         rulv_rec_type;
231 
232     l_chr_id  okc_k_headers_b.id%TYPE;
233     l_rgp_id  NUMBER;
234     lv_property_tax_applicable okl_property_tax_setups.property_tax_applicable%TYPE;
235     lv_bill_property_tax okl_property_tax_setups.bill_property_tax%TYPE;
236     l_api_name		CONSTANT VARCHAR2(30) := 'CREATE_EST_PROP_TAX_RULES';
237 
238 	CURSOR get_est_prop_tax_info(p_chr_id  okc_k_headers_b.id%TYPE) IS
239     SELECT property_tax_applicable,
240 		   bill_property_tax
241     FROM okl_property_tax_setups
242     WHERE org_id = (SELECT authoring_org_id
243                     FROM okc_k_headers_b
244                     WHERE id = p_chr_id);
245 
246   BEGIN
247 
248       x_return_status := OKL_API.G_RET_STS_SUCCESS;
249 
250       l_chr_id := p_chr_id;
251 
252       IF okl_context.get_okc_org_id  IS NULL THEN
253         okl_context.set_okc_org_context(p_chr_id => l_chr_id);
254       END IF;
255 
256       -- call START_ACTIVITY to create savepoint, check compatibility
257       -- and initialize message list
258       x_return_status := OKL_API.START_ACTIVITY (
259                                l_api_name
260                                ,p_init_msg_list
261                                ,g_api_type
262                                ,x_return_status);
263 
264       -- check if activity started successfully
265       IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
266         RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
267       ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
268         RAISE OKL_API.G_EXCEPTION_ERROR;
269       END IF;
270 
271       OPEN get_est_prop_tax_info(l_chr_id);
272       FETCH get_est_prop_tax_info into lv_property_tax_applicable,
273                                        lv_bill_property_tax;
274       IF (get_est_prop_tax_info%NOTFOUND) THEN
275         RETURN;
276       END IF;
277       CLOSE get_est_prop_tax_info;
278 
279         -- Create the rule group for Estimated Property Tax
280         l_rgpv_rec.rgd_code      :=  'LAHDTX';
281         l_rgpv_rec.chr_id        :=  l_chr_id;
282         l_rgpv_rec.dnz_chr_id    :=  l_chr_id;
283         l_rgpv_rec.cle_id        :=  null;
284         l_rgpv_rec.rgp_type      :=  'KRG';
285 
286         OKL_RULE_PUB.create_rule_group(
287               p_api_version       =>  p_api_version,
288               p_init_msg_list     =>  p_init_msg_list,
289               x_return_status     =>  x_return_status,
290               x_msg_count         =>  x_msg_count,
291               x_msg_data          =>  x_msg_data,
292               p_rgpv_rec          =>  l_rgpv_rec,
293               x_rgpv_rec          =>  lx_rgpv_rec);
294 
295         IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
296           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
297         ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
298           RAISE OKL_API.G_EXCEPTION_ERROR;
299         END IF;
300 
301         l_rgp_id := lx_rgpv_rec.id;
302 
303         -- Create the Estimated Property Tax rule
304         l_rulv_rec.sfwt_flag         := 'N';
305         l_rulv_rec.dnz_chr_id        := l_chr_id;
306         l_rulv_rec.rgp_id            := l_rgp_id;
307         l_rulv_rec.std_template_yn   := 'N';
308         l_rulv_rec.warn_yn       := 'N';
309         l_rulv_rec.template_yn   := 'N';
310         l_rulv_rec.rule_information_category := 'LAPRTX';
311 
312         IF (lv_property_tax_applicable = 'YES') THEN
313           l_rulv_rec.rule_information1 := 'Y';
314         ELSE
315           l_rulv_rec.rule_information1 := 'N';
316         END IF;
317 		l_rulv_rec.rule_information3 := lv_bill_property_tax;
318 		l_rulv_rec.rule_information2 := 'N';
319 
320         OKL_RULE_PUB.create_rule(
321               p_api_version         => p_api_version,
322               p_init_msg_list       => p_init_msg_list,
323               x_return_status       => x_return_status,
324               x_msg_count           => x_msg_count,
325               x_msg_data            => x_msg_data,
326               p_rulv_rec            => l_rulv_rec,
327               x_rulv_rec            => lx_rulv_rec);
328 
329         IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
330           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
331         ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
332           RAISE OKL_API.G_EXCEPTION_ERROR;
333         END IF;
334 
335       OKL_API.END_ACTIVITY (x_msg_count  => x_msg_count,
336                             x_msg_data   => x_msg_data);
337   EXCEPTION
338     WHEN OKL_API.G_EXCEPTION_ERROR THEN
339       IF get_est_prop_tax_info%ISOPEN THEN
340         CLOSE get_est_prop_tax_info;
341       END IF;
342       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
343 			p_api_name  => l_api_name,
344 			p_pkg_name  => g_pkg_name,
345 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
346 			x_msg_count => x_msg_count,
347 			x_msg_data  => x_msg_data,
348 			p_api_type  => g_api_type);
349 
350     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
351       IF get_est_prop_tax_info%ISOPEN THEN
352         CLOSE get_est_prop_tax_info;
353       END IF;
354       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
355 			p_api_name  => l_api_name,
356 			p_pkg_name  => g_pkg_name,
357 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
358 			x_msg_count => x_msg_count,
359 			x_msg_data  => x_msg_data,
360 			p_api_type  => g_api_type);
361 
362     WHEN OTHERS THEN
363       IF get_est_prop_tax_info%ISOPEN THEN
364         CLOSE get_est_prop_tax_info;
365       END IF;
366       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
367 			p_api_name  => l_api_name,
368 			p_pkg_name  => g_pkg_name,
369 			p_exc_name  => 'OTHERS',
370 			x_msg_count => x_msg_count,
371 			x_msg_data  => x_msg_data,
372 			p_api_type  => g_api_type);
373   END create_est_prop_tax_rules;
374 
375 
376   -- Procedure Name  : sync_contract_property_tax
377   -- Description     : Sync the asset property tax rule information with that of
378   --                   the contract, if the flag at the asset level is checked.
379   -- Business Rules  :
380   -- Parameters      :
381   -- Version         : 1.0
382   -- End of comments
383   PROCEDURE sync_contract_property_tax(
384             p_api_version    	     IN  NUMBER,
385             p_init_msg_list          IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
386             x_return_status          OUT NOCOPY VARCHAR2,
387             x_msg_count              OUT NOCOPY NUMBER,
388             x_msg_data               OUT NOCOPY VARCHAR2,
389             p_chr_id                 IN  NUMBER)
390   IS
391     l_rulv_rec          rulv_rec_type;
392     lx_rulv_rec         rulv_rec_type;
393 
394     ln_cle_id                     okc_k_lines_v.id%TYPE;
395 
396     ln_rule_id                    okc_rules_v.id%TYPE;
397     lv_asset_k_rule_information1  okc_rules_v.rule_information1%TYPE;
398 
399     lv_k_rule_information1        okc_rules_v.rule_information1%TYPE;
400     lv_k_rule_information2        okc_rules_v.rule_information2%TYPE;
401     lv_k_rule_information3        okc_rules_v.rule_information3%TYPE;
402 
403     l_api_name	CONSTANT VARCHAR2(30) := 'SYNC_CONTRACT_PROPERTY_TAX';
404 
405     CURSOR get_contract_property_tax_info(p_chr_id  okc_k_headers_b.id%TYPE) IS
406     SELECT rul.rule_information1, rul.rule_information2, rul.rule_information3
407     FROM  OKC_RULES_V rul,
408           OKC_RULE_GROUPS_V rgp
409     WHERE rul.rgp_id = rgp.id
410     AND   rgp.dnz_chr_id = p_chr_id
411     AND   rgp.cle_id is NULL
412     AND   rgp.rgd_code = 'LAHDTX'
413     AND   rul.rule_information_category = 'LAPRTX';
414 
415     CURSOR get_contract_lines(p_chr_id  okc_k_headers_b.id%TYPE) IS
416     SELECT cle.id
417     FROM   OKC_K_LINES_V cle,
418            OKC_LINE_STYLES_V lse
419     WHERE  cle.lse_id = lse.id
420     AND    lse.lty_code = 'FREE_FORM1'
421     AND    lse.lse_type = 'TLS'
422     AND    cle.dnz_chr_id = p_chr_id;
423 
424     CURSOR get_asset_contract_tax_info(p_chr_id  okc_k_headers_b.id%TYPE,
425                                        p_cle_id  okc_k_lines_v.id%TYPE) IS
426     SELECT rul.rule_information1
427     FROM  OKC_RULES_V rul,
428           OKC_RULE_GROUPS_V rgp
429     WHERE rul.rgp_id = rgp.id
430     AND   rgp.dnz_chr_id = p_chr_id
431     AND   rgp.cle_id = p_cle_id
432     AND   rgp.rgd_code = 'LAASTX'
433     AND   rul.rule_information_category = 'LAASTK';
434 
435     CURSOR get_asset_property_tax_info(p_chr_id  okc_k_headers_b.id%TYPE,
436                                        p_cle_id  okc_k_lines_v.id%TYPE) IS
437     SELECT rul.id
438     FROM  OKC_RULES_V rul,
439           OKC_RULE_GROUPS_V rgp
440     WHERE rul.rgp_id = rgp.id
441     AND   rgp.dnz_chr_id = p_chr_id
442     AND   rgp.cle_id = p_cle_id
443     AND   rgp.rgd_code = 'LAASTX'
444     AND   rul.rule_information_category = 'LAPRTX';
445 
446   BEGIN
447 
448       x_return_status := OKL_API.G_RET_STS_SUCCESS;
449 
450       IF okl_context.get_okc_org_id  IS NULL THEN
451         okl_context.set_okc_org_context(p_chr_id => p_chr_id);
452       END IF;
453 
454       -- call START_ACTIVITY to create savepoint, check compatibility
455       -- and initialize message list
456       x_return_status := OKL_API.START_ACTIVITY (
457                                l_api_name
458                                ,p_init_msg_list
459                                ,g_api_type
460                                ,x_return_status);
461 
462       -- check if activity started successfully
463       IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
464         RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
465       ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
466         RAISE OKL_API.G_EXCEPTION_ERROR;
467       END IF;
468 
469       OPEN  get_contract_property_tax_info(p_chr_id);
470       FETCH get_contract_property_tax_info into lv_k_rule_information1,
471                                                 lv_k_rule_information2,
472                                                 lv_k_rule_information3;
473       IF (get_contract_property_tax_info%NOTFOUND) THEN
474         RETURN;
475       END IF;
476       CLOSE get_contract_property_tax_info;
477 
478       FOR r_get_contract_lines IN get_contract_lines(p_chr_id => p_chr_id) LOOP
479 
480         OPEN get_asset_contract_tax_info(p_chr_id  => p_chr_id,
481                                          p_cle_id  => r_get_contract_lines.id);
482         FETCH get_asset_contract_tax_info into lv_asset_k_rule_information1;
483         CLOSE get_asset_contract_tax_info;
484 
485         IF (lv_asset_k_rule_information1 IS NOT NULL AND
486             lv_asset_k_rule_information1 = 'Y') THEN
487 
488           lv_asset_k_rule_information1 := null; -- Reset the value
489 
490           OPEN get_asset_property_tax_info(p_chr_id  => p_chr_id,
491                                            p_cle_id  => r_get_contract_lines.id);
492           FETCH get_asset_property_tax_info into ln_rule_id;
493           CLOSE get_asset_property_tax_info;
494 
495           l_rulv_rec.id := ln_rule_id;
496           l_rulv_rec.rule_information1 := lv_k_rule_information1;
497           l_rulv_rec.rule_information2 := lv_k_rule_information2;
498           l_rulv_rec.rule_information3 := lv_k_rule_information3;
499 
500           OKL_RULE_PUB.update_rule(
501             p_api_version         => p_api_version,
502             p_init_msg_list       => p_init_msg_list,
503             x_return_status       => x_return_status,
504             x_msg_count           => x_msg_count,
505             x_msg_data            => x_msg_data,
506             p_rulv_rec            => l_rulv_rec,
507             x_rulv_rec            => lx_rulv_rec);
508 
509           IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
510             RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
511           ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
512             RAISE OKL_API.G_EXCEPTION_ERROR;
513           END IF;
514         END IF;
515       END LOOP;
516 
517       OKL_API.END_ACTIVITY (x_msg_count  => x_msg_count,
518                             x_msg_data   => x_msg_data);
519   EXCEPTION
520     WHEN OKL_API.G_EXCEPTION_ERROR THEN
521     IF get_contract_property_tax_info%ISOPEN THEN
522       CLOSE get_contract_property_tax_info;
523     END IF;
524     IF get_asset_contract_tax_info%ISOPEN THEN
525       CLOSE get_asset_contract_tax_info;
526     END IF;
527     IF get_contract_lines%ISOPEN THEN
528       CLOSE get_contract_lines;
529     END IF;
530     IF get_asset_property_tax_info%ISOPEN THEN
531       CLOSE get_asset_property_tax_info;
532     END IF;
533     x_return_status := OKL_API.HANDLE_EXCEPTIONS(
534                                l_api_name,
535                                g_pkg_name,
536                                'OKL_API.G_RET_STS_ERROR',
537                                x_msg_count,
538                                x_msg_data,
539                                g_api_type);
540     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
541     IF get_contract_property_tax_info%ISOPEN THEN
542       CLOSE get_contract_property_tax_info;
543     END IF;
544     IF get_asset_contract_tax_info%ISOPEN THEN
545       CLOSE get_asset_contract_tax_info;
546     END IF;
547     IF get_contract_lines%ISOPEN THEN
548       CLOSE get_contract_lines;
549     END IF;
550     IF get_asset_property_tax_info%ISOPEN THEN
551       CLOSE get_asset_property_tax_info;
552     END IF;
553     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
554                               l_api_name,
555                               g_pkg_name,
556                               'OKL_API.G_RET_STS_UNEXP_ERROR',
557                               x_msg_count,
558                               x_msg_data,
559                               g_api_type);
560     WHEN OTHERS THEN
561     IF get_contract_property_tax_info%ISOPEN THEN
562       CLOSE get_contract_property_tax_info;
563     END IF;
564     IF get_asset_contract_tax_info%ISOPEN THEN
565       CLOSE get_asset_contract_tax_info;
566     END IF;
567     IF get_contract_lines%ISOPEN THEN
568       CLOSE get_contract_lines;
569     END IF;
570     IF get_asset_property_tax_info%ISOPEN THEN
571       CLOSE get_asset_property_tax_info;
572     END IF;
573     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
574                               l_api_name,
575                               g_pkg_name,
576                               'OTHERS',
577                               x_msg_count,
578                               x_msg_data,
579                               g_api_type);
580   END sync_contract_property_tax;
581 
582 END OKL_LA_PROPERTY_TAX_PVT;