DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_CHR_PVT

Source


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