DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_LA_VALIDATION_UTIL_PVT

Source


1 PACKAGE BODY OKL_LA_VALIDATION_UTIL_PVT as
2 /* $Header: OKLPDVUB.pls 120.14 2007/04/20 19:01:17 asahoo noship $ */
3 
4    G_RLE_CODE  VARCHAR2(10) := 'LESSEE';
5 
6 --Added by kthiruva 23-Sep-2003 Bug 3156265
7 
8 --For Object Code 'OKX_SALEPERS'
9 
10   CURSOR okx_salepers_csr(p_name VARCHAR2 ,p_id1 VARCHAR2 , p_id2 VARCHAR2) IS
11 --Start modified abhsaxen for performance SQLID 20562570
12 	SELECT srv.SALESREP_ID ID1,
13 		 '#' ID2,
14 		 srv.NAME NAME,
15 		 NULL DESCRIPTION
16 	  FROM JTF_RS_SALESREPS_MO_V srv
17 	  WHERE srv.ORG_ID = mo_global.get_current_org_id
18 	  AND   srv.name = p_name
19 	  AND   srv.SALESREP_ID = NVL(p_id1,srv.SALESREP_ID)
20 	  AND   '#'  = NVL(p_id2,'#')
21 	  ORDER BY srv.NAME
22 	--end modified abhsaxen for performance SQLID 20562570
23 	;
24 -- For Object Code 'OKX_PCONTACT'
25 
26   CURSOR okx_pcontact_csr(p_name VARCHAR2 ,p_id1 VARCHAR2 , p_id2 VARCHAR2) IS
27   SELECT pcv.ID1,
28          pcv.ID2,
29          pcv.NAME,
30          pcv.DESCRIPTION
31   FROM okx_party_contacts_v pcv
32   WHERE pcv.name = NVL(p_name,pcv.name)
33   AND   pcv.ID1  = NVL(p_id1,pcv.ID1)
34   AND   pcv.ID2  = NVL(p_id2,pcv.ID2)
35   ORDER BY pcv.NAME;
36 
37 
38 --For Object Code 'OKX_PARTY'
39   CURSOR okx_party_csr(p_name VARCHAR2 , p_id1 VARCHAR2 , p_id2 VARCHAR2) IS
40 	--Start modified abhsaxen for performance SQLID 20562584
41 	select prv.id1,
42 		 prv.id2,
43 		 prv.name,
44 		 prv.description
45 	  from  okx_parties_v prv
46 	  where prv.name = p_name
47 	  and   prv.id1  = nvl(p_id1,prv.id1)
48 	  and   prv.id2  = nvl(p_id2,prv.id2)
49 	  order by prv.name
50 	--end modified abhsaxen for performance SQLID 20562584
51 	;
52 --For Object Code 'OKX_OPERUNIT'
53   CURSOR okx_operunit_csr(p_name VARCHAR2 , p_id1 VARCHAR2 , p_id2 VARCHAR2) IS
54   SELECT ord.id1,
55          ord.id2,
56          ord.name,
57          ord.description
58   FROM  okx_organization_defs_v ord
59   WHERE ord.organization_type = 'OPERATING_UNIT'
60   AND   ord.information_type = 'Operating Unit Information'
61   AND   ord.name = NVL(p_name,ord.name)
62   AND   ord.id1  = NVL(p_id1,ord.id1)
63   AND   ord.id2  = NVL(p_id2,ord.id2)
64   ORDER BY ord.NAME;
65 
66 
67  --For Object Code 'OKX_VENDOR'
68   CURSOR okx_vendor_csr(p_name VARCHAR2 , p_id1 VARCHAR2 , p_id2 VARCHAR2) IS
69 	--Start modified abhsaxen for performance SQLID 20562594
70 	SELECT  vev.id1,
71 		  vev.id2,
72 		  vev.name,
73 		  vev.description
74 	  FROM okx_vendors_v vev
75 	  WHERE vev.name = p_name
76 	  AND   vev.id1  = NVL(p_id1,vev.id1)
77 	  AND   vev.id2  = NVL(p_id2,vev.id2)
78 	  ORDER BY vev.NAME
79 	--end modified abhsaxen for performance SQLID 20562594
80 	;
81 --For Object code 'OKL_STRMTYP'
82 
83 CURSOR okl_strmtyp_csr(p_name VARCHAR2,p_id1 VARCHAR2 ,p_id2 VARCHAR2) IS
84 SELECT ssv.id1,
85        ssv.id2,
86        ssv.name,
87        ssv.description
88 FROM okl_strmtyp_source_v ssv
89 WHERE ssv.status = 'A'
90 AND   ssv.name = NVL(p_name,ssv.name)
91 AND   ssv.id1  = NVL(p_id1,ssv.id1)
92 AND   ssv.id2  = NVL(p_id2,ssv.id2)
93 ORDER BY ssv.name;
94 
95 -- FOr Object COde 'OKL_USAGE'
96 
97 CURSOR okl_usage_csr(p_name VARCHAR2,p_id1 VARCHAR2 ,p_id2 VARCHAR2) IS
98 	--Start modified abhsaxen for performance SQLID 20562604
99 	select ulvb.id id1,
100 	       '#' id2,
101 	       ulv.name,
102 	       ulv.item_description description
103 	from okc_k_lines_b ulvb,
104 	      okc_k_lines_tl ulv
105 	where ulv.name = p_name
106 	and   ulvb.id  = nvl(p_id1,ulvb.id)
107 	and   '#' = nvl(p_id2,'#')
108 	and ulvb.id = ulv.id
109 	and ulv.language =USERENV('LANG')
110 	order by ulv.name
111 	--end modified abhsaxen for performance SQLID 20562604
112 	;
113 -- For Object Code 'OKX_ASSET'
114 
115 CURSOR okx_asset_csr(p_name VARCHAR2,p_id1 VARCHAR2 ,p_id2 VARCHAR2) IS
116 	--Start modified abhsaxen for performance SQLID 20562609
117 	select asv.id1,
118 	       asv.id2,
119 	       asv.name,
120 	       asv.description
121 	from okx_assets_v asv
122 	where asv.name = p_name
123 	and   asv.id1  = nvl(p_id1,asv.id1)
124 	and   asv.id2  = nvl(p_id2,asv.id2)
125 	order by asv.name
126 	--end modified abhsaxen for performance SQLID 20562609
127 	;
128 -- For Object Code 'OKX_COVASST'
129 
130 CURSOR okx_covasst_csr(p_name VARCHAR2,p_id1 VARCHAR2 ,p_id2 VARCHAR2) IS
131 	--Start modified abhsaxen for performance SQLID 20562614
132 	select cas.id1,
133 	       cas.id2,
134 	       cas.name,
135 	       cas.description
136 	from okx_covered_asset_v cas
137 	where   cas.name = p_name
138 	and   cas.id1  = nvl(p_id1,cas.id1)
139 	and   cas.id2  = nvl(p_id2,cas.id2)
140 	order by cas.name
141 	--end modified abhsaxen for performance SQLID 20562614
142 	;
143 
144 -- For Object Code 'OKX_IB_ITEM'
145 
146 CURSOR okx_ib_item_csr(p_name VARCHAR2,p_id1 VARCHAR2 ,p_id2 VARCHAR2) IS
147 	--Start modified abhsaxen for performance SQLID 20562621
148 	select itv.id1,
149 	       itv.id2,
150 	       itv.name,
151 	       itv.description
152 	from okx_install_items_v itv
153 	where itv.name = p_name
154 	and   itv.id1  = nvl(p_id1,itv.id1)
155 	and   itv.id2  = nvl(p_id2,itv.id2)
156 	order by itv.name
157 	--end modified abhsaxen for performance SQLID 20562621
158 	;
159 
160 
161 
162 -- For Object Code 'OKX_LEASE'
163 
164 CURSOR okx_lease_csr(p_name VARCHAR2,p_id1 VARCHAR2 ,p_id2 VARCHAR2) IS
165 SELECT cnt.id1,
166        cnt.id2,
167        cnt.name,
168        cnt.description
169 FROM OKX_CONTRACTS_V cnt
170 WHERE cnt.SCS_CODE IN ('LEASE','LOAN')
171 AND   NVL(cnt.ORG_ID, -99) = mo_global.get_current_org_id
172 AND   cnt.name = NVL(p_name,cnt.name)
173 AND   cnt.id1  = NVL(p_id1,cnt.id1)
174 AND   cnt.id2  = NVL(p_id2,cnt.id2)
175 ORDER BY cnt.NAME;
176 
177 -- For Object Code 'OKX_SERVICE'
178 
179 CURSOR okx_service_csr(p_name VARCHAR2,p_id1 VARCHAR2 ,p_id2 VARCHAR2) IS
180 SELECT syi.id1,
181        syi.id2,
182        syi.name,
183        syi.description
184 FROM OKX_SYSTEM_ITEMS_V syi
185 WHERE syi.VENDOR_WARRANTY_FLAG='N'
186 AND   syi.SERVICE_ITEM_FLAG='Y'
187 AND   syi.ORGANIZATION_ID = SYS_CONTEXT('OKC_CONTEXT','ORGANIZATION_ID')
188 AND   syi.name = NVL(p_name,syi.name)
189 AND   syi.id1  = NVL(p_id1,syi.id1)
190 AND   syi.id2  = NVL(p_id2,syi.id2)
191 ORDER BY syi.NAME;
192 
193 -- For Object Code  'OKX_SYSITEM'
194 
195 CURSOR okx_sysitem_csr(p_name VARCHAR2,p_id1 VARCHAR2 ,p_id2 VARCHAR2) IS
196 SELECT syi.id1,
197        syi.id2,
198        syi.name,
199        syi.description
200 FROM OKX_SYSTEM_ITEMS_V syi
201 WHERE syi.ORGANIZATION_ID = SYS_CONTEXT('OKC_CONTEXT','ORGANIZATION_ID')
202 AND   syi.name = NVL(p_name,syi.name)
203 AND   syi.id1  = NVL(p_id1,syi.id1)
204 AND   syi.id2  = NVL(p_id2,syi.id2)
205 ORDER BY syi.NAME;
206 
207 
208 FUNCTION GET_AK_PROMPT(p_ak_region    IN VARCHAR2, p_ak_attribute    IN VARCHAR2)
209 
210   RETURN VARCHAR2 IS
211 
212 
213 
214     CURSOR ak_prompt_csr(p_ak_region VARCHAR2, p_ak_attribute VARCHAR2) IS
215 	--start modified abhsaxen for performance SQLID 20562645
216 	    select a.attribute_label_long
217 	 from ak_region_items ri, ak_regions r, ak_attributes_vl a
218 	 where ri.region_code = r.region_code
219 	 and ri.region_application_id = r.region_application_id
220 	 and ri.attribute_code = a.attribute_code
221 	 and ri.attribute_application_id = a.attribute_application_id
222 	 and ri.region_code  =  p_ak_region
223 	 and ri.attribute_code = p_ak_attribute
224 	--end modified abhsaxen for performance SQLID 20562645
225 	;
226 
227 
228       l_ak_prompt AK_ATTRIBUTES_VL.attribute_label_long%TYPE;
229 
230   BEGIN
231       OPEN ak_prompt_csr(p_ak_region, p_ak_attribute);
232       FETCH ak_prompt_csr INTO l_ak_prompt;
233       CLOSE ak_prompt_csr;
234       return(l_ak_prompt);
235   END;
236 
237 
238 
239   FUNCTION GET_RLE_CODE_MEANING(p_rle_code    IN VARCHAR2, p_chr_id NUMBER)
240   RETURN VARCHAR2 IS
241 
242       CURSOR l_rle_code_meaning_csr
243       IS
244         select fnd.meaning
245         from   okc_subclass_roles sur,
246                okc_k_headers_b    chr,
247                fnd_lookup_values  fnd
248         where  fnd.lookup_code = sur.rle_code
249         and    sur.rle_code  = p_rle_code
250         and    fnd.lookup_type = 'OKC_ROLE'
251         and    fnd.language = userenv('LANG')
252         and    sur.scs_code = chr.scs_code
253         and    chr.id = p_chr_id
254         and    nvl(sur.start_date,sysdate) <= sysdate
255         and    nvl(sur.end_date,sysdate+1) > sysdate;
256 
257 
258 
259       l_rle_code_meaning fnd_lookup_values.meaning%TYPE;
260 
261   BEGIN
262 
263       OPEN l_rle_code_meaning_csr;
264       FETCH l_rle_code_meaning_csr INTO l_rle_code_meaning;
265       CLOSE l_rle_code_meaning_csr;
266       return(l_rle_code_meaning);
267 
268   END;
269 
270 
271 
272 
273 
274 
275 Procedure Get_Rule_Jtot_Metadata (p_api_version          IN    NUMBER,
276                      p_init_msg_list       IN    VARCHAR2 default OKC_API.G_FALSE,
277                      x_return_status       OUT  NOCOPY    VARCHAR2,
278                      x_msg_count       OUT  NOCOPY    NUMBER,
279                      x_msg_data               OUT  NOCOPY    VARCHAR2,
280                      p_chr_id              IN    NUMBER,
281                      p_rgd_code            IN   VARCHAR2,
282                      p_rdf_code            IN   VARCHAR2,
283                      p_name                IN   VARCHAR2,
284                      p_id1                 IN   VARCHAR2,
285                      p_id2                 IN   VARCHAR2,
286                      x_select_clause       OUT  NOCOPY VARCHAR2,
287                      x_from_clause         OUT  NOCOPY VARCHAR2,
288                      x_where_clause        OUT  NOCOPY VARCHAR2,
289                      x_order_by_clause     OUT  NOCOPY VARCHAR2,
290                      x_object_code         OUT  NOCOPY VARCHAR2) is
291 
292 
293 CURSOR  jtf_rule_cur (p_chr_id NUMBER, p_rgd_code VARCHAR2, p_rdf_code VARCHAR2) is
294 
295 
296 
297 select job.object_code OBJECT_CODE,job.object_code||'.ID1, '||job.object_code||'.ID2, '||
298        job.object_code||'.NAME, '||job.object_code||'.DESCRIPTION ' SELECT_CLAUSE,
299        from_table FROM_CLAUSE,where_clause WHERE_CLAUSE,order_by_clause ORDER_BY_CLAUSE
300 from   okc_k_headers_b chr,
301 okc_subclass_rg_defs rgdfsrc,
302 OKC_RULE_DEF_SOURCES rdfsrc,
303 jtf_objects_b job
304 where job.object_code = rdfsrc.jtot_object_code
305 and   nvl(job.start_date_active,sysdate) <= sysdate
306 and   nvl(job.end_date_active,sysdate + 1) > sysdate
307 and   chr.id = p_chr_id
308 and   chr.scs_code = rgdfsrc.scs_code
309 and   rgdfsrc.rgd_code = p_rgd_code -- 'LACAN'
310 and   rdfsrc.rgr_rgd_code = p_rgd_code -- 'LACAN'
311 and   rdfsrc.rgr_rdf_code = p_rdf_code -- 'CAN'
312 and   chr.buy_or_sell = rdfsrc.buy_or_sell
313 and   rdfsrc.object_id_number = 1
314 and   nvl(rgdfsrc.start_date,sysdate) <= sysdate
315 and   nvl(rgdfsrc.end_date,sysdate + 1) > sysdate
316 and   nvl(rdfsrc.start_date,sysdate) <= sysdate
317 and   nvl(rdfsrc.end_date,sysdate + 1) > sysdate;
318 
319 
320 
321 jtf_rule_rec jtf_rule_cur%rowtype;
322 
323 
324 l_query_string    VARCHAR2(2000)                 default Null;
325 l_where_clause    VARCHAR2(2000)                 default Null;
326 l_from_clause     jtf_objects_b.from_table%type         default Null;
327 
328 
329 
330 Begin
331 
332 
333 
334     Open jtf_rule_cur(p_chr_id, p_rgd_code, p_rdf_code);
335          Fetch jtf_rule_cur into jtf_rule_rec;
336          If jtf_rule_cur%NOTFOUND Then
337              x_object_code     := null;
338              x_select_clause   := null;
339              x_from_clause     := null;
340              x_where_clause    := null;
341              x_order_by_clause := null;
342          Else
343              x_object_code     := jtf_rule_rec.object_code;
344              x_select_clause   := jtf_rule_rec.select_clause;
345              x_from_clause     := jtf_rule_rec.from_clause;
346              x_where_clause    := jtf_rule_rec.where_clause;
347              x_order_by_clause := jtf_rule_rec.order_by_clause;
348              If ( p_name is not null and p_name <> OKC_API.G_MISS_CHAR) then
349                 select x_where_clause || decode(x_where_clause,null,null,' AND ')||
350                        ' DESCRIPTION like :name'
351                 into   l_where_clause
352                 from   dual;
353                 x_where_clause := l_where_clause;
354              End If;
355 
356              If p_id1 is not null and p_id1 <> OKC_API.G_MISS_CHAR
357                      and p_id2 is not null and p_id2 <> OKC_API.G_MISS_CHAR then
358                 select x_where_clause || decode(x_where_clause,null,null,' AND ')||
359                        ' ID1 = '||''''||p_id1||''''||' AND '||' ID2 = '||''''||p_id2||''''
360                 into   l_where_clause
361                 from   dual;
362                 x_where_clause := l_where_clause;
363              End If;
364          End If;
365      Close jtf_rule_cur;
366 
367 End Get_Rule_Jtot_Metadata;
368 
369 
370 --Start of Comments
371 --Procedure   : Validate_Item
372 --Description : Returns Name, Description for a given role or all the roles
373 --              attached to a contract
374 --End of Comments
375 
376 Procedure Validate_Rule (p_api_version    IN        NUMBER,
377                          p_init_msg_list       IN        VARCHAR2 default OKC_API.G_FALSE,
378                          x_return_status       OUT      NOCOPY    VARCHAR2,
379                          x_msg_count       OUT      NOCOPY    NUMBER,
380                          x_msg_data               OUT      NOCOPY    VARCHAR2,
381                          p_chr_id              IN        NUMBER,
382                          p_rgd_code            IN           VARCHAR2,
383                          p_rdf_code            IN           VARCHAR2,
384                          p_id1                   IN OUT   NOCOPY    VARCHAR2,
385                          p_id2                 IN OUT   NOCOPY    VARCHAR2,
386                          p_name                IN       VARCHAR2,
387                          p_object_code         IN OUT  NOCOPY    VARCHAR2,
388                          p_ak_region           IN           VARCHAR2,
389                          p_ak_attribute        IN           VARCHAR2
390 
391                      ) is
392 
393 l_select_clause     varchar2(2000) default null;
394 l_from_clause       varchar2(2000) default null;
395 l_where_clause      varchar2(2000) default null;
396 l_order_by_clause   varchar2(2000) default null;
397 l_query_string      varchar2(2000) default null;
398 
399 
400 
401 l_id1               OKC_RULES_V.OBJECT1_ID1%TYPE default Null;
402 l_id2               OKC_RULES_V.OBJECT1_ID2%TYPE default Null;
403 l_name              VARCHAR2(250) Default Null;
404 l_description       VARCHAR2(250) Default Null;
405 
406 l_object_code       VARCHAR2(30) Default Null;
407 
408 
409 
410 l_id11            OKC_RULES_V.OBJECT1_ID1%TYPE default Null;
411 l_id22            OKC_RULES_V.OBJECT1_ID2%TYPE default Null;
412 
413 
414 
415 type              rule_curs_type is REF CURSOR;
416 rule_curs         rule_curs_type;
417 
418 row_count         Number default 0;
419 l_chr_id      okl_k_headers.id%type;
420 l_rdf_code        okc_rules_v.rule_information_category%type;
421 l_rgd_code        okc_rule_groups_v.rgd_code%type;
422 
423 
424 l_api_name        CONSTANT VARCHAR2(30) := 'Validate_Rule';
425 l_api_version      CONSTANT NUMBER    := 1.0;
426 
427 
428 
429 --x_return_status       := OKC_API.G_RET_STS_SUCCESS;
430 
431 
432 
433 ERR_MSG           VARCHAR2(50) := 'DEFAULT';
434 
435 
436 
437 CURSOR check_rule_csr(p_chr_id NUMBER, p_rgd_code VARCHAR2, p_rdf_code VARCHAR2, p_id1 VARCHAR2, p_id2 VARCHAR2) IS
438 select count(1)
439 from okc_rule_groups_v rgp, okc_rules_v rul
440 where rgp.id = rul.rgp_id
441 and rgp.rgd_code = p_rgd_code
442 and rul.rule_information_category = p_rdf_code
443 and rgp.dnz_chr_id = p_chr_id
444 and rgp.chr_id = p_chr_id
445 and rul.dnz_chr_id = p_chr_id
446 and rul.object1_id1 = p_id1
447 and rul.object1_id2 = p_id2;
448 
449 
450 
451 -- CURSOR get_rule_csr(p_cpl_id NUMBER) IS
452 
453 -- SELECT rul.object1_id1, object1_id2
454 
455 -- FROM okc_k_party_roles_v
456 
457 -- WHERE id = p_cpl_id;
458 
459 
460 l_ak_prompt  AK_ATTRIBUTES_VL.attribute_label_long%type;
461 
462 
463 
464 Begin
465 
466   If okl_context.get_okc_org_id  is null then
467     l_chr_id := p_chr_id;
468     okl_context.set_okc_org_context(p_chr_id => l_chr_id );
469   End If;
470 
471 
472 
473   -- call START_ACTIVITY to create savepoint, check compatibility
474 
475   -- and initialize message list
476 
477   x_return_status := OKC_API.START_ACTIVITY(
478             p_api_name      => l_api_name,
479             p_pkg_name      => g_pkg_name,
480             p_init_msg_list => p_init_msg_list,
481             l_api_version   => l_api_version,
482             p_api_version   => p_api_version,
483             p_api_type      => g_api_type,
484             x_return_status => x_return_status);
485 
486 
487 
488   If ( p_chr_id is null or p_chr_id =  OKC_API.G_MISS_NUM)
489   Then
490       OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'Missing_chr_id');
491       raise OKC_API.G_EXCEPTION_ERROR;
492   ElsIf ( p_rgd_code is null or p_rgd_code =  OKC_API.G_MISS_CHAR)
493   Then
494       OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'Missing_rgd_code');
495       raise OKC_API.G_EXCEPTION_ERROR;
496 
497   ElsIf ( p_rdf_code is null or p_rdf_code =  OKC_API.G_MISS_CHAR)
498   Then
499       OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'Missing_rdf_code');
500       raise OKC_API.G_EXCEPTION_ERROR;
501   ElsIf ( p_name is null or p_name =  OKC_API.G_MISS_CHAR)
502   Then
503       OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'Missing_name');
504       raise OKC_API.G_EXCEPTION_ERROR;
505 --      raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
506   End If;
507 
508   Get_Rule_Jtot_Metadata ( p_api_version         => p_api_version ,
509                            p_init_msg_list   => p_init_msg_list ,
510                          x_return_status   => x_return_status ,
511                          x_msg_count       => x_msg_count ,
512                          x_msg_data      => x_msg_data ,
513                          p_chr_id          => p_chr_id ,
514                          p_rgd_code        => p_rgd_code ,
515                          p_rdf_code        => p_rdf_code ,
516                          p_name            => p_name ,
517                          p_id1             => l_id1 ,
518                          p_id2             => l_id2 ,
519                          x_select_clause   => l_select_clause ,
520                          x_from_clause     => l_from_clause ,
521                          x_where_clause    => l_where_clause ,
522                          x_order_by_clause => l_order_by_clause ,
523                          x_object_code     => l_object_code);
524   p_object_code  := l_object_code;
525 
526 
527   l_query_string := 'SELECT '||ltrim(rtrim(l_select_clause,' '),' ')||' '||
528                     'FROM '||ltrim(rtrim(l_from_clause,' '),' ')||' '||
529                     'WHERE '||ltrim(rtrim(l_where_clause,' '),' ');
530 
531 
532   Open rule_curs for l_query_string using p_name;
533          l_id1  := Null;
534          l_id2  := Null;
535          l_name := Null;
536          l_description := Null;
537 
538    Fetch rule_curs into  l_id1,l_id2,l_name,l_description;
539    If rule_curs%NotFound Then
540 
541       x_return_status := OKC_API.g_ret_sts_error;
542       l_ak_prompt := GET_AK_PROMPT(p_ak_region, p_ak_attribute);
543       OKC_API.SET_MESSAGE(      p_app_name => g_app_name
544                 , p_msg_name => 'OKL_LLA_NO_DATA_FOUND'
545                 , p_token1 => 'COL_NAME'
546                 , p_token1_value => l_ak_prompt
547                );
548 
549       raise OKC_API.G_EXCEPTION_ERROR;
550 
551     End If;
552 
553 
554     l_id11 := l_id1;
555     l_id22 := l_id2;
556 
557     Fetch rule_curs into  l_id1,l_id2,l_name,l_description;
558 
559     If rule_curs%Found Then
560         If( p_id1 is null or p_id1 = OKC_API.G_MISS_CHAR) then
561             x_return_status := OKC_API.g_ret_sts_error;
562             l_ak_prompt := GET_AK_PROMPT(p_ak_region, p_ak_attribute);
563             OKC_API.SET_MESSAGE(      p_app_name => g_app_name
564                  , p_msg_name => 'OKL_LLA_DUP_LOV_VALUES'
565                 , p_token1 => 'COL_NAME'
566                 , p_token1_value => l_ak_prompt
567                );
568           raise OKC_API.G_EXCEPTION_ERROR;
569         End If;
570 
571         If( p_id2 is null or p_id2 = OKC_API.G_MISS_CHAR) then
572             x_return_status := OKC_API.g_ret_sts_error;
573             l_ak_prompt := GET_AK_PROMPT(p_ak_region, p_ak_attribute);
574              OKC_API.SET_MESSAGE(      p_app_name => g_app_name
575                 , p_msg_name => 'OKL_LLA_DUP_LOV_VALUES'
576                 , p_token1 => 'COL_NAME'
577                 , p_token1_value => l_ak_prompt
578                );
579 
580           raise OKC_API.G_EXCEPTION_ERROR;
581 
582         End If;
583 
584 
585 
586        If(l_id11 = p_id1 and l_id22 = p_id2) Then
587 
588           row_count := 1;
589 
590        Else
591 
592         Loop
593 
594          If(l_id1 = p_id1 and l_id2 = p_id2) Then
595              l_id11 := l_id1;
596              l_id22 := l_id2;
597             row_count := 1;
598             Exit;
599          End If;
600          Fetch rule_curs into  l_id1,l_id2,l_name,l_description;
601          Exit When rule_curs%NotFound;
602         End Loop;
603        End If;
604 
605     If row_count <> 1 Then
606 
607      x_return_status := OKC_API.g_ret_sts_error;
608 
609          l_ak_prompt := GET_AK_PROMPT(p_ak_region, p_ak_attribute);
610 
611          OKC_API.SET_MESSAGE(      p_app_name => g_app_name
612 
613                 , p_msg_name => 'OKL_LLA_NO_DATA_FOUND'
614 
615                 , p_token1 => 'COL_NAME'
616 
617                 , p_token1_value => l_ak_prompt
618 
619                );
620 
621      raise OKC_API.G_EXCEPTION_ERROR;
622 
623     End If;
624 
625 
626 
627       End If;
628 
629 
630 
631     p_id1 := l_id11;
632 
633     p_id2 := l_id22;
634 
635 
636 
637   Close rule_curs;
638 
639 /*
640 
641   If p_lty_code is null or p_lty_code =  OKC_API.G_MISS_CHAR  Then
642 
643 
644 
645     If p_cpl_id is null or p_cpl_id =  OKC_API.G_MISS_NUM  Then
646 
647       OPEN check_rule_csr(p_chr_id, p_rle_code, p_id1, p_id2 );
648 
649       FETCH check_rule_csr INTO row_count;
650 
651       CLOSE check_rule_csr;
652 
653       If row_count = 1 Then
654 
655          x_return_status := OKC_API.g_ret_sts_error;
656 
657          OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'Party_name_already_exists');
658 
659          raise OKC_API.G_EXCEPTION_ERROR;
660 
661       End If;
662 
663     Else
664 
665       OPEN get_rule_csr(p_cpl_id );
666 
667       FETCH get_rule_csr INTO l_rle_code, l_id1, l_id2;
668 
669       CLOSE get_rule_csr;
670 
671 
672 
673       If l_rle_code = p_rle_code and l_id1 <> p_id1 Then
674 
675           OPEN check_rule_csr(p_chr_id, p_rle_code, p_id1, p_id2);
676 
677           FETCH check_rule_csr INTO row_count;
678 
679           CLOSE check_rule_csr;
680 
681            If row_count = 1 Then
682 
683            x_return_status := OKC_API.g_ret_sts_error;
684 
685           OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'Party_name_already_exists');
686 
687           raise OKC_API.G_EXCEPTION_ERROR;
688 
689          End If;
690 
691       End If;
692 
693     End If;
694 
695 
696 
697   End If;
698 
699 */
700 
701   x_return_status := OKC_API.G_RET_STS_SUCCESS;
702   OKC_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
703 
704 
705   EXCEPTION
706 
707     when OKC_API.G_EXCEPTION_ERROR then
708         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
709               p_api_name  => l_api_name,
710               p_pkg_name  => g_pkg_name,
711               p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
712               x_msg_count => x_msg_count,
713               x_msg_data  => x_msg_data,
714               p_api_type  => g_api_type);
715 
716      IF rule_curs%ISOPEN THEN
717          CLOSE rule_curs;
718      END IF;
719 
720       when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
721 
722         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
723               p_api_name  => l_api_name,
724               p_pkg_name  => g_pkg_name,
725               p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
726               x_msg_count => x_msg_count,
727               x_msg_data  => x_msg_data,
728               p_api_type  => g_api_type);
729 
730       when OTHERS then
731 
732         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
733               p_api_name  => l_api_name,
734               p_pkg_name  => g_pkg_name,
735               p_exc_name  => 'OTHERS',
736               x_msg_count => x_msg_count,
737               x_msg_data  => x_msg_data,
738               p_api_type  => g_api_type);
739 
740 End Validate_Rule;
741 
742 --Added by dpsingh for LE Uptake
743 --Start of Comments
744 
745 --Procedure   : Validate_Legal_Entity
746 
747 --Description : Returns Name, Description for a given role or all the roles
748 
749 --              attached to a contract
750 
751 --End of Comments
752 Procedure Validate_Legal_Entity(
753                                                 x_return_status     OUT     NOCOPY    VARCHAR2,
754                                                 p_chrv_rec            IN         OKL_OKC_MIGRATION_PVT.CHRV_REC_TYPE,
755 						p_mode IN VARCHAR2) IS
756 
757 CURSOR check_upd_le_fund_csr (p_khr_id NUMBER) IS
758 SELECT 1
759 FROM OKL_TRX_AP_INVOICES_B
760 WHERE KHR_ID = p_khr_id
761 AND FUNDING_TYPE_CODE IS NOT NULL
762 AND TRX_STATUS_CODE <> 'CANCELED';
763 
764 CURSOR check_upd_le_adv_rcpt_csr (p_khr_id NUMBER) IS
765 SELECT 1
766 FROM OKL_TRX_CSH_RECEIPT_B A,
767 OKL_TXL_RCPT_APPS_B B
768 WHERE A.ID = B.RCT_ID_DETAILS
769 AND A.RECEIPT_TYPE = 'ADV'
770 AND B.KHR_ID = p_khr_id;
771 
772 CURSOR check_upd_le_ins_qte_csr (p_khr_id NUMBER) IS
773 SELECT 1
774 FROM OKL_INS_POLICIES_B
775 WHERE KHR_ID =p_khr_id;
776 
777 l_exists                       NUMBER(1);
778 l_not_upd              NUMBER;
779 
780 BEGIN
781 x_return_status := OKL_API.G_RET_STS_SUCCESS;
782 
783       l_exists  := OKL_LEGAL_ENTITY_UTIL.check_le_id_exists(p_chrv_rec.legal_entity_id) ;
784 
785      IF (l_exists<>1) THEN
786           Okc_Api.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'LEGAL_ENTITY_ID');
787           RAISE OKL_API.G_EXCEPTION_ERROR;
788      END IF;
789 
790      IF p_mode = 'UPD'
791      THEN
792        OPEN check_upd_le_fund_csr(p_chrv_rec.id);
793        FETCH check_upd_le_fund_csr INTO l_not_upd;
794        CLOSE check_upd_le_fund_csr;
795        IF l_not_upd = 1 THEN
796             OKL_API.SET_MESSAGE(p_app_name => g_app_name,
797                                                     p_msg_name => 'OKL_LA_LE_UPD_FUND');
798             RAISE OKL_API.G_EXCEPTION_ERROR;
799        END IF;
800        OPEN check_upd_le_adv_rcpt_csr(p_chrv_rec.id);
801        FETCH check_upd_le_adv_rcpt_csr INTO l_not_upd;
802        CLOSE check_upd_le_adv_rcpt_csr;
803         IF l_not_upd = 1 THEN
804             OKL_API.SET_MESSAGE(p_app_name => g_app_name,
805                                                     p_msg_name => 'OKL_LA_LE_UPD_ADV_RCPT');
806             RAISE OKL_API.G_EXCEPTION_ERROR;
807        END IF;
808        OPEN check_upd_le_ins_qte_csr(p_chrv_rec.id);
809        FETCH check_upd_le_ins_qte_csr INTO l_not_upd;
810        CLOSE check_upd_le_ins_qte_csr;
811         IF l_not_upd = 1 THEN
812             OKL_API.SET_MESSAGE(p_app_name => g_app_name,
813                                                     p_msg_name => 'OKL_LA_LE_UPD_INS_QT');
814             RAISE OKL_API.G_EXCEPTION_ERROR;
815        END IF;
816     END IF;
817 
818 EXCEPTION
819 	WHEN OKL_API.G_EXCEPTION_ERROR then
820 		x_return_status := OKL_API.G_RET_STS_ERROR;
821 
822 	WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
823                x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
824 
825 	WHEN OTHERS then
826                x_return_status := OKL_API.G_RET_STS_ERROR;
827 END Validate_Legal_Entity;
828 
829 --Start of Comments
830 
831 --Procedure   : Validate_Item
832 
833 --Description : Returns Name, Description for a given role or all the roles
834 
835 --              attached to a contract
836 
837 --End of Comments
838 
839 Procedure Validate_Contact (p_api_version    IN        NUMBER,
840                      p_init_msg_list       IN        VARCHAR2 default OKC_API.G_FALSE,
841                      x_return_status       OUT      NOCOPY    VARCHAR2,
842                      x_msg_count       OUT      NOCOPY    NUMBER,
843                      x_msg_data               OUT      NOCOPY    VARCHAR2,
844                      p_chr_id              IN        NUMBER,
845                      p_rle_code            IN           VARCHAR2,
846                      p_cro_code            IN           VARCHAR2,
847                      p_id1                   IN OUT   NOCOPY    VARCHAR2,
848                      p_id2                 IN OUT   NOCOPY    VARCHAR2,
849                      p_name                IN       VARCHAR2,
850                      p_object_code         IN OUT  NOCOPY    VARCHAR2,
851                      p_ak_region           IN           VARCHAR2,
852                      p_ak_attribute        IN           VARCHAR2
853                      ) is
854 
855 l_select_clause     varchar2(2000) default null;
856 l_from_clause       varchar2(2000) default null;
857 l_where_clause      varchar2(2000) default null;
858 l_order_by_clause   varchar2(2000) default null;
859 l_query_string      varchar2(2000) default null;
860 
861 
862 
863 l_id1               OKC_RULES_V.OBJECT1_ID1%TYPE default Null;
864 l_id2               OKC_RULES_V.OBJECT1_ID2%TYPE default Null;
865 l_name              VARCHAR2(250) Default Null;
866 l_description       VARCHAR2(250) Default Null;
867 l_object_code       VARCHAR2(30) Default Null;
868 
869 
870 
871 l_id11            OKC_RULES_V.OBJECT1_ID1%TYPE default Null;
872 l_id22            OKC_RULES_V.OBJECT1_ID2%TYPE default Null;
873 
874 
875 
876 type              contact_curs_type is REF CURSOR;
877 contact_curs      contact_curs_type;
878 
879 
880 
881 row_count         Number default 0;
882 
883 
884 
885 l_chr_id      okl_k_headers.id%type;
886 l_rdf_code        okc_rules_v.rule_information_category%type;
887 l_rgd_code        okc_rule_groups_v.rgd_code%type;
888 
889 
890 
891 l_api_name        CONSTANT VARCHAR2(30) := 'Validate_Contact';
892 l_api_version      CONSTANT NUMBER    := 1.0;
893 
894 
895 
896 --x_return_status       := OKC_API.G_RET_STS_SUCCESS;
897 
898 
899 
900 ERR_MSG           VARCHAR2(50) := 'DEFAULT';
901 
902 
903 
904 CURSOR check_rule_csr(p_chr_id NUMBER, p_rgd_code VARCHAR2, p_rdf_code VARCHAR2, p_id1 VARCHAR2, p_id2 VARCHAR2) IS
905 
906 select count(1)
907 from okc_rule_groups_v rgp, okc_rules_v rul
908 where rgp.id = rul.rgp_id
909 and rgp.rgd_code = p_rgd_code
910 and rul.rule_information_category = p_rdf_code
911 and rgp.dnz_chr_id = p_chr_id
912 and rgp.chr_id = p_chr_id
913 and rul.dnz_chr_id = p_chr_id
914 and rul.object1_id1 = p_id1
915 and rul.object1_id2 = p_id2;
916 
917 
918 -- CURSOR get_rule_csr(p_cpl_id NUMBER) IS
919 
920 -- SELECT rul.object1_id1, object1_id2
921 
922 -- FROM okc_k_party_roles_v
923 
924 -- WHERE id = p_cpl_id;
925 
926 
927 
928 
929 
930 
931 
932 
933 l_ak_prompt  AK_ATTRIBUTES_VL.attribute_label_long%type;
934 
935 
936 
937 
938 Begin
939 
940 
941 
942   If okl_context.get_okc_org_id  is null then
943 
944     l_chr_id := p_chr_id;
945 
946     okl_context.set_okc_org_context(p_chr_id => l_chr_id );
947 
948   End If;
949 
950 
951 
952   -- call START_ACTIVITY to create savepoint, check compatibility
953 
954   -- and initialize message list
955 
956   x_return_status := OKC_API.START_ACTIVITY(
957 
958             p_api_name      => l_api_name,
959 
960             p_pkg_name      => g_pkg_name,
961 
962             p_init_msg_list => p_init_msg_list,
963 
964             l_api_version   => l_api_version,
965 
966             p_api_version   => p_api_version,
967 
968             p_api_type      => g_api_type,
969 
970             x_return_status => x_return_status);
971 
972 
973 
974   If ( p_chr_id is null or p_chr_id =  OKC_API.G_MISS_NUM)
975 
976   Then
977 
978       OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'Missing_chr_id');
979 
980       raise OKC_API.G_EXCEPTION_ERROR;
981 
982   ElsIf ( p_rle_code is null or p_rle_code =  OKC_API.G_MISS_CHAR)
983 
984   Then
985 
986       OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'Missing_rle_code');
987 
988       raise OKC_API.G_EXCEPTION_ERROR;
989 
990   ElsIf ( p_cro_code is null or p_cro_code =  OKC_API.G_MISS_CHAR)
991 
992   Then
993 
994       OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'Missing_cro_code');
995 
996       raise OKC_API.G_EXCEPTION_ERROR;
997 
998   ElsIf ( p_name is null or p_name =  OKC_API.G_MISS_CHAR)
999 
1000   Then
1001 
1002       OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'Missing_name');
1003 
1004         raise OKC_API.G_EXCEPTION_ERROR;
1005 
1006   End If;
1007 
1008 
1009 
1010   If okl_context.get_okc_org_id  is null then
1011 
1012     l_chr_id := p_chr_id;
1013 
1014     okl_context.set_okc_org_context(p_chr_id => l_chr_id );
1015 
1016   End If;
1017 --Added by kthiruva 23-Sep-2003 Bug No.3156265
1018 
1019     IF (p_rle_code = 'LESSOR' and p_cro_code = 'SALESPERSON') THEN
1020 
1021         OPEN okx_salepers_csr(p_name =>p_name,
1022                               p_id1  =>l_id1 ,
1023                               p_id2  =>l_id2);
1024         Fetch okx_salepers_csr into  l_id1,l_id2,l_name,l_description;
1025 
1026         If okx_salepers_csr%NotFound Then
1027 
1028             x_return_status := OKC_API.g_ret_sts_error;
1029 
1030             l_ak_prompt := GET_AK_PROMPT(p_ak_region, p_ak_attribute);
1031 
1032             OKC_API.SET_MESSAGE(      p_app_name => g_app_name
1033 
1034                          , p_msg_name => 'OKL_LLA_NO_DATA_FOUND'
1035 
1036                     , p_token1 => 'COL_NAME'
1037 
1038                     , p_token1_value => l_ak_prompt
1039 
1040 
1041 
1042                              );
1043 
1044             raise OKC_API.G_EXCEPTION_ERROR;
1045 
1046         End If;
1047 
1048         l_id11 := l_id1;
1049 
1050         l_id22 := l_id2;
1051 
1052 
1053         Fetch okx_salepers_csr into  l_id1,l_id2,l_name,l_description;
1054 
1055         If okx_salepers_csr%Found Then
1056 
1057               If( p_id1 is null or p_id1 = OKC_API.G_MISS_CHAR) then
1058 
1059                x_return_status := OKC_API.g_ret_sts_error;
1060 
1061                l_ak_prompt := GET_AK_PROMPT(p_ak_region, p_ak_attribute);
1062 
1063                OKC_API.SET_MESSAGE(      p_app_name => g_app_name
1064 
1065                 , p_msg_name => 'OKL_LLA_DUP_LOV_VALUES'
1066 
1067                 , p_token1 => 'COL_NAME'
1068 
1069                 , p_token1_value => l_ak_prompt
1070 
1071                );
1072 
1073                raise OKC_API.G_EXCEPTION_ERROR;
1074 
1075            End If;
1076 
1077               If( p_id2 is null or p_id2 = OKC_API.G_MISS_CHAR) then
1078 
1079               x_return_status := OKC_API.g_ret_sts_error;
1080 
1081               l_ak_prompt := GET_AK_PROMPT(p_ak_region, p_ak_attribute);
1082 
1083               OKC_API.SET_MESSAGE(      p_app_name => g_app_name
1084 
1085                 , p_msg_name => 'OKL_LLA_DUP_LOV_VALUES'
1086 
1087                 , p_token1 => 'COL_NAME'
1088 
1089                 , p_token1_value => l_ak_prompt
1090 
1091                );
1092 
1093               raise OKC_API.G_EXCEPTION_ERROR;
1094 
1095            End If;
1096 
1097            If (l_id11 = p_id1 and l_id22 = p_id2) Then
1098 
1099               row_count := 1;
1100 
1101            Else
1102 
1103                Loop
1104 
1105                   If(l_id1 = p_id1 and l_id2 = p_id2) Then
1106 
1107                    l_id11 := l_id1;
1108                       l_id22 := l_id2;
1109 
1110                    row_count := 1;
1111 
1112                   Exit;
1113 
1114                   End If;
1115 
1116                   Fetch okx_salepers_csr into  l_id1,l_id2,l_name,l_description;
1117 
1118                   Exit When okx_salepers_csr%NotFound;
1119 
1120                 End Loop;
1121 
1122           End If;
1123 
1124           If row_count <> 1 Then
1125 
1126         x_return_status := OKC_API.g_ret_sts_error;
1127 
1128             l_ak_prompt := GET_AK_PROMPT(p_ak_region, p_ak_attribute);
1129 
1130             OKC_API.SET_MESSAGE(      p_app_name => g_app_name
1131 
1132                          , p_msg_name => 'OKL_LLA_NO_DATA_FOUND'
1133 
1134                     , p_token1 => 'COL_NAME'
1135 
1136                     , p_token1_value => l_ak_prompt
1137 
1138                      );
1139 
1140             raise OKC_API.G_EXCEPTION_ERROR;
1141 
1142        End If;
1143 
1144            End If;
1145 
1146            p_id1 := l_id11;
1147         p_id2 := l_id22;
1148 
1149         Close okx_salepers_csr;
1150 
1151      ELSE
1152 
1153      OPEN okx_pcontact_csr(p_name =>p_name,
1154                               p_id1  =>l_id1,
1155                               p_id2  =>l_id2);
1156 
1157         Fetch okx_pcontact_csr into  l_id1,l_id2,l_name,l_description;
1158 
1159         If okx_pcontact_csr%NotFound Then
1160 
1161             x_return_status := OKC_API.g_ret_sts_error;
1162 
1163             l_ak_prompt := GET_AK_PROMPT(p_ak_region, p_ak_attribute);
1164 
1165             OKC_API.SET_MESSAGE(      p_app_name => g_app_name
1166 
1167                          , p_msg_name => 'OKL_LLA_NO_DATA_FOUND'
1168 
1169                     , p_token1 => 'COL_NAME'
1170 
1171                     , p_token1_value => l_ak_prompt
1172 
1173 
1174 
1175                              );
1176 
1177             raise OKC_API.G_EXCEPTION_ERROR;
1178 
1179          End If;
1180 
1181          l_id11 := l_id1;
1182 
1183          l_id22 := l_id2;
1184 
1185          Fetch okx_pcontact_csr into  l_id1,l_id2,l_name,l_description;
1186 
1187          If okx_pcontact_csr%Found Then
1188 
1189                 If ( p_id1 is null or p_id1 = OKC_API.G_MISS_CHAR) then
1190 
1191                 x_return_status := OKC_API.g_ret_sts_error;
1192 
1193                 l_ak_prompt := GET_AK_PROMPT(p_ak_region, p_ak_attribute);
1194 
1195                 OKC_API.SET_MESSAGE(      p_app_name => g_app_name
1196 
1197                 , p_msg_name => 'OKL_LLA_DUP_LOV_VALUES'
1198 
1199                 , p_token1 => 'COL_NAME'
1200 
1201                 , p_token1_value => l_ak_prompt
1202 
1203                );
1204 
1205                 raise OKC_API.G_EXCEPTION_ERROR;
1206 
1207             End If;
1208 
1209               If (p_id2 is null or p_id2 = OKC_API.G_MISS_CHAR) then
1210 
1211                  x_return_status := OKC_API.g_ret_sts_error;
1212 
1213                  l_ak_prompt := GET_AK_PROMPT(p_ak_region, p_ak_attribute);
1214 
1215                  OKC_API.SET_MESSAGE(      p_app_name => g_app_name
1216 
1217                 , p_msg_name => 'OKL_LLA_DUP_LOV_VALUES'
1218 
1219                 , p_token1 => 'COL_NAME'
1220 
1221                 , p_token1_value => l_ak_prompt
1222 
1223                );
1224 
1225                  raise OKC_API.G_EXCEPTION_ERROR;
1226 
1227            End If;
1228 
1229            If (l_id11 = p_id1 and l_id22 = p_id2) Then
1230 
1231                 row_count := 1;
1232 
1233            Else
1234 
1235              Loop
1236 
1237                If (l_id1 = p_id1 and l_id2 = p_id2) Then
1238 
1239                       l_id11 := l_id1;
1240 
1241                       l_id22 := l_id2;
1242 
1243                      row_count := 1;
1244 
1245                       Exit;
1246 
1247                 End If;
1248 
1249                 Fetch okx_pcontact_csr into  l_id1,l_id2,l_name,l_description;
1250 
1251                 Exit when okx_pcontact_csr%NotFound;
1252 
1253             End Loop;
1254 
1255           End If;
1256 
1257 
1258       If row_count <> 1 Then
1259 
1260         x_return_status := OKC_API.g_ret_sts_error;
1261 
1262             l_ak_prompt := GET_AK_PROMPT(p_ak_region, p_ak_attribute);
1263 
1264             OKC_API.SET_MESSAGE(      p_app_name => g_app_name
1265 
1266                          , p_msg_name => 'OKL_LLA_NO_DATA_FOUND'
1267 
1268                     , p_token1 => 'COL_NAME'
1269 
1270                     , p_token1_value => l_ak_prompt
1271 
1272                      );
1273 
1274             raise OKC_API.G_EXCEPTION_ERROR;
1275 
1276        End If;
1277 
1278              End If;
1279 
1280            p_id1 := l_id11;
1281 
1282         p_id2 := l_id22;
1283 
1284         Close okx_pcontact_csr;
1285 
1286      END IF;
1287 
1288 
1289   x_return_status := OKC_API.G_RET_STS_SUCCESS;
1290 
1291   OKC_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
1292 
1293 
1294 
1295   EXCEPTION
1296 
1297     when OKC_API.G_EXCEPTION_ERROR then
1298 
1299         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1300 
1301               p_api_name  => l_api_name,
1302 
1303               p_pkg_name  => g_pkg_name,
1304 
1305               p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
1306 
1307               x_msg_count => x_msg_count,
1308 
1309               x_msg_data  => x_msg_data,
1310 
1311               p_api_type  => g_api_type);
1312 
1313      IF okx_pcontact_csr%ISOPEN THEN
1314          CLOSE okx_pcontact_csr;
1315 
1316      END IF;
1317 
1318      IF okx_salepers_csr%ISOPEN THEN
1319          CLOSE okx_salepers_csr;
1320 
1321      END IF;
1322 
1323 
1324       when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
1325 
1326         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1327 
1328               p_api_name  => l_api_name,
1329 
1330               p_pkg_name  => g_pkg_name,
1331 
1332               p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
1333 
1334               x_msg_count => x_msg_count,
1335 
1336               x_msg_data  => x_msg_data,
1337 
1338               p_api_type  => g_api_type);
1339 
1340      IF okx_pcontact_csr%ISOPEN THEN
1341          CLOSE okx_pcontact_csr;
1342 
1343      END IF;
1344 
1345      IF okx_salepers_csr%ISOPEN THEN
1346          CLOSE okx_salepers_csr;
1347 
1348      END IF;
1349 
1350 
1351      When OTHERS then
1352 
1353         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1354 
1355               p_api_name  => l_api_name,
1356 
1357               p_pkg_name  => g_pkg_name,
1358 
1359               p_exc_name  => 'OTHERS',
1360 
1361               x_msg_count => x_msg_count,
1362 
1363               x_msg_data  => x_msg_data,
1364 
1365               p_api_type  => g_api_type);
1366 
1367      IF okx_pcontact_csr%ISOPEN THEN
1368          CLOSE okx_pcontact_csr;
1369 
1370      END IF;
1371 
1372      IF okx_salepers_csr%ISOPEN THEN
1373          CLOSE okx_salepers_csr;
1374 
1375      END IF;
1376 
1377 
1378 End Validate_Contact;
1379 
1380 
1381 
1382 
1383 --Start of Comments
1384 
1385 --Procedure   : Validate_Item
1386 
1387 --Description : Returns Name, Description for a given role or all the roles
1388 
1389 --              attached to a contract
1390 
1391 --End of Comments
1392 
1393 Procedure Validate_Party (p_api_version    IN        NUMBER,
1394                           p_init_msg_list       IN        VARCHAR2 default OKC_API.G_FALSE,
1395                           x_return_status       OUT      NOCOPY    VARCHAR2,
1396                           x_msg_count       OUT      NOCOPY    NUMBER,
1397                           x_msg_data               OUT      NOCOPY    VARCHAR2,
1398                           p_chr_id              IN        NUMBER,
1399                           p_cle_id              IN        NUMBER,
1400                           p_cpl_id              IN        NUMBER,
1401                           p_lty_code            IN            VARCHAR2,
1402                           p_rle_code            IN        VARCHAR2,
1403                           p_id1                   IN OUT    NOCOPY   VARCHAR2,
1404                           p_id2                 IN OUT    NOCOPY   VARCHAR2,
1405                           p_name                IN       VARCHAR2,
1406                           p_object_code         IN       VARCHAR2
1407                      ) is
1408 
1409 
1410 
1411 l_select_clause   varchar2(2000) default null;
1412 l_from_clause     varchar2(2000) default null;
1413 l_where_clause    varchar2(2000) default null;
1414 l_order_by_clause varchar2(2000) default null;
1415 l_query_string    varchar2(2000) default null;
1416 
1417 
1418 l_id1             OKC_K_PARTY_ROLES_V.OBJECT1_ID1%TYPE default Null;
1419 l_id2             OKC_K_PARTY_ROLES_V.OBJECT1_ID2%TYPE default Null;
1420 l_name            VARCHAR2(250) Default Null;
1421 l_description     VARCHAR2(250) Default Null;
1422 l_object_code     VARCHAR2(30) Default Null;
1423 
1424 
1425 l_id11            OKC_K_PARTY_ROLES_V.OBJECT1_ID1%TYPE default Null;
1426 l_id22            OKC_K_PARTY_ROLES_V.OBJECT1_ID2%TYPE default Null;
1427 
1428 
1429 type              party_curs_type is REF CURSOR;
1430 party_curs        party_curs_type;
1431 
1432 
1433 row_count         Number default 0;
1434 
1435 
1436 
1437 l_chr_id      okl_k_headers.id%type;
1438 l_rle_code        okc_k_party_roles_v.rle_code%type;
1439 l_cle_id          okl_k_lines.id%type;
1440 l_lty_code        okc_line_styles_b.lty_code%type;
1441 
1442 
1443 
1444 l_api_name        CONSTANT VARCHAR2(30) := 'okl_la_jtot_extract';
1445 l_api_version      CONSTANT NUMBER    := 1.0;
1446 
1447 
1448 -- x_return_status       := OKC_API.G_RET_STS_SUCCESS;
1449 
1450 
1451 
1452 ERR_MSG           VARCHAR2(50) := 'DEFAULT';
1453 
1454 
1455 
1456 CURSOR check_party_csr(p_chr_id NUMBER, p_rle_code VARCHAR2,p_id1 VARCHAR2, p_id2 VARCHAR2) IS
1457 
1458 --Start modified abhsaxen for performance SQLID 20562697
1459 select count(1)
1460 from okc_k_party_roles_B
1461 where dnz_chr_id = p_chr_id
1462 and chr_id = p_chr_id
1463 and rle_code = p_rle_code
1464 and object1_id1 = p_id1
1465 and object1_id2 = p_id2
1466 --end modified abhsaxen for performance SQLID 20562697
1467 ;
1468 
1469 
1470 CURSOR get_party_csr(p_cpl_id NUMBER) IS
1471 SELECT rle_code, object1_id1, object1_id2
1472 FROM okc_k_party_roles_v
1473 WHERE id = p_cpl_id;
1474 
1475 
1476 
1477 
1478 Begin
1479 
1480   If okl_context.get_okc_org_id  is null then
1481     l_chr_id := p_chr_id;
1482     okl_context.set_okc_org_context(p_chr_id => l_chr_id );
1483   End If;
1484 
1485   -- call START_ACTIVITY to create savepoint, check compatibility
1486   -- and initialize message list
1487 
1488   x_return_status := OKC_API.START_ACTIVITY(
1489             p_api_name      => l_api_name,
1490             p_pkg_name      => g_pkg_name,
1491             p_init_msg_list => p_init_msg_list,
1492             l_api_version   => l_api_version,
1493             p_api_version   => p_api_version,
1494             p_api_type      => g_api_type,
1495             x_return_status => x_return_status);
1496 
1497 
1498 
1499   If ( p_chr_id is null or p_chr_id =  OKC_API.G_MISS_NUM)
1500   Then
1501       OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'Missing_chr_id');
1502       raise OKC_API.G_EXCEPTION_ERROR;
1503   ElsIf ( p_rle_code is null or p_rle_code =  OKC_API.G_MISS_CHAR)
1504   Then
1505       OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'Missing_rle_code');
1506       raise OKC_API.G_EXCEPTION_ERROR;
1507   ElsIf ( p_name is null or p_name =  OKC_API.G_MISS_CHAR)
1508   Then
1509       OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'Missing_name');
1510         raise OKC_API.G_EXCEPTION_ERROR;
1511 --      raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1512   End If;
1513 
1514 
1515 
1516  --Added by kthiruva 23-Sep-2003 Bug No.3156265
1517 
1518   --For object_code
1519    l_object_code := null;
1520 
1521    IF ( p_rle_code IN ('BROKER', 'DEALER','GUARANTOR','INVESTOR' ,'LESSEE' , 'MANUFACTURER' , 'PRIVATE_LABEL'))
1522    THEN
1523      OPEN okx_party_csr(p_name => p_name,
1524                         p_id1  =>l_id1,
1525                         p_id2  =>l_id2);
1526 
1527      l_id1  := Null;
1528      l_id2  := Null;
1529      l_name := Null;
1530      l_description := Null;
1531      l_object_code := 'OKX_PARTY';
1532 
1533      Fetch okx_party_csr into  l_id1,l_id2,l_name,l_description;
1534 
1535      If okx_party_csr%NotFound Then
1536          x_return_status := OKC_API.g_ret_sts_error;
1537          OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_NO_DATA_FOUND');
1538          raise OKC_API.G_EXCEPTION_ERROR;
1539      End If;
1540 
1541      l_id11 := l_id1;
1542      l_id22 := l_id2;
1543 
1544 
1545       If(l_id1 = p_id1 and l_id2 = p_id2) Then
1546          null;
1547       Else
1548 
1549         Fetch okx_party_csr into  l_id1,l_id2,l_name,l_description;
1550         If okx_party_csr%Found Then
1551 
1552               If( p_id1 is null or p_id1 = OKC_API.G_MISS_CHAR) then
1553                  x_return_status := OKC_API.g_ret_sts_error;
1554                  OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_MULTIPLE_DATA_FOUND');
1555                  raise OKC_API.G_EXCEPTION_ERROR;
1556 
1557               End If;
1558 
1559               If( p_id2 is null or p_id2 = OKC_API.G_MISS_CHAR) then
1560                  x_return_status := OKC_API.g_ret_sts_error;
1561                  OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_MULTIPLE_DATA_FOUND');
1562                  raise OKC_API.G_EXCEPTION_ERROR;
1563               End If;
1564 
1565               Loop
1566 
1567                   If(l_id1 = p_id1 and l_id2 = p_id2) Then
1568                      l_id11 := l_id1;
1569                      l_id22 := l_id2;
1570                      row_count := 1;
1571                      Exit;
1572                   End If;
1573                   Fetch okx_party_csr into  l_id1,l_id2,l_name,l_description;
1574                   Exit When okx_party_csr%NotFound;
1575               End Loop;
1576 
1577               If row_count <> 1 Then
1578                  x_return_status := OKC_API.g_ret_sts_error;
1579                  OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_NO_DATA_FOUND');
1580                  raise OKC_API.G_EXCEPTION_ERROR;
1581        End If;
1582 
1583     End If;
1584 
1585    End If;
1586 
1587     p_id1 := l_id11;
1588     p_id2 := l_id22;
1589    Close okx_party_csr;
1590 
1591   END IF;
1592 
1593  -- For Object_code 'OKX_OPERUNIT'
1594 
1595   IF ( p_rle_code = 'LESSOR' OR
1596        p_rle_code = 'SYNDICATOR')
1597   THEN
1598      OPEN okx_operunit_csr(p_name => p_name,
1599                            p_id1  =>l_id1,
1600                            p_id2  =>l_id2);
1601 
1602      l_id1  := Null;
1603      l_id2  := Null;
1604      l_name := Null;
1605      l_description := Null;
1606      l_object_code := 'OKX_OPERUNIT';
1607 
1608      Fetch okx_operunit_csr into  l_id1,l_id2,l_name,l_description;
1609 
1610      If okx_operunit_csr%NotFound Then
1611          x_return_status := OKC_API.g_ret_sts_error;
1612          OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_NO_DATA_FOUND');
1613          raise OKC_API.G_EXCEPTION_ERROR;
1614      End If;
1615 
1616 
1617      l_id11 := l_id1;
1618      l_id22 := l_id2;
1619 
1620      If(l_id1 = p_id1 and l_id2 = p_id2) Then
1621         null;
1622      Else
1623         Fetch okx_operunit_csr into  l_id1,l_id2,l_name,l_description;
1624         If okx_operunit_csr%Found Then
1625                 If( p_id1 is null or p_id1 = OKC_API.G_MISS_CHAR) then
1626                    x_return_status := OKC_API.g_ret_sts_error;
1627                    OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_MULTIPLE_DATA_FOUND');
1628                    raise OKC_API.G_EXCEPTION_ERROR;
1629                  End If;
1630                  If( p_id2 is null or p_id2 = OKC_API.G_MISS_CHAR) then
1631                    x_return_status := OKC_API.g_ret_sts_error;
1632                    OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_MULTIPLE_DATA_FOUND');
1633                    raise OKC_API.G_EXCEPTION_ERROR;
1634                  End If;
1635                  Loop
1636                     If(l_id1 = p_id1 and l_id2 = p_id2) Then
1637                        l_id11 := l_id1;
1638                        l_id22 := l_id2;
1639                        row_count := 1;
1640                        Exit;
1641                     End If;
1642                     Fetch okx_operunit_csr into  l_id1,l_id2,l_name,l_description;
1643                     Exit When okx_operunit_csr%NotFound;
1644                 End Loop;
1645 
1646      If row_count <> 1 Then
1647         x_return_status := OKC_API.g_ret_sts_error;
1648         OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_NO_DATA_FOUND');
1649         raise OKC_API.G_EXCEPTION_ERROR;
1650      End If;
1651 
1652     End If;
1653 
1654    End If;
1655 
1656     p_id1 := l_id11;
1657     p_id2 := l_id22;
1658 
1659     Close okx_operunit_csr;
1660 
1661   END IF;
1662 
1663  --For Object Code 'OKX_VENDOR'
1664 
1665   IF ( p_rle_code = 'OKL_VENDOR')
1666   THEN
1667      OPEN okx_vendor_csr(p_name => p_name,
1668                          p_id1   => l_id1,
1669                          p_id2   => l_id2);
1670 
1671      l_id1  := Null;
1672      l_id2  := Null;
1673      l_name := Null;
1674      l_description := Null;
1675      l_object_code := 'OKX_VENDOR';
1676 
1677      Fetch okx_vendor_csr into  l_id1,l_id2,l_name,l_description;
1678 
1679      If okx_vendor_csr%NotFound Then
1680          x_return_status := OKC_API.g_ret_sts_error;
1681          OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_NO_DATA_FOUND');
1682          raise OKC_API.G_EXCEPTION_ERROR;
1683      End If;
1684 
1685      l_id11 := l_id1;
1686      l_id22 := l_id2;
1687 
1688      If(l_id1 = p_id1 and l_id2 = p_id2) Then
1689          null;
1690      Else
1691         Fetch okx_vendor_csr into  l_id1,l_id2,l_name,l_description;
1692         If okx_vendor_csr%Found Then
1693               If( p_id1 is null or p_id1 = OKC_API.G_MISS_CHAR) then
1694                   x_return_status := OKC_API.g_ret_sts_error;
1695                   OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_MULTIPLE_DATA_FOUND');
1696                   raise OKC_API.G_EXCEPTION_ERROR;
1697               End If;
1698 
1699               If( p_id2 is null or p_id2 = OKC_API.G_MISS_CHAR) then
1700                   x_return_status := OKC_API.g_ret_sts_error;
1701                   OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_MULTIPLE_DATA_FOUND');
1702                   raise OKC_API.G_EXCEPTION_ERROR;
1703               End If;
1704 
1705               Loop
1706 
1707                   If (l_id1 = p_id1 and l_id2 = p_id2) Then
1708                       l_id11 := l_id1;
1709                       l_id22 := l_id2;
1710                       row_count := 1;
1711                       Exit;
1712                   End If;
1713 
1714                   Fetch okx_vendor_csr into  l_id1,l_id2,l_name,l_description;
1715                   Exit When okx_vendor_csr%NotFound;
1716               End Loop;
1717 
1718      If row_count <> 1 Then
1719         x_return_status := OKC_API.g_ret_sts_error;
1720         OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_NO_DATA_FOUND');
1721         raise OKC_API.G_EXCEPTION_ERROR;
1722      End If;
1723 
1724    End If;
1725 
1726  End If;
1727 
1728    p_id1 := l_id11;
1729    p_id2 := l_id22;
1730 
1731    Close okx_vendor_csr;
1732 
1733 END IF;
1734 
1735 If p_lty_code is null or p_lty_code =  OKC_API.G_MISS_CHAR  Then
1736    If p_cpl_id is null or p_cpl_id =  OKC_API.G_MISS_NUM  Then
1737       OPEN check_party_csr(p_chr_id, p_rle_code, p_id1, p_id2 );
1738       FETCH check_party_csr INTO row_count;
1739       CLOSE check_party_csr;
1740 
1741       If row_count = 1 Then
1742          x_return_status := OKC_API.g_ret_sts_error;
1743          OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'Party_name_already_exists');
1744          raise OKC_API.G_EXCEPTION_ERROR;
1745       End If;
1746 
1747     Else
1748 
1749       OPEN get_party_csr(p_cpl_id );
1750       FETCH get_party_csr INTO l_rle_code, l_id1, l_id2;
1751       CLOSE get_party_csr;
1752 
1753       If l_rle_code = p_rle_code and l_id1 <> p_id1 Then
1754           OPEN check_party_csr(p_chr_id, p_rle_code, p_id1, p_id2);
1755           FETCH check_party_csr INTO row_count;
1756           CLOSE check_party_csr;
1757 
1758           If row_count = 1 Then
1759              x_return_status := OKC_API.g_ret_sts_error;
1760              OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'Party_name_already_exists');
1761              raise OKC_API.G_EXCEPTION_ERROR;
1762           End If;
1763       End If;
1764 
1765     End If;
1766  End If;
1767 
1768 --p_object_code := l_object_code ;
1769 
1770  x_return_status := OKC_API.G_RET_STS_SUCCESS;
1771 
1772  OKC_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
1773 
1774   EXCEPTION
1775 
1776     WHEN OKC_API.G_EXCEPTION_ERROR then
1777 
1778         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1779               p_api_name  => l_api_name,
1780               p_pkg_name  => g_pkg_name,
1781               p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
1782               x_msg_count => x_msg_count,
1783               x_msg_data  => x_msg_data,
1784               p_api_type  => g_api_type);
1785 
1786         IF okx_party_csr%ISOPEN THEN
1787          CLOSE okx_party_csr;
1788         END IF;
1789 
1790         IF okx_operunit_csr%ISOPEN THEN
1791          CLOSE okx_operunit_csr;
1792         END IF;
1793 
1794         IF okx_vendor_csr%ISOPEN THEN
1795          CLOSE okx_vendor_csr;
1796         END IF;
1797 
1798 
1799       WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
1800         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1801               p_api_name  => l_api_name,
1802               p_pkg_name  => g_pkg_name,
1803               p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
1804               x_msg_count => x_msg_count,
1805               x_msg_data  => x_msg_data,
1806               p_api_type  => g_api_type);
1807 
1808         IF okx_party_csr%ISOPEN THEN
1809          CLOSE okx_party_csr;
1810         END IF;
1811 
1812         IF okx_operunit_csr%ISOPEN THEN
1813          CLOSE okx_operunit_csr;
1814         END IF;
1815 
1816         IF okx_vendor_csr%ISOPEN THEN
1817          CLOSE okx_vendor_csr;
1818         END IF;
1819 
1820 
1821       WHEN OTHERS then
1822         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1823               p_api_name  => l_api_name,
1824               p_pkg_name  => g_pkg_name,
1825               p_exc_name  => 'OTHERS',
1826               x_msg_count => x_msg_count,
1827               x_msg_data  => x_msg_data,
1828               p_api_type  => g_api_type);
1829 
1830         IF okx_party_csr%ISOPEN THEN
1831          CLOSE okx_party_csr;
1832         END IF;
1833 
1834         IF okx_operunit_csr%ISOPEN THEN
1835          CLOSE okx_operunit_csr;
1836         END IF;
1837 
1838         IF okx_vendor_csr%ISOPEN THEN
1839          CLOSE okx_vendor_csr;
1840         END IF;
1841 
1842 
1843 End Validate_Party;
1844 
1845 
1846 
1847 
1848 
1849 
1850 --Start of Comments
1851 
1852 --Procedure   : Validate_Item
1853 
1854 --Description : Returns Name, Description for a given role or all the roles
1855 
1856 --              attached to a contract
1857 
1858 --End of Comments
1859 
1860 Procedure Get_Party_Jtot_data (p_api_version    IN        NUMBER,
1861                      p_init_msg_list       IN        VARCHAR2 default OKC_API.G_FALSE,
1862                      x_return_status       OUT      NOCOPY    VARCHAR2,
1863                      x_msg_count       OUT      NOCOPY    NUMBER,
1864                      x_msg_data               OUT      NOCOPY    VARCHAR2,
1865                      p_scs_code            IN    VARCHAR2,
1866                      p_buy_or_sell         IN    VARCHAR2,
1867                      p_rle_code            IN    VARCHAR2,
1868                      p_id1                   IN OUT NOCOPY VARCHAR2,
1869                      p_id2                 IN OUT NOCOPY VARCHAR2,
1870                      p_name                IN   VARCHAR2,
1871                      p_object_code         IN OUT NOCOPY  VARCHAR2,
1872                      p_ak_region          IN    VARCHAR2,
1873                      p_ak_attribute         IN    VARCHAR2
1874                      ) is
1875 
1876 l_select_clause   varchar2(2000) default null;
1877 l_from_clause     varchar2(2000) default null;
1878 l_where_clause    varchar2(2000) default null;
1879 l_order_by_clause varchar2(2000) default null;
1880 l_query_string    varchar2(2000) default null;
1881 
1882 l_id1             OKC_K_PARTY_ROLES_V.OBJECT1_ID1%TYPE default Null;
1883 l_id2             OKC_K_PARTY_ROLES_V.OBJECT1_ID2%TYPE default Null;
1884 l_name            VARCHAR2(250) Default Null;
1885 l_description     VARCHAR2(250) Default Null;
1886 l_object_code     VARCHAR2(30) Default Null;
1887 
1888 l_id11            OKC_K_PARTY_ROLES_V.OBJECT1_ID1%TYPE default Null;
1889 l_id22            OKC_K_PARTY_ROLES_V.OBJECT1_ID2%TYPE default Null;
1890 
1891 type              party_curs_type is REF CURSOR;
1892 party_curs        party_curs_type;
1893 
1894 row_count         Number default 0;
1895 
1896 l_chr_id          okl_k_headers.id%type;
1897 l_rle_code        okc_k_party_roles_v.rle_code%type;
1898 l_cle_id          okl_k_lines.id%type;
1899 l_lty_code        okc_line_styles_b.lty_code%type;
1900 
1901 l_api_name        CONSTANT VARCHAR2(30) := 'Get_Party_Jtot_data';
1902 l_api_version      CONSTANT NUMBER    := 1.0;
1903 
1904 -- x_return_status       := OKC_API.G_RET_STS_SUCCESS;
1905 
1906 ERR_MSG           VARCHAR2(50) := 'DEFAULT';
1907 
1908 l_ak_prompt  AK_ATTRIBUTES_VL.attribute_label_long%type;
1909 
1910 Begin
1911 
1912   -- call START_ACTIVITY to create savepoint, check compatibility
1913   -- and initialize message list
1914   x_return_status := OKC_API.START_ACTIVITY(
1915             p_api_name      => l_api_name,
1916             p_pkg_name      => g_pkg_name,
1917             p_init_msg_list => p_init_msg_list,
1918             l_api_version   => l_api_version,
1919             p_api_version   => p_api_version,
1920             p_api_type      => g_api_type,
1921             x_return_status => x_return_status);
1922 
1923   If ( p_rle_code is null or p_rle_code =  OKC_API.G_MISS_CHAR)
1924   Then
1925       OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'Missing_rle_code');
1926       raise OKC_API.G_EXCEPTION_ERROR;
1927   ElsIf ( p_name is null or p_name =  OKC_API.G_MISS_CHAR)
1928   Then
1929       OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'Missing_name');
1930       raise OKC_API.G_EXCEPTION_ERROR;
1931   End If;
1932 
1933   -- Added by kthiruva 23-Sep-2003 Bug No.3156265
1934 
1935   --For object_code 'OKX_PARTY'
1936    l_object_code :=  null;
1937 
1938    IF ( p_rle_code IN ('BROKER', 'DEALER','GUARANTOR','INVESTOR' ,'LESSEE' , 'MANUFACTURER' , 'PRIVATE_LABEL'))
1939 
1940    THEN
1941 
1942 
1943      OPEN okx_party_csr(p_name => p_name,
1944                         p_id1  => l_id1,
1945                         p_id2  => l_id2 );
1946 
1947      l_id1  := Null;
1948      l_id2  := Null;
1949      l_name := Null;
1950      l_description := Null;
1951      l_object_code :=  'OKX_PARTY';
1952 
1953      Fetch okx_party_csr into  l_id1,l_id2,l_name,l_description;
1954 
1955      If okx_party_csr%NotFound Then
1956          x_return_status := OKC_API.g_ret_sts_error;
1957          l_ak_prompt := GET_AK_PROMPT(p_ak_region, p_ak_attribute);
1958          OKC_API.SET_MESSAGE(p_app_name => g_app_name
1959                   , p_msg_name => 'OKL_LLA_NO_DATA_FOUND'
1960                  , p_token1 => 'COL_NAME'
1961                 , p_token1_value => l_ak_prompt
1962                );
1963 
1964          raise OKC_API.G_EXCEPTION_ERROR;
1965      End If;
1966 
1967 
1968      l_id11 := l_id1;
1969      l_id22 := l_id2;
1970 
1971 
1972       IF (l_id1 = p_id1 and l_id2 = p_id2) Then
1973          null;
1974       ELSE
1975         Fetch okx_party_csr into  l_id1,l_id2,l_name,l_description;
1976         IF okx_party_csr%Found Then
1977               If( p_id1 is null or p_id1 = OKC_API.G_MISS_CHAR) then
1978                   x_return_status := OKC_API.g_ret_sts_error;
1979                   l_ak_prompt := GET_AK_PROMPT(p_ak_region, p_ak_attribute);
1980                   OKC_API.SET_MESSAGE(p_app_name => g_app_name
1981                  , p_msg_name => 'OKL_LLA_DUP_LOV_VALUES'
1982                 , p_token1 => 'COL_NAME'
1983                 , p_token1_value => l_ak_prompt
1984                    );
1985 
1986                  raise OKC_API.G_EXCEPTION_ERROR;
1987              End If;
1988 
1989              If( p_id2 is null or p_id2 = OKC_API.G_MISS_CHAR) then
1990                 x_return_status := OKC_API.g_ret_sts_error;
1991                 l_ak_prompt := GET_AK_PROMPT(p_ak_region, p_ak_attribute);
1992                  OKC_API.SET_MESSAGE(p_app_name => g_app_name
1993                                , p_msg_name => 'OKL_LLA_DUP_LOV_VALUES'
1994                                , p_token1 => 'COL_NAME'
1995                                , p_token1_value => l_ak_prompt
1996                         );
1997 
1998                  raise OKC_API.G_EXCEPTION_ERROR;
1999 
2000             End If;
2001 
2002             If(l_id11 = p_id1 and l_id22 = p_id2) Then
2003                row_count := 1;
2004             ELSE
2005                LOOP
2006                  If(l_id1 = p_id1 and l_id2 = p_id2) Then
2007                     l_id11 := l_id1;
2008                     l_id22 := l_id2;
2009                     row_count := 1;
2010                     Exit;
2011                  End If;
2012                  Fetch okx_party_csr into  l_id1,l_id2,l_name,l_description;
2013                  Exit When okx_party_csr%NotFound;
2014                End Loop;
2015            End If;
2016 
2017          If row_count <> 1 Then
2018            x_return_status := OKC_API.g_ret_sts_error;
2019            l_ak_prompt := GET_AK_PROMPT(p_ak_region, p_ak_attribute);
2020            OKC_API.SET_MESSAGE(  p_app_name => g_app_name
2021                 , p_msg_name => 'OKL_LLA_NO_DATA_FOUND'
2022                 , p_token1 => 'COL_NAME'
2023                 , p_token1_value => l_ak_prompt
2024                );
2025 
2026            raise OKC_API.G_EXCEPTION_ERROR;
2027          End If;
2028 
2029       End If;
2030 
2031     End If;
2032 
2033     p_id1 := l_id11;
2034     p_id2 := l_id22;
2035 
2036     Close okx_party_csr;
2037 
2038   END IF;
2039 
2040 
2041 --- For Object_code 'OKX_OPERUNIT'
2042 
2043   IF ( p_rle_code = 'LESSOR' OR
2044        p_rle_code = 'SYNDICATOR')
2045   THEN
2046      OPEN okx_operunit_csr(p_name => p_name,
2047                            p_id1  => l_id1,
2048                            p_id2  => l_id2 );
2049 
2050      l_id1  := Null;
2051      l_id2  := Null;
2052      l_name := Null;
2053      l_description := Null;
2054      l_object_code :=  'OKX_OPERUNIT';
2055 
2056      Fetch okx_operunit_csr into  l_id1,l_id2,l_name,l_description;
2057 
2058      If okx_operunit_csr%NotFound Then
2059          x_return_status := OKC_API.g_ret_sts_error;
2060          l_ak_prompt := GET_AK_PROMPT(p_ak_region, p_ak_attribute);
2061          OKC_API.SET_MESSAGE(p_app_name => g_app_name
2062                            , p_msg_name => 'OKL_LLA_NO_DATA_FOUND'
2063                            , p_token1 => 'COL_NAME'
2064                           , p_token1_value => l_ak_prompt
2065                );
2066 
2067          raise OKC_API.G_EXCEPTION_ERROR;
2068      End If;
2069 
2070      l_id11 := l_id1;
2071      l_id22 := l_id2;
2072 
2073      If(l_id1 = p_id1 and l_id2 = p_id2) Then
2074          null;
2075      Else
2076         Fetch okx_operunit_csr into  l_id1,l_id2,l_name,l_description;
2077         If okx_operunit_csr%Found Then
2078            If( p_id1 is null or p_id1 = OKC_API.G_MISS_CHAR) then
2079                x_return_status := OKC_API.g_ret_sts_error;
2080                l_ak_prompt := GET_AK_PROMPT(p_ak_region, p_ak_attribute);
2081                OKC_API.SET_MESSAGE(p_app_name => g_app_name
2082                                  , p_msg_name => 'OKL_LLA_DUP_LOV_VALUES'
2083                                  , p_token1 => 'COL_NAME'
2084                                  , p_token1_value => l_ak_prompt );
2085 
2086                raise OKC_API.G_EXCEPTION_ERROR;
2087 
2088            End If;
2089 
2090            If( p_id2 is null or p_id2 = OKC_API.G_MISS_CHAR) then
2091                x_return_status := OKC_API.g_ret_sts_error;
2092                l_ak_prompt := GET_AK_PROMPT(p_ak_region, p_ak_attribute);
2093                 OKC_API.SET_MESSAGE(p_app_name => g_app_name
2094                  , p_msg_name => 'OKL_LLA_DUP_LOV_VALUES'
2095                   , p_token1 => 'COL_NAME'
2096                  , p_token1_value => l_ak_prompt );
2097 
2098                raise OKC_API.G_EXCEPTION_ERROR;
2099 
2100            End If;
2101 
2102            If(l_id11 = p_id1 and l_id22 = p_id2) Then
2103                     row_count := 1;
2104            Else
2105               Loop
2106                  If(l_id1 = p_id1 and l_id2 = p_id2) Then
2107                      l_id11 := l_id1;
2108                      l_id22 := l_id2;
2109                      row_count := 1;
2110                      Exit;
2111                  End If;
2112                  Fetch okx_operunit_csr into  l_id1,l_id2,l_name,l_description;
2113                  Exit When okx_operunit_csr%NotFound;
2114              End Loop;
2115            End If;
2116 
2117    If row_count <> 1 Then
2118         x_return_status := OKC_API.g_ret_sts_error;
2119         l_ak_prompt := GET_AK_PROMPT(p_ak_region, p_ak_attribute);
2120             OKC_API.SET_MESSAGE(  p_app_name => g_app_name
2121                 , p_msg_name => 'OKL_LLA_NO_DATA_FOUND'
2122                 , p_token1 => 'COL_NAME'
2123                 , p_token1_value => l_ak_prompt);
2124 
2125         raise OKC_API.G_EXCEPTION_ERROR;
2126 
2127    End If;
2128 
2129   End If;
2130 
2131   End If;
2132 
2133   p_id1 := l_id11;
2134   p_id2 := l_id22;
2135 
2136   Close okx_operunit_csr;
2137 
2138 END IF;
2139 
2140  --For Object Code 'OKX_VENDOR'
2141 
2142   IF ( p_rle_code = 'OKL_VENDOR')
2143   THEN
2144 
2145      OPEN okx_vendor_csr(p_name => p_name,
2146                          p_id1  => l_id1,
2147                          p_id2  => l_id2 );
2148 
2149      l_id1  := Null;
2150      l_id2  := Null;
2151      l_name := Null;
2152      l_description := Null;
2153      l_object_code :=  'OKX_VENDOR';
2154 
2155      Fetch okx_vendor_csr into  l_id1,l_id2,l_name,l_description;
2156 
2157      If okx_vendor_csr%NotFound Then
2158          x_return_status := OKC_API.g_ret_sts_error;
2159          l_ak_prompt := GET_AK_PROMPT(p_ak_region, p_ak_attribute);
2160          OKC_API.SET_MESSAGE(p_app_name => g_app_name
2161                   , p_msg_name => 'OKL_LLA_NO_DATA_FOUND'
2162                  , p_token1 => 'COL_NAME'
2163                 , p_token1_value => l_ak_prompt
2164                );
2165 
2166          raise OKC_API.G_EXCEPTION_ERROR;
2167      End If;
2168 
2169      l_id11 := l_id1;
2170      l_id22 := l_id2;
2171 
2172      If(l_id1 = p_id1 and l_id2 = p_id2) Then
2173          null;
2174      Else
2175         Fetch okx_vendor_csr into  l_id1,l_id2,l_name,l_description;
2176         If okx_vendor_csr%Found Then
2177               If( p_id1 is null or p_id1 = OKC_API.G_MISS_CHAR) then
2178                    x_return_status := OKC_API.g_ret_sts_error;
2179                    l_ak_prompt := GET_AK_PROMPT(p_ak_region, p_ak_attribute);
2180                    OKC_API.SET_MESSAGE(p_app_name => g_app_name
2181                                      , p_msg_name => 'OKL_LLA_DUP_LOV_VALUES'
2182                                      , p_token1 => 'COL_NAME'
2183                                     , p_token1_value => l_ak_prompt
2184                    );
2185 
2186               raise OKC_API.G_EXCEPTION_ERROR;
2187 
2188         End If;
2189 
2190         If( p_id2 is null or p_id2 = OKC_API.G_MISS_CHAR) then
2191                x_return_status := OKC_API.g_ret_sts_error;
2192                l_ak_prompt := GET_AK_PROMPT(p_ak_region, p_ak_attribute);
2193                OKC_API.SET_MESSAGE(p_app_name => g_app_name
2194                                  , p_msg_name => 'OKL_LLA_DUP_LOV_VALUES'
2195                                  , p_token1 => 'COL_NAME'
2196                                  , p_token1_value => l_ak_prompt);
2197 
2198                raise OKC_API.G_EXCEPTION_ERROR;
2199 
2200         End If;
2201 
2202         If(l_id11 = p_id1 and l_id22 = p_id2) Then
2203            row_count := 1;
2204         Else
2205            Loop
2206              If(l_id1 = p_id1 and l_id2 = p_id2) Then
2207                 l_id11 := l_id1;
2208                 l_id22 := l_id2;
2209                 row_count := 1;
2210                 Exit;
2211              End If;
2212 
2213              Fetch okx_vendor_csr into  l_id1,l_id2,l_name,l_description;
2214              Exit When okx_vendor_csr%NotFound;
2215            End Loop;
2216         End If;
2217 
2218      If row_count <> 1 Then
2219         x_return_status := OKC_API.g_ret_sts_error;
2220         l_ak_prompt := GET_AK_PROMPT(p_ak_region, p_ak_attribute);
2221         OKC_API.SET_MESSAGE(p_app_name => g_app_name
2222                            ,p_msg_name => 'OKL_LLA_NO_DATA_FOUND'
2223                            ,p_token1 => 'COL_NAME'
2224                           , p_token1_value => l_ak_prompt);
2225 
2226         raise OKC_API.G_EXCEPTION_ERROR;
2227 
2228      End If;
2229 
2230    End If;
2231 
2232   End If;
2233 
2234   p_id1 := l_id11;
2235   p_id2 := l_id22;
2236 
2237   Close okx_vendor_csr;
2238 
2239 END IF;
2240 
2241  p_object_code := l_object_code;
2242 
2243  x_return_status := OKC_API.G_RET_STS_SUCCESS;
2244 
2245 OKC_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
2246 
2247   EXCEPTION
2248 
2249     when OKC_API.G_EXCEPTION_ERROR then
2250         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2251               p_api_name  => l_api_name,
2252               p_pkg_name  => g_pkg_name,
2253               p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
2254               x_msg_count => x_msg_count,
2255               x_msg_data  => x_msg_data,
2256               p_api_type  => g_api_type);
2257 
2258      IF okx_party_csr%ISOPEN THEN
2259          CLOSE okx_party_csr;
2260      END IF;
2261 
2262      IF okx_operunit_csr%ISOPEN THEN
2263          CLOSE okx_operunit_csr;
2264      END IF;
2265 
2266      IF okx_vendor_csr%ISOPEN THEN
2267          CLOSE okx_vendor_csr;
2268      END IF;
2269 
2270      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
2271           x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2272               p_api_name  => l_api_name,
2273               p_pkg_name  => g_pkg_name,
2274               p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
2275               x_msg_count => x_msg_count,
2276               x_msg_data  => x_msg_data,
2277               p_api_type  => g_api_type);
2278 
2279      IF okx_party_csr%ISOPEN THEN
2280          CLOSE okx_party_csr;
2281      END IF;
2282 
2283      IF okx_operunit_csr%ISOPEN THEN
2284          CLOSE okx_operunit_csr;
2285      END IF;
2286 
2287      IF okx_vendor_csr%ISOPEN THEN
2288          CLOSE okx_vendor_csr;
2289      END IF;
2290 
2291 
2292      when OTHERS then
2293         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2294               p_api_name  => l_api_name,
2295               p_pkg_name  => g_pkg_name,
2296               p_exc_name  => 'OTHERS',
2297               x_msg_count => x_msg_count,
2298               x_msg_data  => x_msg_data,
2299               p_api_type  => g_api_type);
2300 
2301      IF okx_party_csr%ISOPEN THEN
2302          CLOSE okx_party_csr;
2303      END IF;
2304 
2305      IF okx_operunit_csr%ISOPEN THEN
2306          CLOSE okx_operunit_csr;
2307      END IF;
2308 
2309      IF okx_vendor_csr%ISOPEN THEN
2310          CLOSE okx_vendor_csr;
2311      END IF;
2312 
2313 End Get_Party_Jtot_data;
2314 
2315 --Start of Comments
2316 --Procedure   : Validate_Item
2317 --Description : Returns Name, Description for a given role or all the roles
2318 --              attached to a contract
2319 --End of Comments
2320 
2321 Procedure Validate_Link_Asset (p_api_version    IN    NUMBER,
2322                                p_init_msg_list  IN    VARCHAR2 default OKC_API.G_FALSE,
2323                                x_return_status  OUT  NOCOPY    VARCHAR2,
2324                                x_msg_count      OUT  NOCOPY    NUMBER,
2325                                x_msg_data               OUT  NOCOPY    VARCHAR2,
2326                                p_chr_id              IN    NUMBER,
2327                                p_parent_cle_id       IN    NUMBER,
2328                                p_id1                   IN   OUT NOCOPY VARCHAR2,
2329                                p_id2                 IN   OUT NOCOPY VARCHAR2,
2330                                p_name                IN   VARCHAR2,
2331                                p_object_code         IN   VARCHAR2
2332                      ) is
2333 
2334 l_select_clause     varchar2(2000) default null;
2335 l_from_clause       varchar2(2000) default null;
2336 l_where_clause      varchar2(2000) default null;
2337 l_order_by_clause   varchar2(2000) default null;
2338 l_query_string      varchar2(2000) default null;
2339 
2340 
2341 l_id1               OKC_K_ITEMS_V.OBJECT1_ID1%TYPE default Null;
2342 l_id2               OKC_K_ITEMS_V.OBJECT1_ID2%TYPE default Null;
2343 l_name              VARCHAR2(250) Default Null;
2344 l_description       VARCHAR2(250) Default Null;
2345 l_object_code       VARCHAR2(30) Default Null;
2346 
2347 
2348 l_id11               OKC_K_PARTY_ROLES_V.OBJECT1_ID1%TYPE default Null;
2349 l_id22               OKC_K_PARTY_ROLES_V.OBJECT1_ID2%TYPE default Null;
2350 
2351 
2352 
2353 type                item_curs_type is REF CURSOR;
2354 item_curs           item_curs_type;
2355 
2356 
2357 
2358 row_count           Number default 0;
2359 
2360 
2361 l_chr_id        okl_k_headers.id%type;
2362 l_parent_cle_id     okl_k_lines.id%type;
2363 l_cle_id            okl_k_lines.id%type;
2364 l_lty_code          okc_line_styles_b.lty_code%type;
2365 
2366 
2367 
2368 l_api_name      CONSTANT VARCHAR2(30) := 'okl_la_jtot_extract';
2369 l_api_version    CONSTANT NUMBER      := 1.0;
2370 l_return_status    VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2371 
2372 -- Cursor to fetch the lty_code
2373 CURSOR get_lty_code_csr(p_chr_id NUMBER,
2374                         p_cle_id NUMBER) IS
2375 SELECT  lty_code
2376 FROM    okc_line_styles_b lse,
2377         okc_k_lines_b cle
2378 WHERE  lse.lse_parent_id = cle.lse_id
2379 AND    cle.id = p_cle_id
2380 AND    cle.chr_id = p_chr_id;
2381 
2382 
2383 
2384 
2385 Begin
2386 
2387 
2388 
2389   If okl_context.get_okc_org_id  is null then
2390     l_chr_id := p_chr_id;
2391     okl_context.set_okc_org_context(p_chr_id => l_chr_id );
2392   End If;
2393 
2394 
2395 
2396  -- call START_ACTIVITY to create savepoint, check compatibility
2397 
2398  -- and initialize message list
2399 
2400  l_return_status := OKC_API.START_ACTIVITY(
2401             p_api_name      => l_api_name,
2402             p_pkg_name      => g_pkg_name,
2403             p_init_msg_list => p_init_msg_list,
2404             l_api_version   => l_api_version,
2405             p_api_version   => p_api_version,
2406             p_api_type      => g_api_type,
2407             x_return_status => x_return_status);
2408 
2409 
2410 
2411   If ( p_chr_id is null or p_chr_id =  OKC_API.G_MISS_NUM)
2412   Then
2413       OKC_API.SET_MESSAGE(p_app_name => g_app_name,
2414                p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
2415       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2416 
2417   ElsIf ( p_parent_cle_id is null or p_parent_cle_id =  OKC_API.G_MISS_NUM)
2418   Then
2419       OKC_API.SET_MESSAGE(p_app_name => g_app_name,
2420                p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
2421       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2422 
2423   ElsIf ( p_name is null or p_name =  OKC_API.G_MISS_CHAR)
2424   Then
2425       OKC_API.SET_MESSAGE(p_app_name => g_app_name,
2426                p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
2427       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2428   End If;
2429 
2430 
2431  --Added by kthiruva 23-Sep-2003 Bug No.3156265
2432 
2433 
2434   OPEN get_lty_code_csr(p_chr_id ,
2435                         p_parent_cle_id );
2436   FETCH get_lty_code_csr INTO l_lty_code;
2437   If get_lty_code_csr%NotFound Then
2438       x_return_status := OKC_API.g_ret_sts_error;
2439       OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
2440       raise OKC_API.G_EXCEPTION_ERROR;
2441   End If;
2442   CLOSE get_lty_code_csr;
2443 
2444 
2445 --For Object code 'OKL_STRMTYP'
2446     IF (l_lty_code = 'FEE') THEN
2447        OPEN okl_strmtyp_csr(p_name,
2448                             p_id1,
2449                             p_id2 );
2450 
2451        l_id1  := Null;
2452        l_id2  := Null;
2453        l_name := Null;
2454        l_description := Null;
2455 
2456 
2457       FETCH okl_strmtyp_csr INTO l_id1,l_id2,l_name,l_description;
2458 
2459       IF okl_strmtyp_csr%NotFound THEN
2460          x_return_status := OKC_API.g_ret_sts_error;
2461          OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
2462          raise OKC_API.G_EXCEPTION_ERROR;
2463       END IF;
2464 
2465       l_id11 := l_id1;
2466       l_id22 := l_id2;
2467 
2468       FETCH okl_strmtyp_csr INTO l_id1,l_id2,l_name,l_description;
2469       If okl_strmtyp_csr%Found Then
2470            If( p_id1 is null or p_id1 = OKC_API.G_MISS_CHAR) then
2471                x_return_status := OKC_API.g_ret_sts_error;
2472                OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
2473                raise OKC_API.G_EXCEPTION_ERROR;
2474            End If;
2475 
2476            If( p_id2 is null or p_id2 = OKC_API.G_MISS_CHAR) then
2477                x_return_status := OKC_API.g_ret_sts_error;
2478                OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
2479                raise OKC_API.G_EXCEPTION_ERROR;
2480            End If;
2481 
2482            Loop
2483 
2484               If(l_id1 = p_id1 and l_id2 = p_id2) Then
2485                  l_id11 := l_id1;
2486                  l_id22 := l_id2;
2487                  row_count := 1;
2488                  Exit;
2489               End If;
2490 
2491               FETCH okl_strmtyp_csr INTO l_id1,l_id2,l_name,l_description;
2492               Exit When okl_strmtyp_csr%NotFound;
2493 
2494           End Loop;
2495 
2496           If row_count <> 1 Then
2497              x_return_status := OKC_API.g_ret_sts_error;
2498              OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
2499              raise OKC_API.G_EXCEPTION_ERROR;
2500           End If;
2501       End If;
2502 
2503     p_id1 := l_id11;
2504     p_id2 := l_id22;
2505 
2506     Close okl_strmtyp_csr;
2507 
2508    END IF;
2509 
2510 -- For Object Code 'OKL_USAGE'
2511 
2512    IF (l_lty_code = 'USAGE') THEN
2513       OPEN okl_usage_csr(p_name => p_name,
2514                          p_id1  => l_id1,
2515                          p_id2  => l_id2);
2516 
2517       l_id1  := Null;
2518       l_id2  := Null;
2519       l_name := Null;
2520       l_description := Null;
2521 
2522       FETCH okl_usage_csr INTO l_id1,l_id2,l_name,l_description;
2523 
2524       IF okl_usage_csr%NotFound THEN
2525           x_return_status := OKC_API.g_ret_sts_error;
2526           OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
2527           raise OKC_API.G_EXCEPTION_ERROR;
2528       END IF;
2529 
2530       l_id11 := l_id1;
2531       l_id22 := l_id2;
2532 
2533       FETCH okl_usage_csr INTO l_id1,l_id2,l_name,l_description;
2534       If okl_usage_csr%Found Then
2535          If( p_id1 is null or p_id1 = OKC_API.G_MISS_CHAR) then
2536              x_return_status := OKC_API.g_ret_sts_error;
2537              OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
2538              raise OKC_API.G_EXCEPTION_ERROR;
2539         End If;
2540 
2541         If( p_id2 is null or p_id2 = OKC_API.G_MISS_CHAR) then
2542             x_return_status := OKC_API.g_ret_sts_error;
2543             OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
2544             raise OKC_API.G_EXCEPTION_ERROR;
2545         End If;
2546 
2547         Loop
2548 
2549          If(l_id1 = p_id1 and l_id2 = p_id2) Then
2550             l_id11 := l_id1;
2551             l_id22 := l_id2;
2552             row_count := 1;
2553             Exit;
2554          End If;
2555 
2556          FETCH okl_usage_csr INTO l_id1,l_id2,l_name,l_description;
2557          Exit When okl_usage_csr%NotFound;
2558 
2559        End Loop;
2560 
2561        If row_count <> 1 Then
2562          x_return_status := OKC_API.g_ret_sts_error;
2563          OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
2564          raise OKC_API.G_EXCEPTION_ERROR;
2565        End If;
2566     End If;
2567 
2568     p_id1 := l_id11;
2569     p_id2 := l_id22;
2570 
2571     Close okl_usage_csr;
2572 
2573    END IF;
2574 
2575 
2576 
2577 -- For Object Code ' OKX_ASSET '
2578 
2579    IF (l_lty_code = 'FIXED_ASSET') THEN
2580 
2581      OPEN okx_asset_csr(p_name => p_name,
2582                         p_id1  => l_id1,
2583                         p_id2  => l_id2);
2584 
2585       l_id1  := Null;
2586 
2587       l_id2  := Null;
2588 
2589       l_name := Null;
2590 
2591       l_description := Null;
2592 
2593 
2594       FETCH okx_asset_csr INTO l_id1,l_id2,l_name,l_description;
2595 
2596 
2597 
2598       IF okx_asset_csr%NotFound THEN
2599 
2600          x_return_status := OKC_API.g_ret_sts_error;
2601 
2602          OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
2603 
2604          raise OKC_API.G_EXCEPTION_ERROR;
2605 
2606 
2607       END IF;
2608 
2609 
2610     l_id11 := l_id1;
2611 
2612     l_id22 := l_id2;
2613 
2614 
2615 
2616       FETCH okx_asset_csr INTO l_id1,l_id2,l_name,l_description;
2617 
2618       If okx_asset_csr%Found Then
2619 
2620 
2621 
2622            If( p_id1 is null or p_id1 = OKC_API.G_MISS_CHAR) then
2623 
2624           x_return_status := OKC_API.g_ret_sts_error;
2625 
2626       OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
2627 
2628           raise OKC_API.G_EXCEPTION_ERROR;
2629 
2630         End If;
2631 
2632            If( p_id2 is null or p_id2 = OKC_API.G_MISS_CHAR) then
2633 
2634           x_return_status := OKC_API.g_ret_sts_error;
2635 
2636        OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
2637 
2638           raise OKC_API.G_EXCEPTION_ERROR;
2639 
2640         End If;
2641 
2642 
2643 
2644         Loop
2645 
2646          If(l_id1 = p_id1 and l_id2 = p_id2) Then
2647 
2648       l_id11 := l_id1;
2649 
2650             l_id22 := l_id2;
2651 
2652             row_count := 1;
2653 
2654             Exit;
2655 
2656          End If;
2657 
2658 
2659 
2660          FETCH okx_asset_csr INTO l_id1,l_id2,l_name,l_description;
2661 
2662          Exit When okx_asset_csr%NotFound;
2663 
2664         End Loop;
2665 
2666 
2667 
2668     If row_count <> 1 Then
2669 
2670      x_return_status := OKC_API.g_ret_sts_error;
2671 
2672      OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
2673 
2674      raise OKC_API.G_EXCEPTION_ERROR;
2675 
2676     End If;
2677 
2678 
2679 
2680       End If;
2681 
2682 
2683 
2684     p_id1 := l_id11;
2685 
2686     p_id2 := l_id22;
2687 
2688 
2689 
2690 
2691     Close okx_asset_csr;
2692    END IF;
2693 
2694 
2695  -- For Object Code 'OKX_COVASST'
2696 
2697    IF (l_lty_code ='LINK_SERV_ASSET' OR l_lty_code = 'LINK_USAGE_ASSET') THEN
2698 
2699        OPEN okx_covasst_csr(p_name => p_name,
2700                             p_id1  => l_id1,
2701                             p_id2  => l_id2);
2702 
2703          l_id1  := Null;
2704 
2705          l_id2  := Null;
2706 
2707          l_name := Null;
2708 
2709          l_description := Null;
2710 
2711 
2712        FETCH okx_asset_csr INTO l_id1,l_id2,l_name,l_description;
2713 
2714 
2715 
2716       IF okx_covasst_csr%NotFound THEN
2717 
2718          x_return_status := OKC_API.g_ret_sts_error;
2719 
2720          OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
2721 
2722          raise OKC_API.G_EXCEPTION_ERROR;
2723 
2724 
2725       END IF;
2726 
2727 
2728     l_id11 := l_id1;
2729 
2730     l_id22 := l_id2;
2731 
2732 
2733 
2734       FETCH okx_covasst_csr INTO l_id1,l_id2,l_name,l_description;
2735 
2736       If okx_covasst_csr%Found Then
2737 
2738 
2739 
2740            If( p_id1 is null or p_id1 = OKC_API.G_MISS_CHAR) then
2741 
2742           x_return_status := OKC_API.g_ret_sts_error;
2743 
2744       OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
2745 
2746           raise OKC_API.G_EXCEPTION_ERROR;
2747 
2748         End If;
2749 
2750            If( p_id2 is null or p_id2 = OKC_API.G_MISS_CHAR) then
2751 
2752           x_return_status := OKC_API.g_ret_sts_error;
2753 
2754        OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
2755 
2756           raise OKC_API.G_EXCEPTION_ERROR;
2757 
2758         End If;
2759 
2760 
2761 
2762         Loop
2763 
2764          If(l_id1 = p_id1 and l_id2 = p_id2) Then
2765 
2766       l_id11 := l_id1;
2767 
2768             l_id22 := l_id2;
2769 
2770             row_count := 1;
2771 
2772             Exit;
2773 
2774          End If;
2775 
2776 
2777 
2778          FETCH okx_covasst_csr INTO l_id1,l_id2,l_name,l_description;
2779 
2780          Exit When okx_covasst_csr%NotFound;
2781 
2782         End Loop;
2783 
2784 
2785 
2786     If row_count <> 1 Then
2787 
2788      x_return_status := OKC_API.g_ret_sts_error;
2789 
2790      OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
2791 
2792      raise OKC_API.G_EXCEPTION_ERROR;
2793 
2794     End If;
2795 
2796 
2797 
2798       End If;
2799 
2800 
2801 
2802     p_id1 := l_id11;
2803 
2804     p_id2 := l_id22;
2805 
2806 
2807 
2808 
2809     Close okx_covasst_csr;
2810    END IF;
2811 
2812 
2813 -- For Object Code 'OKX_IB_ITEM'
2814 
2815     IF (l_lty_code = 'INST_ITEM') THEN
2816 
2817       OPEN okx_ib_item_csr(p_name => p_name,
2818                            p_id1  => l_id1,
2819                            p_id2  => l_id2);
2820 
2821         l_id1  := Null;
2822 
2823         l_id2  := Null;
2824 
2825         l_name := Null;
2826 
2827         l_description := Null;
2828 
2829 
2830       FETCH okx_ib_item_csr INTO l_id1,l_id2,l_name,l_description;
2831 
2832 
2833 
2834       IF okx_ib_item_csr%NotFound THEN
2835 
2836          x_return_status := OKC_API.g_ret_sts_error;
2837 
2838          OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
2839 
2840          raise OKC_API.G_EXCEPTION_ERROR;
2841 
2842 
2843       END IF;
2844 
2845 
2846     l_id11 := l_id1;
2847 
2848     l_id22 := l_id2;
2849 
2850 
2851 
2852       FETCH okx_ib_item_csr INTO l_id1,l_id2,l_name,l_description;
2853 
2854       If okx_ib_item_csr%Found Then
2855 
2856 
2857 
2858            If( p_id1 is null or p_id1 = OKC_API.G_MISS_CHAR) then
2859 
2860           x_return_status := OKC_API.g_ret_sts_error;
2861 
2862       OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
2863 
2864           raise OKC_API.G_EXCEPTION_ERROR;
2865 
2866         End If;
2867 
2868            If( p_id2 is null or p_id2 = OKC_API.G_MISS_CHAR) then
2869 
2870           x_return_status := OKC_API.g_ret_sts_error;
2871 
2872        OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
2873 
2874           raise OKC_API.G_EXCEPTION_ERROR;
2875 
2876         End If;
2877 
2878 
2879 
2880         Loop
2881 
2882          If(l_id1 = p_id1 and l_id2 = p_id2) Then
2883 
2884       l_id11 := l_id1;
2885 
2886             l_id22 := l_id2;
2887 
2888             row_count := 1;
2889 
2890             Exit;
2891 
2892          End If;
2893 
2894 
2895 
2896          FETCH okx_ib_item_csr INTO l_id1,l_id2,l_name,l_description;
2897 
2898          Exit When okx_ib_item_csr%NotFound;
2899 
2900         End Loop;
2901 
2902 
2903 
2904     If row_count <> 1 Then
2905 
2906      x_return_status := OKC_API.g_ret_sts_error;
2907 
2908      OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
2909 
2910      raise OKC_API.G_EXCEPTION_ERROR;
2911 
2912     End If;
2913 
2914 
2915 
2916       End If;
2917 
2918 
2919 
2920     p_id1 := l_id11;
2921 
2922     p_id2 := l_id22;
2923 
2924 
2925 
2926 
2927     Close okx_ib_item_csr;
2928    END IF;
2929 
2930 -- For Object Code 'OKX_LEASE'
2931 
2932      IF (l_lty_code = 'SHARED') THEN
2933 
2934       OPEN okx_lease_csr(p_name => p_name,
2935                          p_id1  => l_id1,
2936                          p_id2  => l_id2);
2937 
2938         l_id1  := Null;
2939 
2940         l_id2  := Null;
2941 
2942         l_name := Null;
2943 
2944         l_description := Null;
2945 
2946       FETCH okx_lease_csr INTO l_id1,l_id2,l_name,l_description;
2947 
2948 
2949 
2950       IF okx_lease_csr%NotFound THEN
2951 
2952          x_return_status := OKC_API.g_ret_sts_error;
2953 
2954          OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
2955 
2956          raise OKC_API.G_EXCEPTION_ERROR;
2957 
2958 
2959       END IF;
2960 
2961 
2962     l_id11 := l_id1;
2963 
2964     l_id22 := l_id2;
2965 
2966 
2967 
2968       FETCH okx_lease_csr INTO l_id1,l_id2,l_name,l_description;
2969 
2970       If okx_lease_csr%Found Then
2971 
2972 
2973 
2974            If( p_id1 is null or p_id1 = OKC_API.G_MISS_CHAR) then
2975 
2976           x_return_status := OKC_API.g_ret_sts_error;
2977 
2978       OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
2979 
2980           raise OKC_API.G_EXCEPTION_ERROR;
2981 
2982         End If;
2983 
2984            If( p_id2 is null or p_id2 = OKC_API.G_MISS_CHAR) then
2985 
2986           x_return_status := OKC_API.g_ret_sts_error;
2987 
2988        OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
2989 
2990           raise OKC_API.G_EXCEPTION_ERROR;
2991 
2992         End If;
2993 
2994 
2995 
2996         Loop
2997 
2998          If(l_id1 = p_id1 and l_id2 = p_id2) Then
2999 
3000       l_id11 := l_id1;
3001 
3002             l_id22 := l_id2;
3003 
3004             row_count := 1;
3005 
3006             Exit;
3007 
3008          End If;
3009 
3010 
3011 
3012          FETCH okx_lease_csr INTO l_id1,l_id2,l_name,l_description;
3013 
3014          Exit When okx_lease_csr%NotFound;
3015 
3016         End Loop;
3017 
3018 
3019 
3020     If row_count <> 1 Then
3021 
3022      x_return_status := OKC_API.g_ret_sts_error;
3023 
3024      OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
3025 
3026      raise OKC_API.G_EXCEPTION_ERROR;
3027 
3028     End If;
3029 
3030 
3031 
3032       End If;
3033 
3034 
3035 
3036     p_id1 := l_id11;
3037 
3038     p_id2 := l_id22;
3039 
3040 
3041 
3042 
3043     Close okx_lease_csr;
3044    END IF;
3045 
3046 
3047 
3048 
3049 -- For Object Code 'OKX_SERVICE'
3050 
3051      IF (l_lty_code ='SOLD_SERVICE') THEN
3052 
3053      OPEN okx_service_csr(p_name => p_name,
3054                           p_id1  => l_id1,
3055                           p_id2  => l_id2 );
3056 
3057        l_id1  := Null;
3058 
3059        l_id2  := Null;
3060 
3061        l_name := Null;
3062 
3063        l_description := Null;
3064 
3065      FETCH okx_service_csr INTO l_id1,l_id2,l_name,l_description;
3066 
3067 
3068 
3069       IF okx_service_csr%NotFound THEN
3070 
3071          x_return_status := OKC_API.g_ret_sts_error;
3072 
3073          OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
3074 
3075          raise OKC_API.G_EXCEPTION_ERROR;
3076 
3077 
3078       END IF;
3079 
3080 
3081     l_id11 := l_id1;
3082 
3083     l_id22 := l_id2;
3084 
3085 
3086 
3087       FETCH okx_service_csr INTO l_id1,l_id2,l_name,l_description;
3088 
3089       If okx_service_csr%Found Then
3090 
3091 
3092 
3093            If( p_id1 is null or p_id1 = OKC_API.G_MISS_CHAR) then
3094 
3095           x_return_status := OKC_API.g_ret_sts_error;
3096 
3097       OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
3098 
3099           raise OKC_API.G_EXCEPTION_ERROR;
3100 
3101         End If;
3102 
3103            If( p_id2 is null or p_id2 = OKC_API.G_MISS_CHAR) then
3104 
3105           x_return_status := OKC_API.g_ret_sts_error;
3106 
3107        OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
3108 
3109           raise OKC_API.G_EXCEPTION_ERROR;
3110 
3111         End If;
3112 
3113 
3114 
3115         Loop
3116 
3117          If(l_id1 = p_id1 and l_id2 = p_id2) Then
3118 
3119       l_id11 := l_id1;
3120 
3121             l_id22 := l_id2;
3122 
3123             row_count := 1;
3124 
3125             Exit;
3126 
3127          End If;
3128 
3129 
3130 
3131          FETCH okx_service_csr INTO l_id1,l_id2,l_name,l_description;
3132 
3133          Exit When okx_service_csr%NotFound;
3134 
3135         End Loop;
3136 
3137 
3138 
3139     If row_count <> 1 Then
3140 
3141      x_return_status := OKC_API.g_ret_sts_error;
3142 
3143      OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
3144 
3145      raise OKC_API.G_EXCEPTION_ERROR;
3146 
3147     End If;
3148 
3149 
3150 
3151       End If;
3152 
3153 
3154 
3155     p_id1 := l_id11;
3156 
3157     p_id2 := l_id22;
3158 
3159 
3160 
3161 
3162     Close okx_service_csr;
3163    END IF;
3164 
3165 
3166 -- For Object Code 'OKX_SYSITEM'
3167 
3168    IF (l_lty_code = 'ITEM' or l_lty_code ='ADD_ITEM') THEN
3169 
3170    OPEN okx_sysitem_csr(p_name => p_name,
3171                         p_id1  => l_id1,
3172                         p_id2  => l_id2);
3173 
3174      l_id1  := Null;
3175      l_id2  := Null;
3176      l_name := Null;
3177      l_description := Null;
3178 
3179    FETCH okx_sysitem_csr INTO l_id1,l_id2,l_name,l_description;
3180    IF okx_sysitem_csr%NotFound THEN
3181 
3182          x_return_status := OKC_API.g_ret_sts_error;
3183          OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
3184          raise OKC_API.G_EXCEPTION_ERROR;
3185 
3186     END IF;
3187 
3188     l_id11 := l_id1;
3189     l_id22 := l_id2;
3190 
3191     FETCH okx_sysitem_csr INTO l_id1,l_id2,l_name,l_description;
3192 
3193     If okx_sysitem_csr%Found Then
3194          If( p_id1 is null or p_id1 = OKC_API.G_MISS_CHAR) then
3195           x_return_status := OKC_API.g_ret_sts_error;
3196           OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
3197           raise OKC_API.G_EXCEPTION_ERROR;
3198          End If;
3199          If( p_id2 is null or p_id2 = OKC_API.G_MISS_CHAR) then
3200             x_return_status := OKC_API.g_ret_sts_error;
3201             OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
3202             raise OKC_API.G_EXCEPTION_ERROR;
3203          End If;
3204          Loop
3205          If(l_id1 = p_id1 and l_id2 = p_id2) Then
3206             l_id11 := l_id1;
3207             l_id22 := l_id2;
3208             row_count := 1;
3209             Exit;
3210          End If;
3211 
3212          FETCH okx_sysitem_csr INTO l_id1,l_id2,l_name,l_description;
3213          Exit When okx_sysitem_csr%NotFound;
3214         End Loop;
3215 
3216     If row_count <> 1 Then
3217       x_return_status := OKC_API.g_ret_sts_error;
3218       OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_LLA_ASSET_REQUIRED');
3219       raise OKC_API.G_EXCEPTION_ERROR;
3220 
3221     End If;
3222 
3223    End If;
3224 
3225     p_id1 := l_id11;
3226     p_id2 := l_id22;
3227 
3228     Close okx_sysitem_csr;
3229 
3230    END IF;
3231 
3232   x_return_status := OKC_API.G_RET_STS_SUCCESS;
3233   OKC_API.END_ACTIVITY(x_msg_count => x_msg_count,x_msg_data => x_msg_data);
3234 
3235   EXCEPTION
3236 
3237     when OKC_API.G_EXCEPTION_ERROR then
3238         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3239               p_api_name  => l_api_name,
3240               p_pkg_name  => g_pkg_name,
3241               p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
3242               x_msg_count => x_msg_count,
3243               x_msg_data  => x_msg_data,
3244               p_api_type  => g_api_type);
3245 
3246      IF okl_strmtyp_csr%ISOPEN THEN
3247         CLOSE okl_strmtyp_csr;
3248      END IF;
3249 
3250      IF okl_usage_csr%ISOPEN THEN
3251         CLOSE okl_usage_csr;
3252      END IF;
3253 
3254      IF okx_asset_csr%ISOPEN THEN
3255         CLOSE okx_asset_csr;
3256      END IF;
3257 
3258      IF okx_covasst_csr%ISOPEN THEN
3259         CLOSE okx_covasst_csr;
3260      END IF;
3261 
3262      IF okx_ib_item_csr%ISOPEN THEN
3263         CLOSE okx_ib_item_csr;
3264      END IF;
3265 
3266      IF okx_lease_csr%ISOPEN THEN
3267         CLOSE okx_lease_csr;
3268      END IF;
3269 
3270      IF okx_service_csr%ISOPEN THEN
3271         CLOSE okx_service_csr;
3272      END IF;
3273 
3274      IF okx_sysitem_csr%ISOPEN THEN
3275         CLOSE okx_sysitem_csr;
3276      END IF;
3277 
3278      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
3279 
3280         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3281               p_api_name  => l_api_name,
3282               p_pkg_name  => g_pkg_name,
3283               p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
3284               x_msg_count => x_msg_count,
3285               x_msg_data  => x_msg_data,
3286               p_api_type  => g_api_type);
3287      IF okl_strmtyp_csr%ISOPEN THEN
3288         CLOSE okl_strmtyp_csr;
3289      END IF;
3290 
3291      IF okl_usage_csr%ISOPEN THEN
3292         CLOSE okl_usage_csr;
3293      END IF;
3294 
3295      IF okx_asset_csr%ISOPEN THEN
3296         CLOSE okx_asset_csr;
3297      END IF;
3298 
3299      IF okx_covasst_csr%ISOPEN THEN
3300         CLOSE okx_covasst_csr;
3301      END IF;
3302 
3303      IF okx_ib_item_csr%ISOPEN THEN
3304         CLOSE okx_ib_item_csr;
3305      END IF;
3306 
3307      IF okx_lease_csr%ISOPEN THEN
3308         CLOSE okx_lease_csr;
3309      END IF;
3310 
3311      IF okx_service_csr%ISOPEN THEN
3312         CLOSE okx_service_csr;
3313      END IF;
3314 
3315      IF okx_sysitem_csr%ISOPEN THEN
3316         CLOSE okx_sysitem_csr;
3317      END IF;
3318 
3319 
3320      when OTHERS then
3321 
3322         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3323               p_api_name  => l_api_name,
3324               p_pkg_name  => g_pkg_name,
3325               p_exc_name  => 'OTHERS',
3326               x_msg_count => x_msg_count,
3327               x_msg_data  => x_msg_data,
3328               p_api_type  => g_api_type);
3329 
3330      IF okl_strmtyp_csr%ISOPEN THEN
3331         CLOSE okl_strmtyp_csr;
3332      END IF;
3333 
3334      IF okl_usage_csr%ISOPEN THEN
3335         CLOSE okl_usage_csr;
3336      END IF;
3337 
3338      IF okx_asset_csr%ISOPEN THEN
3339         CLOSE okx_asset_csr;
3340      END IF;
3341 
3342      IF okx_covasst_csr%ISOPEN THEN
3343         CLOSE okx_covasst_csr;
3344      END IF;
3345 
3346      IF okx_ib_item_csr%ISOPEN THEN
3347         CLOSE okx_ib_item_csr;
3348      END IF;
3349 
3350      IF okx_lease_csr%ISOPEN THEN
3351         CLOSE okx_lease_csr;
3352      END IF;
3353 
3354      IF okx_service_csr%ISOPEN THEN
3355         CLOSE okx_service_csr;
3356      END IF;
3357 
3358      IF okx_sysitem_csr%ISOPEN THEN
3359         CLOSE okx_sysitem_csr;
3360      END IF;
3361 
3362 
3363 End Validate_Link_Asset;
3364 
3365 
3366 
3367 
3368 
3369 
3370 
3371 
3372 --Start of Comments
3373 
3374 --Procedure   : Validate_Item
3375 
3376 --Description : Returns Name, Description for a given role or all the roles
3377 
3378 --              attached to a contract
3379 
3380 --End of Comments
3381 
3382 Procedure Validate_Service (p_api_version     IN    NUMBER,
3383                      p_init_msg_list       IN    VARCHAR2 default OKC_API.G_FALSE,
3384                      x_return_status       OUT  NOCOPY    VARCHAR2,
3385                      x_msg_count       OUT  NOCOPY    NUMBER,
3386                      x_msg_data               OUT  NOCOPY    VARCHAR2,
3387                      p_chr_id              IN    NUMBER,
3388                      p_cle_id              IN    NUMBER,
3389                      p_lty_code            IN   VARCHAR2,
3390                      p_item_id1            IN OUT NOCOPY VARCHAR2,
3391                      p_item_id2            IN OUT NOCOPY VARCHAR2,
3392                      p_item_name           IN  VARCHAR2,
3393                      p_item_object_code    IN OUT NOCOPY VARCHAR2,
3394                      p_cpl_id              IN  NUMBER,
3395                      p_rle_code            IN  VARCHAR2,
3396                      p_party_id1             IN OUT NOCOPY VARCHAR2,
3397                      p_party_id2           IN OUT NOCOPY VARCHAR2,
3398                      p_party_name          IN  VARCHAR2,
3399                      p_party_object_code   IN OUT NOCOPY VARCHAR2
3400                      ) is
3401 
3402 l_select_clause     varchar2(2000) default null;
3403 l_from_clause       varchar2(2000) default null;
3404 l_where_clause      varchar2(2000) default null;
3405 l_order_by_clause   varchar2(2000) default null;
3406 l_query_string      varchar2(2000) default null;
3407 
3408 l_item_id1          OKC_K_ITEMS_V.OBJECT1_ID1%TYPE default Null;
3409 l_item_id2          OKC_K_ITEMS_V.OBJECT1_ID2%TYPE default Null;
3410 l_item_name         VARCHAR2(250) Default Null;
3411 
3412 l_item_description  VARCHAR2(250) Default Null;
3413 l_item_object_code  VARCHAR2(30) Default Null;
3414 
3415 
3416 
3417 l_item_id11         OKC_K_ITEMS_V.OBJECT1_ID1%TYPE default Null;
3418 l_item_id22         OKC_K_ITEMS_V.OBJECT1_ID2%TYPE default Null;
3419 
3420 
3421 
3422 l_party_id1         OKC_K_PARTY_ROLES_V.OBJECT1_ID1%TYPE default Null;
3423 l_party_id2         OKC_K_PARTY_ROLES_V.OBJECT1_ID2%TYPE default Null;
3424 l_party_name        VARCHAR2(250) Default Null;
3425 l_party_object_code VARCHAR2(30) Default Null;
3426 
3427 
3428 
3429 type                item_curs_type is REF CURSOR;
3430 
3431 item_curs           item_curs_type;
3432 
3433 
3434 
3435 row_count           Number default 0;
3436 
3437 
3438 
3439 l_chr_id        okl_k_headers.id%type;
3440 l_cle_id            okl_k_lines.id%type;
3441 l_cle_id            okl_k_lines.id%type;
3442 l_lty_code          okc_line_styles_b.lty_code%type;
3443 
3444 
3445 l_fee_ak_prompt  AK_ATTRIBUTES_VL.attribute_label_long%type;
3446 
3447 
3448 l_api_name      CONSTANT VARCHAR2(30) := 'validate_service';
3449 l_api_version    CONSTANT NUMBER      := 1.0;
3450 
3451 l_return_status    VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3452 
3453 
3454 
3455 CURSOR check_item_csr(p_chr_id NUMBER, p_lty_code VARCHAR2, p_id1 VARCHAR2, p_id2 VARCHAR2) IS
3456 
3457 select count(1)
3458 
3459 from  okc_k_items cim
3460       , okc_k_lines_b cle
3461       , okc_line_style_sources lss
3462       , okc_line_styles_b lse
3463 where  nvl(lss.start_date,sysdate) <= sysdate
3464 and    nvl(lss.end_date,sysdate + 1) > sysdate
3465 and    lse.id = lss.lse_id
3466 and    cle.lse_id = lse.id
3467 and    cle.id = cim.cle_id
3468 and    cim.object1_id1 = p_id1
3469 and    cim.object1_id2 = p_id2
3470 and    cim.chr_id = p_chr_id
3471 and    cim.dnz_chr_id = p_chr_id
3472 and    lse.lty_code = p_lty_code;
3473 
3474 
3475 
3476 CURSOR get_item_csr(p_chr_id NUMBER, p_cle_id NUMBER) IS
3477 SELECT lse.lty_code, cim.object1_id1, cim.object1_id2
3478 from  okc_k_items cim
3479       , okc_k_lines_b cle
3480       , okc_line_style_sources lss
3481       , okc_line_styles_b lse
3482 where  nvl(lss.start_date,sysdate) <= sysdate
3483 and    nvl(lss.end_date,sysdate + 1) > sysdate
3484 and    lse.id = lss.lse_id
3485 and    cle.lse_id = lse.id
3486 and    cle.id = cim.cle_id
3487 and    cim.chr_id = p_chr_id
3488 and    cim.dnz_chr_id = p_chr_id
3489 and    cle.id = p_cle_id;
3490 
3491 
3492 Begin
3493 
3494   If okl_context.get_okc_org_id  is null then
3495     l_chr_id := p_chr_id;
3496     okl_context.set_okc_org_context(p_chr_id => l_chr_id );
3497   End If;
3498 
3499 
3500  -- call START_ACTIVITY to create savepoint, check compatibility
3501 
3502  -- and initialize message list
3503 
3504  l_return_status := OKC_API.START_ACTIVITY(
3505             p_api_name      => l_api_name,
3506             p_pkg_name      => g_pkg_name,
3507             p_init_msg_list => p_init_msg_list,
3508             l_api_version   => l_api_version,
3509             p_api_version   => p_api_version,
3510             p_api_type      => g_api_type,
3511             x_return_status => x_return_status);
3512 
3513 
3514   If ( p_chr_id is null or p_chr_id =  OKC_API.G_MISS_NUM)
3515   Then
3516       OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'Missing_Chr_Name');
3517       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3518   ElsIf ( p_item_name is null or p_item_name =  OKC_API.G_MISS_CHAR)
3519   Then
3520       OKC_API.SET_MESSAGE(p_app_name => g_app_name,
3521                p_msg_name => 'Missing_Service_Name');
3522       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3523   ElsIf ( p_lty_code is null or p_lty_code =  OKC_API.G_MISS_CHAR)
3524   Then
3525       OKC_API.SET_MESSAGE(p_app_name => g_app_name,
3526                p_msg_name => 'Missing_Lty_Code');
3527       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3528   End If;
3529 
3530 --Added by kthiruva 23-Sep-2003 Bug No.3156265
3531 
3532    IF (p_lty_code = 'FEE') THEN
3533 
3534       OPEN okl_strmtyp_csr(p_name => p_item_name,
3535                            p_id1  => l_item_id1,
3536                            p_id2  => l_item_id2 );
3537 
3538          l_item_id1  := Null;
3539          l_item_id2  := Null;
3540          l_item_name := Null;
3541          l_item_description := Null;
3542 
3543       FETCH okl_strmtyp_csr INTO l_item_id1,l_item_id2,l_item_name,l_item_description;
3544 
3545       IF okl_strmtyp_csr%NotFound THEN
3546          x_return_status := OKC_API.g_ret_sts_error;
3547 
3548          -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
3549 
3550          l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
3551          OKC_API.SET_MESSAGE(p_app_name => g_app_name
3552                            , p_msg_name => 'OKL_INVALID_VALUE'
3553                            , p_token1 => 'COL_NAME'
3554                            , p_token1_value => l_fee_ak_prompt
3555                        );
3556 
3557          raise OKC_API.G_EXCEPTION_ERROR;
3558 
3559       END IF;
3560       l_item_id11 := l_item_id1;
3561       l_item_id22 := l_item_id2;
3562 
3563       Fetch okl_strmtyp_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
3564       If okl_strmtyp_csr%Found Then
3565            If( p_item_id1 is null or p_item_id1 = OKC_API.G_MISS_CHAR) then
3566                x_return_status := OKC_API.g_ret_sts_error;
3567           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
3568                l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
3569                OKC_API.SET_MESSAGE(      p_app_name => g_app_name
3570                        , p_msg_name => 'OKL_INVALID_VALUE'
3571                       , p_token1 => 'COL_NAME'
3572                       , p_token1_value => l_fee_ak_prompt
3573                      );
3574 
3575           raise OKC_API.G_EXCEPTION_ERROR;
3576 
3577        End If;
3578 
3579        If( p_item_id2 is null or p_item_id2 = OKC_API.G_MISS_CHAR) then
3580            x_return_status := OKC_API.g_ret_sts_error;
3581           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
3582 
3583           l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
3584           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
3585                       , p_msg_name => 'OKL_INVALID_VALUE'
3586                       , p_token1 => 'COL_NAME'
3587                       , p_token1_value => l_fee_ak_prompt
3588                      );
3589 
3590           raise OKC_API.G_EXCEPTION_ERROR;
3591 
3592         End If;
3593 
3594         Loop
3595 
3596          If(l_item_id1 = p_item_id1 and l_item_id2 = p_item_id2) Then
3597                l_item_id11 := l_item_id1;
3598                l_item_id22 := l_item_id2;
3599                row_count := 1;
3600                Exit;
3601          End If;
3602 
3603          Fetch okl_strmtyp_csr INTO  l_item_id1,l_item_id2,l_item_name,l_item_description;
3604          Exit When okl_strmtyp_csr%NotFound;
3605 
3606         End Loop;
3607 
3608     If row_count <> 1 Then
3609 
3610      x_return_status := OKC_API.g_ret_sts_error;
3611 
3612           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
3613 
3614           l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
3615           OKC_API.SET_MESSAGE(p_app_name => g_app_name
3616                       , p_msg_name => 'OKL_INVALID_VALUE'
3617                       , p_token1 => 'COL_NAME'
3618                       , p_token1_value => l_fee_ak_prompt
3619 
3620                      );
3621 
3622           raise OKC_API.G_EXCEPTION_ERROR;
3623 
3624     End If;
3625 
3626   End If;
3627 
3628   p_item_id1 := l_item_id11;
3629   p_item_id2 := l_item_id22;
3630 
3631   Close okl_strmtyp_csr;
3632  END IF;
3633 
3634 -- For Object Code 'OKL_USAGE'
3635    IF (p_lty_code = 'USAGE') THEN
3636 
3637       OPEN okl_usage_csr(p_name => p_item_name,
3638                          p_id1  => l_item_id1,
3639                          p_id2  => l_item_id2 );
3640 
3641 
3642       l_item_id1  := Null;
3643       l_item_id2  := Null;
3644       l_item_name := Null;
3645       l_item_description := Null;
3646 
3647       FETCH okl_usage_csr INTO l_item_id1,l_item_id2,l_item_name,l_item_description;
3648 
3649       IF okl_usage_csr%NotFound THEN
3650          x_return_status := OKC_API.g_ret_sts_error;
3651 
3652          -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
3653 
3654          l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
3655          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
3656                          , p_msg_name => 'OKL_INVALID_VALUE'
3657                       , p_token1 => 'COL_NAME'
3658                       , p_token1_value => l_fee_ak_prompt
3659                        );
3660 
3661          raise OKC_API.G_EXCEPTION_ERROR;
3662 
3663       END IF;
3664       l_item_id11 := l_item_id1;
3665       l_item_id22 := l_item_id2;
3666 
3667       Fetch okl_usage_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
3668 
3669       If okl_usage_csr%Found Then
3670            If( p_item_id1 is null or p_item_id1 = OKC_API.G_MISS_CHAR) then
3671                 x_return_status := OKC_API.g_ret_sts_error;
3672              -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
3673                 l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
3674                 OKC_API.SET_MESSAGE( p_app_name => g_app_name
3675                                    , p_msg_name => 'OKL_INVALID_VALUE'
3676                                    , p_token1 => 'COL_NAME'
3677                                    , p_token1_value => l_fee_ak_prompt);
3678 
3679                 raise OKC_API.G_EXCEPTION_ERROR;
3680 
3681            End If;
3682 
3683            If( p_item_id2 is null or p_item_id2 = OKC_API.G_MISS_CHAR) then
3684               x_return_status := OKC_API.g_ret_sts_error;
3685           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
3686               l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
3687               OKC_API.SET_MESSAGE(p_app_name => g_app_name
3688                       , p_msg_name => 'OKL_INVALID_VALUE'
3689                       , p_token1 => 'COL_NAME'
3690                       , p_token1_value => l_fee_ak_prompt
3691                      );
3692 
3693               raise OKC_API.G_EXCEPTION_ERROR;
3694 
3695         End If;
3696 
3697         Loop
3698 
3699          If(l_item_id1 = p_item_id1 and l_item_id2 = p_item_id2) Then
3700             l_item_id11 := l_item_id1;
3701             l_item_id22 := l_item_id2;
3702             row_count := 1;
3703             Exit;
3704          End If;
3705          Fetch okl_usage_csr INTO  l_item_id1,l_item_id2,l_item_name,l_item_description;
3706          Exit When okl_usage_csr%NotFound;
3707 
3708         End Loop;
3709 
3710     If row_count <> 1 Then
3711         x_return_status := OKC_API.g_ret_sts_error;
3712          -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
3713         l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
3714 
3715          OKC_API.SET_MESSAGE(p_app_name => g_app_name
3716                       , p_msg_name => 'OKL_INVALID_VALUE'
3717                       , p_token1 => 'COL_NAME'
3718                       , p_token1_value => l_fee_ak_prompt
3719                      );
3720 
3721          raise OKC_API.G_EXCEPTION_ERROR;
3722 
3723     End If;
3724 
3725    End If;
3726 
3727    p_item_id1 := l_item_id11;
3728    p_item_id2 := l_item_id22;
3729 
3730    Close okl_usage_csr;
3731 
3732  END IF;
3733 
3734 -- For Object Code ' OKX_ASSET '
3735 
3736    IF (p_lty_code = 'FIXED_ASSET') THEN
3737 
3738       OPEN okx_asset_csr(p_name => p_item_name,
3739                          p_id1  => l_item_id1,
3740                          p_id2  => l_item_id2 );
3741 
3742 
3743          l_item_id1  := Null;
3744          l_item_id2  := Null;
3745          l_item_name := Null;
3746          l_item_description := Null;
3747 
3748       FETCH okx_asset_csr INTO l_item_id1,l_item_id2,l_item_name,l_item_description;
3749 
3750       IF okx_asset_csr%NotFound THEN
3751          x_return_status := OKC_API.g_ret_sts_error;
3752          -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
3753          l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
3754          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
3755                          , p_msg_name => 'OKL_INVALID_VALUE'
3756                       , p_token1 => 'COL_NAME'
3757                       , p_token1_value => l_fee_ak_prompt );
3758 
3759          raise OKC_API.G_EXCEPTION_ERROR;
3760 
3761       END IF;
3762 
3763       l_item_id11 := l_item_id1;
3764       l_item_id22 := l_item_id2;
3765 
3766       Fetch okx_asset_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
3767       If okx_asset_csr%Found Then
3768            If( p_item_id1 is null or p_item_id1 = OKC_API.G_MISS_CHAR) then
3769                x_return_status := OKC_API.g_ret_sts_error;
3770           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
3771                l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
3772                OKC_API.SET_MESSAGE(p_app_name => g_app_name
3773                              , p_msg_name => 'OKL_INVALID_VALUE'
3774                       , p_token1 => 'COL_NAME'
3775                       , p_token1_value => l_fee_ak_prompt
3776                      );
3777 
3778               raise OKC_API.G_EXCEPTION_ERROR;
3779 
3780            End If;
3781 
3782            If( p_item_id2 is null or p_item_id2 = OKC_API.G_MISS_CHAR) then
3783                x_return_status := OKC_API.g_ret_sts_error;
3784           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
3785                l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
3786                OKC_API.SET_MESSAGE(p_app_name => g_app_name
3787                       , p_msg_name => 'OKL_INVALID_VALUE'
3788                       , p_token1 => 'COL_NAME'
3789                       , p_token1_value => l_fee_ak_prompt );
3790 
3791                raise OKC_API.G_EXCEPTION_ERROR;
3792 
3793            End If;
3794 
3795         Loop
3796 
3797          If(l_item_id1 = p_item_id1 and l_item_id2 = p_item_id2) Then
3798             l_item_id11 := l_item_id1;
3799             l_item_id22 := l_item_id2;
3800             row_count := 1;
3801             Exit;
3802          End If;
3803 
3804          Fetch okx_asset_csr INTO  l_item_id1,l_item_id2,l_item_name,l_item_description;
3805          Exit When okx_asset_csr%NotFound;
3806 
3807        End Loop;
3808 
3809 
3810     If row_count <> 1 Then
3811         x_return_status := OKC_API.g_ret_sts_error;
3812 
3813           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
3814 
3815           l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
3816           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
3817                       , p_msg_name => 'OKL_INVALID_VALUE'
3818                       , p_token1 => 'COL_NAME'
3819                       , p_token1_value => l_fee_ak_prompt
3820                      );
3821 
3822      raise OKC_API.G_EXCEPTION_ERROR;
3823 
3824     End If;
3825 
3826    End If;
3827 
3828      p_item_id1 := l_item_id11;
3829      p_item_id2 := l_item_id22;
3830 
3831   Close okx_asset_csr;
3832   END IF;
3833 
3834  -- For Object Code 'OKX_COVASST'
3835 
3836    IF (p_lty_code ='LINK_SERV_ASSET' OR p_lty_code = 'LINK_USAGE_ASSET') THEN
3837 
3838       OPEN okx_covasst_csr(p_name => p_item_name,
3839                            p_id1  => l_item_id1,
3840                            p_id2  => l_item_id2 );
3841 
3842 
3843          l_item_id1  := Null;
3844          l_item_id2  := Null;
3845          l_item_name := Null;
3846          l_item_description := Null;
3847 
3848       FETCH okx_covasst_csr INTO l_item_id1,l_item_id2,l_item_name,l_item_description;
3849 
3850       IF okx_covasst_csr%NotFound THEN
3851          x_return_status := OKC_API.g_ret_sts_error;
3852          -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
3853 
3854          l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
3855          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
3856                          , p_msg_name => 'OKL_INVALID_VALUE'
3857                       , p_token1 => 'COL_NAME'
3858                       , p_token1_value => l_fee_ak_prompt
3859                        );
3860 
3861          raise OKC_API.G_EXCEPTION_ERROR;
3862 
3863 
3864 
3865       END IF;
3866 
3867 
3868 
3869       l_item_id11 := l_item_id1;
3870 
3871       l_item_id22 := l_item_id2;
3872 
3873 
3874 
3875       Fetch okx_covasst_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
3876 
3877       If okx_covasst_csr%Found Then
3878 
3879 
3880 
3881            If( p_item_id1 is null or p_item_id1 = OKC_API.G_MISS_CHAR) then
3882 
3883           x_return_status := OKC_API.g_ret_sts_error;
3884 
3885 
3886 
3887           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
3888 
3889 
3890 
3891           l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
3892 
3893           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
3894 
3895                       , p_msg_name => 'OKL_INVALID_VALUE'
3896 
3897                       , p_token1 => 'COL_NAME'
3898 
3899                       , p_token1_value => l_fee_ak_prompt
3900 
3901                      );
3902 
3903           raise OKC_API.G_EXCEPTION_ERROR;
3904 
3905         End If;
3906 
3907            If( p_item_id2 is null or p_item_id2 = OKC_API.G_MISS_CHAR) then
3908 
3909           x_return_status := OKC_API.g_ret_sts_error;
3910 
3911 
3912 
3913           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
3914 
3915 
3916 
3917           l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
3918 
3919           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
3920 
3921                       , p_msg_name => 'OKL_INVALID_VALUE'
3922 
3923                       , p_token1 => 'COL_NAME'
3924 
3925                       , p_token1_value => l_fee_ak_prompt
3926 
3927                      );
3928 
3929           raise OKC_API.G_EXCEPTION_ERROR;
3930 
3931         End If;
3932 
3933 
3934 
3935         Loop
3936 
3937          If(l_item_id1 = p_item_id1 and l_item_id2 = p_item_id2) Then
3938 
3939       l_item_id11 := l_item_id1;
3940 
3941             l_item_id22 := l_item_id2;
3942 
3943             row_count := 1;
3944 
3945             Exit;
3946 
3947          End If;
3948 
3949          Fetch okx_covasst_csr INTO  l_item_id1,l_item_id2,l_item_name,l_item_description;
3950 
3951          Exit When okx_covasst_csr%NotFound;
3952 
3953         End Loop;
3954 
3955 
3956 
3957     If row_count <> 1 Then
3958 
3959      x_return_status := OKC_API.g_ret_sts_error;
3960 
3961 
3962 
3963           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
3964 
3965 
3966 
3967           l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
3968 
3969           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
3970 
3971                       , p_msg_name => 'OKL_INVALID_VALUE'
3972 
3973                       , p_token1 => 'COL_NAME'
3974 
3975                       , p_token1_value => l_fee_ak_prompt
3976 
3977                      );
3978 
3979      raise OKC_API.G_EXCEPTION_ERROR;
3980 
3981     End If;
3982 
3983 
3984 
3985       End If;
3986 
3987 
3988 
3989      p_item_id1 := l_item_id11;
3990 
3991      p_item_id2 := l_item_id22;
3992 
3993 
3994 
3995     Close okx_covasst_csr;
3996    END IF;
3997 
3998 -- For Object Code 'OKX_IB_ITEM'
3999 
4000     IF (p_lty_code = 'INST_ITEM') THEN
4001 
4002       OPEN okx_ib_item_csr(p_name => p_item_name,
4003                            p_id1  => l_item_id1,
4004                            p_id2  => l_item_id2 );
4005 
4006 
4007          l_item_id1  := Null;
4008 
4009          l_item_id2  := Null;
4010 
4011          l_item_name := Null;
4012 
4013          l_item_description := Null;
4014 
4015 
4016       FETCH okx_ib_item_csr INTO l_item_id1,l_item_id2,l_item_name,l_item_description;
4017 
4018 
4019 
4020       IF okx_ib_item_csr%NotFound THEN
4021 
4022 
4023 
4024          x_return_status := OKC_API.g_ret_sts_error;
4025 
4026 
4027 
4028          -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
4029 
4030 
4031 
4032          l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
4033 
4034          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
4035 
4036                          , p_msg_name => 'OKL_INVALID_VALUE'
4037 
4038                       , p_token1 => 'COL_NAME'
4039 
4040                       , p_token1_value => l_fee_ak_prompt
4041 
4042                        );
4043 
4044          raise OKC_API.G_EXCEPTION_ERROR;
4045 
4046 
4047 
4048       END IF;
4049 
4050 
4051 
4052       l_item_id11 := l_item_id1;
4053 
4054       l_item_id22 := l_item_id2;
4055 
4056 
4057 
4058       Fetch okx_ib_item_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
4059 
4060       If okx_ib_item_csr%Found Then
4061 
4062 
4063 
4064            If( p_item_id1 is null or p_item_id1 = OKC_API.G_MISS_CHAR) then
4065 
4066           x_return_status := OKC_API.g_ret_sts_error;
4067 
4068 
4069 
4070           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
4071 
4072 
4073 
4074           l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
4075 
4076           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
4077 
4078                       , p_msg_name => 'OKL_INVALID_VALUE'
4079 
4080                       , p_token1 => 'COL_NAME'
4081 
4082                       , p_token1_value => l_fee_ak_prompt
4083 
4084                      );
4085 
4086           raise OKC_API.G_EXCEPTION_ERROR;
4087 
4088         End If;
4089 
4090            If( p_item_id2 is null or p_item_id2 = OKC_API.G_MISS_CHAR) then
4091 
4092           x_return_status := OKC_API.g_ret_sts_error;
4093 
4094 
4095 
4096           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
4097 
4098 
4099 
4100           l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
4101 
4102           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
4103 
4104                       , p_msg_name => 'OKL_INVALID_VALUE'
4105 
4106                       , p_token1 => 'COL_NAME'
4107 
4108                       , p_token1_value => l_fee_ak_prompt
4109 
4110                      );
4111 
4112           raise OKC_API.G_EXCEPTION_ERROR;
4113 
4114         End If;
4115 
4116 
4117 
4118         Loop
4119 
4120          If(l_item_id1 = p_item_id1 and l_item_id2 = p_item_id2) Then
4121 
4122       l_item_id11 := l_item_id1;
4123 
4124             l_item_id22 := l_item_id2;
4125 
4126             row_count := 1;
4127 
4128             Exit;
4129 
4130          End If;
4131 
4132          Fetch okx_ib_item_csr INTO  l_item_id1,l_item_id2,l_item_name,l_item_description;
4133 
4134          Exit When okx_ib_item_csr%NotFound;
4135 
4136         End Loop;
4137 
4138 
4139 
4140     If row_count <> 1 Then
4141 
4142      x_return_status := OKC_API.g_ret_sts_error;
4143 
4144 
4145 
4146           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
4147 
4148 
4149 
4150           l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
4151 
4152           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
4153 
4154                       , p_msg_name => 'OKL_INVALID_VALUE'
4155 
4156                       , p_token1 => 'COL_NAME'
4157 
4158                       , p_token1_value => l_fee_ak_prompt
4159 
4160                      );
4161 
4162      raise OKC_API.G_EXCEPTION_ERROR;
4163 
4164     End If;
4165 
4166 
4167 
4168       End If;
4169 
4170 
4171 
4172      p_item_id1 := l_item_id11;
4173 
4174      p_item_id2 := l_item_id22;
4175 
4176 
4177 
4178     Close okx_ib_item_csr;
4179    END IF;
4180 
4181 -- For Object Code 'OKX_LEASE'
4182 
4183      IF (p_lty_code = 'SHARED') THEN
4184 
4185       OPEN okx_lease_csr(p_name => p_item_name,
4186                          p_id1  => l_item_id1,
4187                          p_id2  => l_item_id2 );
4188 
4189 
4190          l_item_id1  := Null;
4191 
4192          l_item_id2  := Null;
4193 
4194          l_item_name := Null;
4195 
4196          l_item_description := Null;
4197 
4198 
4199       FETCH okx_lease_csr INTO l_item_id1,l_item_id2,l_item_name,l_item_description;
4200 
4201 
4202 
4203       IF okx_lease_csr%NotFound THEN
4204 
4205 
4206 
4207          x_return_status := OKC_API.g_ret_sts_error;
4208 
4209 
4210 
4211          -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
4212 
4213 
4214 
4215          l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
4216 
4217          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
4218 
4219                          , p_msg_name => 'OKL_INVALID_VALUE'
4220 
4221                       , p_token1 => 'COL_NAME'
4222 
4223                       , p_token1_value => l_fee_ak_prompt
4224 
4225                        );
4226 
4227          raise OKC_API.G_EXCEPTION_ERROR;
4228 
4229 
4230 
4231       END IF;
4232 
4233 
4234 
4235       l_item_id11 := l_item_id1;
4236 
4237       l_item_id22 := l_item_id2;
4238 
4239 
4240 
4241       Fetch okx_lease_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
4242 
4243       If okx_lease_csr%Found Then
4244 
4245 
4246 
4247            If( p_item_id1 is null or p_item_id1 = OKC_API.G_MISS_CHAR) then
4248 
4249           x_return_status := OKC_API.g_ret_sts_error;
4250 
4251 
4252 
4253           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
4254 
4255 
4256 
4257           l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
4258 
4259           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
4260 
4261                       , p_msg_name => 'OKL_INVALID_VALUE'
4262 
4263                       , p_token1 => 'COL_NAME'
4264 
4265                       , p_token1_value => l_fee_ak_prompt
4266 
4267                      );
4268 
4269           raise OKC_API.G_EXCEPTION_ERROR;
4270 
4271         End If;
4272 
4273            If( p_item_id2 is null or p_item_id2 = OKC_API.G_MISS_CHAR) then
4274 
4275           x_return_status := OKC_API.g_ret_sts_error;
4276 
4277 
4278 
4279           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
4280 
4281 
4282 
4283           l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
4284 
4285           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
4286 
4287                       , p_msg_name => 'OKL_INVALID_VALUE'
4288 
4289                       , p_token1 => 'COL_NAME'
4290 
4291                       , p_token1_value => l_fee_ak_prompt
4292 
4293                      );
4294 
4295           raise OKC_API.G_EXCEPTION_ERROR;
4296 
4297         End If;
4298 
4299 
4300 
4301         Loop
4302 
4303          If(l_item_id1 = p_item_id1 and l_item_id2 = p_item_id2) Then
4304 
4305       l_item_id11 := l_item_id1;
4306 
4307             l_item_id22 := l_item_id2;
4308 
4309             row_count := 1;
4310 
4311             Exit;
4312 
4313          End If;
4314 
4315          Fetch okx_lease_csr INTO  l_item_id1,l_item_id2,l_item_name,l_item_description;
4316 
4317          Exit When okx_lease_csr%NotFound;
4318 
4319         End Loop;
4320 
4321 
4322 
4323     If row_count <> 1 Then
4324 
4325      x_return_status := OKC_API.g_ret_sts_error;
4326 
4327 
4328 
4329           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
4330 
4331 
4332 
4333           l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
4334 
4335           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
4336 
4337                       , p_msg_name => 'OKL_INVALID_VALUE'
4338 
4339                       , p_token1 => 'COL_NAME'
4340 
4341                       , p_token1_value => l_fee_ak_prompt
4342 
4343                      );
4344 
4345      raise OKC_API.G_EXCEPTION_ERROR;
4346 
4347     End If;
4348 
4349 
4350 
4351       End If;
4352 
4353 
4354 
4355      p_item_id1 := l_item_id11;
4356 
4357      p_item_id2 := l_item_id22;
4358 
4359 
4360 
4361     Close okx_lease_csr;
4362    END IF;
4363 
4364 -- For Object Code 'OKX_SERVICE'
4365 
4366      IF (p_lty_code ='SOLD_SERVICE') THEN
4367 
4368       OPEN okx_service_csr(p_name => p_item_name,
4369                            p_id1  => l_item_id1,
4370                            p_id2  => l_item_id2 );
4371 
4372 
4373          l_item_id1  := Null;
4374 
4375          l_item_id2  := Null;
4376 
4377          l_item_name := Null;
4378 
4379          l_item_description := Null;
4380 
4381 
4382 
4383       FETCH okx_service_csr INTO l_item_id1,l_item_id2,l_item_name,l_item_description;
4384 
4385 
4386 
4387       IF okx_service_csr%NotFound THEN
4388 
4389 
4390 
4391          x_return_status := OKC_API.g_ret_sts_error;
4392 
4393 
4394 
4395          -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
4396 
4397 
4398 
4399          l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
4400 
4401          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
4402 
4403                          , p_msg_name => 'OKL_INVALID_VALUE'
4404 
4405                       , p_token1 => 'COL_NAME'
4406 
4407                       , p_token1_value => l_fee_ak_prompt
4408 
4409                        );
4410 
4411          raise OKC_API.G_EXCEPTION_ERROR;
4412 
4413 
4414 
4415       END IF;
4416 
4417 
4418 
4419       l_item_id11 := l_item_id1;
4420 
4421       l_item_id22 := l_item_id2;
4422 
4423 
4424 
4425       Fetch okx_service_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
4426 
4427       If okx_service_csr%Found Then
4428 
4429 
4430 
4431            If( p_item_id1 is null or p_item_id1 = OKC_API.G_MISS_CHAR) then
4432 
4433           x_return_status := OKC_API.g_ret_sts_error;
4434 
4435 
4436 
4437           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
4438 
4439 
4440 
4441           l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
4442 
4443           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
4444 
4445                       , p_msg_name => 'OKL_INVALID_VALUE'
4446 
4447                       , p_token1 => 'COL_NAME'
4448 
4449                       , p_token1_value => l_fee_ak_prompt
4450 
4451                      );
4452 
4453           raise OKC_API.G_EXCEPTION_ERROR;
4454 
4455         End If;
4456 
4457            If( p_item_id2 is null or p_item_id2 = OKC_API.G_MISS_CHAR) then
4458 
4459           x_return_status := OKC_API.g_ret_sts_error;
4460 
4461 
4462 
4463           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
4464 
4465 
4466 
4467           l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
4468 
4469           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
4470 
4471                       , p_msg_name => 'OKL_INVALID_VALUE'
4472 
4473                       , p_token1 => 'COL_NAME'
4474 
4475                       , p_token1_value => l_fee_ak_prompt
4476 
4477                      );
4478 
4479           raise OKC_API.G_EXCEPTION_ERROR;
4480 
4481         End If;
4482 
4483 
4484 
4485         Loop
4486 
4487          If(l_item_id1 = p_item_id1 and l_item_id2 = p_item_id2) Then
4488 
4489       l_item_id11 := l_item_id1;
4490 
4491             l_item_id22 := l_item_id2;
4492 
4493             row_count := 1;
4494 
4495             Exit;
4496 
4497          End If;
4498 
4499          Fetch okx_service_csr INTO  l_item_id1,l_item_id2,l_item_name,l_item_description;
4500 
4501          Exit When okx_service_csr%NotFound;
4502 
4503         End Loop;
4504 
4505 
4506 
4507     If row_count <> 1 Then
4508 
4509      x_return_status := OKC_API.g_ret_sts_error;
4510 
4511 
4512 
4513           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
4514 
4515 
4516 
4517           l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
4518 
4519           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
4520 
4521                       , p_msg_name => 'OKL_INVALID_VALUE'
4522 
4523                       , p_token1 => 'COL_NAME'
4524 
4525                       , p_token1_value => l_fee_ak_prompt
4526 
4527                      );
4528 
4529      raise OKC_API.G_EXCEPTION_ERROR;
4530 
4531     End If;
4532 
4533 
4534 
4535       End If;
4536 
4537 
4538 
4539      p_item_id1 := l_item_id11;
4540 
4541      p_item_id2 := l_item_id22;
4542 
4543 
4544 
4545     Close okx_service_csr;
4546    END IF;
4547 
4548 -- For Object Code 'OKX_SYSITEM'
4549 
4550    IF (p_lty_code = 'ITEM' or p_lty_code ='ADD_ITEM') THEN
4551 
4552       OPEN okx_sysitem_csr(p_name => p_item_name,
4553                            p_id1  => l_item_id1,
4554                            p_id2  => l_item_id2 );
4555 
4556 
4557          l_item_id1  := Null;
4558 
4559          l_item_id2  := Null;
4560 
4561          l_item_name := Null;
4562 
4563          l_item_description := Null;
4564 
4565 
4566       FETCH okx_sysitem_csr INTO l_item_id1,l_item_id2,l_item_name,l_item_description;
4567 
4568 
4569 
4570       IF okx_sysitem_csr%NotFound THEN
4571 
4572 
4573 
4574          x_return_status := OKC_API.g_ret_sts_error;
4575 
4576 
4577 
4578          -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
4579 
4580 
4581 
4582          l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
4583 
4584          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
4585 
4586                          , p_msg_name => 'OKL_INVALID_VALUE'
4587 
4588                       , p_token1 => 'COL_NAME'
4589 
4590                       , p_token1_value => l_fee_ak_prompt
4591 
4592                        );
4593 
4594          raise OKC_API.G_EXCEPTION_ERROR;
4595 
4596 
4597 
4598       END IF;
4599 
4600 
4601 
4602       l_item_id11 := l_item_id1;
4603 
4604       l_item_id22 := l_item_id2;
4605 
4606 
4607 
4608       Fetch okx_sysitem_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
4609 
4610       If okx_sysitem_csr%Found Then
4611 
4612 
4613 
4614            If( p_item_id1 is null or p_item_id1 = OKC_API.G_MISS_CHAR) then
4615 
4616           x_return_status := OKC_API.g_ret_sts_error;
4617 
4618 
4619 
4620           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
4621 
4622 
4623 
4624           l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
4625 
4626           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
4627 
4628                       , p_msg_name => 'OKL_INVALID_VALUE'
4629 
4630                       , p_token1 => 'COL_NAME'
4631 
4632                       , p_token1_value => l_fee_ak_prompt
4633 
4634                      );
4635 
4636           raise OKC_API.G_EXCEPTION_ERROR;
4637 
4638         End If;
4639 
4640            If( p_item_id2 is null or p_item_id2 = OKC_API.G_MISS_CHAR) then
4641 
4642           x_return_status := OKC_API.g_ret_sts_error;
4643 
4644 
4645 
4646           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
4647 
4648 
4649 
4650           l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
4651 
4652           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
4653 
4654                       , p_msg_name => 'OKL_INVALID_VALUE'
4655 
4656                       , p_token1 => 'COL_NAME'
4657 
4658                       , p_token1_value => l_fee_ak_prompt
4659 
4660                      );
4661 
4662           raise OKC_API.G_EXCEPTION_ERROR;
4663 
4664         End If;
4665 
4666 
4667 
4668         Loop
4669 
4670          If(l_item_id1 = p_item_id1 and l_item_id2 = p_item_id2) Then
4671 
4672           l_item_id11 := l_item_id1;
4673 
4674             l_item_id22 := l_item_id2;
4675 
4676             row_count := 1;
4677 
4678             Exit;
4679 
4680          End If;
4681 
4682          Fetch okx_sysitem_csr INTO  l_item_id1,l_item_id2,l_item_name,l_item_description;
4683 
4684          Exit When okx_sysitem_csr%NotFound;
4685 
4686         End Loop;
4687 
4688 
4689 
4690     If row_count <> 1 Then
4691 
4692      x_return_status := OKC_API.g_ret_sts_error;
4693 
4694 
4695 
4696           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
4697 
4698 
4699 
4700           l_fee_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_FEE');
4701 
4702           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
4703 
4704                       , p_msg_name => 'OKL_INVALID_VALUE'
4705 
4706                       , p_token1 => 'COL_NAME'
4707 
4708                       , p_token1_value => l_fee_ak_prompt
4709 
4710                      );
4711 
4712      raise OKC_API.G_EXCEPTION_ERROR;
4713 
4714     End If;
4715 
4716 
4717 
4718       End If;
4719 
4720 
4721 
4722      p_item_id1 := l_item_id11;
4723 
4724      p_item_id2 := l_item_id22;
4725 
4726 
4727 
4728     Close okx_sysitem_csr;
4729    END IF;
4730 
4731 
4732 
4733   If p_cle_id is null or p_cle_id =  OKC_API.G_MISS_NUM  Then
4734 
4735       OPEN check_item_csr(p_chr_id, p_lty_code, p_item_id1, p_item_id2 );
4736 
4737       FETCH check_item_csr INTO row_count;
4738 
4739       CLOSE check_item_csr;
4740 
4741       If row_count = 1 Then
4742 
4743          x_return_status := OKC_API.g_ret_sts_error;
4744 
4745          OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_DUPLICATE_SERVICE_FEE');
4746 
4747          raise OKC_API.G_EXCEPTION_ERROR;
4748 
4749       End If;
4750 
4751   Else
4752 
4753       OPEN get_item_csr(p_chr_id, p_cle_id );
4754 
4755       FETCH get_item_csr INTO l_lty_code, l_item_id1, l_item_id2;
4756 
4757       CLOSE get_item_csr;
4758 
4759 
4760 
4761       If l_lty_code = p_lty_code and l_item_id1 <> p_item_id1 Then
4762 
4763           OPEN check_item_csr(p_chr_id, p_lty_code, p_item_id1, p_item_id2);
4764 
4765           FETCH check_item_csr INTO row_count;
4766 
4767           CLOSE check_item_csr;
4768 
4769            If row_count = 1 Then
4770 
4771            x_return_status := OKC_API.g_ret_sts_error;
4772 
4773           OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_DUPLICATE_SERVICE_FEE');
4774 
4775           raise OKC_API.G_EXCEPTION_ERROR;
4776 
4777          End If;
4778 
4779       End If;
4780 
4781   End If;
4782 
4783 
4784 
4785   x_return_status := OKC_API.G_RET_STS_SUCCESS;
4786 
4787   Validate_Party ( p_api_version  => p_api_version ,
4788                    p_init_msg_list   => p_init_msg_list ,
4789                    x_return_status   => x_return_status ,
4790                    x_msg_count       => x_msg_count ,
4791                    x_msg_data      => x_msg_data ,
4792                    p_chr_id          => p_chr_id ,
4793                    p_cle_id          => p_cle_id ,
4794                    p_cpl_id          => p_cpl_id ,
4795                    p_lty_code        => p_lty_code ,
4796                    p_rle_code        => p_rle_code ,
4797                    p_id1             => l_party_id1 ,
4798                    p_id2             => l_party_id2 ,
4799                    p_name            => p_party_name ,
4800                    p_object_code     => p_party_object_code );
4801 
4802   IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4803      raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4804   ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4805      raise OKC_API.G_EXCEPTION_ERROR;
4806   END IF;
4807 
4808   x_return_status := OKC_API.G_RET_STS_SUCCESS;
4809 
4810   OKC_API.END_ACTIVITY(x_msg_count => x_msg_count,x_msg_data => x_msg_data);
4811 
4812   EXCEPTION
4813 
4814     when OKC_API.G_EXCEPTION_ERROR then
4815 
4816         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4817               p_api_name  => l_api_name,
4818               p_pkg_name  => g_pkg_name,
4819               p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
4820               x_msg_count => x_msg_count,
4821               x_msg_data  => x_msg_data,
4822               p_api_type  => g_api_type);
4823 
4824      IF okl_strmtyp_csr%ISOPEN THEN
4825         CLOSE okl_strmtyp_csr;
4826      END IF;
4827 
4828      IF okl_usage_csr%ISOPEN THEN
4829         CLOSE okl_usage_csr;
4830      END IF;
4831 
4832      IF okx_asset_csr%ISOPEN THEN
4833         CLOSE okx_asset_csr;
4834      END IF;
4835 
4836      IF okx_covasst_csr%ISOPEN THEN
4837         CLOSE okx_covasst_csr;
4838      END IF;
4839 
4840      IF okx_ib_item_csr%ISOPEN THEN
4841         CLOSE okx_ib_item_csr;
4842      END IF;
4843 
4844      IF okx_lease_csr%ISOPEN THEN
4845         CLOSE okx_lease_csr;
4846      END IF;
4847 
4848      IF okx_service_csr%ISOPEN THEN
4849         CLOSE okx_service_csr;
4850      END IF;
4851 
4852      IF okx_sysitem_csr%ISOPEN THEN
4853         CLOSE okx_sysitem_csr;
4854      END IF;
4855 
4856 
4857       when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
4858 
4859         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4860               p_api_name  => l_api_name,
4861               p_pkg_name  => g_pkg_name,
4862               p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
4863               x_msg_count => x_msg_count,
4864               x_msg_data  => x_msg_data,
4865               p_api_type  => g_api_type);
4866 
4867  IF okl_strmtyp_csr%ISOPEN THEN
4868         CLOSE okl_strmtyp_csr;
4869      END IF;
4870 
4871      IF okl_usage_csr%ISOPEN THEN
4872         CLOSE okl_usage_csr;
4873      END IF;
4874 
4875      IF okx_asset_csr%ISOPEN THEN
4876         CLOSE okx_asset_csr;
4877      END IF;
4878 
4879      IF okx_covasst_csr%ISOPEN THEN
4880         CLOSE okx_covasst_csr;
4881      END IF;
4882 
4883      IF okx_ib_item_csr%ISOPEN THEN
4884         CLOSE okx_ib_item_csr;
4885      END IF;
4886 
4887      IF okx_lease_csr%ISOPEN THEN
4888         CLOSE okx_lease_csr;
4889      END IF;
4890 
4891      IF okx_service_csr%ISOPEN THEN
4892         CLOSE okx_service_csr;
4893      END IF;
4894 
4895      IF okx_sysitem_csr%ISOPEN THEN
4896         CLOSE okx_sysitem_csr;
4897      END IF;
4898 
4899 
4900 
4901 
4902 
4903       when OTHERS then
4904 
4905         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4906 
4907               p_api_name  => l_api_name,
4908 
4909               p_pkg_name  => g_pkg_name,
4910 
4911               p_exc_name  => 'OTHERS',
4912 
4913               x_msg_count => x_msg_count,
4914 
4915               x_msg_data  => x_msg_data,
4916 
4917               p_api_type  => g_api_type);
4918 
4919      IF okl_strmtyp_csr%ISOPEN THEN
4920         CLOSE okl_strmtyp_csr;
4921      END IF;
4922 
4923      IF okl_usage_csr%ISOPEN THEN
4924         CLOSE okl_usage_csr;
4925      END IF;
4926 
4927      IF okx_asset_csr%ISOPEN THEN
4928         CLOSE okx_asset_csr;
4929      END IF;
4930 
4931      IF okx_covasst_csr%ISOPEN THEN
4932         CLOSE okx_covasst_csr;
4933      END IF;
4934 
4935      IF okx_ib_item_csr%ISOPEN THEN
4936         CLOSE okx_ib_item_csr;
4937      END IF;
4938 
4939      IF okx_lease_csr%ISOPEN THEN
4940         CLOSE okx_lease_csr;
4941      END IF;
4942 
4943      IF okx_service_csr%ISOPEN THEN
4944         CLOSE okx_service_csr;
4945      END IF;
4946 
4947      IF okx_sysitem_csr%ISOPEN THEN
4948         CLOSE okx_sysitem_csr;
4949      END IF;
4950 
4951 
4952 
4953 
4954 
4955 End Validate_Service;
4956 
4957 
4958 
4959 --Start of Comments
4960 
4961 --Procedure   : Validate_Item
4962 
4963 --Description : Returns Name, Description for a given role or all the roles
4964 
4965 --              attached to a contract
4966 
4967 --End of Comments
4968 
4969 Procedure Validate_Fee (p_api_version     IN    NUMBER,
4970                      p_init_msg_list       IN    VARCHAR2 default OKC_API.G_FALSE,
4971                      x_return_status       OUT  NOCOPY    VARCHAR2,
4972                      x_msg_count       OUT  NOCOPY    NUMBER,
4973                      x_msg_data               OUT  NOCOPY    VARCHAR2,
4974                      p_chr_id              IN    NUMBER,
4975                      p_cle_id              IN    NUMBER,
4976                      p_lty_code            IN   VARCHAR2,
4977                      p_item_id1            IN OUT NOCOPY VARCHAR2,
4978                      p_item_id2            IN OUT NOCOPY VARCHAR2,
4979                      p_item_name           IN  VARCHAR2,
4980                      p_item_object_code    IN OUT NOCOPY VARCHAR2
4981                      ) is
4982 
4983 l_select_clause     varchar2(2000) default null;
4984 l_from_clause       varchar2(2000) default null;
4985 l_where_clause      varchar2(2000) default null;
4986 l_order_by_clause   varchar2(2000) default null;
4987 l_query_string      varchar2(2000) default null;
4988 
4989 
4990 l_item_id1          OKC_K_ITEMS_V.OBJECT1_ID1%TYPE default Null;
4991 l_item_id2          OKC_K_ITEMS_V.OBJECT1_ID2%TYPE default Null;
4992 l_item_name         VARCHAR2(250) Default Null;
4993 l_item_description  VARCHAR2(250) Default Null;
4994 l_item_object_code  VARCHAR2(30) Default Null;
4995 
4996 
4997 
4998 l_item_id11         OKC_K_ITEMS_V.OBJECT1_ID1%TYPE default Null;
4999 l_item_id22         OKC_K_ITEMS_V.OBJECT1_ID2%TYPE default Null;
5000 
5001 
5002 
5003 l_service_ak_prompt  AK_ATTRIBUTES_VL.attribute_label_long%type;
5004 
5005 
5006 type            item_curs_type is REF CURSOR;
5007 item_curs       item_curs_type;
5008 
5009 
5010 
5011 row_count       Number default 0;
5012 
5013 
5014 l_chr_id    okl_k_headers.id%type;
5015 l_cle_id        okl_k_lines.id%type;
5016 l_cle_id        okl_k_lines.id%type;
5017 l_lty_code      okc_line_styles_b.lty_code%type;
5018 
5019 
5020 
5021 l_api_name      CONSTANT VARCHAR2(30) := 'validate_fee';
5022 l_api_version    CONSTANT NUMBER      := 1.0;
5023 
5024 l_return_status    VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5025 
5026 
5027 
5028 CURSOR check_item_csr(p_chr_id NUMBER, p_lty_code VARCHAR2, p_id1 VARCHAR2, p_id2 VARCHAR2) IS
5029 
5030 select count(1)
5031 
5032 from  okc_k_items cim
5033       , okc_k_lines_b cle
5034       , okc_line_style_sources lss
5035       , okc_line_styles_b lse
5036 where  nvl(lss.start_date,sysdate) <= sysdate
5037 and    nvl(lss.end_date,sysdate + 1) > sysdate
5038 and    lse.id = lss.lse_id
5039 and    cle.lse_id = lse.id
5040 and    cle.id = cim.cle_id
5041 and    cim.object1_id1 = p_id1
5042 and    cim.object1_id2 = p_id2
5043 and    cim.chr_id = p_chr_id
5044 and    cim.dnz_chr_id = p_chr_id
5045 and    lse.lty_code = p_lty_code;
5046 
5047 
5048 
5049 CURSOR get_item_csr(p_chr_id NUMBER, p_cle_id NUMBER) IS
5050 
5051 SELECT lse.lty_code, cim.object1_id1, cim.object1_id2
5052 from  okc_k_items cim
5053      , okc_k_lines_b cle
5054      , okc_line_style_sources lss
5055      , okc_line_styles_b lse
5056 where  nvl(lss.start_date,sysdate) <= sysdate
5057 and    nvl(lss.end_date,sysdate + 1) > sysdate
5058 and    lse.id = lss.lse_id
5059 and    cle.lse_id = lse.id
5060 and    cle.id = cim.cle_id
5061 and    cim.chr_id = p_chr_id
5062 and    cim.dnz_chr_id = p_chr_id
5063 and    cle.id = p_cle_id;
5064 
5065 
5066 
5067 Begin
5068 
5069   If okl_context.get_okc_org_id  is null then
5070     l_chr_id := p_chr_id;
5071     okl_context.set_okc_org_context(p_chr_id => l_chr_id );
5072   End If;
5073 
5074 
5075  -- call START_ACTIVITY to create savepoint, check compatibility
5076 
5077  -- and initialize message list
5078 
5079  l_return_status := OKC_API.START_ACTIVITY(
5080             p_api_name      => l_api_name,
5081             p_pkg_name      => g_pkg_name,
5082             p_init_msg_list => p_init_msg_list,
5083             l_api_version   => l_api_version,
5084             p_api_version   => p_api_version,
5085             p_api_type      => g_api_type,
5086             x_return_status => x_return_status);
5087 
5088 
5089 
5090   If ( p_chr_id is null or p_chr_id =  OKC_API.G_MISS_NUM)
5091   Then
5092 
5093       OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'Missing_Chr_Id');
5094       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5095 
5096   ElsIf ( p_item_name is null or p_item_name =  OKC_API.G_MISS_CHAR)
5097 
5098   Then
5099       OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'Missing_Fee_Name');
5100       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5101 
5102   ElsIf ( p_lty_code is null or p_lty_code =  OKC_API.G_MISS_CHAR)
5103   Then
5104       OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'Missing_Lty_Code');
5105       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5106   End If;
5107 
5108 
5109 --Added by kthiruva 23-Sep-2003 Bug No.3156265
5110 
5111 -- For Object code 'OKX_STRMTYP'
5112 
5113    IF (p_lty_code = 'FEE') THEN
5114 
5115       OPEN okl_strmtyp_csr(p_name => p_item_name,
5116                            p_id1  => l_item_id1,
5117                            p_id2  => l_item_id2);
5118 
5119 
5120 
5121          l_item_id1  := Null;
5122          l_item_id2  := Null;
5123          l_item_name := Null;
5124          l_item_description := Null;
5125 
5126      Fetch okl_strmtyp_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
5127 
5128      If okl_strmtyp_csr%NotFound Then
5129 
5130         x_return_status := OKC_API.g_ret_sts_error;
5131 
5132           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
5133         l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
5134 
5135         OKC_API.SET_MESSAGE(p_app_name => g_app_name
5136                           , p_msg_name => 'OKL_INVALID_VALUE'
5137                           , p_token1 => 'COL_NAME'
5138                          , p_token1_value => l_service_ak_prompt
5139                      );
5140 
5141       raise OKC_API.G_EXCEPTION_ERROR;
5142 
5143     End If;
5144 
5145 
5146     l_item_id11 := l_item_id1;
5147     l_item_id22 := l_item_id2;
5148 
5149 
5150    If l_item_id1 = p_item_id1 and l_item_id2 = p_item_id2  Then
5151 
5152        null;
5153 
5154    Else
5155 
5156 
5157 
5158     Fetch okl_strmtyp_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
5159 
5160     If okl_strmtyp_csr%Found Then
5161 
5162            If( p_item_id1 is null or p_item_id1 = OKC_API.G_MISS_CHAR) then
5163               x_return_status := OKC_API.g_ret_sts_error;
5164           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
5165              l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
5166              OKC_API.SET_MESSAGE(      p_app_name => g_app_name
5167                           , p_msg_name => 'OKL_INVALID_VALUE'
5168                           , p_token1 => 'COL_NAME'
5169                          , p_token1_value => l_service_ak_prompt
5170                       );
5171 
5172               raise OKC_API.G_EXCEPTION_ERROR;
5173 
5174            End If;
5175 
5176            If( p_item_id2 is null or p_item_id2 = OKC_API.G_MISS_CHAR) then
5177 
5178                x_return_status := OKC_API.g_ret_sts_error;
5179 
5180           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
5181 
5182           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
5183           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
5184                       , p_msg_name => 'OKL_INVALID_VALUE'
5185                       , p_token1 => 'COL_NAME'
5186                       , p_token1_value => l_service_ak_prompt
5187                      );
5188 
5189           raise OKC_API.G_EXCEPTION_ERROR;
5190 
5191         End If;
5192 
5193         row_count := 0;
5194 
5195         Loop
5196 
5197          If l_item_id1 = p_item_id1 and l_item_id2 = p_item_id2  Then
5198             l_item_id11 := l_item_id1;
5199             l_item_id22 := l_item_id2;
5200             row_count := 1;
5201             Exit;
5202          End If;
5203          Fetch okl_strmtyp_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
5204          Exit When okl_strmtyp_csr%NotFound;
5205         End Loop;
5206 
5207     If row_count <> 1 Then
5208           x_return_status := OKC_API.g_ret_sts_error;
5209           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
5210           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
5211           OKC_API.SET_MESSAGE(p_app_name => g_app_name
5212                       , p_msg_name => 'OKL_INVALID_VALUE'
5213                       , p_token1 => 'COL_NAME'
5214                       , p_token1_value => l_service_ak_prompt
5215                      );
5216 
5217           raise OKC_API.G_EXCEPTION_ERROR;
5218 
5219     End If;
5220   End If;
5221    End If;
5222 
5223     p_item_id1 := l_item_id11;
5224     p_item_id2 := l_item_id22;
5225 
5226   Close okl_strmtyp_csr;
5227 
5228  END IF;
5229 
5230 -- For Object Code 'OKL_USAGE'
5231 
5232     IF (p_lty_code = 'USAGE') THEN
5233         OPEN okl_usage_csr(p_name => p_item_name,
5234                            p_id1  => l_item_id1,
5235                            p_id2  => l_item_id2);
5236 
5237          l_item_id1  := Null;
5238          l_item_id2  := Null;
5239          l_item_name := Null;
5240          l_item_description := Null;
5241          Fetch okl_usage_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
5242          If okl_usage_csr%NotFound Then
5243             x_return_status := OKC_API.g_ret_sts_error;
5244           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
5245             l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
5246              OKC_API.SET_MESSAGE(      p_app_name => g_app_name
5247                         , p_msg_name => 'OKL_INVALID_VALUE'
5248                         , p_token1 => 'COL_NAME'
5249                         , p_token1_value => l_service_ak_prompt
5250                      );
5251 
5252              raise OKC_API.G_EXCEPTION_ERROR;
5253 
5254     End If;
5255 
5256 
5257 
5258     l_item_id11 := l_item_id1;
5259     l_item_id22 := l_item_id2;
5260 
5261 
5262 
5263    If l_item_id1 = p_item_id1 and l_item_id2 = p_item_id2  Then
5264        null;
5265    Else
5266     Fetch okl_usage_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
5267 
5268      If okl_usage_csr%Found Then
5269            If( p_item_id1 is null or p_item_id1 = OKC_API.G_MISS_CHAR) then
5270           x_return_status := OKC_API.g_ret_sts_error;
5271 
5272           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
5273 
5274 
5275 
5276           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
5277 
5278           OKC_API.SET_MESSAGE(p_app_name => g_app_name
5279                             , p_msg_name => 'OKL_INVALID_VALUE'
5280                             , p_token1 => 'COL_NAME'
5281                            , p_token1_value => l_service_ak_prompt);
5282 
5283           raise OKC_API.G_EXCEPTION_ERROR;
5284 
5285         End If;
5286 
5287         If( p_item_id2 is null or p_item_id2 = OKC_API.G_MISS_CHAR) then
5288            x_return_status := OKC_API.g_ret_sts_error;
5289           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
5290           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
5291           OKC_API.SET_MESSAGE(p_app_name => g_app_name
5292                              , p_msg_name => 'OKL_INVALID_VALUE'
5293                             , p_token1 => 'COL_NAME'
5294                            , p_token1_value => l_service_ak_prompt
5295 
5296                      );
5297 
5298           raise OKC_API.G_EXCEPTION_ERROR;
5299 
5300         End If;
5301 
5302 
5303 
5304         row_count := 0;
5305 
5306 
5307 
5308         Loop
5309 
5310 
5311 
5312          If l_item_id1 = p_item_id1 and l_item_id2 = p_item_id2  Then
5313 
5314       l_item_id11 := l_item_id1;
5315 
5316             l_item_id22 := l_item_id2;
5317 
5318             row_count := 1;
5319 
5320             Exit;
5321 
5322          End If;
5323 
5324          Fetch okl_usage_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
5325 
5326          Exit When okl_usage_csr%NotFound;
5327 
5328         End Loop;
5329 
5330 
5331 
5332     If row_count <> 1 Then
5333 
5334      x_return_status := OKC_API.g_ret_sts_error;
5335 
5336 
5337 
5338           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
5339 
5340 
5341 
5342           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
5343 
5344           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
5345 
5346                       , p_msg_name => 'OKL_INVALID_VALUE'
5347 
5348                       , p_token1 => 'COL_NAME'
5349 
5350                       , p_token1_value => l_service_ak_prompt
5351 
5352                      );
5353 
5354      raise OKC_API.G_EXCEPTION_ERROR;
5355 
5356     End If;
5357 
5358 
5359 
5360      End If;
5361 
5362 
5363 
5364    End If;
5365 
5366 
5367 
5368     p_item_id1 := l_item_id11;
5369 
5370     p_item_id2 := l_item_id22;
5371 
5372 
5373 
5374   Close okl_usage_csr;
5375 
5376  END IF;
5377 
5378 -- For Object Code ' OKX_ASSET '
5379 
5380    IF (p_lty_code = 'FIXED_ASSET') THEN
5381 
5382       OPEN okx_asset_csr(p_name => p_item_name,
5383                            p_id1  => l_item_id1,
5384                            p_id2  => l_item_id2);
5385 
5386 
5387 
5388          l_item_id1  := Null;
5389 
5390          l_item_id2  := Null;
5391 
5392          l_item_name := Null;
5393 
5394          l_item_description := Null;
5395 
5396      Fetch okx_asset_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
5397 
5398 
5399 
5400     If okx_asset_csr%NotFound Then
5401 
5402       x_return_status := OKC_API.g_ret_sts_error;
5403 
5404 
5405 
5406           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
5407 
5408 
5409 
5410           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
5411 
5412           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
5413 
5414                       , p_msg_name => 'OKL_INVALID_VALUE'
5415 
5416                       , p_token1 => 'COL_NAME'
5417 
5418                       , p_token1_value => l_service_ak_prompt
5419 
5420                      );
5421 
5422       raise OKC_API.G_EXCEPTION_ERROR;
5423 
5424     End If;
5425 
5426 
5427 
5428     l_item_id11 := l_item_id1;
5429 
5430     l_item_id22 := l_item_id2;
5431 
5432 
5433 
5434    If l_item_id1 = p_item_id1 and l_item_id2 = p_item_id2  Then
5435 
5436        null;
5437 
5438    Else
5439 
5440 
5441 
5442     Fetch okx_asset_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
5443 
5444 
5445 
5446 
5447 
5448       If okx_asset_csr%Found Then
5449 
5450 
5451 
5452            If( p_item_id1 is null or p_item_id1 = OKC_API.G_MISS_CHAR) then
5453 
5454           x_return_status := OKC_API.g_ret_sts_error;
5455 
5456 
5457 
5458           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
5459 
5460 
5461 
5462           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
5463 
5464           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
5465 
5466                       , p_msg_name => 'OKL_INVALID_VALUE'
5467 
5468                       , p_token1 => 'COL_NAME'
5469 
5470                       , p_token1_value => l_service_ak_prompt
5471 
5472                      );
5473 
5474           raise OKC_API.G_EXCEPTION_ERROR;
5475 
5476         End If;
5477 
5478            If( p_item_id2 is null or p_item_id2 = OKC_API.G_MISS_CHAR) then
5479 
5480           x_return_status := OKC_API.g_ret_sts_error;
5481 
5482 
5483 
5484           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
5485 
5486 
5487 
5488           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
5489 
5490           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
5491 
5492                       , p_msg_name => 'OKL_INVALID_VALUE'
5493 
5494                       , p_token1 => 'COL_NAME'
5495 
5496                       , p_token1_value => l_service_ak_prompt
5497 
5498                      );
5499 
5500           raise OKC_API.G_EXCEPTION_ERROR;
5501 
5502         End If;
5503 
5504 
5505 
5506         row_count := 0;
5507 
5508 
5509 
5510         Loop
5511 
5512 
5513 
5514          If l_item_id1 = p_item_id1 and l_item_id2 = p_item_id2  Then
5515 
5516       l_item_id11 := l_item_id1;
5517 
5518             l_item_id22 := l_item_id2;
5519 
5520             row_count := 1;
5521 
5522             Exit;
5523 
5524          End If;
5525 
5526          Fetch okx_asset_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
5527 
5528          Exit When okx_asset_csr%NotFound;
5529 
5530         End Loop;
5531 
5532 
5533 
5534     If row_count <> 1 Then
5535 
5536      x_return_status := OKC_API.g_ret_sts_error;
5537 
5538 
5539 
5540           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
5541 
5542 
5543 
5544           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
5545 
5546           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
5547 
5548                       , p_msg_name => 'OKL_INVALID_VALUE'
5549 
5550                       , p_token1 => 'COL_NAME'
5551 
5552                       , p_token1_value => l_service_ak_prompt
5553 
5554                      );
5555 
5556      raise OKC_API.G_EXCEPTION_ERROR;
5557 
5558     End If;
5559 
5560 
5561 
5562      End If;
5563 
5564 
5565 
5566    End If;
5567 
5568 
5569 
5570     p_item_id1 := l_item_id11;
5571 
5572     p_item_id2 := l_item_id22;
5573 
5574 
5575 
5576   Close okx_asset_csr;
5577 
5578  END IF;
5579 
5580 -- For Object Code 'OKX_COVASST'
5581 
5582    IF (p_lty_code ='LINK_SERV_ASSET' OR p_lty_code = 'LINK_USAGE_ASSET') THEN
5583 
5584      OPEN okx_covasst_csr(p_name => p_item_name,
5585                            p_id1  => l_item_id1,
5586                            p_id2  => l_item_id2);
5587 
5588 
5589 
5590          l_item_id1  := Null;
5591 
5592          l_item_id2  := Null;
5593 
5594          l_item_name := Null;
5595 
5596          l_item_description := Null;
5597 
5598      Fetch okx_covasst_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
5599 
5600 
5601 
5602     If okx_covasst_csr%NotFound Then
5603 
5604       x_return_status := OKC_API.g_ret_sts_error;
5605 
5606 
5607 
5608           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
5609 
5610 
5611 
5612           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
5613 
5614           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
5615 
5616                       , p_msg_name => 'OKL_INVALID_VALUE'
5617 
5618                       , p_token1 => 'COL_NAME'
5619 
5620                       , p_token1_value => l_service_ak_prompt
5621 
5622                      );
5623 
5624       raise OKC_API.G_EXCEPTION_ERROR;
5625 
5626     End If;
5627 
5628 
5629 
5630     l_item_id11 := l_item_id1;
5631 
5632     l_item_id22 := l_item_id2;
5633 
5634 
5635 
5636    If l_item_id1 = p_item_id1 and l_item_id2 = p_item_id2  Then
5637 
5638        null;
5639 
5640    Else
5641 
5642 
5643 
5644     Fetch okx_covasst_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
5645       If okx_covasst_csr%Found Then
5646            If( p_item_id1 is null or p_item_id1 = OKC_API.G_MISS_CHAR) then
5647           x_return_status := OKC_API.g_ret_sts_error;
5648           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
5649           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
5650           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
5651 
5652                       , p_msg_name => 'OKL_INVALID_VALUE'
5653 
5654                       , p_token1 => 'COL_NAME'
5655 
5656                       , p_token1_value => l_service_ak_prompt
5657 
5658                      );
5659 
5660           raise OKC_API.G_EXCEPTION_ERROR;
5661 
5662         End If;
5663 
5664            If( p_item_id2 is null or p_item_id2 = OKC_API.G_MISS_CHAR) then
5665 
5666           x_return_status := OKC_API.g_ret_sts_error;
5667 
5668 
5669 
5670           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
5671 
5672 
5673 
5674           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
5675 
5676           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
5677 
5678                       , p_msg_name => 'OKL_INVALID_VALUE'
5679 
5680                       , p_token1 => 'COL_NAME'
5681 
5682                       , p_token1_value => l_service_ak_prompt
5683 
5684                      );
5685 
5686           raise OKC_API.G_EXCEPTION_ERROR;
5687 
5688         End If;
5689 
5690         row_count := 0;
5691         Loop
5692          If l_item_id1 = p_item_id1 and l_item_id2 = p_item_id2  Then
5693       l_item_id11 := l_item_id1;
5694             l_item_id22 := l_item_id2;
5695             row_count := 1;
5696             Exit;
5697          End If;
5698          Fetch okx_covasst_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
5699          Exit When okx_covasst_csr%NotFound;
5700         End Loop;
5701 
5702 
5703     If row_count <> 1 Then
5704      x_return_status := OKC_API.g_ret_sts_error;
5705 
5706           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
5707 
5708           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
5709           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
5710 
5711                       , p_msg_name => 'OKL_INVALID_VALUE'
5712 
5713                       , p_token1 => 'COL_NAME'
5714 
5715                       , p_token1_value => l_service_ak_prompt
5716 
5717                      );
5718 
5719      raise OKC_API.G_EXCEPTION_ERROR;
5720 
5721     End If;
5722 
5723 
5724 
5725      End If;
5726 
5727 
5728 
5729    End If;
5730 
5731 
5732 
5733     p_item_id1 := l_item_id11;
5734 
5735     p_item_id2 := l_item_id22;
5736 
5737 
5738 
5739   Close okx_covasst_csr;
5740 
5741  END IF;
5742 
5743 -- For Object Code 'OKX_IB_ITEM'
5744 
5745     IF (p_lty_code = 'INST_ITEM') THEN
5746 
5747       OPEN okx_ib_item_csr(p_name => p_item_name,
5748                            p_id1  => l_item_id1,
5749                            p_id2  => l_item_id2);
5750 
5751 
5752 
5753          l_item_id1  := Null;
5754 
5755          l_item_id2  := Null;
5756 
5757          l_item_name := Null;
5758 
5759          l_item_description := Null;
5760 
5761      Fetch okx_ib_item_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
5762 
5763 
5764 
5765     If okx_ib_item_csr%NotFound Then
5766 
5767       x_return_status := OKC_API.g_ret_sts_error;
5768 
5769 
5770 
5771           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
5772 
5773 
5774 
5775           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
5776 
5777           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
5778 
5779                       , p_msg_name => 'OKL_INVALID_VALUE'
5780 
5781                       , p_token1 => 'COL_NAME'
5782 
5783                       , p_token1_value => l_service_ak_prompt
5784 
5785                      );
5786 
5787       raise OKC_API.G_EXCEPTION_ERROR;
5788 
5789     End If;
5790 
5791 
5792 
5793     l_item_id11 := l_item_id1;
5794 
5795     l_item_id22 := l_item_id2;
5796 
5797 
5798 
5799    If l_item_id1 = p_item_id1 and l_item_id2 = p_item_id2  Then
5800 
5801        null;
5802 
5803    Else
5804 
5805 
5806 
5807     Fetch okx_ib_item_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
5808 
5809 
5810 
5811 
5812 
5813       If okx_ib_item_csr%Found Then
5814 
5815 
5816 
5817            If( p_item_id1 is null or p_item_id1 = OKC_API.G_MISS_CHAR) then
5818 
5819           x_return_status := OKC_API.g_ret_sts_error;
5820 
5821 
5822 
5823           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
5824 
5825 
5826 
5827           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
5828 
5829           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
5830 
5831                       , p_msg_name => 'OKL_INVALID_VALUE'
5832 
5833                       , p_token1 => 'COL_NAME'
5834 
5835                       , p_token1_value => l_service_ak_prompt
5836 
5837                      );
5838 
5839           raise OKC_API.G_EXCEPTION_ERROR;
5840 
5841         End If;
5842 
5843            If( p_item_id2 is null or p_item_id2 = OKC_API.G_MISS_CHAR) then
5844 
5845           x_return_status := OKC_API.g_ret_sts_error;
5846 
5847 
5848 
5849           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
5850 
5851 
5852 
5853           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
5854 
5855           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
5856 
5857                       , p_msg_name => 'OKL_INVALID_VALUE'
5858 
5859                       , p_token1 => 'COL_NAME'
5860 
5861                       , p_token1_value => l_service_ak_prompt
5862 
5863                      );
5864 
5865           raise OKC_API.G_EXCEPTION_ERROR;
5866 
5867         End If;
5868 
5869 
5870 
5871         row_count := 0;
5872 
5873 
5874 
5875         Loop
5876 
5877 
5878 
5879          If l_item_id1 = p_item_id1 and l_item_id2 = p_item_id2  Then
5880 
5881       l_item_id11 := l_item_id1;
5882 
5883             l_item_id22 := l_item_id2;
5884 
5885             row_count := 1;
5886 
5887             Exit;
5888 
5889          End If;
5890 
5891          Fetch okx_ib_item_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
5892 
5893          Exit When okx_ib_item_csr%NotFound;
5894 
5895         End Loop;
5896 
5897 
5898 
5899     If row_count <> 1 Then
5900 
5901      x_return_status := OKC_API.g_ret_sts_error;
5902 
5903 
5904 
5905           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
5906 
5907 
5908 
5909           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
5910 
5911           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
5912 
5913                       , p_msg_name => 'OKL_INVALID_VALUE'
5914 
5915                       , p_token1 => 'COL_NAME'
5916 
5917                       , p_token1_value => l_service_ak_prompt
5918 
5919                      );
5920 
5921      raise OKC_API.G_EXCEPTION_ERROR;
5922 
5923     End If;
5924 
5925 
5926 
5927      End If;
5928 
5929 
5930 
5931    End If;
5932 
5933 
5934 
5935     p_item_id1 := l_item_id11;
5936 
5937     p_item_id2 := l_item_id22;
5938 
5939 
5940 
5941   Close okx_ib_item_csr;
5942 
5943  END IF;
5944 
5945 -- For Object Code 'OKX_LEASE'
5946 
5947      IF (p_lty_code = 'SHARED') THEN
5948 
5949          OPEN okx_lease_csr(p_name => p_item_name,
5950                            p_id1  => l_item_id1,
5951                            p_id2  => l_item_id2);
5952 
5953 
5954 
5955          l_item_id1  := Null;
5956 
5957          l_item_id2  := Null;
5958 
5959          l_item_name := Null;
5960 
5961          l_item_description := Null;
5962 
5963      Fetch okx_lease_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
5964 
5965 
5966 
5967     If okx_lease_csr%NotFound Then
5968 
5969       x_return_status := OKC_API.g_ret_sts_error;
5970 
5971 
5972 
5973           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
5974 
5975 
5976 
5977           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
5978 
5979           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
5980 
5981                       , p_msg_name => 'OKL_INVALID_VALUE'
5982 
5983                       , p_token1 => 'COL_NAME'
5984 
5985                       , p_token1_value => l_service_ak_prompt
5986 
5987                      );
5988 
5989       raise OKC_API.G_EXCEPTION_ERROR;
5990 
5991     End If;
5992 
5993 
5994 
5995     l_item_id11 := l_item_id1;
5996 
5997     l_item_id22 := l_item_id2;
5998 
5999 
6000 
6001    If l_item_id1 = p_item_id1 and l_item_id2 = p_item_id2  Then
6002 
6003        null;
6004 
6005    Else
6006 
6007 
6008 
6009     Fetch okx_lease_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
6010 
6011 
6012 
6013 
6014 
6015       If okx_lease_csr%Found Then
6016 
6017 
6018 
6019            If( p_item_id1 is null or p_item_id1 = OKC_API.G_MISS_CHAR) then
6020 
6021           x_return_status := OKC_API.g_ret_sts_error;
6022 
6023 
6024 
6025           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
6026 
6027 
6028 
6029           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
6030 
6031           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
6032 
6033                       , p_msg_name => 'OKL_INVALID_VALUE'
6034 
6035                       , p_token1 => 'COL_NAME'
6036 
6037                       , p_token1_value => l_service_ak_prompt
6038 
6039                      );
6040 
6041           raise OKC_API.G_EXCEPTION_ERROR;
6042 
6043         End If;
6044 
6045            If( p_item_id2 is null or p_item_id2 = OKC_API.G_MISS_CHAR) then
6046 
6047           x_return_status := OKC_API.g_ret_sts_error;
6048 
6049 
6050 
6051           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
6052 
6053 
6054 
6055           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
6056 
6057           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
6058 
6059                       , p_msg_name => 'OKL_INVALID_VALUE'
6060 
6061                       , p_token1 => 'COL_NAME'
6062 
6063                       , p_token1_value => l_service_ak_prompt
6064 
6065                      );
6066 
6067           raise OKC_API.G_EXCEPTION_ERROR;
6068 
6069         End If;
6070 
6071 
6072 
6073         row_count := 0;
6074 
6075 
6076 
6077         Loop
6078 
6079 
6080 
6081          If l_item_id1 = p_item_id1 and l_item_id2 = p_item_id2  Then
6082 
6083       l_item_id11 := l_item_id1;
6084 
6085             l_item_id22 := l_item_id2;
6086 
6087             row_count := 1;
6088 
6089             Exit;
6090 
6091          End If;
6092 
6093          Fetch okx_lease_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
6094 
6095          Exit When okx_lease_csr%NotFound;
6096 
6097         End Loop;
6098 
6099 
6100 
6101     If row_count <> 1 Then
6102 
6103      x_return_status := OKC_API.g_ret_sts_error;
6104 
6105 
6106 
6107           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
6108 
6109 
6110 
6111           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
6112 
6113           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
6114 
6115                       , p_msg_name => 'OKL_INVALID_VALUE'
6116 
6117                       , p_token1 => 'COL_NAME'
6118 
6119                       , p_token1_value => l_service_ak_prompt
6120 
6121                      );
6122 
6123      raise OKC_API.G_EXCEPTION_ERROR;
6124 
6125     End If;
6126 
6127 
6128 
6129      End If;
6130 
6131 
6132 
6133    End If;
6134 
6135 
6136 
6137     p_item_id1 := l_item_id11;
6138 
6139     p_item_id2 := l_item_id22;
6140 
6141 
6142 
6143   Close okx_lease_csr;
6144 
6145  END IF;
6146 
6147 -- For Object Code 'OKX_SERVICE'
6148 
6149      IF (p_lty_code ='SOLD_SERVICE') THEN
6150 
6151         OPEN okx_service_csr(p_name => p_item_name,
6152                            p_id1  => l_item_id1,
6153                            p_id2  => l_item_id2);
6154 
6155 
6156 
6157          l_item_id1  := Null;
6158 
6159          l_item_id2  := Null;
6160 
6161          l_item_name := Null;
6162 
6163          l_item_description := Null;
6164 
6165      Fetch okx_service_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
6166 
6167 
6168 
6169     If okx_service_csr%NotFound Then
6170 
6171       x_return_status := OKC_API.g_ret_sts_error;
6172 
6173 
6174 
6175           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
6176 
6177 
6178 
6179           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
6180 
6181           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
6182 
6183                       , p_msg_name => 'OKL_INVALID_VALUE'
6184 
6185                       , p_token1 => 'COL_NAME'
6186 
6187                       , p_token1_value => l_service_ak_prompt
6188 
6189                      );
6190 
6191       raise OKC_API.G_EXCEPTION_ERROR;
6192 
6193     End If;
6194 
6195 
6196 
6197     l_item_id11 := l_item_id1;
6198 
6199     l_item_id22 := l_item_id2;
6200 
6201 
6202 
6203    If l_item_id1 = p_item_id1 and l_item_id2 = p_item_id2  Then
6204 
6205        null;
6206 
6207    Else
6208 
6209 
6210 
6211     Fetch okx_service_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
6212 
6213 
6214 
6215 
6216 
6217       If okx_service_csr%Found Then
6218 
6219 
6220 
6221            If( p_item_id1 is null or p_item_id1 = OKC_API.G_MISS_CHAR) then
6222 
6223           x_return_status := OKC_API.g_ret_sts_error;
6224 
6225 
6226 
6227           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
6228 
6229 
6230 
6231           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
6232 
6233           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
6234 
6235                       , p_msg_name => 'OKL_INVALID_VALUE'
6236 
6237                       , p_token1 => 'COL_NAME'
6238 
6239                       , p_token1_value => l_service_ak_prompt
6240 
6241                      );
6242 
6243           raise OKC_API.G_EXCEPTION_ERROR;
6244 
6245         End If;
6246 
6247            If( p_item_id2 is null or p_item_id2 = OKC_API.G_MISS_CHAR) then
6248 
6249           x_return_status := OKC_API.g_ret_sts_error;
6250 
6251 
6252 
6253           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
6254 
6255 
6256 
6257           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
6258 
6259           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
6260 
6261                       , p_msg_name => 'OKL_INVALID_VALUE'
6262 
6263                       , p_token1 => 'COL_NAME'
6264 
6265                       , p_token1_value => l_service_ak_prompt
6266 
6267                      );
6268 
6269           raise OKC_API.G_EXCEPTION_ERROR;
6270 
6271         End If;
6272 
6273 
6274 
6275         row_count := 0;
6276 
6277 
6278 
6279         Loop
6280 
6281 
6282 
6283          If l_item_id1 = p_item_id1 and l_item_id2 = p_item_id2  Then
6284 
6285       l_item_id11 := l_item_id1;
6286 
6287             l_item_id22 := l_item_id2;
6288 
6289             row_count := 1;
6290 
6291             Exit;
6292 
6293          End If;
6294 
6295          Fetch okx_service_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
6296 
6297          Exit When okx_service_csr%NotFound;
6298 
6299         End Loop;
6300 
6301 
6302 
6303     If row_count <> 1 Then
6304 
6305      x_return_status := OKC_API.g_ret_sts_error;
6306 
6307 
6308 
6309           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
6310 
6311 
6312 
6313           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
6314 
6315           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
6316 
6317                       , p_msg_name => 'OKL_INVALID_VALUE'
6318 
6319                       , p_token1 => 'COL_NAME'
6320 
6321                       , p_token1_value => l_service_ak_prompt
6322 
6323                      );
6324 
6325      raise OKC_API.G_EXCEPTION_ERROR;
6326 
6327     End If;
6328 
6329 
6330 
6331      End If;
6332 
6333 
6334 
6335    End If;
6336 
6337 
6338 
6339     p_item_id1 := l_item_id11;
6340 
6341     p_item_id2 := l_item_id22;
6342 
6343 
6344 
6345   Close okx_service_csr;
6346 
6347  END IF;
6348 
6349 -- For Object Code 'OKX_SYSITEM'
6350 
6351    IF (p_lty_code = 'ITEM' or p_lty_code ='ADD_ITEM') THEN
6352 
6353       OPEN okx_sysitem_csr(p_name => p_item_name,
6354                            p_id1  => l_item_id1,
6355                            p_id2  => l_item_id2);
6356 
6357 
6358 
6359          l_item_id1  := Null;
6360 
6361          l_item_id2  := Null;
6362 
6363          l_item_name := Null;
6364 
6365          l_item_description := Null;
6366 
6367      Fetch okx_sysitem_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
6368 
6369 
6370 
6371     If okx_sysitem_csr%NotFound Then
6372 
6373       x_return_status := OKC_API.g_ret_sts_error;
6374 
6375 
6376 
6377           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
6378 
6379 
6380 
6381           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
6382 
6383           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
6384 
6385                       , p_msg_name => 'OKL_INVALID_VALUE'
6386 
6387                       , p_token1 => 'COL_NAME'
6388 
6389                       , p_token1_value => l_service_ak_prompt
6390 
6391                      );
6392 
6393       raise OKC_API.G_EXCEPTION_ERROR;
6394 
6395     End If;
6396 
6397 
6398 
6399     l_item_id11 := l_item_id1;
6400 
6401     l_item_id22 := l_item_id2;
6402 
6403 
6404 
6405    If l_item_id1 = p_item_id1 and l_item_id2 = p_item_id2  Then
6406 
6407        null;
6408 
6409    Else
6410 
6411 
6412 
6413     Fetch okx_sysitem_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
6414 
6415 
6416 
6417 
6418 
6419       If okx_sysitem_csr%Found Then
6420 
6421 
6422 
6423            If( p_item_id1 is null or p_item_id1 = OKC_API.G_MISS_CHAR) then
6424 
6425           x_return_status := OKC_API.g_ret_sts_error;
6426 
6427 
6428 
6429           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
6430 
6431 
6432 
6433           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
6434 
6435           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
6436 
6437                       , p_msg_name => 'OKL_INVALID_VALUE'
6438 
6439                       , p_token1 => 'COL_NAME'
6440 
6441                       , p_token1_value => l_service_ak_prompt
6442 
6443                      );
6444 
6445           raise OKC_API.G_EXCEPTION_ERROR;
6446 
6447         End If;
6448 
6449            If( p_item_id2 is null or p_item_id2 = OKC_API.G_MISS_CHAR) then
6450 
6451           x_return_status := OKC_API.g_ret_sts_error;
6452 
6453 
6454 
6455           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
6456 
6457 
6458 
6459           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
6460 
6461           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
6462 
6463                       , p_msg_name => 'OKL_INVALID_VALUE'
6464 
6465                       , p_token1 => 'COL_NAME'
6466 
6467                       , p_token1_value => l_service_ak_prompt
6468 
6469                      );
6470 
6471           raise OKC_API.G_EXCEPTION_ERROR;
6472 
6473         End If;
6474 
6475 
6476 
6477         row_count := 0;
6478 
6479 
6480 
6481         Loop
6482 
6483 
6484 
6485          If l_item_id1 = p_item_id1 and l_item_id2 = p_item_id2  Then
6486 
6487       l_item_id11 := l_item_id1;
6488 
6489             l_item_id22 := l_item_id2;
6490 
6491             row_count := 1;
6492 
6493             Exit;
6494 
6495          End If;
6496 
6497          Fetch okx_sysitem_csr into  l_item_id1,l_item_id2,l_item_name,l_item_description;
6498 
6499          Exit When okx_sysitem_csr%NotFound;
6500 
6501         End Loop;
6502 
6503 
6504 
6505     If row_count <> 1 Then
6506 
6507      x_return_status := OKC_API.g_ret_sts_error;
6508 
6509 
6510 
6511           -- OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INVALID_VALUE');
6512 
6513 
6514 
6515           l_service_ak_prompt := GET_AK_PROMPT('OKL_LA_SERVICE_LINE', 'OKL_LA_SERVICE');
6516 
6517           OKC_API.SET_MESSAGE(      p_app_name => g_app_name
6518 
6519                       , p_msg_name => 'OKL_INVALID_VALUE'
6520 
6521                       , p_token1 => 'COL_NAME'
6522 
6523                       , p_token1_value => l_service_ak_prompt
6524 
6525                      );
6526 
6527      raise OKC_API.G_EXCEPTION_ERROR;
6528 
6529     End If;
6530 
6531 
6532 
6533      End If;
6534 
6535 
6536 
6537    End If;
6538 
6539 
6540 
6541     p_item_id1 := l_item_id11;
6542 
6543     p_item_id2 := l_item_id22;
6544 
6545   Close okx_sysitem_csr;
6546 
6547  END IF;
6548 
6549 
6550 
6551   If p_cle_id is null or p_cle_id =  OKC_API.G_MISS_NUM  Then
6552 
6553       OPEN check_item_csr(p_chr_id, p_lty_code, p_item_id1, p_item_id2 );
6554 
6555       FETCH check_item_csr INTO row_count;
6556 
6557       CLOSE check_item_csr;
6558 
6559       If row_count = 1 Then
6560 
6561          x_return_status := OKC_API.g_ret_sts_error;
6562 
6563          OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_DUPLICATE_SERVICE_FEE');
6564 
6565          raise OKC_API.G_EXCEPTION_ERROR;
6566 
6567       End If;
6568 
6569   Else
6570 
6571       OPEN get_item_csr(p_chr_id, p_cle_id );
6572 
6573       FETCH get_item_csr INTO l_lty_code, l_item_id1, l_item_id2;
6574 
6575       CLOSE get_item_csr;
6576 
6577 
6578 
6579       If l_lty_code = p_lty_code and l_item_id1 <> p_item_id1 Then
6580 
6581           OPEN check_item_csr(p_chr_id, p_lty_code, p_item_id1, p_item_id2);
6582 
6583           FETCH check_item_csr INTO row_count;
6584 
6585           CLOSE check_item_csr;
6586 
6587            If row_count = 1 Then
6588 
6589            x_return_status := OKC_API.g_ret_sts_error;
6590 
6591           OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_DUPLICATE_SERVICE_FEE');
6592 
6593           raise OKC_API.G_EXCEPTION_ERROR;
6594 
6595          End If;
6596 
6597       End If;
6598 
6599   End If;
6600 
6601 
6602 
6603   x_return_status := OKC_API.G_RET_STS_SUCCESS;
6604 
6605 
6606 
6607   OKC_API.END_ACTIVITY(x_msg_count => x_msg_count,x_msg_data => x_msg_data);
6608 
6609 
6610 
6611   EXCEPTION
6612 
6613     when OKC_API.G_EXCEPTION_ERROR then
6614 
6615         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
6616 
6617               p_api_name  => l_api_name,
6618 
6619               p_pkg_name  => g_pkg_name,
6620 
6621               p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
6622 
6623               x_msg_count => x_msg_count,
6624 
6625               x_msg_data  => x_msg_data,
6626 
6627               p_api_type  => g_api_type);
6628 
6629      IF okl_strmtyp_csr%ISOPEN THEN
6630         CLOSE okl_strmtyp_csr;
6631      END IF;
6632 
6633      IF okl_usage_csr%ISOPEN THEN
6634         CLOSE okl_usage_csr;
6635      END IF;
6636 
6637      IF okx_asset_csr%ISOPEN THEN
6638         CLOSE okx_asset_csr;
6639      END IF;
6640 
6641      IF okx_covasst_csr%ISOPEN THEN
6642         CLOSE okx_covasst_csr;
6643      END IF;
6644 
6645      IF okx_ib_item_csr%ISOPEN THEN
6646         CLOSE okx_ib_item_csr;
6647      END IF;
6648 
6649      IF okx_lease_csr%ISOPEN THEN
6650         CLOSE okx_lease_csr;
6651      END IF;
6652 
6653      IF okx_service_csr%ISOPEN THEN
6654         CLOSE okx_service_csr;
6655      END IF;
6656 
6657      IF okx_sysitem_csr%ISOPEN THEN
6658         CLOSE okx_sysitem_csr;
6659      END IF;
6660 
6661 
6662 
6663       when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
6664 
6665         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
6666 
6667               p_api_name  => l_api_name,
6668 
6669               p_pkg_name  => g_pkg_name,
6670 
6671               p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
6672 
6673               x_msg_count => x_msg_count,
6674 
6675               x_msg_data  => x_msg_data,
6676 
6677               p_api_type  => g_api_type);
6678 
6679  IF okl_strmtyp_csr%ISOPEN THEN
6680         CLOSE okl_strmtyp_csr;
6681      END IF;
6682 
6683      IF okl_usage_csr%ISOPEN THEN
6684         CLOSE okl_usage_csr;
6685      END IF;
6686 
6687      IF okx_asset_csr%ISOPEN THEN
6688         CLOSE okx_asset_csr;
6689      END IF;
6690 
6691      IF okx_covasst_csr%ISOPEN THEN
6692         CLOSE okx_covasst_csr;
6693      END IF;
6694 
6695      IF okx_ib_item_csr%ISOPEN THEN
6696         CLOSE okx_ib_item_csr;
6697      END IF;
6698 
6699      IF okx_lease_csr%ISOPEN THEN
6700         CLOSE okx_lease_csr;
6701      END IF;
6702 
6703      IF okx_service_csr%ISOPEN THEN
6704         CLOSE okx_service_csr;
6705      END IF;
6706 
6707      IF okx_sysitem_csr%ISOPEN THEN
6708         CLOSE okx_sysitem_csr;
6709      END IF;
6710 
6711 
6712 
6713       when OTHERS then
6714 
6715         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
6716 
6717               p_api_name  => l_api_name,
6718 
6719               p_pkg_name  => g_pkg_name,
6720 
6721               p_exc_name  => 'OTHERS',
6722 
6723               x_msg_count => x_msg_count,
6724 
6725               x_msg_data  => x_msg_data,
6726 
6727               p_api_type  => g_api_type);
6728 
6729  IF okl_strmtyp_csr%ISOPEN THEN
6730         CLOSE okl_strmtyp_csr;
6731      END IF;
6732 
6733      IF okl_usage_csr%ISOPEN THEN
6734         CLOSE okl_usage_csr;
6735      END IF;
6736 
6737      IF okx_asset_csr%ISOPEN THEN
6738         CLOSE okx_asset_csr;
6739      END IF;
6740 
6741      IF okx_covasst_csr%ISOPEN THEN
6742         CLOSE okx_covasst_csr;
6743      END IF;
6744 
6745      IF okx_ib_item_csr%ISOPEN THEN
6746         CLOSE okx_ib_item_csr;
6747      END IF;
6748 
6749      IF okx_lease_csr%ISOPEN THEN
6750         CLOSE okx_lease_csr;
6751      END IF;
6752 
6753      IF okx_service_csr%ISOPEN THEN
6754         CLOSE okx_service_csr;
6755      END IF;
6756 
6757      IF okx_sysitem_csr%ISOPEN THEN
6758         CLOSE okx_sysitem_csr;
6759      END IF;
6760 
6761 
6762 
6763 End Validate_Fee;
6764 
6765 
6766 
6767 -- Start of comments
6768 --
6769 -- Procedure Name  : Validate_Creditline
6770 -- Description     : creates a deal based on the information that comes
6771 --                   from the deal creation screen
6772 -- Business Rules  :
6773 -- Parameters      :
6774 -- Version         : 1.0
6775 -- End of comments
6776 Procedure Validate_Creditline (p_api_version  IN   NUMBER,
6777                      p_init_msg_list       IN   VARCHAR2 default OKC_API.G_FALSE,
6778                      x_return_status       OUT  NOCOPY  VARCHAR2,
6779                      x_msg_count           OUT  NOCOPY  NUMBER,
6780                      x_msg_data            OUT  NOCOPY  VARCHAR2,
6781                      p_chr_id              IN   NUMBER,
6782                      p_deal_type           IN   VARCHAR2,
6783                      p_mla_no              IN   VARCHAR2,
6784                      p_cl_no               IN   VARCHAR2
6785                      ) AS
6786     l_api_name        VARCHAR2(30) := 'validate_creditline';
6787     l_api_version     CONSTANT NUMBER     := 1.0;
6788 
6789     l_ak_prompt       AK_ATTRIBUTES_VL.attribute_label_long%type;
6790     l_chr_id          okc_k_headers_b.id%type := null;
6791     l_mla_cl_id       okc_k_headers_b.id%type := null;
6792     l_mla_id          okc_k_headers_b.id%type := null;
6793     l_cl_k_no         okc_k_headers_b.contract_number%type := null;
6794     l_cl_id           okc_k_headers_b.id%type := null;
6795     l_mla_no          okc_k_headers_b.contract_number%type := null;
6796     l_fund_yn         varchar2(1) := null;
6797     l_mla_cl_yn       varchar2(1) := null;
6798     l_yes             varchar2(1) := null;
6799     l_cl_rev_yn       okl_k_headers.revolving_credit_yn%type := null;
6800     l_mla_cl_rev_yn   okl_k_headers.revolving_credit_yn%type := null;
6801 
6802     cursor is_cl_exsts_csr is
6803      select cl.id, cl.contract_number
6804      from   okc_governances gvr,
6805             okc_k_headers_b chr,
6806             okc_k_headers_b cl,
6807             okl_k_headers khr
6808      where  chr.id = gvr.chr_id
6809      and    chr.id = gvr.dnz_chr_id
6810      and    gvr.cle_id is null
6811      and    gvr.chr_id_referred = cl.id
6812      and    cl.id = khr.id
6813      and    cl.scs_code = 'CREDITLINE_CONTRACT'
6814      and    chr.id = p_chr_id;
6815 
6816     cursor is_mla_cl_yn_csr is
6817      select 'Y'
6818      from   okc_governances gvr,
6819             okc_k_headers_b mla,
6820             okc_k_headers_b cl,
6821             okl_k_headers khr
6822      where  mla.id = gvr.chr_id
6823      and    mla.id = gvr.dnz_chr_id
6824      and    gvr.cle_id is null
6825      and    gvr.chr_id_referred = cl.id
6826      and    cl.id = khr.id
6827      and    cl.scs_code = 'CREDITLINE_CONTRACT'
6828      and    mla.contract_number = p_mla_no;
6829 
6830 /* Bug 4502554
6831  *
6832  *  cursor is_mla_cl_exsts_csr is
6833  *   select cl.id, mla.contract_number, khr.revolving_credit_yn
6834  *   from   okc_governances gvr,
6835  *          okc_k_headers_b mla,
6836  *          okc_k_headers_b cl,
6837  *          okl_k_headers khr
6838  *   where  mla.id = gvr.chr_id
6839  *   and    mla.id = gvr.dnz_chr_id
6840  *   and    gvr.cle_id is null
6841  *   and    gvr.chr_id_referred = cl.id
6842  *   and    cl.id = khr.id
6843  *   and    cl.scs_code = 'CREDITLINE_CONTRACT'
6844  *   and    exists ( select 1
6845  *                   from okc_k_headers_b chr,
6846  *                        okc_governances mla_gvr
6847  *                   where chr.id =  mla_gvr.chr_id
6848  *                   and   chr.id =  mla_gvr.dnz_chr_id
6849  *                   and   mla_gvr.cle_id is null
6850  *                   and   mla_gvr.chr_id_referred = mla.id
6851  *                   and   chr.id = p_chr_id
6852  *              );
6853 */
6854     -- Modifed cursor, Bug 4502554
6855     cursor is_mla_cl_exsts_csr is
6856     select cl.id, mla.contract_number, khr.revolving_credit_yn
6857     from   okc_governances gvr,
6858            okc_k_headers_b mla,
6859            okc_k_headers_b cl,
6860            okl_k_headers khr,
6861            okc_governances mla_gvr
6862     where  mla.id              = gvr.chr_id
6863     and    mla.id              = gvr.dnz_chr_id
6864     and    gvr.cle_id          is null
6865     and    gvr.chr_id_referred = cl.id
6866     and    cl.id               = khr.id
6867     and    cl.scs_code         = 'CREDITLINE_CONTRACT'
6868     and    mla_gvr.dnz_chr_id  = p_chr_id -- contract id
6869     and    mla_gvr.cle_id      is null
6870     and    mla.id              = mla_gvr.chr_id_referred
6871     and    mla.scs_code        = 'MASTER_LEASE';
6872 
6873     cursor is_k_fund_aprvd_csr is
6874         select 'Y'
6875         from  okl_trx_ap_invoices_b ap
6876         where ap.khr_id =  p_chr_id
6877         and  ap.funding_type_code is not null
6878         and  ap.trx_status_code in ('APPROVED', 'PROCESSED');
6879 
6880     cursor is_cl_revlvng_csr(l_cl_no in varchar2) is
6881      select khr.revolving_credit_yn
6882      from   okc_k_headers_b cl1,
6883             okl_k_headers khr
6884      where  cl1.scs_code = 'CREDITLINE_CONTRACT'
6885      and    khr.id = cl1.id
6886      and    cl1.contract_number = l_cl_no;
6887 
6888     cursor is_mla_cl_rev_yn_csr is
6889      select khr.revolving_credit_yn
6890      from   okc_governances gvr,
6891             okc_k_headers_b mla,
6892             okc_k_headers_b cl,
6893             okl_k_headers khr
6894      where  mla.id = gvr.chr_id
6895      and    mla.id = gvr.dnz_chr_id
6896      and    gvr.cle_id is null
6897      and    gvr.chr_id_referred = cl.id
6898      and    cl.id = khr.id
6899      and    cl.scs_code = 'CREDITLINE_CONTRACT'
6900      and    mla.contract_number = p_mla_no;
6901 
6902     cursor get_k_id_csr(p_k_no IN VARCHAR2) is
6903       select id
6904       from okl_k_headers_full_v
6905       where contract_number = p_k_no;
6906 
6907   BEGIN
6908 
6909   l_chr_id := p_chr_id;
6910   If okl_context.get_okc_org_id  is null then
6911         okl_context.set_okc_org_context(p_chr_id => l_chr_id );
6912   End If;
6913 
6914   x_return_status := OKC_API.START_ACTIVITY(
6915                         p_api_name      => l_api_name,
6916                         p_pkg_name      => g_pkg_name,
6917                         p_init_msg_list => p_init_msg_list,
6918                         l_api_version   => l_api_version,
6919                         p_api_version   => p_api_version,
6920                         p_api_type      => g_api_type,
6921                         x_return_status => x_return_status);
6922 
6923   -- check if activity started successfully
6924   If (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
6925        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6926   Elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
6927        raise OKC_API.G_EXCEPTION_ERROR;
6928   End If;
6929 
6930   l_fund_yn := null;
6931   open is_k_fund_aprvd_csr;
6932   fetch is_k_fund_aprvd_csr into l_fund_yn;
6933   close is_k_fund_aprvd_csr;
6934 
6935 -- check the contract master lease
6936   l_mla_cl_id := null;
6937   l_mla_no := null;
6938   l_mla_cl_rev_yn := null;
6939   open  is_mla_cl_exsts_csr;
6940   fetch is_mla_cl_exsts_csr into l_mla_cl_id,l_mla_no,l_mla_cl_rev_yn;
6941   close is_mla_cl_exsts_csr;
6942 
6943 -- check the contract credit line
6944   l_cl_k_no := null;
6945   l_cl_id := null;
6946   open  is_cl_exsts_csr;
6947   fetch is_cl_exsts_csr into l_cl_id,l_cl_k_no;
6948   close is_cl_exsts_csr;
6949 
6950   If ( l_cl_id is not null and l_fund_yn = 'Y') Then
6951 
6952      If( p_cl_no is null or l_cl_k_no <> p_cl_no) Then
6953 
6954          x_return_status := OKC_API.g_ret_sts_error;
6955               l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_CREDIT_CONTRACT');
6956               OKC_API.SET_MESSAGE(     p_app_name => g_app_name
6957                                 , p_msg_name => 'OKL_CL_FUND_STS_CHK'
6958                                 , p_token1 => 'COL_NAME'
6959                                 , p_token1_value => l_cl_k_no
6960                            );
6961          raise OKC_API.G_EXCEPTION_ERROR;
6962 
6963      End If;
6964 
6965   ElsIf ( p_cl_no is not null and l_cl_k_no is null and l_mla_cl_id is not null and l_fund_yn = 'Y') Then
6966 
6967          x_return_status := OKC_API.g_ret_sts_error;
6968          l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_CREDIT_CONTRACT');
6969          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
6970                                 , p_msg_name => 'OKL_CL_FUND_STS_CHK1'
6971                            );
6972          raise OKC_API.G_EXCEPTION_ERROR;
6973 
6974   End If;
6975 
6976 -- check the mla contract credit line
6977   l_mla_cl_yn := 'N';
6978   open  is_mla_cl_yn_csr;
6979   fetch is_mla_cl_yn_csr into l_mla_cl_yn;
6980   close is_mla_cl_yn_csr;
6981 
6982   --if mla exists
6983   If ( l_mla_cl_id is not null and  l_fund_yn = 'Y' ) Then
6984 
6985     -- funding approved, can not change mla
6986     If( p_mla_no is null or l_mla_no <> p_mla_no) Then
6987 
6988          x_return_status := OKC_API.g_ret_sts_error;
6989            l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_CREDIT_CONTRACT');
6990            OKC_API.SET_MESSAGE(     p_app_name => g_app_name
6991                                 , p_msg_name => 'OKL_MLA_CL_FUND_APRVD'
6992                                 , p_token1 => 'COL_NAME'
6993                                 , p_token1_value => l_mla_no
6994                            );
6995          raise OKC_API.G_EXCEPTION_ERROR;
6996 
6997     End If;
6998   -- mla cl not attached
6999   ElsIf ( p_mla_no is not null and l_mla_cl_yn = 'Y' and l_cl_id is not null and l_fund_yn = 'Y') Then
7000 
7001          x_return_status := OKC_API.g_ret_sts_error;
7002          l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_CREDIT_CONTRACT');
7003          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
7004                                 , p_msg_name => 'OKL_MLA_CL_FUND_APRVD1'
7005                            );
7006          raise OKC_API.G_EXCEPTION_ERROR;
7007 
7008   End If;
7009 
7010   l_cl_rev_yn := null;
7011   If( p_cl_no is not null ) Then
7012 
7013    open is_cl_revlvng_csr(p_cl_no);
7014    fetch is_cl_revlvng_csr into l_cl_rev_yn;
7015    close is_cl_revlvng_csr;
7016 
7017   End If;
7018 
7019   l_mla_cl_rev_yn := null;
7020   If( p_mla_no is not null ) Then
7021 
7022    open is_mla_cl_rev_yn_csr;
7023    fetch is_mla_cl_rev_yn_csr into l_mla_cl_rev_yn;
7024    close is_mla_cl_rev_yn_csr;
7025 
7026   End If;
7027 
7028   -- validation for loan revolving
7029   If (p_deal_type = 'LOAN-REVOLVING') Then
7030 
7031       If (p_cl_no is not null and (l_cl_rev_yn is null or l_cl_rev_yn = 'N')) Then
7032 
7033          x_return_status := OKC_API.g_ret_sts_error;
7034          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
7035                                 , p_msg_name => 'OKL_LLA_REVOLVING_CREDIT'
7036                            );
7037          raise OKC_API.G_EXCEPTION_ERROR;
7038 
7039       End If;
7040 
7041       -- if master lease exists and mla cl exists and rev yn is not null and cl rev yn is N
7042 
7043       If ( p_mla_no is not null and
7044             (l_mla_cl_yn is not null and l_mla_cl_yn = 'Y')  and
7045                (l_mla_cl_rev_yn is not null and l_mla_cl_rev_yn = 'N') ) Then
7046 
7047          x_return_status := OKC_API.g_ret_sts_error;
7048          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
7049                                 , p_msg_name => 'OKL_LLA_REVOLVING_CREDIT'
7050                            );
7051          raise OKC_API.G_EXCEPTION_ERROR;
7052 
7053       End If;
7054 
7055   Else
7056 
7057       If (p_cl_no is not null and l_cl_rev_yn is not null and l_cl_rev_yn = 'Y') Then
7058 
7059          x_return_status := OKC_API.g_ret_sts_error;
7060          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
7061                                 , p_msg_name => 'OKL_LLA_NOT_REVOLVING_CREDIT'
7062                            );
7063          raise OKC_API.G_EXCEPTION_ERROR;
7064 
7065       End If;
7066 
7067       If (p_mla_no is not null and
7068            (l_mla_cl_yn is not null and l_mla_cl_yn = 'Y')  and
7069               (l_mla_cl_rev_yn is not null and l_mla_cl_rev_yn = 'Y')) Then
7070 
7071          x_return_status := OKC_API.g_ret_sts_error;
7072          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
7073                                 , p_msg_name => 'OKL_LLA_NOT_REVOLVING_CREDIT'
7074                            );
7075          raise OKC_API.G_EXCEPTION_ERROR;
7076 
7077       End If;
7078 
7079   End If; -- end of loan revolving
7080 
7081   l_mla_id := null;
7082   open get_k_id_csr(p_mla_no);
7083   fetch get_k_id_csr into l_mla_id;
7084   close get_k_id_csr;
7085 
7086   l_cl_id := null;
7087   open get_k_id_csr(p_cl_no);
7088   fetch get_k_id_csr into l_cl_id;
7089   close get_k_id_csr;
7090 
7091   OKL_FUNDING_PVT.refresh_fund_chklst (
7092       p_api_version    => p_api_version,
7093       p_init_msg_list  => p_init_msg_list,
7094       x_return_status  => x_return_status,
7095       x_msg_count      => x_msg_count,
7096       x_msg_data       => x_msg_data,
7097       p_chr_id         => p_chr_id,
7098       p_MLA_id         => l_mla_id,
7099       p_creditline_id  => l_cl_id
7100       );
7101 
7102     If (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
7103        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7104     Elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
7105        raise OKC_API.G_EXCEPTION_ERROR;
7106     End If;
7107 
7108   x_return_status := OKC_API.G_RET_STS_SUCCESS;
7109 
7110   OKC_API.END_ACTIVITY(x_msg_count => x_msg_count,  x_msg_data => x_msg_data);
7111 
7112   EXCEPTION
7113     when OKC_API.G_EXCEPTION_ERROR then
7114       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
7115                         p_api_name  => l_api_name,
7116                         p_pkg_name  => g_pkg_name,
7117                         p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
7118                         x_msg_count => x_msg_count,
7119                         x_msg_data  => x_msg_data,
7120                         p_api_type  => g_api_type);
7121 
7122     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
7123       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
7124                         p_api_name  => l_api_name,
7125                         p_pkg_name  => g_pkg_name,
7126                         p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
7127                         x_msg_count => x_msg_count,
7128                         x_msg_data  => x_msg_data,
7129                         p_api_type  => g_api_type);
7130 
7131     when OTHERS then
7132       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
7133                         p_api_name  => l_api_name,
7134                         p_pkg_name  => g_pkg_name,
7135                         p_exc_name  => 'OTHERS',
7136                         x_msg_count => x_msg_count,
7137                         x_msg_data  => x_msg_data,
7138                         p_api_type  => g_api_type);
7139   END;
7140 
7141 
7142 
7143 -- Start of comments
7144 --
7145 
7146 -- Procedure Name  : validate_deal
7147 -- Description     : creates a deal based on the information that comes
7148 --                 from the deal creation screen
7149 -- Business Rules  :
7150 -- Parameters      :
7151 -- Version         : 1.0
7152 -- End of comments
7153 
7154   PROCEDURE validate_deal(
7155             p_api_version                  IN NUMBER,
7156             p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
7157             x_return_status                OUT NOCOPY VARCHAR2,
7158             x_msg_count                    OUT NOCOPY NUMBER,
7159             x_msg_data                     OUT NOCOPY VARCHAR2,
7160             p_chr_id                       IN NUMBER,
7161             p_scs_code                     IN VARCHAR2,
7162             p_contract_number              IN VARCHAR2,
7163             p_customer_id1                 IN OUT NOCOPY VARCHAR2,
7164             p_customer_id2                 IN OUT NOCOPY VARCHAR2,
7165             p_customer_code                IN OUT NOCOPY VARCHAR2,
7166             p_customer_name                IN  VARCHAR2,
7167             p_chr_cust_acct_id             OUT NOCOPY NUMBER,
7168             p_customer_acc_name            IN  VARCHAR2,
7169             p_product_name                 IN  VARCHAR2,
7170             p_product_id                   IN OUT NOCOPY VARCHAR2,
7171             p_product_desc                 IN OUT NOCOPY VARCHAR2,
7172             p_contact_id1                  IN OUT NOCOPY VARCHAR2,
7173             p_contact_id2                  IN OUT NOCOPY VARCHAR2,
7174             p_contact_code                 IN OUT NOCOPY VARCHAR2,
7175             p_contact_name                 IN  VARCHAR2,
7176             p_mla_no                       IN  VARCHAR2,
7177             p_mla_id                       IN OUT NOCOPY VARCHAR2,
7178             p_program_no                   IN  VARCHAR2,
7179             p_program_id                   IN OUT NOCOPY VARCHAR2,
7180             p_credit_line_no               IN  VARCHAR2,
7181             p_credit_line_id               IN OUT NOCOPY VARCHAR2,
7182             p_currency_name               IN  VARCHAR2,
7183             p_currency_code               IN OUT NOCOPY VARCHAR2,
7184             p_start_date                  IN  DATE,
7185             p_deal_type                   IN  VARCHAR2
7186             ) AS
7187 
7188 
7189 
7190     l_api_name            VARCHAR2(30) := 'validate_deal';
7191     l_api_version    CONSTANT NUMBER      := 1.0;
7192 
7193     l_template_yn        OKC_K_HEADERS_B.TEMPLATE_YN%TYPE;
7194     -- Removed the assignment p_product_des from l_temp_yn
7195     l_temp_yn        OKC_K_HEADERS_B.TEMPLATE_YN%TYPE;
7196     l_chr_type           OKC_K_HEADERS_B.CHR_TYPE%TYPE;
7197     l_contract_number    OKC_K_HEADERS_B.CHR_TYPE%TYPE;
7198     l_object_code     VARCHAR2(30) Default Null;
7199 
7200     l_ak_prompt  AK_ATTRIBUTES_VL.attribute_label_long%type;
7201     l_chr_id    okl_k_headers_full_v.id%type;
7202     l_revolving_credit_yn okl_k_headers_full_v.revolving_credit_yn%type;
7203     l_row_count number;
7204     l_currency_code fnd_currencies_vl.currency_code%type := null;
7205 
7206     cursor l_chk_cust_acc_csr(p_cust_acc_id1 VARCHAR2, p_name VARCHAR2) is
7207     select ca.id1
7208     from okx_customer_accounts_v ca, okx_parties_v p
7209     where p.id1 = ca.party_id
7210     and ca.description = p_cust_acc_id1
7211     and p.name = p_name;
7212 
7213     cursor l_product_csr is
7214     select id, description
7215     from OKL_PRODUCTS_V
7216     where name = p_product_name
7217     and nvl(from_date,p_start_date) <= p_start_date
7218     and nvl(to_date,p_start_date+1) > p_start_date;
7219 
7220     cursor l_mla_csr is
7221     select id
7222     from OKL_k_headers_full_V
7223     where contract_number = p_mla_no
7224     and   scs_code = 'MASTER_LEASE'
7225     and STS_CODE = 'ACTIVE'
7226     and TEMPLATE_YN = 'N'
7227     and BUY_OR_SELL = 'S';
7228 
7229     cursor l_program_csr is
7230     select id
7231     from OKL_k_headers_full_V prg_hdr
7232     where contract_number = p_program_no
7233     and scs_code = 'PROGRAM'
7234     and nvl(TEMPLATE_YN, 'N') = 'N'
7235     and sts_code = 'ACTIVE'
7236     and exists (select 1 from okc_k_headers_b
7237             where id = p_chr_id
7238             and authoring_org_id = prg_hdr.authoring_org_id);
7239 
7240     cursor l_credit_line_csr(p_curr_code VARCHAR2) is
7241     select id, revolving_credit_yn
7242     from okl_k_hdr_crdtln_uv
7243     where  contract_number = p_credit_line_no
7244     and currency_code = p_curr_code
7245     and end_date >= p_start_date
7246     and cust_name  = p_customer_name
7247     and cust_acc_number = p_customer_acc_name;
7248 
7249     cursor l_currency_csr is
7250     select CURRENCY_CODE
7251     from okl_la_currencies_uv
7252     where CURRENCY_CODE = p_currency_code;
7253 
7254 
7255     row_cnt  number;
7256     l_orig_lse_object1_id1 okc_k_party_roles_b.object1_id1%type := null;
7257     l_re_book okc_k_headers_b.orig_system_source_code%type := null;
7258     l_orig_cust_acct_id okc_k_headers_b.cust_acct_id%type := null;
7259 
7260     cursor l_re_book_csr is
7261      select chr.orig_system_source_code, chr.cust_acct_id
7262      from OKC_K_HEADERS_B chr
7263      where chr.id = p_chr_id;
7264 
7265     cursor l_get_cust_csr is
7266      select object1_id1
7267      from okc_k_party_roles_b
7268      where rle_code = 'LESSEE'
7269      and  dnz_chr_id = p_chr_id
7270      and  chr_id =   p_chr_id;
7271 
7272       l_rollover_yn varchar2(1) := null;
7273       cursor l_rollover_fee_csr is
7274       select 'Y'
7275       from okc_k_lines_b cle,
7276            okl_k_lines kle
7277       where cle.id = kle.id
7278       and  cle.dnz_chr_id = p_chr_id
7279       and  cle.chr_id =   p_chr_id
7280       and  kle.fee_type = 'ROLLOVER';
7281 
7282       l_template_type_code OKL_K_HEADERS.TEMPLATE_TYPE_CODE%TYPE := NULL;
7283       CURSOR l_tmpl_type_code_csr IS
7284           SELECT chrb.template_yn,
7285                  khr.template_type_code
7286           FROM   okc_k_headers_b chrb,
7287                  okl_k_headers khr
7288           WHERE   chrb.id = khr.id
7289           AND chrb.id = p_chr_id;
7290 
7291 
7292  BEGIN
7293 
7294 
7295 
7296   If okl_context.get_okc_org_id  is null then
7297 
7298     l_chr_id := p_chr_id;
7299 
7300     okl_context.set_okc_org_context(p_chr_id => l_chr_id );
7301 
7302   End If;
7303 
7304 
7305 
7306     x_return_status := OKC_API.START_ACTIVITY(
7307 
7308             p_api_name      => l_api_name,
7309 
7310             p_pkg_name      => g_pkg_name,
7311 
7312             p_init_msg_list => p_init_msg_list,
7313 
7314             l_api_version   => l_api_version,
7315 
7316             p_api_version   => p_api_version,
7317 
7318             p_api_type      => g_api_type,
7319 
7320             x_return_status => x_return_status);
7321 
7322 
7323 
7324     -- check if activity started successfully
7325 
7326     If (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
7327 
7328        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7329 
7330     Elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
7331 
7332        raise OKC_API.G_EXCEPTION_ERROR;
7333 
7334     End If;
7335 
7336 -- contract number validation
7337 
7338    If(p_contract_number is null) Then
7339 
7340      x_return_status := OKC_API.g_ret_sts_error;
7341 
7342          l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CONTRACT_NUMBER');
7343 
7344          OKC_API.SET_MESSAGE(      p_app_name => g_app_name
7345 
7346                 , p_msg_name => 'OKL_REQUIRED_VALUE'
7347 
7348                 , p_token1 => 'COL_NAME'
7349 
7350                 , p_token1_value => l_ak_prompt
7351 
7352                );
7353 
7354      raise OKC_API.G_EXCEPTION_ERROR;
7355 
7356     End If;
7357 
7358 
7359 
7360 
7361 
7362 -- mla validation
7363 
7364 
7365 
7366     If(p_mla_no is not null) Then
7367 
7368     p_mla_id := null;
7369 
7370 
7371 
7372     open l_mla_csr;
7373 
7374     fetch l_mla_csr into p_mla_id;
7375 
7376     close l_mla_csr;
7377 
7378 
7379 
7380      If p_mla_id is null Then
7381 
7382      x_return_status := OKC_API.g_ret_sts_error;
7383 
7384          l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_MASTER_LEASE_NUMBER');
7385 
7386          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
7387 
7388                 , p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
7389 
7390                 , p_token1 => 'COL_NAME'
7391 
7392                 , p_token1_value => l_ak_prompt
7393 
7394                );
7395 
7396      raise OKC_API.G_EXCEPTION_ERROR;
7397 
7398      End If;
7399 
7400 
7401 
7402     End If;
7403 
7404 
7405    l_temp_yn := null;
7406    l_template_type_code := null;
7407    open l_tmpl_type_code_csr;
7408    fetch l_tmpl_type_code_csr into l_temp_yn, l_template_type_code;
7409    close l_tmpl_type_code_csr;
7410 
7411    IF(l_template_type_code IS NULL) THEN
7412      l_template_type_code := 'XXX';
7413    END IF;
7414 
7415    IF(l_temp_yn IS NULL OR l_temp_yn = 'N') THEN
7416      l_temp_yn := 'N';
7417    END IF;
7418 
7419 
7420 -- customer validation
7421 
7422   If(l_temp_yn = 'Y') Then
7423 
7424 
7425 
7426    If(p_customer_name  is not null) Then
7427 
7428 
7429 
7430     okl_la_validation_util_pvt.Get_Party_Jtot_data (
7431 
7432       p_api_version    => p_api_version,
7433 
7434       p_init_msg_list  => p_init_msg_list,
7435 
7436       x_return_status  => x_return_status,
7437 
7438       x_msg_count      => x_msg_count,
7439 
7440       x_msg_data       => x_msg_data,
7441 
7442       p_scs_code       => p_scs_code,
7443 
7444       p_buy_or_sell    => 'S',
7445 
7446       p_rle_code       => G_RLE_CODE,
7447 
7448       p_id1            => p_customer_id1,
7449 
7450       p_id2            => p_customer_id2,
7451 
7452       p_name           => p_customer_name,
7453 
7454       p_object_code    => p_customer_code,
7455 
7456       p_ak_region      => 'OKL_LA_DEAL_CREAT',
7457 
7458       p_ak_attribute   => 'OKL_CUSTOMER_NAME'
7459 
7460       );
7461 
7462 
7463 
7464     If (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
7465 
7466        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7467 
7468     Elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
7469 
7470        raise OKC_API.G_EXCEPTION_ERROR;
7471 
7472     End If;
7473 
7474 
7475 
7476   End If;
7477 
7478 
7479 
7480  Else
7481 
7482 
7483    If(p_customer_name is null) Then
7484 
7485      x_return_status := OKC_API.g_ret_sts_error;
7486 
7487          l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CUSTOMER_NAME');
7488 
7489          OKC_API.SET_MESSAGE(      p_app_name => g_app_name
7490 
7491                 , p_msg_name => 'OKL_REQUIRED_VALUE'
7492 
7493                 , p_token1 => 'COL_NAME'
7494 
7495                 , p_token1_value => l_ak_prompt
7496 
7497                );
7498 
7499      raise OKC_API.G_EXCEPTION_ERROR;
7500 
7501     End If;
7502 
7503 
7504 
7505     okl_la_validation_util_pvt.Get_Party_Jtot_data (
7506 
7507       p_api_version    => p_api_version,
7508 
7509       p_init_msg_list  => p_init_msg_list,
7510 
7511       x_return_status  => x_return_status,
7512 
7513       x_msg_count      => x_msg_count,
7514 
7515       x_msg_data       => x_msg_data,
7516 
7517       p_scs_code       => p_scs_code,
7518 
7519       p_buy_or_sell    => 'S',
7520 
7521       p_rle_code       => G_RLE_CODE,
7522 
7523       p_id1            => p_customer_id1,
7524 
7525       p_id2            => p_customer_id2,
7526 
7527       p_name           => p_customer_name,
7528 
7529       p_object_code    => p_customer_code,
7530 
7531       p_ak_region      => 'OKL_LA_DEAL_CREAT',
7532 
7533       p_ak_attribute   => 'OKL_CUSTOMER_NAME'
7534 
7535       );
7536 
7537 
7538 
7539     If (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
7540 
7541        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7542 
7543     Elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
7544 
7545        raise OKC_API.G_EXCEPTION_ERROR;
7546 
7547     End If;
7548 
7549 -- rebook validation
7550 
7551    open l_re_book_csr;
7552    fetch l_re_book_csr into l_re_book, l_orig_cust_acct_id;
7553    close l_re_book_csr;
7554 
7555    If( l_re_book is not null and l_re_book = 'OKL_REBOOK') Then
7556 
7557     open l_get_cust_csr;
7558     fetch l_get_cust_csr into l_orig_lse_object1_id1;
7559     close l_get_cust_csr;
7560 
7561 
7562      If not( p_customer_id1 is not null and l_orig_lse_object1_id1 is not null and l_orig_lse_object1_id1 = p_customer_id1) Then
7563               OKC_API.SET_MESSAGE( p_app_name => g_app_name
7564                          , p_msg_name => 'OKL_REBOOK_CUST_VALIDATION'
7565                );
7566 
7567       raise OKC_API.G_EXCEPTION_ERROR;
7568      End If;
7569 
7570     End If;
7571 
7572    End If;
7573 
7574 -- customer account validation
7575 
7576   If(l_temp_yn = 'Y') Then
7577 
7578    If(p_customer_acc_name  is not null) Then
7579 
7580     p_chr_cust_acct_id := null;
7581 
7582     open l_chk_cust_acc_csr(p_customer_acc_name,p_customer_name);
7583 
7584     fetch l_chk_cust_acc_csr into p_chr_cust_acct_id;
7585 
7586     close l_chk_cust_acc_csr;
7587 
7588 
7589 
7590     If p_chr_cust_acct_id is null Then
7591 
7592      x_return_status := OKC_API.g_ret_sts_error;
7593 
7594          l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_CUSTOMER_ACCOUNT_N');
7595 
7596          OKC_API.SET_MESSAGE(      p_app_name => g_app_name
7597 
7598                 , p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
7599 
7600                 , p_token1 => 'COL_NAME'
7601 
7602                 , p_token1_value => l_ak_prompt
7603 
7604                );
7605 
7606      raise OKC_API.G_EXCEPTION_ERROR;
7607 
7608     End If;
7609 
7610 
7611 
7612    End If;
7613 
7614 
7615 
7616  Else
7617 
7618 
7619     If(p_customer_acc_name is null) Then
7620         x_return_status := OKC_API.g_ret_sts_error;
7621         l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_CUSTOMER_ACCOUNT_N');
7622         OKC_API.SET_MESSAGE(      p_app_name => g_app_name
7623                 , p_msg_name => 'OKL_REQUIRED_VALUE'
7624                 , p_token1 => 'COL_NAME'
7625                 , p_token1_value => l_ak_prompt
7626                );
7627      raise OKC_API.G_EXCEPTION_ERROR;
7628     End If;
7629 
7630 
7631     p_chr_cust_acct_id := null;
7632     open l_chk_cust_acc_csr(p_customer_acc_name,p_customer_name);
7633     fetch l_chk_cust_acc_csr into p_chr_cust_acct_id ;
7634     close l_chk_cust_acc_csr;
7635 
7636 
7637     If p_chr_cust_acct_id is null Then
7638      x_return_status := OKC_API.g_ret_sts_error;
7639          l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_CUSTOMER_ACCOUNT_N');
7640          OKC_API.SET_MESSAGE(      p_app_name => g_app_name
7641                 , p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
7642                 , p_token1 => 'COL_NAME'
7643                 , p_token1_value => l_ak_prompt
7644                );
7645      raise OKC_API.G_EXCEPTION_ERROR;
7646     End If;
7647 
7648    -- rebook validation
7649 
7650    If( l_re_book is not null and l_re_book = 'OKL_REBOOK') Then
7651 
7652     If not( p_chr_cust_acct_id is not null and l_orig_cust_acct_id is not null and l_orig_cust_acct_id = p_chr_cust_acct_id) Then
7653               OKC_API.SET_MESSAGE( p_app_name => g_app_name
7654                          , p_msg_name => 'OKL_REBOOK_CUST_VALIDATION'
7655                );
7656 
7657       raise OKC_API.G_EXCEPTION_ERROR;
7658      End If;
7659 
7660     End If;
7661 
7662   End If;
7663 
7664 
7665   If(l_temp_yn = 'Y') Then
7666 
7667    l_rollover_yn := null;
7668    open l_rollover_fee_csr;
7669    fetch l_rollover_fee_csr into  l_rollover_yn;
7670    close l_rollover_fee_csr;
7671 
7672     If (l_rollover_yn = 'Y') Then
7673      x_return_status := OKC_API.g_ret_sts_error;
7674          OKC_API.SET_MESSAGE(      p_app_name => g_app_name
7675                 , p_msg_name => 'OKL_LLA_RQ_NO_K_TMP' -- Rollover Fee attached, cannot create teplate contract
7676                );
7677      raise OKC_API.G_EXCEPTION_ERROR;
7678     End If;
7679 
7680   End If;
7681 
7682 -- product validation
7683 
7684   If(l_temp_yn = 'Y' AND l_template_type_code IN ('PROGRAM','LEASEAPP')) Then
7685 
7686    If( p_product_name is not null) Then
7687 
7688     p_product_id := null;
7689     p_product_desc := null;
7690 
7691     open l_product_csr;
7692     fetch l_product_csr into p_product_id,p_product_desc;
7693     close l_product_csr;
7694 
7695     If p_product_id is null Then
7696          x_return_status := OKC_API.g_ret_sts_error;
7697          l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_PRODUCT');
7698          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
7699                 , p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
7700                 , p_token1 => 'COL_NAME'
7701                 , p_token1_value => l_ak_prompt
7702                );
7703          raise OKC_API.G_EXCEPTION_ERROR;
7704     End If;
7705 
7706    End If;
7707 
7708   Else
7709 
7710     If(p_product_name is null) Then
7711          x_return_status := OKC_API.g_ret_sts_error;
7712          l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_PRODUCT');
7713          OKC_API.SET_MESSAGE(      p_app_name => g_app_name
7714                 , p_msg_name => 'OKL_REQUIRED_VALUE'
7715                 , p_token1 => 'COL_NAME'
7716                 , p_token1_value => l_ak_prompt
7717                );
7718          raise OKC_API.G_EXCEPTION_ERROR;
7719     End If;
7720 
7721 
7722     p_product_id := null;
7723     p_product_desc := null;
7724 
7725     open l_product_csr;
7726     fetch l_product_csr into p_product_id,p_product_desc;
7727     close l_product_csr;
7728 
7729     If p_product_id is null Then
7730 
7731          x_return_status := OKC_API.g_ret_sts_error;
7732          l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_PRODUCT');
7733          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
7734                 , p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
7735                 , p_token1 => 'COL_NAME'
7736                 , p_token1_value => l_ak_prompt
7737                );
7738          raise OKC_API.G_EXCEPTION_ERROR;
7739 
7740     End If;
7741 
7742   End If;
7743 
7744 
7745 -- program validation
7746 
7747     p_program_id := null;
7748 
7749     If(p_program_no is not null) Then
7750 
7751      open l_program_csr;
7752      fetch l_program_csr into p_program_id;
7753      close l_program_csr;
7754 
7755      If p_program_id is null Then
7756 
7757          x_return_status := OKC_API.g_ret_sts_error;
7758          l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_PROGRAM');
7759          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
7760                 , p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
7761                 , p_token1 => 'COL_NAME'
7762                 , p_token1_value => l_ak_prompt
7763                );
7764          raise OKC_API.G_EXCEPTION_ERROR;
7765 
7766      End If;
7767 
7768     End If;
7769 
7770 
7771 
7772 -- Currency validation
7773 
7774     If(p_currency_code is null) Then
7775 
7776          x_return_status := OKC_API.g_ret_sts_error;
7777          l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_CURRENCY');
7778          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
7779                 , p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
7780                 , p_token1 => 'COL_NAME'
7781                 , p_token1_value => l_ak_prompt
7782                );
7783 
7784          raise OKC_API.G_EXCEPTION_ERROR;
7785 
7786      End If;
7787 
7788 
7789      l_currency_code := null;
7790 
7791      open l_currency_csr;
7792      fetch l_currency_csr into l_currency_code;
7793      close l_currency_csr;
7794 
7795      If l_currency_code is null Then
7796 
7797          x_return_status := OKC_API.g_ret_sts_error;
7798          l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_CURRENCY');
7799          OKC_API.SET_MESSAGE(
7800                   p_app_name => g_app_name
7801                 , p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
7802                 , p_token1 => 'COL_NAME'
7803                 , p_token1_value => l_ak_prompt
7804                );
7805 
7806          raise OKC_API.G_EXCEPTION_ERROR;
7807 
7808      End If;
7809 
7810     -- creditline validation
7811 
7812     If(p_credit_line_no is not null) Then
7813 
7814       p_credit_line_id := null;
7815       l_revolving_credit_yn := null;
7816 
7817       open l_credit_line_csr(p_currency_code);
7818       fetch l_credit_line_csr into p_credit_line_id,l_revolving_credit_yn;
7819       close l_credit_line_csr;
7820 
7821       If p_credit_line_id is null Then
7822          x_return_status := OKC_API.g_ret_sts_error;
7823          l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_CREDIT_CONTRACT');
7824          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
7825                                 , p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
7826                                 , p_token1 => 'COL_NAME'
7827                                 , p_token1_value => l_ak_prompt
7828 
7829                            );
7830          raise OKC_API.G_EXCEPTION_ERROR;
7831       End If;
7832     End If;
7833 
7834 
7835 
7836 -- contact validation
7837 
7838    If(p_contact_name is not null) Then
7839 
7840      okl_la_validation_util_pvt.Validate_Contact (
7841 
7842        p_api_version    => p_api_version,
7843 
7844        p_init_msg_list  => p_init_msg_list,
7845 
7846        x_return_status  => x_return_status,
7847 
7848        x_msg_count      => x_msg_count,
7849 
7850        x_msg_data       => x_msg_data,
7851 
7852        p_chr_id         => p_chr_id,
7853 
7854        p_rle_code       => 'LESSOR',
7855 
7856        p_cro_code       => 'SALESPERSON',
7857 
7858        p_id1            => p_contact_id1,
7859 
7860        p_id2            => p_contact_id2,
7861 
7862        p_name           => p_contact_name,
7863 
7864        p_object_code    => p_contact_code,
7865 
7866        p_ak_region      => 'OKL_CONTRACT_DTLS',
7867 
7868        p_ak_attribute   => 'OKL_KDTLS_SALES_REPRESENTATIVE'
7869 
7870        );
7871 
7872 
7873 
7874      If (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
7875 
7876         raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7877 
7878      Elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
7879 
7880         raise OKC_API.G_EXCEPTION_ERROR;
7881 
7882      End If;
7883 
7884 
7885 
7886    End If;
7887 
7888 
7889 
7890 
7891 
7892    OKC_API.END_ACTIVITY(x_msg_count    => x_msg_count,
7893 
7894              x_msg_data    => x_msg_data);
7895 
7896   EXCEPTION
7897 
7898     when OKC_API.G_EXCEPTION_ERROR then
7899 
7900       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
7901 
7902             p_api_name  => l_api_name,
7903 
7904             p_pkg_name  => g_pkg_name,
7905 
7906             p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
7907 
7908             x_msg_count => x_msg_count,
7909 
7910             x_msg_data  => x_msg_data,
7911 
7912             p_api_type  => g_api_type);
7913 
7914 
7915 
7916     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
7917 
7918       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
7919 
7920             p_api_name  => l_api_name,
7921 
7922             p_pkg_name  => g_pkg_name,
7923 
7924             p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
7925 
7926             x_msg_count => x_msg_count,
7927 
7928             x_msg_data  => x_msg_data,
7929 
7930             p_api_type  => g_api_type);
7931 
7932 
7933 
7934     when OTHERS then
7935 
7936       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
7937 
7938             p_api_name  => l_api_name,
7939 
7940             p_pkg_name  => g_pkg_name,
7941 
7942             p_exc_name  => 'OTHERS',
7943 
7944             x_msg_count => x_msg_count,
7945 
7946             x_msg_data  => x_msg_data,
7947 
7948             p_api_type  => g_api_type);
7949 
7950   END;
7951 
7952 
7953 
7954 Procedure Validate_Service (p_api_version  IN   NUMBER,
7955 
7956                      p_init_msg_list       IN    VARCHAR2 default OKC_API.G_FALSE,
7957 
7958                      x_return_status       OUT  NOCOPY    VARCHAR2,
7959 
7960                      x_msg_count       OUT  NOCOPY    NUMBER,
7961 
7962                      x_msg_data               OUT  NOCOPY    VARCHAR2,
7963 
7964                      p_chr_id              IN    NUMBER,
7965 
7966                      p_cle_id              IN    NUMBER,
7967 
7968                      p_lty_code            IN   VARCHAR2,
7969 
7970                      p_item_id1            IN OUT NOCOPY VARCHAR2,
7971 
7972                      p_item_id2            IN OUT NOCOPY VARCHAR2,
7973 
7974                      p_item_name           IN   VARCHAR2,
7975 
7976                      p_item_object_code    IN OUT NOCOPY VARCHAR2,
7977 
7978                      p_cpl_id              IN    NUMBER,
7979 
7980                      p_rle_code            IN    VARCHAR2,
7981 
7982                      p_party_id1             IN OUT NOCOPY VARCHAR2,
7983 
7984                      p_party_id2           IN OUT NOCOPY VARCHAR2,
7985 
7986                      p_party_name          IN   VARCHAR2,
7987 
7988                      p_party_object_code   IN OUT NOCOPY VARCHAR2,
7989 
7990                      p_amount              IN NUMBER
7991 
7992                      ) AS
7993 
7994     l_api_name            VARCHAR2(30) := 'validate_deal';
7995 
7996     l_api_version    CONSTANT NUMBER      := 1.0;
7997 
7998 
7999 
8000     l_template_yn        OKC_K_HEADERS_B.TEMPLATE_YN%TYPE;
8001 
8002     l_chr_type           OKC_K_HEADERS_B.CHR_TYPE%TYPE;
8003 
8004     l_contract_number    OKC_K_HEADERS_B.CHR_TYPE%TYPE;
8005 
8006     l_object_code     VARCHAR2(30) Default Null;
8007 
8008 
8009 
8010     l_ak_prompt  AK_ATTRIBUTES_VL.attribute_label_long%type;
8011 
8012     l_chr_id    NUMBER;
8013 
8014 
8015 
8016     row_cnt  number;
8017 
8018 
8019 
8020   BEGIN
8021 
8022 
8023 
8024   If okl_context.get_okc_org_id  is null then
8025 
8026     l_chr_id := p_chr_id;
8027 
8028     okl_context.set_okc_org_context(p_chr_id => l_chr_id );
8029 
8030   End If;
8031 
8032 
8033 
8034     x_return_status := OKC_API.START_ACTIVITY(
8035 
8036             p_api_name      => l_api_name,
8037 
8038             p_pkg_name      => g_pkg_name,
8039 
8040             p_init_msg_list => p_init_msg_list,
8041 
8042             l_api_version   => l_api_version,
8043 
8044             p_api_version   => p_api_version,
8045 
8046             p_api_type      => g_api_type,
8047 
8048             x_return_status => x_return_status);
8049 
8050 
8051 
8052     -- check if activity started successfully
8053 
8054     If (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
8055 
8056        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
8057 
8058     Elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
8059 
8060        raise OKC_API.G_EXCEPTION_ERROR;
8061 
8062     End If;
8063 
8064 
8065 
8066    OKC_API.END_ACTIVITY(x_msg_count    => x_msg_count,
8067 
8068              x_msg_data    => x_msg_data);
8069 
8070   EXCEPTION
8071 
8072     when OKC_API.G_EXCEPTION_ERROR then
8073 
8074       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
8075 
8076             p_api_name  => l_api_name,
8077 
8078             p_pkg_name  => g_pkg_name,
8079 
8080             p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
8081 
8082             x_msg_count => x_msg_count,
8083 
8084             x_msg_data  => x_msg_data,
8085 
8086             p_api_type  => g_api_type);
8087 
8088 
8089 
8090     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
8091 
8092       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
8093 
8094             p_api_name  => l_api_name,
8095 
8096             p_pkg_name  => g_pkg_name,
8097 
8098             p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
8099 
8100             x_msg_count => x_msg_count,
8101 
8102             x_msg_data  => x_msg_data,
8103 
8104             p_api_type  => g_api_type);
8105 
8106 
8107 
8108     when OTHERS then
8109 
8110       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
8111 
8112             p_api_name  => l_api_name,
8113 
8114             p_pkg_name  => g_pkg_name,
8115 
8116             p_exc_name  => 'OTHERS',
8117 
8118             x_msg_count => x_msg_count,
8119 
8120             x_msg_data  => x_msg_data,
8121 
8122             p_api_type  => g_api_type);
8123 
8124   END;
8125 
8126 
8127 
8128 Procedure Validate_Fee (p_api_version  IN   NUMBER,
8129 
8130                      p_init_msg_list       IN    VARCHAR2 default OKC_API.G_FALSE,
8131 
8132                      x_return_status       OUT  NOCOPY    VARCHAR2,
8133 
8134                      x_msg_count       OUT  NOCOPY    NUMBER,
8135 
8136                      x_msg_data               OUT  NOCOPY    VARCHAR2,
8137 
8138                      p_chr_id              IN    NUMBER,
8139 
8140                      p_cle_id              IN    NUMBER,
8141 
8142                      p_lty_code            IN   VARCHAR2,
8143 
8144                      p_item_id1            IN OUT NOCOPY VARCHAR2,
8145 
8146                      p_item_id2            IN OUT NOCOPY VARCHAR2,
8147 
8148                      p_item_name           IN   VARCHAR2,
8149 
8150                      p_item_object_code    IN OUT  NOCOPY VARCHAR2,
8151 
8152                      p_cpl_id              IN    NUMBER,
8153 
8154                      p_rle_code            IN    VARCHAR2,
8155 
8156                      p_party_id1             IN OUT NOCOPY VARCHAR2,
8157 
8158                      p_party_id2           IN OUT NOCOPY VARCHAR2,
8159 
8160                      p_party_name          IN   VARCHAR2,
8161 
8162                      p_party_object_code   IN OUT NOCOPY VARCHAR2,
8163 
8164                      p_amount              IN NUMBER
8165 
8166                      ) AS
8167 
8168     l_api_name            VARCHAR2(30) := 'validate_deal';
8169 
8170     l_api_version    CONSTANT NUMBER      := 1.0;
8171 
8172 
8173 
8174     l_template_yn        OKC_K_HEADERS_B.TEMPLATE_YN%TYPE;
8175 
8176     l_chr_type           OKC_K_HEADERS_B.CHR_TYPE%TYPE;
8177 
8178     l_contract_number    OKC_K_HEADERS_B.CHR_TYPE%TYPE;
8179 
8180     l_object_code     VARCHAR2(30) Default Null;
8181 
8182 
8183 
8184     l_ak_prompt  AK_ATTRIBUTES_VL.attribute_label_long%type;
8185 
8186     l_chr_id    NUMBER;
8187 
8188 
8189 
8190     row_cnt  number;
8191 
8192 
8193 
8194   BEGIN
8195 
8196 
8197 
8198   If okl_context.get_okc_org_id  is null then
8199 
8200     l_chr_id := p_chr_id;
8201 
8202     okl_context.set_okc_org_context(p_chr_id => l_chr_id );
8203 
8204   End If;
8205 
8206 
8207 
8208     x_return_status := OKC_API.START_ACTIVITY(
8209 
8210             p_api_name      => l_api_name,
8211 
8212             p_pkg_name      => g_pkg_name,
8213 
8214             p_init_msg_list => p_init_msg_list,
8215 
8216             l_api_version   => l_api_version,
8217 
8218             p_api_version   => p_api_version,
8219 
8220             p_api_type      => g_api_type,
8221 
8222             x_return_status => x_return_status);
8223 
8224 
8225 
8226     -- check if activity started successfully
8227 
8228     If (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
8229 
8230        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
8231 
8232     Elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
8233 
8234        raise OKC_API.G_EXCEPTION_ERROR;
8235 
8236     End If;
8237 
8238 
8239 
8240    OKC_API.END_ACTIVITY(x_msg_count    => x_msg_count,
8241 
8242              x_msg_data    => x_msg_data);
8243 
8244   EXCEPTION
8245 
8246     when OKC_API.G_EXCEPTION_ERROR then
8247 
8248       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
8249 
8250             p_api_name  => l_api_name,
8251 
8252             p_pkg_name  => g_pkg_name,
8253 
8254             p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
8255 
8256             x_msg_count => x_msg_count,
8257 
8258             x_msg_data  => x_msg_data,
8259 
8260             p_api_type  => g_api_type);
8261 
8262 
8263 
8264     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
8265 
8266       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
8267 
8268             p_api_name  => l_api_name,
8269 
8270             p_pkg_name  => g_pkg_name,
8271 
8272             p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
8273 
8274             x_msg_count => x_msg_count,
8275 
8276             x_msg_data  => x_msg_data,
8277 
8278             p_api_type  => g_api_type);
8279 
8280 
8281 
8282     when OTHERS then
8283 
8284       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
8285 
8286             p_api_name  => l_api_name,
8287 
8288             p_pkg_name  => g_pkg_name,
8289 
8290             p_exc_name  => 'OTHERS',
8291 
8292             x_msg_count => x_msg_count,
8293 
8294             x_msg_data  => x_msg_data,
8295 
8296             p_api_type  => g_api_type);
8297 
8298   END;
8299 
8300 
8301 
8302 Procedure Validate_Fee (p_api_version  IN   NUMBER,
8303 
8304                      p_init_msg_list       IN    VARCHAR2 default OKC_API.G_FALSE,
8305 
8306                      x_return_status       OUT  NOCOPY    VARCHAR2,
8307 
8308                      x_msg_count       OUT  NOCOPY    NUMBER,
8309 
8310                      x_msg_data               OUT  NOCOPY    VARCHAR2,
8311 
8312                      p_chr_id              IN    NUMBER,
8313 
8314                      p_cle_id              IN    NUMBER,
8315 
8316                      p_amount              IN   NUMBER,
8317 
8318                      p_init_direct_cost    IN   NUMBER
8319 
8320                      ) AS
8321 
8322     l_api_name            VARCHAR2(30) := 'validate_fee';
8323 
8324     l_api_version    CONSTANT NUMBER      := 1.0;
8325 
8326 
8327 
8328     l_object_code     VARCHAR2(30) Default Null;
8329 
8330     l_ak_prompt  AK_ATTRIBUTES_VL.attribute_label_long%type;
8331 
8332     l_chr_id    NUMBER;
8333 
8334 
8335 
8336   BEGIN
8337 
8338 
8339 
8340   l_chr_id := p_chr_id;
8341 
8342   If okl_context.get_okc_org_id  is null then
8343 
8344     okl_context.set_okc_org_context(p_chr_id => l_chr_id );
8345 
8346   End If;
8347 
8348 
8349 
8350   x_return_status := OKC_API.START_ACTIVITY(
8351 
8352             p_api_name      => l_api_name,
8353 
8354             p_pkg_name      => g_pkg_name,
8355 
8356             p_init_msg_list => p_init_msg_list,
8357 
8358             l_api_version   => l_api_version,
8359 
8360             p_api_version   => p_api_version,
8361 
8362             p_api_type      => g_api_type,
8363 
8364             x_return_status => x_return_status);
8365 
8366 
8367 
8368   -- check if activity started successfully
8369 
8370   If (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
8371 
8372        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
8373 
8374   Elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
8375 
8376        raise OKC_API.G_EXCEPTION_ERROR;
8377 
8378   End If;
8379 
8380 
8381 
8382   IF ( (p_init_direct_cost is not null) and (p_init_direct_cost > p_amount)) THEN
8383 
8384 
8385 
8386       x_return_status := OKC_API.G_RET_STS_ERROR;
8387 
8388       OKC_API.SET_MESSAGE(        p_app_name => g_app_name
8389 
8390                   , p_msg_name => 'OKL_LLA_IDC_FEE'
8391 
8392                  );
8393 
8394       raise OKC_API.G_EXCEPTION_ERROR;
8395 
8396 
8397 
8398   END IF;
8399 
8400 
8401 
8402   x_return_status := OKC_API.G_RET_STS_SUCCESS;
8403 
8404 
8405 
8406   OKC_API.END_ACTIVITY(x_msg_count    => x_msg_count,
8407 
8408              x_msg_data    => x_msg_data);
8409 
8410   EXCEPTION
8411 
8412     when OKC_API.G_EXCEPTION_ERROR then
8413 
8414       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
8415 
8416             p_api_name  => l_api_name,
8417 
8418             p_pkg_name  => g_pkg_name,
8419 
8420             p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
8421 
8422             x_msg_count => x_msg_count,
8423 
8424             x_msg_data  => x_msg_data,
8425 
8426             p_api_type  => g_api_type);
8427 
8428 
8429 
8430     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
8431 
8432       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
8433 
8434             p_api_name  => l_api_name,
8435 
8436             p_pkg_name  => g_pkg_name,
8437 
8438             p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
8439 
8440             x_msg_count => x_msg_count,
8441 
8442             x_msg_data  => x_msg_data,
8443 
8444             p_api_type  => g_api_type);
8445 
8446 
8447 
8448     when OTHERS then
8449 
8450       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
8451 
8452             p_api_name  => l_api_name,
8453 
8454             p_pkg_name  => g_pkg_name,
8455 
8456             p_exc_name  => 'OTHERS',
8457 
8458             x_msg_count => x_msg_count,
8459 
8460             x_msg_data  => x_msg_data,
8461 
8462             p_api_type  => g_api_type);
8463 
8464   END;
8465 
8466 
8467 
8468 
8469 
8470 ----------Validation for Roles---------------------
8471 
8472 --This Procedure validates jtot object detail for roles.
8473 
8474 -----------------------------------------------------
8475 
8476 
8477 
8478 PROCEDURE  VALIDATE_ROLE_JTOT (p_api_version         IN   NUMBER,
8479 
8480                                p_init_msg_list       IN    VARCHAR2 default OKC_API.G_FALSE,
8481 
8482                                x_return_status       OUT  NOCOPY    VARCHAR2,
8483 
8484                                x_msg_count       OUT  NOCOPY    NUMBER,
8485 
8486                                x_msg_data             OUT  NOCOPY    VARCHAR2,
8487 
8488                                p_object_name    IN VARCHAR2,
8489 
8490                                p_id1            IN VARCHAR2,
8491 
8492                                p_id2            IN VARCHAR2)
8493 
8494 
8495 
8496 IS
8497 
8498 
8499 
8500 
8501 
8502 
8503 
8504 ----OKX_OPERUNIT
8505 
8506 
8507 
8508 CURSOR operunit_csr IS
8509 
8510 select '1'
8511 
8512 From   OKX_ORGANIZATION_DEFS_V OKX_OPERUNIT
8513 
8514 WHERE    OKX_OPERUNIT.ORGANIZATION_TYPE = 'OPERATING_UNIT' AND
8515 
8516          OKX_OPERUNIT.INFORMATION_TYPE = 'Operating Unit Information'
8517 
8518 AND      ID1 = p_id1
8519 
8520 AND      ID2 = p_id2;
8521 
8522 
8523 
8524 
8525 
8526 --OKX_VENDOR
8527 
8528 
8529 
8530 CURSOR vendor_csr IS
8531 
8532 select '1'
8533 
8534 from OKX_VENDORS_V OKX_VENDOR
8535 
8536 WHERE ID1 = p_id1
8537 
8538 AND   ID2 = p_id2;
8539 
8540 
8541 
8542 
8543 
8544 --OKX_PARTY
8545 
8546 
8547 
8548 CURSOR party_csr IS
8549 
8550 select '1'
8551 
8552 FROM OKX_PARTIES_V OKX_PARTY
8553 
8554 WHERE ID1 = p_id1
8555 
8556 AND   ID2 = p_id2;
8557 
8558 
8559 
8560 l_exist VARCHAR2(1);
8561 
8562 
8563 
8564 l_api_version  NUMBER := 1.0;
8565 
8566 l_api_name  CONSTANT VARCHAR2(30) := 'VALIDATE_ROLE_JTOT';
8567 
8568 
8569 
8570 
8571 
8572 BEGIN
8573 
8574 
8575 
8576 x_return_status := OKC_API.START_ACTIVITY(
8577 
8578             p_api_name      => l_api_name,
8579 
8580             p_pkg_name      => g_pkg_name,
8581 
8582             p_init_msg_list => p_init_msg_list,
8583 
8584             l_api_version   => l_api_version,
8585 
8586             p_api_version   => p_api_version,
8587 
8588             p_api_type      => g_api_type,
8589 
8590             x_return_status => x_return_status);
8591 
8592 
8593 
8594 ---- Validate Object Name
8595 
8596 
8597 
8598 
8599 
8600    IF (p_object_name IS NOT NULL) AND (p_object_name <> OKC_API.G_MISS_CHAR) AND
8601 
8602       (p_id1 IS NOT NULL) AND (p_id1 <> OKC_API.G_MISS_CHAR)  THEN
8603 
8604 
8605 
8606        IF p_object_name = 'OKX_OPERUNIT' THEN
8607 
8608           OPEN operunit_csr;
8609 
8610           FETCH operunit_csr INTO l_exist;
8611 
8612           CLOSE operunit_csr;
8613 
8614        ELSIF p_object_name = 'OKX_VENDOR' THEN
8615 
8616           OPEN vendor_csr;
8617 
8618           FETCH vendor_csr INTO l_exist;
8619 
8620           CLOSE vendor_csr;
8621 
8622        ELSIF p_object_name =  'OKX_PARTY' THEN
8623 
8624           OPEN party_csr;
8625 
8626           FETCH party_csr INTO l_exist;
8627 
8628           CLOSE party_csr;
8629 
8630        ELSE
8631 
8632            OKC_API.Set_Message(p_app_name     => G_APP_NAME,
8633 
8634                                p_msg_name     => 'OKL_LLA_INVALID_OBJ',
8635 
8636                                p_token1       => 'OBJECT_NAME',
8637 
8638                                p_token1_value => p_object_name);
8639 
8640            RAISE OKC_API.G_EXCEPTION_ERROR;
8641 
8642       END IF;
8643 
8644 
8645 
8646       IF (l_exist IS NULL)  THEN
8647 
8648            OKC_API.Set_Message(p_app_name     => G_APP_NAME,
8649 
8650                                p_msg_name     => 'OKL_LLA_INVALID_IDS',
8651 
8652                                p_token1       => 'OBJECT_NAME',
8653 
8654                                p_token1_value => p_object_name);
8655 
8656 
8657 
8658            RAISE OKC_API.G_EXCEPTION_ERROR;
8659 
8660      END IF;
8661 
8662 
8663 
8664  END IF;
8665 
8666 
8667 
8668      OKC_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
8669 
8670 
8671 
8672   EXCEPTION
8673 
8674     when OKC_API.G_EXCEPTION_ERROR then
8675 
8676         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
8677 
8678               p_api_name  => l_api_name,
8679 
8680               p_pkg_name  => g_pkg_name,
8681 
8682               p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
8683 
8684               x_msg_count => x_msg_count,
8685 
8686               x_msg_data  => x_msg_data,
8687 
8688               p_api_type  => g_api_type);
8689 
8690       when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
8691 
8692         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
8693 
8694               p_api_name  => l_api_name,
8695 
8696               p_pkg_name  => g_pkg_name,
8697 
8698               p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
8699 
8700               x_msg_count => x_msg_count,
8701 
8702               x_msg_data  => x_msg_data,
8703 
8704               p_api_type  => g_api_type);
8705 
8706 
8707 
8708       when OTHERS then
8709 
8710         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
8711 
8712               p_api_name  => l_api_name,
8713 
8714               p_pkg_name  => g_pkg_name,
8715 
8716               p_exc_name  => 'OTHERS',
8717 
8718               x_msg_count => x_msg_count,
8719 
8720               x_msg_data  => x_msg_data,
8721 
8722               p_api_type  => g_api_type);
8723 
8724 
8725 
8726 END VALIDATE_ROLE_JTOT;
8727 
8728 
8729 
8730 
8731 
8732 ----------------------------------------------------------------------
8733 
8734 ----------Validation for Contacts-------------------------------------
8735 
8736 --This function validates jtot object detail for Contact.
8737 
8738 ----------------------------------------------------------------------
8739 
8740 
8741 
8742 
8743 
8744 PROCEDURE  VALIDATE_CONTACT_JTOT (p_api_version         IN   NUMBER,
8745 
8746                                   p_init_msg_list       IN    VARCHAR2 default OKC_API.G_FALSE,
8747 
8748                                   x_return_status       OUT  NOCOPY    VARCHAR2,
8749 
8750                                   x_msg_count       OUT  NOCOPY    NUMBER,
8751 
8752                                   x_msg_data             OUT  NOCOPY    VARCHAR2,
8753 
8754                                   p_object_name    IN VARCHAR2,
8755 
8756                                   p_id1            IN VARCHAR2,
8757 
8758                                   p_id2            IN VARCHAR2)
8759 
8760 
8761 
8762 IS
8763 
8764 
8765 
8766 
8767 
8768 --OKX_SALEPERS
8769 
8770 
8771 
8772 CURSOR salepers_csr IS
8773 
8774 select '1' from
8775 
8776 OKX_SALESREPS_V OKX_SALEPERS
8777 
8778 WHERE
8779 
8780 ((nvl(OKX_SALEPERS.ORG_ID, -99) =  nvl(mo_global.get_current_org_id, -99))
8781 
8782 or (nvl(mo_global.get_current_org_id, -99) = -99))
8783 
8784 AND ID1 = p_id1
8785 
8786 AND ID2 = p_id2;
8787 
8788 
8789 
8790 
8791 
8792 --OKX_PCONTACT
8793 
8794 
8795 
8796 CURSOR pcontact_csr IS
8797 
8798 select '1' from
8799 
8800 OKX_PARTY_CONTACTS_V OKX_PCONTACT
8801 
8802 WHERE ID1 = p_id1
8803 
8804 AND   ID2 = p_id2;
8805 
8806 
8807 
8808 l_Exist varchar2(1);
8809 
8810 l_api_version  NUMBER := 1.0;
8811 
8812 l_api_name  CONSTANT VARCHAR2(30) := 'VALIDATE_CONTACT_JTOT';
8813 
8814 
8815 
8816 
8817 
8818 
8819 
8820 BEGIN
8821 
8822 
8823 
8824 x_return_status := OKC_API.START_ACTIVITY(
8825 
8826             p_api_name      => l_api_name,
8827 
8828             p_pkg_name      => g_pkg_name,
8829 
8830             p_init_msg_list => p_init_msg_list,
8831 
8832             l_api_version   => l_api_version,
8833 
8834             p_api_version   => p_api_version,
8835 
8836             p_api_type      => g_api_type,
8837 
8838             x_return_status => x_return_status);
8839 
8840 
8841 
8842 ---- Validate Object Name
8843 
8844 
8845 
8846    IF (p_object_name IS NOT NULL) AND (p_object_name <> OKC_API.G_MISS_CHAR) AND
8847 
8848       (p_id1 IS NOT NULL) AND (p_id1 <> OKC_API.G_MISS_CHAR)  THEN
8849 
8850 
8851 
8852        IF p_object_name = 'OKX_SALEPERS' THEN
8853 
8854           OPEN salepers_csr;
8855 
8856           FETCH salepers_csr INTO l_exist;
8857 
8858           CLOSE salepers_csr;
8859 
8860        ELSIF p_object_name =  'OKX_PCONTACT' THEN
8861 
8862           OPEN pcontact_csr;
8863 
8864           FETCH pcontact_csr INTO l_exist;
8865 
8866           CLOSE pcontact_csr;
8867 
8868        ELSE
8869 
8870            OKC_API.Set_Message(p_app_name     => G_APP_NAME,
8871 
8872                                p_msg_name     => 'OKL_LLA_INVALID_OBJ',
8873 
8874                                p_token1       => 'OBJECT_NAME',
8875 
8876                                p_token1_value => p_object_name);
8877 
8878            RAISE OKC_API.G_EXCEPTION_ERROR;
8879 
8880       END IF;
8881 
8882 
8883 
8884      IF (l_exist IS NULL)  THEN
8885 
8886            OKC_API.Set_Message(p_app_name     => G_APP_NAME,
8887 
8888                                p_msg_name     => 'OKL_LLA_INVALID_IDS',
8889 
8890                                p_token1       => 'OBJECT_NAME',
8891 
8892                                p_token1_value => p_object_name);
8893 
8894 
8895 
8896            RAISE OKC_API.G_EXCEPTION_ERROR;
8897 
8898      END IF;
8899 
8900 
8901 
8902   END IF;
8903 
8904 
8905 
8906 
8907 
8908      OKC_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
8909 
8910 
8911 
8912   EXCEPTION
8913 
8914     when OKC_API.G_EXCEPTION_ERROR then
8915 
8916         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
8917 
8918               p_api_name  => l_api_name,
8919 
8920               p_pkg_name  => g_pkg_name,
8921 
8922               p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
8923 
8924               x_msg_count => x_msg_count,
8925 
8926               x_msg_data  => x_msg_data,
8927 
8928               p_api_type  => g_api_type);
8929 
8930       when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
8931 
8932         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
8933 
8934               p_api_name  => l_api_name,
8935 
8936               p_pkg_name  => g_pkg_name,
8937 
8938               p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
8939 
8940               x_msg_count => x_msg_count,
8941 
8942               x_msg_data  => x_msg_data,
8943 
8944               p_api_type  => g_api_type);
8945 
8946 
8947 
8948       when OTHERS then
8949 
8950         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
8951 
8952               p_api_name  => l_api_name,
8953 
8954               p_pkg_name  => g_pkg_name,
8955 
8956               p_exc_name  => 'OTHERS',
8957 
8958               x_msg_count => x_msg_count,
8959 
8960               x_msg_data  => x_msg_data,
8961 
8962               p_api_type  => g_api_type);
8963 
8964 END VALIDATE_CONTACT_JTOT;
8965 
8966 
8967 
8968 
8969 
8970 
8971 
8972 ----------------------------------------------------------------------
8973 
8974 ----------Validation for Line Styles----------------------------------
8975 
8976 ----------------------------------------------------------------------
8977 
8978 
8979 
8980 
8981 
8982 PROCEDURE  VALIDATE_STYLE_JTOT (p_api_version         IN   NUMBER,
8983 
8984                                p_init_msg_list       IN      VARCHAR2  default OKC_API.G_FALSE,
8985 
8986                                x_return_status       OUT  NOCOPY    VARCHAR2,
8987 
8988                                x_msg_count       OUT  NOCOPY    NUMBER,
8989 
8990                                x_msg_data             OUT  NOCOPY    VARCHAR2,
8991 
8992                                p_object_name       IN   VARCHAR2,
8993 
8994                                p_id1               IN   VARCHAR2,
8995 
8996                                p_id2               IN   VARCHAR2)
8997 
8998 IS
8999 
9000 
9001 
9002 --OKL_STRMTYP
9003 
9004 
9005 
9006 CURSOR strmtyp_csr IS
9007 
9008 SELECT '1'
9009 
9010 from OKL_STRMTYP_SOURCE_V OKL_STRMTYP
9011 
9012 where OKL_STRMTYP.STATUS = 'A'
9013 
9014 AND    ID1 = p_id1
9015 
9016 AND   ID2 = p_id2;
9017 
9018 
9019 
9020 
9021 
9022 --OKL_USAGE
9023 
9024 
9025 
9026 CURSOR usage_csr IS
9027 
9028 SELECT '1'
9029 
9030 from OKL_USAGE_LINES_V OKL_USAGE
9031 
9032 WHERE ID1 = p_id1
9033 
9034 AND   ID2 = p_id2;
9035 
9036 
9037 
9038 
9039 
9040 
9041 
9042 ---OKX_ASSET
9043 
9044 
9045 
9046 CURSOR asset_csr IS
9047 
9048 SELECT '1'
9049 
9050 from OKX_ASSETS_V OKX_ASSET
9051 
9052 WHERE ID1 = p_id1
9053 
9054 AND   ID2 = p_id2;
9055 
9056 
9057 
9058 
9059 
9060 --OKX_COVASST
9061 
9062 
9063 
9064 CURSOR covasst_csr IS
9065 
9066 SELECT '1'
9067 
9068 from OKX_COVERED_ASSET_V OKX_COVASST
9069 
9070 where OKX_COVASST.OKC_LINE_STATUS NOT IN ('EXPIRED','TERMINATED','CANCELLED')
9071 
9072 AND   ID1 = p_id1
9073 
9074 AND   ID2 = p_id2;
9075 
9076 
9077 
9078 ---OKX_IB_ITEM
9079 
9080 
9081 
9082 CURSOR ib_item_csr IS
9083 
9084 SELECT '1'
9085 
9086 from OKX_INSTALL_ITEMS_V OKX_IB_ITEM
9087 
9088 WHERE   ID1 = p_id1
9089 
9090 AND   ID2 = p_id2;
9091 
9092 
9093 
9094 
9095 
9096 --OKX_LEASE
9097 
9098 
9099 
9100 CURSOR lease_csr IS
9101 
9102 SELECT '1'
9103 
9104 from OKX_CONTRACTS_V OKX_LEASE
9105 
9106 where OKX_LEASE.SCS_CODE IN ('LEASE','LOAN') AND NVL(OKX_LEASE.ORG_ID, -99) = mo_global.get_current_org_id
9107 
9108 AND   ID1 = p_id1
9109 
9110 AND   ID2 = p_id2;
9111 
9112 
9113 
9114 
9115 
9116 --OKX_SERVICE
9117 
9118 
9119 
9120 
9121 
9122 CURSOR service_csr IS
9123 
9124 SELECT '1'
9125 
9126 from OKX_SYSTEM_ITEMS_V OKX_SERVICE
9127 
9128 where OKX_SERVICE.VENDOR_WARRANTY_FLAG='N' AND OKX_SERVICE.SERVICE_ITEM_FLAG='Y' AND OKX_SERVICE.ORGANIZATION_ID = SYS_CONTEXT('OKC_CONTEXT','ORGANIZATION_ID')
9129 
9130 AND   ID1 = p_id1
9131 
9132 AND   ID2 = p_id2;
9133 
9134 
9135 
9136 
9137 
9138 --OKX_SYSITEM
9139 
9140 
9141 
9142 CURSOR system_csr IS
9143 
9144 SELECT '1'
9145 
9146 from OKX_SYSTEM_ITEMS_V OKX_SYSITEM
9147 
9148 where
9149 -- 4374085
9150 -- OKX_SYSITEM.ORGANIZATION_ID = SYS_CONTEXT('OKC_CONTEXT','ORGANIZATION_ID')
9151 
9152 --AND
9153 ID1 = p_id1
9154 
9155 AND   ID2 = p_id2;
9156 
9157 Cursor ins_policy_csr is
9158 
9159 SELECT  '1'
9160 
9161 FROM   OKL_I_POLICIES_V
9162 
9163 WHERE  ID1  = p_id1
9164 
9165 AND    ID2  = p_id2;
9166 
9167 
9168 
9169 l_Exist VARCHAR2(1);
9170 
9171 l_api_version  NUMBER := 1.0;
9172 
9173 l_api_name  CONSTANT VARCHAR2(30) := 'VALIDATE_STYLE_JTOT';
9174 
9175 
9176 BEGIN
9177 
9178 
9179 
9180    x_return_status := OKC_API.START_ACTIVITY(
9181 
9182             p_api_name      => l_api_name,
9183 
9184             p_pkg_name      => g_pkg_name,
9185 
9186             p_init_msg_list => p_init_msg_list,
9187 
9188             l_api_version   => l_api_version,
9189 
9190             p_api_version   => p_api_version,
9191 
9192             p_api_type      => g_api_type,
9193 
9194             x_return_status => x_return_status);
9195 
9196 
9197 
9198    IF (p_object_name IS NOT NULL) AND (p_object_name <> OKC_API.G_MISS_CHAR) AND
9199 
9200       (p_id1 IS NOT NULL) AND (p_id1 <> OKC_API.G_MISS_CHAR)  THEN
9201 
9202 
9203 
9204     IF p_object_name =  'OKL_STRMTYP' THEN
9205 
9206           OPEN strmtyp_csr;
9207 
9208           FETCH strmtyp_csr INTO l_exist;
9209 
9210           CLOSE strmtyp_csr;
9211 
9212        ELSIF p_object_name =  'OKL_USAGE' THEN
9213 
9214           OPEN usage_csr;
9215 
9216           FETCH usage_csr INTO l_exist;
9217 
9218           CLOSE usage_csr;
9219 
9220        ELSIF p_object_name =  'OKX_ASSET' THEN
9221 
9222           OPEN asset_csr;
9223 
9224           FETCH asset_csr INTO l_exist;
9225 
9226           CLOSE asset_csr;
9227 
9228        ELSIF p_object_name =  'OKX_COVASST' THEN
9229 
9230           OPEN covasst_csr;
9231 
9232           FETCH covasst_csr INTO l_exist;
9233 
9234           CLOSE covasst_csr;
9235 
9236        ELSIF p_object_name =  'OKX_IB_ITEM' THEN
9237 
9238           OPEN ib_item_csr;
9239 
9240           FETCH ib_item_csr INTO l_exist;
9241 
9242           CLOSE ib_item_csr;
9243 
9244        ELSIF p_object_name =  'OKX_LEASE' THEN
9245 
9246           OPEN lease_csr;
9247 
9248           FETCH lease_csr INTO l_exist;
9249 
9250           CLOSE lease_csr;
9251 
9252        ELSIF p_object_name =  'OKX_SERVICE' THEN
9253 
9254           OPEN service_csr;
9255 
9256           FETCH service_csr INTO l_exist;
9257 
9258           CLOSE service_csr;
9259 
9260        ELSIF p_object_name =  'OKX_SYSITEM' THEN
9261 
9262           OPEN system_csr;
9263 
9264           FETCH system_csr INTO l_exist;
9265 
9266           CLOSE system_csr;
9267 
9268        ELSIF p_object_name =  'OKL_INPOLICY' THEN
9269 
9270           OPEN ins_policy_csr;
9271 
9272           FETCH ins_policy_csr INTO l_exist;
9273 
9274           CLOSE ins_policy_csr;
9275 
9276        ELSE
9277 
9278            OKC_API.Set_Message(p_app_name     => G_APP_NAME,
9279 
9280                                p_msg_name     => 'OKL_LLA_INVALID_OBJ',
9281 
9282                                p_token1       => 'OBJECT_NAME',
9283 
9284                                p_token1_value => p_object_name);
9285 
9286            RAISE OKC_API.G_EXCEPTION_ERROR;
9287 
9288       END IF;
9289 
9290 
9291 
9292      IF (l_exist IS NULL) THEN
9293 
9294            OKC_API.Set_Message(p_app_name     => G_APP_NAME,
9295 
9296                                p_msg_name     => 'OKL_LLA_INVALID_IDS',
9297 
9298                                p_token1       => 'OBJECT_NAME',
9299 
9300                                p_token1_value => p_object_name);
9301 
9302 
9303 
9304            RAISE OKC_API.G_EXCEPTION_ERROR;
9305 
9306      END IF;
9307 
9308 
9309 
9310   END IF;
9311 
9312 
9313 
9314      OKC_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
9315 
9316 
9317 
9318   EXCEPTION
9319 
9320     when OKC_API.G_EXCEPTION_ERROR then
9321 
9322         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
9323 
9324               p_api_name  => l_api_name,
9325 
9326               p_pkg_name  => g_pkg_name,
9327 
9328               p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
9329 
9330               x_msg_count => x_msg_count,
9331 
9332               x_msg_data  => x_msg_data,
9333 
9334               p_api_type  => g_api_type);
9335 
9336       when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
9337 
9338         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
9339 
9340               p_api_name  => l_api_name,
9341 
9342               p_pkg_name  => g_pkg_name,
9343 
9344               p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
9345 
9346               x_msg_count => x_msg_count,
9347 
9348               x_msg_data  => x_msg_data,
9349 
9350               p_api_type  => g_api_type);
9351 
9352 
9353 
9354       when OTHERS then
9355 
9356         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
9357 
9358               p_api_name  => l_api_name,
9359 
9360               p_pkg_name  => g_pkg_name,
9361 
9362               p_exc_name  => 'OTHERS',
9363 
9364               x_msg_count => x_msg_count,
9365 
9366               x_msg_data  => x_msg_data,
9367 
9368               p_api_type  => g_api_type);
9369 
9370 
9371 
9372 END VALIDATE_STYLE_JTOT;
9373 
9374 -- Start of comments
9375 --
9376 -- Procedure Name  : validate_crdtln_wrng
9377 -- Description     : creates a deal based on the information that comes
9378 --                   from the deal creation screen
9379 -- Business Rules  :
9380 -- Parameters      :
9381 -- Version         : 1.0
9382 -- End of comments
9383 Procedure validate_crdtln_wrng (p_api_version  IN   NUMBER,
9384                      p_init_msg_list       IN   VARCHAR2 default OKC_API.G_FALSE,
9385                      x_return_status       OUT  NOCOPY  VARCHAR2,
9386                      x_msg_count           OUT  NOCOPY  NUMBER,
9387                      x_msg_data            OUT  NOCOPY  VARCHAR2,
9388                      p_chr_id              IN   NUMBER
9389                      ) AS
9390     l_api_name        VARCHAR2(30) := 'validate_crdtln_wrng';
9391     l_api_version     CONSTANT NUMBER     := 1.0;
9392 
9393     l_mla_cl_gvr_id         okc_k_headers_b.id%type := null;
9394     l_k_cl_gvr_id           okc_k_headers_b.id%type := null;
9395     l_chr_id                okc_k_headers_b.id%type := null;
9396 
9397     cursor is_k_cl_gvr_exsts_csr is
9398      select gvr.id
9399      from   okc_governances gvr,
9400             okc_k_headers_b chr,
9401             okc_k_headers_b cl
9402      where  chr.id = gvr.chr_id
9403      and    chr.id = gvr.dnz_chr_id
9404      and    gvr.cle_id is null
9405      and    gvr.chr_id_referred = cl.id
9406      and    cl.scs_code = 'CREDITLINE_CONTRACT'
9407      and    chr.id = p_chr_id;
9408 
9409     cursor is_mla_cl_gvr_exsts_csr is
9410      select gvr.id
9411      from   okc_governances gvr,
9412             okc_k_headers_b chr,
9413             okc_k_headers_b mla
9414      where  chr.id = gvr.chr_id
9415      and    chr.id = gvr.dnz_chr_id
9416      and    gvr.cle_id is null
9417      and    gvr.chr_id_referred = mla.id
9418      and    mla.scs_code = 'MASTER_LEASE'
9419      and    chr.id = p_chr_id
9420      and    exists (select 1
9421                      from   okc_governances cl_gvr,
9422                             okc_k_headers_b cl
9423                      where   cl_gvr.chr_id = mla.id
9424                      and     cl_gvr.cle_id is null
9425                      and     cl_gvr.chr_id_referred = cl.id
9426                      and     cl.scs_code = 'CREDITLINE_CONTRACT'
9427                    );
9428 
9429 
9430   BEGIN
9431 
9432   l_chr_id := p_chr_id;
9433   If okl_context.get_okc_org_id  is null then
9434         okl_context.set_okc_org_context(p_chr_id => l_chr_id );
9435   End If;
9436 
9437   x_return_status := OKC_API.START_ACTIVITY(
9438                         p_api_name      => l_api_name,
9439                         p_pkg_name      => g_pkg_name,
9440                         p_init_msg_list => p_init_msg_list,
9441                         l_api_version   => l_api_version,
9442                         p_api_version   => p_api_version,
9443                         p_api_type      => g_api_type,
9444                         x_return_status => x_return_status);
9445 
9446   -- check if activity started successfully
9447   If (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
9448        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
9449   Elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
9450        raise OKC_API.G_EXCEPTION_ERROR;
9451   End If;
9452 
9453 -- check the contract master lease cl
9454   l_mla_cl_gvr_id := null;
9455   open  is_mla_cl_gvr_exsts_csr;
9456   fetch is_mla_cl_gvr_exsts_csr into l_mla_cl_gvr_id;
9457   close is_mla_cl_gvr_exsts_csr;
9458 
9459 -- check the contract credit line
9460   l_k_cl_gvr_id := null;
9461   open  is_k_cl_gvr_exsts_csr;
9462   fetch is_k_cl_gvr_exsts_csr into l_k_cl_gvr_id;
9463   close is_k_cl_gvr_exsts_csr;
9464 
9465   --if both exists, warning
9466   If ( l_mla_cl_gvr_id is not null and l_k_cl_gvr_id is not null) Then
9467          x_return_status := OKC_API.g_ret_sts_error;
9468          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
9469                                 , p_msg_name => 'OKL_MLA_CRDTLN'
9470                            );
9471          raise OKC_API.G_EXCEPTION_ERROR;
9472   End If;
9473 
9474   x_return_status := OKC_API.G_RET_STS_SUCCESS;
9475 
9476   OKC_API.END_ACTIVITY(x_msg_count      => x_msg_count,
9477                          x_msg_data     => x_msg_data);
9478   EXCEPTION
9479     when OKC_API.G_EXCEPTION_ERROR then
9480       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
9481                         p_api_name  => l_api_name,
9482                         p_pkg_name  => g_pkg_name,
9483                         p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
9484                         x_msg_count => x_msg_count,
9485                         x_msg_data  => x_msg_data,
9486                         p_api_type  => g_api_type);
9487 
9488     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
9489       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
9490                         p_api_name  => l_api_name,
9491                         p_pkg_name  => g_pkg_name,
9492                         p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
9493                         x_msg_count => x_msg_count,
9494                         x_msg_data  => x_msg_data,
9495                         p_api_type  => g_api_type);
9496 
9497     when OTHERS then
9498       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
9499                         p_api_name  => l_api_name,
9500                         p_pkg_name  => g_pkg_name,
9501                         p_exc_name  => 'OTHERS',
9502                         x_msg_count => x_msg_count,
9503                         x_msg_data  => x_msg_data,
9504                         p_api_type  => g_api_type);
9505   END;
9506 
9507 -- Start of comments
9508 --
9509 -- Procedure Name  : validate_crdtln_err
9510 -- Description     : creates a deal based on the information that comes
9511 --                   from the deal creation screen
9512 -- Business Rules  :
9513 -- Parameters      :
9514 -- Version         : 1.0
9515 -- End of comments
9516 Procedure validate_crdtln_err (p_api_version  IN   NUMBER,
9517                      p_init_msg_list       IN   VARCHAR2 default OKC_API.G_FALSE,
9518                      x_return_status       OUT  NOCOPY  VARCHAR2,
9519                      x_msg_count           OUT  NOCOPY  NUMBER,
9520                      x_msg_data            OUT  NOCOPY  VARCHAR2,
9521                      p_chr_id              IN   NUMBER
9522                      ) AS
9523     l_api_name        VARCHAR2(30) := 'validate_crdtln_err';
9524     l_api_version     CONSTANT NUMBER     := 1.0;
9525 
9526     l_ak_prompt       AK_ATTRIBUTES_VL.attribute_label_long%type;
9527     l_chr_id          okc_k_headers_b.id%type := null;
9528     l_k_cl_no         okc_k_headers_b.contract_number%type := null;
9529     l_mla_no          okc_k_headers_b.contract_number%type := null;
9530     l_deal_type       okl_k_headers.deal_type%type := null;
9531 
9532     cursor get_deal_type_csr is
9533      select chr.deal_type
9534      from   okl_k_headers chr
9535      where  chr.id = p_chr_id;
9536 
9537     cursor is_cl_exsts_csr is
9538      select cl.contract_number
9539      from   okc_governances gvr,
9540             okc_k_headers_b chr,
9541             okc_k_headers_b cl
9542      where  chr.id = gvr.chr_id
9543      and    chr.id = gvr.dnz_chr_id
9544      and    gvr.cle_id is null
9545      and    gvr.chr_id_referred = cl.id
9546      and    cl.scs_code = 'CREDITLINE_CONTRACT'
9547      and    chr.id = p_chr_id;
9548 
9549     cursor is_mla_exsts_csr is
9550      select mla.contract_number
9551      from   okc_governances gvr,
9552             okc_k_headers_b chr,
9553             okc_k_headers_b mla
9554      where  chr.id = gvr.chr_id
9555      and    chr.id = gvr.dnz_chr_id
9556      and    gvr.cle_id is null
9557      and    gvr.chr_id_referred = mla.id
9558      and    mla.scs_code = 'MASTER_LEASE'
9559      and    chr.id = p_chr_id;
9560 
9561 
9562   BEGIN
9563 
9564   l_chr_id := p_chr_id;
9565   If okl_context.get_okc_org_id  is null then
9566         okl_context.set_okc_org_context(p_chr_id => l_chr_id );
9567   End If;
9568 
9569   x_return_status := OKC_API.START_ACTIVITY(
9570                         p_api_name      => l_api_name,
9571                         p_pkg_name      => g_pkg_name,
9572                         p_init_msg_list => p_init_msg_list,
9573                         l_api_version   => l_api_version,
9574                         p_api_version   => p_api_version,
9575                         p_api_type      => g_api_type,
9576                         x_return_status => x_return_status);
9577 
9578   -- check if activity started successfully
9579   If (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
9580        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
9581   Elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
9582        raise OKC_API.G_EXCEPTION_ERROR;
9583   End If;
9584 
9585 -- get contract deal type
9586   l_deal_type := null;
9587   open get_deal_type_csr;
9588   fetch get_deal_type_csr into l_deal_type;
9589   close get_deal_type_csr;
9590 
9591 -- check for the contract credit line
9592   l_k_cl_no := null;
9593   open  is_cl_exsts_csr;
9594   fetch is_cl_exsts_csr into l_k_cl_no;
9595   close is_cl_exsts_csr;
9596 
9597 -- check the contract master lease check
9598   l_mla_no := null;
9599   open  is_mla_exsts_csr;
9600   fetch is_mla_exsts_csr into l_mla_no;
9601   close is_mla_exsts_csr;
9602 
9603   validate_creditline(
9604        p_api_version    => p_api_version,
9605        p_init_msg_list  => p_init_msg_list,
9606        x_return_status  => x_return_status,
9607        x_msg_count      => x_msg_count,
9608        x_msg_data       => x_msg_data,
9609        p_chr_id         => p_chr_id,
9610        p_deal_type      => l_deal_type,
9611        p_mla_no         => l_mla_no,
9612        p_cl_no          => l_k_cl_no
9613        );
9614 
9615      If (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
9616         raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
9617      Elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
9618         raise OKC_API.G_EXCEPTION_ERROR;
9619      End If;
9620 
9621   x_return_status := OKC_API.G_RET_STS_SUCCESS;
9622 
9623   OKC_API.END_ACTIVITY(x_msg_count      => x_msg_count, x_msg_data      => x_msg_data);
9624 
9625   EXCEPTION
9626     when OKC_API.G_EXCEPTION_ERROR then
9627       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
9628                         p_api_name  => l_api_name,
9629                         p_pkg_name  => g_pkg_name,
9630                         p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
9631                         x_msg_count => x_msg_count,
9632                         x_msg_data  => x_msg_data,
9633                         p_api_type  => g_api_type);
9634 
9635     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
9636       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
9637                         p_api_name  => l_api_name,
9638                         p_pkg_name  => g_pkg_name,
9639                         p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
9640                         x_msg_count => x_msg_count,
9641                         x_msg_data  => x_msg_data,
9642                         p_api_type  => g_api_type);
9643 
9644     when OTHERS then
9645       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
9646                         p_api_name  => l_api_name,
9647                         p_pkg_name  => g_pkg_name,
9648                         p_exc_name  => 'OTHERS',
9649                         x_msg_count => x_msg_count,
9650                         x_msg_data  => x_msg_data,
9651                         p_api_type  => g_api_type);
9652   END;
9653 
9654 END okl_la_validation_util_pvt;