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