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