[Home] [Help]
PACKAGE BODY: APPS.OKS_CONTRACTS_PUB
Source
1 Package Body OKS_CONTRACTS_PUB AS
2 /* $Header: OKSPKCRB.pls 120.3 2006/06/06 23:38:00 upillai noship $ */
3
4 l_api_version CONSTANT NUMBER := 1.0;
5
6
7 Function get_top_line_number(p_chr_id IN Number) return Number;
8 Function get_sub_line_number(p_chr_id IN Number,p_cle_id IN Number) return Number;
9
10 TYPE numeric_tab_typ IS TABLE of number INDEX BY BINARY_INTEGER;
11
12 TYPE Party_Role_Rec Is Record
13 (
14 authoring_org_id Number,
15 party_id Number,
16 bill_to_id Number,
17 third_party_role VARCHAR2(30),
18 scs_code VARCHAR2(30)
19 );
20 -------------------------------------------------------------------------
21 -- Procedure for checking effectivity of line effectivities
22 -------------------------------------------------------------------------
23
24 PROCEDURE CHECK_LINE_EFFECTIVITY
25 (
26 p_cle_id IN NUMBER,
27 p_srv_sdt IN DATE,
28 p_srv_edt IN DATE,
29 x_line_sdt OUT NOCOPY DATE,
30 x_line_edt OUT NOCOPY DATE,
31 x_status OUT NOCOPY VarChar2
32 )
33 IS
34 CURSOR l_line_csr Is
35 SELECT Start_Date, End_Date From OKC_K_LINES_V
36 WHERE id = p_cle_id;
37
38 l_line_csr_rec l_line_csr%ROWTYPE;
39 l_msg_data Varchar2(2000);
40 l_msg_count Number;
41 l_return_status Varchar2(1);
42
43 BEGIN
44
45 OPEN l_line_csr;
46 FETCH l_line_csr Into l_line_csr_rec;
47
48 ----dbms_output.put_line('service_start_date'||p_srv_sdt ||'start date '|| l_line_csr_rec.Start_Date);
49 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).CHECK_LINE_EFFECTIVITY :: Srv Start date : '|| p_srv_sdt );
50 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).CHECK_LINE_EFFECTIVITY :: Srv End date : '|| p_srv_edt );
51 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).CHECK_LINE_EFFECTIVITY :: Line Start_date: '|| l_line_csr_rec.Start_Date );
52 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).CHECK_LINE_EFFECTIVITY :: Line End_date : '|| l_line_csr_rec.End_Date );
53
54 If l_line_csr%FOUND Then
55 If TRUNC(p_srv_sdt) >= TRUNC(l_line_csr_rec.Start_Date) And
56 TRUNC(p_srv_edt) <= TRUNC(l_line_csr_rec.End_Date) Then
57
58 x_Status := 'N';
59 Else
60 If p_srv_sdt >= l_line_csr_rec.Start_Date Then
61 x_line_sdt := l_line_csr_rec.Start_Date;
62 Else
63 x_line_sdt := p_srv_sdt;
64 End If;
65
66 If p_srv_edt >= l_line_csr_rec.End_Date Then
67 x_line_edt := p_srv_edt;
68 Else
69 x_line_edt := l_line_csr_rec.End_Date;
70 End If;
71 x_Status := 'Y';
72
73 End If;
74 Else
75 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).CHECK_LINE_EFFECTIVITY :: Start date and End date of the Line not Found');
76 x_Status := 'E';
77 End If;
78 EXCEPTION
79 WHEN OTHERS THEN
80 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
81 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).CHECK_LINE_EFFECTIVITY :: Error:'||SQLCODE ||':'||SQLERRM);
82
83 END CHECK_LINE_EFFECTIVITY;
84 -----------------------------------------------------------------------------
85 -- Procedure for creating party roles
86 -----------------------------------------------------------------------------
87
88 PROCEDURE PARTY_ROLE ( p_ChrId IN NUMBER,
89 p_cleid IN NUMBER,
90 p_Rle_Code IN VARCHAR2,
91 p_PartyId IN NUMBER,
92 p_Object_Code IN VARCHAR2,
93 x_roleid OUT NOCOPY NUMBER,
94 x_return_status OUT NOCOPY VARCHAR2,
95 x_msg_count OUT NOCOPY NUMBER,
96 x_msg_data OUT NOCOPY VARCHAR2
97 )
98 IS
99
100 l_api_version CONSTANT NUMBER := 1.0;
101 l_init_msg_list CONSTANT VARCHAR2(1) := 'F';
102 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
103
104 l_index VARCHAR2(240);
105
106 --Party Role
107 l_cplv_tbl_in okc_contract_party_pub.cplv_tbl_type;
108 l_cplv_tbl_out okc_contract_party_pub.cplv_tbl_type;
109
110 Cursor l_party_csr Is
111 Select Id From OKC_K_PARTY_ROLES_B
112 Where dnz_chr_id = p_chrid
113 And cle_id Is Null
114 And rle_code = p_rle_code;
115
116 Cursor l_lparty_csr Is Select Id From OKC_K_PARTY_ROLES_B
117 Where dnz_chr_id = p_chrid
118 And cle_id = p_cleid
119 And rle_code = p_rle_code;
120
121 l_roleid Number;
122
123 Begin
124
125 If p_cleid Is Null Then
126
127 Open l_party_csr;
128 Fetch l_party_csr Into l_roleid;
129 Close l_party_csr;
130
131 If l_roleid Is Not Null Then
132 x_roleid := l_roleid;
133 Return;
134 End If;
135
136 l_cplv_tbl_in(1).chr_id := p_chrid;
137
138 Else
139
140 Open l_lparty_csr;
141 Fetch l_lparty_csr Into l_roleid;
142 Close l_lparty_csr;
143
144 If l_roleid Is Not Null Then
145 x_roleid := l_roleid;
146 Return;
147 End If;
148
149 l_cplv_tbl_in(1).cle_id := p_cleid;
150
151 End If;
152
153 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Party_Role :: rle_code: '|| p_rle_code );
154 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Party_Role :: p_partyid: '|| p_partyid );
155 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Party_Role :: p_object_code: '|| p_object_code );
156 ----dbms_output.put_line('party role rle_code'||p_rle_code);
157 ----dbms_output.put_line('party role p_partyid'||p_partyid);
158 ----dbms_output.put_line('party role p_object_code'||p_object_code);
159
160 l_cplv_tbl_in(1).sfwt_flag := 'N';
161 l_cplv_tbl_in(1).rle_code := p_rle_code;
162 l_cplv_tbl_in(1).object1_id1 := p_partyid;
163 l_cplv_tbl_in(1).Object1_id2 := '#';
164 l_cplv_tbl_in(1).jtot_object1_code := p_object_code;
165 l_cplv_tbl_in(1).dnz_chr_id := p_chrid;
166
167 Okc_contract_party_pub.create_k_party_role
168 (
169 p_api_version => l_api_version,
170 p_init_msg_list => l_init_msg_list,
171 x_return_status => l_return_status,
172 x_msg_count => x_msg_count,
173 x_msg_data => x_msg_data,
174 p_cplv_tbl => l_cplv_tbl_in,
175 x_cplv_tbl => l_cplv_tbl_out
176 );
177
178 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Party_Role :: create_k_party_role status: '|| l_return_status);
179 ----dbms_output.put_line('party role:'||l_return_status);
180
181 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
182
183 x_roleid := l_cplv_tbl_out(1).id;
184 Else
185 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, p_rle_code || ' Party Role (HEADER)');
186 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB):Party_Role :: Error in Create_k_party role' );
187 Raise G_EXCEPTION_HALT_VALIDATION;
188
189
190 End if;
191 x_return_status := l_return_status;
192
193 EXCEPTION
194 WHEN G_EXCEPTION_HALT_VALIDATION THEN
195 x_return_status := l_return_status ;
196 WHEN OTHERS THEN
197 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
198 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
199 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB):Party_Role :: Error:'||SQLCODE ||':'||SQLERRM );
200
201 End Party_Role;
202
203 /*
204 ----------------------------------------------------------------------------
205 -- Function for checking the rules exist or not
206 ----------------------------------------------------------------------------
207 Function Check_Rule_Exists
208 (
209 p_rgp_id IN NUMBER,
210 p_rule_type IN VARCHAR2
211 ) Return NUMBER
212 Is
213 v_id NUMBER;
214 Begin
215 If p_rgp_id is null Then
216 Return(null);
217 Else
218 Select ID Into V_ID From OKC_RULES_V
219 Where rgp_id = p_rgp_id
220 And Rule_information_category = p_rule_type;
221
222 If v_id Is NULL Then
223 return(null);
224 Else
225 return(V_ID);
226 End If;
227 End if;
228
229
230 Exception
231 WHEN No_Data_Found Then
232 Return (null);
233
234 End Check_Rule_Exists;
235
236
237 -----------------------------------------------------------------------------
238 -- Check whether rule group exist or not
239 -----------------------------------------------------------------------------
240
241 Function CHECK_RULE_GRP_EXISTS
242 (
243 p_chr_id IN NUMBER,
244 p_cle_id IN NUMBER
245 ) Return NUMBER
246 Is
247 v_id NUMBER;
248 Begin
249
250
251 If (p_chr_id IS NOT NULL) Then
252 SELECT ID INTO V_ID FROM OKC_RULE_GROUPS_V
253 WHERE Dnz_CHR_ID = p_chr_id
254 And cle_id is null ;
255 If V_ID IS NULL Then
256 return(NULL);
257 Else
258 return(V_ID);
259 End If;
260 End If;
261
262 If (p_cle_id IS NOT NULL) Then
263 SELECT ID INTO V_ID FROM OKC_RULE_GROUPS_V WHERE CLE_ID = p_cle_id;
264 If V_ID IS NULL Then
265 return(NULL);
266 Else
267 return(V_ID);
268 End If;
269 End If;
270
271 Exception
272 When OTHERS Then
273 RETURN(NULL);
274
275 End CHECK_RULE_GRP_EXISTS;
276
277 */
278 --------------------------------------------------------------------------------
279 -- Create Articles
280 --------------------------------------------------------------------------------
281
282 procedure Create_articles
283 (
284 p_articles_tbl IN obj_articles_tbl
285 ,p_contract_id IN NUMBER
286 ,p_cle_id IN NUMBER
287 ,p_dnz_chr_id IN NUMBER
288 ,x_return_status OUT NOCOPY Varchar2
289 ,x_msg_count OUT NOCOPY Number
290 ,x_msg_data OUT NOCOPY Varchar2
291 )
292 Is
293
294 Cursor l_art_csr(p_name Varchar2) Is
295 Select id
296 From okc_std_articles_v
297 Where name = p_name;
298
299 Cursor l_art_release_csr(p_sae_id Number) Is
300 Select sav_release
301 From okc_std_art_versions_v
302 Where sae_id = p_sae_id;
303
304
305 l_catv_tbl_in OKC_K_ARTICLE_PUB.catv_tbl_type;
306 l_catv_tbl_out OKC_K_ARTICLE_PVT.catv_tbl_type;
307
308 l_sae_id Number;
309 l_sae_release Varchar2(100);
310 l_api_version CONSTANT NUMBER := 1.0;
311 l_init_msg_list CONSTANT VARCHAR2(1) := 'F';
312 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
313 l_index VARCHAR2(240);
314 l_msg_count NUMBER;
315 l_msg_data VARCHAR2(2000);
316
317
318
319 Begin
320 x_return_status := OKC_API.G_RET_STS_SUCCESS;
321
322 For l_ptr in 1..P_Articles_tbl.count
323 Loop
324
325 Open l_art_csr(p_articles_tbl(l_ptr).name);
326 Fetch l_art_csr Into l_sae_id;
327 Close l_art_csr;
328
329 Open l_art_release_csr(l_sae_id);
330 Fetch l_art_release_csr into l_sae_release;
331 Close l_art_release_csr;
332
333 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).CREATE_ARTICLES :: l_sae_id:'|| l_sae_id);
334 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).CREATE_ARTICLES :: l_sae_release:'|| l_sae_release);
335
336 l_catv_tbl_in(1).sav_sae_id := l_sae_id;
337 l_catv_tbl_in(1).sbt_code := p_articles_tbl(l_ptr).subject_code;
338 l_catv_tbl_in(1).cat_type := 'STA';
339 l_catv_tbl_in(1).chr_id := p_contract_id;
340 l_catv_tbl_in(1).cle_id := p_cle_id;
341 l_catv_tbl_in(1).cat_id := NULL;
342 l_catv_tbl_in(1).dnz_chr_id := p_dnz_chr_id;
343 l_catv_tbl_in(1).fulltext_yn := p_articles_tbl(l_ptr).full_text_yn;
344 l_catv_tbl_in(1).sav_sav_release := l_sae_release;
345
346
347 Okc_k_article_pub. create_k_article
348 (
349 p_api_version => l_api_version,
350 p_init_msg_list => l_init_msg_list,
351 x_return_status => l_return_status,
352 x_msg_count => l_msg_count ,
353 x_msg_data => l_msg_data ,
354 p_catv_tbl => l_catv_tbl_in ,
355 x_catv_tbl => l_catv_tbl_out
356 );
357 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).CREATE_ARTICLES :: Create_k_article status:'|| l_return_status);
358 x_return_status := l_return_status;
359
360 If l_return_status <> OKC_API.G_RET_STS_SUCCESS Then
361 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'ARITCLES (HEADER)');
362 Raise G_EXCEPTION_HALT_VALIDATION;
363
364 End If;
365
366
367 End Loop;
368 x_return_status := l_return_status;
369
370 EXCEPTION
371 WHEN G_EXCEPTION_HALT_VALIDATION THEN
372 x_return_status := l_return_status ;
373
374 WHEN Others THEN
375 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
376 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
377 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).CREATE_ARTICLES :: Error : '||SQLCODE ||':'|| SQLERRM);
378
379 End Create_articles;
380 ------------------------------------------------------------------------------------------
381 /*********function to validate credit card WHICH Returns 0' failure, 1' success*****/
382 ------------------------------------------------------------------------------------------
383
384 FUNCTION Validate_credit_card
385 (
386 p_cc_num_stripped IN VARCHAR2
387 )
388 RETURN number IS
389
390 l_stripped_num_table numeric_tab_typ; /* Holds credit card number stripped of white spaces */
391 l_product_table numeric_tab_typ; /* Table of cc digits multiplied by 2 or 1,for validity check */
392 l_len_credit_card_num number := 0; /* Length of credit card number stripped of white spaces */
393 l_product_tab_sum number := 0; /* Sum of digits in product table */
394 l_actual_cc_check_digit number := 0; /* First digit of credit card, numbered from right to left */
395 l_mod10_check_digit number := 0; /* Check digit after mod10 algorithm is applied */
396 j number := 0; /* Product table index */
397
398 BEGIN
399
400 SELECT length(p_cc_num_stripped)
401 INTO l_len_credit_card_num
402 FROM dual;
403
404 FOR i in 1..l_len_credit_card_num
405 LOOP
406 SELECT to_number(substr(p_cc_num_stripped,i,1))
407 INTO l_stripped_num_table(i)
408 FROM dual;
409 END LOOP;
410
411 l_actual_cc_check_digit := l_stripped_num_table(l_len_credit_card_num);
412
413 FOR i in 1..l_len_credit_card_num-1
414 LOOP
415 IF ( mod(l_len_credit_card_num+1-i,2) > 0 ) THEN
416
417 -- Odd numbered digit. Store as is, in the product table.
418 j := j+1;
419 l_product_table(j) := l_stripped_num_table(i);
420
421 ELSE
422 -- Even numbered digit. Multiply digit by 2 and store in the product table.
423 -- Numbers beyond 5 result in 2 digits when multiplied by 2. So handled seperately.
424
425 IF (l_stripped_num_table(i) >= 5) THEN
426
427 j := j+1;
428 l_product_table(j) := 1;
429 j := j+1;
430 l_product_table(j) := (l_stripped_num_table(i) - 5) * 2;
431
432 ELSE
433
434 j := j+1;
435 l_product_table(j) := l_stripped_num_table(i) * 2;
436
437 END IF;
438 END IF;
439 END LOOP;
440
441 -- Sum up the product table's digits
442
443 FOR k in 1..j
444 LOOP
445 l_product_tab_sum := l_product_tab_sum + l_product_table(k);
446 END LOOP;
447
448 l_mod10_check_digit := mod( (10 - mod( l_product_tab_sum, 10)), 10);
449
450 -- If actual check digit and check_digit after mod10 don't match, the credit card is an invalid one.
451
452 IF ( l_mod10_check_digit <> l_actual_cc_check_digit) THEN
453 return(0);
454 ELSE
455 return(1);
456 END IF;
457
458 EXCEPTION
459 When Others Then
460 OKS_RENEW_PVT.DEBUG_LOG( 'VALIDATE CREDIT CARD :: Error in Validate Credit card');
461 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
462
463 END Validate_Credit_Card;
464
465
466 ---------------------------------------------------------------------------------------------------
467 -- function to validate line records WHICH Returns 0' failure, 1' success
468 ---------------------------------------------------------------------------------------------------
469
470 PROCEDURE Validate_Line_Record(
471 p_line_rec IN line_Rec_Type,
472 x_return_status OUT NOCOPY VARCHAR2
473 )
474 IS
475
476 BEGIN
477 x_return_status := OKC_API.G_RET_STS_SUCCESS;
478
479
480
481 IF p_line_rec.srv_id IS NULL THEN
482
483 x_return_status := OKC_API.G_RET_STS_ERROR;
484 ----dbms_output.put_line('K LINE VALIDATION :- SRV ID REQUIRED FOR LINE RECORD');
485 OKS_RENEW_PVT.DEBUG_LOG( 'OKS_CONTARACTS_PUB .VALIDATE_LINE_RECORD :: SRV_Id required for line record');
486 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, ' SRV ID REQUIRED FOR LINE RECORD');
487 Raise G_EXCEPTION_HALT_VALIDATION;
488
489 ELSIF p_line_rec.organization_id IS NULL THEN
490
491 x_return_status := OKC_API.G_RET_STS_ERROR;
492 ----dbms_output.put_line('(OKS_CONTRACTS_PUB): K LINE VALIDATION :- ORGANIZATION ID REQUIRED FOR LINE RECORD');
493 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).VALIDATE_LINE_RECORD :: Organization_Id required for line record');
494 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, ' ORGANIZATION ID REQUIRED FOR LINE RECORD');
495 Raise G_EXCEPTION_HALT_VALIDATION;
496
497 ELSIF p_line_rec.srv_sdt IS NULL THEN
498
499 x_return_status := OKC_API.G_RET_STS_ERROR;
500 ----dbms_output.put_line('K LINE VALIDATION :- SRV START DATE REQUIRED FOR LINE RECORD');
501 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).VALIDATE_LINE_RECORD :: SRV Start_Date required for line record');
502 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, ' SRV START DATE REQUIRED FOR LINE RECORD');
503 Raise G_EXCEPTION_HALT_VALIDATION;
504
505 ELSIF p_line_rec.srv_edt IS NULL THEN
506
507 x_return_status := OKC_API.G_RET_STS_ERROR;
508 ----dbms_output.put_line('K LINE VALIDATION :- SRV END DATE REQUIRED FOR LINE RECORD');
509 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).VALIDATE_LINE_RECORD :: SRV End_Date required for line record');
510 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, ' SRV END DATE REQUIRED FOR LINE RECORD');
511 Raise G_EXCEPTION_HALT_VALIDATION;
512
513 ELSIF p_line_rec.k_hdr_id IS NULL THEN
514
515 x_return_status := OKC_API.G_RET_STS_ERROR;
516 ----dbms_output.put_line('K LINE VALIDATION :- K_hdr_id REQUIRED FOR LINE RECORD');
517 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).VALIDATE_LINE_RECORD :: Header_Id required for line record');
518 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, ' K_hdr_id REQUIRED FOR LINE RECORD');
519 Raise G_EXCEPTION_HALT_VALIDATION;
520
521
522 ELSIF p_line_rec.org_id IS NULL THEN
523
524 x_return_status := OKC_API.G_RET_STS_ERROR;
525 ----dbms_output.put_line('K LINE VALIDATION :- ORG_ID REQUIRED FOR LINE RECORD');
526 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).VALIDATE_LINE_RECORD :: ORG Id required for line record');
527 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, ' ORG_ID REQUIRED FOR LINE RECORD');
528 Raise G_EXCEPTION_HALT_VALIDATION;
529
530 ELSIF (p_line_rec.usage_type = 'VRT' OR p_line_rec.usage_type = 'QTY' OR p_line_rec.usage_type = 'FRT')
531 AND ( p_line_rec.usage_period IS NULL) THEN
532
533 x_return_status := OKC_API.G_RET_STS_ERROR;
534 ----dbms_output.put_line('K LINE VALIDATION :- USAGE PERIOD REQUIRED FOR LINE RECORD');
535 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).VALIDATE_LINE_RECORD :: Usage_Period required for line record');
536 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, ' USAGE PERIOD REQUIRED FOR LINE RECORD');
537 Raise G_EXCEPTION_HALT_VALIDATION;
538
539 ELSIF (p_line_rec.usage_type = 'VRT' OR p_line_rec.usage_type = 'QTY') AND (p_line_rec.invoicing_rule_type <> -3) THEN
540
541 x_return_status := OKC_API.G_RET_STS_ERROR;
542 ----dbms_output.put_line('K LINE VALIDATION :- ARRERS INVOICE TYPE REQUIRED FOR LINE RECORD');
543 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).VALIDATE_LINE_RECORD :: Arrers Invoice Type required for line record');
544 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, ' ARRERS INVOICE TYPE REQUIRED.');
545 Raise G_EXCEPTION_HALT_VALIDATION;
546
547 END IF;
548
549 EXCEPTION
550
551 WHEN G_EXCEPTION_HALT_VALIDATION THEN
552 NULL;
553 WHEN Others THEN
554 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
555 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
556 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).VALIDATE_LINE_RECORD :: Error :'||SQLCODE ||':'|| SQLERRM);
557
558 END Validate_Line_Record;
559
560
561 ------------------------------------------------------------------------------------------------------
562 -- Procedure to validate covered product Record
563 ------------------------------------------------------------------------------------------------------
564
565 PROCEDURE Validate_Cp_Rec
566 (
567 p_cp_rec IN Covered_level_Rec_Type,
568 p_usage_type IN VARCHAR2,
569 x_return_status OUT NOCOPY VARCHAR2
570 )
571 IS
572
573 l_msg_data Varchar2(2000);
574 l_msg_count Number;
575
576 BEGIN
577
578 x_return_status := OKC_API.G_RET_STS_SUCCESS;
579
580 IF p_cp_rec.Product_start_date IS NULL THEN
581
582 x_return_status := OKC_API.G_RET_STS_ERROR;
583 ----dbms_output.put_line('K COVERED PRODUCT VALIDATION :- PRODUCT START DATE REQUIRED FOR COVERED PRODUCT');
584 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).VALIDATE_CP_REC :: Product_Start_Date required for CP');
585 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'PRODUCT START DATE REQUIRED FOR COVERED PRODUCT');
586 Raise G_EXCEPTION_HALT_VALIDATION;
587
588 ELSIF p_cp_rec.Product_end_date IS NULL THEN
589
590 x_return_status := OKC_API.G_RET_STS_ERROR;
591 ----dbms_output.put_line('K COVERED PRODUCT VALIDATION :- PRODUCT END DATE REQUIRED FOR COVERED PRODUCT');
592 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).VALIDATE_CP_REC :: Product_End_Date required for CP');
593 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'PRODUCT END DATE REQUIRED FOR COVERED PRODUCT');
594 Raise G_EXCEPTION_HALT_VALIDATION;
595
596 ELSIF p_cp_rec.Customer_Product_Id IS NULL THEN
597
598 x_return_status := OKC_API.G_RET_STS_ERROR;
599 ----dbms_output.put_line('K COVERED PRODUCT VALIDATION :- PRODUCTID REQUIRED FOR COVERED PRODUCT');
600 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).VALIDATE_CP_REC :: Product_Id required for CP');
601 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'PRODUCT ID REQUIRED FOR COVERED PRODUCT');
602 Raise G_EXCEPTION_HALT_VALIDATION;
603
604 ELSIF p_usage_type = 'FRT' AND p_cp_rec.fixed_qty IS NULL THEN
605
606 x_return_status := OKC_API.G_RET_STS_ERROR;
607 ----dbms_output.put_line('K COVERED PRODUCT VALIDATION :- FIXED_QTY REQUIRED FOR COVERED PRODUCT');
608 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).VALIDATE_CP_REC :: Fixed_qty required for CP');
609 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'FIXED_QTY REQUIRED FOR COVERED PRODUCT');
610 Raise G_EXCEPTION_HALT_VALIDATION;
611
612 ELSIF p_usage_type = 'NPR' AND p_cp_rec.negotiated_amount IS NULL THEN
613
614 x_return_status := OKC_API.G_RET_STS_ERROR;
615 ----dbms_output.put_line('K COVERED PRODUCT VALIDATION :- NEGOTIATED_AMOUNT REQUIRED FOR COVERED PRODUCT');
616 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).VALIDATE_CP_REC :: Negotiated_amount required for CP');
617 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'NEGOTIATED_AMOUNT REQUIRED FOR COVERED PRODUCT');
618 Raise G_EXCEPTION_HALT_VALIDATION;
619
620 ELSIF (p_usage_type = 'VRT' OR p_usage_type = 'QTY')AND
621 (p_cp_rec.default_qty IS NULL OR p_cp_rec.base_reading IS NULL)THEN
622
623 x_return_status := OKC_API.G_RET_STS_ERROR;
624 ----dbms_output.put_line('K COVERED PRODUCT VALIDATION :- DEFAULT_QTY AND BASE_READING REQUIRED REQUIRED FOR COVERED PRODUCT');
625 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).VALIDATE_CP_REC :: Default_Qty and Base_reading required for CP');
626 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'DEFAULT_QTY AND BASE_READING REQUIRED FOR COVERED PRODUCT');
627 Raise G_EXCEPTION_HALT_VALIDATION;
628
629 END IF;
630
631 EXCEPTION
632
633 WHEN G_EXCEPTION_HALT_VALIDATION THEN
634 NULL;
635 WHEN Others THEN
636 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
637 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
638 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).VALIDATE_CP_REC :: Error :' || SQLCODE ||':'|| SQLERRM);
639 END Validate_Cp_Rec;
640
641
642 -------------------------------------------------------------------------------------
643 -- create time value For Billing Schedule
644 -------------------------------------------------------------------------------------
645
646 PROCEDURE Create_timeval( p_line_id IN NUMBER,
647 x_time_val OUT NOCOPY NUMBER,
648 x_return_status OUT NOCOPY VARCHAR2
649 )
650 IS
651
652 CURSOR l_line_csr(p_cle_id NUMBER) IS
653 SELECT dnz_chr_id, start_date
654 FROM okc_k_lines_b
655 WHERE id = p_cle_id;
656
657 l_line_rec l_line_csr%ROWTYPE;
658
659 --Time value
660 l_tavv_tbl_in okc_time_pub.tavv_tbl_type;
661 l_tavv_tbl_out okc_time_pub.tavv_tbl_type;
662 l_msg_count Number;
663 l_msg_data VARCHAR2(2000);
664 l_return_status VARCHAR2(10) := OKC_API.G_RET_STS_SUCCESS;
665 l_init_msg_list VARCHAR2(2000) := OKC_API.G_FALSE;
666
667 BEGIN
668
669 OPEN l_line_csr(p_line_id);
670 FETCH l_line_csr INTO l_line_rec;
671
672 IF l_line_csr%NOTFOUND THEN
673
674 x_return_status := OKC_API.G_RET_STS_ERROR;
675 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN, 'LINE NOT FOUND - CREATE_TIMEVAL');
676 Raise G_EXCEPTION_HALT_VALIDATION ;
677 Close l_line_csr;
678 RETURN;
679
680 ELSE
681 Close l_line_csr;
682 END IF;
683
684 l_tavv_tbl_in(1).dnz_chr_id := l_line_rec.dnz_chr_id;
685 l_tavv_tbl_in(1).datetime := l_line_rec.start_date;
686
687 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRCACTS_PUB).CREATE_TIMEVAL :: dnz_chr_id: '||l_line_rec.dnz_chr_id);
688 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRCACTS_PUB).CREATE_TIMEVAL :: datetime: '||l_line_rec.start_date);
689
690
691 OKC_TIME_PUB.CREATE_TPA_VALUE
692 (
693 p_api_version => l_api_version,
694 p_init_msg_list => l_init_msg_list,
695 x_return_status => l_return_status,
696 x_msg_count => l_msg_count,
697 x_msg_data => l_msg_data,
698 p_tavv_tbl => l_tavv_tbl_in,
699 x_tavv_tbl => l_tavv_tbl_out
700 );
701
702 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRCACTS_PUB).CREATE_TIMEVAL :: CREATE_TPA_VALUE status: '||l_return_status);
703
704 x_return_status := l_return_status;
705 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
706 x_time_val := l_tavv_tbl_out(1).id;
707 Else
708
709 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN, 'CREATE_TPA_VALUE');
710 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRCACTS_PUB).CREATE_TIMEVAL :: Error in create timeval');
711 Raise G_EXCEPTION_HALT_VALIDATION ;
712
713 End If;
714
715 x_return_status := l_return_status;
716
717 EXCEPTION
718
719 WHEN G_EXCEPTION_HALT_VALIDATION THEN
720 NULL;
721 WHEN Others THEN
722 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
723 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
724 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).VALIDATE_LINE_RECORD :: Error :'||SQLCODE ||':'|| SQLERRM);
725
726 END Create_timeval;
727
728
729
730 ------------------------------------------------------------------------------------------
731 -- Procedure to create Billing Schedule for recursive billing
732 ------------------------------------------------------------------------------------------
733
734 Procedure Create_Bill_Schedule
735 (
736 p_billing_sch IN VARCHAR2,
737 p_strm_level_tbl IN OKS_BILL_SCH.StreamLvl_tbl,
738 p_invoice_rule_id IN Number,
739 x_return_status OUT NOCOPY VARCHAR2
740 )
741 IS
742 l_bil_sch_out_tbl OKS_BILL_SCH.ItemBillSch_tbl;
743 --l_slh_rec OKS_BILL_SCH.StreamHdr_type;
744 l_time_val NUMBER;
745 l_invoice_rule_id NUMBER;
746 l_msg_data Varchar2(2000);
747 l_msg_count Number;
748
749 BEGIN
750
751 IF p_strm_level_tbl(1).cle_id IS NULL THEN
752
753 x_return_status := OKC_API.G_RET_STS_ERROR;
754 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'LINE ID REQUIRED FOR SLH');
755 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Bill_Schedule :: Line Id required for SLH');
756 Raise G_EXCEPTION_HALT_VALIDATION ;
757
758 END IF;
759
760 -- Commented
761 -- Rules re-architecture project for 11.5.10
762 /*
763 l_slh_rec := p_Strm_hdr_rec;
764 If l_slh_rec.Object1_Id1 IS NULL THEN
765 l_slh_rec.Object1_Id1 := '1';
766 END IF;
767
768 Create_timeval
769 (
770 p_line_id => l_slh_rec.cle_id,
771 x_time_val => l_time_val,
772 x_return_status => x_return_status
773 );
774
775 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Bill_Schedule :: Create_timeval status:'|| x_return_status);
776
777 IF x_return_status = 'S' THEN
778 l_slh_rec.Object2_Id1 := l_time_val;
779 ELSIF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
780 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
781 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
782 RAISE OKC_API.G_EXCEPTION_ERROR;
783 END IF;
784 */
785 l_invoice_rule_id := p_invoice_rule_id;
786 IF l_invoice_rule_id IS NULL THEN
787 l_invoice_rule_id := -3;
788 END IF;
789
790 OKS_BILL_SCH.Create_Bill_Sch_Rules
791 (
792 p_billing_type => p_billing_sch ,
793 p_sll_tbl => p_strm_level_tbl,
794 p_invoice_rule_id => l_invoice_rule_id,
795 x_bil_sch_out_tbl => l_bil_sch_out_tbl,
796 x_return_status => x_return_status
797 );
798
799 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Bill_Schedule :: Create_bill_sch_rules status:'|| x_return_status);
800 --FND_FILE.PUT_LINE (FND_FILE.LOG,'K BILL SCHEDULE STATUS:- ' || x_return_status);
801 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
802 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
803 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
804 RAISE OKC_API.G_EXCEPTION_ERROR;
805 END IF;
806
807 EXCEPTION
808
809 WHEN G_EXCEPTION_HALT_VALIDATION THEN
810 NULL;
811
812 WHEN Others THEN
813 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
814 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
815 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Bill_Schedule :: Error: '||SQLCODE ||':'|| SQLERRM);
816
817 END Create_Bill_Schedule;
818
819
820 -----------------------------------------------------------------------------------
821 -- Billing schedule for one time billing
822 -----------------------------------------------------------------------------------
823 Procedure Create_Billing_Schd
824 (
825 P_srv_sdt IN Date
826 , P_srv_edt IN Date
827 , P_amount IN Number
828 , P_chr_id IN Number
829 , P_rule_id IN Varchar2
830 , P_line_id IN Number
831 , P_invoice_rule_id IN Number
832 , X_msg_data OUT NOCOPY Varchar2
833 , X_msg_count OUT NOCOPY Number
834 , X_Return_status OUT NOCOPY Varchar2
835 )
836 Is
837
838 --Scedule Billing
839 --l_slh_rec OKS_BILL_SCH.StreamHdr_type;
840 l_sll_tbl OKS_BILL_SCH.StreamLvl_tbl;
841 l_bil_sch_out OKS_BILL_SCH.ItemBillSch_tbl;
842 ---Time value
843 l_tavv_tbl_in okc_time_pub.tavv_tbl_type;
844 l_tavv_tbl_out okc_time_pub.tavv_tbl_type;
845 l_tpa_id Number;
846
847 l_api_version CONSTANT NUMBER := 1.0;
848 l_init_msg_list CONSTANT VARCHAR2(1) := 'F';
849 l_return_status VARCHAR2(1) := 'S';
850 l_duration Number;
851 l_timeunits Varchar2(25);
852 Begin
853
854 x_return_status := OKC_API.G_RET_STS_SUCCESS;
855 /* -- Rules Rearchitecture TPA id removed
856 l_tavv_tbl_in(1).dnz_chr_id := P_chr_id;
857 l_tavv_tbl_in(1).datetime := P_srv_sdt;
858
859 OKC_TIME_PUB.CREATE_TPA_VALUE
860 (
861 p_api_version => l_api_version,
862 p_init_msg_list => l_init_msg_list,
863 x_return_status => l_return_status,
864 x_msg_count => x_msg_count,
865 x_msg_data => x_msg_data,
866 p_tavv_tbl => l_tavv_tbl_in,
867 x_tavv_tbl => l_tavv_tbl_out
868 );
869
870 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Billing_Schd :: Create_TPA_value status:'|| l_return_status ||'Id'||l_tavv_tbl_out(1).id);
871 ----dbms_output.put_line('TPA value status '||l_return_status);
872
873 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
874 l_tpa_id := l_tavv_tbl_out(1).id;
875 Else
876 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'CREATE_TPA_VALUE');
877 Raise G_EXCEPTION_HALT_VALIDATION;
878 End If;
879 */
880 Okc_time_util_pub.get_duration
881 (
882 p_start_date => P_srv_sdt,
883 p_end_date => P_srv_edt,
884 x_duration => l_duration,
885 x_timeunit => l_timeunits,
886 x_return_status => l_return_status
887 );
888
889 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Billing_Schd :: get_duration status:'|| l_return_status);
890 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Billing_Schd :: Duration:'|| l_duration ||'time unit' ||l_timeunits);
891
892 ----dbms_output.put_line('get duration status '||l_return_status);
893
894 If l_return_status <> OKC_API.G_RET_STS_SUCCESS Then
895 Raise G_EXCEPTION_HALT_VALIDATION;
896 End If;
897 /*
898 l_slh_rec.cle_id := P_line_id;
899 l_slh_rec.Rule_Information1 := 'E';
900 l_slh_rec.Object1_id1 := '1';
901 l_slh_rec.Object1_id2 := '#';
902 l_slh_rec.Jtot_Object1_code := 'OKS_STRM_TYPE';
903 l_slh_rec.Object2_id1 := l_tpa_id;
904 l_slh_rec.Object2_id2 := '#';
905 l_slh_rec.Jtot_object2_code := 'OKS_TIMEVAL';
906 l_slh_rec.Rule_information_category := 'SLH';
907 l_sll_tbl(1).Rule_Id := P_rule_id;
908 l_sll_tbl(1).Rule_Information1 := '1';
909 l_sll_tbl(1).Rule_Information3 := '1';
910 l_sll_tbl(1).Rule_Information4 := l_duration;
911 l_sll_tbl(1).Rule_Information5 := Null;
912 l_sll_tbl(1).Rule_Information6 := p_amount;
913 l_sll_tbl(1).Rule_Information7 := Null;
914 l_sll_tbl(1).Rule_Information8 := Null;
915 l_sll_tbl(1).Rule_Information_Category := 'SLL';
916 l_sll_tbl(1).object1_id1 := l_timeunits;
917 l_sll_tbl(1).jtot_object1_code := 'OKS_TUOM';
918 */
919
920 l_sll_tbl(1).cle_id := P_line_id;
921 l_sll_tbl(1).uom_code := l_timeunits;
922 l_sll_tbl(1).sequence_no := '1';
923 l_sll_tbl(1).level_periods := '1';
924 l_sll_tbl(1).start_date := P_srv_sdt;
925 l_sll_tbl(1).uom_per_period := l_duration;
926 l_sll_tbl(1).advance_periods := Null;
927 l_sll_tbl(1).level_amount := p_amount;
928 l_sll_tbl(1).invoice_offset_days := Null;
929 l_sll_tbl(1).interface_offset_days := Null;
930
931 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Billing_Schd :: P_amount :'|| P_amount);
932 ----dbms_output.put_line('before bill sch rule ');
933
934 OKS_BILL_SCH.Create_Bill_Sch_Rules
935 (
936 p_billing_type => 'E'
937 , p_sll_tbl => l_sll_tbl
938 , p_invoice_rule_id => p_invoice_rule_id
939 , x_bil_sch_out_tbl => l_bil_sch_out
940 , x_return_status => l_return_status
941 );
942
943 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Billing_Schd :: Create_Bill_Sch_Rules status: '||l_return_status);
944 ----dbms_output.put_line('K LINE CREATION :- Create_Bill_Sch_Rules STATUS ' || l_return_status );
945
946 If l_return_status <> OKC_API.G_RET_STS_SUCCESS Then
947 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Sched Billing Rule (LINE)');
948 Raise G_EXCEPTION_HALT_VALIDATION;
949 End If;
950 x_return_status := l_return_status;
951
952 Exception
953 When G_EXCEPTION_HALT_VALIDATION Then
954 x_return_status := l_return_status;
955 Null;
956 When Others Then
957 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
958 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
959 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Billing_Schd :: Error: '|| SQLCODE|| ':' ||SQLERRM);
960
961 End;
962
963 /*
964 -------------------------------------------------------------------------------------
965 -- Procedure to create Rule groups
966 -------------------------------------------------------------------------------------
967
968 Procedure Create_Rule_Grp
969 (
970 p_dnz_chr_id IN Number,
971 p_chr_id IN Number,
972 p_cle_id IN Number,
973 x_rul_grp_id OUT NOCOPY Number,
974 x_return_status OUT NOCOPY VARCHAR2,
975 x_msg_data OUT NOCOPY VARCHAR2,
976 x_msg_count OUT NOCOPY NUMBER
977 )
978 IS
979 l_rul_grp_id Number;
980 l_return_status VARCHAR2(100);
981 l_msg_count VARCHAR2(2000);
982 l_msg_data Number;
983 l_api_version CONSTANT NUMBER := 1.0;
984 l_rgpv_tbl_in okc_rule_pub.rgpv_tbl_type;
985 l_rgpv_tbl_out okc_rule_pub.rgpv_tbl_type;
986 l_msg_data Varchar2(2000);
987 l_msg_count Number;
988
989 BEGIN
990
991 l_rgpv_tbl_in.delete;
992
993
994 -----check if rule group exists for given line id if not then create it.
995
996 IF p_cle_id Is NOT NULL THEN -----------for lines and sub lines level
997
998 l_rul_grp_id := CHECK_RULE_GRP_EXISTS(Null,p_cle_id);
999
1000 ELSE ------for contract level
1001
1002 l_rul_grp_id := CHECK_RULE_GRP_EXISTS(p_chr_id, NULL);
1003
1004 END IF;
1005
1006 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Rule_Grp :: Rule group Id:'|| l_rul_grp_id);
1007 ----dbms_output.put_line('l_rul_grp_id'||l_rul_grp_id);
1008
1009 IF l_rul_grp_id IS NULL THEN
1010
1011 ----dbms_output.put_line('G_RULE_GROUP_CODE'||G_RULE_GROUP_CODE);
1012
1013 l_rgpv_tbl_in(1).chr_id := p_chr_id;
1014 l_rgpv_tbl_in(1).cle_id := p_cle_id;
1015 l_rgpv_tbl_in(1).sfwt_flag := 'N';
1016 l_rgpv_tbl_in(1).rgd_code := G_RULE_GROUP_CODE;
1017 l_rgpv_tbl_in(1).dnz_chr_id := p_dnz_chr_id;
1018 l_rgpv_tbl_in(1).rgp_type := 'KRG';
1019 l_rgpv_tbl_in(1).object_version_number := OKC_API.G_MISS_NUM;
1020 l_rgpv_tbl_in(1).created_by := OKC_API.G_MISS_NUM;
1021 l_rgpv_tbl_in(1).creation_date := SYSDATE;
1022 l_rgpv_tbl_in(1).last_updated_by := OKC_API.G_MISS_NUM;
1023 l_rgpv_tbl_in(1).last_update_date := SYSDATE;
1024
1025
1026 OKC_RULE_PUB.create_rule_group
1027 (
1028 p_api_version => l_api_version,
1029 x_return_status => l_return_status,
1030 x_msg_count => x_msg_count,
1031 x_msg_data => x_msg_data,
1032 p_rgpv_tbl => l_rgpv_tbl_in,
1033 x_rgpv_tbl => l_rgpv_tbl_out
1034 );
1035
1036 x_return_status := l_return_status;
1037 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Rule_Grp :: create_rule_group status:'|| x_return_status);
1038 --dbms_output.put_line('OKC_RULE_PUB.create_rule_group = ' || l_return_status);
1039
1040 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1041
1042 RAISE G_EXCEPTION_HALT_VALIDATION;
1043
1044 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1045
1046 RAISE G_EXCEPTION_HALT_VALIDATION;
1047
1048 END IF;
1049
1050 x_rul_grp_id := l_rgpv_tbl_out(1).id;
1051 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Rule_Grp :: Rule group Id: '||x_rul_grp_id);
1052 ELSE
1053 x_rul_grp_id := l_rul_grp_id;
1054 END IF;
1055
1056 EXCEPTION
1057 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1058 null;
1059 WHEN Others THEN
1060
1061 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1062 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
1063 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Rule_Grp :: Error:'||SQLCODE ||':'|| SQLERRM );
1064
1065 -----end rule group check
1066 End Create_Rule_Grp;
1067 */
1068
1069
1070
1071 --------------------------------------------------------------------------
1072 -- Procedure for creating contacts
1073 ----------------------------------------------------------------------------
1074
1075 Procedure Create_contacts(
1076 p_contract_id IN NUMBER,
1077 p_line_id IN NUMBER,
1078 p_contact_info_tbl IN Contact_tbl,
1079 p_party_role IN Party_Role_Rec,
1080 x_return_status OUT NOCOPY VARCHAR2,
1081 x_msg_data OUT NOCOPY VARCHAR2,
1082 x_msg_count OUT NOCOPY NUMBER
1083 )
1084 IS
1085
1086
1087 CURSOR l_thirdparty_csr (p_id Number) IS
1088 SELECT Party_Id From OKX_CUST_SITE_USES_V
1089 WHERE ID1 = p_id;
1090
1091 CURSOR l_cust_csr (p_contactid Number) IS
1092 SELECT Party_Id From OKX_CUST_CONTACTS_V
1093 WHERE Id1 = p_contactid And id2 = '#';
1094
1095 CURSOR l_ra_hcontacts_cur (p_contact_id number) Is
1096 SELECT hzr.object_id, hzr.party_id
1097 --NPALEPU
1098 --18-JUN-2005,08-AUG-2005
1099 --TCA Project
1100 --Replaced hz_party_relationships table with hz_relationships table and ra_hcontacts view with OKS_RA_HCONTACTS_V.
1101 --Replaced hzr.party_relationship_id column with hzr.relationship_id column and added new conditions
1102 /* FROM ra_hcontacts rah,hz_party_relationships hzr
1103 WHERE rah.contact_id = p_contact_id
1104 AND rah.party_relationship_id = hzr.party_relationship_id; */
1105 FROM OKS_RA_HCONTACTS_V rah,hz_relationships hzr
1106 WHERE rah.contact_id = p_contact_id
1107 AND rah.party_relationship_id = hzr.relationship_id
1108 AND hzr.SUBJECT_TABLE_NAME = 'HZ_PARTIES'
1109 AND hzr.OBJECT_TABLE_NAME = 'HZ_PARTIES'
1110 AND hzr.DIRECTIONAL_FLAG = 'F';
1111 --END NPALEPU
1112
1113 l_cplv_tbl_in okc_contract_party_pub.cplv_tbl_type;
1114 l_cplv_tbl_out okc_contract_party_pub.cplv_tbl_type;
1115 --Contacts
1116 l_ctcv_tbl_in okc_contract_party_pub.ctcv_tbl_type;
1117 l_ctcv_tbl_out okc_contract_party_pub.ctcv_tbl_type;
1118
1119 l_partyid_v NUMBER;
1120 l_partyid_t NUMBER;
1121 l_rah_party_id NUMBER;
1122 l_thirdparty_id NUMBER;
1123 l_thirdparty_role VARCHAR2(30);
1124 i NUMBER;
1125 l_add2partyid NUMBER;
1126 l_hdr_contactid NUMBER;
1127 l_partyid NUMBER;
1128 l_contact_id NUMBER;
1129
1130 l_api_version CONSTANT NUMBER := 1.0;
1131 l_init_msg_list CONSTANT VARCHAR2(1) := OKC_API.G_FALSE;
1132 l_return_status VARCHAR2(1) := 'S';
1133 l_index VARCHAR2 (2000);
1134 l_msg_data VARCHAR2 (2000);
1135 l_msg_count NUMBER;
1136
1137 BEGIN
1138
1139 --Party Role Routine ('VENDOR')
1140 --- debug messages to be included
1141 If p_party_role.scs_code = 'SUBSCRIPTION' then
1142
1143 Party_Role(
1144 p_ChrId => p_contract_id,
1145 p_cleId => p_line_id,
1146 p_Rle_Code => 'MERCHANT',
1147 p_PartyId => p_party_role.authoring_org_id,
1148 p_Object_Code => G_JTF_PARTY_VENDOR,
1149 x_roleid => l_partyid_v,
1150 x_msg_count => x_msg_count,
1151 x_msg_data => x_msg_data,
1152 x_return_status => l_return_status
1153 );
1154
1155 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contacts :: Merchant Role Creation CPL_Id: '||l_partyid_v);
1156 --dbms_output.put_line( ' MERCHANT ROLE CREATION :- CPL ID ' || l_partyid_v);
1157
1158 If l_return_status <> OKC_API.G_RET_STS_SUCCESS then
1159 Raise G_EXCEPTION_HALT_VALIDATION;
1160 End If;
1161
1162
1163 --Party Role Routine ('CUSTOMER')
1164
1165 Party_Role (
1166 p_ChrId => p_contract_id,
1167 p_cleId => p_line_id,
1168 p_Rle_Code => 'SUBSCRIBER',
1169 p_PartyId => p_party_role.party_id,
1170 p_Object_Code => G_JTF_PARTY,
1171 x_roleid => l_partyid,
1172 x_msg_count => x_msg_count,
1173 x_msg_data => x_msg_data,
1174 x_return_status => l_return_status
1175 );
1176
1177 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contacts :: Subscriber Role Creation CPL_Id: '||l_partyid);
1178 --dbms_output.put_line( ' SUBSCRIBER ROLE CREATION :- CPL ID ' || l_partyid);
1179
1180 If l_return_status <> OKC_API.G_RET_STS_SUCCESS then
1181 Raise G_EXCEPTION_HALT_VALIDATION;
1182 End If;
1183
1184
1185 Else
1186
1187
1188 Party_Role (
1189 p_ChrId => p_contract_id,
1190 p_cleId => p_line_id,
1191 p_Rle_Code => 'VENDOR',
1192 p_PartyId => p_party_role.authoring_org_id,
1193 p_Object_Code => G_JTF_PARTY_VENDOR,
1194 x_roleid => l_partyid_v,
1195 x_msg_count => x_msg_count,
1196 x_msg_data => x_msg_data,
1197 x_return_status => l_return_status
1198 );
1199
1200 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contacts :: Vendor Role Creation CPL_Id: '||l_partyid_v);
1201 --dbms_output.put_line( ' VENDOR ROLE CREATION :- CPL ID ' || l_partyid_v);
1202
1203 If l_return_status <> OKC_API.G_RET_STS_SUCCESS then
1204 Raise G_EXCEPTION_HALT_VALIDATION;
1205 End If;
1206
1207
1208 --Party Role Routine ('CUSTOMER')
1209
1210 Party_Role (
1211 p_ChrId => p_contract_id,
1212 p_cleId => p_line_id,
1213 p_Rle_Code => 'CUSTOMER',
1214 p_PartyId => p_party_role.party_id,
1215 p_Object_Code => G_JTF_PARTY,
1216 x_roleid => l_partyid,
1217 x_msg_count => x_msg_count,
1218 x_msg_data => x_msg_data,
1219 x_return_status => l_return_status
1220 );
1221
1222 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contacts :: Customer Role Creation CPL_Id: '||l_partyid);
1223 --dbms_output.put_line( ' CUSTOMER ROLE CREATION :- CPL ID ' || l_partyid);
1224
1225 If l_return_status <> OKC_API.G_RET_STS_SUCCESS then
1226 Raise G_EXCEPTION_HALT_VALIDATION;
1227 End If;
1228
1229 End If;
1230 Open l_thirdparty_csr (p_party_role.bill_to_id);
1231 Fetch l_thirdparty_csr Into l_thirdparty_id;
1232 Close l_thirdparty_csr;
1233
1234 If l_thirdparty_Id Is Not Null Then
1235
1236 If Not l_thirdparty_Id = p_party_role.party_Id Then
1237
1238 l_thirdparty_role := Nvl(p_party_role.third_party_role, 'THIRD_PARTY');
1239
1240 --Party Role Routine ('THIRD_PARTY')
1241 Party_Role (
1242 p_ChrId => p_contract_id,
1243 p_cleId => p_line_id,
1244 p_Rle_Code => l_thirdparty_role,
1245 p_PartyId => l_thirdparty_id,
1246 p_Object_Code => G_JTF_PARTY,
1247 x_roleid => l_partyid_t,
1248 x_msg_count => x_msg_count,
1249 x_msg_data => x_msg_data,
1250 x_return_status => l_return_status
1251 );
1252
1253 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contacts :: Third Party Role Creation CPL_Id: '||l_partyid_t);
1254 --dbms_output.put_line( ' THIRD PARTY ROLE CREATION :- CPL ID ' || l_partyid_t);
1255
1256 If l_return_status <> OKC_API.G_RET_STS_SUCCESS then
1257 Raise G_EXCEPTION_HALT_VALIDATION;
1258 End If;
1259
1260 End If;
1261 End If;
1262
1263
1264 If p_contact_info_tbl.count > 0 Then
1265 i := p_Contact_info_tbl.First;
1266 Loop
1267
1268 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contacts :: Parrt Role: '||p_Contact_info_tbl (i).party_role);
1269 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contacts :: Contact Id: '||p_Contact_info_tbl (i).contact_id);
1270 --dbms_output.put_line( ' CONTACT CREATION :- PARTY ROLE ' ||p_Contact_info_tbl (i).party_role);
1271 --dbms_output.put_line( ' CONTACT CREATION :- CONTACT ID ' ||p_Contact_info_tbl (i).contact_id );
1272
1273 l_ctcv_tbl_in.DELETE;
1274
1275 IF p_contact_info_tbl (i).party_role = 'VENDOR' And l_partyid_v Is Not Null Then
1276 l_add2partyid := l_partyid_v;
1277 l_hdr_contactid := p_contact_info_tbl (i).contact_id;
1278 ELSE
1279
1280 Open l_ra_hcontacts_cur (p_contact_info_tbl (i).contact_id);
1281 fetch l_ra_hcontacts_cur into l_rah_party_id, l_hdr_contactid;
1282 close l_ra_hcontacts_cur;
1283
1284 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contacts :: Third Party Id: '||l_thirdparty_id);
1285 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contacts :: Customer Id: '||p_party_role.party_id);
1286 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contacts :: Org contact Id: '||p_contact_info_tbl (i).contact_id);
1287 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contacts :: Rah party contact Id: '||l_rah_party_id);
1288 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contacts :: Rah contact Id: '||l_hdr_contactid );
1289 --dbms_output.put_line( ' CONTACT CREATION :- THIRDP ID ' ||l_thirdparty_id);
1290 --dbms_output.put_line( ' CONTACT CREATION :- CUSTMR ID ' ||p_party_role.party_id);
1291 --dbms_output.put_line( ' CONTACT CREATION :- ORG CTC ID ' ||p_contact_info_tbl (i).contact_id );
1292 --dbms_output.put_line( ' CONTACT CREATION :- RAH PTY ID ' ||l_rah_party_id );
1293 --dbms_output.put_line( ' CONTACT CREATION :- RAH CTC ID ' ||l_hdr_contactid);
1294
1295 IF l_rah_party_id = l_thirdparty_id And l_partyid_t Is Not Null THEN
1296 l_add2partyid := l_partyid_t;
1297 ELSE
1298 l_add2partyid := l_partyid;
1299 END IF;
1300 End If;
1301
1302 IF l_add2partyid Is Null THEN
1303 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, p_contact_info_tbl (i).contact_role
1304 || ' Contact (HEADER) Missing Role Id ' || p_contact_info_tbl (i).contact_object_code);
1305 Raise G_EXCEPTION_HALT_VALIDATION;
1306 End If;
1307
1308
1309 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contacts :: CPL ID: '||l_add2partyid );
1310 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contacts :: CRO CD: '||p_contact_info_tbl (i).contact_role);
1311 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contacts :: CTC CD: '||l_hdr_contactid);
1312 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contacts :: JTO CD: '||p_contact_info_tbl (i).contact_object_code);
1313 --dbms_output.put_line( ' CONTACT CREATION :- CPL ID ' || l_add2partyid);
1314 --dbms_output.put_line( ' CONTACT CREATION :- CRO CD ' || p_contact_info_tbl (i).contact_role);
1315 --dbms_output.put_line( ' CONTACT CREATION :- CTC CD ' || l_hdr_contactid);
1316 --dbms_output.put_line( ' CONTACT CREATION :- JTO CD ' || p_contact_info_tbl (i).contact_object_code);
1317
1318 l_ctcv_tbl_in(1).cpl_id := l_add2partyid;
1319 l_ctcv_tbl_in(1).dnz_chr_id := p_contract_id;
1320 l_ctcv_tbl_in(1).cro_code := p_contact_info_tbl (i).contact_role;
1321 l_ctcv_tbl_in(1).object1_id1 := p_contact_info_tbl (i).contact_id; --l_hdr_contactid;
1322 l_ctcv_tbl_in(1).object1_id2 := '#';
1323 l_ctcv_tbl_in(1).jtot_object1_code := p_contact_info_tbl (i).contact_object_code;
1324
1325 okc_contract_party_pub.create_contact
1326 (
1327 p_api_version => l_api_version,
1328 p_init_msg_list => l_init_msg_list,
1329 x_return_status => l_return_status,
1330 x_msg_count => x_msg_count,
1331 x_msg_data => x_msg_data,
1332 p_ctcv_tbl => l_ctcv_tbl_in,
1333 x_ctcv_tbl => l_ctcv_tbl_out
1334 );
1335
1336 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contacts :: Insert contact status: '||l_return_status );
1337 --dbms_output.put_line('insert contact'||l_return_status);
1338
1339 x_return_status := l_return_status;
1340
1341 If l_return_status = OKC_API.G_RET_STS_SUCCESS then
1342 l_contact_id := l_ctcv_tbl_out(1).id;
1343 Else
1344 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, p_contact_info_tbl (i).contact_role
1345 || ' Contact (HEADER) ' || p_contact_info_tbl (i).contact_object_code);
1346 Raise G_EXCEPTION_HALT_VALIDATION;
1347 End if;
1348
1349 Exit When i = p_contact_info_tbl.Last;
1350 i := p_Contact_info_Tbl.Next(i);
1351 End Loop;
1352
1353 End If;
1354 x_return_status := l_return_status;
1355
1356 EXCEPTION
1357 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1358 x_return_status := l_return_status;
1359 WHEN Others THEN
1360 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1361 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
1362 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contacts :: Error: '||SQLCODE||':'|| SQLERRM);
1363
1364 END Create_Contacts;
1365
1366
1367
1368
1369
1370 -----------------------------------------------------------------------
1371 -- Procedure Create groups
1372 -----------------------------------------------------------------------
1373
1374 PROCEDURE Create_Groups
1375 (
1376 p_contract_id IN NUMBER,
1377 p_pdf_id IN NUMBER,
1378 p_chr_group IN NUMBER,
1379 x_return_status OUT NOCOPY VARCHAR2,
1380 x_msg_data OUT NOCOPY VARCHAR2,
1381 x_msg_count OUT NOCOPY NUMBER
1382 )
1383 IS
1384 --Grouping
1385 l_cgcv_tbl_in okc_contract_group_pub.cgcv_tbl_type;
1386 l_cgcv_tbl_out okc_contract_group_pub.cgcv_tbl_type;
1387
1388 --Approval WorkFlow
1389 l_cpsv_tbl_in okc_contract_pub.cpsv_tbl_type;
1390 l_cpsv_tbl_out okc_contract_pub.cpsv_tbl_type;
1391
1392 l_grpid NUMBER;
1393 l_pdfid NUMBER;
1394 l_ctrgrp NUMBER;
1395 l_init_msg_list VARCHAR2(2000) := OKC_API.G_FALSE;
1396 l_return_status VARCHAR2(10);
1397 l_msg_count NUMBER;
1398 l_msg_data VARCHAR2(2000);
1399 l_msg_index_out NUMBER;
1400 l_msg_index NUMBER;
1401
1402 BEGIN
1403
1404
1405 --Grouping Routine
1406 l_cgcv_tbl_in.DELETE;
1407 l_ctrgrp := Nvl(p_chr_group, Nvl(Fnd_Profile.Value ('OKS_WARR_CONTRACT_GROUP'),2));
1408 l_cgcv_tbl_in(1).cgp_parent_id := l_ctrgrp;
1409 l_cgcv_tbl_in(1).included_chr_id := p_contract_id;
1410 l_cgcv_tbl_in(1).object_version_number := OKC_API.G_MISS_NUM;
1411 l_cgcv_tbl_in(1).created_by := OKC_API.G_MISS_NUM;
1412 l_cgcv_tbl_in(1).creation_date := OKC_API.G_MISS_DATE;
1413 l_cgcv_tbl_in(1).last_updated_by := OKC_API.G_MISS_NUM;
1414 l_cgcv_tbl_in(1).last_update_date := OKC_API.G_MISS_DATE;
1415 l_cgcv_tbl_in(1).last_update_login := OKC_API.G_MISS_NUM;
1416 l_cgcv_tbl_in(1).included_cgp_id := NULL;
1417
1418 okc_contract_group_pub.create_contract_grpngs
1419 (
1420 p_api_version => l_api_version,
1421 p_init_msg_list => l_init_msg_list,
1422 x_return_status => l_return_status,
1423 x_msg_count => x_msg_count,
1424 x_msg_data => x_msg_data,
1425 p_cgcv_tbl => l_cgcv_tbl_in,
1426 x_cgcv_tbl => l_cgcv_tbl_out
1427 );
1428
1429 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Groups :: create contract groups status :'|| l_return_status );
1430 --dbms_output.put_line( 'K HDR CREATION :- GROUPING STATUS ' || l_return_status);
1431
1432 x_return_status := l_return_status;
1433
1434 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
1435 l_grpid := l_cgcv_tbl_out(1).id;
1436 Else
1437 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Contract Group (HEADER)');
1438 Raise G_EXCEPTION_HALT_VALIDATION;
1439 End if;
1440
1441
1442 If p_pdf_id Is Not Null Then
1443
1444 l_cpsv_tbl_in(1).pdf_id := p_pdf_id;
1445 l_cpsv_tbl_in(1).CHR_ID := p_contract_id;
1446 l_cpsv_tbl_in(1).USER_ID := FND_global.user_id;
1447 l_cpsv_tbl_in(1).IN_PROCESS_YN := OKC_API.G_MISS_CHAR;
1448 l_cpsv_tbl_in(1).object_version_number := OKC_API.G_MISS_NUM;
1449 l_cpsv_tbl_in(1).created_by := OKC_API.G_MISS_NUM;
1450 l_cpsv_tbl_in(1).creation_date := OKC_API.G_MISS_DATE;
1451 l_cpsv_tbl_in(1).last_updated_by := OKC_API.G_MISS_NUM;
1452 l_cpsv_tbl_in(1).last_update_date := OKC_API.G_MISS_DATE;
1453 l_cpsv_tbl_in(1).last_update_login := OKC_API.G_MISS_NUM;
1454
1455 okc_contract_pub.create_contract_process
1456 (
1457 p_api_version => l_api_version,
1458 p_init_msg_list => l_init_msg_list,
1459 x_return_status => l_return_status,
1460 x_msg_count => x_msg_count,
1461 x_msg_data => x_msg_data,
1462 p_cpsv_tbl => l_cpsv_tbl_in,
1463 x_cpsv_tbl => l_cpsv_tbl_out
1464 );
1465
1466 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Groups :: Create contract process status: '|| l_return_status );
1467 --dbms_output.put_line( 'K HDR CREATION :- PROCESS DEF STATUS ' || l_return_status);
1468
1469 X_return_status := l_return_status;
1470
1471 If l_return_status = 'S' then
1472 l_pdfid := l_cpsv_tbl_out(1).id;
1473 Else
1474 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Contract WorkFlow (HEADER)');
1475 Raise G_EXCEPTION_HALT_VALIDATION;
1476 End if;
1477
1478 End If; -- pdf not null
1479 x_return_status := l_return_status;
1480
1481 EXCEPTION
1482
1483 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1484 x_return_status := l_return_status;
1485 WHEN Others THEN
1486 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1487 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
1488 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Groups :: Error: '|| SQLCODE||':'|| SQLERRM);
1489
1490 END Create_Groups;
1491
1492
1493
1494 -------------------------------------------------------------------------------
1495 -- Function for getting contract header Id
1496 -------------------------------------------------------------------------------
1497
1498 Function Get_K_Hdr_Id
1499 (
1500 P_Type IN VARCHAR2
1501 ,P_Object_ID IN NUMBER
1502 ,P_EndDate IN DATE
1503
1504 )
1505 Return NUMBER
1506 Is
1507
1508 Cursor l_kexists_csr (p_jtf_id VARCHAR2) is
1509 SELECT Chr_id
1510 FROM OKC_K_REL_OBJS
1511 WHERE OBJECT1_ID1 = P_Object_id
1512 AND jtot_object1_code = p_jtf_id;
1513
1514 Cursor l_wexists_csr (p_jtf_id VARCHAR2) is
1515 SELECT Chr_id
1516 FROM OKC_K_REL_OBJS
1517 WHERE OBJECT1_ID1 = P_Object_id
1518 AND jtot_object1_code = p_jtf_id
1519 AND rty_code = 'CONTRACTWARRANTYORDER';
1520
1521 Cursor l_hdr_csr Is
1522 SELECT Id Chr_Id
1523 FROM OKC_K_HEADERS_V
1524 WHERE Attribute1 = p_Object_Id
1525 AND End_date = p_EndDate ;
1526
1527 l_wchrid Number;
1528 l_kchrid Number;
1529 l_jtf_id VARCHAR2(30);
1530
1531 Begin
1532
1533 IF P_type = 'ORDER' THEN
1534
1535 l_jtf_id := G_JTF_ORDER_HDR;
1536
1537 Open l_kexists_csr (l_jtf_id);
1538 Fetch l_kexists_csr into l_kchrid;
1539 If l_kexists_csr%Notfound THEN
1540 Close l_kexists_csr;
1541 Return(Null);
1542 END If;
1543
1544 Close l_kexists_csr;
1545 Return(l_kchrid);
1546
1547 ELSIF P_Type = 'RENEW' THEN
1548
1549 Open l_hdr_csr;
1550 Fetch l_hdr_csr Into l_kchrid;
1551 If l_hdr_csr%Notfound then
1552 Close l_hdr_csr;
1553 Return (Null);
1554 End If;
1555 Close l_hdr_csr;
1556 Return (l_kchrid);
1557
1558 ELSIF P_Type = 'WARR' THEN
1559
1560 l_jtf_id := G_JTF_ORDER_HDR;
1561 OPEN l_wexists_csr (l_jtf_id);
1562 FETCH l_wexists_csr into l_wchrid;
1563 IF l_wexists_csr%Notfound THEN
1564 CLOSE l_wexists_csr;
1565 RETURN (Null);
1566 END IF;
1567 CLOSE l_wexists_csr;
1568 RETURN (l_wchrid);
1569 END IF;
1570
1571 END Get_K_Hdr_Id;
1572
1573
1574 /*----------------------------------------------------------------------------
1575 Procedure create all rules like
1576 TAX, QTO, PRE, PTR, CVN, BTO, STO, RPO,
1577 ARL, IRE, REN, RPT, SBG, RER, CCR, RVE.
1578 -----------------------------------------------------------------------------
1579 */
1580
1581 PROCEDURE Create_All_Rules
1582 (
1583 p_contract_rec IN OKS_CONTRACTS_PUB.header_rec_type,
1584 p_rule_grp_id IN NUMBER,
1585 p_dnz_chr_id IN NUMBER,
1586 x_return_status OUT NOCOPY VARCHAR2,
1587 x_msg_data OUT NOCOPY VARCHAr2,
1588 x_msg_count OUT NOCOPY NUMBER
1589
1590 )
1591 IS
1592 --rules
1593 --l_rulv_tbl_in okc_rule_pub.rulv_tbl_type;
1594 --l_rulv_tbl_out okc_rule_pub.rulv_tbl_type;
1595 l_khrv_tbl_in oks_khr_pvt.khrv_tbl_type;
1596 l_khrv_tbl_out oks_khr_pvt.khrv_tbl_type;
1597 --Agreements/Governance
1598 l_gvev_tbl_in okc_contract_pub.gvev_tbl_type;
1599 l_gvev_tbl_out okc_contract_pub.gvev_tbl_type;
1600 --miss
1601 l_init_msg_list VARCHAR2(2000) := OKC_API.G_FALSE;
1602 l_return_status VARCHAR2(10);
1603 l_msg_count NUMBER;
1604 l_msg_data VARCHAR2(2000);
1605 l_msg_index_out NUMBER;
1606 l_msg_index NUMBER;
1607 --program variables
1608 l_rule_id NUMBER;
1609 l_govern_id NUMBER;
1610 x_credit_card_no VARCHAR(40);
1611 l_validate_cc NUMBER;
1612 l_return_value NUMBER;
1613 l_email_id NUMBER;
1614 l_phone_id NUMBER;
1615 l_fax_id NUMBER;
1616 l_site_id NUMBER;
1617
1618 -- Contact address
1619 CURSOR address_cur_new( p_contact_id NUMBER ) IS
1620 SELECT a.id1
1621 FROM okx_cust_sites_v a, okx_cust_contacts_v b
1622 WHERE b.id1 = p_contact_id
1623 AND a.id1 = b.cust_acct_site_id;
1624
1625 -- Primary e-mail address
1626 CURSOR email_cur_new( p_contact_id NUMBER ) IS
1627 SELECT contact_point_id
1628 FROM okx_contact_points_v
1629 WHERE contact_point_type = 'EMAIL'
1630 AND primary_flag = 'Y'
1631 AND owner_table_id = p_contact_id;
1632
1633 -- Primary telephone number
1634 CURSOR phone_cur_new( p_contact_id NUMBER ) IS
1635 SELECT contact_point_id
1636 FROM hz_contact_points
1637 WHERE contact_point_type = 'PHONE'
1638 AND NVL( phone_line_type, 'GEN' ) = 'GEN'
1639 AND primary_flag = 'Y'
1640 AND owner_table_id = p_contact_id;
1641
1642 -- Any one fax number
1643 CURSOR fax_cur_new( p_contact_id NUMBER ) IS
1644 SELECT contact_point_id
1645 FROM hz_contact_points
1646 WHERE contact_point_type = 'PHONE'
1647 AND phone_line_type = 'FAX'
1648 AND owner_table_id = p_contact_id;
1649
1650 BEGIN
1651
1652
1653 -- Hdr rules inserted by oks
1654
1655 l_khrv_tbl_in( 1 ).chr_id := p_dnz_chr_id;
1656 l_khrv_tbl_in( 1 ).acct_rule_id := p_contract_rec.accounting_rule_type; --ARL
1657
1658 IF p_contract_rec.renewal_type = 'ERN' THEN
1659 l_khrv_tbl_in( 1 ).electronic_renewal_flag := 'Y';
1660 -- l_khrv_tbl_in( 1 ).billing_profile_id := p_contract_rec.billing_profile_id;
1661 END IF;
1662
1663 l_khrv_tbl_in( 1 ).renewal_po_required := NVL(p_contract_rec.renewal_po, 'N'); --RPO
1664 l_khrv_tbl_in( 1 ).renewal_price_list := p_contract_rec.renewal_price_list_id; --RPT
1665 l_khrv_tbl_in( 1 ).renewal_pricing_type := p_contract_rec.renewal_pricing_type; --RPT
1666
1667 IF p_contract_rec.renewal_pricing_type = 'PCT' THEN --RPT
1668 l_khrv_tbl_in( 1 ).renewal_markup_percent :=p_contract_rec.renewal_markup;
1669 ELSE
1670 l_khrv_tbl_in( 1 ).renewal_markup_percent := NULL;
1671 END IF;
1672
1673 IF p_contract_rec.qto_contact_id IS NOT NULL THEN --QTO
1674 l_khrv_tbl_in( 1 ).quote_to_contact_id := p_contract_rec.qto_contact_id;
1675 l_khrv_tbl_in( 1 ).quote_to_site_id := p_contract_rec.qto_site_id;
1676 l_khrv_tbl_in( 1 ).quote_to_email_id := p_contract_rec.qto_email_id;
1677 l_khrv_tbl_in( 1 ).quote_to_phone_id := p_contract_rec.qto_phone_id;
1678 l_khrv_tbl_in( 1 ).quote_to_fax_id := p_contract_rec.qto_fax_id;
1679 ELSIF p_contract_rec.contact_id IS NOT NULL THEN
1680
1681 OPEN address_cur_new( p_contract_rec.contact_id );
1682 FETCH address_cur_new INTO l_site_id;
1683 CLOSE address_cur_new;
1684
1685 OPEN email_cur_new( p_contract_rec.contact_id );
1686 FETCH email_cur_new INTO l_email_id;
1687 CLOSE email_cur_new;
1688
1689 OPEN phone_cur_new( p_contract_rec.contact_id );
1690 FETCH phone_cur_new INTO l_phone_id;
1691 CLOSE phone_cur_new;
1692
1693 OPEN fax_cur_new( p_contract_rec.contact_id );
1694 FETCH fax_cur_new INTO l_fax_id;
1695 CLOSE fax_cur_new;
1696
1697 l_khrv_tbl_in( 1 ).quote_to_contact_id :=p_contract_rec.contact_id;
1698 l_khrv_tbl_in( 1 ).quote_to_site_id := l_site_id;
1699 l_khrv_tbl_in( 1 ).quote_to_email_id := l_email_id;
1700 l_khrv_tbl_in( 1 ).quote_to_phone_id := l_phone_id;
1701 l_khrv_tbl_in( 1 ).quote_to_fax_id := l_fax_id;
1702
1703 END IF;
1704
1705 l_khrv_tbl_in( 1 ).tax_status := p_contract_rec.tax_status_flag; --TAX
1706 l_khrv_tbl_in( 1 ).tax_code := NULL; --TAX
1707 l_khrv_tbl_in( 1 ).tax_exemption_id := p_contract_rec.tax_exemption_id; --TAX
1708 l_khrv_tbl_in( 1 ).inv_print_profile := 'N';
1709
1710 oks_contract_hdr_pub.create_header(
1711 p_api_version => l_api_version,
1712 p_init_msg_list => l_init_msg_list,
1713 x_return_status => l_return_status,
1714 x_msg_count => x_msg_count,
1715 x_msg_data => x_msg_data,
1716 p_khrv_tbl => l_khrv_tbl_in,
1717 x_khrv_tbl => l_khrv_tbl_out,
1718 p_validate_yn => 'N'
1719 );
1720 OKS_RENEW_PVT.DEBUG_LOG('(OKS_EXTWARPRGM_PVT).Create_K_Hdr :: OKS contract header : '|| l_return_status);
1721 FND_FILE.PUT_LINE(fnd_file.LOG,'K HDR CREATION :- OKS Contract Header STATUS '|| l_return_status );
1722
1723 IF NOT l_return_status = okc_api.g_ret_sts_success THEN
1724 OKC_API.SET_MESSAGE(
1725 g_app_name,
1726 g_required_value,
1727 g_col_name_token,
1728 'OKS (HEADER)'
1729 );
1730 RAISE G_EXCEPTION_HALT_VALIDATION;
1731 END IF;
1732
1733
1734 /* IF p_contract_rec.tax_exemption_id Is Not Null THEN
1735
1736 l_rulv_tbl_in.DELETE;
1737 l_rule_id := Check_Rule_Exists(p_rule_grp_id, 'TAX');
1738 IF l_rule_id Is NULL THEN
1739
1740 l_rulv_tbl_in(1).rgp_id := p_rule_grp_id;
1741 l_rulv_tbl_in(1).sfwt_flag := 'N';
1742 l_rulv_tbl_in(1).std_template_yn := 'N';
1743 l_rulv_tbl_in(1).warn_yn := 'N';
1744 l_rulv_tbl_in(1).rule_information_category := 'TAX';
1745 l_rulv_tbl_in(1).object1_id1 := p_contract_rec.tax_exemption_id;
1746 l_rulv_tbl_in(1).object1_id2 := '#';
1747 l_rulv_tbl_in(1).JTOT_OBJECT1_CODE := G_JTF_TAXEXEMP;
1748 l_rulv_tbl_in(1).object2_id1 := 'TAX_CONTROL_FLAG';
1749 l_rulv_tbl_in(1).object2_id2 := p_contract_rec.tax_status_flag;
1750 l_rulv_tbl_in(1).JTOT_OBJECT2_CODE := G_JTF_TAXCTRL;
1751 l_rulv_tbl_in(1).dnz_chr_id := p_dnz_chr_id;
1752 l_rulv_tbl_in(1).object_version_number := OKC_API.G_MISS_NUM;
1753 l_rulv_tbl_in(1).created_by := OKC_API.G_MISS_NUM;
1754 l_rulv_tbl_in(1).creation_date := SYSDATE;
1755 l_rulv_tbl_in(1).last_updated_by := OKC_API.G_MISS_NUM;
1756 l_rulv_tbl_in(1).last_update_date := SYSDATE;
1757
1758 OKC_RULE_PUB.create_rule
1759 (
1760 p_api_version => l_api_version,
1761 x_return_status => l_return_status,
1762 x_msg_count => x_msg_count,
1763 x_msg_data => x_msg_data,
1764 p_rulv_tbl => l_rulv_tbl_in,
1765 x_rulv_tbl => l_rulv_tbl_out
1766 );
1767
1768 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_All_Rules :: Tax rule status:'|| l_return_status);
1769 --dbms_output.put_line( 'K HDR CREATION :- TAX RULE STATUS ' || l_return_Status);
1770 x_return_status := l_return_status;
1771
1772 IF l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
1773 l_rule_id := l_rulv_tbl_out(1).id;
1774 ELSE
1775 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'TAX EXEMPTION (HEADER)');
1776 Raise G_EXCEPTION_HALT_VALIDATION;
1777 END IF;
1778 END IF;
1779 END IF;
1780
1781
1782 IF p_contract_rec.price_list_id Is Not Null THEN
1783
1784 l_rulv_tbl_in.DELETE;
1785 l_rule_id := Check_Rule_Exists(p_rule_grp_id, 'PRE');
1786 IF l_rule_id Is NULL THEN
1787
1788 l_rulv_tbl_in(1).rgp_id := p_rule_grp_id;
1789 l_rulv_tbl_in(1).sfwt_flag := 'N';
1790 l_rulv_tbl_in(1).std_template_yn := 'N';
1791 l_rulv_tbl_in(1).warn_yn := 'N';
1792 l_rulv_tbl_in(1).rule_information_category := 'PRE';
1793 l_rulv_tbl_in(1).object1_id1 := p_contract_rec.price_list_id;
1794 l_rulv_tbl_in(1).object1_id2 := '#';
1795 l_rulv_tbl_in(1).JTOT_OBJECT1_CODE := G_JTF_PRICE;
1796 l_rulv_tbl_in(1).dnz_chr_id := p_dnz_chr_id;
1797 l_rulv_tbl_in(1).object_version_number := OKC_API.G_MISS_NUM;
1798 l_rulv_tbl_in(1).created_by := OKC_API.G_MISS_NUM;
1799 l_rulv_tbl_in(1).creation_date := SYSDATE;
1800 l_rulv_tbl_in(1).last_updated_by := OKC_API.G_MISS_NUM;
1801 l_rulv_tbl_in(1).last_update_date := SYSDATE;
1802 OKC_RULE_PUB.create_rule
1803 (
1804 p_api_version => l_api_version,
1805 x_return_status => l_return_status,
1806 x_msg_count => x_msg_count,
1807 x_msg_data => x_msg_data,
1808 p_rulv_tbl => l_rulv_tbl_in,
1809 x_rulv_tbl => l_rulv_tbl_out
1810 );
1811
1812
1813 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_All_Rules :: PRE rule status:'|| l_return_status);
1814 --dbms_output.put_line( 'K HDR CREATION :- PRE RULE STATUS ' || l_return_Status);
1815 x_return_status := l_return_status;
1816
1817
1818 IF l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
1819 l_rule_id := l_rulv_tbl_out(1).id;
1820 ELSE
1821 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'PRICE LIST (HEADER)');
1822 Raise G_EXCEPTION_HALT_VALIDATION;
1823 END IF;
1824
1825 END IF;
1826 END IF;
1827 -- QTO rule
1828
1829 if p_contract_rec.qto_contact_id Is Not Null Then
1830
1831 l_rulv_tbl_in.delete;
1832 l_rule_id := Check_Rule_Exists(p_rule_grp_id, 'QTO');
1833 If l_rule_id Is NULL Then
1834
1835 l_rulv_tbl_in(1).rgp_id := p_rule_grp_id;
1836 l_rulv_tbl_in(1).sfwt_flag := 'N';
1837 l_rulv_tbl_in(1).std_template_yn := 'N';
1838 l_rulv_tbl_in(1).warn_yn := 'N';
1839 l_rulv_tbl_in(1).rule_information_category := 'QTO';
1840 l_rulv_tbl_in(1).object1_id1 := p_contract_rec.qto_contact_id;
1841 l_rulv_tbl_in(1).object1_id2 := '#';
1842 l_rulv_tbl_in(1).JTOT_OBJECT1_CODE := 'OKX_CCONTACT';
1843 l_rulv_tbl_in(1).dnz_chr_id := p_dnz_chr_id;
1844 l_rulv_tbl_in(1).rule_information1 := p_contract_rec.qto_email_id;
1845 l_rulv_tbl_in(1).rule_information2 := p_contract_rec.qto_phone_id;
1846 l_rulv_tbl_in(1).rule_information3 := p_contract_rec.qto_fax_id;
1847 l_rulv_tbl_in(1).rule_information4 := p_contract_rec.qto_site_id;
1848
1849 OKC_RULE_PUB.create_rule
1850 (
1851 p_api_version => l_api_version,
1852 x_return_status => l_return_status,
1853 x_msg_count => x_msg_count,
1854 x_msg_data => x_msg_data,
1855 p_rulv_tbl => l_rulv_tbl_in,
1856 x_rulv_tbl => l_rulv_tbl_out
1857 );
1858
1859 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_All_Rules :: QTO rule status:'|| l_return_status);
1860 --dbms_output.put_line('K HDR CREATION :- QTO RULE STATUS ' || l_return_Status);
1861
1862 If Not l_return_status = OKC_API.G_RET_STS_SUCCESS Then
1863 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'QTO RUle (HEADER)');
1864 Raise G_EXCEPTION_HALT_VALIDATION;
1865 End If;
1866 End If;
1867
1868 Elsif p_contract_rec.contact_id Is Not Null Then
1869
1870 l_rulv_tbl_in.delete;
1871 l_rule_id := Check_Rule_Exists(p_rule_grp_id, 'QTO');
1872 If l_rule_id Is NULL Then
1873
1874 OKS_EXTWAR_UTIL_PUB.Create_Qto_Rule
1875 (
1876 p_api_version => l_api_version,
1877 p_init_msg_list => l_init_msg_list,
1878 p_chr_id => p_dnz_chr_id,
1879 p_contact_id => p_contract_rec.contact_id,
1880 x_return_status => l_return_status,
1881 x_msg_count => x_msg_count,
1882 x_msg_data => x_msg_data
1883 );
1884 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_All_Rules :: QTO rule status:'|| l_return_status);
1885 --dbms_output.put_line('K HDR CREATION :- QTO RULE STATUS ' || l_return_Status);
1886
1887 If Not l_return_status = OKC_API.G_RET_STS_SUCCESS Then
1888 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'QTO RUle (HEADER)');
1889 Raise G_EXCEPTION_HALT_VALIDATION;
1890 End If;
1891 End If;
1892 End If;
1893
1894 IF p_contract_rec.payment_term_id Is Not Null THEN
1895
1896 l_rulv_tbl_in.DELETE;
1897 l_rule_id := Check_Rule_Exists(p_rule_grp_id, 'PTR');
1898 IF l_rule_id Is NULL THEN
1899 l_rulv_tbl_in(1).rgp_id := p_rule_grp_id;
1900 l_rulv_tbl_in(1).sfwt_flag := 'N';
1901 l_rulv_tbl_in(1).std_template_yn := 'N';
1902 l_rulv_tbl_in(1).warn_yn := 'N';
1903 l_rulv_tbl_in(1).rule_information_category := 'PTR';
1904 l_rulv_tbl_in(1).object1_id1 := p_contract_rec.payment_term_id;
1905 l_rulv_tbl_in(1).object1_id2 := '#';
1906 l_rulv_tbl_in(1).JTOT_OBJECT1_CODE := G_JTF_PAYMENT_TERM;
1907 l_rulv_tbl_in(1).dnz_chr_id := p_dnz_chr_id;
1908 l_rulv_tbl_in(1).object_version_number := OKC_API.G_MISS_NUM;
1909 l_rulv_tbl_in(1).created_by := OKC_API.G_MISS_NUM;
1910 l_rulv_tbl_in(1).creation_date := SYSDATE;
1911 l_rulv_tbl_in(1).last_updated_by := OKC_API.G_MISS_NUM;
1912 l_rulv_tbl_in(1).last_update_date := SYSDATE;
1913
1914 OKC_RULE_PUB.create_rule
1915 (
1916 p_api_version => l_api_version,
1917 x_return_status => l_return_status,
1918 x_msg_count => x_msg_count,
1919 x_msg_data => x_msg_data,
1920 p_rulv_tbl => l_rulv_tbl_in,
1921 x_rulv_tbl => l_rulv_tbl_out
1922 );
1923
1924 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_All_Rules :: PTR rule status:'|| l_return_status);
1925 x_return_status := l_return_status;
1926 --dbms_output.put_line( 'K HDR CREATION :- PTR RULE STATUS ' || x_return_Status);
1927
1928
1929 IF l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
1930 l_rule_id := l_rulv_tbl_out(1).id;
1931 ELSE
1932 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'PAYMENT TERM (HEADER)');
1933 Raise G_EXCEPTION_HALT_VALIDATION;
1934 END IF;
1935 END IF;
1936 END IF;
1937
1938
1939 IF p_contract_rec.cvn_type Is Not Null THEN
1940
1941 l_rulv_tbl_in.DELETE;
1942 l_rule_id := Check_Rule_Exists(p_rule_grp_id, 'CVN');
1943 IF l_rule_id Is NULL THEN
1944 l_rulv_tbl_in(1).rgp_id := p_rule_grp_id;
1945 l_rulv_tbl_in(1).sfwt_flag := 'N';
1946 l_rulv_tbl_in(1).std_template_yn := 'N';
1947 l_rulv_tbl_in(1).warn_yn := 'N';
1948 l_rulv_tbl_in(1).rule_information_category := 'CVN';
1949 l_rulv_tbl_in(1).object1_id1 := p_contract_rec.cvn_type;
1950 l_rulv_tbl_in(1).object1_id2 := '#';
1951 l_rulv_tbl_in(1).JTOT_OBJECT1_CODE := G_JTF_CONV_TYPE;
1952 l_rulv_tbl_in(1).dnz_chr_id := p_dnz_chr_id;
1953 l_rulv_tbl_in(1).rule_information1 := p_contract_rec.cvn_rate;
1954 l_rulv_tbl_in(1).rule_information2 := to_char(p_contract_rec.cvn_date ,'YYYY/MM/DD HH24:MI:SS') ;
1955 l_rulv_tbl_in(1).rule_information3 := p_contract_rec.cvn_euro_rate;
1956 l_rulv_tbl_in(1).object_version_number := OKC_API.G_MISS_NUM;
1957 l_rulv_tbl_in(1).created_by := OKC_API.G_MISS_NUM;
1958 l_rulv_tbl_in(1).creation_date := SYSDATE;
1959 l_rulv_tbl_in(1).last_updated_by := OKC_API.G_MISS_NUM;
1960 l_rulv_tbl_in(1).last_update_date := SYSDATE;
1961
1962 OKC_RULE_PUB.create_rule
1963 (
1964 p_api_version => l_api_version,
1965 x_return_status => l_return_status,
1966 x_msg_count => x_msg_count,
1967 x_msg_data => x_msg_data,
1968 p_rulv_tbl => l_rulv_tbl_in,
1969 x_rulv_tbl => l_rulv_tbl_out
1970 );
1971
1972 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_All_Rules :: CVN rule status:'|| l_return_status);
1973 x_return_status := l_return_status;
1974 --dbms_output.put_line( 'K HDR CREATION :- CVN RULE STATUS ' || l_return_Status);
1975
1976 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
1977 l_rule_id := l_rulv_tbl_out(1).id;
1978 Else
1979 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'CONVERSION TYPE (HEADER)');
1980 Raise G_EXCEPTION_HALT_VALIDATION;
1981 End If;
1982 END IF;
1983 END IF;
1984
1985 --Bill To Routine
1986
1987 If p_contract_rec.bill_to_id Is Not Null Then
1988
1989 l_rulv_tbl_in.DELETE;
1990 l_rule_id := Check_Rule_Exists(p_rule_grp_id, 'BTO');
1991 If l_rule_id Is NULL Then
1992 l_rulv_tbl_in(1).rgp_id := p_rule_grp_id;
1993 l_rulv_tbl_in(1).sfwt_flag := 'N';
1994 l_rulv_tbl_in(1).std_template_yn := 'N';
1995 l_rulv_tbl_in(1).warn_yn := 'N';
1996 l_rulv_tbl_in(1).rule_information_category := 'BTO';
1997 l_rulv_tbl_in(1).object1_id1 := p_contract_rec.bill_to_id;
1998 l_rulv_tbl_in(1).object1_id2 := '#';
1999 l_rulv_tbl_in(1).jtot_object1_code := G_JTF_BILLTO;
2000 l_rulv_tbl_in(1).dnz_chr_id := p_dnz_chr_id;
2001 l_rulv_tbl_in(1).object_version_number := OKC_API.G_MISS_NUM;
2002 l_rulv_tbl_in(1).created_by := OKC_API.G_MISS_NUM;
2003 l_rulv_tbl_in(1).creation_date := SYSDATE;
2004 l_rulv_tbl_in(1).last_updated_by := OKC_API.G_MISS_NUM;
2005 l_rulv_tbl_in(1).last_update_date := SYSDATE ;
2006
2007 OKC_RULE_PUB.create_rule
2008 (
2009 p_api_version => l_api_version,
2010 x_return_status => l_return_status,
2011 x_msg_count => x_msg_count,
2012 x_msg_data => x_msg_data,
2013 p_rulv_tbl => l_rulv_tbl_in,
2014 x_rulv_tbl => l_rulv_tbl_out
2015 );
2016
2017 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_All_Rules :: BTO rule status:'|| l_return_status);
2018 x_return_status := l_return_status;
2019 --dbms_output.put_line( 'K HDR CREATION :- BTO RULE STATUS ' || l_return_Status);
2020
2021 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
2022 l_rule_id := l_rulv_tbl_out(1).id;
2023 Else
2024 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'BillTo Id (HEADER)');
2025 Raise G_EXCEPTION_HALT_VALIDATION;
2026 End If;
2027 End If;
2028 End If;
2029
2030 --Ship To Routine
2031
2032 If p_contract_rec.ship_to_id Is Not Null Then
2033
2034 l_rulv_tbl_in.DELETE;
2035 l_rule_id := Check_Rule_Exists(p_rule_grp_id, 'STO');
2036 If l_rule_id Is NULL Then
2037 l_rulv_tbl_in(1).rgp_id := p_rule_grp_id;
2038 l_rulv_tbl_in(1).sfwt_flag := 'N';
2039 l_rulv_tbl_in(1).std_template_yn := 'N';
2040 l_rulv_tbl_in(1).warn_yn := 'N';
2041 l_rulv_tbl_in(1).rule_information_category := 'STO';
2042 l_rulv_tbl_in(1).object1_id1 := p_contract_rec.ship_to_id;
2043 l_rulv_tbl_in(1).object1_id2 := '#';
2044 l_rulv_tbl_in(1).jtot_object1_code := G_JTF_SHIPTO;
2045 l_rulv_tbl_in(1).dnz_chr_id := p_dnz_chr_id;
2046 l_rulv_tbl_in(1).object_version_number := OKC_API.G_MISS_NUM;
2047 l_rulv_tbl_in(1).created_by := OKC_API.G_MISS_NUM;
2048 l_rulv_tbl_in(1).creation_date := SYSDATE;
2049 l_rulv_tbl_in(1).last_updated_by := OKC_API.G_MISS_NUM;
2050 l_rulv_tbl_in(1).last_update_date := SYSDATE;
2051
2052 OKC_RULE_PUB.create_rule
2053 (
2054 p_api_version => l_api_version,
2055 x_return_status => l_return_status,
2056 x_msg_count => x_msg_count,
2057 x_msg_data => x_msg_data,
2058 p_rulv_tbl => l_rulv_tbl_in,
2059 x_rulv_tbl => l_rulv_tbl_out
2060 );
2061
2062 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_All_Rules :: STO rule status:'|| l_return_status);
2063 x_return_status := l_return_status;
2064 --dbms_output.put_line( 'K HDR CREATION :- STO RULE STATUS ' || l_return_Status);
2065
2066 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
2067 l_rule_id := l_rulv_tbl_out(1).id;
2068 Else
2069 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'ShipTo Id (HEADER)');
2070 Raise G_EXCEPTION_HALT_VALIDATION;
2071 End If;
2072 End If;
2073 End If;
2074
2075 If p_contract_rec.agreement_id Is Not Null Then
2076
2077 --Agreement ID Routine
2078 l_gvev_tbl_in(1).chr_id := p_dnz_chr_id;
2079 l_gvev_tbl_in(1).isa_agreement_id := p_contract_rec.agreement_id;
2080 l_gvev_tbl_in(1).copied_only_yn := 'Y';
2081 l_gvev_tbl_in(1).dnz_chr_id := p_dnz_chr_id;
2082
2083 okc_contract_pub.create_governance
2084 (
2085 p_api_version => l_api_version,
2086 p_init_msg_list => l_init_msg_list,
2087 x_return_status => l_return_status,
2088 x_msg_count => l_msg_count,
2089 x_msg_data => l_msg_data,
2090 p_gvev_tbl => l_gvev_tbl_in,
2091 x_gvev_tbl => l_gvev_tbl_out
2092 );
2093
2094
2095 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_All_Rules :: Agreement rule status:'|| l_return_status);
2096 --dbms_output.put_line( 'K HDR CREATION :- AGREEMENT RULE STATUS ' || l_return_Status);
2097
2098 x_return_status := l_return_status;
2099 If l_return_status = 'S' then
2100 l_govern_id := l_gvev_tbl_out(1).id;
2101 Else
2102 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Agreement Id (HEADER)');
2103 Raise G_EXCEPTION_HALT_VALIDATION;
2104 End if;
2105 End If;
2106
2107 --Accounting Rule ID Routine
2108
2109 If p_contract_rec.accounting_rule_type Is Not Null Then
2110
2111 l_rulv_tbl_in.DELETE;
2112 l_rule_id := Check_Rule_Exists(p_rule_grp_id, 'ARL');
2113
2114 If l_rule_id Is NULL Then
2115 l_rulv_tbl_in(1).rgp_id := p_rule_grp_id;
2116 l_rulv_tbl_in(1).sfwt_flag := 'N';
2117 l_rulv_tbl_in(1).std_template_yn := 'N';
2118 l_rulv_tbl_in(1).warn_yn := 'N';
2119 l_rulv_tbl_in(1).rule_information_category := 'ARL';
2120 l_rulv_tbl_in(1).object1_id1 := p_contract_rec.accounting_rule_type;
2121 l_rulv_tbl_in(1).object1_id2 := '#';
2122 l_rulv_tbl_in(1).jtot_object1_code := G_JTF_ARL;
2123 l_rulv_tbl_in(1).dnz_chr_id := p_dnz_chr_id;
2124 l_rulv_tbl_in(1).object_version_number := OKC_API.G_MISS_NUM;
2125 l_rulv_tbl_in(1).created_by := OKC_API.G_MISS_NUM;
2126 l_rulv_tbl_in(1).creation_date := SYSDATE;
2127 l_rulv_tbl_in(1).last_updated_by := OKC_API.G_MISS_NUM;
2128 l_rulv_tbl_in(1).last_update_date := SYSDATE;
2129
2130 OKC_RULE_PUB.create_rule
2131 (
2132 p_api_version => l_api_version,
2133 x_return_status => l_return_status,
2134 x_msg_count => x_msg_count,
2135 x_msg_data => x_msg_data,
2136 p_rulv_tbl => l_rulv_tbl_in,
2137 x_rulv_tbl => l_rulv_tbl_out
2138 );
2139
2140 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_All_Rules :: ARL rule status:'|| l_return_status);
2141 x_return_status := l_return_status;
2142 --dbms_output.put_line( 'K HDR CREATION :- ARL RULE STATUS ' || l_return_Status);
2143
2144 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
2145 l_rule_id := l_rulv_tbl_out(1).id;
2146 Else
2147 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Accounting Id (HEADER)');
2148 Raise G_EXCEPTION_HALT_VALIDATION;
2149 End If;
2150 End If;
2151 End If;
2152
2153 --Invoice Rule ID Routine
2154
2155 If p_contract_rec.invoice_rule_type Is Not Null Then
2156
2157 l_rulv_tbl_in.DELETE;
2158 l_rule_id := Check_Rule_Exists(p_rule_grp_id, 'IRE');
2159 If l_rule_id Is NULL Then
2160 l_rulv_tbl_in(1).rgp_id := p_rule_grp_id;
2161 l_rulv_tbl_in(1).sfwt_flag := 'N';
2162 l_rulv_tbl_in(1).std_template_yn := 'N';
2163 l_rulv_tbl_in(1).warn_yn := 'N';
2164 l_rulv_tbl_in(1).rule_information_category := 'IRE';
2165 l_rulv_tbl_in(1).object1_id1 := p_contract_rec.invoice_rule_type;
2166 l_rulv_tbl_in(1).object1_id2 := '#';
2167 l_rulv_tbl_in(1).jtot_object1_code := G_JTF_IRE;
2168 l_rulv_tbl_in(1).dnz_chr_id := p_dnz_chr_id;
2169 l_rulv_tbl_in(1).object_version_number := OKC_API.G_MISS_NUM;
2170 l_rulv_tbl_in(1).created_by := OKC_API.G_MISS_NUM;
2171 l_rulv_tbl_in(1).creation_date := SYSDATE;
2172 l_rulv_tbl_in(1).last_updated_by := OKC_API.G_MISS_NUM;
2173 l_rulv_tbl_in(1).last_update_date := SYSDATE;
2174
2175 OKC_RULE_PUB.create_rule
2176 (
2177 p_api_version => l_api_version,
2178 x_return_status => l_return_status,
2179 x_msg_count => l_msg_count,
2180 x_msg_data => l_msg_data,
2181 p_rulv_tbl => l_rulv_tbl_in,
2182 x_rulv_tbl => l_rulv_tbl_out
2183 );
2184
2185 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_All_Rules :: IRE rule status:'|| l_return_status);
2186 x_return_status := l_return_status;
2187 --dbms_output.put_line( 'K HDR CREATION :- IRE RULE STATUS ' || l_return_Status);
2188
2189 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
2190 l_rule_id := l_rulv_tbl_out(1).id;
2191 Else
2192 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Invoice Id (HEADER)');
2193 Raise G_EXCEPTION_HALT_VALIDATION;
2194 End If;
2195 End If;
2196 End If;
2197
2198
2199 --Renewal Type Routine
2200
2201 If p_contract_rec.renewal_type Is Not Null Then
2202
2203 l_rulv_tbl_in.DELETE;
2204 l_rule_id := Check_Rule_Exists(p_rule_grp_id, 'REN');
2205 If l_rule_id Is NULL Then
2206 l_rulv_tbl_in(1).rgp_id := p_rule_grp_id;
2207 l_rulv_tbl_in(1).sfwt_flag := 'N';
2208 l_rulv_tbl_in(1).std_template_yn := 'N';
2209 l_rulv_tbl_in(1).warn_yn := 'N';
2210 l_rulv_tbl_in(1).rule_information_category := 'REN';
2211 l_rulv_tbl_in(1).rule_information1 := p_contract_rec.renewal_type;
2212 l_rulv_tbl_in(1).dnz_chr_id := p_dnz_chr_id;
2213 l_rulv_tbl_in(1).object_version_number := OKC_API.G_MISS_NUM;
2214 l_rulv_tbl_in(1).created_by := OKC_API.G_MISS_NUM;
2215 l_rulv_tbl_in(1).creation_date := SYSDATE;
2216 l_rulv_tbl_in(1).last_updated_by := OKC_API.G_MISS_NUM;
2217 l_rulv_tbl_in(1).last_update_date := SYSDATE;
2218
2219 OKC_RULE_PUB.create_rule
2220 (
2221 p_api_version => l_api_version,
2222 x_return_status => l_return_status,
2223 x_msg_count => x_msg_count,
2224 x_msg_data => x_msg_data,
2225 p_rulv_tbl => l_rulv_tbl_in,
2226 x_rulv_tbl => l_rulv_tbl_out
2227 );
2228
2229 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_All_Rules :: REN rule status:'|| l_return_status);
2230 x_return_status := l_return_status;
2231 --dbms_output.put_line( 'K HDR CREATION :- REN RULE STATUS ' || l_return_Status);
2232
2233 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
2234 l_rule_id := l_rulv_tbl_out(1).id;
2235 Else
2236 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Renewal Type (HEADER)');
2237 Raise G_EXCEPTION_HALT_VALIDATION;
2238 End If;
2239 End If;
2240 End If;
2241
2242
2243 --Renewal Pricing Type
2244
2245 If p_contract_rec.renewal_pricing_type Is Not Null Then
2246
2247 l_rulv_tbl_in.DELETE;
2248 l_rule_id := Check_Rule_Exists(p_rule_grp_id, 'RPT');
2249 If l_rule_id Is NULL Then
2250 If p_contract_rec.renewal_pricing_type = 'PCT' Then
2251 l_rulv_tbl_in(1).rule_information2 := p_contract_rec.renewal_markup;
2252 Else
2253 l_rulv_tbl_in(1).rule_information2 := Null;
2254 End If;
2255
2256 l_rulv_tbl_in(1).rgp_id := p_rule_grp_id;
2257 l_rulv_tbl_in(1).sfwt_flag := 'N';
2258 l_rulv_tbl_in(1).std_template_yn := 'N';
2259 l_rulv_tbl_in(1).warn_yn := 'N';
2260 l_rulv_tbl_in(1).rule_information_category := 'RPT';
2261 l_rulv_tbl_in(1).object1_id1 := to_char(p_contract_rec.renewal_price_list_id);
2262 l_rulv_tbl_in(1).object1_id2 := '#';
2263 l_rulv_tbl_in(1).JTOT_OBJECT1_CODE := G_JTF_PRICE;
2264 l_rulv_tbl_in(1).rule_information1 := p_contract_rec.renewal_pricing_type;
2265 l_rulv_tbl_in(1).dnz_chr_id := p_dnz_chr_id;
2266 l_rulv_tbl_in(1).object_version_number := OKC_API.G_MISS_NUM;
2267 l_rulv_tbl_in(1).created_by := OKC_API.G_MISS_NUM;
2268 l_rulv_tbl_in(1).creation_date := SYSDATE;
2269 l_rulv_tbl_in(1).last_updated_by := OKC_API.G_MISS_NUM;
2270 l_rulv_tbl_in(1).last_update_date := SYSDATE;
2271
2272 OKC_RULE_PUB.create_rule
2273 (
2274 p_api_version => l_api_version,
2275 x_return_status => l_return_status,
2276 x_msg_count => x_msg_count,
2277 x_msg_data => x_msg_data,
2278 p_rulv_tbl => l_rulv_tbl_in,
2279 x_rulv_tbl => l_rulv_tbl_out
2280 );
2281
2282
2283 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_All_Rules :: RPT rule status:'|| l_return_status);
2284 x_return_status := l_return_status;
2285 --dbms_output.put_line( 'K HDR CREATION :- RPT RULE STATUS ' || l_return_Status);
2286
2287 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
2288 l_rule_id := l_rulv_tbl_out(1).id;
2289 Else
2290 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Renewal Pricing (HEADER)');
2291 Raise G_EXCEPTION_HALT_VALIDATION;
2292 End If;
2293 End If;
2294 End If;
2295
2296 --Renewal PO Required
2297
2298 If p_contract_rec.renewal_po Is Not Null Then
2299
2300 l_rulv_tbl_in.DELETE;
2301 l_rule_id := Check_Rule_Exists(p_rule_grp_id, 'RPO');
2302 If l_rule_id Is NULL Then
2303
2304 l_rulv_tbl_in(1).rgp_id := p_rule_grp_id;
2305 l_rulv_tbl_in(1).sfwt_flag := 'N';
2306 l_rulv_tbl_in(1).std_template_yn := 'N';
2307 l_rulv_tbl_in(1).warn_yn := 'N';
2308 l_rulv_tbl_in(1).rule_information_category := 'RPO';
2309 l_rulv_tbl_in(1).rule_information1 := p_contract_rec.renewal_po;
2310 l_rulv_tbl_in(1).dnz_chr_id := p_dnz_chr_id;
2311 l_rulv_tbl_in(1).object_version_number := OKC_API.G_MISS_NUM;
2312 l_rulv_tbl_in(1).created_by := OKC_API.G_MISS_NUM;
2313 l_rulv_tbl_in(1).creation_date := SYSDATE;
2314 l_rulv_tbl_in(1).last_updated_by := OKC_API.G_MISS_NUM;
2315 l_rulv_tbl_in(1).last_update_date := SYSDATE;
2316
2317 OKC_RULE_PUB.create_rule
2318 (
2319 p_api_version => l_api_version,
2320 x_return_status => l_return_status,
2321 x_msg_count => x_msg_count,
2322 x_msg_data => x_msg_data,
2323 p_rulv_tbl => l_rulv_tbl_in,
2324 x_rulv_tbl => l_rulv_tbl_out
2325 );
2326
2327 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_All_Rules :: RPO rule status:'|| l_return_status);
2328 x_return_status := l_return_status;
2329 --dbms_output.put_line( 'K HDR CREATION :- RPO RULE STATUS ' || l_return_Status);
2330
2331 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
2332 l_rule_id := l_rulv_tbl_out(1).id;
2333 Else
2334 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Renewal PO (HEADER)');
2335 Raise G_EXCEPTION_HALT_VALIDATION;
2336 End If;
2337 End If;
2338 End If;
2339
2340 ---AR Interface rule
2341
2342 IF p_contract_rec.Ar_interface_yn = 'Y' THEN
2343
2344 l_rulv_tbl_in.DELETE;
2345 l_rule_id := Check_Rule_Exists(p_rule_grp_id, 'SBG');
2346
2347 If l_rule_id Is NULL Then
2348 l_rulv_tbl_in(1).rgp_id := p_rule_grp_id;
2349 l_rulv_tbl_in(1).sfwt_flag := 'N';
2350 l_rulv_tbl_in(1).std_template_yn := 'N';
2351 l_rulv_tbl_in(1).warn_yn := 'N';
2352 l_rulv_tbl_in(1).rule_information_category := 'SBG';
2353 l_rulv_tbl_in(1).object1_id1 := p_contract_rec.transaction_type;
2354 l_rulv_tbl_in(1).object1_id2 := '#';
2355 l_rulv_tbl_in(1).jtot_object1_code := 'OKS_TRXTYPE';
2356 l_rulv_tbl_in(1).rule_information11 := p_contract_rec.Ar_interface_yn;
2357 l_rulv_tbl_in(1).dnz_chr_id := p_dnz_chr_id;
2358 l_rulv_tbl_in(1).object_version_number := OKC_API.G_MISS_NUM;
2359 l_rulv_tbl_in(1).created_by := OKC_API.G_MISS_NUM;
2360 l_rulv_tbl_in(1).creation_date := SYSDATE;
2361 l_rulv_tbl_in(1).last_updated_by := OKC_API.G_MISS_NUM;
2362 l_rulv_tbl_in(1).last_update_date := SYSDATE;
2363
2364 OKC_RULE_PUB.create_rule
2365 (
2366 p_api_version => l_api_version,
2367 x_return_status => l_return_status,
2368 x_msg_count => x_msg_count,
2369 x_msg_data => x_msg_data,
2370 p_rulv_tbl => l_rulv_tbl_in,
2371 x_rulv_tbl => l_rulv_tbl_out
2372 );
2373
2374 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_All_Rules :: SBG rule status:'|| l_return_status);
2375 x_return_status := l_return_status;
2376 --dbms_output.put_line( 'K HDR CREATION :- SBG RULE STATUS ' || l_return_Status);
2377
2378 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
2379 l_rule_id := l_rulv_tbl_out(1).id;
2380 Else
2381 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'AR Interface (HEADER)');
2382 Raise G_EXCEPTION_HALT_VALIDATION;
2383 End If;
2384 End If;
2385 End If;
2386
2387 --estimated percent
2388 IF p_contract_rec.estimate_percent IS NOT NULL THEN
2389
2390 l_rulv_tbl_in.DELETE;
2391 l_rule_id := Check_Rule_Exists(p_rule_grp_id, 'RER');
2392
2393 If l_rule_id Is NULL Then
2394 l_rulv_tbl_in(1).rgp_id := p_rule_grp_id;
2395 l_rulv_tbl_in(1).sfwt_flag := 'N';
2396 l_rulv_tbl_in(1).std_template_yn := 'N';
2397 l_rulv_tbl_in(1).warn_yn := 'N';
2398 l_rulv_tbl_in(1).rule_information_category := 'RER';
2399 l_rulv_tbl_in(1).rule_information1 := TO_CHAR(p_contract_rec.estimate_percent);
2400 l_rulv_tbl_in(1).rule_information2 := TO_CHAR(p_contract_rec.estimate_duration);
2401 l_rulv_tbl_in(1).rule_information3 := p_contract_rec.estimate_period;
2402 l_rulv_tbl_in(1).dnz_chr_id := p_dnz_chr_id;
2403 l_rulv_tbl_in(1).object_version_number := OKC_API.G_MISS_NUM;
2404 l_rulv_tbl_in(1).created_by := OKC_API.G_MISS_NUM;
2405 l_rulv_tbl_in(1).creation_date := SYSDATE;
2406 l_rulv_tbl_in(1).last_updated_by := OKC_API.G_MISS_NUM;
2407 l_rulv_tbl_in(1).last_update_date := SYSDATE;
2408
2409 OKC_RULE_PUB.create_rule
2410 (
2411 p_api_version => l_api_version,
2412 x_return_status => l_return_status,
2413 x_msg_count => x_msg_count,
2414 x_msg_data => x_msg_data,
2415 p_rulv_tbl => l_rulv_tbl_in,
2416 x_rulv_tbl => l_rulv_tbl_out
2417 );
2418
2419 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_All_Rules :: RER rule status:'|| l_return_status);
2420 x_return_status := l_return_status;
2421 --dbms_output.put_line( 'K HDR CREATION :- RER RULE STATUS ' || l_return_Status);
2422
2423 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
2424 l_rule_id := l_rulv_tbl_out(1).id;
2425 Else
2426 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Estimated Percent (HEADER)');
2427 Raise G_EXCEPTION_HALT_VALIDATION;
2428 End If;
2429 End If;
2430 End If;
2431
2432 --Payment Details
2433 IF p_contract_rec.Credit_card_no IS NOT NULL THEN
2434
2435 l_rulv_tbl_in.DELETE;
2436 l_rule_id := Check_Rule_Exists(p_rule_grp_id, 'CCR');
2437 If l_rule_id Is NULL Then
2438
2439 OKS_EXTWAR_UTIL_PVT.strip_white_spaces
2440 (
2441 p_credit_card_num => p_contract_rec.Credit_card_no,
2442 p_stripped_cc_num => x_credit_card_no
2443 );
2444
2445 l_validate_cc := Validate_Credit_Card(p_cc_num_stripped => x_credit_card_no);
2446
2447 IF l_validate_cc = 0 THEN ---failure
2448 OKC_API.SET_MESSAGE
2449 ( p_app_name => 'OKS'
2450 ,p_msg_name => G_INVALID_VALUE
2451 ,p_token1 => G_COL_NAME_TOKEN
2452 ,p_token1_value => 'Credit Card Number'
2453 );
2454 x_return_status := OKC_API.G_RET_STS_ERROR;
2455 Raise G_EXCEPTION_HALT_VALIDATION;
2456
2457 ELSIF l_validate_cc = 1 THEN
2458 ------ERROROUT_AD('ccr rule creation starting : ');
2459
2460 l_rulv_tbl_in(1).rgp_id := p_rule_grp_id;
2461 l_rulv_tbl_in(1).sfwt_flag := 'N';
2462 l_rulv_tbl_in(1).std_template_yn := 'N';
2463 l_rulv_tbl_in(1).warn_yn := 'N';
2464 l_rulv_tbl_in(1).rule_information_category := 'CCR';
2465 l_rulv_tbl_in(1).rule_information1 := x_credit_card_no;
2466 l_rulv_tbl_in(1).rule_information2 := TO_CHAR(p_contract_rec.Expiry_date ,'YYYY/MM/DD HH24:MI:SS');
2467 l_rulv_tbl_in(1).dnz_chr_id := p_dnz_chr_id;
2468 l_rulv_tbl_in(1).object_version_number := OKC_API.G_MISS_NUM;
2469 l_rulv_tbl_in(1).created_by := OKC_API.G_MISS_NUM;
2470 l_rulv_tbl_in(1).creation_date := SYSDATE;
2471 l_rulv_tbl_in(1).last_updated_by := OKC_API.G_MISS_NUM;
2472 l_rulv_tbl_in(1).last_update_date := SYSDATE;
2473
2474 OKC_RULE_PUB.create_rule
2475 (
2476 p_api_version => l_api_version,
2477 x_return_status => l_return_status,
2478 x_msg_count => x_msg_count,
2479 x_msg_data => x_msg_data,
2480 p_rulv_tbl => l_rulv_tbl_in,
2481 x_rulv_tbl => l_rulv_tbl_out
2482 );
2483
2484 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_All_Rules :: CCR rule status:'|| l_return_status);
2485 x_return_status := l_return_status;
2486 --dbms_output.put_line( 'K HDR CREATION :- CCR RULE STATUS ' || l_return_Status);
2487
2488 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
2489 l_rule_id := l_rulv_tbl_out(1).id;
2490 Else
2491 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Creadit Card Rule (HEADER)');
2492 Raise G_EXCEPTION_HALT_VALIDATION;
2493 End If;
2494 END IF; ---credit card valid
2495 End If; ---rule does not exit
2496 End If; ----credit card not null
2497
2498
2499 --Payment details estimation
2500 IF p_contract_rec.estimate_percent IS NOT NULL THEN
2501
2502 l_rulv_tbl_in.DELETE;
2503 l_rule_id := Check_Rule_Exists(p_rule_grp_id, 'RVE');
2504
2505 If l_rule_id Is NULL Then
2506 l_rulv_tbl_in(1).rgp_id := p_rule_grp_id;
2507 l_rulv_tbl_in(1).sfwt_flag := 'N';
2508 l_rulv_tbl_in(1).std_template_yn := 'N';
2509 l_rulv_tbl_in(1).rule_information_category := 'RVE';
2510 l_rulv_tbl_in(1).warn_yn := 'N';
2511 l_rulv_tbl_in(1).rule_information1 := p_contract_rec.rve_percent;
2512 l_rulv_tbl_in(1).rule_information2 := TO_CHAR(p_contract_rec.rve_end_date, 'YYYY/MM/DD HH24:MI:SS');
2513 l_rulv_tbl_in(1).dnz_chr_id := p_dnz_chr_id;
2514 l_rulv_tbl_in(1).object_version_number := OKC_API.G_MISS_NUM;
2515 l_rulv_tbl_in(1).created_by := OKC_API.G_MISS_NUM;
2516 l_rulv_tbl_in(1).creation_date := SYSDATE;
2517 l_rulv_tbl_in(1).last_updated_by := OKC_API.G_MISS_NUM;
2518 l_rulv_tbl_in(1).last_update_date := SYSDATE;
2519
2520 OKC_RULE_PUB.create_rule
2521 (
2522 p_api_version => l_api_version,
2523 x_return_status => l_return_status,
2524 x_msg_count => x_msg_count,
2525 x_msg_data => x_msg_data,
2526 p_rulv_tbl => l_rulv_tbl_in,
2527 x_rulv_tbl => l_rulv_tbl_out
2528 );
2529
2530 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_All_Rules :: REV rule status:'|| l_return_status);
2531 x_return_status := l_return_status;
2532 --dbms_output.put_line( 'K HDR CREATION :- RVE RULE STATUS ' || l_return_Status);
2533
2534 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
2535 l_rule_id := l_rulv_tbl_out(1).id;
2536 Else
2537 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Payment Details Estimation (HEADER)');
2538 Raise G_EXCEPTION_HALT_VALIDATION;
2539 End If;
2540 End If;
2541 End If;
2542 */
2543
2544 x_return_status := l_return_status;
2545
2546 EXCEPTION
2547 WHEN G_EXCEPTION_HALT_VALIDATION THEN
2548 x_return_status := l_return_status;
2549 WHEN Others THEN
2550 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2551 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
2552 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_All_Rules :: Error:'|| SQLCODE||':'|| SQLERRM);
2553
2554 END Create_All_Rules;
2555
2556
2557 -------------------------------------------------------------------------
2558 -- Procedure Create Sales credits
2559 -------------------------------------------------------------------------
2560
2561 PROCEDURE Create_Sales_Credits
2562 (
2563 p_salescredit_tbl_in IN OKS_CONTRACTS_PUB.SalesCredit_tbl,
2564 p_contract_id IN NUMBER,
2565 p_line_id IN NUMBER,
2566 x_return_status OUT NOCOPY VARCHAR2,
2567 x_msg_data OUT NOCOPY VARCHAR2,
2568 x_msg_count OUT NOCOPY NUMBER
2569 )
2570 IS
2571
2572 --SalesCredit
2573 l_scrv_tbl_in oks_sales_credit_pub.scrv_tbl_type;
2574 l_scrv_tbl_out oks_sales_credit_pub.scrv_tbl_type;
2575
2576 l_counter NUMBER;
2577 l_salescredit_id NUMBER;
2578 l_api_version CONSTANT NUMBER := 1.0;
2579 l_init_msg_list CONSTANT VARCHAR2(1) := OKC_API.G_FALSE;
2580 l_return_status VARCHAR2(1) := 'S';
2581 l_index VARCHAR2(2000);
2582
2583
2584
2585 BEGIN
2586
2587 If p_salescredit_tbl_in.count > 0 Then
2588
2589 l_counter := p_salescredit_Tbl_in.First;
2590 Loop
2591
2592 l_scrv_tbl_in (1).percent := p_salescredit_tbl_in(l_counter).percent;
2593 l_scrv_tbl_in (1).chr_id := p_contract_id;
2594 l_scrv_tbl_in (1).cle_id := p_line_id;
2595 l_scrv_tbl_in (1).ctc_id := p_salescredit_tbl_in(l_counter).ctc_id;
2596 l_scrv_tbl_in (1).sales_credit_type_id1 := p_salescredit_tbl_in(l_counter).sales_credit_type_id;
2597 l_scrv_tbl_in (1).sales_credit_type_id2 := '#';
2598
2599
2600
2601 OKS_SALES_CREDIT_PUB.Insert_Sales_Credit
2602 (
2603 p_api_version => 1.0,
2604 p_init_msg_list => OKC_API.G_FALSE,
2605 x_return_status => l_return_status,
2606 x_msg_count => x_msg_count,
2607 x_msg_data => x_msg_data,
2608 p_scrv_tbl => l_scrv_tbl_in,
2609 x_scrv_tbl => l_scrv_tbl_out
2610 );
2611
2612 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Sales_Credits :: Insert sales credit status:'|| l_return_status);
2613 x_return_status := l_return_status;
2614 --dbms_output.put_line('K LINE CREATION :- SALESCREDIT STATUS ' || l_return_status);
2615
2616 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
2617 l_salescredit_id := l_scrv_tbl_out(1).id;
2618 Else
2619 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Sales Credit Failure');
2620 Raise G_EXCEPTION_HALT_VALIDATION;
2621 End if;
2622
2623 Exit When l_counter = p_salescredit_Tbl_in.Last;
2624 l_counter := p_SalesCredit_Tbl_in.Next(l_counter);
2625 End Loop;
2626 End If;
2627 x_return_status := l_return_status;
2628
2629 EXCEPTION
2630 WHEN G_EXCEPTION_HALT_VALIDATION THEN
2631 x_return_status := l_return_status;
2632
2633 When Others Then
2634 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2635 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
2636 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Sales_Credits :: Error:'|| SQLCODE||':'||SQLERRM);
2637
2638
2639 END Create_Sales_Credits;
2640
2641
2642 -----------------------------------------------------------------------------
2643 -- Procedure for creating Object relation
2644 ------------------------------------------------------------------------------
2645
2646 Procedure Create_Obj_Rel
2647 (
2648 p_K_id IN Number
2649 , p_line_id IN Number
2650 , p_orderhdrid IN Number
2651 , p_orderlineid IN Number
2652 , x_return_status OUT NOCOPY Varchar2
2653 , x_msg_count OUT NOCOPY Number
2654 , x_msg_data OUT NOCOPY Varchar2
2655 )
2656 Is
2657
2658 l_api_version CONSTANT NUMBER := 1.0;
2659 l_init_msg_list CONSTANT VARCHAR2(1) := 'F';
2660 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2661 l_crjv_tbl_in OKC_K_REL_OBJS_PUB.crjv_tbl_type;
2662 l_crjv_tbl_out OKC_K_REL_OBJS_PUB.crjv_tbl_type;
2663
2664 Begin
2665
2666 x_return_status := l_return_status;
2667
2668 If p_orderhdrid Is Not Null Then
2669
2670 l_crjv_tbl_in(1).chr_id := p_K_id;
2671 l_crjv_tbl_in(1).object1_id1 := p_orderhdrid;
2672 l_crjv_tbl_in(1).jtot_object1_code := 'OKX_ORDERHEAD';
2673 l_crjv_tbl_in(1).rty_code := 'CONTRACTSERVICESORDER';
2674
2675 OKC_K_REL_OBJS_PUB.CREATE_ROW
2676 (
2677 P_API_VERSION => l_api_version,
2678 P_INIT_MSG_LIST => l_init_msg_list,
2679 X_RETURN_STATUS => l_return_status,
2680 X_MSG_COUNT => x_msg_count,
2681 X_MSG_DATA => x_msg_data,
2682 P_CRJV_TBL => l_crjv_tbl_in,
2683 X_CRJV_TBL => l_crjv_tbl_out
2684 );
2685 x_return_status := l_return_status;
2686
2687 If l_return_status <> OKC_API.G_RET_STS_SUCCESS Then
2688
2689 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'OKC_k_rel_objs Create row Error');
2690 Raise G_EXCEPTION_HALT_VALIDATION;
2691 End if;
2692
2693 ElsIf p_orderlineid Is Not Null Then
2694
2695 l_crjv_tbl_in(1).cle_id := p_line_id;
2696 l_crjv_tbl_in(1).object1_id1 := p_orderlineid;
2697 l_crjv_tbl_in(1).jtot_object1_code := 'OKX_ORDERLINE';
2698 l_crjv_tbl_in(1).rty_code := 'CONTRACTSERVICESORDER';
2699
2700 OKC_K_REL_OBJS_PUB.CREATE_ROW
2701 (
2702 P_API_VERSION => l_api_version,
2703 P_INIT_MSG_LIST => l_init_msg_list,
2704 X_RETURN_STATUS => l_return_status,
2705 X_MSG_COUNT => x_msg_count,
2706 X_MSG_DATA => x_msg_data,
2707 P_CRJV_TBL => l_crjv_tbl_in,
2708 X_CRJV_TBL => l_crjv_tbl_out
2709 );
2710 x_return_status := l_return_status;
2711 If l_return_status <> OKC_API.G_RET_STS_SUCCESS Then
2712
2713 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'OKC_k_rel_objs Create row Error');
2714 Raise G_EXCEPTION_HALT_VALIDATION;
2715 End if;
2716
2717 End If;
2718
2719 Exception
2720
2721 WHEN G_EXCEPTION_HALT_VALIDATION THEN
2722 x_return_status := l_return_status;
2723
2724 When Others Then
2725 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2726 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
2727 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Obj_Rel ::Error :'||SQLCODE||':'|| SQLERRM);
2728
2729 END Create_Obj_Rel;
2730
2731
2732
2733 -------------------------------------------------------------------
2734 -- Function for Geeting the line id
2735 -------------------------------------------------------------------
2736
2737 Function Get_K_Cle_Id
2738 (
2739 p_ChrId Number
2740 , p_InvServiceId Number
2741 , p_StartDate Date
2742 , p_EndDate Date
2743 ) Return Number Is
2744
2745 Cursor l_Service_Csr Is
2746 Select KL.Id Cle_Id
2747 From OKC_K_LINES_V KL
2748 ,OKC_K_ITEMS_V KI
2749 Where KL.dnz_chr_id = p_ChrId
2750 And KL.lse_id In (14, 19)
2751 And KL.Id = KI.cle_Id
2752 And KI.Object1_Id1 = p_InvServiceId
2753 -- And KL.StartDate >= p_StartDate
2754 And KL.End_Date = p_EndDate;
2755
2756
2757 l_cle_Id Number;
2758
2759 Begin
2760 l_cle_id := Null;
2761
2762 Open l_Service_Csr;
2763 Fetch l_Service_Csr Into l_cle_Id;
2764 Close l_Service_csr;
2765 Return (l_cle_id);
2766
2767 End Get_K_Cle_Id;
2768
2769
2770 --------------------------------------------------------------------
2771 -- Check header Effectivity
2772 --------------------------------------------------------------------
2773
2774 Procedure Check_hdr_Effectivity
2775 (
2776 p_chr_id IN NUMBER,
2777 p_srv_sdt IN DATE,
2778 p_srv_edt IN DATE,
2779 x_hdr_sdt OUT NOCOPY DATE,
2780 x_hdr_edt OUT NOCOPY DATE,
2781 x_org_id OUT NOCOPY Number,
2782 x_status OUT NOCOPY VarChar2
2783 )
2784 Is
2785 Cursor l_hdr_csr Is
2786 Select Start_Date, End_Date ,
2787 Authoring_Org_Id From OKC_K_HEADERS_V
2788 Where id = p_chr_id;
2789
2790 l_hdr_csr_rec l_hdr_csr%ROWTYPE;
2791
2792 Begin
2793
2794 Open l_hdr_csr;
2795 Fetch l_hdr_csr Into l_hdr_csr_rec;
2796
2797 If l_hdr_csr%FOUND Then
2798 x_org_id := l_hdr_csr_rec.authoring_org_id;
2799 IF TRUNC(p_srv_sdt) >= TRUNC(l_hdr_csr_rec.Start_Date) AND
2800 TRUNC(p_srv_edt) <= TRUNC(l_hdr_csr_rec.End_Date) THEN
2801
2802 x_Status := 'N';
2803 ELSE
2804 If p_srv_sdt >= l_hdr_csr_rec.Start_Date Then
2805 x_hdr_sdt := l_hdr_csr_rec.Start_Date;
2806 Else
2807 x_hdr_sdt := p_srv_sdt;
2808 End If;
2809
2810 If p_srv_edt >= l_hdr_csr_rec.End_Date Then
2811 x_hdr_edt := p_srv_edt;
2812 Else
2813 x_hdr_edt := l_hdr_csr_rec.End_Date;
2814 End If;
2815 x_Status := 'Y';
2816
2817 END IF;
2818 ELSE
2819 x_Status := 'E';
2820 END IF;
2821
2822 Exception
2823 When Others Then
2824 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
2825 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Check_hdr_Effectivity ::Error: '||SQLCODE ||':'||SQLERRM );
2826
2827 End Check_hdr_Effectivity;
2828 ---------------------------------------------------------------------------
2829 -- Priced YN
2830 ---------------------------------------------------------------------------
2831
2832 Function Priced_YN
2833 (
2834 P_LSE_ID IN NUMBER
2835 ) RETURN VARCHAR2 IS
2836
2837 Cursor C_PRICED_YN IS
2838 Select PRICED_YN
2839 From okc_line_styles_B
2840 Where ID = P_LSE_ID;
2841
2842 V_PRICED VARCHAR2(50) := 'N';
2843
2844 Begin
2845 For CUR_C_PRICED_YN IN C_PRICED_YN
2846 Loop
2847
2848 V_PRICED := CUR_C_PRICED_YN.PRICED_YN;
2849 EXIT;
2850
2851 End Loop;
2852 Return (V_PRICED);
2853 End Priced_YN;
2854
2855 /*
2856 -----------------------------------------------------------------------------
2857 -- Create rules
2858 ------------------------------------------------------------------------------
2859
2860
2861 Procedure create_rules
2862 (
2863 p_rulv_tbl IN okc_rule_pub.rulv_tbl_type
2864 ,x_rulv_tbl OUT NOCOPY okc_rule_pub.rulv_tbl_type
2865 ,x_return_status OUT NOCOPY Varchar2
2866 ,x_msg_count OUT NOCOPY Number
2867 ,x_msg_data OUT NOCOPY Varchar2
2868 )
2869 Is
2870 l_rulv_tbl_in okc_rule_pub.rulv_tbl_type;
2871 l_rulv_tbl_out okc_rule_pub.rulv_tbl_type;
2872 l_api_version CONSTANT NUMBER := 1.0;
2873 l_init_msg_list CONSTANT VARCHAR2(1) := 'F';
2874 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2875 l_index NUMBER;
2876 l_module VARCHAR2(50) := 'TBL_RULE.CREATE_ROWS';
2877 l_debug BOOLEAN := TRUE;
2878
2879 Begin
2880
2881 x_return_status := l_return_status;
2882
2883 l_rulv_tbl_in := p_rulv_tbl;
2884
2885 okc_rule_pub.create_rule
2886 (
2887 p_api_version => l_api_version,
2888 p_init_msg_list => l_init_msg_list,
2889 x_return_status => l_return_status,
2890 x_msg_count => x_msg_count,
2891 x_msg_data => x_msg_data,
2892 p_rulv_tbl => l_rulv_tbl_in,
2893 x_rulv_tbl => l_rulv_tbl_out
2894 );
2895
2896 If l_return_status = 'S' Then
2897 x_rulv_tbl := l_rulv_tbl_out;
2898 Else
2899 x_return_status := l_return_status;
2900 End If;
2901
2902
2903 Exception
2904 When Others Then
2905 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2906 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
2907 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).create_rules :: Error: '||SQLCODE||':'||SQLERRM );
2908
2909 End create_rules;
2910 ------------------------------------------------------------------------------------
2911 -- Check for usage
2912 ------------------------------------------------------------------------------------
2913 */
2914
2915 Procedure Check_for_usage
2916 (
2917 p_CP_id IN Number
2918 , x_counter_tbl OUT NOCOPY counter_tbl
2919 , x_return_status OUT NOCOPY VARCHAR2
2920 , x_msg_data OUT NOCOPY VARCHAR2
2921 , x_msg_count OUT NOCOPY NUMBER
2922 )
2923 Is
2924
2925 l_counter_group_id number ;
2926 l_counter_id number ;
2927 l_usage_item_id number ;
2928 i number ;
2929
2930
2931 CURSOR l_Counter_group_csr IS
2932 SELECT ccg.COUNTER_GROUP_ID COUNTER_GROUP_ID
2933 FROM cs_csi_counter_groups ccg,
2934 csi_counters_b ccb,
2935 csi_counter_associations cca
2936 WHERE ccg.template_flag = 'N'
2937 AND ccg.counter_group_id = ccb.group_id
2938 AND ccb.counter_id = cca.counter_id
2939 AND cca.source_object_code = 'CP'
2940 AND cca.source_object_id = p_cp_id;
2941
2942 CURSOR l_counter_csr (p_counter_group_id NUMBER ) IS
2943 SELECT counter_id , usage_item_id
2944 FROM csi_counters_b
2945 WHERE group_id = p_counter_group_id
2946 AND usage_item_id IS NOT NULL
2947 ORDER BY usage_item_id;
2948
2949 Begin
2950 x_return_status := 'S';
2951 x_counter_tbl.delete;
2952
2953 Open l_Counter_group_csr ;
2954 Fetch l_Counter_group_csr into l_counter_group_id ;
2955 Close l_Counter_group_csr ;
2956
2957 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Check_for_usage :: Counter group Id: '||l_counter_group_id );
2958 --dbms_output.put_line('in check for usage'||p_CP_id||' '||l_counter_group_id);
2959
2960 i := 1;
2961
2962 If l_counter_group_id is not null then
2963
2964 Open l_counter_csr(l_counter_group_id ) ;
2965 Loop
2966 Fetch l_counter_csr into l_usage_item_id , l_counter_id ;
2967 Exit When l_counter_csr%notfound ;
2968 x_counter_tbl(i).usage_item_id := l_usage_item_id ;
2969 x_counter_tbl(i).counter_id := l_counter_id ;
2970 i := i + 1;
2971 End loop;
2972 close l_counter_csr ;
2973 End If;
2974
2975 Exception
2976
2977 When Others Then
2978 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2979 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
2980 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Check_for_usage ::Error: '||SQLCODE ||':'||SQLERRM );
2981
2982 End ;
2983
2984 --------------------------------------------------------------------------
2985 -- Create Contract header
2986 --------------------------------------------------------------------------
2987
2988 Procedure Create_Contract_Header
2989 (
2990 p_K_header_rec IN OKS_CONTRACTS_PUB.header_rec_type
2991 , p_header_contacts_tbl IN OKS_CONTRACTS_PUB.contact_tbl
2992 , p_header_sales_crd_tbl IN OKS_CONTRACTS_PUB.SalesCredit_tbl
2993 , p_header_articles_tbl IN OKS_CONTRACTS_PUB.obj_articles_tbl
2994 , x_chrid OUT NOCOPY Number
2995 , x_return_status OUT NOCOPY VARCHAR2
2996 , x_msg_count OUT NOCOPY Number
2997 , x_msg_data OUT NOCOPY VARCHAR2
2998 )
2999
3000 Is
3001
3002
3003 --Contract Header
3004 l_chrv_tbl_in Okc_contract_pub.chrv_tbl_type;
3005 l_chrv_tbl_out Okc_contract_pub.chrv_tbl_type;
3006 l_party_role Party_Role_Rec;
3007
3008 --Return IDs
3009
3010 l_chrid NUMBER;
3011 l_rule_group_id NUMBER;
3012 l_rule_id NUMBER;
3013 l_govern_id NUMBER;
3014 l_time_value_id NUMBER;
3015 l_contact_id NUMBER;
3016 l_cust_partyid NUMBER;
3017 l_findparty_id NUMBER;
3018 l_hdr_contactid NUMBER;
3019 --Miss
3020 l_api_version CONSTANT NUMBER := 1.0;
3021 l_init_msg_list CONSTANT VARCHAR2(1) := OKC_API.G_FALSE;
3022 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3023 l_index VARCHAR2(2000);
3024 l_msg_count NUMBER;
3025 l_msg_data VARCHAR2(2000);
3026 l_msg_index_out NUMBER;
3027 l_msg_index NUMBER;
3028 Begin
3029
3030 x_return_status := OKC_API.G_RET_STS_SUCCESS;
3031
3032 Okc_context.set_okc_org_context (p_K_header_rec.authoring_org_id, p_K_header_rec.organization_id);
3033
3034 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract_Header ::CREATE CONTRACT HEADER: ');
3035 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract_Header ::Header merge type : '||p_k_header_rec.merge_type );
3036 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract_Header ::Header Status code : '||p_k_header_rec.sts_code );
3037 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract_Header ::Header SCS code : '||p_k_header_rec.scs_code );
3038
3039
3040 If p_k_header_rec.merge_type = 'NEW' Then
3041
3042 If (p_k_header_rec.merge_object_id Is Not NULL) Then
3043 l_chrid := p_k_header_rec.merge_object_id;
3044 Else
3045 l_chrid := Null;
3046 End if;
3047
3048 ElsIf p_k_header_rec.merge_type = 'LTC' Then
3049
3050 l_chrid := p_k_header_rec.merge_object_id;
3051
3052 ElsIf p_k_header_rec.merge_type Is Not Null Then
3053
3054 l_chrid := GET_K_HDR_ID (
3055 p_type => p_k_header_rec.merge_type,
3056 p_object_id => p_k_header_rec.merge_object_id ,
3057 p_enddate => p_k_header_rec.end_date
3058 );
3059 End If;
3060
3061
3062 If l_chrid Is Not Null Then
3063
3064 --dbms_output.put_line('K HDR CREATION :- CHR ID IS NOT NULL ');
3065 --dbms_output.put_line('K HDR CREATION :- CHR ID Status '||p_k_header_rec.sts_code);
3066
3067 If p_k_header_rec.sts_code Not In ('TERMINATED','EXPIRED','CANCELLED') Then
3068
3069 x_chrid := l_chrid;
3070 l_return_status := OKC_API.G_RET_STS_SUCCESS;
3071 Raise G_EXCEPTION_HALT_VALIDATION;
3072
3073 End If;
3074
3075 End If;
3076
3077 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract_Header :: Header Id: '||to_char(l_chrid) );
3078 --Contract Header Routine
3079
3080 If Nvl(p_k_header_rec.sts_code,'ENTERED') = 'ACTIVE' Then
3081 l_chrv_tbl_in(1).date_signed := p_k_header_rec.start_date;
3082 l_chrv_tbl_in(1).date_approved := p_k_header_rec.start_date;
3083 Else
3084 l_chrv_tbl_in(1).date_signed := Null;
3085 l_chrv_tbl_in(1).date_approved := Null;
3086 End If;
3087
3088 If p_k_header_rec.cust_po_number is not null then
3089 l_chrv_tbl_in(1).cust_po_number_req_yn := 'Y';
3090 Else
3091 l_chrv_tbl_in(1).cust_po_number_req_yn := 'N';
3092 End If;
3093
3094
3095 l_chrv_tbl_in(1).sfwt_flag := 'N';
3096 l_chrv_tbl_in(1).contract_number := p_k_header_rec.contract_number;
3097 l_chrv_tbl_in(1).sts_code := NVL(p_k_header_rec.sts_code, 'ACTIVE');
3098 l_chrv_tbl_in(1).scs_code := NVL(p_k_header_rec.scs_code, 'WARRANTY');
3099 l_chrv_tbl_in(1).authoring_org_id := p_k_header_rec.authoring_org_id;
3100 l_chrv_tbl_in(1).inv_organization_id := okc_context.get_okc_organization_id;
3101 l_chrv_tbl_in(1).pre_pay_req_yn := 'N';
3102 l_chrv_tbl_in(1).cust_po_number := p_k_header_rec.cust_po_number;
3103 l_chrv_tbl_in(1).qcl_id := p_k_header_rec.qcl_id ;
3104 l_chrv_tbl_in(1).short_description := Nvl(p_k_header_rec.short_description,'Warranty/Extended Warranty');
3105 l_chrv_tbl_in(1).template_yn := 'N';
3106 l_chrv_tbl_in(1).start_date := p_k_header_rec.start_date;
3107 l_chrv_tbl_in(1).end_date := p_k_header_rec.end_date;
3108 l_chrv_tbl_in(1).chr_type := OKC_API.G_MISS_CHAR;
3109 l_chrv_tbl_in(1).archived_yn := 'N';
3110 l_chrv_tbl_in(1).deleted_yn := 'N';
3111 l_chrv_tbl_in(1).created_by := OKC_API.G_MISS_NUM;
3112 l_chrv_tbl_in(1).creation_date := SYSDATE;
3113 l_chrv_tbl_in(1).last_updated_by := OKC_API.G_MISS_NUM;
3114 l_chrv_tbl_in(1).last_update_date := SYSDATE;
3115 l_chrv_tbl_in(1).currency_code := p_k_header_rec.currency;
3116 l_chrv_tbl_in(1).buy_or_sell := 'S';
3117 l_chrv_tbl_in(1).issue_or_receive := 'I';
3118 l_chrv_tbl_in(1).Attribute1 := p_k_header_rec.attribute1;
3119 l_chrv_tbl_in(1).Attribute2 := p_k_header_rec.attribute2;
3120 l_chrv_tbl_in(1).Attribute3 := p_k_header_rec.attribute3;
3121 l_chrv_tbl_in(1).Attribute4 := p_k_header_rec.attribute4;
3122 l_chrv_tbl_in(1).Attribute5 := p_k_header_rec.attribute5;
3123 l_chrv_tbl_in(1).Attribute6 := p_k_header_rec.attribute6;
3124 l_chrv_tbl_in(1).Attribute7 := p_k_header_rec.attribute7;
3125 l_chrv_tbl_in(1).Attribute8 := p_k_header_rec.attribute8;
3126 l_chrv_tbl_in(1).Attribute9 := p_k_header_rec.attribute9;
3127 l_chrv_tbl_in(1).Attribute10 := p_k_header_rec.attribute10;
3128 l_chrv_tbl_in(1).Attribute11 := p_k_header_rec.attribute11;
3129 l_chrv_tbl_in(1).Attribute12 := p_k_header_rec.attribute12;
3130 l_chrv_tbl_in(1).Attribute13 := p_k_header_rec.attribute13;
3131 l_chrv_tbl_in(1).Attribute14 := p_k_header_rec.attribute14;
3132 l_chrv_tbl_in(1).Attribute15 := p_k_header_rec.attribute15;
3133 -- rules seeded by okc
3134 l_chrv_tbl_in( 1 ).price_list_id := p_k_header_rec.price_list_id; --PRE
3135 l_chrv_tbl_in( 1 ).payment_term_id := p_k_header_rec.payment_term_id; --PTR
3136 l_chrv_tbl_in( 1 ).conversion_type := p_k_header_rec.cvn_type; --CVN
3137 l_chrv_tbl_in( 1 ).conversion_rate := p_k_header_rec.cvn_rate; --CVN
3138 l_chrv_tbl_in( 1 ).conversion_rate_date := TO_CHAR( p_k_header_rec.cvn_date, 'YYYY/MM/DD HH24:MI:SS' );--CVN
3139 l_chrv_tbl_in( 1 ).conversion_euro_rate := p_k_header_rec.cvn_euro_rate; --CVN
3140 l_chrv_tbl_in( 1 ).bill_to_site_use_id := p_k_header_rec.bill_to_id; --BTO
3141 l_chrv_tbl_in( 1 ).ship_to_site_use_id := p_k_header_rec.ship_to_id; --STO
3142 l_chrv_tbl_in( 1 ).inv_rule_id := p_k_header_rec.invoice_rule_type; --IRE
3143
3144 IF p_k_header_rec.renewal_type IS NOT NULL THEN --REN
3145 IF p_k_header_rec.renewal_type = 'ERN' THEN
3146 l_chrv_tbl_in( 1 ).renewal_type_code := 'NSR';
3147 ELSE
3148 l_chrv_tbl_in( 1 ).renewal_type_code := p_k_header_rec.renewal_type;
3149 END IF;
3150 END IF;
3151
3152
3153 If p_k_header_rec.merge_type = 'RENEW' Then
3154 l_chrv_tbl_in(1).Attribute1 := p_k_header_rec.merge_object_id;
3155 End If;
3156
3157 Okc_contract_pub.create_contract_header
3158 (
3159 p_api_version => l_api_version,
3160 p_init_msg_list => l_init_msg_list,
3161 p_chrv_tbl => l_chrv_tbl_in,
3162 x_return_status => l_return_status,
3163 x_msg_count => x_msg_count,
3164 x_msg_data => x_msg_data,
3165 x_chrv_tbl => l_chrv_tbl_out
3166 );
3167
3168 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract_Header :: Create_contract_header status: '||l_return_status );
3169 --dbms_output.put_line( 'K HDR CREATION :- HDR STATUS ' || l_return_status);
3170 x_return_status := l_return_status;
3171
3172 If l_return_status = 'S' then
3173 l_chrid := l_chrv_tbl_out(1).id;
3174 x_chrid := l_chrv_tbl_out(1).id;
3175 Else
3176 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'HEADER (HEADER)');
3177 Raise G_EXCEPTION_HALT_VALIDATION;
3178 End if;
3179
3180 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract_Header :: Header Id: '||to_char(l_chrid) );
3181
3182 /* ----create rules group
3183
3184 Create_Rule_grp
3185 (
3186 p_dnz_chr_id => l_chrid,
3187 p_chr_id => l_chrid,
3188 p_cle_id => NULL,
3189 x_rul_grp_id => l_rule_group_id,
3190 x_return_status => l_return_status,
3191 x_msg_data => x_msg_data,
3192 x_msg_count => x_msg_count
3193 );
3194
3195 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract_Header ::Create_Rule_grp status : '||l_return_status );
3196
3197 x_return_status := l_return_status;
3198 If Not l_return_status = OKC_API.G_RET_STS_SUCCESS Then
3199 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Order Header Id (HEADER)');
3200 Raise G_EXCEPTION_HALT_VALIDATION;
3201 End If;*/
3202
3203 --dbms_output.put_line( 'K HDR CREATION :- RULE GROUP STATUS '||l_return_status);
3204
3205 l_party_role.authoring_org_id := p_k_header_rec.authoring_org_id;
3206 l_party_role.party_id := p_k_header_rec.party_id;
3207 l_party_role.bill_to_id := p_k_header_rec.bill_to_id;
3208 l_party_role.third_party_role := p_k_header_rec.third_party_role;
3209 l_party_role.scs_code := p_k_header_rec.scs_code;
3210
3211
3212 --------creating contacts info
3213
3214 Create_contacts
3215 (
3216 p_contract_id => l_chrid,
3217 p_line_id => NULL,
3218 p_contact_info_tbl => p_header_contacts_tbl,
3219 p_party_role => l_party_role,
3220 x_return_status => l_return_status,
3221 x_msg_data => x_msg_data,
3222 x_msg_count => x_msg_count
3223 );
3224
3225 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract_Header ::Create_contacts status : '||l_return_status );
3226 --dbms_output.put_line('COntacts'||l_return_status);
3227 x_return_status := l_return_status;
3228
3229 If Not l_return_status = OKC_API.G_RET_STS_SUCCESS Then
3230 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Order Header Id (HEADER)');
3231 Raise G_EXCEPTION_HALT_VALIDATION;
3232 End If;
3233
3234
3235 -------end creating contacts info
3236
3237 ----CONTRACT GROUPING and approval work flow
3238
3239 Create_Groups
3240 (
3241 p_contract_id => l_chrid,
3242 p_pdf_id => p_k_header_rec.pdf_id,
3243 p_chr_group => p_k_header_rec.chr_group,
3244 x_return_status => l_return_status,
3245 x_msg_data => x_msg_data,
3246 x_msg_count => x_msg_count
3247 );
3248
3249 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract_Header ::Create_Groups status : '||l_return_status );
3250 --dbms_output.put_line('create group'||l_return_status);
3251 x_return_status := l_return_status;
3252
3253 If Not l_return_status = OKC_API.G_RET_STS_SUCCESS Then
3254 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Order Header Id (HEADER)');
3255 Raise G_EXCEPTION_HALT_VALIDATION;
3256 End If;
3257
3258
3259 ----END CONTRACT GROUPING
3260
3261
3262 Create_All_Rules
3263 (
3264 p_contract_rec => p_k_header_rec,
3265 p_rule_grp_id => l_rule_group_id,
3266 p_dnz_chr_id => l_chrid,
3267 x_return_status => l_return_status,
3268 x_msg_data => x_msg_data,
3269 x_msg_count => x_msg_count
3270 );
3271
3272 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract_Header ::Create_All_Rules status : '||l_return_status );
3273 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract_Header ::Rule group Id : '||to_char(l_rule_group_id) );
3274
3275 x_return_status := l_return_status;
3276
3277 If Not l_return_status = OKC_API.G_RET_STS_SUCCESS Then
3278 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'HEADER RULES NOT CREATED (HEADER)');
3279 Raise G_EXCEPTION_HALT_VALIDATION;
3280 End If;
3281
3282 --dbms_output.put_line( 'K HDR CREATION :- RULES CREATION STATUS '||l_return_status);
3283
3284 ----create sales credit
3285 Create_Sales_Credits
3286 (
3287 p_salescredit_tbl_in => p_header_sales_crd_tbl,
3288 p_contract_id => l_chrid,
3289 p_line_id => NULL,
3290 x_return_status => l_return_status,
3291 x_msg_data => x_msg_data,
3292 x_msg_count => x_msg_count
3293 );
3294
3295 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract_Header ::Create_Sales_Credits status : '||l_return_status );
3296 x_return_status := l_return_status;
3297
3298 --dbms_output.put_line( 'K HDR CREATION :- Sales Credit STATUS '||l_return_status);
3299
3300 If Not l_return_status = OKC_API.G_RET_STS_SUCCESS Then
3301 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Order Header Id (HEADER)');
3302 Raise G_EXCEPTION_HALT_VALIDATION;
3303 End If;
3304
3305 ----create obj rel
3306 Create_Obj_Rel
3307 (
3308 p_K_id => l_chrid,
3309 p_line_id => Null,
3310 p_orderhdrid => p_k_header_rec.order_hdr_id,
3311 p_orderlineid => Null,
3312 x_return_status => l_return_status,
3313 x_msg_count => x_msg_count,
3314 x_msg_data => x_msg_data
3315 );
3316
3317 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract_Header ::Create_Obj_Rel status : '||l_return_status );
3318 x_return_status := l_return_status;
3319
3320 If Not l_return_status = OKC_API.G_RET_STS_SUCCESS Then
3321 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Order Header Id (HEADER)');
3322 Raise G_EXCEPTION_HALT_VALIDATION;
3323 End If;
3324
3325 --dbms_output.put_line( 'K HDR CREATION :- OBJ RULE STATUS ' || l_return_Status);
3326
3327
3328 Create_articles
3329 (
3330 p_articles_tbl => p_header_articles_tbl,
3331 p_contract_id => l_chrid,
3332 p_cle_id => NULL,
3333 P_dnz_chr_id => l_chrid,
3334 x_return_status => l_return_status,
3335 x_msg_count => x_msg_count,
3336 x_msg_data => x_msg_data
3337 );
3338
3339 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract_Header ::create_articles status : '||l_return_status );
3340 x_return_status := l_return_status;
3341 --dbms_output.put_line( 'K HDR CREATION :- ARTICLE CREATION ' || l_return_Status);
3342
3343 If Not l_return_status = OKC_API.G_RET_STS_SUCCESS Then
3344 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Order Header Id (HEADER)');
3345 Raise G_EXCEPTION_HALT_VALIDATION;
3346 End If;
3347
3348 x_chrid := l_chrid;
3349
3350 EXCEPTION
3351 WHEN G_EXCEPTION_HALT_VALIDATION THEN
3352 x_return_status := l_return_status;
3353 WHEN Others THEN
3354 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
3355 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
3356 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract_Header ::Error : '||SQLCODE|| ':'||SQLERRM );
3357
3358 END Create_Contract_Header;
3359
3360 -----------------------------------------------------------------------------
3361 -- Get top line and sub line numbers
3362 -----------------------------------------------------------------------------
3363
3364 Function get_top_line_number(p_chr_id IN Number)
3365 Return Number
3366 Is
3367 max_line_number Number;
3368 Cursor get_line_number Is
3369 Select NVL(Max(TO_NUMBER(line_number)),0) +1
3370 From okc_k_lines_b
3371 Where dnz_chr_id = p_chr_id
3372 And lse_id in (1,12,14,19,46);
3373
3374 Begin
3375
3376 open get_line_number;
3377 Fetch get_line_number Into max_line_number;
3378 close get_line_number;
3379
3380 Return(max_line_number);
3381
3382 End get_top_line_number;
3383
3384
3385
3386
3387
3388 Function get_sub_line_number(p_chr_id IN Number,p_cle_id IN NUMBER)
3389 Return Number
3390 Is
3391 max_line_number Number;
3392 Cursor get_line_number Is
3393 Select NVL(Max(TO_NUMBER(line_number)),0) +1
3394 From okc_k_lines_b
3395 Where dnz_chr_id = p_chr_id
3396 And cle_id = p_cle_id
3397 And lse_id in (35,7,8,9,10,11,13,18,25);
3398
3399 Begin
3400
3401 open get_line_number;
3402 Fetch get_line_number Into max_line_number;
3403 close get_line_number;
3404
3405 Return(max_line_number);
3406
3407 End get_sub_line_number;
3408
3409
3410 -------------------------------------------------------------------------
3411 -- Create service line
3412 -------------------------------------------------------------------------
3413
3414 Procedure Create_Service_Line
3415 (
3416 p_k_line_rec IN line_Rec_Type
3417 ,p_Contact_tbl IN Contact_Tbl
3418 ,p_line_sales_crd_tbl IN SalesCredit_Tbl
3419 ,x_service_line_id OUT NOCOPY Number
3420 ,x_return_status OUT NOCOPY Varchar2
3421 ,x_msg_count OUT NOCOPY Number
3422 ,x_msg_data OUT NOCOPY Varchar2
3423 )
3424 Is
3425
3426 l_api_version CONSTANT NUMBER := 1.0;
3427 l_init_msg_list CONSTANT VARCHAR2(1) := OKC_API.G_FALSE;
3428 l_return_status VARCHAR2(1) := 'S';
3429 l_index VARCHAR2(2000);
3430
3431 l_ctcv_tbl_in Okc_contract_party_pub.ctcv_tbl_type;
3432 l_ctcv_tbl_out Okc_contract_party_pub.ctcv_tbl_type;
3433 l_bill_sch_out OKS_BILL_SCH.ItemBillSch_tbl;
3434 l_msg_index Number;
3435 l_klnv_tbl_in oks_kln_pvt.klnv_tbl_type;
3436 l_klnv_tbl_out oks_kln_pvt.klnv_tbl_type;
3437
3438
3439 Cursor l_ctr_csr (p_id Number) Is
3440 Select Counter_Group_id
3441 From OKX_CTR_ASSOCIATIONS_V
3442 Where Source_Object_Id = p_id;
3443
3444 Cursor l_billto_csr (p_billto Number) Is
3445 Select cust_account_id from OKX_CUST_SITE_USES_V
3446 where id1 = p_billto and id2 = '#';
3447
3448 Cursor l_ra_hcontacts_cur (p_contact_id number) Is
3449 Select hzr.object_id, hzr.party_id
3450 --NPALEPU
3451 --18-JUN-2005,08-AUG-2005
3452 --TCA Project
3453 --Replaced hz_party_relationships table with hz_relationships table and ra_hcontacts view with OKS_RA_HCONTACTS_V
3454 --Replaced hzr.party_relationship_id column with hzr.relationship_id column and added new conditions
3455 /* From ra_hcontacts rah, hz_party_relationships hzr
3456 Where rah.contact_id = p_contact_id
3457 And rah.party_relationship_id = hzr.party_relationship_id; */
3458 From OKS_RA_HCONTACTS_V rah, hz_relationships hzr
3459 Where rah.contact_id = p_contact_id
3460 And rah.party_relationship_id = hzr.relationship_id
3461 AND hzr.SUBJECT_TABLE_NAME = 'HZ_PARTIES'
3462 AND hzr.OBJECT_TABLE_NAME = 'HZ_PARTIES'
3463 AND hzr.DIRECTIONAL_FLAG = 'F';
3464 --END NPALEPU
3465
3466 CURSOR l_header_csr (p_header_id number) IS
3467 SELECT id,scs_code
3468 FROM okc_k_headers_b
3469 WHERE id = p_header_id;
3470
3471 CURSOR l_template_csr (p_srv_id NUMBER, p_orgid NUMBER) IS
3472 SELECT coverage_template_id
3473 FROM okx_system_items_v
3474 WHERE id1 = p_srv_id
3475 AND organization_id = p_orgid;
3476
3477
3478 l_header_rec l_header_csr%ROWTYPE;
3479 l_ctr_grpid Varchar2(40);
3480 l_template_id NUMBER;
3481
3482 --Contract Line Table
3483 l_clev_tbl_in okc_contract_pub.clev_tbl_type;
3484 l_clev_tbl_out okc_contract_pub.clev_tbl_type;
3485
3486 --Contract Item
3487 l_cimv_tbl_in okc_contract_item_pub.cimv_tbl_type;
3488 l_cimv_tbl_out okc_contract_item_pub.cimv_tbl_type;
3489
3490 --Rule Related
3491
3492 --l_rgpv_tbl_in okc_rule_pub.rgpv_tbl_type;
3493 --l_rgpv_tbl_out okc_rule_pub.rgpv_tbl_type;
3494
3495 --l_rulv_tbl_in okc_rule_pub.rulv_tbl_type;
3496 --l_rulv_tbl_out okc_rule_pub.rulv_tbl_type;
3497
3498 --Time Value Related
3499 l_isev_ext_tbl_in okc_time_pub.isev_ext_tbl_type;
3500 l_isev_ext_tbl_out okc_time_pub.isev_ext_tbl_type;
3501
3502 --SalesCredit
3503 l_scrv_tbl_in oks_sales_credit_pub.scrv_tbl_type;
3504 l_scrv_tbl_out oks_sales_credit_pub.scrv_tbl_type;
3505
3506 --Obj Rel
3507 l_crjv_tbl_out OKC_K_REL_OBJS_PUB.crjv_tbl_type;
3508
3509 --Coverage
3510 l_cov_rec OKS_COVERAGES_PUB.ac_rec_type;
3511
3512 --Counters
3513 l_ctr_grp_id_template NUMBER;
3514 l_ctr_grp_id_instance NUMBER;
3515
3516 --Return IDs
3517
3518 l_line_id NUMBER;
3519 l_rule_group_id NUMBER;
3520 l_rule_id NUMBER;
3521 l_line_item_id NUMBER;
3522 l_time_value_id NUMBER;
3523 l_cov_id NUMBER;
3524 l_salescredit_id NUMBER;
3525 l_organization_id NUMBER;
3526
3527
3528 --TimeUnits
3529 l_duration NUMBER;
3530 l_timeunits VARCHAR2(240);
3531
3532
3533 --General
3534 l_hdrsdt DATE;
3535 l_hdredt DATE;
3536 l_hdrstatus CHAR;
3537 l_hdrorgid Number;
3538 l_line_lse_id NUMBER;
3539 l_line_jtot_obj_code VARCHAR2(30) := NULL;
3540 i NUMBER;
3541 l_can_object NUMBER;
3542 l_line_party_role_id NUMBER;
3543 l_lin_party_id NUMBER;
3544 l_lin_contactid NUMBER;
3545 l_line_contact_id NUMBER;
3546 l_role VARCHAR2(40);
3547 l_obj VARCHAR2(40);
3548 l_msg_index_out NUMBER;
3549 l_org Number;
3550 l_msg_data Varchar2(2000);
3551 l_msg_count Number;
3552
3553
3554 BEGIN
3555
3556 x_return_status := OKC_API.G_RET_STS_SUCCESS;
3557
3558 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: CREATE SERVICE LINE FOR LINE TYPE : '||p_k_line_rec.line_type );
3559
3560 Validate_Line_Record
3561 ( p_line_rec => p_k_line_rec,
3562 x_return_status => l_return_status
3563 );
3564
3565 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: Validate_Line_Record status : '||l_return_status );
3566 --dbms_output.put_line('validate line rec'||l_return_status);
3567
3568 IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
3569 x_return_status := OKC_API.G_RET_STS_ERROR;
3570 Raise G_EXCEPTION_HALT_VALIDATION;
3571 END IF;
3572
3573 OPEN l_header_csr(p_k_line_rec.k_hdr_id);
3574 FETCH l_header_csr INTO l_header_rec;
3575
3576 IF l_header_csr%NOTFOUND THEN
3577 Close l_header_csr;
3578 l_return_status := 'E';
3579 Raise G_EXCEPTION_HALT_VALIDATION;
3580 ELSE
3581 Close l_header_csr;
3582 END IF;
3583
3584 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: Header Scs code : '||l_header_rec.scs_code );
3585 --dbms_output.put_line('header id '|| l_header_rec.id);
3586 --dbms_output.put_line('header scs code '||l_header_rec.scs_code ||' line type' ||p_K_line_rec.line_type );
3587
3588 Okc_context.set_okc_org_context (p_K_line_rec.org_id, p_K_line_rec.organization_id);
3589
3590
3591 IF l_header_rec.scs_code = 'WARRANTY' AND p_K_line_rec.line_type = 'W' THEN ----warranty
3592 l_line_lse_id := 14;
3593 l_line_jtot_obj_code := 'OKX_WARRANTY';
3594
3595 ELSIF l_header_rec.scs_code = 'WARRANTY' AND p_K_line_rec.line_type = 'E' THEN ---ext warranty
3596 l_line_lse_id := 19;
3597 l_line_jtot_obj_code := 'OKX_SERVICE';
3598
3599 ELSIF l_header_rec.scs_code = 'SERVICE' AND p_K_line_rec.line_type = 'U' THEN ----usage
3600 l_line_lse_id := 12;
3601 l_line_jtot_obj_code := 'OKX_USAGE';
3602
3603 ELSIF l_header_rec.scs_code = 'SERVICE' AND p_K_line_rec.line_type = 'S' THEN ---SERVICE
3604 l_line_lse_id := 1;
3605 l_line_jtot_obj_code := 'OKX_SERVICE';
3606
3607 ELSIF l_header_rec.scs_code = 'SUBSCRIPTION' AND p_K_line_rec.line_type = 'SB' THEN -- SUBSCRIPTION
3608 l_line_lse_id := 46;
3609 l_line_jtot_obj_code := 'OKS_SUBSCRIPTION' ; --'OKX_CUSTPROD';
3610
3611 ELSIF l_header_rec.scs_code = 'SUBSCRIPTION' AND p_K_line_rec.line_type = 'S' THEN -- SUBSCRIPTION
3612 l_line_lse_id := 1;
3613 l_line_jtot_obj_code := 'OKX_SERVICE';
3614
3615 ELSE
3616 x_return_status := 'E';
3617 Raise G_EXCEPTION_HALT_VALIDATION;
3618 END IF;
3619
3620 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: Line Lse Id : '||l_line_lse_id );
3621 --dbms_output.put_line('Line lse id'||l_line_lse_id);
3622
3623
3624 l_Line_id := Get_K_Cle_Id
3625 (
3626 p_ChrId => l_header_rec.id
3627 , p_InvServiceId => p_k_line_rec.srv_id
3628 , p_StartDate => p_k_line_rec.srv_sdt
3629 , p_EndDate => p_k_line_rec.srv_edt
3630 );
3631
3632 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: Line Id : '||to_char(l_line_id ));
3633 --dbms_output.put_line('K LINE CREATION :- LINE ID ' || l_line_id);
3634
3635 If l_line_id Is Not Null Then
3636 x_Service_Line_id := l_line_id;
3637 x_return_status := OKC_API.G_RET_STS_SUCCESS;
3638 End If;
3639
3640
3641 Check_hdr_effectivity
3642 (
3643 p_chr_id => l_header_rec.id,
3644 p_srv_sdt => p_k_line_rec.srv_sdt,
3645 p_srv_edt => p_k_line_rec.srv_edt,
3646 x_hdr_sdt => l_hdrsdt,
3647 x_hdr_edt => l_hdredt,
3648 x_org_id => l_hdrorgid,
3649 x_status => l_hdrstatus
3650 );
3651
3652 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: check_hdr_effectivity status : '||l_hdrstatus );
3653 --x_return_status := l_return_status;
3654
3655 If l_hdrstatus = 'N' Then
3656 NULL;
3657
3658 ElsIf l_hdrstatus = 'Y' Then
3659 x_return_status := OKC_API.G_RET_STS_ERROR;
3660 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'LINE EFFECTIVITY SHOULD BE WITH IN CONTRACT EFFECTIVITY');
3661 Raise G_EXCEPTION_HALT_VALIDATION;
3662
3663 End If;
3664 --dbms_output.put_line('Check header Effectivity status '||x_return_status);
3665
3666
3667
3668 If p_k_line_rec.line_type = 'SB' then
3669 l_clev_tbl_in(1).price_negotiated := p_k_line_rec.negotiated_amount;
3670 Else
3671 l_clev_tbl_in(1).price_negotiated := Null;
3672 End If;
3673
3674 l_clev_tbl_in(1).chr_id := l_header_rec.id;
3675 l_clev_tbl_in(1).sfwt_flag := 'N';
3676 l_clev_tbl_in(1).lse_id := l_line_lse_id;
3677 --l_clev_tbl_in(1).line_number := p_k_line_rec.k_line_number;
3678 l_clev_tbl_in(1).line_number := get_top_line_number(p_k_line_rec.k_hdr_id);
3679 l_clev_tbl_in(1).sts_code := NVL(p_k_line_rec.line_sts_code, 'ACTIVE');
3680 l_clev_tbl_in(1).display_sequence := 1;
3681 l_clev_tbl_in(1).dnz_chr_id := l_header_rec.id;
3682 --l_clev_tbl_in(1).name := Substr(p_k_line_rec.srv_segment1,1,50);
3683 l_clev_tbl_in(1).name := Null;
3684 l_clev_tbl_in(1).item_description := p_k_line_rec.srv_desc;
3685 l_clev_tbl_in(1).start_date := p_k_line_rec.srv_sdt;
3686 l_clev_tbl_in(1).end_date := p_k_line_rec.srv_edt;
3687 l_clev_tbl_in(1).exception_yn := 'N';
3688 l_clev_tbl_in(1).currency_code := p_k_line_rec.currency;
3689 l_clev_tbl_in(1).price_level_ind := Priced_YN(l_line_lse_id);
3690 l_clev_tbl_in(1).trn_code := p_k_line_rec.reason_code;
3691 l_clev_tbl_in(1).comments := p_k_line_rec.reason_comments;
3692 l_clev_tbl_in(1).Attribute1 := p_k_line_rec.attribute1;
3693 l_clev_tbl_in(1).Attribute2 := p_k_line_rec.attribute2;
3694 l_clev_tbl_in(1).Attribute3 := p_k_line_rec.attribute3;
3695 l_clev_tbl_in(1).Attribute4 := p_k_line_rec.attribute4;
3696 l_clev_tbl_in(1).Attribute5 := p_k_line_rec.attribute5;
3697 l_clev_tbl_in(1).Attribute6 := p_k_line_rec.attribute6;
3698 l_clev_tbl_in(1).Attribute7 := p_k_line_rec.attribute7;
3699 l_clev_tbl_in(1).Attribute8 := p_k_line_rec.attribute8;
3700 l_clev_tbl_in(1).Attribute9 := p_k_line_rec.attribute9;
3701 l_clev_tbl_in(1).Attribute10 := p_k_line_rec.attribute10;
3702 l_clev_tbl_in(1).Attribute11 := p_k_line_rec.attribute11;
3703 l_clev_tbl_in(1).Attribute12 := p_k_line_rec.attribute12;
3704 l_clev_tbl_in(1).Attribute13 := p_k_line_rec.attribute13;
3705 l_clev_tbl_in(1).Attribute14 := p_k_line_rec.attribute14;
3706 l_clev_tbl_in(1).Attribute15 := p_k_line_rec.attribute15;
3707 -- Rules inserted by okc
3708 l_can_object := NULL;
3709 OPEN l_billto_csr( p_k_line_rec.bill_to_id );
3710 FETCH l_billto_csr INTO l_can_object;
3711 CLOSE l_billto_csr;
3712
3713 --ramesh added on jan-26-01 for ib html interface
3714 IF l_can_object IS NULL THEN
3715 l_can_object := p_k_line_rec.cust_account;
3716 END IF;
3717
3718 l_clev_tbl_in( 1 ).cust_acct_id := l_can_object; --CAN
3719 l_clev_tbl_in( 1 ).inv_rule_id := p_k_line_rec.invoicing_rule_type; --IRE
3720 l_clev_tbl_in( 1 ).line_renewal_type_code := NVL( p_k_line_rec.line_renewal_type, 'FUL' ); --LRT
3721 l_clev_tbl_in( 1 ).bill_to_site_use_id := p_k_line_rec.bill_to_id; --BTO
3722 l_clev_tbl_in( 1 ).ship_to_site_use_id := p_k_line_rec.ship_to_id; --STO
3723
3724 okc_contract_pub.create_contract_line
3725 (
3726 p_api_version => l_api_version,
3727 p_init_msg_list => l_init_msg_list,
3728 x_return_status => l_return_status,
3729 x_msg_count => x_msg_count,
3730 x_msg_data => x_msg_data,
3731 p_clev_tbl => l_clev_tbl_in,
3732 x_clev_tbl => l_clev_tbl_out
3733 );
3734
3735 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: create_contract_line for' ||p_k_line_rec.line_type||' status : '||l_return_status );
3736 --dbms_output.put_line('K LINE CREATION :- LINE STATUS ' || l_return_status);
3737
3738 x_return_status := l_return_status;
3739
3740 If l_return_status = 'S' then
3741 l_line_id := l_clev_tbl_out(1).id;
3742 Else
3743 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Line (LINE)');
3744 Raise G_EXCEPTION_HALT_VALIDATION;
3745 End if;
3746
3747 -- rules inserted by oks --IRT
3748
3749 OKS_RENEW_PVT.DEBUG_LOG('Accounting id ' || p_k_line_rec.accounting_rule_type);
3750 --OKS_RENEW_PVT.DEBUG_LOG('commitment id ' || p_k_line_rec.commitment_id );
3751
3752 l_klnv_tbl_in( 1 ).cle_id := l_line_id;
3753 l_klnv_tbl_in( 1 ).dnz_chr_id := l_header_rec.id;
3754 l_klnv_tbl_in( 1 ).invoice_text := Substr(p_k_line_rec.srv_desc,1,50); --IRT
3755
3756 l_klnv_tbl_in( 1 ).acct_rule_id := p_k_line_rec.accounting_rule_type; --ARL
3757 --l_klnv_tbl_in( 1 ).commitment_id := p_k_line_rec.commitment_id; --PAYMENT METHOD
3758 l_klnv_tbl_in( 1 ).cust_po_number_req_yn := 'N'; -- po number required
3759 l_klnv_tbl_in( 1 ).inv_print_flag := 'N'; -- print flag
3760 l_klnv_tbl_in( 1 ).usage_type := p_k_line_rec.usage_type; --passing usagetype(fix for 4151328)
3761 l_klnv_tbl_in( 1 ).usage_period := p_k_line_rec.usage_period; --passing usageperiod(fix for 4151328)
3762
3763
3764 oks_contract_line_pub.create_line(
3765 p_api_version => l_api_version,
3766 p_init_msg_list => l_init_msg_list,
3767 x_return_status => l_return_status,
3768 x_msg_count => x_msg_count,
3769 x_msg_data => x_msg_data,
3770 p_klnv_tbl => l_klnv_tbl_in,
3771 x_klnv_tbl => l_klnv_tbl_out,
3772 p_validate_yn => 'N'
3773 );
3774
3775 IF NOT l_return_status = 'S' THEN
3776 OKC_API.SET_MESSAGE(
3777 g_app_name,
3778 g_required_value,
3779 g_col_name_token,
3780 'OKS Contract LINE'
3781 );
3782 RAISE G_EXCEPTION_HALT_VALIDATION;
3783 END IF;
3784
3785 OKS_RENEW_PVT.DEBUG_LOG('(OKS_EXTWARPRGM_PVT).Create_K_Service_Lines :: OKS create line Status : ' || l_return_status );
3786 FND_FILE.PUT_LINE( fnd_file.LOG, 'OKS K LINE CREATION :- LINE STATUS ' || l_return_status );
3787
3788
3789 okc_time_util_pub.get_duration
3790 (
3791 p_start_date => p_k_line_rec.srv_sdt,
3792 p_end_date => p_k_line_rec.srv_edt,
3793 x_duration => l_duration,
3794 x_timeunit => l_timeunits,
3795 x_return_status => l_return_status
3796 );
3797
3798 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: get_duration status : '||l_return_status );
3799 x_return_status := l_return_status;
3800 --dbms_output.put_line('get duration status = ' || x_return_status );
3801
3802 If Not l_return_status = OKC_API.G_RET_STS_SUCCESS Then
3803 Raise G_EXCEPTION_HALT_VALIDATION;
3804 End If;
3805
3806 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: Line jtot_obj_code : '||l_line_jtot_obj_code );
3807 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: Srv Id : '||p_k_line_rec.srv_id );
3808 --dbms_output.put_line('jtot_object1_code'||l_line_jtot_obj_code||'id'||p_k_line_rec.srv_id);
3809
3810 --Create Contract Item
3811 --If l_line_lse_id = 46 Then
3812 -- l_cimv_tbl_in(1).object1_id2 := '#';
3813 --Else
3814 l_cimv_tbl_in(1).object1_id2 := okc_context.get_okc_organization_id;
3815 --End If;
3816
3817 l_cimv_tbl_in(1).cle_id := l_line_id;
3818 l_cimv_tbl_in(1).dnz_chr_id := l_header_rec.id;
3819 l_cimv_tbl_in(1).object1_id1 := p_k_line_rec.srv_id;
3820 l_cimv_tbl_in(1).jtot_object1_code := l_line_jtot_obj_code;
3821 l_cimv_tbl_in(1).exception_yn := 'N';
3822 l_cimv_tbl_in(1).number_of_items := p_k_line_rec.quantity; --l_duration;
3823 l_cimv_tbl_in(1).uom_code := p_k_line_rec.uom_code; --l_timeunits;
3824
3825 --dbms_output.put_line('l_cimv_tbl_in(1).object1_id1 '|| l_cimv_tbl_in(1).object1_id1);
3826
3827 okc_contract_item_pub.create_contract_item
3828 (
3829 p_api_version => l_api_version,
3830 p_init_msg_list => l_init_msg_list,
3831 x_return_status => l_return_status,
3832 x_msg_count => x_msg_count,
3833 x_msg_data => x_msg_data,
3834 p_cimv_tbl => l_cimv_tbl_in,
3835 x_cimv_tbl => l_cimv_tbl_out
3836 );
3837
3838 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: create_contract_item status : '||l_return_status );
3839 --dbms_output.put_line('K LINE CREATION :- KITEM STATUS ' || l_return_status);
3840
3841 x_return_status := l_return_status;
3842
3843 If l_return_status = OKC_API.G_RET_STS_SUCCESS then
3844 l_line_item_id := l_cimv_tbl_out(1).id;
3845 Else
3846 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Service Inventory Item ID ' || p_k_line_rec.srv_id || ' ORG ' + okc_context.get_okc_organization_id);
3847 Raise G_EXCEPTION_HALT_VALIDATION;
3848 End if;
3849
3850 ----create sales credit
3851
3852 Create_Sales_Credits
3853 (
3854 p_salescredit_tbl_in => p_line_sales_crd_tbl,
3855 p_contract_id => l_header_rec.id,
3856 p_line_id => l_line_id,
3857 x_return_status => l_return_status,
3858 x_msg_data => x_msg_data,
3859 x_msg_count => x_msg_count
3860 );
3861
3862 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: Create_Sales_Credits status : '||l_return_status );
3863 x_return_status := l_return_status;
3864 --dbms_output.put_line('LINE CREATION :- SALES CREDIT STATUS ' || l_return_status);
3865
3866 /*
3867 --Rule Group Routine
3868 ------check/create rules group
3869
3870 Create_Rule_grp
3871 (
3872 p_dnz_chr_id => l_header_rec.id,
3873 p_chr_id => NULL,
3874 p_cle_id => l_line_id,
3875 x_rul_grp_id => l_rule_group_id,
3876 x_return_status => l_return_status,
3877 x_msg_data => x_msg_data,
3878 x_msg_count => x_msg_count
3879 );
3880
3881 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: Create_Rule_grp status : '||l_return_status );
3882 x_return_status := l_return_status;
3883 --dbms_output.put_line( 'LINE CREATION :- RULE GROUP STATUS '||l_return_status);
3884
3885 --Customer Account
3886
3887 Open l_billto_csr (p_k_line_rec.bill_to_id);
3888 Fetch l_billto_csr into l_can_object;
3889 Close l_billto_csr;
3890
3891 l_rulv_tbl_in.delete;
3892
3893 l_rule_id := Check_Rule_Exists(l_rule_group_id, 'CAN');
3894
3895 If l_rule_id Is NULL Then
3896
3897 l_rulv_tbl_in(1).rgp_id := l_rule_group_id;
3898 l_rulv_tbl_in(1).sfwt_flag := 'N';
3899 l_rulv_tbl_in(1).std_template_yn := 'N';
3900 l_rulv_tbl_in(1).warn_yn := 'N';
3901 l_rulv_tbl_in(1).rule_information_category := 'CAN';
3902 l_rulv_tbl_in(1).object1_id1 := l_can_object;
3903 l_rulv_tbl_in(1).object1_id2 := '#';
3904 l_rulv_tbl_in(1).jtot_object1_code := G_JTF_CUSTACCT;
3905 l_rulv_tbl_in(1).dnz_chr_id := l_header_rec.id;
3906
3907 Create_rules
3908 (
3909 p_rulv_tbl => l_rulv_tbl_in,
3910 x_rulv_tbl => l_rulv_tbl_out,
3911 x_return_status => l_return_status,
3912 x_msg_count => x_msg_count,
3913 x_msg_data => x_msg_data
3914 );
3915
3916 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: Create CAN Rule status : '||l_return_status );
3917 --dbms_output.put_line('K LINE CREATION :- CAN RULE STATUS ' || l_return_status);
3918 x_return_status := l_return_status;
3919
3920 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
3921 l_rule_id := l_rulv_tbl_out(1).id;
3922 Else
3923 OKC_API.set_message
3924 (
3925 p_app_name => 'OKS',
3926 p_msg_name => G_REQUIRED_VALUE,
3927 p_token1 => G_COL_NAME_TOKEN,
3928 p_token1_value => 'Customer Account (LINE)'
3929 );
3930
3931 Raise G_EXCEPTION_HALT_VALIDATION;
3932 End If;
3933
3934 End If;
3935 */
3936
3937 --CONTACT CREATION ROUTINE STARTS
3938
3939
3940 If p_contact_tbl.count > 0 Then
3941
3942 i := p_Contact_Tbl.First;
3943 Loop
3944
3945 Open l_ra_hcontacts_cur (p_Contact_tbl (i).contact_id);
3946 Fetch l_ra_hcontacts_cur into l_lin_party_id, l_lin_contactid;
3947 Close l_ra_hcontacts_cur;
3948
3949 If i = p_contact_tbl.first Then
3950
3951 If l_header_rec.scs_code = 'SUBSCRIPTION' then
3952 Party_Role
3953 (
3954 p_chrId => l_header_rec.id,
3955 p_cleId => l_line_id,
3956 p_Rle_Code => 'SUBSCRIBER',
3957 p_PartyId => l_lin_party_id,
3958 p_Object_Code => G_JTF_PARTY,
3959 x_roleid => l_line_party_role_id,
3960 x_msg_count => x_msg_count,
3961 x_msg_data => x_msg_data,
3962 x_return_status => l_return_status
3963 );
3964
3965 --dbms_output.put_line(' LINE PARTY ROLE CREATION :- CPL ID ' || l_line_party_role_id);
3966
3967 Else
3968
3969 Party_Role
3970 (
3971 p_chrId => l_header_rec.id,
3972 p_cleId => l_line_id,
3973 p_Rle_Code => 'CUSTOMER',
3974 p_PartyId => l_lin_party_id,
3975 p_Object_Code => G_JTF_PARTY,
3976 x_roleid => l_line_party_role_id,
3977 x_msg_count => x_msg_count,
3978 x_msg_data => x_msg_data,
3979 x_return_status => l_return_status
3980 );
3981
3982 --dbms_output.put_line(' LINE PARTY ROLE CREATION :- CPL ID ' || l_line_party_role_id);
3983 End If;
3984 End If;
3985
3986 If p_contact_tbl(i).contact_role like '%BILLING%' Then
3987 l_role := 'CUST_BILLING';
3988 l_obj := 'OKX_CONTBILL';
3989 Elsif p_contact_tbl(i).contact_role like '%ADMIN%' Then
3990 l_role := 'CUST_ADMIN';
3991 l_obj := 'OKX_CONTADMN';
3992 Elsif p_contact_tbl(i).contact_role like '%SHIP%' Then
3993 l_role := 'CUST_SHIPPING';
3994 l_obj := 'OKX_CONTSHIP';
3995 End if;
3996
3997 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: CPL Id : '||l_line_party_role_id );
3998 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: Line Party Id : '||l_lin_party_id );
3999 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: Org Contact Id : '||p_Contact_tbl (i).contact_id );
4000 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: RAH Contact Id : '||l_lin_contactid );
4001 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: Contact Role : '||p_Contact_tbl (i).contact_role );
4002 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: Contact OBJ : '||p_Contact_tbl (i).contact_object_code );
4003
4004 l_ctcv_tbl_in(1).cpl_id := l_line_party_role_id;
4005 l_ctcv_tbl_in(1).dnz_chr_id := l_header_rec.id;
4006 l_ctcv_tbl_in(1).cro_code := l_role;
4007 l_ctcv_tbl_in(1).object1_id1 := p_contact_tbl(i).contact_id;
4008 l_ctcv_tbl_in(1).object1_id2 := '#';
4009 l_ctcv_tbl_in(1).jtot_object1_code := l_obj;
4010
4011 okc_contract_party_pub.create_contact
4012 (
4013 p_api_version => l_api_version,
4014 p_init_msg_list => l_init_msg_list,
4015 x_return_status => l_return_status,
4016 x_msg_count => x_msg_count,
4017 x_msg_data => x_msg_data,
4018 p_ctcv_tbl => l_ctcv_tbl_in,
4019 x_ctcv_tbl => l_ctcv_tbl_out
4020 );
4021
4022 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: create_contact '||i||':'||l_return_status );
4023 x_return_status := l_return_status;
4024
4025 If l_return_status = OKC_API.G_RET_STS_SUCCESS then
4026 l_line_contact_id := l_ctcv_tbl_out(1).id;
4027 Else
4028 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, p_Contact_tbl (i).contact_role
4029 || ' Contact (LINE) ' || p_Contact_tbl (i).contact_object_code);
4030 Raise G_EXCEPTION_HALT_VALIDATION;
4031 End if;
4032
4033 Exit When i = p_Contact_Tbl.Last;
4034 i := p_Contact_Tbl.Next(i);
4035
4036 End Loop;
4037
4038 End If;
4039
4040 /*
4041 ---TAX creation
4042
4043 IF p_k_line_rec.tax_exemption_id Is Not Null THEN
4044
4045 l_rulv_tbl_in.DELETE;
4046
4047 l_rule_id := Check_Rule_Exists(l_rule_group_id, 'TAX');
4048
4049 IF l_rule_id Is NULL THEN
4050
4051 l_rulv_tbl_in(1).rgp_id := l_rule_group_id;
4052 l_rulv_tbl_in(1).sfwt_flag := 'N';
4053 l_rulv_tbl_in(1).std_template_yn := 'N';
4054 l_rulv_tbl_in(1).warn_yn := 'N';
4055 l_rulv_tbl_in(1).rule_information_category := 'TAX';
4056 l_rulv_tbl_in(1).object1_id1 := p_k_line_rec.tax_exemption_id;
4057 l_rulv_tbl_in(1).object1_id2 := '#';
4058 l_rulv_tbl_in(1).JTOT_OBJECT1_CODE := G_JTF_TAXEXEMP;
4059 l_rulv_tbl_in(1).object2_id1 := 'TAX_CONTROL_FLAG';
4060 l_rulv_tbl_in(1).object2_id2 := p_k_line_rec.tax_status_flag;
4061 l_rulv_tbl_in(1).JTOT_OBJECT2_CODE := G_JTF_TAXCTRL;
4062 l_rulv_tbl_in(1).dnz_chr_id := p_k_line_rec.k_hdr_id;
4063 l_rulv_tbl_in(1).object_version_number := OKC_API.G_MISS_NUM;
4064 l_rulv_tbl_in(1).created_by := OKC_API.G_MISS_NUM;
4065 l_rulv_tbl_in(1).creation_date := SYSDATE;
4066 l_rulv_tbl_in(1).last_updated_by := OKC_API.G_MISS_NUM;
4067 l_rulv_tbl_in(1).last_update_date := SYSDATE;
4068
4069 OKC_RULE_PUB.create_rule
4070 (
4071 p_api_version => l_api_version,
4072 x_return_status => l_return_status,
4073 x_msg_count => x_msg_count,
4074 x_msg_data => x_msg_data,
4075 p_rulv_tbl => l_rulv_tbl_in,
4076 x_rulv_tbl => l_rulv_tbl_out
4077 );
4078
4079 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: TAX rule Status:'||l_return_status );
4080 --dbms_output.put_line( 'K LINE CREATION :- TAX RULE STATUS ' || l_return_Status);
4081
4082 x_return_status := l_return_status;
4083
4084 IF l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
4085 l_rule_id := l_rulv_tbl_out(1).id;
4086 ELSE
4087 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'TAX EXEMPTION (LINE)');
4088 Raise G_EXCEPTION_HALT_VALIDATION;
4089 END IF;
4090
4091 END IF;
4092
4093 END IF;
4094
4095 --CONTACT CREATION ROUTINE ENDS
4096
4097
4098 --Accounting Rule ID Routine
4099
4100 If p_k_line_rec.accounting_rule_type Is Not Null Then
4101
4102 l_rulv_tbl_in.delete;
4103
4104 l_rule_id := Check_Rule_Exists(l_rule_group_id, 'ARL');
4105
4106 If l_rule_id Is NULL Then
4107
4108 l_rulv_tbl_in(1).rgp_id := l_rule_group_id;
4109 l_rulv_tbl_in(1).sfwt_flag := 'N';
4110 l_rulv_tbl_in(1).std_template_yn := 'N';
4111 l_rulv_tbl_in(1).warn_yn := 'N';
4112 l_rulv_tbl_in(1).rule_information_category := 'ARL';
4113 l_rulv_tbl_in(1).object1_id1 := p_k_line_rec.accounting_rule_type;
4114 l_rulv_tbl_in(1).object1_id2 := '#';
4115 l_rulv_tbl_in(1).jtot_object1_code := G_JTF_ARL;
4116 l_rulv_tbl_in(1).dnz_chr_id := l_header_rec.id;
4117
4118 create_rules
4119 (
4120 p_rulv_tbl => l_rulv_tbl_in,
4121 x_rulv_tbl => l_rulv_tbl_out,
4122 x_return_status => l_return_status,
4123 x_msg_count => x_msg_count,
4124 x_msg_data => x_msg_data
4125 );
4126
4127 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: ARL rule Status:'||l_return_status );
4128 --dbms_output.put_line('K LINE CREATION :- ARL RULE STATUS ' || l_return_status);
4129 x_return_status := l_return_status;
4130
4131 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
4132 l_rule_id := l_rulv_tbl_out(1).id;
4133 Else
4134 OKC_API.set_message
4135 (
4136 p_app_name => 'OKS',
4137 p_msg_name => G_REQUIRED_VALUE,
4138 p_token1 => G_COL_NAME_TOKEN,
4139 p_token1_value => 'Customer Account (LINE)'
4140 );
4141 Raise G_EXCEPTION_HALT_VALIDATION;
4142 End If;
4143
4144 End If;
4145
4146 End If;
4147
4148
4149
4150 --QRE rule for usage only
4151 --rule will be created only for usage item i.e, for lse_id = 12
4152
4153 If l_line_lse_id = 12 THEN
4154
4155 l_rulv_tbl_in.delete;
4156
4157 l_rule_id := Check_Rule_Exists(l_rule_group_id, 'QRE');
4158
4159 If l_rule_id Is NULL Then
4160
4161 l_rulv_tbl_in(1).rgp_id := l_rule_group_id;
4162 l_rulv_tbl_in(1).sfwt_flag := 'N';
4163 l_rulv_tbl_in(1).std_template_yn := 'N';
4164 l_rulv_tbl_in(1).warn_yn := 'N';
4165 l_rulv_tbl_in(1).rule_information_category := 'QRE';
4166 --l_rulv_tbl_in(1).rule_information1 := Substr(p_k_line_rec.srv_desc,1,50);
4167 l_rulv_tbl_in(1).rule_information11 := p_k_line_rec.usage_period;
4168 l_rulv_tbl_in(1).rule_information2 := p_k_line_rec.usage_period;
4169 l_rulv_tbl_in(1).rule_information6 := 'N';
4170 l_rulv_tbl_in(1).rule_information9 := 'N';
4171 l_rulv_tbl_in(1).ATTRIBUTE11 := p_k_line_rec.usage_period;
4172 l_rulv_tbl_in(1).rule_information10 := p_k_line_rec.usage_type;
4173 l_rulv_tbl_in(1).dnz_chr_id := l_header_rec.id;
4174
4175 create_rules
4176 (
4177 p_rulv_tbl => l_rulv_tbl_in,
4178 x_rulv_tbl => l_rulv_tbl_out,
4179 x_return_status => l_return_status,
4180 x_msg_count => x_msg_count,
4181 x_msg_data => x_msg_data
4182 );
4183
4184 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: QRE rule Status:'||l_return_status );
4185 --dbms_output.put_line('K LINE CREATION :- QRE RULE STATUS ' || l_return_status);
4186
4187 x_return_status := l_return_status;
4188
4189 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
4190 l_rule_id := l_rulv_tbl_out(1).id;
4191 Else
4192 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'USAGE ITEM (LINE)');
4193 Raise G_EXCEPTION_HALT_VALIDATION;
4194 End If;
4195
4196 End If;
4197
4198 End if;
4199
4200
4201 -- Line Invoicing Rule ONLY FOR USAGE AND SERVICE
4202
4203 -- IF l_line_lse_id = 1 or l_line_lse_id = 12 THEN
4204
4205 If p_k_line_rec.invoicing_rule_type Is Not Null Then
4206
4207 l_rulv_tbl_in.delete;
4208 l_rule_id := Check_Rule_Exists(l_rule_group_id, 'IRE');
4209
4210 If l_rule_id Is NULL Then
4211
4212 l_rulv_tbl_in(1).rgp_id := l_rule_group_id;
4213 l_rulv_tbl_in(1).sfwt_flag := 'N';
4214 l_rulv_tbl_in(1).std_template_yn := 'N';
4215 l_rulv_tbl_in(1).warn_yn := 'N';
4216 l_rulv_tbl_in(1).rule_information_category := 'IRE';
4217 l_rulv_tbl_in(1).object1_id1 := p_k_line_rec.invoicing_rule_type;
4218 l_rulv_tbl_in(1).object1_id2 := '#';
4219 l_rulv_tbl_in(1).jtot_object1_code := G_JTF_IRE;
4220 l_rulv_tbl_in(1).dnz_chr_id := l_header_rec.id;
4221
4222 create_rules
4223 (
4224 p_rulv_tbl => l_rulv_tbl_in,
4225 x_rulv_tbl => l_rulv_tbl_out,
4226 x_return_status => l_return_status,
4227 x_msg_count => x_msg_count,
4228 x_msg_data => x_msg_data
4229 );
4230
4231 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: IRE rule Status:'||l_return_status );
4232 --dbms_output.put_line( 'K LINE CREATION :- IRE RULE STATUS ' || l_return_Status);
4233
4234 x_return_status := l_return_status;
4235
4236 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
4237 l_rule_id := l_rulv_tbl_out(1).id;
4238 Else
4239 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Invoice Id (LINE)');
4240 Raise G_EXCEPTION_HALT_VALIDATION;
4241 End If;
4242
4243 End If;
4244
4245 End If;
4246
4247 --End If;
4248
4249 --Invoice Text Routine
4250 IF p_k_line_rec.srv_desc IS NOT NULL THEN
4251 l_rulv_tbl_in.delete;
4252
4253 l_rule_id := Check_Rule_Exists(l_rule_group_id, 'IRT');
4254
4255 If l_rule_id Is NULL Then
4256
4257 l_rulv_tbl_in(1).rgp_id := l_rule_group_id;
4258 l_rulv_tbl_in(1).sfwt_flag := 'N';
4259 l_rulv_tbl_in(1).std_template_yn := 'N';
4260 l_rulv_tbl_in(1).warn_yn := 'N';
4261 l_rulv_tbl_in(1).rule_information_category := 'IRT';
4262 l_rulv_tbl_in(1).rule_information1 := Substr(p_k_line_rec.srv_desc,1,50);
4263 l_rulv_tbl_in(1).rule_information2 := 'Y';
4264 l_rulv_tbl_in(1).dnz_chr_id := l_header_rec.id;
4265
4266 create_rules
4267 (
4268 p_rulv_tbl => l_rulv_tbl_in,
4269 x_rulv_tbl => l_rulv_tbl_out,
4270 x_return_status => l_return_status,
4271 x_msg_count => x_msg_count,
4272 x_msg_data => x_msg_data
4273 );
4274
4275 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: IRT rule Status:'||l_return_status );
4276 --dbms_output.put_line('K LINE CREATION :- IRT RULE STATUS ' || l_return_status);
4277 x_return_status := l_return_status;
4278
4279 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
4280 l_rule_id := l_rulv_tbl_out(1).id;
4281 Else
4282 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'INVOICE TEXT (LINE)');
4283 Raise G_EXCEPTION_HALT_VALIDATION;
4284 End If;
4285
4286 End If;
4287 END IF;
4288
4289 --Line Renewal Type To Routine
4290
4291 l_rulv_tbl_in.delete;
4292 l_rule_id := Check_Rule_Exists(l_rule_group_id, 'LRT');
4293
4294 If l_rule_id Is NULL Then
4295
4296 l_rulv_tbl_in(1).rgp_id := l_rule_group_id;
4297 l_rulv_tbl_in(1).sfwt_flag := 'N';
4298 l_rulv_tbl_in(1).std_template_yn := 'N';
4299 l_rulv_tbl_in(1).warn_yn := 'N';
4300 l_rulv_tbl_in(1).rule_information_category := 'LRT';
4301 l_rulv_tbl_in(1).rule_information1 := Nvl(p_k_line_rec.line_renewal_type,'FUL');
4302 l_rulv_tbl_in(1).dnz_chr_id := l_header_rec.id;
4303
4304 create_rules
4305 (
4306 p_rulv_tbl => l_rulv_tbl_in,
4307 x_rulv_tbl => l_rulv_tbl_out,
4308 x_return_status => l_return_status,
4309 x_msg_count => x_msg_count,
4310 x_msg_data => x_msg_data
4311 );
4312
4313 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: LRT rule Status:'||l_return_status );
4314 --dbms_output.put_line('K LINE CREATION :- LRT RULE STATUS ' || l_return_status);
4315 x_return_status := l_return_status;
4316
4317 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
4318 l_rule_id := l_rulv_tbl_out(1).id;
4319 Else
4320 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'LINE RENEWAL TYPE (LINE)');
4321 Raise G_EXCEPTION_HALT_VALIDATION;
4322 End If;
4323
4324 End If;
4325
4326 --Bill To Routine
4327
4328 If p_k_line_rec.bill_to_id Is Not Null Then
4329
4330 l_rulv_tbl_in.delete;
4331
4332 l_rule_id := Check_Rule_Exists(l_rule_group_id, 'BTO');
4333
4334 If l_rule_id Is NULL Then
4335
4336 l_rulv_tbl_in(1).rgp_id := l_rule_group_id;
4337 l_rulv_tbl_in(1).sfwt_flag := 'N';
4338 l_rulv_tbl_in(1).std_template_yn := 'N';
4339 l_rulv_tbl_in(1).warn_yn := 'N';
4340 l_rulv_tbl_in(1).rule_information_category := 'BTO';
4341 l_rulv_tbl_in(1).object1_id1 := p_k_line_rec.bill_to_id;
4342 l_rulv_tbl_in(1).object1_id2 := '#';
4343 l_rulv_tbl_in(1).jtot_object1_code := G_JTF_BILLTO;
4344 l_rulv_tbl_in(1).dnz_chr_id := l_header_rec.id;
4345
4346 create_rules
4347 (
4348 p_rulv_tbl => l_rulv_tbl_in,
4349 x_rulv_tbl => l_rulv_tbl_out,
4350 x_return_status => l_return_status,
4351 x_msg_count => x_msg_count,
4352 x_msg_data => x_msg_data
4353 );
4354
4355 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: BTO rule Status:'||l_return_status );
4356 --dbms_output.put_line('K LINE CREATION :- BTO RULE STATUS ' || l_return_status);
4357 x_return_status := l_return_status;
4358
4359 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
4360 l_rule_id := l_rulv_tbl_out(1).id;
4361 Else
4362 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'BillTo ID (LINE)');
4363 Raise G_EXCEPTION_HALT_VALIDATION;
4364 End If;
4365
4366 End If;
4367
4368 End If;
4369
4370 --Ship To Routine
4371
4372 If p_k_line_rec.ship_to_id Is Not Null Then
4373
4374 l_rulv_tbl_in.delete;
4375 l_rule_id := Check_Rule_Exists(l_rule_group_id, 'STO');
4376
4377 If l_rule_id Is NULL Then
4378
4379 l_rulv_tbl_in(1).rgp_id := l_rule_group_id;
4380 l_rulv_tbl_in(1).sfwt_flag := 'N';
4381 l_rulv_tbl_in(1).std_template_yn := 'N';
4382 l_rulv_tbl_in(1).warn_yn := 'N';
4383 l_rulv_tbl_in(1).rule_information_category := 'STO';
4384 l_rulv_tbl_in(1).object1_id1 := p_k_line_rec.ship_to_id;
4385 l_rulv_tbl_in(1).object1_id2 := '#';
4386 l_rulv_tbl_in(1).jtot_object1_code := G_JTF_SHIPTO;
4387 l_rulv_tbl_in(1).dnz_chr_id := l_header_rec.id;
4388
4389 create_rules
4390 (
4391 p_rulv_tbl => l_rulv_tbl_in,
4392 x_rulv_tbl => l_rulv_tbl_out,
4393 x_return_status => l_return_status,
4394 x_msg_count => x_msg_count,
4395 x_msg_data => x_msg_data
4396 );
4397
4398 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: STO rule Status:'||l_return_status );
4399 --dbms_output.put_line('K LINE CREATION :- STO RULE STATUS ' || l_return_status);
4400
4401 x_return_status := l_return_status;
4402
4403 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
4404 l_rule_id := l_rulv_tbl_out(1).id;
4405 Else
4406 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'ShipTo ID (LINE)');
4407 Raise G_EXCEPTION_HALT_VALIDATION;
4408 End If;
4409
4410 End If;
4411
4412 End If; --end ship to id null
4413
4414 */
4415
4416 ----create objrel only for ext warranty
4417
4418 IF l_line_lse_id = 19 AND p_k_line_rec.order_line_id Is Not Null Then
4419
4420
4421 Create_Obj_Rel
4422 (
4423 p_K_id => Null,
4424 p_line_id => l_line_id,
4425 p_orderhdrid => Null,
4426 p_orderlineid => p_k_line_rec.order_line_id,
4427 x_return_status => l_return_status,
4428 x_msg_count => x_msg_count,
4429 x_msg_data => x_msg_data
4430 );
4431
4432 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: Create_Obj_Rel Status:'||l_return_status );
4433 --dbms_output.put_line('K LINE CREATION :- OBJ REL STATUS ' || l_return_status);
4434
4435 x_return_status := l_return_status;
4436
4437 If Not l_return_status = OKC_API.G_RET_STS_SUCCESS Then
4438 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Order Line Id (LINE)');
4439 Raise G_EXCEPTION_HALT_VALIDATION;
4440 End If;
4441
4442 End If; ----------end objrel only for ext warranty
4443
4444 ----coverage for service,ext war, war
4445
4446 IF l_line_lse_id not in (12,46) THEN --- No coverages for usage lines
4447
4448 l_organization_id := Okc_context.get_okc_organization_id ;
4449 --dbms_output.put_line('serv_id '||p_k_line_rec.srv_id );
4450
4451 OPEN l_template_csr(p_k_line_rec.srv_id, l_organization_id);
4452 FETCH l_template_csr INTO l_template_id;
4453
4454 IF l_template_csr%NOTFOUND THEN
4455 Close l_template_csr;
4456 x_return_status := OKC_API.G_RET_STS_ERROR ;
4457 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'TEMPLATE ID NOT FOUND (LINE)');
4458 Raise G_EXCEPTION_HALT_VALIDATION;
4459 ELSE
4460 Close l_template_csr;
4461 END IF;
4462
4463 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: Template Id:'||l_template_id );
4464 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: SRV ID :'||p_k_line_rec.srv_id );
4465 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: Line Id :'||l_line_id );
4466
4467 --dbms_output.put_line('l_line_id :: '|| l_line_id);
4468 --dbms_output.put_line('l_template_id:: '|| l_template_id);
4469 --dbms_output.put_line('start date:: '||p_k_line_rec.srv_sdt );
4470
4471 l_cov_rec.Svc_cle_Id := l_line_id;
4472 l_cov_rec.Tmp_cle_Id := l_template_id;
4473 l_cov_rec.Start_date := p_k_line_rec.srv_sdt;
4474 l_cov_rec.End_Date := p_k_line_rec.srv_edt;
4475
4476 OKS_COVERAGES_PUB.CREATE_ACTUAL_COVERAGE
4477 (
4478 p_api_version => 1.0,
4479 p_init_msg_list => OKC_API.G_FALSE,
4480 x_return_status => l_return_status,
4481 x_msg_count => x_msg_count,
4482 x_msg_data => x_msg_data,
4483 P_ac_rec_in => l_cov_rec,
4484 x_Actual_coverage_id => l_cov_id
4485 );
4486
4487
4488 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: Create_Actual_Coverage Status :'||l_return_status );
4489 --dbms_output.put_line('K LINE CREATION :- COV STATUS ' || l_return_status);
4490 x_return_status := l_return_status;
4491
4492 If Not l_return_status = OKC_API.G_RET_STS_SUCCESS Then
4493 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'CoverageInstantiate (LINE)');
4494 Raise G_EXCEPTION_HALT_VALIDATION;
4495 End If;
4496
4497 End if; -- for coverages
4498
4499
4500
4501 l_ctr_grpid := Null;
4502
4503 IF l_line_lse_id not in (46) THEN
4504
4505 Open l_ctr_csr (p_k_line_rec.srv_id);
4506 Fetch l_ctr_csr Into l_ctr_grpid;
4507 Close l_ctr_csr;
4508
4509 If l_ctr_grpid Is Not Null Then
4510
4511 cs_counters_pub.autoinstantiate_counters
4512 (
4513 P_API_VERSION => 1.0,
4514 P_INIT_MSG_LIST => 'T',
4515 P_COMMIT => 'F',
4516 X_RETURN_STATUS => l_return_status,
4517 X_MSG_COUNT => x_msg_count,
4518 X_MSG_DATA => x_msg_data,
4519 P_SOURCE_OBJECT_ID_TEMPLATE => p_k_line_rec.srv_id,
4520 P_SOURCE_OBJECT_ID_INSTANCE => l_line_id,
4521 X_CTR_GRP_ID_TEMPLATE => l_ctr_grp_id_template,
4522 X_CTR_GRP_ID_INSTANCE => l_ctr_grp_id_instance
4523 );
4524
4525 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: autoinstantiate_counters Status :'||l_return_status );
4526 --dbms_output.put_line('K LINE CREATION :- CTR STATUS ' || l_return_status);
4527 x_return_status := l_return_status;
4528
4529 If Not l_return_status = OKC_API.G_RET_STS_SUCCESS Then
4530 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Counter Instantiate (LINE)');
4531 Raise G_EXCEPTION_HALT_VALIDATION;
4532 End If;
4533
4534 End If;
4535 End if;
4536 x_service_line_id := l_line_id;
4537
4538 Exception
4539
4540 When G_EXCEPTION_HALT_VALIDATION Then
4541 x_return_status := l_return_status;
4542 When Others Then
4543 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
4544 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
4545 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Service_Line :: Error:'||SQLCODE ||':'|| SQLERRM);
4546
4547 End Create_Service_line;
4548
4549
4550
4551
4552
4553
4554 -----------------------------------------------------------------------
4555 -- Procedure for creating Covered line
4556 --------------------------------------------------------------------------
4557
4558 Procedure Create_Covered_Line
4559 (
4560 p_k_covd_rec IN Covered_level_Rec_Type
4561 , p_PRICE_ATTRIBS IN Pricing_attributes_Type
4562 , x_cp_line_id OUT NOCOPY NUMBER
4563 , x_return_status OUT NOCOPY Varchar2
4564 , x_msg_count OUT NOCOPY Number
4565 , x_msg_data OUT NOCOPY Varchar2
4566 )
4567 Is
4568
4569 l_api_version CONSTANT NUMBER := 1.0;
4570 l_init_msg_list CONSTANT VARCHAR2(1) := OKC_API.G_FALSE;
4571 l_return_status VARCHAR2(1) := 'S';
4572 l_index VARCHAR2(2000);
4573
4574 --Contract Line Table
4575 l_clev_tbl_in okc_contract_pub.clev_tbl_type;
4576 l_clev_tbl_out okc_contract_pub.clev_tbl_type;
4577
4578 --Contract Item
4579 l_cimv_tbl_in okc_contract_item_pub.cimv_tbl_type;
4580 l_cimv_tbl_out okc_contract_item_pub.cimv_tbl_type;
4581
4582 --Pricing Attributes
4583 l_pavv_tbl_in okc_price_adjustment_pvt.pavv_tbl_type;
4584 l_pavv_tbl_out okc_price_adjustment_pvt.pavv_tbl_type;
4585
4586
4587 --Rule Related
4588
4589 --l_rgpv_tbl_in okc_rule_pub.rgpv_tbl_type;
4590 --l_rgpv_tbl_out okc_rule_pub.rgpv_tbl_type;
4591 --l_rulv_tbl_in okc_rule_pub.rulv_tbl_type;
4592 --l_rulv_tbl_out okc_rule_pub.rulv_tbl_type;
4593 l_klnv_tbl_in oks_kln_pvt.klnv_tbl_type;
4594 l_klnv_tbl_out oks_kln_pvt.klnv_tbl_type;
4595 --Return IDs
4596 l_line_id NUMBER;
4597 l_rule_group_id NUMBER;
4598 l_rule_id NUMBER;
4599 l_line_item_id NUMBER;
4600 l_cp_lse_id NUMBER;
4601 l_cp_jtot_object VARCHAR2(30) := NULL;
4602 l_hdrsdt DATE;
4603 l_hdredt DATE;
4604 l_hdrorgid Number;
4605 l_line_sdt DATE;
4606 l_line_edt DATE;
4607 l_hdrstatus VARCHAR2(3);
4608 l_line_status VARCHAR2(3);
4609 l_priceattrib_id NUMBER;
4610
4611
4612 Cursor l_mtl_csr(p_inventory_id Number, p_organization_id Number) Is
4613 Select MTL.SERVICE_ITEM_FLAG
4614 ,MTL.USAGE_ITEM_FLAG
4615 From OKX_SYSTEM_ITEMS_V MTL
4616 Where MTL.id1 = p_Inventory_id
4617 And MTL.Organization_id = p_organization_id;
4618
4619 l_mtl_rec l_mtl_csr%rowtype;
4620
4621 CURSOR l_parent_line_csr (p_line_id Number) IS
4622 SELECT id, lse_id
4623 FROM okc_k_lines_b
4624 WHERE id = p_line_id;
4625 /*
4626 CURSOR l_usage_type_csr(p_line_id NUMBER) IS
4627 SELECT rule_information10
4628 FROM okc_rules_b rul, okc_rule_groups_b rg
4629 WHERE rul.rgp_id = rg.id AND rg.cle_id = p_line_id
4630 AND rule_information_category = 'QRE';*/
4631
4632 CURSOR l_usage_type_csr(p_line_id NUMBER) IS
4633 SELECT usage_type
4634 FROM oks_k_lines_b
4635 WHERE cle_id = p_line_id;
4636
4637
4638 l_parent_line_rec l_parent_line_csr%ROWTYPE;
4639 l_usage_type VARCHAR2(450);
4640 l_warranty_flag VARCHAR2(10);
4641
4642
4643 Begin
4644
4645
4646 x_return_status := OKC_API.G_RET_STS_SUCCESS;
4647
4648 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Covered_Line :: CREATE COVERED LINE FOR LINE :'||p_k_covd_rec.Attach_2_Line_id );
4649 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Covered_Line :: Attached to line type :'||p_k_covd_rec.product_sts_code );
4650
4651 IF p_k_covd_rec.Attach_2_Line_id IS NULL THEN
4652
4653 x_return_status := OKC_API.G_RET_STS_ERROR;
4654 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'ATTACH_2_LINE_ID REQUIRED FOR COVERED PRODUCT');
4655 Raise G_EXCEPTION_HALT_VALIDATION;
4656
4657 END IF;
4658
4659 --dbms_output.put_line('line_id '|| p_k_covd_rec.Attach_2_Line_id );
4660
4661 OPEN l_parent_line_csr(p_k_covd_rec.Attach_2_Line_id);
4662 FETCH l_parent_line_csr INTO l_parent_line_rec;
4663
4664 IF l_parent_line_csr%NOTFOUND THEN
4665 Close l_parent_line_csr;
4666 ---message debug and okc.api
4667 x_return_status := OKC_API.G_RET_STS_ERROR;
4668 Raise G_EXCEPTION_HALT_VALIDATION;
4669 ELSE
4670 Close l_parent_line_csr;
4671 END IF;
4672
4673 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Covered_Line :: Parent line Id :'||to_char(l_parent_line_rec.id) );
4674 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Covered_Line :: Parent line Lse Id :'||to_char(l_parent_line_rec.lse_id) );
4675
4676 IF l_parent_line_rec.lse_id = 12 THEN
4677
4678 OPEN l_usage_type_csr(l_parent_line_rec.id);
4679 FETCH l_usage_type_csr INTO l_usage_type;
4680
4681 IF l_usage_type_csr%NOTFOUND THEN
4682 Close l_usage_type_csr;
4683 l_usage_type := NULL;
4684 ELSE
4685 Close l_usage_type_csr;
4686 END IF;
4687
4688 ELSE
4689 l_usage_type := NULL;
4690 END IF;
4691
4692 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Covered_Line :: Usage Type :'||l_usage_type );
4693
4694 Validate_Cp_Rec
4695 (
4696 p_cp_rec => p_k_covd_rec,
4697 p_usage_type => l_usage_type,
4698 x_return_status => l_return_status
4699 );
4700
4701 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Covered_Line :: Validate_Cp_Rec Status :'||l_return_status );
4702
4703
4704 IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
4705 x_return_status := OKC_API.G_RET_STS_ERROR;
4706 Raise G_EXCEPTION_HALT_VALIDATION;
4707 END IF;
4708
4709 --dbms_output.put_line('validate CP '||l_return_status );
4710
4711 Check_line_effectivity
4712 (
4713 p_cle_id => p_k_covd_rec.Attach_2_Line_id,
4714 p_srv_sdt => p_k_covd_rec.Product_start_date,
4715 p_srv_edt => p_k_covd_rec.Product_end_date,
4716 x_line_sdt => l_line_sdt,
4717 x_line_edt => l_line_edt,
4718 x_status => l_return_status
4719 );
4720
4721 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Covered_Line :: Check_line_effectivity Status :'||l_return_status );
4722 x_return_status := l_return_status;
4723 --dbms_output.put_line('validate line effectivity '|| x_return_status );
4724
4725 If l_return_status = OKC_API.G_RET_STS_ERROR Then
4726
4727 x_return_status := OKC_API.G_RET_STS_ERROR;
4728 Raise G_EXCEPTION_HALT_VALIDATION;
4729
4730 ElsIf l_return_status = 'Y' Then
4731
4732 check_hdr_effectivity
4733 (
4734 p_chr_id => p_k_covd_rec.k_id,
4735 p_srv_sdt => l_line_sdt,
4736 p_srv_edt => l_line_edt,
4737 x_hdr_sdt => l_hdrsdt,
4738 x_hdr_edt => l_hdredt,
4739 x_org_id => l_hdrorgid,
4740 x_status => l_hdrstatus
4741 );
4742
4743 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Covered_Line :: check_hdr_effectivity Status :'||l_hdrstatus );
4744 x_return_status := l_hdrstatus;
4745 --dbms_output.put_line('hdr effectivity '|| x_return_status );
4746
4747
4748 If l_hdrstatus = 'N' Then
4749 NULL;
4750
4751 ElsIf l_hdrstatus = 'Y' Then
4752
4753 x_return_status := OKC_API.G_RET_STS_ERROR;
4754 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'CP EFFECTIVITY SHOULD BE WITH IN CONTRACT EFFECTIVITY');
4755 Raise G_EXCEPTION_HALT_VALIDATION;
4756 End If;
4757 End if;
4758
4759 --dbms_output.put_line('parent lse_id = ' || to_char(l_parent_line_rec.lse_id ));
4760
4761 IF l_parent_line_rec.lse_id = 1 THEN --service
4762 l_cp_lse_id := 9;
4763 l_cp_jtot_object := 'OKX_CUSTPROD';
4764 ELSIF l_parent_line_rec.lse_id = 12 THEN --usage
4765 l_cp_lse_id := 13;
4766 l_cp_jtot_object := 'OKX_COUNTER';
4767 ELSIF l_parent_line_rec.lse_id = 14 THEN --warranty
4768 l_cp_lse_id := 18;
4769 l_cp_jtot_object := 'OKX_CUSTPROD';
4770 ELSIF l_parent_line_rec.lse_id = 19 THEN --ext warranty
4771 l_cp_lse_id := 25;
4772 l_cp_jtot_object := 'OKX_CUSTPROD';
4773
4774 END IF;
4775
4776 --dbms_output.put_line('l_cp_lse_id = ' || (l_cp_lse_id));
4777 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Covered_Line :: CP Lse Id :'|| to_char(l_cp_lse_id) );
4778 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Covered_Line :: CP Jtot_object :'||l_cp_jtot_object );
4779
4780 l_clev_tbl_in(1).chr_id := Null;
4781 l_clev_tbl_in(1).sfwt_flag := 'N';
4782 l_clev_tbl_in(1).lse_id := l_cp_lse_id;
4783 --l_clev_tbl_in(1).line_number := p_k_covd_rec.line_number;
4784 l_clev_tbl_in(1).line_number := get_sub_line_number(p_k_covd_rec.k_id,p_k_covd_rec.Attach_2_Line_Id);
4785 l_clev_tbl_in(1).sts_code := Nvl(p_k_covd_rec.product_sts_code,'ACTIVE');
4786 l_clev_tbl_in(1).display_sequence := 2;
4787 l_clev_tbl_in(1).dnz_chr_id := p_k_covd_rec.k_id;
4788 --l_clev_tbl_in(1).name := Substr(p_k_covd_rec.Product_segment1,1,50);
4789 l_clev_tbl_in(1).name := Null;
4790 l_clev_tbl_in(1).item_description := p_k_covd_rec.Product_desc;
4791 l_clev_tbl_in(1).start_date := p_k_covd_rec.Product_start_date;
4792 l_clev_tbl_in(1).end_date := p_k_covd_rec.Product_end_date;
4793 l_clev_tbl_in(1).exception_yn := 'N';
4794 l_clev_tbl_in(1).price_negotiated := p_k_covd_rec.negotiated_amount;
4795 l_clev_tbl_in(1).currency_code := p_k_covd_rec.currency_code;
4796 l_clev_tbl_in(1).price_unit := p_k_covd_rec.list_price;
4797 l_clev_tbl_in(1).cle_id := p_k_covd_rec.Attach_2_Line_Id;
4798 l_clev_tbl_in(1).price_level_ind := Priced_YN(l_cp_lse_id);
4799 l_clev_tbl_in(1).trn_code := p_k_covd_rec.reason_code;
4800 l_clev_tbl_in(1).comments := p_k_covd_rec.reason_comments;
4801 l_clev_tbl_in(1).Attribute1 := p_k_covd_rec.attribute1;
4802 l_clev_tbl_in(1).Attribute2 := p_k_covd_rec.attribute2;
4803 l_clev_tbl_in(1).Attribute3 := p_k_covd_rec.attribute3;
4804 l_clev_tbl_in(1).Attribute4 := p_k_covd_rec.attribute4;
4805 l_clev_tbl_in(1).Attribute5 := p_k_covd_rec.attribute5;
4806 l_clev_tbl_in(1).Attribute6 := p_k_covd_rec.attribute6;
4807 l_clev_tbl_in(1).Attribute7 := p_k_covd_rec.attribute7;
4808 l_clev_tbl_in(1).Attribute8 := p_k_covd_rec.attribute8;
4809 l_clev_tbl_in(1).Attribute9 := p_k_covd_rec.attribute9;
4810 l_clev_tbl_in(1).Attribute10 := p_k_covd_rec.attribute10;
4811 l_clev_tbl_in(1).Attribute11 := p_k_covd_rec.attribute11;
4812 l_clev_tbl_in(1).Attribute12 := p_k_covd_rec.attribute12;
4813 l_clev_tbl_in(1).Attribute13 := p_k_covd_rec.attribute13;
4814 l_clev_tbl_in(1).Attribute14 := p_k_covd_rec.attribute14;
4815 l_clev_tbl_in(1).Attribute15 := p_k_covd_rec.attribute15;
4816 l_clev_tbl_in(1).line_renewal_type_code := NVL( p_k_covd_rec.line_renewal_type, 'FUL' ); --LRT
4817 okc_contract_pub.create_contract_line
4818 (
4819 p_api_version => l_api_version,
4820 p_init_msg_list => l_init_msg_list,
4821 x_return_status => l_return_status,
4822 x_msg_count => x_msg_count,
4823 x_msg_data => x_msg_data,
4824 p_clev_tbl => l_clev_tbl_in,
4825 x_clev_tbl => l_clev_tbl_out
4826 );
4827
4828 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Covered_Line :: create_contract_line status:'|| l_return_status);
4829 --dbms_output.put_line('K COVD LINE CREATION :- LINE STATUS ' || l_return_status);
4830 x_return_status := l_return_status;
4831
4832 If l_return_status = OKC_API.G_RET_STS_SUCCESS then
4833 l_line_id := l_clev_tbl_out(1).id;
4834 Else
4835 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'K LINE (SUB LINE)');
4836 Raise G_EXCEPTION_HALT_VALIDATION;
4837 End if;
4838
4839 -- cov rules inserted by oks
4840 l_klnv_tbl_in( 1 ).cle_id := l_line_id; --p_k_covd_rec.attach_2_line_id;
4841 l_klnv_tbl_in( 1 ).dnz_chr_id := p_k_covd_rec.k_id;
4842 IF l_cp_lse_id <> 13 THEN
4843
4844 l_klnv_tbl_in( 1 ).invoice_text := 'Counter'||Substr(p_k_covd_rec.Product_desc,1,50); --IRT
4845
4846 Else
4847 l_klnv_tbl_in(1).UOM_QUANTIFIED := p_k_covd_rec.period;
4848 l_klnv_tbl_in(1).minimum_quantity := p_k_covd_rec.minimum_qty;
4849 l_klnv_tbl_in(1).default_quantity := p_k_covd_rec.default_qty;
4850 l_klnv_tbl_in(1).amcv_flag := p_k_covd_rec.amcv_flag;
4851 l_klnv_tbl_in(1).fixed_quantity := p_k_covd_rec.fixed_qty;
4852 -- ??? uom_per_period mapping column does not exist in the table
4853 -- l_klnv_tbl_in(1).UOM_PER_PERIOD := 1;
4854 l_klnv_tbl_in(1).level_yn := p_k_covd_rec.level_yn;
4855 l_klnv_tbl_in(1).base_reading := p_k_covd_rec.base_reading;
4856 l_klnv_tbl_in(1).price_uom := p_k_covd_rec.uom_code;
4857 l_klnv_tbl_in(1).dnz_chr_id := p_k_covd_rec.k_id;
4858
4859 End If;
4860 OKS_CONTRACT_LINE_PUB.CREATE_LINE(
4861 p_api_version => l_api_version,
4862 p_init_msg_list => l_init_msg_list,
4863 x_return_status => l_return_status,
4864 x_msg_count => x_msg_count,
4865 x_msg_data => x_msg_data,
4866 p_klnv_tbl => l_klnv_tbl_in,
4867 x_klnv_tbl => l_klnv_tbl_out,
4868 p_validate_yn => 'N'
4869 );
4870 OKS_RENEW_PVT.DEBUG_LOG('(OKS_EXTWARPRGM_PVT).OKS create cov lvl status :: ' || l_return_status );
4871 FND_FILE.PUT_LINE(fnd_file.LOG, 'OKS COV LINE CREATION :- LINE STATUS '|| l_return_status );
4872
4873 IF NOT l_return_status = 'S' THEN
4874 OKC_API.SET_MESSAGE(
4875 g_app_name,
4876 g_required_value,
4877 g_col_name_token,
4878 'OKS Contract COV LINE'
4879 );
4880 RAISE G_EXCEPTION_HALT_VALIDATION;
4881 END IF;
4882
4883
4884 --Create Contract Item
4885
4886 l_cimv_tbl_in(1).cle_id := l_line_id;
4887 l_cimv_tbl_in(1).dnz_chr_id := p_k_covd_rec.k_id;
4888 l_cimv_tbl_in(1).object1_id1 := to_char(p_k_covd_rec.Customer_Product_Id);
4889 l_cimv_tbl_in(1).object1_id2 := '#';
4890 l_cimv_tbl_in(1).jtot_object1_code := l_cp_jtot_object;
4891 l_cimv_tbl_in(1).exception_yn := 'N';
4892 l_cimv_tbl_in(1).number_of_items := p_k_covd_rec.quantity;
4893 l_cimv_tbl_in(1).uom_code := p_k_covd_rec.uom_code;
4894
4895 Okc_contract_item_pub.create_contract_item
4896 (
4897 p_api_version => l_api_version,
4898 p_init_msg_list => l_init_msg_list,
4899 x_return_status => l_return_status,
4900 x_msg_count => x_msg_count,
4901 x_msg_data => x_msg_data,
4902 p_cimv_tbl => l_cimv_tbl_in,
4903 x_cimv_tbl => l_cimv_tbl_out
4904 );
4905
4906 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Covered_Line :: create_contract_item status:'|| l_return_status);
4907 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Covered_Line :: Item Id :'|| l_cimv_tbl_out(1).id );
4908 --dbms_output.put_line('K COVD LINE CREATION :- KITEM STATUS ' || l_return_status);
4909
4910 x_return_status := l_return_status;
4911
4912 If l_return_status = OKC_API.G_RET_STS_SUCCESS then
4913 l_line_item_id := l_cimv_tbl_out(1).id;
4914 --dbms_output.put_line('item id '||l_cimv_tbl_out(1).id );
4915 Else
4916 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'KItem (SUB LINE)');
4917 Raise G_EXCEPTION_HALT_VALIDATION;
4918 End if;
4919
4920 /*
4921 --Rule Group Routine
4922
4923 Create_Rule_grp
4924 (
4925 p_dnz_chr_id => p_k_covd_rec.k_id,
4926 p_chr_id => NULL,
4927 p_cle_id => l_line_id,
4928 x_rul_grp_id => l_rule_group_id,
4929 x_return_status => l_return_status,
4930 x_msg_data => x_msg_data,
4931 x_msg_count => x_msg_count
4932 );
4933
4934 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Covered_Line :: Create_Rule_grp status :'|| l_return_status );
4935 --dbms_output.put_line('K COVD LINE CREATION :- RGP STATUS ' || l_return_status);
4936 x_return_status := l_return_status;
4937
4938 If NOT l_return_status = OKC_API.G_RET_STS_SUCCESS Then
4939 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Rule Group (SUB LINE)');
4940 Raise G_EXCEPTION_HALT_VALIDATION;
4941 End If;
4942
4943 --Invoice Text Routine
4944 IF l_cp_lse_id <> 13 THEN
4945 l_rulv_tbl_in.DELETE;
4946 l_rule_id := Check_Rule_Exists(l_rule_group_id, 'IRT');
4947
4948 If l_rule_id Is NULL Then
4949
4950 l_rulv_tbl_in(1).rgp_id := l_rule_group_id;
4951 l_rulv_tbl_in(1).sfwt_flag := 'N';
4952 l_rulv_tbl_in(1).std_template_yn := 'N';
4953 l_rulv_tbl_in(1).warn_yn := 'N';
4954 l_rulv_tbl_in(1).rule_information_category := 'IRT';
4955 l_rulv_tbl_in(1).rule_information1 := 'Counter'||Substr(p_k_covd_rec.Product_desc,1,50);
4956 l_rulv_tbl_in(1).rule_information2 := 'Y';
4957 l_rulv_tbl_in(1).dnz_chr_id := p_k_covd_rec.k_id;
4958
4959 Create_rules
4960 (
4961 p_rulv_tbl => l_rulv_tbl_in,
4962 x_rulv_tbl => l_rulv_tbl_out,
4963 x_return_status => l_return_status,
4964 x_msg_count => x_msg_count,
4965 x_msg_data => x_msg_data
4966 );
4967
4968 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Covered_Line :: IRT Rule status :'|| l_return_status );
4969 --dbms_output.put_line('K COVD LINE CREATION :- IRT RULE STATUS ' || l_return_status);
4970 x_return_status := l_return_status;
4971
4972 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
4973 l_rule_id := l_rulv_tbl_out(1).id;
4974 Else
4975 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'INVOICE TEXT (SUB LINE)');
4976 Raise G_EXCEPTION_HALT_VALIDATION;
4977 End If;
4978
4979 End If;
4980 End If;
4981
4982 IF l_cp_lse_id= 13 THEN -- validation for usage rules
4983
4984 --- QRE rule for usages
4985 l_rulv_tbl_in.DELETE;
4986 l_rule_id := Check_Rule_Exists(l_rule_group_id, 'QRE');
4987
4988 If l_rule_id Is NULL Then
4989
4990 l_rulv_tbl_in(1).rgp_id := l_rule_group_id;
4991 l_rulv_tbl_in(1).sfwt_flag := 'N';
4992 l_rulv_tbl_in(1).std_template_yn := 'N';
4993 l_rulv_tbl_in(1).warn_yn := 'N';
4994 l_rulv_tbl_in(1).rule_information_category := 'QRE';
4995 -- l_rulv_tbl_in(1).rule_information1 := Substr(p_k_covd_rec.Product_desc,1,50);
4996 l_rulv_tbl_in(1).rule_information2 := p_k_covd_rec.period;
4997 l_rulv_tbl_in(1).rule_information4 := p_k_covd_rec.minimum_qty;
4998 l_rulv_tbl_in(1).rule_information5 := p_k_covd_rec.default_qty;
4999 l_rulv_tbl_in(1).rule_information6 := p_k_covd_rec.amcv_flag;
5000 l_rulv_tbl_in(1).rule_information7 := p_k_covd_rec.fixed_qty;
5001 l_rulv_tbl_in(1).rule_information8 := 1;
5002 l_rulv_tbl_in(1).rule_information9 := p_k_covd_rec.level_yn;
5003 l_rulv_tbl_in(1).rule_information12 := p_k_covd_rec.base_reading;
5004 l_rulv_tbl_in(1).rule_information11 := p_k_covd_rec.uom_code;
5005 l_rulv_tbl_in(1).dnz_chr_id := p_k_covd_rec.k_id;
5006
5007 Create_rules
5008 (
5009 p_rulv_tbl => l_rulv_tbl_in,
5010 x_rulv_tbl => l_rulv_tbl_out,
5011 x_return_status => l_return_status,
5012 x_msg_count => x_msg_count,
5013 x_msg_data => x_msg_data
5014 );
5015
5016 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Covered_Line :: QRE Rule status :'|| l_return_status );
5017 --dbms_output.put_line('K COVD LINE CREATION :- QRE RULE STATUS ' || l_return_status);
5018 x_return_status := l_return_status;
5019
5020 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
5021 l_rule_id := l_rulv_tbl_out(1).id;
5022 Else
5023 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'USAGE ITEM (SUB LINE)');
5024 Raise G_EXCEPTION_HALT_VALIDATION;
5025 End If;
5026
5027 End If; -- end if for QRE rule
5028
5029 ELSE
5030
5031 --Line Renewal Type To Routine
5032
5033 l_rulv_tbl_in.DELETE;
5034
5035 l_rule_id := Check_Rule_Exists(l_rule_group_id, 'LRT');
5036
5037 If l_rule_id Is NULL Then
5038 --dbms_output.put_line('rgp'||l_rule_group_id);
5039 --dbms_output.put_line('rule_information1'||p_k_covd_rec.line_renewal_type);
5040
5041 l_rulv_tbl_in(1).rgp_id := l_rule_group_id;
5042 l_rulv_tbl_in(1).sfwt_flag := 'N';
5043 l_rulv_tbl_in(1).std_template_yn := 'N';
5044 l_rulv_tbl_in(1).warn_yn := 'N';
5045 l_rulv_tbl_in(1).rule_information_category := 'LRT';
5046 l_rulv_tbl_in(1).rule_information1 := Nvl(p_k_covd_rec.line_renewal_type,'FUL');
5047 l_rulv_tbl_in(1).dnz_chr_id := p_k_covd_rec.k_id;
5048
5049 Create_rules
5050 (
5051 p_rulv_tbl => l_rulv_tbl_in,
5052 x_rulv_tbl => l_rulv_tbl_out,
5053 x_return_status => l_return_status,
5054 x_msg_count => x_msg_count,
5055 x_msg_data => x_msg_data
5056 );
5057
5058 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Covered_Line :: LRT Rule status :'|| l_return_status );
5059 --dbms_output.put_line('K COVD LINE CREATION :- LRT RULE STATUS ' || l_return_status);
5060 x_return_status := l_return_status;
5061
5062 If l_return_status = OKC_API.G_RET_STS_SUCCESS Then
5063 l_rule_id := l_rulv_tbl_out(1).id;
5064 Else
5065 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'LINE RENEWAL TYPE (SUB LINE)');
5066 Raise G_EXCEPTION_HALT_VALIDATION;
5067 End If;
5068
5069 End If;
5070
5071 End if; -- validation for usage rules
5072 */
5073 --Create Pricing Attributes
5074
5075 If p_price_attribs.pricing_context Is Not Null Then
5076
5077 l_pavv_tbl_in(1).cle_id := l_line_id;
5078 l_pavv_tbl_in(1).flex_title := 'QP_ATTR_DEFNS_PRICING';
5079 l_pavv_tbl_in(1).pricing_context := p_price_attribs.PRICING_CONTEXT;
5080 l_pavv_tbl_in(1).pricing_attribute1 := p_price_attribs.PRICING_ATTRIBUTE1;
5081 l_pavv_tbl_in(1).pricing_attribute2 := p_price_attribs.PRICING_ATTRIBUTE2;
5082 l_pavv_tbl_in(1).pricing_attribute3 := p_price_attribs.PRICING_ATTRIBUTE3;
5083 l_pavv_tbl_in(1).pricing_attribute4 := p_price_attribs.PRICING_ATTRIBUTE4;
5084 l_pavv_tbl_in(1).pricing_attribute5 := p_price_attribs.PRICING_ATTRIBUTE5;
5085 l_pavv_tbl_in(1).pricing_attribute6 := p_price_attribs.PRICING_ATTRIBUTE6;
5086 l_pavv_tbl_in(1).pricing_attribute7 := p_price_attribs.PRICING_ATTRIBUTE7;
5087 l_pavv_tbl_in(1).pricing_attribute8 := p_price_attribs.PRICING_ATTRIBUTE8;
5088 l_pavv_tbl_in(1).pricing_attribute9 := p_price_attribs.PRICING_ATTRIBUTE9;
5089 l_pavv_tbl_in(1).pricing_attribute10 := p_price_attribs.PRICING_ATTRIBUTE10;
5090 l_pavv_tbl_in(1).pricing_attribute11 := p_price_attribs.PRICING_ATTRIBUTE11;
5091 l_pavv_tbl_in(1).pricing_attribute12 := p_price_attribs.PRICING_ATTRIBUTE12;
5092 l_pavv_tbl_in(1).pricing_attribute13 := p_price_attribs.PRICING_ATTRIBUTE13;
5093 l_pavv_tbl_in(1).pricing_attribute14 := p_price_attribs.PRICING_ATTRIBUTE14;
5094 l_pavv_tbl_in(1).pricing_attribute15 := p_price_attribs.PRICING_ATTRIBUTE15;
5095 l_pavv_tbl_in(1).pricing_attribute16 := p_price_attribs.PRICING_ATTRIBUTE16;
5096 l_pavv_tbl_in(1).pricing_attribute17 := p_price_attribs.PRICING_ATTRIBUTE17;
5097 l_pavv_tbl_in(1).pricing_attribute18 := p_price_attribs.PRICING_ATTRIBUTE18;
5098 l_pavv_tbl_in(1).pricing_attribute19 := p_price_attribs.PRICING_ATTRIBUTE19;
5099 l_pavv_tbl_in(1).pricing_attribute20 := p_price_attribs.PRICING_ATTRIBUTE20;
5100 l_pavv_tbl_in(1).pricing_attribute21 := p_price_attribs.PRICING_ATTRIBUTE21;
5101 l_pavv_tbl_in(1).pricing_attribute22 := p_price_attribs.PRICING_ATTRIBUTE22;
5102 l_pavv_tbl_in(1).pricing_attribute23 := p_price_attribs.PRICING_ATTRIBUTE23;
5103 l_pavv_tbl_in(1).pricing_attribute24 := p_price_attribs.PRICING_ATTRIBUTE24;
5104 l_pavv_tbl_in(1).pricing_attribute25 := p_price_attribs.PRICING_ATTRIBUTE25;
5105 l_pavv_tbl_in(1).pricing_attribute26 := p_price_attribs.PRICING_ATTRIBUTE26;
5106 l_pavv_tbl_in(1).pricing_attribute27 := p_price_attribs.PRICING_ATTRIBUTE27;
5107 l_pavv_tbl_in(1).pricing_attribute28 := p_price_attribs.PRICING_ATTRIBUTE28;
5108 l_pavv_tbl_in(1).pricing_attribute29 := p_price_attribs.PRICING_ATTRIBUTE29;
5109 l_pavv_tbl_in(1).pricing_attribute30 := p_price_attribs.PRICING_ATTRIBUTE30;
5110 l_pavv_tbl_in(1).pricing_attribute31 := p_price_attribs.PRICING_ATTRIBUTE31;
5111 l_pavv_tbl_in(1).pricing_attribute32 := p_price_attribs.PRICING_ATTRIBUTE32;
5112 l_pavv_tbl_in(1).pricing_attribute33 := p_price_attribs.PRICING_ATTRIBUTE33;
5113 l_pavv_tbl_in(1).pricing_attribute34 := p_price_attribs.PRICING_ATTRIBUTE34;
5114 l_pavv_tbl_in(1).pricing_attribute35 := p_price_attribs.PRICING_ATTRIBUTE35;
5115 l_pavv_tbl_in(1).pricing_attribute36 := p_price_attribs.PRICING_ATTRIBUTE36;
5116 l_pavv_tbl_in(1).pricing_attribute37 := p_price_attribs.PRICING_ATTRIBUTE37;
5117 l_pavv_tbl_in(1).pricing_attribute38 := p_price_attribs.PRICING_ATTRIBUTE38;
5118 l_pavv_tbl_in(1).pricing_attribute39 := p_price_attribs.PRICING_ATTRIBUTE39;
5119 l_pavv_tbl_in(1).pricing_attribute40 := p_price_attribs.PRICING_ATTRIBUTE40;
5120 l_pavv_tbl_in(1).pricing_attribute41 := p_price_attribs.PRICING_ATTRIBUTE41;
5121 l_pavv_tbl_in(1).pricing_attribute42 := p_price_attribs.PRICING_ATTRIBUTE42;
5122 l_pavv_tbl_in(1).pricing_attribute43 := p_price_attribs.PRICING_ATTRIBUTE43;
5123 l_pavv_tbl_in(1).pricing_attribute44 := p_price_attribs.PRICING_ATTRIBUTE44;
5124 l_pavv_tbl_in(1).pricing_attribute45 := p_price_attribs.PRICING_ATTRIBUTE45;
5125 l_pavv_tbl_in(1).pricing_attribute46 := p_price_attribs.PRICING_ATTRIBUTE46;
5126 l_pavv_tbl_in(1).pricing_attribute47 := p_price_attribs.PRICING_ATTRIBUTE47;
5127 l_pavv_tbl_in(1).pricing_attribute48 := p_price_attribs.PRICING_ATTRIBUTE48;
5128 l_pavv_tbl_in(1).pricing_attribute49 := p_price_attribs.PRICING_ATTRIBUTE49;
5129 l_pavv_tbl_in(1).pricing_attribute50 := p_price_attribs.PRICING_ATTRIBUTE50;
5130 l_pavv_tbl_in(1).pricing_attribute51 := p_price_attribs.PRICING_ATTRIBUTE51;
5131 l_pavv_tbl_in(1).pricing_attribute52 := p_price_attribs.PRICING_ATTRIBUTE52;
5132 l_pavv_tbl_in(1).pricing_attribute53 := p_price_attribs.PRICING_ATTRIBUTE53;
5133 l_pavv_tbl_in(1).pricing_attribute54 := p_price_attribs.PRICING_ATTRIBUTE54;
5134 l_pavv_tbl_in(1).pricing_attribute55 := p_price_attribs.PRICING_ATTRIBUTE55;
5135 l_pavv_tbl_in(1).pricing_attribute56 := p_price_attribs.PRICING_ATTRIBUTE56;
5136 l_pavv_tbl_in(1).pricing_attribute57 := p_price_attribs.PRICING_ATTRIBUTE57;
5137 l_pavv_tbl_in(1).pricing_attribute58 := p_price_attribs.PRICING_ATTRIBUTE58;
5138 l_pavv_tbl_in(1).pricing_attribute59 := p_price_attribs.PRICING_ATTRIBUTE59;
5139 l_pavv_tbl_in(1).pricing_attribute60 := p_price_attribs.PRICING_ATTRIBUTE60;
5140 l_pavv_tbl_in(1).pricing_attribute61 := p_price_attribs.PRICING_ATTRIBUTE61;
5141 l_pavv_tbl_in(1).pricing_attribute62 := p_price_attribs.PRICING_ATTRIBUTE62;
5142 l_pavv_tbl_in(1).pricing_attribute63 := p_price_attribs.PRICING_ATTRIBUTE63;
5143 l_pavv_tbl_in(1).pricing_attribute64 := p_price_attribs.PRICING_ATTRIBUTE64;
5144 l_pavv_tbl_in(1).pricing_attribute65 := p_price_attribs.PRICING_ATTRIBUTE65;
5145 l_pavv_tbl_in(1).pricing_attribute66 := p_price_attribs.PRICING_ATTRIBUTE66;
5146 l_pavv_tbl_in(1).pricing_attribute67 := p_price_attribs.PRICING_ATTRIBUTE67;
5147 l_pavv_tbl_in(1).pricing_attribute68 := p_price_attribs.PRICING_ATTRIBUTE68;
5148 l_pavv_tbl_in(1).pricing_attribute69 := p_price_attribs.PRICING_ATTRIBUTE69;
5149 l_pavv_tbl_in(1).pricing_attribute70 := p_price_attribs.PRICING_ATTRIBUTE70;
5150 l_pavv_tbl_in(1).pricing_attribute71 := p_price_attribs.PRICING_ATTRIBUTE71;
5151 l_pavv_tbl_in(1).pricing_attribute72 := p_price_attribs.PRICING_ATTRIBUTE72;
5152 l_pavv_tbl_in(1).pricing_attribute73 := p_price_attribs.PRICING_ATTRIBUTE73;
5153 l_pavv_tbl_in(1).pricing_attribute74 := p_price_attribs.PRICING_ATTRIBUTE74;
5154 l_pavv_tbl_in(1).pricing_attribute75 := p_price_attribs.PRICING_ATTRIBUTE75;
5155 l_pavv_tbl_in(1).pricing_attribute76 := p_price_attribs.PRICING_ATTRIBUTE76;
5156 l_pavv_tbl_in(1).pricing_attribute77 := p_price_attribs.PRICING_ATTRIBUTE77;
5157 l_pavv_tbl_in(1).pricing_attribute78 := p_price_attribs.PRICING_ATTRIBUTE78;
5158 l_pavv_tbl_in(1).pricing_attribute79 := p_price_attribs.PRICING_ATTRIBUTE79;
5159 l_pavv_tbl_in(1).pricing_attribute80 := p_price_attribs.PRICING_ATTRIBUTE80;
5160 l_pavv_tbl_in(1).pricing_attribute81 := p_price_attribs.PRICING_ATTRIBUTE81;
5161 l_pavv_tbl_in(1).pricing_attribute82 := p_price_attribs.PRICING_ATTRIBUTE82;
5162 l_pavv_tbl_in(1).pricing_attribute83 := p_price_attribs.PRICING_ATTRIBUTE83;
5163 l_pavv_tbl_in(1).pricing_attribute84 := p_price_attribs.PRICING_ATTRIBUTE84;
5164 l_pavv_tbl_in(1).pricing_attribute85 := p_price_attribs.PRICING_ATTRIBUTE85;
5165 l_pavv_tbl_in(1).pricing_attribute86 := p_price_attribs.PRICING_ATTRIBUTE86;
5166 l_pavv_tbl_in(1).pricing_attribute87 := p_price_attribs.PRICING_ATTRIBUTE87;
5167 l_pavv_tbl_in(1).pricing_attribute88 := p_price_attribs.PRICING_ATTRIBUTE88;
5168 l_pavv_tbl_in(1).pricing_attribute89 := p_price_attribs.PRICING_ATTRIBUTE89;
5169 l_pavv_tbl_in(1).pricing_attribute90 := p_price_attribs.PRICING_ATTRIBUTE90;
5170 l_pavv_tbl_in(1).pricing_attribute91 := p_price_attribs.PRICING_ATTRIBUTE91;
5171 l_pavv_tbl_in(1).pricing_attribute92 := p_price_attribs.PRICING_ATTRIBUTE92;
5172 l_pavv_tbl_in(1).pricing_attribute93 := p_price_attribs.PRICING_ATTRIBUTE93;
5173 l_pavv_tbl_in(1).pricing_attribute94 := p_price_attribs.PRICING_ATTRIBUTE94;
5174 l_pavv_tbl_in(1).pricing_attribute95 := p_price_attribs.PRICING_ATTRIBUTE95;
5175 l_pavv_tbl_in(1).pricing_attribute96 := p_price_attribs.PRICING_ATTRIBUTE96;
5176 l_pavv_tbl_in(1).pricing_attribute97 := p_price_attribs.PRICING_ATTRIBUTE97;
5177 l_pavv_tbl_in(1).pricing_attribute98 := p_price_attribs.PRICING_ATTRIBUTE98;
5178 l_pavv_tbl_in(1).pricing_attribute99 := p_price_attribs.PRICING_ATTRIBUTE99;
5179 l_pavv_tbl_in(1).pricing_attribute100 := p_price_attribs.PRICING_ATTRIBUTE100;
5180
5181 okc_price_adjustment_pvt.create_price_att_value
5182 (
5183 p_api_version => l_api_version,
5184 p_init_msg_list => l_init_msg_list,
5185 x_return_status => l_return_status,
5186 x_msg_count => x_msg_count,
5187 x_msg_data => x_msg_data,
5188 p_pavv_tbl => l_pavv_tbl_in,
5189 x_pavv_tbl => l_pavv_tbl_out
5190 );
5191
5192 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Covered_Line :: create_price_att_value status :'|| l_return_status );
5193 --dbms_output.put_line('K COVD LINE CREATION :- PRICE ATTRIB STATUS ' || l_return_status);
5194
5195 x_return_status := l_return_status;
5196
5197 If l_return_status = OKC_API.G_RET_STS_SUCCESS then
5198 l_priceattrib_id := l_pavv_tbl_out(1).id;
5199 Else
5200 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'PRICE ATTRIBUTES (SUB LINE)');
5201 Raise G_EXCEPTION_HALT_VALIDATION;
5202 End if;
5203 End If;
5204 x_cp_line_id := l_line_id;
5205
5206 Exception
5207 When G_EXCEPTION_HALT_VALIDATION Then
5208
5209 x_return_status := l_return_status;
5210 Null;
5211 When Others Then
5212
5213 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
5214 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
5215 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Covered_Line :: Error :'|| SQLCODE||':'|| SQLERRM);
5216
5217
5218 End Create_Covered_Line;
5219
5220
5221
5222 ----------------------------------------------------------------------------------------
5223 -- Procedure for creating instance of subscription item
5224 ----------------------------------------------------------------------------------------
5225
5226 PROCEDURE create_item
5227 (
5228 p_instance_rec_out IN OUT NOCOPY csi_datastructures_pub.instance_rec
5229 ,p_ext_attrib_values_tbl IN OUT NOCOPY csi_datastructures_pub.extend_attrib_values_tbl
5230 ,p_party_tbl IN OUT NOCOPY csi_datastructures_pub.party_tbl
5231 ,p_account_tbl IN OUT NOCOPY csi_datastructures_pub.party_account_tbl
5232 ,p_pricing_attrib_tbl IN OUT NOCOPY csi_datastructures_pub.pricing_attribs_tbl
5233 ,p_org_assignments_tbl IN OUT NOCOPY csi_datastructures_pub.organization_units_tbl
5234 ,p_asset_assignment_tbl IN OUT NOCOPY csi_datastructures_pub.instance_asset_tbl
5235 ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
5236 ,x_return_status OUT NOCOPY VARCHAR2
5237 ,x_msg_count OUT NOCOPY NUMBER
5238 ,x_msg_data OUT NOCOPY VARCHAR2
5239 )
5240 IS
5241
5242 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_ITEM';
5243 l_api_version CONSTANT NUMBER := 1.0;
5244 l_debug_level VARCHAR2(1);
5245 l_flag VARCHAR2(1) := 'N';
5246 l_msg_data VARCHAR2(2000);
5247 l_msg_index NUMBER;
5248 l_msg_count NUMBER;
5249 l_instance_rec_out CSI_DATASTRUCTURES_PUB.INSTANCE_REC;
5250 l_ext_attrib_values_tbl CSI_DATASTRUCTURES_PUB.EXTEND_ATTRIB_VALUES_TBL;
5251 l_party_tbl CSI_DATASTRUCTURES_PUB.PARTY_TBL;
5252 l_account_tbl CSI_DATASTRUCTURES_PUB.PARTY_ACCOUNT_TBL;
5253 l_pricing_attrib_tbl CSI_DATASTRUCTURES_PUB.PRICING_ATTRIBS_TBL;
5254 l_org_assignments_tbl CSI_DATASTRUCTURES_PUB.ORGANIZATION_UNITS_TBL;
5255 l_asset_assignment_tbl CSI_DATASTRUCTURES_PUB.INSTANCE_ASSET_TBL;
5256 l_txn_rec CSI_DATASTRUCTURES_PUB.TRANSACTION_REC;
5257 l_return_status VARCHAR2(2000);
5258 l_msg_index_out NUMBER;
5259 t_output VARCHAR2(2000);
5260 t_msg_dummy NUMBER;
5261
5262
5263 BEGIN
5264
5265 -- calling Ib API to craete item instance
5266 csi_item_instance_pub.create_item_instance
5267 (
5268 p_api_version => 1.0
5269 ,p_commit => 'F'
5270 ,p_init_msg_list => 'F'
5271 ,p_validation_level => 1
5272 ,p_instance_rec => p_instance_rec_out
5273 ,p_ext_attrib_values_tbl => p_ext_attrib_values_tbl
5274 ,p_party_tbl => p_party_tbl
5275 ,p_account_tbl => p_account_tbl
5276 ,p_pricing_attrib_tbl => p_pricing_attrib_tbl
5277 ,p_org_assignments_tbl => p_org_assignments_tbl
5278 ,p_asset_assignment_tbl => p_asset_assignment_tbl
5279 ,p_txn_rec => p_txn_rec
5280 ,x_return_status => l_return_status
5281 ,x_msg_count => x_msg_count
5282 ,x_msg_data => x_msg_data
5283 );
5284
5285 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Item :: create_item_instance status :'|| l_return_status );
5286 --dbms_output.put_line('create item instance status:- ' || l_return_status);
5287
5288 IF Not l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
5289 RAISE G_EXCEPTION_HALT_VALIDATION;
5290 END IF;
5291
5292 x_return_status := l_return_status;
5293 Exception
5294 When G_EXCEPTION_HALT_VALIDATION Then
5295 x_return_status := l_return_status;
5296 Null;
5297 When Others Then
5298 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
5299 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
5300 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Item :: Error :'|| SQLCODE||':'||SQLERRM );
5301 End create_item;
5302
5303
5304
5305 ---------------------------------------------------------------------------------------
5306 -- Procedure for Creating contract for subscription item
5307 ---------------------------------------------------------------------------------------
5308
5309 PROCEDURE Create_Subscription
5310 ( p_K_header_rec IN OKS_CONTRACTS_PUB.header_rec_type
5311 , p_K_Support_rec IN OKS_CONTRACTS_PUB.line_rec_type
5312 , p_Support_contacts_tbl_in IN OKS_CONTRACTS_PUB.contact_tbl
5313 , p_Support_sales_crd_tbl_in IN OKS_CONTRACTS_PUB.SalesCredit_tbl
5314 , p_k_line_rec IN OKS_CONTRACTS_PUB.line_rec_type
5315 , p_line_contacts_tbl_in IN OKS_CONTRACTS_PUB.contact_tbl
5316 , p_line_sales_crd_tbl_in IN OKS_CONTRACTS_PUB.SalesCredit_tbl
5317 , p_price_attribs_in IN OKS_CONTRACTS_PUB.pricing_attributes_type
5318 , p_contract_header_id IN NUMBER
5319 , bill_type IN varchar2
5320 , p_strm_level_tbl IN OKS_BILL_SCH.StreamLvl_tbl
5321 , x_return_status OUT NOCOPY VARCHAR2
5322 , x_msg_count OUT NOCOPY NUMBER
5323 , x_msg_data OUT NOCOPY varchar2
5324 ) IS
5325
5326 -- Cursor for getting name and description of the product/item
5327 Cursor l_line_Csr(p_inventory_id Number,p_organization_id Number) Is
5328 Select MTL.Name
5329 ,MTL.Description
5330 ,MTL.Primary_UOM_Code
5331 ,MTL.Service_starting_delay
5332 From OKX_SYSTEM_ITEMS_V MTL
5333 Where MTL.id1 = p_Inventory_id
5334 And MTL.Organization_id = okc_context.get_okc_organization_id;
5335
5336 l_line_dtl_rec l_line_csr%rowtype;
5337
5338 -- cursor for getting rule informations
5339 Cursor l_rule_dtl_csr Is
5340 Select ks.averaging_interval
5341 , ks.uom_quantified
5342 --, ks.rule_information3
5343 , ks.minimum_quantity
5344 , ks.default_quantity
5345 , ks.amcv_flag
5346 , ks.fixed_quantity
5347 , ks.level_yn
5348 , ks.usage_type
5349 --, ks.rule_information10
5350 , ks.base_reading
5351 From oks_k_lines_b ks,
5352 okc_k_lines_v kc
5353 Where ks.cle_id = kc.id
5354 And kc.lse_id = 12;
5355
5356 l_rule_dtl_rec l_rule_dtl_csr%rowtype;
5357
5358 Cursor l_subscr_scr (p_line_id number, p_hdr_id number) is
5359 Select instance_id from oks_subscr_header_b
5360 Where cle_id = p_line_id
5361 And dnz_chr_id = p_hdr_id;
5362
5363 -- local variables
5364 i NUMBER;
5365 l_contract_header_id NUMBER;
5366 l_sb_service_line_id NUMBER; -- Service line id for Subscription line
5367 l_su_service_line_id NUMBER; -- Service line id for Support line
5368 l_u_service_line_id NUMBER; -- Service line id for Usage line
5369 l_cp_line_id NUMBER;
5370 l_time_val NUMBER;
5371 cp_id NUMBER;
5372 l_return_status VARCHAR2(2000) := OKC_API.G_RET_STS_SUCCESS;
5373 l_K_line_rec OKS_CONTRACTS_PUB.line_Rec_Type; -- subscription line record
5374 l_counter_tbl OKS_CONTRACTS_PUB.counter_tbl; -- counter table
5375 l_K_support_rec OKS_CONTRACTS_PUB.line_Rec_Type; -- Support line record
5376 l_K_usage_rec OKS_CONTRACTS_PUB.line_Rec_Type; -- Usage line record
5377 l_K_covd_rec OKS_CONTRACTS_PUB.Covered_level_Rec_Type; -- Covered level record for support line
5378 l_K_counter_rec OKS_CONTRACTS_PUB.Covered_level_Rec_Type; -- covered level record for usage line
5379 l_k_hdr_rec OKS_CONTRACTS_PUB.header_rec_type; -- Header record
5380 p_instance_rec CSI_DATASTRUCTURES_PUB.INSTANCE_REC; -- Item Instance record
5381 p_ext_attrib_values_tbl CSI_DATASTRUCTURES_PUB.EXTEND_ATTRIB_VALUES_TBL; -- Attributes value table
5382 p_party_tbl CSI_DATASTRUCTURES_PUB.PARTY_TBL;
5383 p_account_tbl CSI_DATASTRUCTURES_PUB.PARTY_ACCOUNT_TBL;
5384 p_pricing_attrib_tbl CSI_DATASTRUCTURES_PUB.PRICING_ATTRIBS_TBL;
5385 p_org_assignments_tbl CSI_DATASTRUCTURES_PUB.ORGANIZATION_UNITS_TBL;
5386 p_asset_assignment_tbl CSI_DATASTRUCTURES_PUB.INSTANCE_ASSET_TBL;
5387 p_txn_rec CSI_DATASTRUCTURES_PUB.TRANSACTION_REC;
5388 l_bil_sch_out_tbl OKS_BILL_SCH.ItemBillSch_tbl;
5389 --l_slh_rec OKS_BILL_SCH.StreamHdr_type;
5390 l_msg_index Number;
5391 l_inst_id Number;
5392
5393
5394 BEGIN
5395
5396 DBMS_TRANSACTION.SAVEPOINT('BEFORE_TRANSACTIONS');
5397
5398 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: SRV Id for Subscription line :'|| p_k_line_rec.srv_id );
5399 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: SRV Id for Support Line :'|| p_K_support_rec.srv_id );
5400 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Negotiated amount for SB line :'|| p_k_line_rec.negotiated_amount );
5401 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Negotiated amount for SU line :'|| p_K_support_rec.negotiated_amount );
5402 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Negotiated amount for Covered line :'|| p_K_support_rec.negotiated_amount );
5403
5404 l_contract_header_id := p_contract_header_id;
5405
5406 -- calling create item procedure to create CP
5407 p_instance_rec.location_type_code := p_k_line_rec.location_type_code;
5408 p_instance_rec.location_Id := p_k_line_rec.location_Id;
5409 p_instance_rec.Inv_organization_Id := p_k_line_rec.Inv_organization_Id;
5410 p_instance_rec.Inv_subinventory_name := p_k_line_rec.Inv_subinventory_name;
5411 p_instance_rec.Inv_locator_Id := p_k_line_rec.Inv_locator_Id;
5412 p_instance_rec.Pa_project_Id := p_k_line_rec.Pa_project_Id;
5413 p_instance_rec.Pa_project_task_Id := p_k_line_rec.Pa_project_task_Id;
5414 p_instance_rec.In_transit_order_line_Id := p_k_line_rec.In_transit_order_line_Id;
5415 p_instance_rec.wip_job_Id := p_k_line_rec.wip_job_Id;
5416 p_instance_rec.po_order_line_Id := p_k_line_rec.po_order_line_Id;
5417 p_instance_rec.inventory_item_id := p_k_line_rec.srv_id ; -- inventory item id
5418 p_instance_rec.vld_organization_id := okc_context.get_okc_organization_id;
5419 p_instance_rec.inventory_revision := 'A';
5420 p_instance_rec.inv_master_organization_id := okc_context.get_okc_organization_id;
5421 p_instance_rec.quantity := 1;
5422 p_instance_rec.unit_of_measure := 'Ea';
5423 p_instance_rec.instance_condition_id := 1; --NULL;
5424 p_instance_rec.active_start_date := FND_API.G_MISS_DATE;
5425 p_instance_rec.active_end_date := FND_API.G_MISS_DATE; --TO_DATE('Null');
5426 p_instance_rec.in_transit_order_line_id := okc_api.g_miss_num;
5427 p_party_tbl(1).party_source_table := 'HZ_PARTIES';
5428 p_party_tbl(1).party_id := p_k_header_rec.party_id;--1000; --NULL;
5429 p_party_tbl(1).relationship_type_code := 'OWNER';
5430 p_party_tbl(1).contact_flag := 'N';
5431 p_account_tbl(1).ip_account_id := NULL;
5432 p_account_tbl(1).parent_tbl_index := 1; --NULL;
5433 p_account_tbl(1).instance_party_id := NULL;
5434 p_account_tbl(1).party_account_id := p_k_line_rec.cust_account;--1000; --NULL;
5435 p_account_tbl(1).relationship_type_code := 'OWNER';
5436 p_org_assignments_tbl(1).operating_unit_id := p_k_line_rec.org_id; --NULL;
5437 p_org_assignments_tbl(1).relationship_type_code := 'SOLD_FROM';
5438 p_txn_rec.transaction_type_id := 1; --NULL;
5439 p_txn_rec.source_transaction_date := SYSDATE;
5440 p_txn_rec.transaction_date := SYSDATE;
5441
5442
5443 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: ord Id for Item :'|| p_instance_rec.vld_organization_id );
5444 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Uom for Item :'|| p_instance_rec.unit_of_measure );
5445 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Active Satrt date of Item:'|| p_instance_rec.active_start_date );
5446 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Active End Date of Item :'|| p_instance_rec.active_end_date );
5447 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Party account Id of Item :'|| p_account_tbl(1).party_account_id );
5448 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Inventory Item Id :'|| p_instance_rec.inventory_item_id );
5449 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Po order line Id of Item:'|| p_instance_rec.po_order_line_Id );
5450 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Location Id of Item :'|| p_instance_rec.location_Id );
5451
5452 /*
5453 Create_item
5454 (
5455 p_instance_rec_out => p_instance_rec
5456 ,p_ext_attrib_values_tbl => p_ext_attrib_values_tbl
5457 ,p_party_tbl => p_party_tbl
5458 ,p_account_tbl => p_account_tbl
5459 ,p_pricing_attrib_tbl => p_pricing_attrib_tbl
5460 ,p_org_assignments_tbl => p_org_assignments_tbl
5461 ,p_asset_assignment_tbl => p_asset_assignment_tbl
5462 ,p_txn_rec => p_txn_rec
5463 ,x_return_status => l_return_status
5464 ,x_msg_count => x_msg_count
5465 ,x_msg_data => x_msg_data
5466 );
5467
5468 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: create_item status :'|| l_return_status );
5469 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Item Id :'||p_instance_rec.instance_id );
5470 --dbms_output.put_line('create item status:- ' || l_return_status);
5471 --dbms_output.put_line('create item status :: item id:- ' || p_instance_rec.instance_id);
5472
5473 IF Not l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
5474 DBMS_TRANSACTION.ROLLBACK_SAVEPOINT('BEFORE_TRANSACTIONS');
5475 RAISE G_EXCEPTION_HALT_VALIDATION;
5476 END IF;
5477 */
5478
5479 -- create service line for subscription line but it will not have a covered level
5480
5481 l_K_line_rec := p_K_line_rec;
5482 l_K_line_rec.k_hdr_id := l_contract_header_id;
5483 l_k_line_rec.srv_id := p_k_line_rec.srv_id ; --p_instance_rec.instance_id;
5484
5485 --dbms_output.put_line('l_k_line_rec.srv_id '|| p_k_line_rec.srv_id);
5486
5487 Create_Service_Line
5488 (
5489 p_k_line_rec => l_K_line_rec
5490 ,p_Contact_tbl => p_line_contacts_tbl_in
5491 ,p_line_sales_crd_tbl => p_line_sales_crd_tbl_in
5492 ,x_service_line_id => l_sb_service_line_id
5493 ,x_return_status => l_return_status
5494 ,x_msg_count => x_msg_count
5495 ,x_msg_data => x_msg_data
5496 );
5497
5498 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Create SB Service Line status :'|| l_return_status );
5499 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Service line Id for SB Line :'|| l_sb_service_line_id );
5500 --dbms_output.put_line('K SUBSCRIPTION LINE CREATION STATUS:- ' || l_return_status);
5501
5502 IF Not l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
5503 DBMS_TRANSACTION.ROLLBACK_SAVEPOINT('BEFORE_TRANSACTIONS');
5504 RAISE G_EXCEPTION_HALT_VALIDATION;
5505 END IF;
5506
5507 -- Create default schedule
5508
5509 oks_subscription_pvt.create_default_schedule
5510 (
5511 p_api_version => 1.0,
5512 p_init_msg_list => 'T' ,
5513 x_return_status => l_return_status,
5514 x_msg_count => x_msg_count,
5515 x_msg_data => x_msg_data,
5516 p_cle_id => l_sb_service_line_id,
5517 p_intent => Null);
5518
5519 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Create default sch status :'|| l_return_status );
5520 --dbms_output.put_line('K SUBSCRIPTION LINE CREATION STATUS:- ' || l_return_status);
5521
5522 IF Not l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
5523 DBMS_TRANSACTION.ROLLBACK_SAVEPOINT('BEFORE_TRANSACTIONS');
5524 RAISE G_EXCEPTION_HALT_VALIDATION;
5525 END IF;
5526
5527 OPEN l_subscr_scr(l_sb_service_line_id,l_contract_header_id);
5528 FETCH l_subscr_scr into l_inst_id;
5529 close l_subscr_scr;
5530
5531 -- create a service line for support serive line and covered level for that
5532
5533 l_K_support_rec := p_K_Support_rec ;
5534 l_K_support_rec.k_hdr_id := l_contract_header_id;
5535
5536 --dbms_output.put_line(' support line id '|| l_K_support_rec.srv_id);
5537
5538 Create_Service_Line
5539 (
5540 p_k_line_rec => l_K_support_rec
5541 ,p_Contact_tbl => p_support_contacts_tbl_in
5542 ,p_line_sales_crd_tbl => p_support_sales_crd_tbl_in
5543 ,x_service_line_id => l_su_service_line_id
5544 ,x_return_status => l_return_status
5545 ,x_msg_count => x_msg_count
5546 ,x_msg_data => x_msg_data
5547 );
5548
5549 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Create SU Service Line status :'|| l_return_status);
5550 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Service line Id for Su Line :'|| l_su_service_line_id);
5551 --dbms_output.put_line('K CONTRACT SUPPORT SERVICE LINE CREATION STATUS:- ' || l_return_status);
5552
5553 IF Not l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
5554 DBMS_TRANSACTION.ROLLBACK_SAVEPOINT('BEFORE_TRANSACTIONS');
5555 RAISE G_EXCEPTION_HALT_VALIDATION;
5556 END IF;
5557
5558 -- Get the name description details of the product
5559
5560 Open l_line_Csr(p_instance_rec.Inventory_Item_Id ,l_k_support_rec.org_id );
5561 Fetch l_line_Csr into l_line_dtl_rec;
5562
5563 If l_line_Csr%notfound Then
5564 Close l_line_Csr ;
5565 l_return_status := OKC_API.G_RET_STS_ERROR;
5566 OKC_API.set_message(G_APP_NAME,'OKS_CUST_PROD_DTLS_NOT_FOUND','CUSTOMER_PRODUCT',p_instance_rec.instance_id);
5567 -- message 'OKS_CUSTPROD' to be changed
5568 Raise G_EXCEPTION_HALT_VALIDATION;
5569 End if;
5570
5571 Close l_line_Csr;
5572
5573 -- creating covered level for support service line
5574 l_K_covd_rec.k_id := l_contract_header_id;
5575 l_K_covd_rec.Attach_2_Line_id := l_su_service_line_id;
5576 l_K_covd_rec.line_number := 1;
5577 l_K_covd_rec.product_sts_code := p_k_support_rec.line_sts_code;
5578 l_K_covd_rec.Customer_Product_Id := l_inst_id ; --p_instance_rec.instance_id ;
5579 l_K_covd_rec.Product_Desc := l_line_dtl_rec.description;
5580 l_K_covd_rec.Product_Start_Date := p_k_header_rec.start_date;
5581 l_K_covd_rec.Product_End_Date := p_k_header_rec.end_date;
5582 l_K_covd_rec.Quantity := p_instance_rec.Quantity;
5583 l_K_covd_rec.uom_code := l_line_dtl_rec.primary_uom_code;-- p_instance_rec.unit_of_measure;
5584 l_K_covd_rec.list_price := l_k_support_rec.list_price ;
5585 l_K_covd_rec.negotiated_amount := l_k_support_rec.negotiated_amount;
5586 l_K_covd_rec.currency_code := l_k_support_rec.currency;
5587 l_K_covd_rec.reason_code := l_k_support_rec.reason_code;
5588 l_K_covd_rec.reason_comments := l_k_support_rec.reason_comments;
5589 l_K_covd_rec.line_renewal_type := p_k_line_rec.line_renewal_type;
5590
5591 Create_Covered_Line
5592 (
5593 p_k_covd_rec => l_K_covd_rec
5594 ,p_PRICE_ATTRIBS => p_price_attribs_in
5595 ,x_cp_line_id => l_cp_line_id
5596 ,x_return_status => l_return_status
5597 ,x_msg_count => x_msg_count
5598 ,x_msg_data => x_msg_data
5599 );
5600
5601 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Create_Covered_Line for SU line status :'|| l_return_status );
5602 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Covered line id for support line :'|| l_cp_line_id );
5603 --dbms_output.put_line('K COVERED PRODUCT CREATION FOR SUPPORT SERVICE LINE STATUS:- ' || l_return_status);
5604
5605 IF Not l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
5606 DBMS_TRANSACTION.ROLLBACK_SAVEPOINT('BEFORE_TRANSACTIONS');
5607 RAISE G_EXCEPTION_HALT_VALIDATION;
5608 END IF;
5609
5610 /* -- if CP has a counter then create a covered usage line - for counter
5611 cp_id := p_instance_rec.instance_id;
5612 --dbms_output.put_line('Customer product Id '|| cp_id );
5613
5614 -- Check if any usage is associated with the product
5615 Check_for_usage
5616 (
5617 p_CP_id =>cp_id
5618 , x_counter_tbl => l_counter_tbl
5619 , x_return_status => x_return_status
5620 , x_msg_data => x_msg_data
5621 , x_msg_count => x_msg_count
5622 );
5623
5624 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Check_for_usage status :'|| x_return_status);
5625 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Number of Usage Lines :'|| l_counter_tbl.count );
5626 --dbms_output.put_line('CHECK FOR USAGE LINE STATUS:- ' || x_return_status||' ctr tbl'||l_counter_tbl.count);
5627
5628 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
5629 RAISE G_EXCEPTION_HALT_VALIDATION;
5630 END IF;
5631
5632 -- opening rule detail cursor :
5633 -- rule_information1 :: Average_bill_flag
5634 -- rule_information2 :: Period
5635 -- rule_information3 :: Settlement_flag
5636 -- rule_information4 :: Minimum
5637 -- rule_information5 :: Default
5638 -- rule_information6 :: Amcv
5639 -- rule_information7 :: Fixed
5640 -- rule_information8
5641 -- rule_information9 :: Level
5642 -- rule_information10 :: Usage_type
5643 -- rule_information11
5644 -- rule_information12 :: Base
5645
5646
5647 Open l_rule_dtl_Csr;
5648 Fetch l_rule_dtl_Csr into l_rule_dtl_rec;
5649 If l_rule_dtl_Csr%notfound Then
5650 Close l_rule_dtl_Csr ;
5651 x_return_status := OKC_API.G_RET_STS_ERROR;
5652 OKC_API.set_message(G_APP_NAME,'OKS_CUST_PROD_DTLS_NOT_FOUND','CUSTOMER_PRODUCT',p_instance_rec.instance_id);
5653 Raise G_EXCEPTION_HALT_VALIDATION;
5654 End if;
5655 Close l_rule_dtl_Csr;
5656
5657 -- create service line and covered lines for usage and counters associated with the product.
5658 If l_counter_tbl.count > 0 Then
5659 i := l_Counter_Tbl.First;
5660
5661 LOOP
5662 if (l_counter_tbl(i).usage_item_id <> Null) then
5663 l_K_usage_rec := p_K_Support_rec ;
5664 l_K_usage_rec.k_hdr_id := l_contract_header_id;
5665 l_k_usage_rec.customer_product_id := l_counter_tbl(i).usage_item_id;
5666 l_k_usage_rec.usage_type := l_rule_dtl_rec.rule_information10;
5667 l_k_usage_rec.usage_period := l_rule_dtl_rec.rule_information2;
5668 l_k_usage_rec.line_type := 'U';
5669
5670 Create_Service_Line
5671 (
5672 p_k_line_rec => l_K_usage_rec
5673 ,p_Contact_tbl => p_support_contacts_tbl_in
5674 ,p_line_sales_crd_tbl => p_support_sales_crd_tbl_in
5675 ,x_service_line_id => l_u_service_line_id
5676 ,x_return_status => x_return_status
5677 ,x_msg_count => x_msg_count
5678 ,x_msg_data => x_msg_data
5679 );
5680 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Create_Service_Line status :'|| x_return_status );
5681 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Service Line Id sor usage line :'|| l_u_service_line_id );
5682
5683 --dbms_output.put_line('K CONTRACT USAGE LINE CREATION STATUS:- ' || x_return_status);
5684
5685 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
5686 RAISE G_EXCEPTION_HALT_VALIDATION;
5687 END IF;
5688
5689 -- opening line cursor
5690 Open l_line_Csr(l_counter_tbl(i).usage_item_id,l_k_usage_rec.org_id ); --to pass invetory item id
5691 Fetch l_line_Csr into l_line_dtl_rec;
5692 If l_line_Csr%notfound Then
5693 Close l_line_Csr ;
5694 l_return_status := OKC_API.G_RET_STS_ERROR;
5695 OKC_API.set_message(G_APP_NAME,'OKS_CUST_PROD_DTLS_NOT_FOUND','CUSTOMER_PRODUCT',p_instance_rec.instance_id);
5696 Raise G_EXCEPTION_HALT_VALIDATION;
5697 End if;
5698 Close l_line_Csr;
5699
5700
5701 l_K_counter_rec.k_id := l_contract_header_id;
5702 l_K_counter_rec.Attach_2_Line_id := l_u_service_line_id;
5703 l_K_counter_rec.line_number := 1;
5704 l_K_counter_rec.product_sts_code := 'OKX_COUNTER';
5705 l_K_counter_rec.Customer_Product_Id := l_counter_tbl(i).usage_item_id;
5706 l_K_counter_rec.Product_Desc := l_line_dtl_rec.description;
5707 l_K_counter_rec.Product_Start_Date := p_k_header_rec.start_date;
5708 l_K_counter_rec.Product_End_Date := p_k_header_rec.end_date;
5709 -- l_K_counter_rec.Quantity := p_instance_rec.Quantity;
5710 -- l_K_counter_rec.uom_code := l_line_dtl_rec.primary_uom_code;
5711 l_K_counter_rec.list_price := l_k_usage_rec.list_price;
5712 l_K_counter_rec.negotiated_amount := l_k_usage_rec.negotiated_amount;
5713 l_K_counter_rec.currency_code := l_k_usage_rec.currency;
5714 l_K_counter_rec.reason_code := l_k_usage_rec.reason_code;
5715 l_K_counter_rec.reason_comments := l_k_usage_rec.reason_comments;
5716 l_K_counter_rec.line_renewal_type := p_k_header_rec.renewal_type;
5717 l_K_counter_rec.minimum_qty := l_rule_dtl_rec.rule_information4;
5718 l_K_counter_rec.default_qty := l_rule_dtl_rec.rule_information5;
5719 l_K_counter_rec.period := l_rule_dtl_rec.rule_information2;
5720 l_K_counter_rec.amcv_flag := l_rule_dtl_rec.rule_information6;
5721 l_K_counter_rec.fixed_qty := l_rule_dtl_rec.rule_information7;
5722 l_K_counter_rec.level_yn := l_rule_dtl_rec.rule_information9;
5723 l_K_counter_rec.base_reading := l_rule_dtl_rec.rule_information12;
5724 l_K_counter_rec.settlement_flag := l_rule_dtl_rec.rule_information3;
5725 l_K_counter_rec.average_bill_flag := l_rule_dtl_rec.rule_information1;
5726 l_K_counter_rec.invoice_print_flag := '';
5727 l_K_counter_rec.ATTRIBUTE1 := '';
5728 l_K_counter_rec.ATTRIBUTE2 := '';
5729 l_K_counter_rec.ATTRIBUTE3 := '';
5730 l_K_counter_rec.ATTRIBUTE4 := '';
5731 l_K_counter_rec.ATTRIBUTE5 := '';
5732 l_K_counter_rec.ATTRIBUTE6 := '';
5733 l_K_counter_rec.ATTRIBUTE7 := '';
5734 l_K_counter_rec.ATTRIBUTE8 := '';
5735 l_K_counter_rec.ATTRIBUTE9 := '';
5736 l_K_counter_rec.ATTRIBUTE10 := '';
5737 l_K_counter_rec.ATTRIBUTE11 := '';
5738 l_K_counter_rec.ATTRIBUTE12 := '';
5739 l_K_counter_rec.ATTRIBUTE13 := '';
5740 l_K_counter_rec.ATTRIBUTE14 := '';
5741 l_K_counter_rec.ATTRIBUTE15 := '';
5742
5743 Create_Covered_Line
5744 (
5745 p_k_covd_rec => l_K_counter_rec
5746 ,p_PRICE_ATTRIBS => p_price_attribs_in
5747 ,x_cp_line_id => l_cp_line_id
5748 ,x_return_status => x_return_status
5749 ,x_msg_count => x_msg_count
5750 ,x_msg_data => x_msg_data
5751 );
5752 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Create_Covered_Line status :'|| x_return_status );
5753 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Line Id for usage covered line :'|| l_cp_line_id );
5754
5755 --dbms_output.put_line('K COVERED PRODUCT CREATION FOR USAGE LINE STATUS:- ' || x_return_status);
5756
5757 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
5758 RAISE G_EXCEPTION_HALT_VALIDATION;
5759 END IF;
5760
5761 -- Billing schedule for usage line
5762
5763 l_slh_rec := p_Strm_hdr_rec;
5764 l_slh_rec.cle_id := l_u_service_line_id;
5765 IF l_slh_rec.Object1_Id1 IS NULL THEN
5766 l_slh_rec.Object1_Id1 := '1';
5767 END IF;
5768
5769 IF l_slh_rec.Object2_Id1 IS NULL THEN
5770 Create_timeval
5771 (
5772 p_line_id => l_slh_rec.cle_id,
5773 x_time_val => l_time_val,
5774 x_return_status => x_return_status
5775 );
5776
5777 --dbms_output.put_line('create time val '|| x_return_status);
5778 IF x_return_status = 'S' THEN
5779 l_slh_rec.Object2_Id1 := l_time_val;
5780 ELSE
5781 x_return_status := OKC_API.G_RET_STS_ERROR;
5782 DBMS_TRANSACTION.ROLLBACK_SAVEPOINT('BEFORE_TRANSACTION');
5783 Raise G_EXCEPTION_HALT_VALIDATION;
5784 END IF;
5785 END IF;
5786
5787 --dbms_output.put_line('rule information catagory '|| l_slh_rec.Rule_Information_Category );
5788 OKS_BILL_SCH.Create_Bill_Sch_Rules
5789 (
5790 p_billing_type => p_billing_sch_type,
5791 p_sll_tbl => p_strm_level_tbl,
5792 p_invoice_rule_id => l_K_support_rec.invoicing_rule_type,
5793 x_bil_sch_out_tbl => l_bil_sch_out_tbl,
5794 x_return_status => x_return_status
5795 );
5796
5797 --dbms_output.put_line('K BILL SCHEDULE FOR USAGE LINE STATUS ' || x_return_status);
5798 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
5799 RAISE G_EXCEPTION_HALT_VALIDATION;
5800 END IF;
5801
5802 -- End of Billing Schedule for Usage Line
5803 END If;
5804 i := l_Counter_Tbl.Next(i);
5805 END LOOP; -- End of counter_tbl.count
5806 End If; -- End of counter_tbl.count IF
5807
5808
5809 */
5810
5811
5812 -- create billing schd for subscription lines :one time billing
5813
5814 IF (l_k_line_rec.line_type = 'SB') THEN
5815
5816 --dbms_output.put_line('amount'||l_k_line_rec.negotiated_amount);
5817
5818 Create_Billing_Schd
5819 (
5820 P_srv_sdt => p_k_header_rec.start_date
5821 , P_srv_edt => p_k_header_rec.end_date
5822 , P_amount => l_k_line_rec.negotiated_amount
5823 , P_chr_id => l_contract_header_id
5824 , P_rule_id => NULL
5825 , P_line_id => l_sb_service_line_id
5826 , P_invoice_rule_id => l_k_line_rec.invoicing_rule_type
5827 , X_msg_data => X_msg_data
5828 , X_msg_count => X_msg_count
5829 , X_Return_status => l_Return_status
5830 );
5831
5832 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Create_Billing_Schd for SB Line status :'|| l_return_status );
5833 --dbms_output.put_line('SUBSCRIPTION LINE BILL SCHEDULE STATUS:- ' || l_return_status);
5834
5835 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
5836 DBMS_TRANSACTION.ROLLBACK_SAVEPOINT('BEFORE_TRANSACTIONS');
5837 RAISE G_EXCEPTION_HALT_VALIDATION;
5838 END IF;
5839
5840 END If; -- end of billing for subscription line
5841
5842 -- for support line recursive billing
5843
5844 IF(l_k_support_rec.line_type = 'S') then
5845
5846 Create_Billing_Schd
5847 (
5848 P_srv_sdt => p_k_support_rec.srv_sdt
5849 , P_srv_edt => p_k_support_rec.srv_edt
5850 , P_amount => null --l_k_line_rec.negotiated_amount
5851 , P_chr_id => l_contract_header_id
5852 , P_rule_id => NULL
5853 , P_line_id => l_su_service_line_id
5854 , P_invoice_rule_id => l_k_line_rec.invoicing_rule_type
5855 , X_msg_data => X_msg_data
5856 , X_msg_count => X_msg_count
5857 , X_Return_status => l_Return_status
5858 );
5859
5860 -- l_slh_rec := p_Strm_hdr_rec;
5861 -- l_slh_rec.cle_id := l_su_service_line_id;
5862
5863 -- IF l_slh_rec.Object1_Id1 IS NULL THEN
5864 -- l_slh_rec.Object1_Id1 := '1';
5865 -- END IF;
5866
5867 -- OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Object2_id1 :'|| l_slh_rec.Object2_Id1 );
5868 /*
5869 IF l_slh_rec.Object2_Id1 IS NULL THEN
5870 Create_timeval
5871 (
5872 p_line_id => l_slh_rec.cle_id,
5873 x_time_val => l_time_val,
5874 x_return_status => l_return_status
5875 );
5876
5877 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription ::Create_timeval :'|| l_return_status );
5878 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription ::Time val :'|| l_time_val );
5879 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription ::Rule Information catagory :'|| l_slh_rec.Rule_Information_Category );
5880 --dbms_output.put_line('create time val '|| x_return_status);
5881
5882 IF l_return_status = 'S' THEN
5883 l_slh_rec.Object2_Id1 := l_time_val;
5884 ELSE
5885 l_return_status := OKC_API.G_RET_STS_ERROR;
5886 DBMS_TRANSACTION.ROLLBACK_SAVEPOINT('BEFORE_TRANSACTIONS');
5887 Raise G_EXCEPTION_HALT_VALIDATION;
5888 END IF;
5889 END IF;
5890
5891 --dbms_output.put_line('rule information catagory '|| l_slh_rec.Rule_Information_Category );
5892 OKS_BILL_SCH.Create_Bill_Sch_Rules
5893 (
5894 p_billing_type => bill_type,
5895 p_sll_tbl => p_strm_level_tbl,
5896 p_invoice_rule_id => l_K_line_rec.invoicing_rule_type,
5897 x_bil_sch_out_tbl => l_bil_sch_out_tbl,
5898 x_return_status => l_return_status
5899 );
5900
5901 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Create_Bill_Sch_Rules for Support Line status :'|| l_return_status );
5902 --dbms_output.put_line('K BILL SCHEDULE FOR SERVICE LINE STATUS ' || l_return_status);
5903 */
5904 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
5905 RAISE G_EXCEPTION_HALT_VALIDATION;
5906 END IF;
5907
5908 END IF; -- end of billing for line type = 'SU'
5909
5910 IF l_return_status <> 'S' THEN
5911 DBMS_TRANSACTION.ROLLBACK_SAVEPOINT('BEFORE_TRANSACTIONS');
5912 END IF;
5913
5914 x_return_status := l_return_status;
5915
5916 Exception
5917 When G_EXCEPTION_HALT_VALIDATION Then
5918 x_return_status := l_return_status;
5919 Null;
5920 When Others Then
5921 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
5922 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
5923 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Subscription :: Error :'|| SQLCODE || SQLERRM);
5924
5925 END Create_subscription;
5926
5927
5928
5929
5930
5931 ---------------------------------------------------------------------------------
5932 -- Procedure for creating contracts
5933 ---------------------------------------------------------------------------------
5934
5935
5936
5937 Procedure Create_Contract
5938 (
5939 p_K_header_rec IN OKS_CONTRACTS_PUB.header_rec_type
5940 , p_header_contacts_tbl IN OKS_CONTRACTS_PUB.contact_tbl
5941 , p_header_sales_crd_tbl IN OKS_CONTRACTS_PUB.SalesCredit_tbl
5942 , p_header_articles_tbl IN OKS_CONTRACTS_PUB.obj_articles_tbl
5943 , p_K_line_rec IN OKS_CONTRACTS_PUB.line_rec_type
5944 , p_line_contacts_tbl IN OKS_CONTRACTS_PUB.contact_tbl
5945 , p_line_sales_crd_tbl IN OKS_CONTRACTS_PUB.SalesCredit_tbl
5946 , p_K_Support_rec IN OKS_CONTRACTS_PUB.line_rec_type
5947 , p_Support_contacts_tbl IN OKS_CONTRACTS_PUB.contact_tbl
5948 , p_Support_sales_crd_tbl IN OKS_CONTRACTS_PUB.SalesCredit_tbl
5949 , p_K_covd_rec IN OKS_CONTRACTS_PUB.Covered_level_Rec_Type
5950 , p_price_attribs_in IN OKS_CONTRACTS_PUB.pricing_attributes_type
5951 , p_merge_rule IN Varchar2
5952 , p_usage_instantiate IN Varchar2
5953 , p_ib_creation IN Varchar2
5954 , p_billing_sch_type IN Varchar2
5955 , p_strm_level_tbl IN OKS_BILL_SCH.StreamLvl_tbl
5956 , x_chrid OUT NOCOPY Number
5957 , x_return_status OUT NOCOPY Varchar2
5958 , x_msg_count OUT NOCOPY Number
5959 , x_msg_data OUT NOCOPY Varchar2
5960 )
5961 IS
5962
5963 l_contract_header_id NUMBER;
5964 l_service_line_id NUMBER;
5965 l_cp_line_id NUMBER;
5966 l_bil_sch_out_tbl OKS_BILL_SCH.ItemBillSch_tbl;
5967 --l_slh_rec OKS_BILL_SCH.StreamHdr_type;
5968 l_K_line_rec OKS_CONTRACTS_PUB.line_Rec_Type;
5969 l_k_support_rec OKS_CONTRACTS_PUB.line_Rec_Type;
5970 l_k_hdr_rec OKS_CONTRACTS_PUB.header_Rec_Type;
5971 l_K_covd_rec OKS_CONTRACTS_PUB.Covered_level_Rec_Type;
5972 l_time_val NUMBER;
5973 l_return_status Varchar2(1);
5974 BEGIN
5975
5976 DBMS_TRANSACTION.SAVEPOINT('BEFORE_TRANSACTION');
5977
5978 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract :: Line Style :'|| p_K_line_rec.line_type );
5979 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract :: Support line style :'|| p_K_Support_rec.line_type );
5980 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract :: Usage type :'|| p_K_line_rec.usage_type );
5981 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract :: Header Renewal type :'|| p_K_header_rec.renewal_type );
5982 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract :: Line Renewal type :'|| p_K_line_rec.line_renewal_type );
5983 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract :: Coverage Renewal type :'|| p_K_covd_rec.line_renewal_type );
5984 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract :: Header Start Date :'|| p_K_header_rec.start_date );
5985 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract :: Header End Date :'|| p_K_header_rec.end_date );
5986 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract :: Customer Product Id :'|| p_K_covd_rec.customer_product_id );
5987 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract :: Product Description :'|| p_K_covd_rec.product_desc );
5988
5989
5990 Create_Contract_Header
5991 (
5992 p_K_header_rec => p_K_header_rec,
5993 p_header_contacts_tbl => p_header_contacts_tbl,
5994 p_header_sales_crd_tbl => p_header_sales_crd_tbl,
5995 p_header_articles_tbl => p_header_articles_tbl,
5996 x_chrid => l_contract_header_id,
5997 x_return_status => l_return_status,
5998 x_msg_count => x_msg_count,
5999 x_msg_data => x_msg_data
6000 );
6001
6002 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract :: Create_Contract_Header status :'|| l_return_status );
6003 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract :: Contract Header Id :'|| to_char(l_contract_header_id) );
6004 --dbms_output.put_line('K CONTRACT HEADER CREATION STATUS:- ' || l_return_status);
6005
6006 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
6007 DBMS_TRANSACTION.ROLLBACK_SAVEPOINT('BEFORE_TRANSACTION');
6008 RAISE G_EXCEPTION_HALT_VALIDATION;
6009 END IF;
6010
6011
6012
6013 If ( p_K_line_rec.line_type = 'SB') then
6014 l_k_support_rec := p_k_support_rec;
6015 l_k_line_rec := p_k_line_rec;
6016 l_k_hdr_rec := p_k_header_rec;
6017 --l_slh_rec := p_Strm_hdr_rec;
6018
6019 Create_Subscription
6020 (
6021 p_K_header_rec => l_k_hdr_rec
6022 ,p_K_Support_rec => l_k_support_rec
6023 ,p_Support_contacts_tbl_in => p_Support_contacts_tbl
6024 ,p_Support_sales_crd_tbl_in => p_Support_sales_crd_tbl
6025 ,p_k_line_rec => l_k_line_rec
6026 ,p_line_contacts_tbl_in => p_line_contacts_tbl
6027 ,p_line_sales_crd_tbl_in => p_line_sales_crd_tbl
6028 ,p_price_attribs_in => p_price_attribs_in
6029 ,p_contract_header_id => l_contract_header_id
6030 ,bill_type => p_billing_sch_type
6031 ,p_strm_level_tbl => p_strm_level_tbl
6032 ,x_return_status => l_return_status
6033 ,x_msg_count => x_msg_count
6034 ,x_msg_data => x_msg_data
6035 );
6036
6037 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract :: Create_Subscription status :'|| l_return_status);
6038 --dbms_output.put_line('CREATE SUBSCRIPTION STATUS:- ' || l_return_status);
6039
6040 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
6041 DBMS_TRANSACTION.ROLLBACK_SAVEPOINT('BEFORE_TRANSACTION');
6042 RAISE G_EXCEPTION_HALT_VALIDATION;
6043 END IF;
6044 ELSE
6045
6046
6047 l_K_line_rec := p_K_line_rec;
6048 l_K_line_rec.k_hdr_id := l_contract_header_id;
6049
6050 IF (p_K_header_rec.scs_code = 'SERVICE' AND l_K_line_rec.line_type = 'U') AND
6051 (l_K_line_rec.usage_type = 'VRT' OR l_K_line_rec.usage_type = 'QTY') THEN
6052
6053 l_K_line_rec.invoicing_rule_type := -3;
6054 END IF;
6055
6056 Create_Service_Line
6057 (
6058 p_k_line_rec => l_K_line_rec,
6059 p_Contact_tbl => p_line_contacts_tbl,
6060 p_line_sales_crd_tbl => p_line_sales_crd_tbl,
6061 x_service_line_id => l_service_line_id,
6062 x_return_status => l_return_status,
6063 x_msg_count => x_msg_count,
6064 x_msg_data => x_msg_data
6065 );
6066 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract :: Create_Service_Line status :'|| l_return_status );
6067 --dbms_output.put_line('K CONTRACT SERVICE LINE CREATION STATUS:- ' || l_return_status);
6068 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
6069 DBMS_TRANSACTION.ROLLBACK_SAVEPOINT('BEFORE_TRANSACTION');
6070 RAISE G_EXCEPTION_HALT_VALIDATION;
6071 END IF;
6072
6073
6074 l_K_covd_rec := p_K_covd_rec;
6075 l_K_covd_rec.k_id := l_contract_header_id;
6076 l_K_covd_rec.Attach_2_Line_id := l_service_line_id;
6077
6078 Create_Covered_Line
6079 (
6080 p_k_covd_rec => l_K_covd_rec,
6081 p_PRICE_ATTRIBS => p_price_attribs_in,
6082 x_cp_line_id => l_cp_line_id,
6083 x_return_status => l_return_status,
6084 x_msg_count => x_msg_count,
6085 x_msg_data => x_msg_data
6086 );
6087
6088 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract :: Create_Covered_Line status :'|| l_return_status );
6089 --dbms_output.put_line('K COVERED PRODUCT LINE CREATION STATUS:- ' || l_return_status);
6090
6091 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
6092 DBMS_TRANSACTION.ROLLBACK_SAVEPOINT('BEFORE_TRANSACTION');
6093 RAISE G_EXCEPTION_HALT_VALIDATION;
6094 END IF;
6095
6096 IF p_K_header_rec.scs_code = 'WARRANTY' AND p_K_line_rec.line_type = 'W' THEN ----warranty
6097 NULL;
6098
6099 ELSE
6100 /*--l_slh_rec := p_Strm_hdr_rec;
6101 l_slh_rec.cle_id := l_service_line_id;
6102
6103 IF l_slh_rec.Object1_Id1 IS NULL THEN
6104 l_slh_rec.Object1_Id1 := '1';
6105 END IF;
6106
6107 IF l_slh_rec.Object2_Id1 IS NULL THEN
6108 Create_timeval
6109 (
6110 p_line_id => l_slh_rec.cle_id,
6111 x_time_val => l_time_val,
6112 x_return_status => x_return_status
6113 );
6114
6115
6116 IF l_return_status = 'S' THEN
6117 l_slh_rec.Object2_Id1 := l_time_val;
6118 ELSE
6119 x_return_status := OKC_API.G_RET_STS_ERROR;
6120 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'TIME VALUE REQUIRED FOR SLH');
6121 DBMS_TRANSACTION.ROLLBACK_SAVEPOINT('BEFORE_TRANSACTION');
6122 Raise G_EXCEPTION_HALT_VALIDATION;
6123 END IF;
6124 END IF;*/
6125
6126 OKS_BILL_SCH.Create_Bill_Sch_Rules
6127 (
6128 p_billing_type => p_billing_sch_type,
6129 p_sll_tbl => p_strm_level_tbl,
6130 p_invoice_rule_id => l_K_line_rec.invoicing_rule_type,
6131 x_bil_sch_out_tbl => l_bil_sch_out_tbl,
6132 x_return_status => l_return_status
6133 );
6134
6135 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract :: Create_Bill_Sch_Rules status :'|| l_return_status );
6136 --dbms_output.put_line('K BILL SCHEDULE STATUS:- ' || l_return_status);
6137
6138 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
6139
6140 DBMS_TRANSACTION.ROLLBACK_SAVEPOINT('BEFORE_TRANSACTION');
6141 RAISE G_EXCEPTION_HALT_VALIDATION;
6142 END IF;
6143
6144
6145 END IF;
6146 End If;
6147
6148 Update Okc_k_headers_b
6149 Set Estimated_amount = (Select nvl(sum(nvl(price_negotiated,0)),0)
6150 from Okc_k_lines_b
6151 Where dnz_chr_id = l_contract_header_id
6152 and lse_id in (9,25,46))
6153 Where id = l_contract_header_id ;
6154
6155 x_chrid := l_contract_header_id;
6156 --dbms_output.put_line('Contract header Id:- ' || TO_CHAR(l_contract_header_id));
6157 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract :: Contract header Id :'|| TO_CHAR(l_contract_header_id) );
6158
6159 Exception
6160 When G_EXCEPTION_HALT_VALIDATION Then
6161 x_return_status := l_return_status;
6162 Null;
6163 When Others Then
6164 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
6165 OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
6166 OKS_RENEW_PVT.DEBUG_LOG( '(OKS_CONTRACTS_PUB).Create_Contract :: Error :'|| SQLCODE || ':'|| SQLERRM );
6167 END Create_Contract;
6168
6169 /* dummy overloaded procedure for OKL*/
6170
6171 Procedure Create_Bill_Schedule(p_Strm_hdr_rec IN OKS_BILL_SCH.StreamHdr_Type,
6172 p_strm_level_tbl IN OKS_BILL_SCH.StreamLvl_tbl,
6173 p_invoice_rule_id IN Number,
6174 x_return_status OUT NOCOPY VARCHAR2
6175 )
6176
6177 is
6178 Begin
6179
6180 x_return_status := 'S';
6181
6182 End Create_Bill_Schedule;
6183
6184
6185 End OKS_CONTRACTS_PUB;
6186