DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_DEAL_PARTIES_PVT

Source


1 Package body OKL_DEAL_PARTIES_PVT as
2 /* $Header: OKLRDPRB.pls 120.3 2007/06/21 18:43:09 asahoo noship $ */
3 -------------------------------------------------------------------------------------------------
4 -- GLOBAL MESSAGE CONSTANTS
5 -------------------------------------------------------------------------------------------------
6   G_INVALID_CRITERIA            CONSTANT  VARCHAR2(200) := 'OKL_LLA_INVALID_CRITERIA';
7   G_FND_APP                     CONSTANT  VARCHAR2(200) :=  OKL_API.G_FND_APP;
8   G_INVALID_VALUE               CONSTANT  VARCHAR2(200) :=  OKL_API.G_INVALID_VALUE;
9   G_COL_NAME_TOKEN              CONSTANT  VARCHAR2(200) :=  OKL_API.G_COL_NAME_TOKEN;
10   G_UNEXPECTED_ERROR            CONSTANT  VARCHAR2(200) := 'OKC_CONTRACTS_UNEXP_ERROR';
11   G_SQLERRM_TOKEN               CONSTANT  VARCHAR2(200) := 'SQLerrm';
12   G_SQLCODE_TOKEN               CONSTANT  VARCHAR2(200) := 'SQLcode';
13 -------------------------------------------------------------------------------------------------
14 -- GLOBAL OKL MESSAGES
15 -------------------------------------------------------------------------------------------------
16   G_REQUIRED_VALUE              CONSTANT  VARCHAR2(200) := 'OKL_REQUIRED_VALUE';
17   G_LLA_AST_SERIAL              CONSTANT  VARCHAR2(200) := 'OKL_LLA_AST_SERIAL';
18   G_MISSING_CONTRACT            CONSTANT  VARCHAR2(200) := 'OKL_LLA_CONTRACT_NOT_FOUND';
19   G_CONTRACT_ID_TOKEN           CONSTANT  VARCHAR2(30)  := 'CONTRACT_ID';
20 -------------------------------------------------------------------------------------------------
21 -- GLOBAL EXCEPTION
22 -------------------------------------------------------------------------------------------------
23   G_EXCEPTION_HALT_VALIDATION             EXCEPTION;
24   G_EXCEPTION_STOP_VALIDATION             EXCEPTION;
25   G_API_TYPE                    CONSTANT  VARCHAR2(4) := '_PVT';
26   G_API_VERSION                 CONSTANT  NUMBER := 1.0;
27   G_SCOPE                       CONSTANT  VARCHAR2(4) := '_PVT';
28 -------------------------------------------------------------------------------------------------
29 -- GLOBAL VARIABLES
30 -------------------------------------------------------------------------------------------------
31   G_PKG_NAME                    CONSTANT  VARCHAR2(200) := 'OKL_DEAL_PARTIES_PVT';
32   G_APP_NAME                    CONSTANT  VARCHAR2(3)   :=  OKL_API.G_APP_NAME;
33 -------------------------------------------------------------------------------------------------
34 
35 PROCEDURE process_label_holder(
36     p_api_version                  IN  NUMBER,
37     p_init_msg_list                IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
38     x_return_status                OUT NOCOPY VARCHAR2,
39     x_msg_count                    OUT NOCOPY NUMBER,
40     x_msg_data                     OUT NOCOPY VARCHAR2,
41     p_rgpv_rec                     IN  party_role_rec_type,
42     x_rgpv_rec                     OUT NOCOPY party_role_rec_type) IS
43 
44   l_api_name         VARCHAR2(30) := 'process_label_holder';
45   l_api_version      CONSTANT NUMBER    := 1.0;
46 
47   CURSOR c_get_rrd_id(p_chr_id NUMBER, p_rle_code VARCHAR2, p_rgd_code VARCHAR2) IS
48   SELECT rgrdfs.id
49   FROM okc_k_headers_b chr,
50        okc_subclass_roles sre,
51        okc_role_sources rse,
52        okc_subclass_rg_defs rgdfs,
53        okc_rg_role_defs rgrdfs
54   WHERE chr.id = p_chr_id
55   AND sre.scs_code = chr.scs_code
56   AND sre.rle_code = rse.rle_code
57   AND rse.rle_code = p_rle_code
58   AND rse.buy_or_sell = chr.buy_or_sell
59   AND rgdfs.scs_code = chr.scs_code
60   AND rgdfs.rgd_code = p_rgd_code
61   AND rgrdfs.srd_id = rgdfs.id
62   AND rgrdfs.sre_id = sre.id;
63 
64   CURSOR c_label_holder(p_chr_id NUMBER, p_rle_code VARCHAR2) IS
65   SELECT 'Y'
66   FROM OKC_K_PARTY_ROLES_B
67   WHERE dnz_chr_id = p_chr_id
68   AND chr_id = p_chr_id
69   AND rle_code = p_rle_code;
70 
71   l_party_found VARCHAR2(1);
72   l_rrd_id NUMBER;
73 
74   lp_lalabl_rgpv_rec  OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
75   lx_lalabl_rgpv_rec  OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
76 
77   lp_lalogo_rulv_rec  Okl_Rule_Pub.rulv_rec_type;
78   lx_lalogo_rulv_rec  Okl_Rule_Pub.rulv_rec_type;
79 
80   lp_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
81   lx_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
82 
83   lp_kplv_rec okl_k_party_roles_pvt.kplv_rec_type;
84   lx_kplv_rec okl_k_party_roles_pvt.kplv_rec_type;
85 
86   lp_rmpv_rec  OKL_OKC_MIGRATION_PVT.rmpv_rec_type;
87   lx_rmpv_rec  OKL_OKC_MIGRATION_PVT.rmpv_rec_type;
88 
89   l_msg_data VARCHAR2(4000);
90   l_msg_index_out number;
91 
92 BEGIN
93     x_rgpv_rec := p_rgpv_rec;
94     x_return_status := OKL_API.START_ACTIVITY(
95                         p_api_name      => l_api_name,
96                         p_pkg_name      => g_pkg_name,
97                         p_init_msg_list => p_init_msg_list,
98                         l_api_version   => l_api_version,
99                         p_api_version   => p_api_version,
100                         p_api_type      => g_api_type,
101                         x_return_status => x_return_status);
102 
103         -- check if activity started successfully
104         IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
105            RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
106         ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
107            RAISE OKL_API.G_EXCEPTION_ERROR;
108         END IF;
109 
110        OPEN c_label_holder(p_chr_id   => p_rgpv_rec.chr_id,
111                            p_rle_code => 'PRIVATE_LABEL');
112        FETCH c_label_holder INTO l_party_found;
113        CLOSE c_label_holder;
114 
115        IF (l_party_found = 'Y') THEN
116            OKL_API.set_message(
117                   p_app_name      => G_APP_NAME,
118                   p_msg_name      => 'OKL_LLA_PVT_LBL');
119         RAISE OKL_API.G_EXCEPTION_ERROR;
120        END IF;
121 
122        lp_cplv_rec.id                 := p_rgpv_rec.party_role_id;
123        lp_cplv_rec.object1_id1        := p_rgpv_rec.party_id;
124        lp_cplv_rec.object1_id2        := '#';
125        lp_cplv_rec.jtot_object1_code  := 'OKX_PARTY';
126        lp_cplv_rec.rle_code           := 'PRIVATE_LABEL';
127        lp_cplv_rec.dnz_chr_id         := p_rgpv_rec.chr_id;
128        lp_cplv_rec.chr_id             := p_rgpv_rec.chr_id;
129        lp_kplv_rec.attribute_category := p_rgpv_rec.attribute_category;
130        lp_kplv_rec.attribute1         := p_rgpv_rec.attribute1;
131        lp_kplv_rec.attribute2         := p_rgpv_rec.attribute2;
132        lp_kplv_rec.attribute3         := p_rgpv_rec.attribute3;
133        lp_kplv_rec.attribute4         := p_rgpv_rec.attribute4;
134        lp_kplv_rec.attribute5         := p_rgpv_rec.attribute5;
135        lp_kplv_rec.attribute6         := p_rgpv_rec.attribute6;
136        lp_kplv_rec.attribute7         := p_rgpv_rec.attribute7;
137        lp_kplv_rec.attribute8         := p_rgpv_rec.attribute8;
138        lp_kplv_rec.attribute9         := p_rgpv_rec.attribute9;
139        lp_kplv_rec.attribute10        := p_rgpv_rec.attribute10;
140        lp_kplv_rec.attribute11        := p_rgpv_rec.attribute11;
141        lp_kplv_rec.attribute12        := p_rgpv_rec.attribute12;
142        lp_kplv_rec.attribute13        := p_rgpv_rec.attribute13;
143        lp_kplv_rec.attribute14        := p_rgpv_rec.attribute14;
144        lp_kplv_rec.attribute15        := p_rgpv_rec.attribute15;
145        lp_kplv_rec.validate_dff_yn    := 'Y';
146 
147     IF (p_rgpv_rec.party_role_id IS NULL) THEN
148        OKL_K_PARTY_ROLES_PVT.create_k_party_role(
149          p_api_version      => p_api_version,
150          p_init_msg_list    => p_init_msg_list,
151          x_return_status    => x_return_status,
152          x_msg_count        => x_msg_count,
153          x_msg_data         => x_msg_data,
154          p_cplv_rec         => lp_cplv_rec,
155          x_cplv_rec         => lx_cplv_rec,
156          p_kplv_rec         => lp_kplv_rec,
157          x_kplv_rec         => lx_kplv_rec);
158 
159          IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
160             RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
161          ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
162             RAISE OKL_API.G_EXCEPTION_ERROR;
163          END IF;
164     ELSE
165 
166        OKL_K_PARTY_ROLES_PVT.update_k_party_role(
167          p_api_version      => p_api_version,
168          p_init_msg_list    => p_init_msg_list,
169          x_return_status    => x_return_status,
170          x_msg_count        => x_msg_count,
171          x_msg_data         => x_msg_data,
172          p_cplv_rec         => lp_cplv_rec,
173          x_cplv_rec         => lx_cplv_rec,
174          p_kplv_rec         => lp_kplv_rec,
175          x_kplv_rec         => lx_kplv_rec);
176 
177          IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
178             RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
179          ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
180             RAISE OKL_API.G_EXCEPTION_ERROR;
181          END IF;
182 
183     END IF;
184 
185     IF (p_rgpv_rec.rgp_id IS NULL) THEN
186     -- Create LALABL rule group
187        lp_lalabl_rgpv_rec.id := NULL;
188        lp_lalabl_rgpv_rec.rgd_code := 'LALABL';
189        lp_lalabl_rgpv_rec.dnz_chr_id := p_rgpv_rec.chr_id;
190        lp_lalabl_rgpv_rec.chr_id := p_rgpv_rec.chr_id;
191        lp_lalabl_rgpv_rec.rgp_type := 'KRG';
192 
193        OKL_RULE_PUB.create_rule_group(
194            p_api_version    => p_api_version,
195            p_init_msg_list  => p_init_msg_list,
196            x_return_status  => x_return_status,
197            x_msg_count      => x_msg_count,
198            x_msg_data       => x_msg_data,
199            p_rgpv_rec       => lp_lalabl_rgpv_rec,
200            x_rgpv_rec       => lx_lalabl_rgpv_rec);
201 
202          IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
203             RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
204          ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
205             RAISE OKL_API.G_EXCEPTION_ERROR;
206          END IF;
207 
208          x_rgpv_rec.rgp_id := lx_lalabl_rgpv_rec.id;
209 
210     ELSE
211 
212     -- Update LALABL rule group
213        lp_lalabl_rgpv_rec.id := p_rgpv_rec.rgp_id;
214        lp_lalabl_rgpv_rec.rgd_code := 'LALABL';
215        lp_lalabl_rgpv_rec.dnz_chr_id := p_rgpv_rec.chr_id;
216        lp_lalabl_rgpv_rec.chr_id := p_rgpv_rec.chr_id;
217        lp_lalabl_rgpv_rec.rgp_type := 'KRG';
218 
219        OKL_RULE_PUB.update_rule_group(
220            p_api_version    => p_api_version,
221            p_init_msg_list  => p_init_msg_list,
222            x_return_status  => x_return_status,
223            x_msg_count      => x_msg_count,
224            x_msg_data       => x_msg_data,
225            p_rgpv_rec       => lp_lalabl_rgpv_rec,
226            x_rgpv_rec       => lx_lalabl_rgpv_rec);
227 
228        IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
229             RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
230        ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
231             RAISE OKL_API.G_EXCEPTION_ERROR;
232        END IF;
233 
234          x_rgpv_rec.rgp_id := lx_lalabl_rgpv_rec.id;
235 
236     END IF;
237 
238     IF (p_rgpv_rec.rul_lalogo_id IS NULL) THEN
239       -- Create LALOGO rule
240       lp_lalogo_rulv_rec.id := NULL;
241       lp_lalogo_rulv_rec.rgp_id := lx_lalabl_rgpv_rec.id;
242       lp_lalogo_rulv_rec.dnz_chr_id := p_rgpv_rec.chr_id;
243       lp_lalogo_rulv_rec.rule_information_category := 'LALOGO';
244       lp_lalogo_rulv_rec.rule_information1 := p_rgpv_rec.lalogo_rule_information1;
245       lp_lalogo_rulv_rec.WARN_YN := 'N';
246       lp_lalogo_rulv_rec.STD_TEMPLATE_YN := 'N';
247 
248     OKL_RULE_PUB.create_rule(
249         p_api_version    => p_api_version,
250         p_init_msg_list  => p_init_msg_list,
251         x_return_status  => x_return_status,
252         x_msg_count      => x_msg_count,
253         x_msg_data       => x_msg_data,
254         p_rulv_rec       => lp_lalogo_rulv_rec,
255         x_rulv_rec       => lx_lalogo_rulv_rec);
256 
257       IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
258          RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
259       ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
260          RAISE OKL_API.G_EXCEPTION_ERROR;
261       END IF;
262 
263       x_rgpv_rec.rul_lalogo_id := lx_lalogo_rulv_rec.id;
264 
265     ELSE
266 
267       -- Update LALOGO rule
268       lp_lalogo_rulv_rec.id := p_rgpv_rec.rul_lalogo_id;
269       lp_lalogo_rulv_rec.rgp_id := p_rgpv_rec.rgp_id;
270       lp_lalogo_rulv_rec.dnz_chr_id := p_rgpv_rec.chr_id;
271       lp_lalogo_rulv_rec.rule_information_category := 'LALOGO';
272       lp_lalogo_rulv_rec.rule_information1 := p_rgpv_rec.lalogo_rule_information1;
273       lp_lalogo_rulv_rec.WARN_YN := 'N';
274       lp_lalogo_rulv_rec.STD_TEMPLATE_YN := 'N';
275 
276       OKL_RULE_PUB.update_rule(
277         p_api_version    => p_api_version,
278         p_init_msg_list  => p_init_msg_list,
279         x_return_status  => x_return_status,
280         x_msg_count      => x_msg_count,
281         x_msg_data       => x_msg_data,
282         p_rulv_rec       => lp_lalogo_rulv_rec,
283         x_rulv_rec       => lx_lalogo_rulv_rec);
284 
285       IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
286          RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
287       ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
288          RAISE OKL_API.G_EXCEPTION_ERROR;
289       END IF;
290 
291       x_rgpv_rec.rul_lalogo_id := lx_lalogo_rulv_rec.id;
292 
293     END IF;
294 
295 
296     IF (p_rgpv_rec.rgp_id IS NULL) THEN
297         OPEN c_get_rrd_id(p_rgpv_rec.chr_id, 'PRIVATE_LABEL', 'LALABL');
298         FETCH c_get_rrd_id INTO l_rrd_id;
299         CLOSE c_get_rrd_id;
300 
301         lp_rmpv_rec.rgp_id     := x_rgpv_rec.rgp_id;
302         --lp_rmpv_rec.cpl_id     := p_rgpv_rec.party_id;
303         lp_rmpv_rec.cpl_id := lx_cplv_rec.id;
304         lp_rmpv_rec.dnz_chr_id := p_rgpv_rec.chr_id;
305         lp_rmpv_rec.rrd_id     := l_rrd_id;
306 
307         OKL_RULE_PUB.create_rg_mode_pty_role(
308           p_api_version    => p_api_version,
309           p_init_msg_list  => p_init_msg_list,
310           x_return_status  => x_return_status,
311           x_msg_count      => x_msg_count,
312           x_msg_data       => x_msg_data,
313           p_rmpv_rec       => lp_rmpv_rec,
314           x_rmpv_rec       => lx_rmpv_rec);
315 
316          IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
317             RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
318          ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
319             RAISE OKL_API.G_EXCEPTION_ERROR;
320          END IF;
321 
322     END IF;
323 
324     OKL_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
325 
326   EXCEPTION
327     WHEN OKL_API.G_EXCEPTION_ERROR THEN
328       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
329                         p_api_name  => l_api_name,
330                         p_pkg_name  => g_pkg_name,
331                         p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
332                         x_msg_count => x_msg_count,
333                         x_msg_data  => x_msg_data,
334                         p_api_type  => g_api_type);
335 
336     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
337       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
338                         p_api_name  => l_api_name,
339                         p_pkg_name  => g_pkg_name,
340                         p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
341                         x_msg_count => x_msg_count,
342                         x_msg_data  => x_msg_data,
343                         p_api_type  => g_api_type);
344 
345     WHEN OTHERS THEN
346       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
347                         p_api_name  => l_api_name,
348                         p_pkg_name  => g_pkg_name,
349                         p_exc_name  => 'OTHERS',
350                         x_msg_count => x_msg_count,
351                         x_msg_data  => x_msg_data,
352                         p_api_type  => g_api_type);
353 END process_label_holder;
354 
355 
356 PROCEDURE load_guarantor(
357       p_api_version                IN  NUMBER,
358       p_init_msg_list              IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
359       x_return_status              OUT NOCOPY VARCHAR2,
360       x_msg_count                  OUT NOCOPY NUMBER,
361       x_msg_data                   OUT NOCOPY VARCHAR2,
362       p_chr_id                     IN  NUMBER,
363       p_party_id                   IN  NUMBER,
364       x_party_role_rec             OUT NOCOPY party_role_rec_type) IS
365 
366   l_api_name         VARCHAR2(30)     := 'load_guarantor';
367   l_api_version      CONSTANT NUMBER  := 1.0;
368 
369   CURSOR c_rule(p_chr_id NUMBER, p_rgd_code VARCHAR2, p_rule_info_cat VARCHAR2, p_rgp_id NUMBER) IS
370   SELECT rul.rgp_id,rgp.rgd_code,rul.ID,rul.object1_id1,rul.object1_id2,rul.jtot_object1_code,
371          rul.rule_information_category,rul.rule_information1,rul.rule_information2,rul.rule_information3,
372          rul.rule_information4
373   FROM  okc_rules_b rul,
374         okc_rule_groups_b rgp
375   WHERE rgp.chr_id = p_chr_id
376   AND   rgp.id = p_rgp_id
377   AND   rgp.dnz_chr_id = p_chr_id
378   AND   rgp.rgd_code = p_rgd_code
379   AND   rgp.id = rul.rgp_id
380   AND   rgp.dnz_chr_id = rul.dnz_chr_id
381   AND   rul.rule_information_category = p_rule_info_cat;
382 
383   l_rule c_rule%ROWTYPE;
384 
385   CURSOR c_party_role_info(p_chr_id NUMBER, p_rle_code VARCHAR2, p_party_id NUMBER) IS
386   SELECT okc_party_roles.id,object1_id1,object1_id2,jtot_object1_code,okl_party_roles.attribute_category,
387          okl_party_roles.attribute1,okl_party_roles.attribute2,okl_party_roles.attribute3,okl_party_roles.attribute4,
388          okl_party_roles.attribute5,okl_party_roles.attribute6,okl_party_roles.attribute7,okl_party_roles.attribute8,
389 	 okl_party_roles.attribute9,okl_party_roles.attribute10,okl_party_roles.attribute11,okl_party_roles.attribute12,
390 	 okl_party_roles.attribute13,okl_party_roles.attribute14,okl_party_roles.attribute15
391   FROM okc_k_party_roles_b okc_party_roles,
392        okl_k_party_roles okl_party_roles
393   WHERE okc_party_roles.dnz_chr_id = p_chr_id
394   AND okc_party_roles.cle_id is null
395   AND okc_party_roles.rle_code = p_rle_code
396   AND okc_party_roles.id = okl_party_roles.id
397   AND okc_party_roles.object1_id1 = p_party_id;
398 
399   l_party_role_info c_party_role_info%ROWTYPE;
400 
401   CURSOR c_party_site(p_party_site_id NUMBER) IS
402   SELECT party_site_number
403   FROM hz_party_sites
404   WHERE party_site_id = p_party_site_id;
405 
406   CURSOR c_party_name(p_party_id NUMBER) IS
407   SELECT party_name
408   FROM hz_parties
409   WHERE party_id = p_party_id;
410 
411   CURSOR c_get_rrd_id(p_chr_id NUMBER, p_rle_code VARCHAR2, p_rgd_code VARCHAR2) IS
412   SELECT rgrdfs.id
413   FROM okc_k_headers_b chr,
414        okc_subclass_roles sre,
415        okc_role_sources rse,
416        okc_subclass_rg_defs rgdfs,
417        okc_rg_role_defs rgrdfs
418   WHERE chr.id = p_chr_id
419   AND sre.scs_code = chr.scs_code
420   AND sre.rle_code = rse.rle_code
421   AND rse.rle_code = p_rle_code
422   AND rse.buy_or_sell = chr.buy_or_sell
423   AND rgdfs.scs_code = chr.scs_code
424   AND rgdfs.rgd_code = p_rgd_code
425   AND rgrdfs.srd_id = rgdfs.id
426   AND rgrdfs.sre_id = sre.id;
427 
428   CURSOR c_rgp_id(p_rrd_id NUMBER, p_dnz_chr_id NUMBER, p_cpl_id NUMBER) IS
429   SELECT rgp_id
430   FROM okc_rg_party_roles
431   WHERE rrd_id = p_rrd_id
432   AND dnz_chr_id = p_dnz_chr_id
433   AND cpl_id = p_cpl_id;
434 
435   l_rrd_id NUMBER;
436   l_rgp_id NUMBER;
437 
438   l_msg_data VARCHAR2(4000);
439   l_msg_index_out number;
440 BEGIN
441     x_return_status := OKL_API.START_ACTIVITY(
442                         p_api_name      => l_api_name,
443                         p_pkg_name      => g_pkg_name,
444                         p_init_msg_list => p_init_msg_list,
445                         l_api_version   => l_api_version,
446                         p_api_version   => p_api_version,
447                         p_api_type      => g_api_type,
448                         x_return_status => x_return_status);
449 
450         -- check if activity started successfully
451         IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
452            RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
453         ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
454            RAISE OKL_API.G_EXCEPTION_ERROR;
455         END IF;
456 
457     x_party_role_rec.chr_id     := p_chr_id;
458     x_party_role_rec.party_role := OKL_LLA_UTIL_PVT.GET_LOOKUP_MEANING('OKC_ROLE','GUARANTOR');
459 
460     --Open the Cursor to get party_role_id
461     OPEN c_party_role_info(p_chr_id, 'GUARANTOR', p_party_id);
462     FETCH c_party_role_info INTO l_party_role_info;
463     x_party_role_rec.party_role_id      := l_party_role_info.id;
464     x_party_role_rec.party_id           := l_party_role_info.object1_id1;
465     x_party_role_rec.attribute_category := l_party_role_info.attribute_category;
466     x_party_role_rec.attribute1         := l_party_role_info.attribute1;
467     x_party_role_rec.attribute2         := l_party_role_info.attribute2;
468     x_party_role_rec.attribute3         := l_party_role_info.attribute3;
469     x_party_role_rec.attribute4         := l_party_role_info.attribute4;
470     x_party_role_rec.attribute5         := l_party_role_info.attribute5;
471     x_party_role_rec.attribute6         := l_party_role_info.attribute6;
472     x_party_role_rec.attribute7         := l_party_role_info.attribute7;
473     x_party_role_rec.attribute8         := l_party_role_info.attribute8;
474     x_party_role_rec.attribute9         := l_party_role_info.attribute9;
475     x_party_role_rec.attribute10        := l_party_role_info.attribute10;
476     x_party_role_rec.attribute11        := l_party_role_info.attribute11;
477     x_party_role_rec.attribute12        := l_party_role_info.attribute12;
478     x_party_role_rec.attribute13        := l_party_role_info.attribute13;
479     x_party_role_rec.attribute14        := l_party_role_info.attribute14;
480     x_party_role_rec.attribute15        := l_party_role_info.attribute15;
481     CLOSE c_party_role_info;
482 
483     --Open the Cursor to get rrd_id
484     OPEN c_get_rrd_id(p_chr_id, 'GUARANTOR', 'LAGRDT');
485     FETCH c_get_rrd_id INTO l_rrd_id;
486     CLOSE c_get_rrd_id;
487 
488     --Open the Cursor to get rgp_id
489     OPEN c_rgp_id(p_rrd_id     => l_rrd_id,
490                   p_dnz_chr_id => p_chr_id,
491                   p_cpl_id     => x_party_role_rec.party_role_id);
492     FETCH c_rgp_id INTO l_rgp_id;
493     CLOSE c_rgp_id;
494 
495     OPEN c_rule(p_chr_id, 'LAGRDT', 'LAGRNP', l_rgp_id);
496     FETCH c_rule INTO l_rule;
497     x_party_role_rec.rgp_id                   := l_rule.rgp_id;
498     x_party_role_rec.rgp_lagrdt_lagrnp_id     := l_rule.rgp_id;
499     x_party_role_rec.rgp_lagrdt_lagrnt_id     := l_rule.rgp_id;
500     x_party_role_rec.rul_lagrnp_id            := l_rule.id;
501     x_party_role_rec.rul_lagrnp_object1_id1   := l_rule.object1_id1;
502     x_party_role_rec.rul_lagrnp_object1_id2   := l_rule.object1_id2;
503     x_party_role_rec.lagrnp_rule_info_cat     := l_rule.rule_information_category;
504     x_party_role_rec.lagrnp_rule_information1 := l_rule.rule_information1;
505     CLOSE c_rule;
506 
507     OPEN c_rule(p_chr_id, 'LAGRDT', 'LAGRNT',l_rgp_id);
508     FETCH c_rule INTO l_rule;
509     x_party_role_rec.rul_lagrnt_id            := l_rule.id;
510     x_party_role_rec.lagrnt_rule_info_cat     := l_rule.rule_information_category;
511     x_party_role_rec.lagrnt_rule_information1 := l_rule.rule_information1;
512     x_party_role_rec.lagrnt_rule_information2 := l_rule.rule_information2;
513     x_party_role_rec.lagrnt_rule_information3 := l_rule.rule_information3;
514     x_party_role_rec.lagrnt_rule_information4 := l_rule.rule_information4;
515     CLOSE c_rule;
516 
517 
518     OPEN c_party_site(x_party_role_rec.rul_lagrnp_object1_id1);
519     FETCH c_party_site INTO x_party_role_rec.party_site_number;
520     CLOSE c_party_site;
521 
522     OPEN c_party_name(x_party_role_rec.party_id);
523     FETCH c_party_name INTO x_party_role_rec.party_name;
524     CLOSE c_party_name;
525 
526     OKC_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
527 
528   EXCEPTION
529     WHEN OKC_API.G_EXCEPTION_ERROR THEN
530       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
531                         p_api_name  => l_api_name,
532                         p_pkg_name  => g_pkg_name,
533                         p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
534                         x_msg_count => x_msg_count,
535                         x_msg_data  => x_msg_data,
536                         p_api_type  => g_api_type);
537 
538     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
539       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
540                         p_api_name  => l_api_name,
541                         p_pkg_name  => g_pkg_name,
542                         p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
543                         x_msg_count => x_msg_count,
544                         x_msg_data  => x_msg_data,
545                         p_api_type  => g_api_type);
546 
547     WHEN OTHERS THEN
548       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
549                         p_api_name  => l_api_name,
550                         p_pkg_name  => g_pkg_name,
551                         p_exc_name  => 'OTHERS',
552                         x_msg_count => x_msg_count,
553                         x_msg_data  => x_msg_data,
554                         p_api_type  => g_api_type);
555 
556 END load_guarantor;
557 
558 PROCEDURE process_guarantor(
559       p_api_version                IN  NUMBER,
560       p_init_msg_list              IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
561       x_return_status              OUT NOCOPY VARCHAR2,
562       x_msg_count                  OUT NOCOPY NUMBER,
563       x_msg_data                   OUT NOCOPY VARCHAR2,
564       p_rgpv_rec                   IN  party_role_rec_type,
565       x_rgpv_rec                   OUT NOCOPY party_role_rec_type) IS
566 
567   l_api_name         VARCHAR2(30) := 'process_gurantor';
568   l_api_version      CONSTANT NUMBER    := 1.0;
569 
570   lp_lagrdt_rgpv_rec  OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
571   lx_lagrdt_rgpv_rec  OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
572 
573   lp_lagrnp_rulv_rec  Okl_Rule_Pub.rulv_rec_type;
574   lx_lagrnp_rulv_rec  Okl_Rule_Pub.rulv_rec_type;
575 
576   lp_lagrnt_rulv_rec  Okl_Rule_Pub.rulv_rec_type;
577   lx_lagrnt_rulv_rec  Okl_Rule_Pub.rulv_rec_type;
578 
579   lp_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
580   lx_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
581 
582   lp_kplv_rec okl_k_party_roles_pvt.kplv_rec_type;
583   lx_kplv_rec okl_k_party_roles_pvt.kplv_rec_type;
584 
585   lp_rmpv_rec  OKL_OKC_MIGRATION_PVT.rmpv_rec_type;
586   lx_rmpv_rec  OKL_OKC_MIGRATION_PVT.rmpv_rec_type;
587 
588   CURSOR c_get_rrd_id(p_chr_id NUMBER, p_rle_code VARCHAR2, p_rgd_code VARCHAR2) IS
589   SELECT rgrdfs.id
590   FROM okc_k_headers_b chr,
591        okc_subclass_roles sre,
592        okc_role_sources rse,
593        okc_subclass_rg_defs rgdfs,
594        okc_rg_role_defs rgrdfs
595   WHERE chr.id = p_chr_id
596   AND sre.scs_code = chr.scs_code
597   AND sre.rle_code = rse.rle_code
598   AND rse.rle_code = p_rle_code
599   AND rse.buy_or_sell = chr.buy_or_sell
600   AND rgdfs.scs_code = chr.scs_code
601   AND rgdfs.rgd_code = p_rgd_code
602   AND rgrdfs.srd_id = rgdfs.id
603   AND rgrdfs.sre_id = sre.id;
604 
605   l_rrd_id NUMBER;
606 
607   l_msg_data VARCHAR2(4000);
608   l_msg_index_out number;
609 BEGIN
610     x_rgpv_rec := p_rgpv_rec;
611     x_return_status := OKL_API.START_ACTIVITY(
612                         p_api_name      => l_api_name,
613                         p_pkg_name      => g_pkg_name,
614                         p_init_msg_list => p_init_msg_list,
615                         l_api_version   => l_api_version,
616                         p_api_version   => p_api_version,
617                         p_api_type      => g_api_type,
618                         x_return_status => x_return_status);
619 
620         -- check if activity started successfully
621         IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
622            RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
623         ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
624            RAISE OKL_API.G_EXCEPTION_ERROR;
625         END IF;
626 
627     IF (p_rgpv_rec.rgp_id IS NULL) THEN
628     -- Create LAGRDT rule group
629        lp_lagrdt_rgpv_rec.id := NULL;
630        lp_lagrdt_rgpv_rec.rgd_code := 'LAGRDT';
631        lp_lagrdt_rgpv_rec.dnz_chr_id := p_rgpv_rec.chr_id;
632        lp_lagrdt_rgpv_rec.chr_id := p_rgpv_rec.chr_id;
633        lp_lagrdt_rgpv_rec.rgp_type := 'KRG';
634 
635        OKL_RULE_PUB.create_rule_group(
636            p_api_version    => p_api_version,
637            p_init_msg_list  => p_init_msg_list,
638            x_return_status  => x_return_status,
639            x_msg_count      => x_msg_count,
640            x_msg_data       => x_msg_data,
641            p_rgpv_rec       => lp_lagrdt_rgpv_rec,
642            x_rgpv_rec       => lx_lagrdt_rgpv_rec);
643 
644          IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
645             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
646          ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
647             RAISE OKC_API.G_EXCEPTION_ERROR;
648          END IF;
649 
650          x_rgpv_rec.rgp_id := lx_lagrdt_rgpv_rec.id;
651 
652     ELSE
653 
654     -- Update LAGRDT rule group
655        lp_lagrdt_rgpv_rec.id := p_rgpv_rec.rgp_id;
656        lp_lagrdt_rgpv_rec.rgd_code := 'LAGRDT';
657        lp_lagrdt_rgpv_rec.dnz_chr_id := p_rgpv_rec.chr_id;
658        lp_lagrdt_rgpv_rec.chr_id := p_rgpv_rec.chr_id;
659        lp_lagrdt_rgpv_rec.rgp_type := 'KRG';
660 
661        OKL_RULE_PUB.update_rule_group(
662            p_api_version    => p_api_version,
663            p_init_msg_list  => p_init_msg_list,
664            x_return_status  => x_return_status,
665            x_msg_count      => x_msg_count,
666            x_msg_data       => x_msg_data,
667            p_rgpv_rec       => lp_lagrdt_rgpv_rec,
668            x_rgpv_rec       => lx_lagrdt_rgpv_rec);
669 
670        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
671             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
672        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
673             RAISE OKC_API.G_EXCEPTION_ERROR;
674        END IF;
675 
676          x_rgpv_rec.rgp_id := lx_lagrdt_rgpv_rec.id;
677 
678     END IF;
679 
680     IF (p_rgpv_rec.rul_lagrnp_id IS NULL) THEN
681       -- Create LAGRNP rule
682       lp_lagrnp_rulv_rec.id := NULL;
683       lp_lagrnp_rulv_rec.rgp_id := lx_lagrdt_rgpv_rec.id;
684       lp_lagrnp_rulv_rec.dnz_chr_id := p_rgpv_rec.chr_id;
685       lp_lagrnp_rulv_rec.rule_information_category := 'LAGRNP';
686       lp_lagrnp_rulv_rec.rule_information1 := p_rgpv_rec.lagrnp_rule_information1;
687       lp_lagrnp_rulv_rec.WARN_YN := 'N';
688       lp_lagrnp_rulv_rec.STD_TEMPLATE_YN := 'N';
689       IF ((p_rgpv_rec.rul_lagrnp_object1_id1 IS NOT NULL) AND ( p_rgpv_rec.rul_lagrnp_object1_id2 IS NOT NULL)) THEN
690          lp_lagrnp_rulv_rec.object1_id1 := p_rgpv_rec.rul_lagrnp_object1_id1;
691          lp_lagrnp_rulv_rec.object1_id2 := '#';
692          lp_lagrnp_rulv_rec.jtot_object1_code := 'OKL_PARTYSITE';
693       END IF;
694 
695     OKL_RULE_PUB.create_rule(
696         p_api_version    => p_api_version,
697         p_init_msg_list  => p_init_msg_list,
698         x_return_status  => x_return_status,
699         x_msg_count      => x_msg_count,
700         x_msg_data       => x_msg_data,
701         p_rulv_rec       => lp_lagrnp_rulv_rec,
702         x_rulv_rec       => lx_lagrnp_rulv_rec);
703 
704       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
705          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
706       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
707          RAISE OKC_API.G_EXCEPTION_ERROR;
708       END IF;
709 
710       x_rgpv_rec.rul_lagrnp_id := lx_lagrnp_rulv_rec.id;
711 
712     ELSE
713 
714       -- Update LAGRNP rule
715       lp_lagrnp_rulv_rec.id := p_rgpv_rec.rul_lagrnp_id;
716       lp_lagrnp_rulv_rec.rgp_id := p_rgpv_rec.rgp_id;
717       lp_lagrnp_rulv_rec.dnz_chr_id := p_rgpv_rec.chr_id;
718       lp_lagrnp_rulv_rec.rule_information_category := 'LAGRNP';
719       lp_lagrnp_rulv_rec.rule_information1 := p_rgpv_rec.lagrnp_rule_information1;
720       lp_lagrnp_rulv_rec.WARN_YN := 'N';
721       lp_lagrnp_rulv_rec.STD_TEMPLATE_YN := 'N';
722       IF ((p_rgpv_rec.rul_lagrnp_object1_id1 IS NOT NULL) AND ( p_rgpv_rec.rul_lagrnp_object1_id2 IS NOT NULL)) THEN
723          lp_lagrnp_rulv_rec.object1_id1 := p_rgpv_rec.rul_lagrnp_object1_id1;
724          lp_lagrnp_rulv_rec.object1_id2 := '#';
725          lp_lagrnp_rulv_rec.jtot_object1_code := 'OKL_PARTYSITE';
726       END IF;
727 
728       OKL_RULE_PUB.update_rule(
729         p_api_version    => p_api_version,
730         p_init_msg_list  => p_init_msg_list,
731         x_return_status  => x_return_status,
732         x_msg_count      => x_msg_count,
733         x_msg_data       => x_msg_data,
734         p_rulv_rec       => lp_lagrnp_rulv_rec,
735         x_rulv_rec       => lx_lagrnp_rulv_rec);
736 
737       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
738          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
739       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
740          RAISE OKC_API.G_EXCEPTION_ERROR;
741       END IF;
742 
743       x_rgpv_rec.rul_lagrnp_id := lx_lagrnp_rulv_rec.id;
744 
745 
746     END IF;
747 
748     IF (p_rgpv_rec.rul_lagrnt_id IS NULL) THEN
749       -- Create LAGRNT rule
750       lp_lagrnt_rulv_rec.id := NULL;
751       lp_lagrnt_rulv_rec.rgp_id := lx_lagrdt_rgpv_rec.id;
752       lp_lagrnt_rulv_rec.dnz_chr_id := p_rgpv_rec.chr_id;
753       lp_lagrnt_rulv_rec.rule_information_category := 'LAGRNT';
754       lp_lagrnt_rulv_rec.rule_information1 := p_rgpv_rec.lagrnt_rule_information1;
755       lp_lagrnt_rulv_rec.rule_information2 := p_rgpv_rec.lagrnt_rule_information2;
756       lp_lagrnt_rulv_rec.rule_information3 := p_rgpv_rec.lagrnt_rule_information3;
757       lp_lagrnt_rulv_rec.rule_information4 := p_rgpv_rec.lagrnt_rule_information4;
758       lp_lagrnt_rulv_rec.WARN_YN := 'N';
759       lp_lagrnt_rulv_rec.STD_TEMPLATE_YN := 'N';
760 
761     OKL_RULE_PUB.create_rule(
762         p_api_version    => p_api_version,
763         p_init_msg_list  => p_init_msg_list,
764         x_return_status  => x_return_status,
765         x_msg_count      => x_msg_count,
766         x_msg_data       => x_msg_data,
767         p_rulv_rec       => lp_lagrnt_rulv_rec,
768         x_rulv_rec       => lx_lagrnt_rulv_rec);
769 
770       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
771          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
772       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
773          RAISE OKC_API.G_EXCEPTION_ERROR;
774       END IF;
775 
776       x_rgpv_rec.rul_lagrnt_id := lx_lagrnt_rulv_rec.id;
777 
778     ELSE
779 
780       -- Update LAGRNT rule
781       lp_lagrnt_rulv_rec.id := p_rgpv_rec.rul_lagrnt_id;
782       lp_lagrnt_rulv_rec.rgp_id := p_rgpv_rec.rgp_id;
783       lp_lagrnt_rulv_rec.dnz_chr_id := p_rgpv_rec.chr_id;
784       lp_lagrnt_rulv_rec.rule_information_category := 'LAGRNT';
785       lp_lagrnt_rulv_rec.rule_information1 := p_rgpv_rec.lagrnt_rule_information1;
786       lp_lagrnt_rulv_rec.rule_information2 := p_rgpv_rec.lagrnt_rule_information2;
787       lp_lagrnt_rulv_rec.rule_information3 := p_rgpv_rec.lagrnt_rule_information3;
788       lp_lagrnt_rulv_rec.rule_information4 := p_rgpv_rec.lagrnt_rule_information4;
789       lp_lagrnt_rulv_rec.WARN_YN := 'N';
790       lp_lagrnt_rulv_rec.STD_TEMPLATE_YN := 'N';
791 
792       OKL_RULE_PUB.update_rule(
793         p_api_version    => p_api_version,
794         p_init_msg_list  => p_init_msg_list,
795         x_return_status  => x_return_status,
796         x_msg_count      => x_msg_count,
797         x_msg_data       => x_msg_data,
798         p_rulv_rec       => lp_lagrnt_rulv_rec,
799         x_rulv_rec       => lx_lagrnt_rulv_rec);
800 
801       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
802          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
803       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
804          RAISE OKC_API.G_EXCEPTION_ERROR;
805       END IF;
806 
807       x_rgpv_rec.rul_lagrnt_id := lx_lagrnt_rulv_rec.id;
808     END IF;
809 
810        lp_cplv_rec.id := p_rgpv_rec.party_role_id;
811        lp_cplv_rec.object1_id1 := p_rgpv_rec.party_id;
812        lp_cplv_rec.object1_id2 := '#';
813        lp_cplv_rec.jtot_object1_code := 'OKX_PARTY';
814        lp_cplv_rec.rle_code := 'GUARANTOR';
815        lp_cplv_rec.dnz_chr_id := p_rgpv_rec.chr_id;
816        lp_cplv_rec.chr_id := p_rgpv_rec.chr_id;
817        lp_kplv_rec.attribute_category := p_rgpv_rec.attribute_category;
818        lp_kplv_rec.attribute1  := p_rgpv_rec.attribute1;
819        lp_kplv_rec.attribute2  := p_rgpv_rec.attribute2;
820        lp_kplv_rec.attribute3  := p_rgpv_rec.attribute3;
821        lp_kplv_rec.attribute4  := p_rgpv_rec.attribute4;
822        lp_kplv_rec.attribute5  := p_rgpv_rec.attribute5;
823        lp_kplv_rec.attribute6  := p_rgpv_rec.attribute6;
824        lp_kplv_rec.attribute7  := p_rgpv_rec.attribute7;
825        lp_kplv_rec.attribute8  := p_rgpv_rec.attribute8;
826        lp_kplv_rec.attribute9  := p_rgpv_rec.attribute9;
827        lp_kplv_rec.attribute10 := p_rgpv_rec.attribute10;
828        lp_kplv_rec.attribute11 := p_rgpv_rec.attribute11;
829        lp_kplv_rec.attribute12 := p_rgpv_rec.attribute12;
830        lp_kplv_rec.attribute13 := p_rgpv_rec.attribute13;
831        lp_kplv_rec.attribute14 := p_rgpv_rec.attribute14;
832        lp_kplv_rec.attribute15 := p_rgpv_rec.attribute15;
833        lp_kplv_rec.validate_dff_yn := 'Y';
834 
835     IF (p_rgpv_rec.rgp_id IS NULL) THEN
836        OKL_K_PARTY_ROLES_PVT.create_k_party_role(
837          p_api_version      => p_api_version,
838          p_init_msg_list    => p_init_msg_list,
839          x_return_status    => x_return_status,
840          x_msg_count        => x_msg_count,
841          x_msg_data         => x_msg_data,
842          p_cplv_rec         => lp_cplv_rec,
843          x_cplv_rec         => lx_cplv_rec,
844          p_kplv_rec         => lp_kplv_rec,
845          x_kplv_rec         => lx_kplv_rec);
846 
847          IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
848             RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
849          ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
850             RAISE OKL_API.G_EXCEPTION_ERROR;
851          END IF;
852     ELSE
853 
854        OKL_K_PARTY_ROLES_PVT.update_k_party_role(
855          p_api_version      => p_api_version,
856          p_init_msg_list    => p_init_msg_list,
857          x_return_status    => x_return_status,
858          x_msg_count        => x_msg_count,
859          x_msg_data         => x_msg_data,
860          p_cplv_rec         => lp_cplv_rec,
861          x_cplv_rec         => lx_cplv_rec,
862          p_kplv_rec         => lp_kplv_rec,
863          x_kplv_rec         => lx_kplv_rec);
864 
865          IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
866             RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
867          ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
868             RAISE OKL_API.G_EXCEPTION_ERROR;
869          END IF;
870 
871     END IF;
872 
873     IF (p_rgpv_rec.rgp_id IS NULL) THEN
874         OPEN c_get_rrd_id(p_rgpv_rec.chr_id, 'GUARANTOR', 'LAGRDT');
875         FETCH c_get_rrd_id INTO l_rrd_id;
876         CLOSE c_get_rrd_id;
877 
878         lp_rmpv_rec.rgp_id     := x_rgpv_rec.rgp_id;
879         lp_rmpv_rec.cpl_id := lx_cplv_rec.id;
880         lp_rmpv_rec.dnz_chr_id := p_rgpv_rec.chr_id;
881         lp_rmpv_rec.rrd_id     := l_rrd_id;
882 
883         OKL_RULE_PUB.create_rg_mode_pty_role(
884           p_api_version    => p_api_version,
885           p_init_msg_list  => p_init_msg_list,
886           x_return_status  => x_return_status,
887           x_msg_count      => x_msg_count,
888           x_msg_data       => x_msg_data,
889           p_rmpv_rec       => lp_rmpv_rec,
890           x_rmpv_rec       => lx_rmpv_rec);
891 
892          IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
893             RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
894          ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
895             RAISE OKL_API.G_EXCEPTION_ERROR;
896          END IF;
897 
898     END IF;
899 
900 
901     OKC_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
902 
903   EXCEPTION
904     WHEN OKC_API.G_EXCEPTION_ERROR THEN
905       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
906                         p_api_name  => l_api_name,
907                         p_pkg_name  => g_pkg_name,
908                         p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
909                         x_msg_count => x_msg_count,
910                         x_msg_data  => x_msg_data,
911                         p_api_type  => g_api_type);
912 
913     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
914       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
915                         p_api_name  => l_api_name,
916                         p_pkg_name  => g_pkg_name,
917                         p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
918                         x_msg_count => x_msg_count,
919                         x_msg_data  => x_msg_data,
920                         p_api_type  => g_api_type);
921 
922     WHEN OTHERS THEN
923       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
924                         p_api_name  => l_api_name,
925                         p_pkg_name  => g_pkg_name,
926                         p_exc_name  => 'OTHERS',
927                         x_msg_count => x_msg_count,
928                         x_msg_data  => x_msg_data,
929                         p_api_type  => g_api_type);
930 END process_guarantor;
931 
932 
933 End OKL_DEAL_PARTIES_PVT;