[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;