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